/* =========================================================
   MARTINS SEMINOVOS — Identidade visual (Manual de Marca)
   Petróleo #0F2A43 · Grafite #14161A · Champagne #D9A441
   Bronze #A87830 · Off-white #F4F2ED
   Títulos: Rajdhani · Corpo: Inter
   ========================================================= */
:root{
  --petroleo:#0F2A43;
  --petroleo-2:#0A1E32;
  --grafite:#14161A;
  --champagne:#D9A441;
  --bronze:#A87830;
  --offwhite:#F4F2ED;
  --danger:#e2574c;
  --radius:16px;
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body{
  font-family:'Inter',sans-serif;
  background:linear-gradient(160deg,var(--petroleo) 0%,var(--petroleo-2) 55%,var(--grafite) 100%);
  color:var(--offwhite);
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
}
h1,h2,h3,.display{font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:.02em;}

.app{
  position:relative;max-width:480px;margin:0 auto;
  height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;
}

/* ---------- topo (ícone + progresso) ---------- */
.top-bar{display:flex;align-items:center;gap:10px;padding:14px 20px 0;z-index:20;}
.brand-badge{width:24px;height:24px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));}
.progress-wrap{flex:1;display:flex;gap:6px;}
.progress-seg{flex:1;height:3px;border-radius:3px;background:rgba(244,242,237,.15);overflow:hidden;}
.progress-seg i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--bronze),var(--champagne));transition:width .4s ease;}
.progress-seg.done i{width:100%;}
.progress-seg.active i{width:50%;}

/* ---------- steps ---------- */
.stage{flex:1;position:relative;overflow:hidden;}
.step{
  position:absolute;inset:0;display:flex;flex-direction:column;
  padding:20px 20px 24px;opacity:0;transform:translateX(30px);pointer-events:none;
  overflow-y:auto;
  transition:opacity .38s ease,transform .38s ease;
}
.step.active{opacity:1;transform:translateX(0);pointer-events:auto;}
.step.leaving{opacity:0;transform:translateX(-30px);}

.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne);font-weight:600;margin-bottom:6px;}
.q-title{font-size:24px;line-height:1.25;margin:0 0 4px;}
.q-sub{font-size:13.5px;color:rgba(244,242,237,.65);margin:0 0 20px;}

/* ---------- capa ---------- */
.cover-carousel{
  position:relative;border-radius:var(--radius);overflow:hidden;
  height:46vh;min-height:250px;background:#000;box-shadow:0 20px 40px rgba(0,0,0,.35);flex-shrink:0;
}
.cover-carousel .slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity .5s ease;
}
.cover-carousel .slide.active{opacity:1;}
.cover-carousel .slide.placeholder{
  display:flex;align-items:center;justify-content:center;
  font-family:'Rajdhani';font-size:18px;color:rgba(244,242,237,.4);
  background:linear-gradient(135deg,rgba(217,164,65,.22),rgba(15,42,67,.92));
}
.carousel-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:6px;}
.carousel-dots span{width:6px;height:6px;border-radius:50%;background:rgba(244,242,237,.4);transition:.3s;}
.carousel-dots span.active{background:var(--champagne);width:18px;border-radius:4px;}

.brand-row{display:flex;align-items:center;justify-content:center;margin:16px 0 4px;}
.brand-row img{height:38px;width:auto;}

.price-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:14px 0 2px;}
.car-title{font-size:20px;line-height:1.28;margin:0;flex:1;}
.price-tag{
  flex-shrink:0;font-family:'Rajdhani';font-weight:700;font-size:19px;letter-spacing:.01em;
  background:linear-gradient(90deg,var(--bronze),var(--champagne));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  white-space:nowrap;padding-top:2px;
}
.location-tag{
  display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--champagne);
  background:rgba(217,164,65,.1);border:1px solid rgba(217,164,65,.3);
  padding:5px 10px;border-radius:20px;width:fit-content;margin:8px auto 0;
}

/* ---------- ficha técnica ---------- */
.section-label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,242,237,.5);
  font-weight:600;margin:22px 0 10px;
}
.specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.spec-item{
  background:rgba(244,242,237,.04);border:1px solid rgba(244,242,237,.1);border-radius:12px;
  padding:10px 12px;display:flex;flex-direction:column;gap:2px;
}
.spec-item .spec-label{font-size:10.5px;color:rgba(244,242,237,.5);}
.spec-item .spec-value{font-family:'Rajdhani';font-weight:600;font-size:14.5px;color:var(--offwhite);}

