/* Dealer portal. ALL colours are variables; each company's palette is set in config/portal.php
   ('palettes') and injected by the layouts. Defaults below = SUBARU Brand Element Guidelines A12. */
:root{
  --navy:#00205B; --on-navy:#FFFFFF; --blue:#00205B; --on-blue:#FFFFFF; --link:#00205B;
  --accent:#00A0DC; --accent50:#80D0EE; --sky:#BFE7F6; --silver:#DDE2E6; --soon-fg:#00205B;
  --ink:#1A1A1A; --soft:#333333; --muted:#666666; --line:#E5E5E5; --card-border:#CCCCCC; --stale:#999999;
  --bg:#FFFFFF; --card:#FFFFFF; --logo-plate:#FFFFFF; --sync-bg:rgba(255,255,255,.12); --navy-line:rgba(255,255,255,.4);
  --ok:#00205B; --okbg:#BFE7F6; --warn:#333333; --warnbg:#DDE2E6; --bad:#333333; --badbg:#E5E5E5;
  --font:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 var(--font);color:var(--ink);background:var(--bg)}
a{color:var(--link)}
.banner{background:var(--silver);color:var(--soft);text-align:center;font-size:12px;padding:6px 16px;border-bottom:1px solid var(--card-border)}
header{background:var(--navy);color:var(--on-navy);display:flex;align-items:center;gap:16px;padding:0 20px;height:60px}
.logo{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--on-navy);text-decoration:none}
.logo div{font-size:15px;line-height:1.2;padding-left:12px;border-left:1px solid var(--navy-line)}
.logo img{height:30px;width:auto;max-width:150px;object-fit:contain;background:var(--logo-plate);border-radius:6px;padding:3px 6px}
.logo small{display:block;font-weight:400;font-size:11px;opacity:.75;letter-spacing:0}
header .sp{flex:1}
.who{font-size:13px;text-align:right}
.who b{display:block}
.who span{opacity:.75;font-size:12px}
.sync{font-size:12px;background:var(--sync-bg);padding:5px 10px;border-radius:14px;white-space:nowrap}
.sync i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:6px}
.sync i.stale{background:var(--stale)}
header form button{background:none;border:1px solid var(--navy-line);color:var(--on-navy);border-radius:8px;padding:5px 10px;font:inherit;font-size:12px;cursor:pointer}
.wrap{min-height:calc(100vh - 91px)}
/* Main menu sits in the top bar, after the logo */
nav{display:flex;align-items:center;gap:4px;margin-left:8px;min-width:0;overflow-x:auto}
nav a{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:8px;color:var(--on-navy);text-decoration:none;font-weight:600;white-space:nowrap}
nav a:hover{background:var(--sync-bg)}
nav a.on{background:var(--card);color:var(--ink)}
nav .badge{background:var(--ink);color:var(--card);border-radius:10px;font-size:11px;padding:1px 7px}
.foot-note{font-size:11px;color:var(--muted);margin-top:24px;padding-top:10px;border-top:1px solid var(--line)}
main{padding:22px 26px;min-width:0}
h1{font-size:22px;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 18px}
.grid{display:grid;gap:14px}
.k4{grid-template-columns:repeat(4,1fr)}
.k2{grid-template-columns:2fr 1fr}
.card{background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:16px}
.kpi .l{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}
.kpi .v{font-size:22px;font-weight:700;margin-top:6px;line-height:1.2}
.kpi .s{font-size:12px;color:var(--muted)}
.bar{height:8px;background:var(--sky);border-radius:4px;margin-top:8px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent)}
h3{margin:0 0 12px;font-size:15px}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:8px}
td{border-bottom:1px solid var(--line);padding:9px 8px;vertical-align:middle}
tr:last-child td{border-bottom:0}
.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:12px;font-weight:600;white-space:nowrap}
.ok{background:var(--okbg);color:var(--ok)} .warn{background:var(--warnbg);color:var(--warn)} .bad{background:var(--badbg);color:var(--bad)} .info{background:var(--sky);color:var(--soon-fg)} .grey{background:var(--line);color:var(--muted)}
.tool{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
input[type=search],input[type=text],input[type=email],input[type=password],select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
input[type=search]{flex:1;min-width:220px}
input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}
input.q{width:64px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font:inherit;text-align:right}
.btn{display:inline-block;font:inherit;border:0;border-radius:8px;padding:9px 16px;cursor:pointer;background:var(--blue);color:var(--on-blue);font-weight:600;text-decoration:none;text-align:center}
.btn.sm{padding:6px 12px;font-size:13px}
.btn.ghost{background:var(--card);color:var(--link);border:1px solid var(--link)}
.btn:disabled{opacity:.45;cursor:default}
.pn{font-family:Consolas,monospace;font-weight:600}
.muted{color:var(--muted)}
.small{font-size:12px}
.loc{font-size:12px;color:var(--muted)}
.tot{display:flex;justify-content:space-between;padding:6px 0}
.tot.big{font-size:18px;font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
/* Parts & Quote: parts list left, quote right */
.pq{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:14px;align-items:start}
.pq-side{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow-y:auto}
.pq-lines td{vertical-align:top}
.pq-lines .q{width:56px}
.ponly{display:none}
button.x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px}
button.x:hover{color:var(--ink)}
.pq-main .btn.sm{white-space:nowrap}
@media (max-width:1200px){.pq{grid-template-columns:minmax(0,1fr)}.pq-side{position:static;max-height:none}}
.flow{display:flex;gap:6px;align-items:center;font-size:12px;flex-wrap:wrap}
.flow span{padding:3px 8px;border-radius:12px;background:var(--line);color:var(--muted)}
.flow span.done{background:var(--okbg);color:var(--ok)}
.flow span.now{background:var(--blue);color:var(--on-blue)}
.toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:var(--card);padding:12px 18px;border-radius:8px;max-width:360px;z-index:20;transition:.25s}
.alert{border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.alert.bad{border:1px solid var(--stale)}.alert.warn{border:1px solid var(--card-border)}.alert.info{border:1px solid var(--accent50)}
.announce{background:var(--sky);border:1px solid var(--accent50);border-radius:10px;padding:10px 14px;margin-bottom:12px}
.announce b{display:block}
.sample{font-size:11px;font-weight:600;color:var(--warn);background:var(--warnbg);border-radius:4px;padding:1px 6px;margin-left:6px;text-transform:none;letter-spacing:0}
.asat{font-size:12px;color:var(--muted);margin:-10px 0 14px}
.pager{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;font-size:13px}
.pager a,.pager span{padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);text-decoration:none}
/* Auth pages */
.auth{min-height:calc(100vh - 31px);display:flex;align-items:center;justify-content:center;padding:20px}
.auth .card{width:100%;max-width:400px;padding:26px}
.auth .brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.auth .brand b{font-size:18px}
.auth .brand img{height:40px;width:auto;max-width:200px;object-fit:contain}
.auth label{display:block;font-size:12px;color:var(--muted);margin:12px 0 4px}
.auth input[type=email],.auth input[type=password],.auth input[type=text]{width:100%}
.auth .btn{width:100%;margin-top:16px}
.err{color:var(--bad);font-size:13px;margin-top:8px}
@media (max-width:900px){
  .k4{grid-template-columns:repeat(2,1fr)} .k2{grid-template-columns:1fr}
  header{flex-wrap:wrap;height:auto;gap:8px 10px;padding:8px 12px} .logo div{display:none} header form button{white-space:nowrap}
  nav{order:3;width:100%;margin-left:0} nav a{padding:6px 10px}
  main{padding:16px} .who{display:none}
  .hidem{display:none}
}
@media print{nav,header form,.tool,.noprint,.banner,.sync,.foot-note{display:none}}
.preview .v,.preview td,.preview .bar{opacity:.55}
.soon{display:inline-block;font-size:11px;font-weight:700;color:var(--soon-fg);background:var(--sky);border-radius:10px;padding:2px 8px;margin-left:6px;vertical-align:middle;text-transform:none;letter-spacing:0}
.asof{background:var(--sky);border-radius:8px;padding:8px 12px;margin:0 0 12px;font-size:13px}
.asof div{display:flex;justify-content:space-between;gap:10px;padding:2px 0}
.asof span{color:var(--soft)}
.card.kpi{position:relative}
.card.kpi .soon{position:absolute;top:10px;right:10px;margin:0}
.card.kpi.preview .l{padding-right:92px}
.loyalty-grid{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.loyalty-grid .kpi{background:var(--sky);border-radius:8px;padding:14px}
.benefits{margin:0 0 10px;padding-left:18px}
.benefits li{margin:4px 0}
@media (max-width:900px){.loyalty-grid{grid-template-columns:1fr}}
.am{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;line-height:1.6}
.am .l{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}
.am b{font-size:15px}
.status{font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:8px;margin-right:4px}
.status.active{background:var(--okbg);color:var(--ok)}
.status.blocked{background:var(--badbg);color:var(--bad);border:1px solid var(--bad)}
.alert.blocked{background:var(--badbg);border:1px solid var(--bad);color:var(--ink)}
/* Statement + document pages */
.st-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.st-actions{display:flex;gap:8px;flex-wrap:wrap}
.ageing{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ageing div{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.ageing span{font-size:12px;color:var(--muted)}
.ageing b{font-size:16px}
.ageing .late{border-color:var(--bad);background:var(--badbg)}
.ageing .total{background:var(--sky);border-color:var(--accent50)}
.st-period{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--card-border);border-radius:16px;padding:4px 12px;font-size:13px;text-decoration:none;color:var(--ink)}
.chip.on{background:var(--blue);color:var(--on-blue);border-color:var(--blue)}
.range{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.range input{font:inherit;padding:5px 8px;border:1px solid var(--card-border);border-radius:6px}
table.st td,table.st th{white-space:nowrap}
table.st td.hidem{white-space:normal}
table.st tr.ob td{background:var(--silver)}
table.st tfoot td{border-top:2px solid var(--card-border)}
.print-only{display:none}
.st-print-head{align-items:center;gap:14px;margin-bottom:12px;font-size:13px}
.st-print-head img{height:36px}
@media (max-width:900px){.ageing{grid-template-columns:repeat(2,1fr)}}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-only{display:flex}
  .pq{display:block} .pq-side{position:static;max-height:none;overflow:visible} .ponly{display:table-cell}
  .wrap{display:block} main{padding:0}
  .card{break-inside:avoid;box-shadow:none}
  table.st{font-size:11px} table.st td.hidem,table.st th.hidem{display:table-cell}
  a{text-decoration:none;color:var(--ink)}
}
