:root{
  --paper:#F5F8FD;--surface:#FFFFFF;--surface-2:#EAF1FB;--ink:#10213A;--muted:#50627A;--line:#CDD8E8;--line-2:#E2EAF5;
  --sign:#1565D8;--sign-2:#0F4DB0;--sign-ink:#FFFFFF;--gold:#FFC533;
  --accent:#1565D8;--on-accent:#FFFFFF;--accent-text:#0F52BF;--blue-soft:#E3EDFF;
  --plate:#FFD21A;--red:#C8281E;--red-soft:#FFE5E1;--amber-solid:#FFB020;--on-amber:#10213A;--amber-soft:#FFF2CC;--amber:#7A4D00;
  --green:#157A3A;--green-soft:#DDF6E4;--focus:#FFB020;
  --display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1726;--surface:#172338;--surface-2:#1E2D47;--ink:#EAF0FA;--muted:#9FB0C8;--line:#2B3C59;--line-2:#22314B;
    --sign:#123E8C;--sign-2:#1D56B8;--sign-ink:#FFFFFF;--gold:#FFC533;
    --accent:#4C8DFF;--on-accent:#0B1526;--accent-text:#8DB8FF;--blue-soft:#1C2F52;
    --red:#FF8A7A;--red-soft:#3D1F1C;--amber-solid:#FFB020;--on-amber:#10213A;--amber-soft:#3A2E12;--amber:#FFCF66;
    --green:#6FDB97;--green-soft:#143023;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0E1726;--surface:#172338;--surface-2:#1E2D47;--ink:#EAF0FA;--muted:#9FB0C8;--line:#2B3C59;--line-2:#22314B;
  --sign:#123E8C;--sign-2:#1D56B8;--sign-ink:#FFFFFF;--gold:#FFC533;
  --accent:#4C8DFF;--on-accent:#0B1526;--accent-text:#8DB8FF;--blue-soft:#1C2F52;
  --red:#FF8A7A;--red-soft:#3D1F1C;--amber-solid:#FFB020;--on-amber:#10213A;--amber-soft:#3A2E12;--amber:#FFCF66;
  --green:#6FDB97;--green-soft:#143023;color-scheme:dark;
}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px);background:var(--paper)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--body);-webkit-text-size-adjust:100%}
body.locked{overflow:hidden}
h1{font:700 clamp(28px,4vw,38px)/1.05 var(--display);margin:0}
h2{font:600 22px/1.2 var(--display);margin:0}
h3{font:600 18px/1.25 var(--display);margin:0 0 6px}
p{margin:0 0 10px}
img{max-width:100%}
.muted{color:var(--muted)}.block{display:block}.small{font-size:13px}
.hint{color:var(--muted);font-size:14px;margin:4px 0 12px}
.empty{color:var(--muted);padding:18px 16px;margin:0}
.err{color:var(--red);font-weight:700}

/* Saving indicator and stored files */
.busy{position:fixed;top:0;left:0;right:0;height:3px;z-index:300;pointer-events:none}
.busy.on{background:linear-gradient(90deg,transparent 0,var(--gold) 35%,transparent 70%);background-size:200% 100%;animation:busy 1s linear infinite}
@keyframes busy{from{background-position:100% 0}to{background-position:-100% 0}}
.thumbbtn{all:unset;cursor:pointer;display:block;border-radius:6px}
button.filechip{cursor:pointer;color:var(--ink);font:inherit;font-size:14px}
.thumb:not([src]){background:var(--surface-2)}