.equip-grid{display:flex;flex-wrap:wrap;gap:8px;}
.equip-chip{
  display:flex;align-items:center;gap:6px;font-size:12.5px;color:rgba(244,242,237,.85);
  background:rgba(244,242,237,.04);border:1px solid rgba(244,242,237,.1);
  padding:7px 12px;border-radius:20px;
}
.equip-chip .ck{
  width:14px;height:14px;border-radius:50%;background:rgba(217,164,65,.16);color:var(--champagne);
  display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;
}

.obs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.obs-list li{font-size:13px;color:rgba(244,242,237,.75);display:flex;gap:9px;line-height:1.4;}
.obs-list li .dot{color:var(--champagne);flex-shrink:0;margin-top:1px;}

.spacer{flex:1;min-height:32px;}

/* ---------- opções ---------- */
.options{display:flex;flex-direction:column;gap:10px;}
.opt{
  background:rgba(244,242,237,.04);border:1.5px solid rgba(244,242,237,.14);color:var(--offwhite);
  padding:15px 16px;border-radius:12px;font-size:15px;font-family:'Inter';text-align:left;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;transition:.18s;
}
.opt:active{transform:scale(.98);}
.opt.selected{border-color:var(--champagne);background:rgba(217,164,65,.12);color:var(--champagne);}
.opt .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(244,242,237,.3);flex-shrink:0;margin-left:12px;position:relative;transition:.18s;}
.opt.selected .radio{border-color:var(--champagne);}
.opt.selected .radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--champagne);}

/* ---------- inputs ---------- */
.field{margin-bottom:14px;position:relative;}
.field label{font-size:12px;color:rgba(244,242,237,.6);display:block;margin-bottom:6px;}
.field input{
  width:100%;background:rgba(244,242,237,.06);border:1.5px solid rgba(244,242,237,.16);color:var(--offwhite);
  padding:14px;border-radius:12px;font-size:16px;font-family:'Inter';outline:none;transition:.2s;
}
.field input:focus{border-color:var(--champagne);}
.field input:disabled{opacity:.4;}

/* ---------- picker (abre bottom sheet) ---------- */
.picker{
  width:100%;background:rgba(244,242,237,.06);border:1.5px solid rgba(244,242,237,.16);color:var(--offwhite);
  padding:14px;border-radius:12px;font-size:16px;font-family:'Inter';outline:none;transition:.2s;
  display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;text-align:left;
}
.picker:active{border-color:var(--champagne);}
.picker:disabled{opacity:.4;cursor:default;}
.picker .picker-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.picker.empty .picker-value{color:rgba(244,242,237,.4);}
.picker .picker-chevron{color:var(--champagne);flex-shrink:0;font-size:18px;transform:rotate(90deg);}

/* ---------- bottom sheet ---------- */
.sheet-backdrop{
  position:fixed;inset:0;background:rgba(6,12,20,.6);backdrop-filter:blur(2px);
  z-index:60;opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.sheet-backdrop.show{opacity:1;pointer-events:auto;}
.sheet{
  position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;
  background:var(--petroleo-2);border-radius:20px 20px 0 0;z-index:61;
  padding:10px 20px calc(16px + env(safe-area-inset-bottom));
  max-height:72vh;display:flex;flex-direction:column;
  box-shadow:0 -20px 50px rgba(0,0,0,.5);
  transform:translateY(100%);transition:transform .3s ease;
}
.sheet.show{transform:translateY(0);}
.sheet-handle{width:36px;height:4px;border-radius:3px;background:rgba(244,242,237,.2);margin:2px auto 12px;}
.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.sheet-title{font-family:'Rajdhani';font-weight:700;font-size:17px;}
.sheet-close{
  width:30px;height:30px;border-radius:50%;background:rgba(244,242,237,.08);border:1px solid rgba(244,242,237,.16);
  color:var(--offwhite);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;flex-shrink:0;
}
.sheet-search{
  width:100%;background:rgba(244,242,237,.06);border:1.5px solid rgba(244,242,237,.16);color:var(--offwhite);
  padding:12px 14px;border-radius:12px;font-size:15px;font-family:'Inter';outline:none;margin-bottom:10px;flex-shrink:0;
}
.sheet-search:focus{border-color:var(--champagne);}
.sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;}
.sheet-list .sheet-item{padding:13px 6px;font-size:14.5px;border-bottom:1px solid rgba(244,242,237,.07);cursor:pointer;}
.sheet-list .sheet-item:active{background:rgba(217,164,65,.12);}
.sheet-list .sheet-empty{padding:20px 6px;text-align:center;font-size:13.5px;color:rgba(244,242,237,.45);}

