/* ==========================================================================
   Insure Auto Haulers — Shared Design System
   Bold Industrial aesthetic. One stylesheet for the entire site.
   ========================================================================== */

:root{
  --bg:#0c0e12; --bg-2:#0a0c10; --panel:#14171d; --panel-2:#191d25;
  --ink:#f5f5f5; --muted:#9aa0ab; --muted-2:#c8ccd3;
  --line:#252a33; --line-2:#2e3440;
  --accent:#ff6a00; --accent-h:#ff7b1a; --accent-2:#ffb703;
  --ok:#37d399; --warn:#ffb703; --err:#ff4d4d;
  --radius:2px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a.link{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
a.link:hover{color:var(--accent)}
img{max-width:100%;display:block}
button{font-family:inherit}

.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.wrap-sm{max-width:760px;margin:0 auto;padding:0 24px}
.wrap-md{max-width:920px;margin:0 auto;padding:0 24px}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;z-index:30;background:rgba(12,14,18,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.site .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{display:flex;align-items:center;gap:12px;font-family:"Archivo Black",Inter,sans-serif;font-size:17px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink)}
.logo-mark{width:38px;height:38px;background:var(--accent);display:grid;place-items:center;clip-path:polygon(0 0,100% 0,85% 100%,15% 100%)}
.navlinks{display:flex;gap:26px;font-size:14px;color:var(--muted)}
.navlinks a:hover{color:var(--ink)}
.call{background:var(--accent);color:#0c0e12;padding:11px 18px;font-weight:700;font-size:13.5px;border-radius:var(--radius);letter-spacing:.03em}
.call:hover{background:var(--accent-h)}

/* ---------- Footer ---------- */
footer.site{padding:28px 0;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}
footer.site .foot{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center}
footer.site a:hover{color:var(--ink)}
footer.site .footlinks{display:flex;gap:18px;flex-wrap:wrap}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:"Archivo Black",Inter,sans-serif;letter-spacing:-.01em;margin:0;text-transform:uppercase}
h1{font-size:clamp(38px,5.4vw,72px);line-height:.96}
h2{font-size:clamp(30px,3.6vw,44px);line-height:1}
h3{font-size:22px}
h4{font-size:16px;letter-spacing:.04em}
p{line-height:1.6;color:var(--muted-2)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);padding:6px 10px;border:1px solid rgba(255,183,3,.3);border-radius:var(--radius);font-family:"JetBrains Mono",Menlo,monospace}
.eyebrow .dot{width:6px;height:6px;background:var(--accent-2);border-radius:50%;box-shadow:0 0 10px var(--accent-2)}
.kicker{display:inline-block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:12px;font-family:"JetBrains Mono",Menlo,monospace}
.mono{font-family:"JetBrains Mono",Menlo,monospace}

/* ---------- Panels / cards ---------- */
.panel{background:var(--panel);border:1px solid var(--line);padding:26px;border-radius:var(--radius)}
.panel-accent{background:var(--panel);border:1px solid var(--line);padding:26px;border-radius:var(--radius);position:relative}
.panel-accent::before{content:"";position:absolute;left:-1px;top:-1px;right:-1px;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent))}

/* ---------- Form fields ---------- */
.field{display:block;margin-bottom:14px}
.field>label,.field .fld-label{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px;font-weight:600}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=number],.field input[type=date],.field select,.field textarea{
  width:100%;padding:13px 14px;background:#0c0e12;border:1px solid var(--line);color:var(--ink);font-size:16px;font-family:inherit;border-radius:var(--radius)
}
.field textarea{min-height:90px;resize:vertical;line-height:1.45}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,106,0,.15)}
.field.err input,.field.err select,.field.err textarea{border-color:var(--err);box-shadow:0 0 0 3px rgba(255,77,77,.15)}
.field .hint{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}
.field .err-msg{display:none;font-size:12.5px;color:var(--err);margin-top:5px}
.field.err .err-msg{display:block}
.row{display:grid;gap:12px}
.row-2{grid-template-columns:1fr 1fr}
.row-3{grid-template-columns:1fr 1fr 1fr}
.row-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:640px){.row-2,.row-3,.row-4{grid-template-columns:1fr}}

