:root{
  --red:#E2211C;
  --red-dark:#A8150F;
  --ink:#1A1A1A;
  --asphalt:#0E0E10;
  --gray:#68686C;
  --gray-light:#9A9A9E;
  --paper:#F2F1EE;
  --paper-dim:#E7E5E0;
  --white:#FFFFFF;
  --yellow:#FFC400;
  --ok:#1E8A4C;
  --font-display:'Oswald',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'Roboto Mono',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
::selection{background:var(--red);color:var(--white);}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--paper-dim);}
.header-inner{max-width:1180px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{height:46px;width:auto;}
nav.site-nav{display:flex;align-items:center;gap:22px;}
nav.site-nav a{font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .15s;}
nav.site-nav a:hover{border-color:var(--red);}

.btn{font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;border:none;border-radius:3px;padding:11px 20px;display:inline-flex;align-items:center;gap:8px;transition:transform .12s, background .15s, box-shadow .15s;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--red);color:var(--white);}
.btn-primary:hover{background:var(--red-dark);}
.btn-primary:disabled{background:var(--gray-light);cursor:not-allowed;}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--white);}
.btn-small{padding:8px 14px;font-size:12px;}

/* ---------- Road divider (signature element) ---------- */
.road-divider{height:12px;background:var(--asphalt);background-image:repeating-linear-gradient(90deg, var(--yellow) 0 34px, transparent 34px 66px);background-position:center;}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--ink);color:var(--white);padding:86px 24px 96px;}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg, transparent 0%, transparent 46%, var(--red) 46%, var(--red-dark) 100%);clip-path:polygon(58% 0, 100% 0, 100% 100%, 40% 100%);opacity:.96;}
.hero-inner{position:relative;max-width:1180px;margin:0 auto;}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow);margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--yellow);display:inline-block;}
.hero h1{font-family:var(--font-display);font-weight:700;font-style:italic;font-size:clamp(38px,6vw,68px);line-height:1.02;margin:0 0 22px;letter-spacing:-.01em;max-width:640px;}
.hero p{font-family:var(--font-body);font-size:17px;line-height:1.6;color:#D8D8D8;max-width:460px;margin:0 0 34px;}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap;}
.hero-stat b{display:block;font-family:var(--font-mono);font-size:26px;font-weight:700;color:var(--white);}
.hero-stat span{font-size:11px;color:var(--gray-light);text-transform:uppercase;letter-spacing:.08em;}

/* ---------- Section shell ---------- */
section.wrap{max-width:1180px;margin:0 auto;padding:64px 24px;}
.section-head{margin-bottom:36px;}
.section-head .tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:10px;display:block;}
.section-head h2{font-family:var(--font-display);font-weight:600;font-size:clamp(26px,3.4vw,38px);margin:0;letter-spacing:-.01em;}
.section-head p{color:var(--gray);max-width:560px;margin:12px 0 0;line-height:1.6;}

/* ---------- Manifest form ---------- */
.manifest{background:var(--white);border:1px solid var(--paper-dim);border-radius:6px;box-shadow:0 20px 50px -30px rgba(0,0,0,.35);overflow:hidden;}
.manifest-top{background:var(--ink);color:var(--white);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.manifest-top .title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-size:15px;}
.manifest-top .doc-id{font-family:var(--font-mono);font-size:12px;color:var(--gray-light);}
.m-step{border-top:1px solid var(--paper-dim);padding:28px;}
.m-step:first-of-type{border-top:none;}
.m-step-head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px;}
.m-step-num{font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--white);background:var(--red);width:28px;height:28px;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.m-step-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:16px;}
.m-step-sub{font-family:var(--font-mono);font-size:11.5px;color:var(--gray);margin-left:42px;margin-top:-14px;margin-bottom:18px;}