.fipe-badge{
  margin-top:8px;font-size:13px;color:var(--champagne);background:rgba(217,164,65,.08);
  border:1px dashed rgba(217,164,65,.35);padding:10px 12px;border-radius:10px;display:none;
}
.fipe-badge.show{display:block;}
.fipe-badge b{font-family:'Rajdhani';font-size:16px;}
.fipe-badge.loading:before{
  content:"";width:12px;height:12px;border-radius:50%;flex-shrink:0;
  border:2px solid rgba(217,164,65,.3);border-top-color:var(--champagne);
  display:inline-block;margin-right:8px;vertical-align:-2px;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- calendário ---------- */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px;}
.cal-head{font-size:10px;text-align:center;color:rgba(244,242,237,.4);letter-spacing:.05em;}
.cal-day{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:13px;
  background:rgba(244,242,237,.05);border:1px solid transparent;cursor:pointer;transition:.15s;
}
.cal-day.today{border-color:rgba(217,164,65,.45);}
.cal-day.selected{background:var(--champagne);color:var(--petroleo);font-weight:700;}
.time-label{font-size:12px;color:rgba(244,242,237,.6);margin-bottom:8px;}
.time-row{display:flex;gap:8px;flex-wrap:wrap;}
.time-chip{
  padding:9px 14px;border-radius:20px;background:rgba(244,242,237,.06);
  border:1px solid rgba(244,242,237,.16);font-size:13px;cursor:pointer;transition:.15s;
}
.time-chip.selected{background:var(--champagne);color:var(--petroleo);border-color:var(--champagne);font-weight:600;}
.time-chip.disabled{opacity:.28;pointer-events:none;}

/* ---------- resumo ---------- */
.summary-card{background:rgba(244,242,237,.05);border:1px solid rgba(244,242,237,.12);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;}
.summary-row{display:flex;justify-content:space-between;font-size:13.5px;gap:12px;}
.summary-row span:first-child{color:rgba(244,242,237,.55);flex-shrink:0;}
.summary-row b{color:var(--offwhite);font-weight:600;text-align:right;}

/* ---------- FAB (capa e conclusão) ---------- */
.fab-wrap{position:sticky;bottom:0;padding-top:12px;z-index:30;}
.fab{
  width:100%;padding:17px 20px;border:none;border-radius:50px;cursor:pointer;
  background:linear-gradient(90deg,var(--bronze),var(--champagne));color:var(--petroleo-2);
  font-family:'Rajdhani';font-weight:700;font-size:16.5px;letter-spacing:.02em;
  display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 12px 30px rgba(217,164,65,.35);transition:transform .15s ease,box-shadow .15s ease;
}
.fab:active{transform:scale(.97);}

/* ---------- botão flutuante acima do teclado ---------- */
.next-float{
  position:fixed;left:20px;right:20px;bottom:18px;z-index:50;max-width:440px;margin:0 auto;
  transform:translateY(120%);opacity:0;pointer-events:none;
  transition:transform .28s ease,opacity .28s ease,bottom .15s ease;
}
.next-float.show{transform:translateY(0);opacity:1;pointer-events:auto;}
.next-float button{
  width:100%;padding:16px;border:none;border-radius:14px;cursor:pointer;
  background:var(--champagne);color:var(--petroleo-2);font-family:'Rajdhani';font-weight:700;font-size:15.5px;
  box-shadow:0 10px 24px rgba(0,0,0,.4);
}

/* ---------- voltar ---------- */
.back-btn{
  position:absolute;top:16px;right:16px;z-index:25;width:34px;height:34px;border-radius:50%;
  background:rgba(244,242,237,.08);border:1px solid rgba(244,242,237,.16);color:var(--offwhite);
  font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;
}

/* acessibilidade */
button:focus-visible,input:focus-visible{outline:2px solid var(--champagne);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