/* Shell */
.topbar{position:sticky;top:0;z-index:40;background:var(--sign);color:var(--sign-ink);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 24px;border-bottom:2px solid var(--sign-2)}
.tb-left,.tb-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:10px;font:700 22px/1 var(--display);color:var(--sign-ink)}
.brand svg{flex:none;stroke:var(--gold)}
.invite .brand svg{stroke:var(--accent)}
.op-pill{display:inline-flex;align-items:center;gap:6px;background:var(--sign-2);color:var(--sign-ink);font-size:14px;font-weight:600;padding:5px 12px;border-radius:999px;min-height:30px}
.op-pill select{all:unset;cursor:pointer;font:inherit;font-weight:600;padding-right:14px;background:linear-gradient(45deg,transparent 50%,var(--sign-ink) 50%) right 4px top 55%/5px 5px no-repeat,linear-gradient(-45deg,transparent 50%,var(--sign-ink) 50%) right 0 top 55%/5px 5px no-repeat}
.op-pill select option{color:#10213A}
.op-pill select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.tb-user{font-size:15px}
.tb-link{all:unset;cursor:pointer;color:var(--sign-ink);text-decoration:underline;text-underline-offset:3px;font-size:15px}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 56px)}
.side{position:sticky;top:58px;align-self:start;max-height:calc(100vh - 58px);overflow:auto;background:var(--paper);color:var(--ink);padding:24px 14px 24px 24px;display:flex;flex-direction:column;gap:4px}
.side-lic{font-size:13px;color:var(--muted);margin:0 14px 12px}
.nav{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-radius:8px;color:var(--ink);font-weight:600;font-size:16px;cursor:pointer;width:100%}
.nav:hover{background:var(--surface-2)}
.nav.on{background:var(--sign);color:var(--sign-ink)}
.count{background:var(--gold);color:var(--on-amber);border-radius:999px;font-size:12px;font-weight:700;padding:1px 12px;line-height:20px}
.mainwrap{min-width:0}
.main{padding:24px clamp(16px,2.5vw,32px) 60px 24px;max-width:1240px}
.topbar .menu-btn{display:none}
.scrim{display:none}
.proto-unused{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding:8px 24px;background:var(--surface-2);border-bottom:1px dashed var(--line);font-size:14px;color:var(--muted)}
.proto select{min-height:34px;padding:4px 8px;font-size:14px;width:auto;max-width:100%}
.proto label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.proto .tag{font-weight:700;color:var(--ink);border:1.5px solid var(--ink);border-radius:4px;padding:0 6px;font-size:12px}
.vor-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;background:var(--sign);color:var(--sign-ink);border-radius:10px;padding:16px 20px;margin-top:20px;font-weight:700;font-size:16px}
.vor-banner button{all:unset;cursor:pointer;color:var(--sign-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){
  .topbar{padding:10px 14px}
  .topbar .menu-btn{display:inline-grid}
  .tb-user{display:none}
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;max-height:none;width:min(300px,86vw);z-index:60;transform:translateX(-105%);transition:transform .2s ease;padding:calc(22px + env(safe-area-inset-top,0px)) 14px calc(22px + env(safe-area-inset-bottom,0px));box-shadow:0 0 30px rgba(0,0,0,.2)}
  .side.open{transform:none}
  .side.open ~ .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50}
  .main{padding:20px 16px 60px}
}