.field-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-left:42px;}
.field{grid-column:span 12;display:flex;flex-direction:column;gap:6px;}
.field.c2{grid-column:span 2;}
.field.c3{grid-column:span 3;}
.field.c4{grid-column:span 4;}
.field.c5{grid-column:span 5;}
.field.c6{grid-column:span 6;}
.field.c8{grid-column:span 8;}
.field.c9{grid-column:span 9;}
@media(max-width:760px){
  .field.c2,.field.c3,.field.c4,.field.c5,.field.c6,.field.c8,.field.c9{grid-column:span 12;}
  .field-grid{margin-left:0;}
  .m-step-sub{margin-left:0;}
}
.field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gray);}
.field .hint{font-size:11px;color:var(--gray-light);font-family:var(--font-body);}
.field input, .field textarea{border:1.5px solid var(--paper-dim);border-radius:4px;padding:11px 12px;font-size:14.5px;background:var(--paper);color:var(--ink);transition:border-color .15s, background .15s;}
.field input:focus, .field textarea:focus{outline:none;border-color:var(--red);background:var(--white);}
.field textarea{resize:vertical;min-height:64px;}
.field.error input{border-color:var(--red);background:#FFF3F2;}
.field .err-msg{font-size:11.5px;color:var(--red);font-weight:600;display:none;}
.field.error .err-msg{display:block;}
.cep-row{position:relative;}
.cep-row .spinner{position:absolute;right:10px;top:37px;width:14px;height:14px;border:2px solid var(--paper-dim);border-top-color:var(--red);border-radius:50%;animation:spin .7s linear infinite;display:none;}
.cep-row.loading .spinner{display:block;}
@keyframes spin{to{transform:rotate(360deg);}}

.manifest-actions{border-top:1px solid var(--paper-dim);padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--paper);}
.manifest-actions .note{font-size:12.5px;color:var(--gray);max-width:420px;}
.form-error{font-family:var(--font-mono);font-size:12.5px;color:var(--red);background:#FFF3F2;border:1px solid #FFD3D0;padding:10px 14px;border-radius:4px;display:none;margin:0 28px 20px;}
.form-error.show{display:block;}

/* ---------- Results ---------- */
.results{display:none;margin-top:44px;}
.results.show{display:block;animation:fadeUp .4s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.results-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;}
@media(max-width:860px){.results-grid{grid-template-columns:1fr;}}
.map-card{background:var(--white);border:1px solid var(--paper-dim);border-radius:6px;overflow:hidden;box-shadow:0 20px 50px -30px rgba(0,0,0,.35);}
#map{height:340px;width:100%;background:var(--paper-dim);}
.map-legend{display:flex;gap:18px;padding:14px 18px;border-top:1px solid var(--paper-dim);font-size:12px;color:var(--gray);}
.map-legend span{display:flex;align-items:center;gap:6px;}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
.dot.origin{background:var(--ink);}
.dot.dest{background:var(--red);}

.dash{background:var(--asphalt);color:var(--white);border-radius:6px;padding:26px;display:flex;flex-direction:column;gap:18px;box-shadow:0 20px 50px -30px rgba(0,0,0,.5);}
.dash-row{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed #333;padding-bottom:14px;}
.dash-row:last-of-type{border-bottom:none;padding-bottom:0;}
.dash-label{font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-light);}
.dash-value{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--white);}
.dash-total{background:var(--red);margin:4px -26px -26px;padding:22px 26px;border-radius:0 0 6px 6px;}
.dash-total .dash-label{color:#FFD9D6;}
.dash-total .dash-value{font-size:32px;}
.dash-breakdown{font-family:var(--font-mono);font-size:11px;color:var(--gray-light);margin-top:4px;line-height:1.7;}

/* ---------- How it works ---------- */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:760px){.how-grid{grid-template-columns:1fr;}}
.how-card{padding-top:18px;border-top:3px solid var(--red);}
.how-num{font-family:var(--font-mono);font-size:12px;color:var(--gray-light);}
.how-card h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;font-size:18px;margin:6px 0 8px;}
.how-card p{color:var(--gray);font-size:14px;line-height:1.6;margin:0;}

