/* Convoy Service Logistics — styles. Generated from the Claude prototype (artifact v89+), 2026-10-28. */
:root{
  --ground:#EDF1F6; --surface:#FFFFFF; --surface-2:#F5F7FA; --ink:#0E1A2B; --ink-2:#3A4A60; --muted:#66768C; --line:#D9E0EA; --line-2:#E7ECF2;
  --navy:#0B1B33; --navy-2:#11243F; --navy-ink:#AFBDD0; --navy-hi:#FFFFFF; --navy-active:#1C3B67;
  --primary:#16498F; --primary-hover:#123D78; --primary-ink:#FFFFFF; --primary-soft:#E3EBF6;
  --red:#C3322E; --red-soft:#FBE8E7; --amber:#A96A06; --amber-soft:#FBF0DA; --green:#1C8452; --green-soft:#E0F2E9;
  --blue:#2B63BF; --blue-soft:#E4ECFA; --teal:#0B7A82; --teal-soft:#DCF0F1; --violet:#6A47B8; --violet-soft:#EEE8F9; --slate:#55657A; --slate-soft:#E9EDF2;
  --shadow:0 1px 2px rgba(14,26,43,.06),0 2px 8px rgba(14,26,43,.04);
  --pop:0 18px 50px rgba(8,20,40,.22);
  --logo-light:block; --logo-dark:none;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#08111D; --surface:#0F1B2B; --surface-2:#142336; --ink:#E4EAF2; --ink-2:#B5C1D1; --muted:#8392A7; --line:#22324A; --line-2:#1A293D;
    --navy:#050C17; --navy-2:#0B1626; --navy-ink:#8FA0B8; --navy-hi:#FFFFFF; --navy-active:#18314F;
    --primary:#5A93E6; --primary-hover:#79A8EE; --primary-ink:#06101E; --primary-soft:#162A48;
    --red:#EF7470; --red-soft:#3A1C1E; --amber:#E4AC4C; --amber-soft:#35280F; --green:#50C28C; --green-soft:#10301F;
    --blue:#7AA6EE; --blue-soft:#152847; --teal:#56C3C9; --teal-soft:#0E2E32; --violet:#B39AF0; --violet-soft:#261C42; --slate:#A3B1C4; --slate-soft:#1C2A3D;
    --shadow:0 1px 2px rgba(0,0,0,.3); --pop:0 18px 50px rgba(0,0,0,.55);
    --logo-light:none; --logo-dark:block;
  }
}
:root[data-theme="dark"]{
    --ground:#08111D; --surface:#0F1B2B; --surface-2:#142336; --ink:#E4EAF2; --ink-2:#B5C1D1; --muted:#8392A7; --line:#22324A; --line-2:#1A293D;
    --navy:#050C17; --navy-2:#0B1626; --navy-ink:#8FA0B8; --navy-hi:#FFFFFF; --navy-active:#18314F;
    --primary:#5A93E6; --primary-hover:#79A8EE; --primary-ink:#06101E; --primary-soft:#162A48;
    --red:#EF7470; --red-soft:#3A1C1E; --amber:#E4AC4C; --amber-soft:#35280F; --green:#50C28C; --green-soft:#10301F;
    --blue:#7AA6EE; --blue-soft:#152847; --teal:#56C3C9; --teal-soft:#0E2E32; --violet:#B39AF0; --violet-soft:#261C42; --slate:#A3B1C4; --slate-soft:#1C2A3D;
    --shadow:0 1px 2px rgba(0,0,0,.3); --pop:0 18px 50px rgba(0,0,0,.55);
    --logo-light:none; --logo-dark:block;
}
*{box-sizing:border-box}
html,body{height:100%}
#root{min-height:100%;display:flex;flex-direction:column}
#root>*{flex:1 0 auto}
body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--display);font-stretch:112%;margin:0;text-wrap:balance;letter-spacing:-.005em}
.mono{font-family:var(--mono);font-size:.92em;letter-spacing:.02em}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
a{color:var(--primary)}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ---------- Login ---------- */
.login{min-height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:var(--ground)}
.login-hero{position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;gap:36px;padding:44px clamp(28px,5vw,72px) 32px;
  background:
    radial-gradient(900px 520px at 85% -10%,rgba(74,128,204,.34),transparent 60%),
    radial-gradient(700px 500px at -10% 110%,rgba(30,70,130,.45),transparent 60%),
    linear-gradient(160deg,#0D2140 0%,#0A1A31 55%,#081528 100%)}
.login-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask:radial-gradient(ellipse at 70% 30%,#000 10%,transparent 70%);mask:radial-gradient(ellipse at 70% 30%,#000 10%,transparent 70%)}
.login-hero>*{position:relative}
.login-logo{width:200px;height:auto;display:block}
.hero-copy{max-width:540px;margin-top:auto}
.hero-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#8FB3E6}
.hero-title{font-family:var(--display);font-stretch:112%;font-weight:700;font-size:clamp(30px,3.4vw,44px);line-height:1.08;letter-spacing:-.015em;margin:0;color:#fff;text-wrap:balance}
.hero-lede{margin:16px 0 0;font-size:16px;line-height:1.6;color:#B9C8DC;max-width:500px}
.hero-rail{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));max-width:600px;position:relative}
.hero-rail::before{content:"";position:absolute;left:6px;right:calc(100% / 6 - 6px);top:5px;height:2px;background:linear-gradient(90deg,#4F8BE0,rgba(79,139,224,.25))}
.hero-rail li{position:relative;padding-top:22px;padding-right:6px}
.hero-rail i{position:absolute;top:0;left:0;width:12px;height:12px;border-radius:50%;background:#0B1B33;border:2px solid #5A93E6;box-shadow:0 0 0 4px rgba(90,147,230,.12);animation:railpulse 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .45s)}
.hero-rail li:last-child i{background:#50C28C;border-color:#50C28C}
.hero-rail span{display:block;font-size:11.5px;line-height:1.3;color:#C9D6E8}
@keyframes railpulse{0%,70%,100%{box-shadow:0 0 0 4px rgba(90,147,230,.12)}35%{box-shadow:0 0 0 7px rgba(90,147,230,.28)}}
.hero-points{list-style:none;margin:0;padding:22px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border-top:1px solid rgba(255,255,255,.1);max-width:640px}
.hero-points li{display:flex;gap:10px;align-items:flex-start}
.hero-points svg{width:20px;height:20px;color:#7FAAE8;flex:none;margin-top:1px}
.hero-points b{display:block;font-size:13.5px;font-weight:600;color:#fff}
.hero-points span{display:block;font-size:12.5px;color:#9FB2CC}
.hero-foot{margin:0;font-size:12px;color:#7D90AA}
.login-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:48px 24px}
.login-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(14,26,43,.04),0 24px 60px -24px rgba(14,26,43,.28);overflow:hidden}
.login-card-head{padding:30px 32px 0}
.login-card-head h2{font-size:26px;font-weight:700}
.login-card-head p{margin:6px 0 0;color:var(--muted)}
.portal-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 32px 0}
.portal-tabs button{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);transition:border-color .15s,background .15s,box-shadow .15s}
.portal-tabs button:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}
.portal-tabs button[aria-selected="true"]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.portal-tabs svg{width:22px;height:22px;flex:none}
.portal-tabs b{display:block;font-size:14px;font-weight:600;color:var(--ink)}
.portal-tabs button[aria-selected="true"] b{color:var(--primary)}
.portal-tabs small{display:block;font-size:11.5px;color:var(--muted);line-height:1.3}
.login-body{padding:22px 32px 28px}
.login .field label{font-size:13px}
.login .input{min-height:46px;border-radius:9px;font-size:15px;padding:10px 13px;background:var(--surface)}
.login-submit{min-height:48px;border-radius:9px;font-size:15px;margin-top:6px}
.login-submit svg{width:17px;height:17px}
.login-links{display:flex;justify-content:center;margin-top:14px}
.login-help{margin:0;font-size:13px;color:var(--muted)}
.login-help a{font-weight:600;text-decoration:none}
.login-help a:hover{text-decoration:underline}
.demo-note{margin:20px 0 0;font-size:12.5px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line-2);border-radius:9px;padding:12px 14px}
@media (max-width:1100px){.hero-points{grid-template-columns:minmax(0,1fr)}.hero-rail span{font-size:10.5px}}
@media (max-width:860px){
  .login{grid-template-columns:minmax(0,1fr)}
  .login-hero{gap:22px;padding:28px 20px 26px}
  .login-logo{width:150px}
  .hero-copy{margin-top:0}
  .hero-lede{font-size:14.5px}
  .hero-rail,.hero-points,.hero-foot{display:none}
  .login-side{padding:24px 16px 40px;justify-content:flex-start}
  .login-card-head,.portal-tabs,.login-body{padding-left:20px;padding-right:20px}
  .portal-tabs small{display:none}
}
/* ---------- Form controls ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label,.lbl{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.input,select.input,textarea.input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:9px 11px;min-height:38px;transition:border-color .15s}
.input:hover{border-color:color-mix(in srgb,var(--line) 50%,var(--muted))}
.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
textarea.input{min-height:90px;resize:vertical}
.input-money{position:relative}.input-money span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}.input-money .input{padding-left:24px;text-align:right}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;padding:8px 14px;min-height:36px;font-weight:600;font-size:13.5px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;transition:background .15s,border-color .15s}
.btn:hover{background:var(--surface-2)}
a.btn{text-decoration:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn.primary:hover{background:var(--primary-hover)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--primary)}
.btn.ghost:hover{background:var(--primary-soft)}
.btn.sm{min-height:30px;padding:5px 10px;font-size:12.5px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn svg{width:16px;height:16px;flex:none}

/* ---------- App shell ---------- */
.app{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100%}
.side{background:var(--navy);color:var(--navy-ink);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}
.side .brand{padding:6px 8px 20px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px}
.side .brand img{width:100%;height:auto;display:block}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;align-items:center;gap:11px;border:0;background:transparent;color:var(--navy-ink);padding:10px 12px;border-radius:6px;cursor:pointer;font-weight:500;text-align:left;width:100%}
.nav button:hover{color:var(--navy-hi);background:rgba(255,255,255,.05)}
.nav button[aria-current="page"]{background:var(--navy-active);color:var(--navy-hi)}
.nav button span:not(.count){white-space:nowrap}
.nav svg{width:18px;height:18px;flex:none}
.nav .count{margin-left:auto;font-size:11.5px;font-weight:600;background:rgba(255,255,255,.1);color:#fff;border-radius:10px;padding:1px 7px}
.side-foot{margin-top:auto;font-size:12px;border-top:1px solid rgba(255,255,255,.08);padding:14px 8px 0;display:flex;flex-direction:column;gap:4px}
.sync{display:flex;align-items:center;gap:8px;color:#D6DFEC;font-weight:500}
.sync i{width:8px;height:8px;border-radius:50%;background:#E4AC4C;flex:none}
.sync.live i{background:#50C28C;box-shadow:0 0 0 3px rgba(80,194,140,.2)}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:14px;padding:12px 28px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.search{position:relative;flex:1;max-width:420px}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted)}
.search .input{padding-left:34px;background:var(--surface-2)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.icon-btn{position:relative;border:0;background:transparent;border-radius:6px;width:38px;height:38px;display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg{width:19px;height:19px}
.icon-btn .dot{position:absolute;top:5px;right:4px;min-width:16px;height:16px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.acct{display:flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;border-radius:8px;padding:5px 8px;cursor:pointer;text-align:left}
.acct:hover{background:var(--surface-2)}
.avatar{width:32px;height:32px;border-radius:6px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:12px;flex:none}
.acct b{display:block;font-size:13px}.acct small{display:block;color:var(--muted);font-size:11.5px}
.menu{position:absolute;right:28px;top:60px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--pop);padding:6px;min-width:230px;z-index:40}
.menu button{display:flex;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:5px;cursor:pointer;text-align:left;gap:8px;align-items:center}
.menu button:hover,.menu .menu-link:hover{background:var(--surface-2)}
.menu .menu-link{display:flex;width:100%;padding:9px 10px;border-radius:5px;gap:8px;align-items:center;color:var(--ink);text-decoration:none}
.menu svg{width:16px;height:16px}
.menu .sep{height:1px;background:var(--line-2);margin:5px 0}
.menu .head{padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.content{padding:26px 28px 48px;display:flex;flex-direction:column;gap:20px;max-width:1360px;width:100%}
.page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.page-head h1{font-size:26px;font-weight:700}
.page-head p{margin:4px 0 0;color:var(--muted)}
.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.crumb{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:6px}
.crumb button{border:0;background:none;color:var(--primary);cursor:pointer;padding:0;font-weight:500}

/* ---------- Surfaces ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:0}
.card-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.card-h h2{font-size:15px;font-weight:700}
.card-h .link{margin-left:auto}
.card-b{padding:16px 18px}
.grid{display:grid;gap:20px}
.g-2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.g-2e{grid-template-columns:repeat(2,minmax(0,1fr))}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kpi{display:flex;gap:14px;align-items:center;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);text-align:left;cursor:pointer;transition:border-color .15s,transform .15s}
.kpi:hover{border-color:var(--primary)}
.kpi .ic{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;flex:none}
.kpi .ic svg{width:22px;height:22px}
.kpi b{font-family:var(--display);font-stretch:112%;font-size:26px;font-weight:700;line-height:1.05;display:block;font-variant-numeric:tabular-nums}
.kpi span{font-size:12.5px;color:var(--muted)}
.t-red{--c:var(--red);--s:var(--red-soft)} .t-amber{--c:var(--amber);--s:var(--amber-soft)} .t-green{--c:var(--green);--s:var(--green-soft)}
.t-blue{--c:var(--blue);--s:var(--blue-soft)} .t-violet{--c:var(--violet);--s:var(--violet-soft)} .t-slate{--c:var(--slate);--s:var(--slate-soft)} .t-teal{--c:var(--teal);--s:var(--teal-soft)} .t-navy{--c:var(--primary);--s:var(--primary-soft)} .t-gray{--c:var(--muted);--s:var(--surface-2)}
.kpi .ic{background:var(--s);color:var(--c)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--c);background:var(--s);padding:3px 9px 3px 8px;border-radius:999px;white-space:nowrap}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--c)}
.sev{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:4px;color:var(--c);border:1px solid var(--c)}
.sev.High{--c:var(--red)}.sev.Medium{--c:var(--amber)}.sev.Low{--c:var(--blue)}

/* ---------- Tables ---------- */
.inv-sum{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line-2);font-size:13.5px;background:var(--surface-2,transparent)}.inv-sum .muted{font-size:12.5px;flex-basis:100%}.email-inv{width:100%;border-collapse:collapse;font-size:13px}.email-inv th,.email-inv td{white-space:normal;padding:6px 8px;border-bottom:1px solid var(--line-2);text-align:left}.email-inv th{white-space:normal;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.email-inv .right{text-align:right}.email-inv tfoot td{border-bottom:0}
.btn.danger-text{color:var(--red)}.btn.danger-text:hover{border-color:var(--red)}
.scope-pick{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:var(--surface);height:38px}.scope-pick svg{width:16px;height:16px;color:var(--primary);flex:none}.scope-pick select{border:0;background:transparent;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);max-width:220px;padding:6px 2px;cursor:pointer}.scope-pick select:focus{outline:none}.scope-pick:focus-within{border-color:var(--primary)}
@media (max-width:760px){.scope-pick select{max-width:120px}}
.user-list{display:flex;flex-direction:column;margin-top:12px}.user-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:6px 14px;padding:12px 18px;border-top:1px solid var(--line-2);align-items:center}.user-row .sub{display:block}.user-row .u-foot{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-row .u-act{margin-left:auto}.user-row .u-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.user-row .u-main,.user-row .u-role{min-width:0;overflow-wrap:anywhere}
.safety-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px 2px 5px;border-radius:4px;color:#fff;background:var(--red);vertical-align:middle;white-space:nowrap}.safety-tag svg{width:12px;height:12px}.safety-tag.sm{display:flex;width:max-content;margin:0 0 3px;font-size:10px;padding:1px 6px 1px 4px}.sm-check{padding:7px 12px;font-size:13.5px}
.modal.wide{max-width:760px}
.legal-tabs{display:flex;gap:8px;margin-bottom:14px;position:sticky;top:-18px;background:var(--surface);padding:6px 0;z-index:1}
.legal{font-size:14px;line-height:1.6;color:var(--ink-2)}.legal h3{font-size:15px;color:var(--ink);margin:18px 0 6px}.legal ul{padding-left:20px;margin:6px 0}.legal li{margin:3px 0}.legal p{margin:6px 0}
.legal-draft{background:color-mix(in srgb,var(--amber) 16%,transparent);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);color:var(--ink);padding:8px 12px;border-radius:6px;font-size:13px;font-weight:600}
.side-legal{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;opacity:.85}.side-legal:hover{opacity:1}
.tos-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#0B1A2E,#10294a)}
.tos-card{width:100%;max-width:560px;background:var(--surface);border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.tos-logo{display:block;height:64px;margin:0 auto;padding:18px 0;box-sizing:content-box;width:100%;object-fit:contain;background:#0E1A2B}
.tos-body{padding:24px 28px 26px}.tos-body h1{font-family:var(--display,inherit);font-size:24px;margin:0 0 6px}.tos-body>p{margin:0 0 16px;color:var(--ink-2)}
.tos-docs{display:grid;gap:8px;margin-bottom:14px}.tos-doc{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);cursor:pointer;font:inherit;color:var(--ink)}.tos-doc:hover{border-color:var(--primary)}.tos-doc svg{width:20px;height:20px;color:var(--primary);flex:none}.tos-doc span{flex:1}.tos-doc small{display:block;color:var(--muted);font-size:12.5px}.tos-doc svg:last-child{width:15px;height:15px;color:var(--muted)}
.tos-points{margin:0 0 16px;padding-left:18px;color:var(--ink-2);font-size:13.5px}.tos-points li{margin:4px 0}
.tos-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.cert-box{border:1px solid var(--line);border-left:3px solid var(--primary);background:var(--surface-2);border-radius:6px;padding:10px 12px;font-size:13px;margin-top:8px;color:var(--ink)}
details.declined-card>summary{cursor:pointer;list-style:none}details.declined-card>summary::-webkit-details-marker{display:none}
.bs-table th{white-space:normal;vertical-align:bottom}
ul.elig{margin:6px 0;padding-left:18px}ul.elig li{margin:2px 0}
.as-bar{display:flex;align-items:center;gap:10px;padding:8px 20px;background:#FFF4D6;color:#5A4200;border-bottom:1px solid #E8C860;font-size:13px}.as-bar svg{width:16px;height:16px;flex:none}.as-bar span{flex:1}
.make-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.make-grid .check{padding:8px 10px;font-size:13px}
@media (max-width:620px){.make-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sm-sel{width:auto;padding:5px 8px;font-size:12.5px;height:auto;min-width:0}
.bill-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bill-sum>div{background:var(--surface-2);border-radius:8px;padding:10px 12px}.bill-sum span{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
@media (max-width:620px){.bill-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bill-sum .pill{white-space:normal}
.fee-row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);padding:4px 0 0}
.input.autofilled{background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 55%,var(--line))}
.bill-sum small{display:block;margin-top:2px;font-size:11.5px}
.mobile-tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:#0B5C63;background:var(--teal-soft);border:1px solid color-mix(in srgb,var(--teal) 35%,transparent);border-radius:999px;padding:2px 8px 2px 6px;white-space:nowrap;vertical-align:middle}.mobile-tag svg{width:13px;height:13px}
.mobile-tag.sm{font-size:10.5px;padding:1px 7px 1px 5px;margin-left:4px}
.where-opt span small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}
.req-card{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid color-mix(in srgb,var(--violet) 30%,var(--line));background:var(--violet-soft);border-radius:8px;font-size:13.5px;margin-top:6px}
.req-card .req-act{display:flex;gap:6px;flex-wrap:wrap}.req-block .card-h h2{display:flex;align-items:center;gap:8px}.req-block .card-h h2 svg{width:18px;height:18px;color:var(--violet)}
.t-violet{--c:var(--violet);--s:var(--violet-soft)}
.rt-fleet th,.rt-fleet td{padding-left:9px;padding-right:9px}.rt-fleet .dis{padding-left:6px;padding-right:6px}
.pm-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-top:6px}.pm-row svg{width:18px;height:18px;color:var(--primary)}
.pm-box{border:1px dashed var(--line);border-radius:8px;padding:12px;margin-top:8px;font-size:13px;background:var(--surface-2)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2);align-items:center}
.toolbar .search{max-width:280px;min-width:180px}
.toolbar select.input{width:auto;min-width:140px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;text-align:left;padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}
td.wrap{white-space:normal;min-width:180px}
tbody tr{transition:background .12s}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:var(--surface-2)}
tbody tr:last-child td{border-bottom:0}
td .sub{display:block;font-size:12px;color:var(--muted)}
.right{text-align:right}
.pager{display:flex;align-items:center;gap:6px;padding:12px 18px;border-top:1px solid var(--line-2);flex-wrap:wrap}
.pager .muted{margin-right:auto;font-size:12.5px}
.pager button{min-width:32px;height:32px;border:1px solid var(--line);background:var(--surface);border-radius:6px;cursor:pointer}
.pager button[aria-current="true"]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.empty{padding:36px 18px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink-2);display:inline-flex;gap:7px;align-items:center}
.chip span{color:var(--muted);font-weight:500}
.chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.chip[aria-pressed="true"] span{color:inherit;opacity:.8}

/* ---------- Pipeline + charts ---------- */
.pipe{display:flex;height:14px;border-radius:4px;overflow:hidden;background:var(--surface-2);gap:2px}
.pipe div{background:var(--c);min-width:3px}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px;margin-top:16px}
.legend button{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:6px 0;cursor:pointer;text-align:left}
.legend i{width:10px;height:10px;border-radius:2px;background:var(--c);flex:none}
.legend b{margin-left:auto;font-variant-numeric:tabular-nums;font-family:var(--display);font-stretch:112%}
.bars{display:flex;flex-direction:column;gap:10px}
.bar-row{display:grid;grid-template-columns:200px minmax(0,1fr) 48px;gap:12px;align-items:center;font-size:13px}
.bar-row .track{height:10px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.bar-row .track div{height:100%;background:var(--primary);border-radius:3px}
.bar-row b{text-align:right;font-variant-numeric:tabular-nums}
.sync-card{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.sync-card .ic{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex:none}
.sync-card .ic svg{width:22px;height:22px}
.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Activity ---------- */
.feed{display:flex;flex-direction:column}
.feed-item{display:flex;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line-2);align-items:flex-start;cursor:pointer;background:transparent;border-left:0;border-right:0;border-top:0;text-align:left;width:100%}
.feed-item:hover{background:var(--surface-2)}
.feed-item:last-child{border-bottom:0}
.feed-item .ic{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;background:var(--s);color:var(--c);flex:none}
.feed-item .ic svg{width:16px;height:16px}
.feed-item b{font-weight:600;display:block;font-size:13px}
.feed-item small{color:var(--muted);font-size:12px;display:block}
.feed-item time{margin-left:auto;font-size:11.5px;color:var(--muted);white-space:nowrap;padding-left:8px}

/* ---------- Detail ---------- */
.veh-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:20px}
.veh-art{width:120px;height:72px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-2);flex:none}
.veh-art svg{width:96px;height:auto}
.make-tile{width:120px;height:72px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:none;text-align:center;padding:6px}
.make-tile b{font-family:var(--display);font-stretch:112%;font-weight:700;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);line-height:1.1}
.make-tile span{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.make-tile.sm{width:84px;height:52px}
.make-tile.sm b{font-size:12px}
.veh-head h2{font-size:21px}
.veh-head .status{margin-left:auto;align-self:flex-start}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 20px;padding:16px 20px;border-top:1px solid var(--line-2)}
.meta div>span:first-child{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.meta div b{font-weight:500}
.steps{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0;padding:20px}
.step{position:relative;padding-top:26px;padding-right:10px}
.step::before{content:"";position:absolute;top:9px;left:0;right:0;height:2px;background:var(--line)}
.step.done::before{background:var(--green)}
.step:last-child::before{right:auto;width:20px}
.step i{position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;background:var(--surface);border:2px solid var(--line);display:grid;place-items:center}
.step.done i{background:var(--green);border-color:var(--green);color:#fff}
.step.now i{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.step.cur i{box-shadow:0 0 0 4px var(--green-soft)}
.step.hold i{background:var(--amber);border-color:var(--amber);color:#fff;box-shadow:0 0 0 4px var(--amber-soft)}
.step.hold::before{background:var(--amber)}
.step.skip i{border-style:dashed}
.step.skip b{color:var(--muted);font-weight:500}
.step i svg{width:12px;height:12px}
.step b{display:block;font-size:13px;font-weight:600}
.step small{color:var(--muted);font-size:12px}
.kv{display:grid;grid-template-columns:140px minmax(0,1fr);gap:9px 14px;font-size:13.5px}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.total-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:4px;font-weight:600}
.file{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--surface-2)}
.file svg{width:22px;height:22px;color:var(--red);flex:none}
.drop{border:1.5px dashed var(--line);border-radius:8px;padding:26px 16px;text-align:center;background:var(--surface-2);cursor:pointer;display:block;transition:border-color .15s}
.drop:hover,.drop.over{border-color:var(--primary)}
.drop svg{width:28px;height:28px;color:var(--primary)}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.hint{font-size:12px;color:var(--muted)}
.callout{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:6px;background:var(--s);color:var(--ink);font-size:13px}
.callout svg{width:18px;height:18px;color:var(--c);flex:none;margin-top:1px}

/* ---------- Map ---------- */
.map svg{width:100%;height:auto;display:block}
.map text{font-family:var(--body);font-size:13px;fill:var(--ink-2)}

/* ---------- Modal + toast ---------- */
.scrim{position:fixed;inset:0;background:rgba(5,12,24,.5);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:var(--surface);border-radius:10px;box-shadow:var(--pop);width:100%;max-width:560px;max-height:calc(100% - 20px);display:flex;flex-direction:column;border:1px solid var(--line)}
.modal-h{padding:18px 20px 12px;display:flex;align-items:flex-start;gap:12px}
.modal-h h2{font-size:19px}
.modal-h p{margin:4px 0 0;color:var(--muted);font-size:13px}
.modal-b{padding:6px 20px 16px;overflow:auto}
.modal-f{padding:14px 20px;border-top:1px solid var(--line-2);display:flex;gap:8px;justify-content:flex-end;align-items:center}
.decode{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;padding:10px 12px;background:var(--surface-2);border-radius:6px;margin:-4px 0 14px}
.toasts{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:calc(100% - 40px)}
.toast{background:var(--ink);color:var(--surface);padding:11px 16px;border-radius:8px;box-shadow:var(--pop);font-weight:500;display:flex;gap:10px;align-items:center;animation:rise .25s ease-out}
.toast svg{width:18px;height:18px;color:var(--green);flex:none}
@keyframes rise{from{transform:translateY(8px);opacity:.4}}
.logo-l{display:var(--logo-light)}.logo-d{display:var(--logo-dark)}
.foot-note{font-size:12px;color:var(--muted)}

/* ---------- v2 additions ---------- */
.code{display:inline-block;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.03em;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-left:6px;vertical-align:1px}
.dis{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--c);background:var(--s);padding:3px 9px;border-radius:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.alert-banner{display:flex;gap:14px;align-items:flex-start;padding:14px 18px;border-radius:8px;background:var(--s);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.alert-banner>svg{width:22px;height:22px;color:var(--c);flex:none;margin-top:1px}
.alert-banner .chips{margin-top:8px}
.alert-banner .chip{background:var(--surface)}
.thread{display:flex;flex-direction:column;gap:12px;padding:16px 18px;max-height:460px;overflow:auto}
.msg{max-width:78%;display:flex;flex-direction:column;gap:3px}
.msg.mine{align-self:flex-end;align-items:flex-end}
.msg .bubble{background:var(--surface-2);border:1px solid var(--line-2);padding:9px 12px;border-radius:10px 10px 10px 3px;white-space:pre-wrap;overflow-wrap:anywhere}
.msg.mine .bubble{background:var(--primary-soft);border-color:transparent;border-radius:10px 10px 3px 10px}
.msg small{font-size:11.5px;color:var(--muted)}
.msg.system{align-self:center;max-width:92%;align-items:center;text-align:center}
.msg.system .bubble{background:transparent;border:1px dashed var(--line);font-size:12.5px;color:var(--ink-2)}
.composer{display:flex;gap:10px;padding:12px 18px;border-top:1px solid var(--line-2);align-items:flex-end}
.composer textarea.input{min-height:42px;height:42px;resize:vertical}
.contact{display:flex;gap:12px;align-items:flex-start}
.contact .avatar{width:38px;height:38px}
.contact b{display:block}
.contact a{display:block;font-size:13px;text-decoration:none;overflow-wrap:anywhere}
.contact>div{min-width:0}
.kpis.k8{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.kpis.k8,.kpis.k5{grid-template-columns:repeat(2,minmax(0,1fr))}}
.contact a:hover{text-decoration:underline}
.contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.contact-box{border:1px solid var(--line-2);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px}
.contact-box .lbl{display:flex;align-items:center;justify-content:space-between}
.email{max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:13.5px}
.email-meta{padding:12px 18px;border-bottom:1px solid var(--line-2);font-size:12.5px;color:var(--muted);display:grid;grid-template-columns:64px minmax(0,1fr);gap:3px 8px}
.email-meta b{color:var(--ink);font-weight:600}
.email-top{background:var(--navy);padding:18px;display:flex;align-items:center;gap:14px}
.email-top img{width:130px;height:auto}
.email-top span{margin-left:auto;color:#C9D6E8;font-size:12px;text-align:right}
.email-body{padding:18px;display:flex;flex-direction:column;gap:16px}
.email-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.email-stats div{background:var(--surface-2);border-radius:6px;padding:10px;text-align:center}
.email-stats b{display:block;font-family:var(--display);font-stretch:112%;font-size:22px;color:var(--c,var(--ink))}
.email-stats span{font-size:11.5px;color:var(--muted)}
.email h4{margin:0 0 6px;font-size:13px;font-family:var(--display);font-stretch:112%}
.email ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:500}
.switch input{appearance:none;width:38px;height:22px;border-radius:11px;background:var(--line);position:relative;cursor:pointer;transition:background .15s;margin:0}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked{background:var(--primary)}
.switch input:checked::after{transform:translateX(16px)}
.bar-row.me span{font-weight:700;color:var(--primary)}
.bar-row.me .track div{background:var(--teal)}
.bar-row .track div.alt{background:color-mix(in srgb,var(--primary) 55%,var(--surface))}
.inline-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}
.big-search{position:relative}
.big-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--muted)}
.big-search .input{padding:12px 14px 12px 44px;font-size:16px;min-height:50px}
.page-sub-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}.page-sub-h .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.goals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.goal{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:8px;box-shadow:var(--shadow);min-width:0}
.goal-l{font-size:12.5px;font-weight:600;color:var(--ink)}
.goal b{font-family:var(--display);font-stretch:112%;font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.goal-t{font-size:12.5px;color:var(--muted)}
.goal small{font-size:12px;color:var(--muted);line-height:1.4}
.gcell{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.gcell i{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}.gcell small{font-weight:400;color:var(--muted)}
.mkt-table th,.plan-table th{white-space:normal;vertical-align:bottom}
.mkt-table{font-size:13px}.mkt-table th,.mkt-table td{padding-left:8px;padding-right:8px}.mkt-table th:first-child,.mkt-table td:first-child{padding-left:20px}.mkt-table .gcell{gap:5px}
@media (max-width:1100px){.goals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.goals{grid-template-columns:1fr}.kpis.k5 .kpi{gap:10px;padding:12px}.kpis.k5 .kpi .ic{width:34px;height:34px}.kpis.k5 .kpi .ic svg{width:18px;height:18px}.kpis.k5 .kpi b{font-size:19px}.kpi>span:last-child{min-width:0}}
.section-t{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin:0}
.link-btn{border:0;background:none;color:var(--primary);cursor:pointer;padding:0;font-weight:600;font-size:12.5px}
@media (max-width:1100px){.steps{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:18px}.inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.contacts{grid-template-columns:minmax(0,1fr)}.msg{max-width:92%}.inline-form{grid-template-columns:minmax(0,1fr)}.email-top span{display:none}}

.donut-wrap{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.donut{width:220px;max-width:100%;height:auto;flex:none}
.donut-legend{flex:1;min-width:220px;max-width:480px;display:flex;flex-direction:column;gap:2px}
.donut-legend button{display:grid;grid-template-columns:12px minmax(0,1fr) 36px 40px;gap:10px;align-items:center;border:0;background:transparent;padding:7px 6px;border-radius:5px;cursor:pointer;text-align:left}
.donut-legend button:hover{background:var(--surface-2)}
.donut-legend i{width:12px;height:12px;border-radius:50%;background:var(--c)}
.donut-legend b{text-align:right;font-family:var(--display);font-stretch:112%;font-variant-numeric:tabular-nums}
.donut-legend small{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.steps.s7{grid-template-columns:repeat(7,minmax(0,1fr))}
.steps.s8{grid-template-columns:repeat(8,minmax(0,1fr))}
@media (max-width:1100px){.steps.s7,.steps.s8{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:860px){.steps.s7,.steps.s8{grid-template-columns:minmax(0,1fr)}}
.th-sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:3px}
.th-sort span{font-size:9px;opacity:.45}
.th-sort:hover{color:var(--ink)}
.th-sort.on{color:var(--primary)}
.th-sort.on span{opacity:1}
.th-sort:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.notif{position:absolute;right:28px;top:60px;width:min(420px,calc(100vw - 32px));max-height:min(620px,75vh);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--pop);z-index:45}
.notif-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-2);position:sticky;top:0;background:var(--surface);z-index:1}
.notif-t{margin:0;padding:10px 16px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.notif .feed-item{padding:10px 16px;position:relative}
.notif .unread{position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--primary);transform:translateY(-50%)}
@media (max-width:860px){.notif{right:16px}}
.adv-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:3px 6px;margin:-3px -6px;border-radius:5px;white-space:nowrap}
.adv-btn svg{width:13px;height:13px;opacity:0;color:var(--muted);transition:opacity .15s}
.adv-btn:hover{background:var(--surface-2)}
.adv-btn:hover svg,.adv-btn:focus-visible svg,.adv-btn.empty svg{opacity:1}
.adv-btn.empty{color:var(--primary);font-weight:600}
.adv-btn:focus-visible{outline:2px solid var(--primary)}
.print-only{display:none}
.transit-table td.wrap{min-width:130px}
.group-row td{background:var(--surface-2);padding:9px 12px;border-bottom:1px solid var(--line)}
.group-row .pill{margin-left:8px}
@media print{
  @page{size:landscape;margin:10mm}
  body{background:#fff!important;color:#000!important}
  .side,.top,.no-print,.toasts,#modal,.notif,.menu{display:none!important}
  .app{display:block}
  .content{padding:0!important;max-width:none}
  .print-only{display:table-cell}
  div.print-only{display:block}
  .print-head{margin-bottom:10px;font-size:12px;color:#000}
  .print-head b{font-size:15px}
  .card{border:0!important;box-shadow:none!important;background:#fff!important}
  .table-wrap{overflow:visible}
  table{font-size:10.5px}
  th,td{color:#000!important;background:#fff!important;border:1px solid #999!important;padding:5px 6px!important;white-space:normal!important}
  .group-row td{background:#eee!important;font-size:11.5px}
  .sub,.muted{color:#333!important}
  .code{border-color:#999!important;color:#000!important;background:#fff!important}
  .pill{display:none}
  td.sign{width:70px}
  tr{page-break-inside:avoid}
}
.check{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:600}
.check:hover{border-color:var(--primary)}
.check input{width:18px;height:18px;accent-color:var(--primary);margin:0;flex:none}
.side-help{color:var(--navy-ink);font-size:12px}
.side-contact{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:600;font-size:13px;padding:9px 10px;margin:0 -2px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.side-contact:hover{background:rgba(255,255,255,.12)}
.side-contact svg{width:16px;height:16px;flex:none}
.side-contact svg:last-child{width:13px;height:13px;margin-left:auto;opacity:.6}
.side-contact span{line-height:1.25}
.review-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.review-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:8px 10px}
.review-item .btn{margin-left:auto}
.review-note{flex-basis:100%;order:3;font-size:13px;color:var(--ink-2)}
#print-report{display:none}
.count-badge{background:rgba(255,255,255,.22);border-radius:10px;padding:0 7px;font-size:12px;margin-left:2px}
.dnr-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 12px}
.dnr-stats div{background:var(--s);border-radius:8px;padding:10px;text-align:center}
.dnr-stats b{display:block;font-family:var(--display);font-stretch:112%;font-size:24px;color:var(--c);line-height:1.1}
.dnr-stats span{font-size:12px;color:var(--ink-2)}
@media print{
  body.print-report>*:not(#print-report){display:none!important}
  body.print-report #print-report{display:block!important}
}
.email-hold{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--red) 35%,transparent);background:var(--red-soft);border-radius:8px;padding:12px 14px}
.email-hold>div{flex:1;min-width:200px}
.email-hold h4{color:var(--red)}
/* ---------- Responsive ---------- */
@media (max-width:1100px){.g-2{grid-template-columns:minmax(0,1fr)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;top:0;left:0;bottom:0;height:auto;width:min(300px,86vw);z-index:72;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;padding:calc(16px + env(safe-area-inset-top,0px)) 14px calc(16px + env(safe-area-inset-bottom,0px));box-shadow:none}
  .side.open{transform:none;box-shadow:0 0 0 100vmax rgba(5,12,24,.0),12px 0 40px rgba(5,12,24,.35)}
  .side .brand{width:150px}
  .nav button{padding:12px 12px;font-size:15px}
  .side-foot{display:flex}
  .top{padding:10px 16px}
  .acct .who{display:none}
  .content{padding:18px 16px 40px}
  .g-2e{grid-template-columns:minmax(0,1fr)}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:minmax(0,1fr);gap:14px}
  .step{padding:0 0 0 32px}.step::before{display:none}
  .menu{right:16px}
  .kv{grid-template-columns:110px minmax(0,1fr)}
  .bar-row{grid-template-columns:96px minmax(0,1fr) 36px}
}


/* ---------- Mobile & tablet ---------- */
.mnav{display:none}
.top-brand{display:none}
.nav-scrim{position:fixed;inset:0;z-index:71;background:rgba(5,12,24,.5)}
@media (max-width:860px){
  body.nav-open{overflow:hidden}
  .mnav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--navy);border-top:1px solid rgba(255,255,255,.08);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .mnav button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;color:var(--navy-ink);font:600 11px/1.1 var(--body);padding:6px 2px;border-radius:8px;cursor:pointer;min-height:48px}
  .mnav button svg{width:21px;height:21px}
  .mnav button[aria-current="page"]{color:var(--navy-hi);background:var(--navy-active)}
  .mnav .mcount{position:absolute;top:2px;left:calc(50% + 6px);font-style:normal;font-size:10px;font-weight:700;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;display:grid;place-items:center}
  .content{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
  .toasts{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .tour-offer{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .page-head h1{font-size:24px}
  .top-brand{display:block;width:96px;flex:none}
  .top-brand img{width:100%;height:auto}
}
@media (max-width:640px){
  .top{flex-wrap:wrap;row-gap:8px;padding:8px 12px}
  .top-brand{order:0}
  .top:has(.scope-pick) .top-brand{display:none}
  .top .search{order:2;flex:1 1 100%;max-width:none}
  .top-right{order:1;margin-left:auto;justify-content:flex-end}
  .top-right .scope-pick{margin-right:auto}
  .top-right .scope-pick select{max-width:200px}
  .content{padding-left:12px;padding-right:12px;gap:14px}
  .page-head .actions{margin-left:0;width:100%}
  .page-head .actions .btn{flex:1 1 auto;justify-content:center}
  .input,select.input,textarea.input{font-size:16px}
  .scrim{align-items:flex-end;padding:0}
  .modal,.modal.wide{max-width:none;width:100%;border-radius:14px 14px 0 0;max-height:92vh}
  .modal-f{flex-wrap:wrap}
  .modal-f .btn{flex:1 1 auto;justify-content:center}
  .toolbar{padding:12px}
  .toolbar .search{flex:1 1 100%;max-width:none;margin-left:0!important}
  .card-h{flex-wrap:wrap;row-gap:6px}
  .notif{left:8px;right:8px;width:auto}
  .menu{left:8px;right:8px;min-width:0}
  .kpi b{font-size:22px}
}
@media (pointer:coarse){
  .btn{min-height:40px}.btn.sm{min-height:36px}
  .chip{min-height:34px}
  .icon-btn{width:42px;height:42px}
  .link-btn{padding:6px 2px}
}
/* tables stack into cards on narrow screens */
/* tables that do not fit their container stack into cards (fitTables) */
  table.stacked thead{display:none}
  table.stacked,table.stacked tbody{display:block;width:100%}
  table.stacked tr{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line-2)}
  table.stacked tr:last-child{border-bottom:0}
  table.stacked td{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;align-items:baseline;padding:0;border:0;white-space:normal;min-width:0!important;text-align:left!important;width:auto!important}
  table.stacked td::before{content:attr(data-label);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  table.stacked td:first-child,table.stacked td.nolbl,table.stacked td.span-all{display:block}
  table.stacked td:first-child::before,table.stacked td.nolbl::before,table.stacked td.span-all::before{content:none}
  table.stacked td:first-child{font-size:15px}
  table.stacked td.nolbl:empty,table.stacked td:has(> .tdv:empty){display:none}
  table.stacked td.nolbl .tdv>div{justify-content:flex-start!important;flex-direction:row!important;flex-wrap:wrap}
  table.stacked td.nolbl .btn{flex:1 1 auto;justify-content:center}
  table.stacked tr.group-row,table.stacked tr.group-row td{background:var(--surface-2)}
  table.stacked td .sub{white-space:normal}
  table.stacked td.num,table.stacked td.right{text-align:left!important}
  table.stacked td{overflow-wrap:anywhere}
  table.stacked .pill{white-space:normal;max-width:100%}
@media (min-width:761px) and (max-width:1280px){
  th,td{padding-left:7px;padding-right:7px}
  td{white-space:normal}
  td.wrap{min-width:130px}
  th{white-space:normal}
  td .mono,td.mono{white-space:nowrap}
}
@media print{.mnav,.nav-scrim{display:none!important}}
/* icon rail on tablets and small laptops */
@media (min-width:861px) and (max-width:1180px){
  .app{grid-template-columns:72px minmax(0,1fr)}
  .side{padding:14px 10px;align-items:center}
  .side .brand{display:none}
  .nav{width:100%}
  .nav button{justify-content:center;padding:12px 0;position:relative}
  .nav button span:not(.count){display:none}
  .nav .count{position:absolute;top:4px;right:6px;margin:0;font-size:10px;padding:0 5px;background:var(--red)}
  .side-foot{display:none}
}


/* ---------- Help card + Contact Convoy + Support inbox ---------- */
.help-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:linear-gradient(160deg,rgba(90,147,230,.16),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.1);margin-bottom:10px}
.help-top{display:flex;gap:10px;align-items:center}
.help-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;flex:none}
.help-ic svg{width:17px;height:17px}
.help-top b{display:block;color:#fff;font-size:13.5px}
.help-top small{display:block;color:var(--navy-ink);font-size:12px}
.help-btn{border:0;border-radius:8px;background:#fff;color:#0B1B33;font:600 13px var(--body);padding:9px 10px;cursor:pointer;transition:background .15s}
.help-btn:hover{background:#E3EBF6}
.help-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;color:var(--navy-ink);font:600 12px var(--body);cursor:pointer;padding:2px}
.help-link:hover{color:#fff}
.help-link svg{width:12px;height:12px}
.side-legal-row{padding:0 2px}
.help-topics{display:flex;flex-wrap:wrap;gap:6px}
.help-reply{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:end;font-size:13.5px}
.help-reply .lbl{display:block;margin-bottom:6px}
.help-reply>div:first-child>div{padding:9px 0;overflow-wrap:anywhere}
@media (max-width:640px){.help-reply{grid-template-columns:minmax(0,1fr)}}
.sup-list{display:flex;flex-direction:column}
.sup-card{padding:16px 18px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}
.sup-card:last-child{border-bottom:0}
.sup-card.hi{background:color-mix(in srgb,var(--violet) 7%,var(--surface));box-shadow:inset 3px 0 0 var(--violet)}
.sup-card.done .sup-msg{color:var(--muted)}
.sup-head{display:flex;gap:12px;align-items:center}
.sup-who{min-width:0;flex:1}
.sup-who b{display:block}
.sup-who small{display:block;color:var(--muted);font-size:12.5px}
.sup-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.sup-meta time{font-size:12px;color:var(--muted);white-space:nowrap}
.sup-topic{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--violet)}
.sup-msg{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.sup-about{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:6px 10px;font-size:13px;cursor:pointer;color:var(--ink);text-align:left}
.sup-about:hover{border-color:var(--primary)}
.sup-about svg{width:16px;height:16px;color:var(--primary);flex:none}
.sup-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sup-contact{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}
.sup-contact a{text-decoration:none}
.sup-act{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.sup-res{margin:0;font-size:12px;color:var(--muted)}
@media (max-width:640px){.sup-head{flex-wrap:wrap}.sup-meta{width:100%;justify-content:flex-start}.sup-act{margin-left:0;width:100%}.sup-act .btn{flex:1 1 auto}}
@media (min-width:861px) and (max-width:1180px){.help-card{display:none}}


.w-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px 2px 5px;border-radius:4px;color:var(--blue);background:var(--blue-soft);border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);vertical-align:middle;white-space:nowrap}
.w-tag svg{width:12px;height:12px}
.w-tag.sm{display:flex;width:max-content;margin:0 0 3px;font-size:10px;padding:1px 6px 1px 4px}
.svc-cta .card-b{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.svc-cta h2{font-size:17px;margin:4px 0 0}
.svc-cta p{margin:0}
.svc-cta-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}
.svc-cta-ic svg{width:20px;height:20px}
.mobile-opt{margin:2px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-weight:500;align-items:flex-start}
.mobile-opt input{margin-top:3px}
.mobile-opt small{display:block;font-weight:400;color:var(--muted);margin-top:2px;line-height:1.4}
.svc-rep .card-h{flex-wrap:wrap;gap:10px}
.svc-rep .card-h .chips{margin-left:auto}
.svc-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 20px}
.svc-tile{border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.svc-tile span{font-size:12.5px;color:var(--muted);font-weight:600}
.svc-tile b{font-family:var(--display);font-size:28px;line-height:1.1;color:var(--ink)}
.svc-tile small{font-size:12px;color:var(--muted)}
.svc-tile.t-green{border-top:3px solid var(--green)}
.svc-tile.t-amber{border-top:3px solid var(--amber)}
.svc-tile.t-violet{border-top:3px solid var(--violet)}
.svc-tile.total{border-top:3px solid var(--ink);background:var(--surface-2)}
.svc-rep tr.svc-sum td{border-top:2px solid var(--line);background:var(--surface-2)}
.svc-tiles.t5{grid-template-columns:repeat(5,minmax(0,1fr))}
.svc-tiles.t6{grid-template-columns:repeat(6,minmax(0,1fr))}
.svc-tile.t-blue{border-top:3px solid var(--blue)}
.svc-tile.t-teal{border-top:3px solid var(--teal)}
@media (max-width:1300px){.svc-tiles.t5,.svc-tiles.t6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.svc-tiles,.svc-tiles.t5,.svc-tiles.t6{grid-template-columns:repeat(2,minmax(0,1fr))}}
.veh-match{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:9px 11px;border-radius:8px;font-size:13px;line-height:1.4;border:1px solid}
.veh-match svg{width:16px;height:16px;flex:none;margin-top:1px}
.veh-match span{display:flex;flex-direction:column;gap:2px;min-width:0}
.veh-match small{font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}
.veh-match.ok{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 35%,transparent);color:var(--green)}
.veh-match.ok b{color:var(--ink)}
.veh-match.warn{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 35%,transparent);color:var(--ink)}
.veh-match.warn svg{color:var(--amber)}
.veh-match.bad{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 35%,transparent);color:var(--ink)}
.veh-match.bad svg{color:var(--red)}

/* guided tour */
#tour .tour-catch{position:fixed;inset:0;z-index:90;background:transparent;cursor:default}
#tour .tour-catch.dim{background:rgba(5,12,24,.55)}
#tour .tour-spot{position:fixed;z-index:91;border-radius:10px;box-shadow:0 0 0 9999px rgba(5,12,24,.55),0 0 0 3px var(--blue);pointer-events:none;transition:left .2s ease,top .2s ease,width .2s ease,height .2s ease}
#tour .tour-card,.tour-offer{position:fixed;z-index:92;width:min(380px,calc(100vw - 24px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--pop);padding:18px 18px 14px}
.tour-offer{z-index:79;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px))}
.tour-card .tour-x{position:absolute;top:10px;right:10px;width:30px;height:30px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);border-radius:6px;cursor:pointer}
.tour-card .tour-x:hover{background:var(--surface-2);color:var(--ink)}
.tour-card .tour-x svg{width:16px;height:16px}
.tour-n{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}
#tour h3{margin:6px 0 6px;font:700 18px/1.25 var(--display);padding-right:24px}
#tour p{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.tour-f{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.tour-dots{display:flex;gap:4px;margin-right:auto;flex-wrap:wrap}
.tour-dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.tour-dots i.done{background:var(--blue-soft);outline:1px solid var(--blue)}
.tour-dots i.on{background:var(--primary)}
.side-tour{display:flex;align-items:center;gap:8px;margin:2px 0 6px;padding:7px 8px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:transparent;color:var(--navy-hi);font:600 12.5px var(--body);cursor:pointer;text-align:left}
.side-tour:hover{background:var(--navy-active)}
.side-tour svg{width:14px;height:14px}
@media (max-width:640px){.tour-offer{left:12px;right:12px;width:auto}}