/* Controls */
input,select,textarea{font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);width:100%;min-height:44px}
textarea{resize:vertical;line-height:1.4}
.field{display:block;margin:0 0 14px}
.field>span{display:block;font-weight:700;font-size:14px;margin-bottom:5px}
.field.inline{display:flex;align-items:center;gap:8px;margin:0}
.field.inline>span{margin:0}
.field.inline select{width:auto}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:0 16px}
.btn{font:600 15px/1.2 var(--body);padding:10px 16px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.danger{color:var(--red);border-color:var(--red);background:transparent}
.btn.small{min-height:36px;padding:6px 12px;font-size:14px}
.btn.block{width:100%;min-height:52px;font-size:17px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.linkbtn{all:unset;cursor:pointer;color:var(--accent-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.iconbtn{all:unset;cursor:pointer;width:40px;height:40px;display:inline-grid;place-items:center;border-radius:6px;color:inherit;font-size:20px;flex:none}
.iconbtn:hover{background:var(--surface-2)}
.iconbtn[disabled]{opacity:.3;cursor:default}
.back{all:unset;cursor:pointer;color:var(--accent-text);font-weight:700;margin:4px 0 8px;display:inline-flex;align-items:center;gap:6px}
.back::before{content:"";width:8px;height:8px;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer;margin:10px 0}
.check input{width:22px;height:22px;min-height:0;margin:1px 0 0;flex:none;accent-color:var(--accent)}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;font-size:14px}
.switch input{appearance:none;-webkit-appearance:none;width:42px;height:24px;min-height:0;border-radius:999px;background:var(--line);position:relative;margin:0;padding:0;border:0;cursor:pointer;flex:none}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.switch input:checked{background:var(--accent)}
.switch input:checked::after{left:21px}
.toggles{display:flex;flex-wrap:wrap;gap:12px 28px;margin:4px 0 8px}

/* Plates & pills */
.plate{font:600 14px/1 'IBM Plex Mono',monospace;letter-spacing:0;background:var(--plate);color:#111;padding:5px 7px 4px;border-radius:4px;border:1px solid #111;white-space:nowrap;display:inline-block;flex:none}
.plate.trailer{background:#fff}
.plate.lg{font-size:24px;padding:8px 12px 7px;border-radius:6px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.pill.red{background:var(--red-soft);color:var(--red)}
.pill.amber{background:var(--amber-soft);color:var(--amber)}
.pill.green{background:var(--green-soft);color:var(--green)}
.pill.blue{background:var(--blue-soft);color:var(--accent-text)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-soft);color:var(--accent-text);display:inline-grid;place-items:center;font:700 15px var(--display);flex:none}

/* Layout pieces */
.pagehead{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;justify-content:space-between;margin:8px 0 20px}
.sub{color:var(--muted);margin:6px 0 0;max-width:70ch}
.ctrls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px}
.panel>.ph{font:600 18px/1.3 var(--body)}
.pad{padding:20px}
.panel>.ph{padding:16px;border-bottom:1px solid var(--line)}
.ph0{margin:0 0 14px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;align-items:start;margin-top:20px}
.stackgap{display:grid;gap:20px}
.list .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 16px;border-bottom:1px solid var(--line);width:100%;text-align:left;color:inherit;font:inherit;background:none}
.list .row:last-child{border-bottom:0}
.row[role=button]{cursor:pointer}
.row[role=button]:hover{background:var(--surface-2)}
.grow{flex:1 1 220px;min-width:0}
.right{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--muted)}
.lvl0 .dot{background:var(--red)}.lvl1 .dot{background:var(--amber-solid)}
.wkhead{font:600 15px var(--display);color:var(--muted);padding:10px 16px 4px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stat{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.stat:hover{border-color:var(--muted)}
.stat b{display:block;font:700 34px/1 var(--display);margin-top:10px}
.stat b.warn{color:var(--red)}
.stat b small{font-size:20px;color:var(--muted)}
.stat span{color:var(--muted);font-size:14px;display:block}
.formfoot{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.formfoot.sticky{position:sticky;bottom:0;background:var(--paper);padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);z-index:5}
.vhead{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:center;margin:8px 0 20px}
.vhead .grow{flex:1 1 260px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tab{all:unset;cursor:pointer;padding:10px 14px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.tab[aria-selected=true]{color:var(--ink);border-color:var(--accent)}
.alert{border-radius:8px;padding:14px 16px;border:1.5px solid;margin:12px 0}
.alert.red{background:var(--red-soft);border-color:var(--red)}
.alert.amber{background:var(--amber-soft);border-color:var(--amber-solid)}
.callout{background:var(--surface-2);border-left:4px solid var(--accent);border-radius:6px;padding:14px 16px;margin:16px 0}
.callout.green{border-color:var(--green)}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg button{all:unset;cursor:pointer;padding:10px 20px;font-weight:700;min-width:64px;text-align:center}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button[aria-pressed=true]:first-child{background:var(--green-soft);color:var(--green)}
.seg button[aria-pressed=true]:last-child{background:var(--red-soft);color:var(--red)}
.media{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.mitem{position:relative}
.thumb{width:104px;height:78px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block;background:var(--surface-2)}
.filechip{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:14px;background:var(--surface-2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mitem .x{all:unset;cursor:pointer;position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:14px;font-weight:700}
.upload{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px dashed var(--muted);border-radius:8px;cursor:pointer;font-weight:700;color:var(--accent-text);min-height:44px}
.upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;padding:0}
.upload:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.upload svg{flex:none}
.kv{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.res{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.res .mark{font-weight:700;font-size:13px;min-width:56px;color:var(--green)}
.res.bad .mark{color:var(--red)}
.res ul{margin:0}
.reslist{list-style:none;padding:0;margin:0}

/* Maintenance plan (from design reference) */
.mp{--mp-ink:#10213A;--mp-muted:#50627A;--mp-ink2:#2B3D57;--mp-surface:#FFFFFF;--mp-line:#CDD8E8;--mp-line2:#E2EAF5;--mp-line3:#EAF1FB;--mp-input:#8695A8;--mp-nowh:#FFF2CC;--mp-nowc:#FFF9E3;--mp-hover:#F2F6FC;--mp-tip:#10213A;--mp-tipfg:#FFFFFF;--mp-tipsub:#C9D6E8;--mp-on:#1565D8;--mp-onfg:#FFFFFF;
  --kP-bg:#1565D8;--kP-fg:#FFFFFF;--kR-bg:#7C4DDB;--kR-fg:#FFFFFF;--kPM-bg:#FFFFFF;--kPM-fg:#7A4D00;--kPM-ring:#D99100;--kM-bg:#FFC533;--kM-fg:#10213A;--kT-bg:#0B7F86;--kT-fg:#FFFFFF;--kI-bg:#C9480A;--kI-fg:#FFFFFF;--kC-bg:#D6E6FF;--kC-fg:#10213A;--mp-gold:#FFB020;
  font-family:'IBM Plex Sans',system-ui,sans-serif;color:var(--mp-ink);display:flex;flex-direction:column;gap:22px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mp{--mp-ink:#EAF0FA;--mp-muted:#9FB0C8;--mp-ink2:#C5D0E0;--mp-surface:#172338;--mp-line:#2B3C59;--mp-line2:#22314B;--mp-line3:#1E2D47;--mp-input:#5C6C85;--mp-nowh:#3A3115;--mp-nowc:#2A2512;--mp-hover:#1E2D47;--mp-tip:#EAF0FA;--mp-tipfg:#10213A;--mp-tipsub:#50627A;--mp-on:#4C8DFF;--mp-onfg:#0B1526;--kP-bg:#4C8DFF;--kP-fg:#0B1526;--kR-bg:#B49CFF;--kR-fg:#10213A;--kPM-bg:transparent;--kPM-fg:#FFCF66;--kC-bg:#2A3F60;--kC-fg:#EAF0FA}}
:root[data-theme="dark"] .mp{--mp-ink:#EAF0FA;--mp-muted:#9FB0C8;--mp-ink2:#C5D0E0;--mp-surface:#172338;--mp-line:#2B3C59;--mp-line2:#22314B;--mp-line3:#1E2D47;--mp-input:#5C6C85;--mp-nowh:#3A3115;--mp-nowc:#2A2512;--mp-hover:#1E2D47;--mp-tip:#EAF0FA;--mp-tipfg:#10213A;--mp-tipsub:#50627A;--mp-on:#4C8DFF;--mp-onfg:#0B1526;--kP-bg:#4C8DFF;--kP-fg:#0B1526;--kR-bg:#B49CFF;--kR-fg:#10213A;--kPM-bg:transparent;--kPM-fg:#FFCF66;--kC-bg:#2A3F60;--kC-fg:#EAF0FA}
.mp.mp-embed{display:block}
.mp-head{display:flex;flex-direction:column;gap:8px}
.mp-h1{margin:0;font:700 40px/1.05 'Barlow Semi Condensed',sans-serif}
.mp-lead{margin:0;color:var(--mp-muted);font-size:16px;line-height:1.5;max-width:820px}
.mp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.mp-years{display:flex;gap:6px;flex-wrap:wrap}
.mp-yr{min-height:44px;padding:0 18px;border-radius:8px;border:1px solid var(--mp-ink);background:var(--mp-surface);color:var(--mp-ink);font:inherit;font-weight:600;font-size:16px;cursor:pointer}
.mp-yr[aria-pressed=true]{background:var(--mp-on);border-color:var(--mp-on);color:var(--mp-onfg)}
.mp-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:14px}
.mp-legend>span{display:inline-flex;align-items:center;gap:6px}
.mp-legend .k{height:18px}
.k{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:16px;border-radius:4px;font:700 10px/1 'IBM Plex Sans',sans-serif}
.k.lg{width:26px;height:20px;font-size:11px}
.k-PMI{background:var(--kP-bg);color:var(--kP-fg);box-shadow:inset 0 0 0 1.5px var(--kP-bg)}
.k-RECALL{background:var(--kR-bg);color:var(--kR-fg);box-shadow:inset 0 0 0 1.5px var(--kR-bg)}
.k-PREMOT{background:var(--kPM-bg);color:var(--kPM-fg);box-shadow:inset 0 0 0 1.5px var(--kPM-ring)}
.k-MOT{background:var(--kM-bg);color:var(--kM-fg);box-shadow:inset 0 0 0 1.5px var(--kM-bg)}
.k-TAX{background:var(--kT-bg);color:var(--kT-fg);box-shadow:inset 0 0 0 1.5px var(--kT-bg)}
.k-INS{background:var(--kI-bg);color:var(--kI-fg);box-shadow:inset 0 0 0 1.5px var(--kI-bg)}
.k-TACHO{background:var(--kC-bg);color:var(--kC-fg);box-shadow:inset 0 0 0 1.5px var(--kC-bg)}
.k.moved{outline:2px solid var(--mp-gold);outline-offset:1px}
.k.done{opacity:.4}
.mp-grid{background:var(--mp-surface);border:1px solid var(--mp-line);border-radius:12px;overflow-x:auto}
.mp-row{display:grid;border-bottom:1px solid var(--mp-line2)}
.mp-row.mp-wkrow{border-bottom-color:var(--mp-line)}
.mp-vc{position:sticky;left:0;z-index:1;width:150px;background:var(--mp-surface);padding:8px 12px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;border-right:1px solid var(--mp-line)}
.mp-vc.mp-hc{z-index:2;padding:6px 12px;font-size:13px;color:var(--mp-muted);font-weight:600;border-right:0;justify-content:flex-start}
.mp-mth{padding:6px 0 2px 3px;font-size:12px;font-weight:600;color:var(--mp-ink2);white-space:nowrap;overflow:visible}
.mp-wk{position:relative;border-left:1px solid var(--mp-line3);background:var(--mp-surface)}
.mp-wk.now{background:var(--mp-nowh)}
.mp-wk button{all:unset;box-sizing:border-box;display:block;width:100%;min-height:32px;padding:6px 0;text-align:center;font:500 12px 'IBM Plex Sans',sans-serif;color:var(--mp-ink);cursor:default}
.mp-wk.now button{font-weight:700}
.mp-tip{display:none;position:absolute;top:calc(100% + 6px);width:170px;padding:8px 10px;border-radius:8px;background:var(--mp-tip);color:var(--mp-tipfg);font-size:13px;line-height:1.4;text-align:left;box-shadow:0 4px 14px rgba(20,32,43,.25);pointer-events:none}
.mp-tip .b{font-weight:600}.mp-tip .s{color:var(--mp-tipsub)}
.mp-wk:hover,.mp-wk:focus-within{z-index:5}
.mp-wk:hover .mp-tip,.mp-wk:focus-within .mp-tip{display:block}
.mp-cell{all:unset;box-sizing:border-box;width:32px;min-height:56px;padding:4px 0;border-left:1px solid var(--mp-line3);background:var(--mp-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}
.mp-cell.now{background:var(--mp-nowc)}
.mp-cell:hover{background:var(--mp-hover)}
.mp .mp-cell:focus-visible,.mp .mp-wk button:focus-visible{outline-offset:-3px!important}
.mp-plate{background:#FFD21A;color:#111111;border:1px solid #111111;border-radius:4px;padding:1px 6px;font:600 13px 'IBM Plex Mono',monospace;white-space:nowrap}
.mp-plate.lg{padding:2px 8px;font-size:15px}
.mp-int{color:var(--mp-muted);font-size:12px}
.mp-lower{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.mp-settings{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:14px}
.mp-h2{margin:0;font:700 26px/1.2 'Barlow Semi Condensed',sans-serif}
.mp-cards{display:flex;flex-wrap:wrap;gap:14px}
.mp-card{flex:1 1 320px;background:var(--mp-surface);border:1px solid var(--mp-line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.mp-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mp-card-top{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.mp-type{font-weight:600}
.mp-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.mp-f label{font-weight:600;font-size:14px}
.mp-f input{min-height:44px;padding:0 10px;border:1px solid var(--mp-input);border-radius:8px;font:inherit;font-size:15px;color:var(--mp-ink);background:var(--mp-surface)}
.mp-pmis{margin:0;font-size:14px;line-height:1.5;color:var(--mp-ink2)}
.mp-pmis span{font-weight:600}
.mp-note{margin:0;color:var(--mp-muted);font-size:15px}
.mp-link{all:unset;cursor:pointer;color:var(--mp-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.mp-next{flex:1 1 300px;background:var(--mp-surface);border:1px solid var(--mp-line);border-radius:12px;overflow:hidden}
.mp-next h2{margin:0;padding:16px 18px;font:600 18px/1.3 'IBM Plex Sans',sans-serif;border-bottom:1px solid var(--mp-line2)}
.mp-up{padding:12px 18px;border-bottom:1px solid var(--mp-line2);display:flex;align-items:center;gap:12px}
.mp-up>div{display:flex;flex-direction:column;gap:2px}
.mp-up-t{font-weight:600;font-size:15px}
.mp-up-w{color:var(--mp-muted);font-size:13px}
.mp-opint{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--mp-surface);border:1px solid var(--mp-line);border-radius:12px;padding:12px 16px}
.mp-opint label{font-weight:600}
.mp-opint input{width:84px;min-height:44px;padding:0 10px;border:1px solid var(--mp-input);border-radius:8px;font:inherit;font-size:15px;color:var(--mp-ink);background:var(--mp-surface)}
.mp-opint .mp-int{font-size:14px;margin-left:auto}
.mp-form{border:1px solid var(--mp-line);border-radius:12px;padding:14px;margin:10px 0}
.mp-none{margin:0;padding:16px 18px;color:var(--mp-muted)}
@media (max-width:560px){.mp-h1{font-size:32px}.mp-card-grid{grid-template-columns:1fr}}

/* Export */
.exp-list{display:grid;gap:12px}
.exp-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.exp-head{display:flex;gap:14px;align-items:center;padding:16px;cursor:pointer}
.exp-head input{width:22px;height:22px;min-height:0;margin:0;flex:none;accent-color:var(--accent)}
.exp-body{border-top:1px solid var(--line);padding:14px 16px 16px}
.exp-colhead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:10px}
.exp-colhead span{color:var(--muted);font-size:14px}
.exp-cols{display:flex;flex-wrap:wrap;gap:8px}
.exp-col{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:14px;cursor:pointer;background:var(--surface-2)}
.exp-col:has(input:checked){background:var(--blue-soft);border-color:var(--accent);color:var(--accent-text)}
.exp-col input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--accent)}
.exp-foot{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin-top:16px;padding:16px 20px;position:sticky;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.exp-mode{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.exp-mode legend{font-weight:700;float:left;margin-right:6px}
.exp-mode label{display:inline-flex;gap:6px;align-items:center}
.exp-mode input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--accent)}

/* Builder */
.builder{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
@media (max-width:1060px){.builder{grid-template-columns:1fr}}
.titems{list-style:none;padding:0;margin:0 0 14px}
.titem{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.titem .tn{font:700 16px var(--display);color:var(--muted);text-align:right}
.titem .tools{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.titem .switch{margin-right:6px}
@media (max-width:640px){.titem{grid-template-columns:24px 1fr}.titem .tools{grid-column:2}}
.phone{border:10px solid #22272E;border-radius:30px;background:var(--paper);overflow:auto;max-height:680px;position:sticky;top:20px}
.phone .pv-head{background:var(--sign);color:#fff;padding:14px 14px 12px}
.phone .pv-body{padding:12px}
.pv-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;font-size:14px}
.pv-item .seg button{padding:6px 12px;min-width:0;font-size:13px}

/* Sheet & toast */
.overlay{position:fixed;inset:0;background:rgba(8,12,18,.5);z-index:80}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--surface);z-index:81;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:-8px 0 30px rgba(0,0,0,.25);animation:slide .18s ease-out}
.sheet:focus{outline:none}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 14px 20px;border-bottom:1px solid var(--line)}
.sheet-body{padding:20px;overflow:auto;flex:1}
@keyframes slide{from{transform:translateX(30px);opacity:0}}
#toast{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;pointer-events:none;z-index:100;padding:0 16px calc(20px + env(safe-area-inset-bottom,0px))}
body.driver #toast{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.toast-msg{background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:8px;font-weight:700;max-width:520px;box-shadow:0 6px 20px rgba(0,0,0,.25)}

/* Driver app */
.dshell{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);display:flex;flex-direction:column}
@media (min-width:520px){.dshell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
.dhead{background:var(--sign);color:var(--sign-ink);padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.dhead strong{font:700 24px/1.1 var(--display);display:block}
.dhead span{font-size:14px;color:#E3EDFF}
.dmain{padding:16px 16px 110px;flex:1}
.dcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px}
.dh{margin:22px 0 10px}
.dtitle{font-size:30px}
.dstack{display:grid;gap:10px}
.bigbtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 18px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;font-size:17px}
.bigbtn:hover{border-color:var(--muted)}
.bigbtn strong{font:600 21px/1.15 var(--display)}
.bigbtn.defectbtn{border-color:var(--red);color:var(--red);justify-content:center;font-weight:700;margin-top:10px}
.okline{color:var(--green);font-weight:700;margin:4px 0 0}
.warnline{color:var(--amber);font-weight:700;margin:4px 0 0}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:14px 0 6px}
.progress span{display:block;height:100%;background:var(--accent)}
.items{list-style:none;padding:0;margin:14px 0}
.ci{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}
.ci.good{border-color:var(--green)}
.ci.bad{border-color:var(--red)}
.ci-top{display:flex;gap:10px;margin-bottom:10px}
.ci-n{font:700 16px/1.4 var(--display);color:var(--muted);min-width:20px}
.ci-t{font-weight:700}
.needphoto{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:var(--accent-text);background:var(--blue-soft);padding:1px 8px;border-radius:99px;vertical-align:1px}
.ci .field,.ci .upload,.ci .photo-slot{margin-top:12px}
.ci .seg{width:100%}.ci .seg button{flex:1;padding:12px}
fieldset.sev{border:0;padding:0;margin:4px 0 0}
fieldset.sev legend{font-weight:700;font-size:14px;margin-bottom:6px}
fieldset.sev label{display:flex;gap:8px;align-items:center;margin:6px 0;font-size:15px}
fieldset.sev input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--accent)}
.photo-slot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.seg.neutral button[aria-pressed=true]{background:var(--blue-soft);color:var(--accent-text)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 10px}
.chipbtn{all:unset;cursor:pointer;border-radius:6px;padding:3px;border:2px solid transparent}
.chipbtn[aria-pressed=true]{border-color:var(--accent)}
input.upper{text-transform:uppercase}
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(480px,100%);display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);z-index:30}
.tabbar button{all:unset;cursor:pointer;text-align:center;padding:14px 4px;font-weight:700;font-size:14px;color:var(--muted)}
.tabbar button[aria-current=page]{color:var(--accent-text);box-shadow:inset 0 3px 0 var(--accent)}
.cardx{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:12px}
.cardx .big{font:700 30px/1.1 var(--display);margin:6px 0}
.done-hero{text-align:center;padding:40px 10px 20px}
.done-hero svg{color:var(--green)}
.invite{max-width:440px;margin:0 auto;padding:32px 18px 60px}

:is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus)!important;outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{.side,.proto,.mobile-head,.ctrls,.legend+.plan-wrap~*{display:none!important}.shell{display:block}.plan-wrap{overflow:visible}}