/* ---------- Admin (shared look for the standalone admin page) ---------- */
body.admin-body{background:var(--paper);color:var(--ink);min-height:100vh;}
.admin-topbar{position:static !important;background:var(--white);border-bottom:1px solid var(--paper-dim);}
.admin-topbar .header-inner{background:transparent;}
.admin-topbar .brand-word{font-family:var(--font-mono);font-size:11px;color:var(--gray);letter-spacing:.15em;text-transform:uppercase;}

.admin-gate{max-width:440px;margin:0 auto;padding:90px 24px;text-align:center;}
.admin-gate .tag{font-family:var(--font-mono);font-size:12px;color:var(--red);letter-spacing:.18em;text-transform:uppercase;}
.admin-gate h2{font-family:var(--font-display);font-size:28px;margin:10px 0 16px;}
.admin-gate p{color:var(--gray);font-size:13.5px;line-height:1.6;margin-bottom:24px;}
.admin-gate input{width:100%;padding:12px 14px;border-radius:4px;border:1.5px solid var(--paper-dim);background:var(--paper);color:var(--ink);font-family:var(--font-mono);margin-bottom:12px;}
.admin-gate input:focus{outline:none;border-color:var(--red);background:var(--white);}
.admin-error{color:var(--red);font-size:12.5px;font-family:var(--font-mono);min-height:18px;margin-bottom:6px;}

.admin-panel{display:none;padding:50px 24px 90px;}
.admin-panel.show{display:block;}
.admin-inner{max-width:960px;margin:0 auto;}
.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:34px;flex-wrap:wrap;}
.admin-head .tag{font-family:var(--font-mono);font-size:12px;color:var(--red);letter-spacing:.18em;text-transform:uppercase;}
.admin-head h2{font-family:var(--font-display);font-size:28px;margin:8px 0 0;}
.admin-card{background:var(--white);border:1px solid var(--paper-dim);border-radius:6px;padding:28px;margin-bottom:20px;box-shadow:0 14px 40px -28px rgba(0,0,0,.25);}
.admin-card h3{font-family:var(--font-display);text-transform:uppercase;font-size:14px;letter-spacing:.06em;margin:0 0 18px;color:var(--red);}
.admin-card-hint{font-family:var(--font-mono);font-size:11.5px;color:var(--gray);margin:-8px 0 16px;line-height:1.6;}
.admin-subsection{margin-top:26px;padding-top:26px;border-top:1px solid var(--paper-dim);}
.admin-subsection:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.admin-subsection h4{font-family:var(--font-mono);text-transform:uppercase;font-size:11px;letter-spacing:.08em;margin:0 0 16px;color:var(--gray);}
.admin-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.admin-field{display:flex;flex-direction:column;gap:6px;}
.admin-field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);}
.admin-field .sub{font-size:11px;color:var(--gray-light);}
.admin-field input, .admin-field select{padding:11px 12px;border-radius:4px;border:1.5px solid var(--paper-dim);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:14.5px;}
.admin-field input:focus, .admin-field select:focus{outline:none;border-color:var(--red);background:var(--white);}
.admin-save-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.save-msg{font-family:var(--font-mono);font-size:12px;color:var(--ok);display:none;}
.save-msg.show{display:inline;}
.admin-example{font-family:var(--font-mono);font-size:12px;color:var(--gray);background:var(--paper);border:1px dashed var(--paper-dim);padding:14px 16px;border-radius:4px;line-height:1.8;}
.admin-example b{color:var(--red);}
.admin-search{width:100%;padding:11px 12px;border-radius:4px;border:1.5px solid var(--paper-dim);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:13px;margin-bottom:16px;}
.admin-search:focus{outline:none;border-color:var(--red);background:var(--white);}