.check,.radio{display:flex;align-items:center;gap:10px;margin:10px 0;color:var(--muted-2);font-size:14.5px;cursor:pointer;user-select:none;line-height:1.4}
.check input,.radio input{accent-color:var(--accent);width:18px;height:18px;flex-shrink:0}

/* Y/N tile pair (tap targets) */
.yn{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 4px}
.yn .yn-opt{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted-2);font-family:"JetBrains Mono",Menlo,monospace;font-size:13px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:var(--radius);transition:all .12s}
.yn .yn-opt:hover{border-color:var(--line-2);color:var(--ink)}
.yn .yn-opt.sel{border-color:var(--accent);color:var(--ink);background:rgba(255,106,0,.08);box-shadow:inset 0 0 0 1px var(--accent)}
.yn input{display:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 22px;background:var(--accent);color:#0c0e12;border:none;font-family:"Archivo Black",Inter,sans-serif;font-size:14.5px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:var(--radius);transition:transform .06s,background .15s;text-align:center}
.btn:hover{transform:translateY(-1px);background:var(--accent-h)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-block{display:flex;width:100%}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.btn-ghost:hover{background:var(--panel);border-color:var(--accent)}
.btn-sm{padding:10px 14px;font-size:13px}
.btn-lg{padding:18px 34px;font-size:16px}
.btn .sp{width:14px;height:14px;border:2px solid rgba(12,14,18,.3);border-top-color:#0c0e12;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

.tiny{font-size:12px;color:var(--muted);line-height:1.5}
.tiny-center{font-size:12px;color:var(--muted);text-align:center;margin-top:12px;line-height:1.5}

/* ---------- Chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{font-size:10.5px;padding:5px 9px;border:1px solid var(--line);color:var(--muted-2);border-radius:var(--radius);text-transform:uppercase;letter-spacing:.05em;background:rgba(255,255,255,.02);white-space:nowrap}
.chip-ok{border-color:rgba(55,211,153,.4);color:var(--ok)}
.chip-warn{border-color:rgba(255,183,3,.4);color:var(--warn)}
.chip-err{border-color:rgba(255,77,77,.4);color:var(--err)}

/* ---------- Banners / alerts ---------- */
.banner{padding:14px 18px;border-radius:var(--radius);font-size:14px;margin:16px 0;border:1px solid;line-height:1.5}
.banner.info{background:rgba(255,106,0,.06);border-color:rgba(255,106,0,.3);color:#ffd1b0}
.banner.ok{background:rgba(55,211,153,.06);border-color:rgba(55,211,153,.3);color:#b0f0d9}
.banner.warn{background:rgba(255,183,3,.08);border-color:rgba(255,183,3,.35);color:#ffe08a}
.banner.err{background:rgba(255,77,77,.06);border-color:rgba(255,77,77,.3);color:#ffb3b3}

/* ---------- App shell (apply.html) ---------- */
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.app-bar{position:sticky;top:0;z-index:25;background:rgba(12,14,18,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.app-bar .inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:16px}
.app-bar .progress-strip{flex:1;max-width:520px;height:4px;background:var(--panel);border-radius:2px;overflow:hidden;margin:0 16px}
.app-bar .progress-strip span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .25s}
.app-bar .save-state{font-size:11.5px;color:var(--muted);font-family:"JetBrains Mono",Menlo,monospace;letter-spacing:.08em;display:flex;align-items:center;gap:6px;white-space:nowrap}
.app-bar .save-state.saved .led{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.app-bar .save-state .led{width:6px;height:6px;border-radius:50%;background:var(--muted)}
@media (max-width:720px){.app-bar .progress-strip{max-width:none}}

.app-body{flex:1;padding:40px 0 80px}
.step-head{margin-bottom:26px}
.step-head .stepno{display:inline-block;font-family:"JetBrains Mono",Menlo,monospace;font-size:11.5px;color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
.step-head h2{font-size:clamp(26px,3.2vw,36px);margin:0 0 6px}
.step-head p{margin:0;color:var(--muted);font-size:15px;max-width:620px}

.step-group{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:24px;margin-bottom:20px}
.step-group>h4{margin:0 0 16px;color:var(--accent-2);font-size:13px;letter-spacing:.15em;border-bottom:1px dashed var(--line);padding-bottom:10px}

.step-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.step-nav .spacer{flex:1}

/* Step rail (sidebar nav) */
.app-layout{display:grid;grid-template-columns:240px 1fr;gap:40px}
.step-rail{position:sticky;top:80px;align-self:start;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:18px 0;font-size:13.5px}
.step-rail ol{list-style:none;margin:0;padding:0;counter-reset:rail}
.step-rail li{padding:9px 18px;display:flex;align-items:center;gap:10px;color:var(--muted);cursor:pointer;position:relative;border-left:2px solid transparent;counter-increment:rail}
.step-rail li::before{content:counter(rail,decimal-leading-zero);font-family:"JetBrains Mono",Menlo,monospace;font-size:11px;color:var(--muted);letter-spacing:.08em}
.step-rail li.active{color:var(--ink);border-left-color:var(--accent);background:rgba(255,106,0,.05)}
.step-rail li.active::before{color:var(--accent)}
.step-rail li.done{color:var(--muted-2)}
.step-rail li.done::before{color:var(--ok)}
.step-rail li:hover:not(.active){color:var(--ink)}
@media (max-width:960px){.app-layout{grid-template-columns:1fr}.step-rail{display:none}}

/* ---------- Upload widget ---------- */
.upload{border:2px dashed var(--line-2);border-radius:var(--radius);padding:22px;text-align:center;background:var(--panel-2);cursor:pointer;transition:border-color .15s,background .15s}
.upload:hover,.upload.drag{border-color:var(--accent);background:rgba(255,106,0,.04)}
.upload svg{width:28px;height:28px;color:var(--accent);margin-bottom:8px}
.upload .main{font-family:"Archivo Black";font-size:14px;letter-spacing:.05em;margin-bottom:4px}
.upload .sub{font-size:12.5px;color:var(--muted)}
.upload input{display:none}
.upload-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.upload-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);font-size:13.5px}
.upload-item .meta{color:var(--muted);font-size:12px;font-family:"JetBrains Mono",Menlo,monospace}
.upload-item .x{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px 8px;font-size:18px;line-height:1}
.upload-item .x:hover{color:var(--err)}

/* ---------- Tables (vehicle/driver schedules) ---------- */
table.sched{width:100%;border-collapse:collapse;font-size:13.5px;margin:10px 0}
table.sched th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-family:"JetBrains Mono",Menlo,monospace}
table.sched td{padding:8px;border-bottom:1px solid var(--line)}
table.sched td input,table.sched td select{width:100%;padding:8px;background:#0c0e12;border:1px solid var(--line);color:var(--ink);font-size:13px;border-radius:var(--radius)}
table.sched .rm{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:12px;padding:6px 8px;border-radius:var(--radius);cursor:pointer}
table.sched .rm:hover{color:var(--err);border-color:var(--err)}

/* ---------- Utility ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.hidden{display:none !important}
.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}
.text-center{text-align:center}
.divider{height:1px;background:var(--line);margin:24px 0}
.hr-dashed{height:0;border-top:1px dashed var(--line);margin:20px 0}

/* ---------- Centered branch pages ---------- */
.pg-center{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}
.pg-center .pg-card{max-width:620px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:40px;position:relative}
.pg-center .pg-card.accent::before{content:"";position:absolute;left:-1px;top:-1px;right:-1px;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent))}
.pg-center .pg-icon{width:64px;height:64px;background:rgba(255,106,0,.1);border:1px solid rgba(255,106,0,.35);border-radius:var(--radius);display:grid;place-items:center;margin-bottom:20px;color:var(--accent)}

/* ---------- Dot match card ---------- */
.match-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:20px}
.match-card .kv{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:14px;margin-top:12px}
.match-card .kv dt{color:var(--muted);font-family:"JetBrains Mono",Menlo,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.08em;padding-top:2px}
.match-card .kv dd{margin:0;color:var(--ink)}
.match-card h3{font-size:20px;margin:0}

/* ---------- Minor a11y focus style ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Print (for submitted-app summary) */
@media print{
  header.site,footer.site,.app-bar,.step-rail{display:none !important}
  body{background:#fff;color:#000}
  .panel,.step-group,.match-card{background:#fff;border-color:#ccc;color:#000}
}