.admin-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--paper-dim);overflow-x:auto;-webkit-overflow-scrolling:touch;}
.admin-tab{font-family:var(--font-display);text-transform:uppercase;font-size:12.5px;letter-spacing:.04em;font-weight:600;padding:12px 18px;border:none;background:transparent;color:var(--gray);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s, border-color .15s;flex-shrink:0;}
.admin-tab:hover{color:var(--ink);}
.admin-tab.active{color:var(--red);border-bottom-color:var(--red);}
.admin-tab-content.hidden{display:none;}

.quotes-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.quotes-table{width:100%;min-width:640px;border-collapse:collapse;font-family:var(--font-mono);font-size:12.5px;}

.month-group{border:1px solid var(--paper-dim);border-radius:5px;margin-bottom:10px;overflow:hidden;}
.month-group summary{
  list-style:none;cursor:pointer;padding:12px 16px;background:var(--paper);
  display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);
  font-size:12.5px;color:var(--ink);text-transform:uppercase;letter-spacing:.04em;
}
.month-group summary::-webkit-details-marker{display:none;}
.month-group summary .count{color:var(--gray);font-size:11px;text-transform:none;letter-spacing:0;}
.month-group summary::after{content:'▾';color:var(--gray);transition:transform .15s;}
.month-group:not([open]) summary::after{transform:rotate(-90deg);}
.month-group .quotes-table-scroll{padding:4px;background:var(--white);}

.order-row-toggle{cursor:pointer;}
.order-row-toggle:hover{background:var(--paper);}
.order-row-toggle .expand-arrow{display:inline-block;transition:transform .15s;color:var(--gray);margin-right:6px;}
.order-row-toggle.expanded .expand-arrow{transform:rotate(90deg);}
.order-detail-row{display:none;background:var(--paper);}
.order-detail-row.show{display:table-row;}
.order-detail-row td{padding:16px;}
.order-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:14px;}
.order-detail-item{font-size:12px;}
.order-detail-item .lbl{display:block;color:var(--gray);text-transform:uppercase;font-size:10px;letter-spacing:.05em;margin-bottom:4px;}
.order-detail-item .val{color:var(--ink);}
.order-detail-photos{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:14px;}
.order-detail-photos > div{flex:1;min-width:200px;}
.order-detail-photos .lbl{display:block;color:var(--gray);text-transform:uppercase;font-size:10px;letter-spacing:.05em;margin-bottom:6px;font-family:var(--font-mono);}
.order-detail-actions{display:flex;gap:8px;flex-wrap:wrap;}

.edit-partida-panel{display:none;align-items:center;gap:10px;flex-wrap:wrap;background:var(--white);border:1px solid var(--paper-dim);border-radius:4px;padding:12px 14px;margin-bottom:14px;}
.edit-partida-panel.show{display:flex;}
.edit-partida-panel label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);}
.edit-partida-panel input[type=datetime-local]{padding:8px 10px;border-radius:4px;border:1.5px solid var(--paper-dim);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:13px;}
.edit-partida-panel .admin-error{min-height:0;margin:0;flex-basis:100%;}
.quotes-table th{text-align:left;color:var(--gray);text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--paper-dim);}
.quotes-table td{padding:10px;border-bottom:1px solid var(--paper-dim);color:var(--ink);vertical-align:top;}
.quotes-table tr:last-child td{border-bottom:none;}
.quotes-empty{color:var(--gray);font-size:13px;padding:20px 0;text-align:center;}

.badge{display:inline-block;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;padding:4px 9px;border-radius:3px;white-space:nowrap;}
.badge-pending{background:#FFF3D6;color:#8A5A00;}
.badge-info{background:#DCEBFB;color:#1A5A9E;}
.badge-paid{background:#DDF3E4;color:#1E8A4C;}
.badge-cancelled{background:#FBDEDC;color:#B5150F;}
.badge-pix{background:#DCF6E9;color:#12693F;}
.badge-nf{background:#E4E0FB;color:#4A3DB0;}
.badge-entrega-pendente{background:#DCEBFB;color:#1A5A9E;}
.badge-entrega-concluido{background:#DDF3E4;color:#1E8A4C;}
.mini-btn{font-family:var(--font-mono);font-size:11px;color:var(--ink);background:transparent;border:1px solid var(--paper-dim);border-radius:3px;padding:4px 8px;cursor:pointer;}
.mini-btn:hover{border-color:var(--red);color:var(--red);}
.mini-btn.approve{color:#1E8A4C;}
.mini-btn.approve:hover{border-color:#1E8A4C;}
.mini-btn.reject{color:var(--red);}
.mini-btn.reject:hover{border-color:var(--red);}

.conflict-flag{font-family:var(--font-mono);font-size:10px;color:#B5650F;display:block;margin-top:2px;}
.conflict-box{background:#FFF4E5;border:1px solid #FFDCA8;color:#8A5A12;font-size:12.5px;line-height:1.7;padding:12px 14px;border-radius:4px;margin-bottom:14px;}
.conflict-box b{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;color:#B5650F;}
.review-actions{display:flex;gap:10px;margin:0 0 18px;flex-wrap:wrap;}
.reject-reason{margin:8px 0 18px;font-size:12.5px;color:var(--gray);}
.reject-reason b{color:var(--red);}

.veiculo-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--paper-dim);flex-wrap:wrap;}
.veiculo-row:last-child{border-bottom:none;}
.veiculo-row .info{font-family:var(--font-mono);font-size:12.5px;color:var(--ink);}
.veiculo-row .info b{color:var(--ink);}
.veiculo-row .info span{color:var(--gray);}
.veiculo-row.inactive .info{opacity:.45;}
.veiculo-row .actions{display:flex;gap:8px;}

.bloqueio-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--paper-dim);flex-wrap:wrap;}
.bloqueio-row:last-child{border-bottom:none;}
.bloqueio-row .info{font-family:var(--font-mono);font-size:12.5px;color:var(--ink);}
.bloqueio-row .info span{color:var(--gray);}

.lead-row{padding:12px 0;border-bottom:1px solid var(--paper-dim);}
.lead-row:last-child{border-bottom:none;}
.lead-row .top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.lead-row .nome{font-family:var(--font-display);text-transform:uppercase;font-size:13px;letter-spacing:.02em;}
.lead-row .info{font-family:var(--font-mono);font-size:12px;color:var(--gray);line-height:1.7;}
.lead-row .msg{font-size:12.5px;color:var(--ink);margin-top:6px;font-style:italic;}
.credencial-box{background:#EAFBF1;border:1px solid #B9EFD1;border-radius:4px;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.8;color:#12693F;}
.credencial-box.aviso{background:#FFF7E0;border-color:#FFE199;color:#7A5B00;}

/* ---------- Fotos de retirada / entrega ---------- */
.photo-upload-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap;}
.photo-upload-row input[type=file]{font-family:var(--font-mono);font-size:11px;color:var(--gray);max-width:220px;}
.photo-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.photo-thumb{position:relative;width:88px;height:88px;border-radius:4px;overflow:hidden;border:1px solid var(--paper-dim);background:var(--paper);}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;}
.photo-thumb .del-btn{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.7);color:#fff;border:none;border-radius:3px;width:20px;height:20px;font-size:12px;cursor:pointer;line-height:1;}
.photo-empty{font-size:12px;color:var(--gray-light);font-family:var(--font-mono);}
.upload-msg{font-family:var(--font-mono);font-size:11.5px;color:var(--red);margin-top:6px;display:none;}
.upload-msg.show{display:block;}

.table-photo-strip{display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:150px;}
.table-photo-thumb{width:28px;height:28px;border-radius:3px;object-fit:cover;cursor:pointer;border:1px solid var(--paper-dim);flex-shrink:0;}
.table-photo-more{font-family:var(--font-mono);font-size:10px;color:var(--gray);}
.table-photo-add{width:28px;height:28px;border:1.5px dashed var(--gray-light);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--red);cursor:pointer;font-size:16px;line-height:1;flex-shrink:0;}
.table-photo-add:hover{border-color:var(--red);}
.table-photo-add input[type=file]{display:none;}
.table-photo-add.uploading{opacity:.5;pointer-events:none;}

/* ---------- Checkout / pagamento ---------- */
.checkout-wrap{max-width:640px;margin:0 auto;padding:64px 24px 90px;}
.checkout-head{text-align:center;margin-bottom:32px;}
.checkout-head .tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:10px;}
.checkout-head h2{font-family:var(--font-display);font-weight:600;font-size:clamp(24px,3.2vw,32px);margin:0;}
.checkout-card{background:var(--white);border:1px solid var(--paper-dim);border-radius:6px;box-shadow:0 20px 50px -30px rgba(0,0,0,.35);overflow:hidden;margin-bottom:20px;}
.checkout-card .ct-top{background:var(--ink);color:var(--white);padding:16px 24px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;font-size:14px;display:flex;justify-content:space-between;}
.checkout-body{padding:24px;}
.order-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--paper-dim);font-size:14px;}
.order-row:last-child{border-bottom:none;}
.order-row .k{color:var(--gray);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;}
.order-row .v{font-weight:600;text-align:right;}
.order-total{background:var(--paper);border-top:2px solid var(--ink);padding:18px 24px;display:flex;justify-content:space-between;align-items:center;}
.order-total .k{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:14px;}
.order-total .v{font-family:var(--font-mono);font-size:26px;font-weight:700;color:var(--red);}

.demo-banner{background:#FFF7E0;border:1px solid #FFE199;color:#7A5B00;font-size:12.5px;line-height:1.6;padding:14px 16px;border-radius:4px;margin-bottom:20px;}
.demo-banner b{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}

.pay-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.pay-field-grid .full{grid-column:1 / -1;}
@media(max-width:520px){.pay-field-grid{grid-template-columns:1fr;}}
.pay-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.pay-field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);}
.pay-field input{border:1.5px solid var(--paper-dim);border-radius:4px;padding:11px 12px;font-size:14.5px;background:var(--paper);}
.pay-field input:focus{outline:none;border-color:var(--red);background:var(--white);}

.pay-success{text-align:center;padding:50px 24px;}
.pay-success .check{width:56px;height:56px;border-radius:50%;background:var(--ok);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 18px;}
.pay-success h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;font-size:22px;margin:0 0 10px;}
.pay-success p{color:var(--gray);font-size:14px;line-height:1.6;max-width:380px;margin:0 auto;}

.pay-method-tabs{display:flex;gap:8px;margin-bottom:20px;}
.pay-method-tab{
  flex:1;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600;
  padding:12px;border:1.5px solid var(--paper-dim);background:var(--paper);color:var(--gray);border-radius:4px;cursor:pointer;
  transition:all .15s;
}
.pay-method-tab.active{background:var(--ink);border-color:var(--ink);color:var(--white);}

/* ---------- Footer ---------- */
footer.site{background:var(--ink);color:var(--gray-light);padding:44px 24px 30px;}
.footer-inner{max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.footer-inner img{height:32px;opacity:.9;}
.footer-cols{display:flex;gap:60px;flex-wrap:wrap;}
.footer-col h4{font-family:var(--font-display);color:var(--white);text-transform:uppercase;font-size:13px;letter-spacing:.06em;margin:0 0 12px;}
.footer-col p, .footer-col a{display:block;font-size:13px;color:var(--gray-light);text-decoration:none;line-height:1.9;}
.footer-bottom{max-width:1180px;margin:30px auto 0;padding-top:20px;border-top:1px solid #2A2A2A;font-size:11.5px;color:#555;font-family:var(--font-mono);}

.hidden{display:none !important;}

/* ---------- Custom date picker (data de partida) ---------- */
.date-time-row{display:flex;gap:10px;}
.date-picker-wrap{position:relative;flex:1;}
.date-picker-input{width:100%;cursor:pointer;}
#origem-hora{width:118px;flex-shrink:0;}
.date-picker-popup{
  position:fixed;z-index:200;width:290px;max-height:calc(100vh - 24px);overflow-y:auto;
  background:var(--white);border:1px solid var(--paper-dim);border-radius:6px;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.35);padding:16px;
}
.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.dp-header span{font-family:var(--font-display);text-transform:uppercase;font-size:13px;letter-spacing:.03em;color:var(--ink);}
.dp-nav{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;color:var(--gray);padding:4px 10px;border-radius:3px;}
.dp-nav:hover{color:var(--red);background:var(--paper);}
.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-family:var(--font-mono);font-size:10px;color:var(--gray);margin-bottom:6px;}
.dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.dp-day{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:12.5px;border-radius:4px;cursor:pointer;color:var(--ink);
}
.dp-day:hover{background:var(--paper);}
.dp-day.other-month{color:var(--gray-light);cursor:default;}
.dp-day.other-month:hover{background:none;}
.dp-day.today{border:1.5px solid var(--red);font-weight:700;}
.dp-day.selected{background:var(--red);color:var(--white);font-weight:700;}
.dp-day.blocked{background:#8A8A8E;color:#E8E8E6;cursor:not-allowed;text-decoration:line-through;}
.dp-day.blocked:hover{background:#8A8A8E;}
.dp-day.past{color:var(--gray-light);cursor:not-allowed;}
.dp-day.past:hover{background:none;}
.dp-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--paper-dim);}
.dp-link{background:none;border:none;color:var(--red);font-family:var(--font-mono);font-size:11.5px;cursor:pointer;padding:0;text-decoration:underline;}
.dp-legend{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;color:var(--gray);}
.dp-legend-swatch{width:11px;height:11px;border-radius:3px;background:#8A8A8E;display:inline-block;}

/* ---------- WhatsApp floating bubble (client views) ---------- */
.whatsapp-bubble{
  position:fixed;right:22px;bottom:22px;z-index:80;
  width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;
  align-items:center;justify-content:center;box-shadow:0 10px 26px -8px rgba(0,0,0,.5);
  transition:transform .15s;
}
.whatsapp-bubble:hover{transform:scale(1.06);}

/* ---------- Admin: order detail modal ---------- */
.modal-overlay{
  display:none;position:fixed;inset:0;background:rgba(6,6,7,.92);backdrop-filter:blur(4px);z-index:100;
  align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;
}
.modal-overlay.show{display:flex;}
.modal-card{
  background:var(--white);color:var(--ink);border-radius:6px;max-width:760px;width:100%;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.6);
}
.modal-top{
  background:var(--ink);color:var(--white);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;
  border-radius:6px 6px 0 0;
}
.modal-top .title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;font-size:15px;}
.modal-top .actions{display:flex;gap:10px;}
.modal-body{padding:24px;}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
@media(max-width:640px){.modal-grid{grid-template-columns:1fr;}}
.modal-section{margin-bottom:18px;}
.modal-section h4{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gray);margin:0 0 8px;}
.modal-section p{margin:0;font-size:14px;line-height:1.6;}
#modal-map{height:220px;width:100%;border-radius:4px;background:var(--paper-dim);margin-bottom:6px;}

@media print{
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; color-adjust: exact !important; }

  body > *:not(#modal-overlay){ display:none !important; }

  #modal-overlay{
    position:static !important;
    background:#fff !important;
    padding:0 !important;
    display:block !important;
    overflow:visible !important;
    max-height:none !important;
    inset:auto !important;
  }
  .modal-card{box-shadow:none;max-width:100%;}
  .modal-top .actions{display:none;}
  #modal-toggle-entrega, #modal-review-actions, #modal-conflict-box, .photo-upload-row, .del-btn{display:none !important;}
  #modal-map{height:260px;}
  .modal-section, .photo-grid{page-break-inside:avoid;}
}
