
/* Layout: top bar + sidebar (desktop) / bottom tab bar (phone); one scrolling work area. Field mode is phone-first with large tap targets. */
:root{
  --gold-a:#C98A00; --gold-b:#8A5600;
  --bg:#F3F3EF; --surface:#FFFFFF; --surface-2:#EAEBE5; --line:#D3D6CD; --ink:#121820; --ink-2:#3F4854; --ink-3:#5E6773;
  --gold:#E3A300; --gold-ink:#7A5200; --on-gold:#1B1404; --gold-soft:#FBF0D2;
  --kit:#C2410C; --ok:#1D7446; --ok-bg:#DFF1E6; --warn:#995A00; --warn-bg:#FCEDCF; --bad:#B42318; --bad-bg:#FADFDB; --info:#1E5CA3; --info-bg:#E0EAF7;
  --shadow:0 8px 30px rgba(20,26,34,.16);
  --font-d:'Barlow Condensed','Arial Narrow',Arial,sans-serif;
  --font-b:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-m:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0B0E13; --surface:#161B23; --surface-2:#222A35; --line:#3A4452; --ink:#F3F5F8; --ink-2:#CDD3DB; --ink-3:#A3ACB8;
  --gold:#F5BE45; --gold-ink:#FFD47A; --on-gold:#1B1404; --gold-soft:#3A2E14;
  --kit:#FF9A5C; --ok:#6EDB9C; --ok-bg:#163A25; --warn:#FFC766; --warn-bg:#3D2E12; --bad:#FF8A7D; --bad-bg:#45201B; --info:#93C2FF; --info-bg:#172C47;
  --shadow:0 8px 30px rgba(0,0,0,.5); color-scheme:dark; --gold-a:#FFE08A; --gold-b:#E3A300;
}}
:root[data-theme="dark"]{
  --bg:#0B0E13; --surface:#161B23; --surface-2:#222A35; --line:#3A4452; --ink:#F3F5F8; --ink-2:#CDD3DB; --ink-3:#A3ACB8;
  --gold:#F5BE45; --gold-ink:#FFD47A; --on-gold:#1B1404; --gold-soft:#3A2E14;
  --kit:#FF9A5C; --ok:#6EDB9C; --ok-bg:#163A25; --warn:#FFC766; --warn-bg:#3D2E12; --bad:#FF8A7D; --bad-bg:#45201B; --info:#93C2FF; --info-bg:#172C47;
  --shadow:0 8px 30px rgba(0,0,0,.5); color-scheme:dark; --gold-a:#FFE08A; --gold-b:#E3A300;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font-b);font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-feature-settings:'tnum' 0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--surface)}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--font-d);font-weight:700;letter-spacing:.005em;margin:0;text-wrap:balance;line-height:1.08}
h1{font-size:34px;font-weight:800} h2{font-size:24px} h3{font-size:19px}
p{margin:0}
a{color:var(--info)}
.ms{visibility:hidden;font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:20px;line-height:1;display:inline-block;width:1em;overflow:hidden;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;vertical-align:-4px;flex:none}
.icons-ready .ms{visibility:visible}
.brand-name .hub{display:inline-block;vertical-align:middle;margin-left:4px;padding:2px 7px 1px;border-radius:5px;background:#131920;color:#F2B83A;box-shadow:inset 0 0 0 1px #F2B83A55;font-size:.58em;letter-spacing:.14em;line-height:1.35;position:relative;top:-2px}
.callout{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:10px;background:var(--gold-soft);border-left:5px solid var(--gold);font-size:15px;line-height:1.4;font-weight:500;color:var(--ink)}
.callout>.ms{color:var(--gold-ink);font-size:22px;flex:none}
.callout .k{display:block;font:700 11px/1.2 var(--font-b,inherit);letter-spacing:.09em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:2px}
.callout.access{background:var(--info-bg);border-left-color:var(--info)} .callout.access>.ms,.callout.access .k{color:var(--info)}
.callout.alert{background:var(--bad-bg);border-left-color:var(--bad)} .callout.alert>.ms,.callout.alert .k{color:var(--bad)}
.callout.due{background:var(--warn-bg);border-left-color:var(--warn)} .callout.due>.ms,.callout.due .k{color:var(--warn)}
.unit.kitchen{border-left:5px solid var(--kit);background:color-mix(in srgb,var(--kit) 7%,var(--surface))}
.unit.kitchen .tag{background:var(--kit);color:#fff;font-weight:700}
.pill.kit{background:color-mix(in srgb,var(--kit) 16%,transparent);color:var(--kit)}
.grp{display:flex;align-items:center;gap:8px;margin-top:6px}
.grp .ms{font-size:18px}
.grp.kit{color:var(--kit)}
.applrow{display:grid;grid-template-columns:minmax(0,1fr) 78px auto;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);align-items:center}
.applrow .noz{grid-column:1/-1}
.applrow .del{grid-column:3;grid-row:1;min-width:40px;min-height:40px}
@media (min-width:620px){.applrow{grid-template-columns:minmax(0,1.3fr) 78px minmax(0,1.2fr) auto}.applrow .noz,.applrow .del{grid-column:auto}}
.coderef{display:block;font:500 11px/1.3 'IBM Plex Mono',monospace;color:var(--ink-3,#6b7280);letter-spacing:.01em;margin-top:2px}
.scanner{position:fixed;inset:0;z-index:300;background:#000;display:flex;flex-direction:column;color:#fff}
.scanner video{flex:1;min-height:0;width:100%;object-fit:cover;background:#000}
.scanner .scan-frame{position:absolute;left:50%;top:42%;width:min(78vw,420px);height:min(34vw,170px);transform:translate(-50%,-50%);border:3px solid #F2B83A;border-radius:14px;box-shadow:0 0 0 9999px rgba(0,0,0,.45);pointer-events:none}
.scanner .scan-frame::after{content:'';position:absolute;left:8px;right:8px;top:50%;height:2px;background:#ff4d4d;box-shadow:0 0 8px #ff4d4d;animation:scanline 1.6s ease-in-out infinite}
@keyframes scanline{0%,100%{transform:translateY(-60px)}50%{transform:translateY(60px)}}
.scanner .scan-top{position:absolute;top:0;left:0;right:0;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#000a,#0000)}
.scanner .scan-bot{padding:14px 16px calc(env(safe-area-inset-bottom) + 16px);display:flex;flex-direction:column;gap:10px;background:#000}
.scanner .scan-msg{text-align:center;font-size:14px;min-height:20px}
.scanner .btn{background:#ffffff1a;color:#fff;border-color:#ffffff40}
.scanner .btn.primary{background:#F2B83A;color:#111;border-color:#F2B83A}
.notice{border-color:var(--info)!important}
@media print{.scanner{display:none}}
.mono{font-family:var(--font-m);font-variant-numeric:tabular-nums;font-size:.92em}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3)} .small{font-size:14px} .tiny{font-size:12.5px}
.label{font-family:var(--font-d);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:13.5px;color:var(--ink-3)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:12px}
.grow{flex:1;min-width:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* App frame */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--surface);border-bottom:1px solid var(--line);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:10px}
.top-in{display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.mark{width:34px;height:34px;border-radius:8px;background:var(--gold);color:var(--on-gold);display:grid;place-items:center;flex:none}
.mark svg{width:20px;height:20px}
.brand-name{font-family:var(--font-d);font-weight:800;font-size:22px;letter-spacing:.05em;line-height:1;white-space:nowrap}
.brand-sub{font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.top-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.sync{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.sync.on i{background:var(--ok)} .sync.local i{background:var(--warn)} .sync.err i{background:var(--bad)}
.modeswitch{display:flex;background:var(--surface-2);border-radius:999px;padding:3px}
.modeswitch button{border:0;background:transparent;padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer;color:var(--ink-2)}
.modeswitch button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.frame{display:flex;min-height:calc(100% - 56px)}
.side{width:224px;flex:none;border-right:1px solid var(--line);background:var(--surface);padding:14px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(56px + env(safe-area-inset-top,0px));height:calc(100vh - 56px - env(safe-area-inset-top,0px));overflow:auto}
.nav-btn{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--ink-2);font-weight:500}
.nav-btn:hover{background:var(--surface-2)}
.nav-btn[aria-current="page"]{background:var(--gold-soft);color:var(--gold-ink);font-weight:600}
.nav-btn .badge{margin-left:auto}
.side .sep{height:1px;background:var(--line);margin:10px 6px}
main{flex:1;min-width:0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 40px}
.wrap{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.bottom{display:none}
@media (max-width:900px){
  .side{display:none}
  main{padding-block:14px calc(90px + env(safe-area-inset-bottom,0px))}
  .bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding-left:max(4px,env(safe-area-inset-left,0px));padding-right:max(4px,env(safe-area-inset-right,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .bottom button{flex:1;border:0;background:transparent;padding:8px 2px 9px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;color:var(--ink-3);cursor:pointer;min-width:0}
  .bottom button .ms{font-size:24px}
  .bottom button{color:var(--ink-2)}
  .bottom button[aria-current="page"]{color:var(--gold-ink);box-shadow:inset 0 3px 0 var(--gold)}
  .brand-sub{display:none}
  h1{font-size:28px}
  body.typing .bottom{display:none}
  body.typing main{padding-bottom:24px}
}
@media (max-width:520px){ .sync span{display:none} .brand-name{font-size:16px;letter-spacing:.02em} .top .logo{width:32px;height:32px} .brand{gap:8px} .top-in{gap:8px} .modeswitch button{padding:6px 10px} }

/* Brand */
.logo{flex:none;display:block;filter:drop-shadow(0 2px 3px rgba(120,80,0,.25))}
.brand-name .gold{background:linear-gradient(180deg,var(--gold-a),var(--gold-b));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Components */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 14px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;min-height:40px;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.btn.primary:hover{filter:brightness(1.05)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{min-height:34px;padding:5px 11px;font-size:13.5px}
/* Tappable affordances: raised buttons, chevrons on rows that open something, pressed states. */
.btn{border-width:1.5px;border-color:color-mix(in srgb,var(--ink) 22%,var(--line));box-shadow:0 1px 2px rgba(16,24,32,.10);transition:transform .06s,box-shadow .06s,background .12s}
.btn:active{transform:translateY(1px);box-shadow:none}
.btn.primary{box-shadow:0 2px 0 color-mix(in srgb,var(--gold) 60%,#000)}
.btn.primary:active{box-shadow:none}
.btn.ghost{box-shadow:none;border-color:transparent}
.btn.danger{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}
.btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.item[data-act]::after,.unit::after{content:"";flex:none;width:9px;height:9px;border-right:2.5px solid var(--ink-3);border-top:2.5px solid var(--ink-3);transform:rotate(45deg);margin:0 4px 0 2px;opacity:.85}
.item[data-act]:active,.unit:active{background:var(--surface-2)}
.unit{box-shadow:0 1px 2px rgba(16,24,32,.08);border-width:1.5px}
.unit:hover{border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details>summary:not(:has(.chev))::after{content:"";display:inline-block;width:7px;height:7px;margin-left:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .15s;opacity:.7}
details[open]>summary:not(:has(.chev))::after{transform:translateY(1px) rotate(-135deg)}
.chev{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.seg button{color:var(--ink)}
.nextstep{margin-top:6px}
.clsec{display:flex;flex-direction:column;gap:8px;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg)}
.clrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.clrow .clmove{display:flex;flex-direction:column;gap:4px}
.clrow .clopts{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.clrow .clopts select{width:auto;flex:1 1 160px}
.clrow.off{opacity:.6;background:var(--surface-2)}
.clrow .cltext{min-height:44px}
@media (min-width:900px){.clrow{grid-template-columns:auto minmax(0,1fr) auto}.clrow .clopts{grid-column:auto;flex-wrap:nowrap}.clrow .clopts select{flex:0 1 190px}}
.dash{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.dash>*{min-width:0}
.lockset{display:contents;border:0;margin:0;padding:0;min-width:0}
.locked .panel-h h2::after{content:"  ·  locked by admin";font:600 12.5px var(--font-b);color:var(--ink-3);letter-spacing:0}
.locked .btn.primary{display:none}
.portal{position:fixed;inset:0;z-index:50;background:var(--bg);overflow:auto;-webkit-overflow-scrolling:touch}
.portal-in{max-width:980px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 16px 24px;display:flex;flex-direction:column;gap:14px}
.portal-h{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:3px solid var(--gold)}
.portal-bar{position:sticky;top:0;z-index:2;display:flex;gap:10px;align-items:center;justify-content:center;padding:8px 12px;background:var(--ink);color:var(--surface);font-weight:600;font-size:14px}
.portal-bar .btn{background:transparent;color:inherit;border-color:currentColor}
.bars{display:flex;align-items:flex-end;gap:6px;height:170px;padding-top:18px}
.bar{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.bar .bf{width:100%;max-width:46px;min-height:2px;background:linear-gradient(180deg,var(--gold),color-mix(in srgb,var(--gold) 70%,#000));border-radius:6px 6px 2px 2px}
.bar .bv{font-size:11px;color:var(--ink-2);white-space:nowrap}
.bar .bl{font-size:12px;color:var(--ink-3);white-space:nowrap}
.meter{height:6px;border-radius:9px;background:var(--surface-2);margin-top:6px;overflow:hidden}.meter i{display:block;height:100%;background:var(--gold)}
@media (min-width:1000px){.dash{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dw-kpis,.dw-due{grid-column:1/-1}}
.guide-body ol,.guide-body ul{margin:6px 0 6px 20px;display:flex;flex-direction:column;gap:6px}
.guide-body p{margin:6px 0}
.guide-body table{width:100%;border-collapse:collapse;margin:8px 0}
.guide-body th,.guide-body td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top;font-size:14.5px}
.guide-body th{background:var(--surface-2)}
.guide-body{font-size:16px;line-height:1.55}
.btn.big{min-height:52px;font-size:16px;padding:12px 18px;border-radius:10px}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.panel-h{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-b{padding:14px 16px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.pill.ok{background:var(--ok-bg);color:var(--ok)} .pill.warn{background:var(--warn-bg);color:var(--warn)} .pill.bad{background:var(--bad-bg);color:var(--bad)} .pill.info{background:var(--info-bg);color:var(--info)} .pill.gold{background:var(--gold-soft);color:var(--gold-ink)}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer}
.kpi:hover{border-color:var(--ink-3)}
.kpi .v{font-family:var(--font-d);font-weight:700;font-size:32px;line-height:1;font-variant-numeric:tabular-nums}
.kpi.bad .v{color:var(--bad)} .kpi.warn .v{color:var(--warn)}
.list{display:flex;flex-direction:column}
.item{display:flex;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);cursor:pointer;background:transparent;border-left:0;border-right:0;border-bottom:0;text-align:left;width:100%}
.item:first-child{border-top:0}
.item:hover{background:var(--surface-2)}
.item .t{font-weight:600}
.item .s{font-size:14px;color:var(--ink-3)}
.stripe{width:4px;align-self:stretch;border-radius:4px;background:var(--line);flex:none}
.stripe.bad{background:var(--bad)} .stripe.warn{background:var(--warn)} .stripe.ok{background:var(--ok)} .stripe.info{background:var(--info)}
.empty{padding:28px 16px;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;gap:10px;align-items:center}
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-family:var(--font-d);font-weight:600;text-transform:uppercase;letter-spacing:.07em;font-size:12px;color:var(--ink-3);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer} .tbl tr.click:hover td{background:var(--surface-2)}
.tbl .r{text-align:right}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{border:0;background:transparent;padding:10px 14px;font-weight:600;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-2)}
.chip:has(input:checked){background:var(--gold-soft);border-color:var(--gold);color:var(--gold-ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:0 10px;min-height:40px;flex:1;min-width:180px}
.search input{border:0;background:transparent;outline:none;flex:1;min-width:0;padding:8px 0}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.page-h p{color:var(--ink-3);margin-top:4px}
.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1100px){.grid2{grid-template-columns:minmax(0,1fr)}}
.banner{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:var(--r);background:var(--gold-soft);color:var(--ink);flex-wrap:wrap}
.banner .grow{min-width:220px}

/* Forms */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.form .full{grid-column:1/-1}
@media (max-width:600px){.form{grid-template-columns:minmax(0,1fr)}}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.fld>span{font-size:13px;font-weight:600;color:var(--ink-2)}
.fld small{color:var(--ink-3);font-size:12px}
input.in,select.in,textarea.in{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-height:44px;outline:none;font-size:16px}
textarea.in{min-height:84px;resize:vertical}
input.in:focus,select.in:focus,textarea.in:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent)}
fieldset{border:0;padding:0;margin:0;min-width:0}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.check{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--surface)}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--gold);flex:none}
.check:has(input:checked){border-color:var(--gold);background:var(--gold-soft)}

/* Modal */
.scrim{position:fixed;inset:0;background:rgba(10,14,20,.55);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:var(--bg);border-radius:14px;box-shadow:var(--shadow);width:100%;max-width:640px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}
.modal.wide{max-width:980px}
.modal-h{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
.modal-h h2{flex:1;min-width:0}
.modal-b{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.modal-f{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap}
@media (max-width:700px){
  .scrim{padding:0;align-items:flex-end}
  .modal,.modal.wide{max-width:none;border-radius:16px 16px 0 0;max-height:calc(100% - 24px - env(safe-area-inset-top,0px))}
  .modal-f{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .modal-b{padding:14px}
}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:80;background:var(--ink);color:var(--surface);padding:11px 16px;border-radius:10px;font-weight:600;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
@media (max-width:900px){.toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}

/* Schedule */
.week{display:grid;grid-template-columns:150px repeat(7,minmax(120px,1fr));min-width:1000px}
.week .hd{padding:8px 10px;border-bottom:1px solid var(--line);font-family:var(--font-d);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--ink-3)}
.week .hd.today{color:var(--gold-ink)}
.week .tech{padding:10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-weight:600;display:flex;gap:8px;align-items:center}
.week .cell{padding:6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:84px;display:flex;flex-direction:column;gap:4px;position:relative}
.week .cell.today{background:color-mix(in srgb,var(--gold) 6%,transparent)}
.week .add{opacity:0;border:1px dashed var(--line);background:transparent;border-radius:6px;padding:3px;color:var(--ink-3);cursor:pointer;font-size:12px}
.week .cell:hover .add,.week .add:focus-visible{opacity:1}
.jchip{border:0;text-align:left;font:inherit;color:inherit;border-radius:6px;padding:5px 7px;font-size:12px;background:var(--surface-2);cursor:pointer;border-left:3px solid var(--info);display:flex;flex-direction:column;gap:1px;width:100%}
.jchip b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jchip.ok{border-left-color:var(--ok)} .jchip.warn{border-left-color:var(--warn)} .jchip.muted{opacity:.55}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.agenda{display:none}
@media (max-width:900px){ .weekwrap{display:none} .agenda{display:flex;flex-direction:column;gap:12px} }

/* Schedule: due panel + drag and drop */
.sched{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.duepanel{order:-1;display:flex;flex-direction:column;overflow:hidden}
.duelist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.duelist>p{grid-column:1/-1}
@media (min-width:1500px){
  .sched{grid-template-columns:minmax(0,1fr) 310px}
  .duepanel{order:0;position:sticky;top:calc(72px + env(safe-area-inset-top,0px));max-height:calc(100vh - 96px)}
  .duelist{display:block;overflow:auto}
}
.dueitem{display:flex;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface)}
.dueitem[draggable="true"]{cursor:grab}
.dragging{opacity:.45}
.week .cell.drop-on{background:var(--gold-soft);outline:2px dashed var(--gold);outline-offset:-3px}
.week .hd .n{background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:0 7px;margin-left:6px;font-size:12px}
.jchip[draggable="true"]{cursor:grab}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mhd{padding:8px;font-family:var(--font-d);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--ink-3);border-bottom:1px solid var(--line)}
.mcell{min-height:110px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:4px;cursor:pointer;min-width:0}
.mcell:nth-child(7n){border-right:0}
.mcell.out{background:var(--surface-2);opacity:.6}
.mcell.today .mnum span:first-child{background:var(--gold);color:var(--on-gold);border-radius:999px;padding:0 7px}
.mcell.sel{outline:2px solid var(--ink);outline-offset:-2px}
.mcell.drop-on{background:var(--gold-soft);outline:2px dashed var(--gold);outline-offset:-3px}
.mnum{display:flex;justify-content:space-between;font-weight:600;font-size:13px}
.mcount{font-size:11px;background:var(--surface-2);border-radius:999px;padding:0 6px;color:var(--ink-2)}
.mchips{display:flex;flex-direction:column;gap:3px;min-width:0}
.mchips .jchip{padding:3px 6px}
@media (max-width:700px){.mcell{min-height:56px;padding:4px}.mchips{display:none}.mhd{padding:6px 2px;text-align:center;font-size:11px}}
.toast-btn{margin-left:12px;background:transparent;border:1px solid currentColor;color:inherit;border-radius:6px;padding:3px 9px;font-weight:700;cursor:pointer}
/* Inspection */
.verdict{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}
.verdict .btn{min-height:64px;font-size:18px}
.verdict .v-pass[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:#fff}
.verdict .v-fail[aria-pressed="true"]{background:var(--bad);border-color:var(--bad);color:#fff}
.verdict .v-na[aria-pressed="true"]{background:var(--ink-3);border-color:var(--ink-3);color:#fff}
.svc{display:flex;gap:6px;align-items:stretch}
.daterow{display:flex;gap:12px;align-items:flex-end}
.svc .check{flex:1}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ph{width:100%;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.ph-empty{display:grid;place-items:center;background:var(--surface-2);color:var(--ink-3)}
.ph-empty .ms{font-size:34px}
details.panel>summary{list-style:none}
details.panel>summary::-webkit-details-marker{display:none}
details.panel[open]>summary .chev{transform:rotate(180deg)}
.scanbar{display:flex;gap:8px}
.qdef{flex-basis:100%;display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--bad-bg);padding:8px;border-radius:8px}
.qdef img{width:52px;height:52px;object-fit:cover;border-radius:6px}
.scanbar .search{min-width:0}
/* Field */
.fjob{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}
.card-acts{display:flex;flex-direction:column;gap:8px}.card-sec{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
@media (max-width:520px){.brand-name .hub{display:none}}
.fjob .when{font-family:var(--font-m);font-size:13px;color:var(--ink-2)}
.fjob .who{font-family:var(--font-d);font-weight:700;font-size:22px;line-height:1.1}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.steps button{border:0;background:var(--surface-2);border-radius:8px;padding:8px 4px;font-size:12px;font-weight:600;color:var(--ink-3);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}
.steps button.done{color:var(--ok)}
.steps button[aria-current="step"]{background:var(--ink);color:var(--surface)}
.unit{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;width:100%}
.unit .tag{font-family:var(--font-m);font-weight:500;font-size:13px;background:var(--surface-2);border-radius:6px;padding:6px 8px;min-width:54px;text-align:center}
.res{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--ink-3)}
.res.pass{background:var(--ok-bg);color:var(--ok)} .res.fixed{background:var(--warn-bg);color:var(--warn)} .res.fail{background:var(--bad-bg);color:var(--bad)} .res.na{background:var(--surface-2);color:var(--ink-3)}
.qrow{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.qrow:first-child{border-top:0}
.qrow p{flex:1;min-width:200px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.seg button{border:0;background:var(--surface);padding:9px 12px;font-weight:600;font-size:13px;cursor:pointer;color:var(--ink-2);min-width:52px;min-height:42px}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"].p{background:var(--ok);color:#fff}
.seg button[aria-pressed="true"].f{background:var(--bad);color:#fff}
.seg button[aria-pressed="true"].n{background:var(--ink-3);color:#fff}
.sig{width:100%;height:180px;background:#fff;border:1px dashed var(--ink-3);border-radius:10px;touch-action:none;display:block}
.thumbs{display:flex;gap:6px;flex-wrap:wrap}
.thumbs img{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.sticky-act{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:5}
@media (min-width:901px){.sticky-act{bottom:12px}}

/* Report (inside app) */
.report{background:#fff;color:#18202A;border-radius:10px;padding:24px;border:1px solid var(--line);font-size:13.5px;overflow-x:auto}
.report h1{font-family:var(--font-d);font-size:26px}
.report table{width:100%;border-collapse:collapse;margin-top:8px}
.report th,.report td{border:1px solid #cfd3cb;padding:6px 8px;text-align:left;vertical-align:top}
.report td,.report th,.report h1,.report h3,.report p{color:#18202A}
.report th{background:#eef0ea;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
#splash{--sp-c:#E3A300;position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 38%,#FFFDF6 0%,#F3F1E8 55%,#E7E4D8 100%);color:#121820;transition:opacity .45s ease,transform .5s ease;overflow:hidden}
#splash.sp-dark{background:radial-gradient(120% 90% at 50% 38%,#232C38 0%,#141A22 55%,#0B0F14 100%);color:#F3F1E8}
#splash.sp-out{opacity:0;transform:scale(1.04);pointer-events:none}
#splash .sp-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--sp-c) 38%,transparent) 0%,transparent 62%);top:50%;left:50%;transform:translate(-50%,-62%);animation:sp-pulse 2.4s ease-in-out infinite;filter:blur(6px)}
#splash .sp-in{position:relative;max-width:100vw;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;text-align:center}
#splash .sp-mark{min-width:132px;height:132px;display:grid;place-items:center;filter:drop-shadow(0 14px 28px rgba(122,82,0,.35))}
#splash .sp-word.sp-name{white-space:normal;letter-spacing:.04em;padding-left:0;animation:sp-fade .6s ease .3s forwards;font-size:clamp(24px,7vw,34px)}
#splash .sp-logo{max-width:min(260px,80vw);max-height:120px;object-fit:contain;animation:sp-rise .7s cubic-bezier(.2,.8,.2,1) both}
#splash .sp-outline{stroke-dasharray:190;stroke-dashoffset:190;animation:sp-draw .8s ease-out forwards}
#splash .sp-shield{opacity:0;animation:sp-fade .45s ease-out .55s forwards}
#splash .sp-inner{opacity:0;animation:sp-fade .35s ease-out .7s forwards}
#splash .sp-flame{transform-origin:32px 49px;transform:scale(.2);opacity:0;animation:sp-flame .55s cubic-bezier(.2,1.4,.4,1) .85s forwards,sp-flicker 1.6s ease-in-out 1.45s infinite}
#splash .sp-check{stroke-dasharray:30;stroke-dashoffset:30;animation:sp-draw .35s ease-out 1.25s forwards}
#splash .sp-shine{animation:sp-shine 2.2s ease-in-out 1.4s infinite}
#splash .sp-word{font:800 clamp(22px,6.4vw,34px)/1 'Barlow Condensed','Arial Narrow',Arial,sans-serif;white-space:nowrap;letter-spacing:.3em;margin-top:8px;opacity:0;animation:sp-track .8s cubic-bezier(.2,.8,.2,1) .5s forwards;padding-left:.3em}
#splash .sp-gold{color:var(--sp-c)}
#splash .sp-sub{font:700 13px/1 'Barlow',Arial,sans-serif;letter-spacing:.5em;opacity:0;animation:sp-fade .5s ease .9s forwards;color:#7A5200;padding-left:.5em}
#splash.sp-dark .sp-sub{color:#F0C35A}
#splash .sp-sub.sp-pow{letter-spacing:.18em;font-size:11px}
#splash .sp-bar{width:180px;height:4px;border-radius:4px;background:rgba(120,100,40,.18);overflow:hidden;margin-top:18px;opacity:0;animation:sp-fade .3s ease 1s forwards}
#splash .sp-bar i{display:block;height:100%;width:40%;border-radius:4px;background:linear-gradient(90deg,transparent,var(--sp-c),transparent);animation:sp-load 1.1s ease-in-out infinite}
#splash .sp-tag{font:500 12.5px/1.3 'Barlow',Arial,sans-serif;opacity:0;animation:sp-fade .5s ease 1.15s forwards;color:#5E6773}
#splash.sp-dark .sp-tag{color:#AEB6C0}
@keyframes sp-draw{to{stroke-dashoffset:0}}
@keyframes sp-fade{to{opacity:1}}
@keyframes sp-rise{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes sp-flame{to{transform:scale(1);opacity:1}}
@keyframes sp-flicker{0%,100%{transform:scale(1)}30%{transform:scale(1.04,.97)}60%{transform:scale(.97,1.05)}}
@keyframes sp-shine{0%{transform:translateX(0) rotate(18deg)}55%,100%{transform:translateX(130px) rotate(18deg)}}
@keyframes sp-track{from{opacity:0;letter-spacing:.7em}to{opacity:1;letter-spacing:.3em}}
@keyframes sp-pulse{0%,100%{opacity:.75;transform:translate(-50%,-62%) scale(1)}50%{opacity:1;transform:translate(-50%,-62%) scale(1.06)}}
@keyframes sp-load{from{transform:translateX(-110%)}to{transform:translateX(260%)}}
@media (prefers-reduced-motion:reduce){#splash *{animation:none!important;opacity:1!important;stroke-dashoffset:0!important;transform:none!important}}
.brand-logo{border-radius:6px}
header.top .brand .brand-logo{height:34px!important;max-width:110px!important}
@media (max-width:520px){header.top .brand .brand-logo{max-width:84px!important}}
.brand-prev{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:14px;border:2px solid var(--gold);border-radius:12px;background:var(--surface)}
.brand-prev img{max-height:56px;max-width:180px;object-fit:contain}
.brand-chip{margin-left:auto;padding:8px 14px;border-radius:8px;font-weight:700;font-size:14px}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 3px var(--ink)}
.legal{max-height:60vh;overflow:auto;padding:4px 2px;font-size:14px;line-height:1.55}
.legal h3{margin:16px 0 6px;font-size:16px}.legal table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.legal th,.legal td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.legal blockquote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--gold);background:var(--surface-2)}
.portal-foot{border-top:1px solid var(--line);padding-top:14px;margin-top:8px;line-height:1.5}

/* V8: Compact single-row phone header. Preserve custom logo/brand, field toggle and account. */
@media (max-width:600px) {
  header.top { padding-block:6px; }
  header.top .top-in { display:flex; flex-wrap:nowrap; align-items:center; gap:6px; min-height:46px; }
  header.top .brand { flex:1 1 auto; width:0; min-width:0; gap:5px; overflow:hidden; }
  header.top .brand > div { display:block; min-width:0; overflow:hidden; }
  header.top .brand-name { font-size:clamp(11px,3.1vw,15px); letter-spacing:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  header.top .brand-sub { display:block; font-size:10px; line-height:1.05; letter-spacing:.08em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  header.top .logo { width:30px; height:30px; }
  header.top .top-right { flex:0 0 auto; width:auto; margin-left:auto; display:flex; align-items:center; gap:5px; justify-content:flex-end; }
  header.top .sync { display:none; }
  header.top .modeswitch { padding:2px; }
  header.top .modeswitch button { padding:6px 8px; font-size:12px; }
  header.top .acct { width:32px; height:32px; flex:none; }
}
@media (max-width:350px) {
  header.top .modeswitch button { padding:5px 6px; font-size:11px; }
  header.top .brand-name { font-size:11px; }
}

/* V15: consistent photo controls and accessible action bar on small and large displays. */
.photo-pair-service{align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2vw,18px)}
.photo-pair-service .photo-slot{display:grid;grid-template-rows:auto auto minmax(3.4em,auto) auto auto;align-content:start;min-width:0;gap:9px!important}
.photo-pair-service .photo-slot .ph{width:100%;height:auto;aspect-ratio:4/3}
.photo-pair-service .photo-slot>.tiny{display:block;line-height:1.45;min-height:3.4em}
.photo-pair-service .photo-slot>.btn,.photo-pair-service .photo-gallery{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;box-sizing:border-box;width:100%;margin:0;gap:7px}
.photo-pair-service .photo-gallery{white-space:normal;line-height:1.2}
.modal-f{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.modal-f>.btn{min-height:44px}
@media(max-width:360px){
 .photo-pair-service{gap:9px}
 .photo-pair-service .photo-slot>.btn{font-size:12px;padding-inline:5px}
 .photo-pair-service .photo-gallery{font-size:12px;padding-inline:4px}
}
@media(min-width:850px){
 .photo-pair-service{max-width:840px;margin-inline:auto;gap:24px}
 .photo-pair-service .photo-slot>.tiny{min-height:2.5em}
}
/* V15: restrained premium splash; respects reduced motion and safe areas. */
#splash{isolation:isolate;background:radial-gradient(ellipse 95% 70% at 50% 34%,#283442 0%,#111922 62%,#080d13 100%);color:#f8f4e9}
#splash::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.26;background:linear-gradient(115deg,transparent 10%,rgba(230,174,54,.12) 40%,transparent 65%),repeating-linear-gradient(90deg,transparent 0 54px,rgba(255,255,255,.035) 55px 56px)}
#splash::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,transparent,#d8a42c,#fff0b2,#d8a42c,transparent);box-shadow:0 0 26px rgba(222,166,42,.35)}
#splash .sp-in{width:min(100%,600px);padding:clamp(20px,5vw,46px);padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));gap:14px}
#splash .sp-mark{filter:drop-shadow(0 12px 34px rgba(227,163,0,.25))}
#splash .sp-word{letter-spacing:.16em!important;padding-left:0!important;font-size:clamp(28px,7vw,52px);line-height:1.05}
#splash .sp-word.sp-name{font-size:clamp(28px,7vw,52px)}
#splash .sp-sub{letter-spacing:.35em;font-size:clamp(12px,3vw,16px);color:#efc65d}
#splash .sp-sub.sp-pow{color:#e7bd56}
#splash .sp-tag{color:#d8dee6;font-size:clamp(13px,3.3vw,17px);line-height:1.5;max-width:30ch}
#splash .sp-bar{background:rgba(255,255,255,.12);width:min(210px,55vw)}
#splash .sp-glow{background:radial-gradient(circle,rgba(218,158,27,.23),transparent 65%);filter:blur(16px)}
@media(prefers-reduced-motion:reduce){#splash .sp-glow,#splash .sp-bar i{animation:none!important}}

/* V18 DESIGN SYSTEM — visual refinement only; no business logic or event changes. */
:root{
  --gold:#D99B13;--gold-ink:#775000;--gold-soft:#FFF2D5;
  --bg:#F5F5F2;--surface:#FFFFFF;--surface-2:#F0F1ED;
  --line:#D8DCD7;--ink:#141C25;--ink-2:#46515E;--ink-3:#606B76;
  --r:12px;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --gold:#F2BB46;--gold-ink:#FFD47A;--gold-soft:#332B1C;
  --bg:#10151C;--surface:#1B232D;--surface-2:#26303B;
  --line:#3B4651;--ink:#F5F7FA;--ink-2:#D2DAE3;--ink-3:#A9B4C1;
}}
:root[data-theme="dark"]{
  --gold:#F2BB46;--gold-ink:#FFD47A;--gold-soft:#332B1C;
  --bg:#10151C;--surface:#1B232D;--surface-2:#26303B;
  --line:#3B4651;--ink:#F5F7FA;--ink-2:#D2DAE3;--ink-3:#A9B4C1;
}
body{letter-spacing:.003em;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:.006em}
h1{line-height:1.07}h2,h3{line-height:1.15}
button,a,input,textarea,select{touch-action:manipulation}
:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:3px solid #DFA81B;outline-offset:3px}
button:disabled,.btn:disabled{cursor:not-allowed;opacity:.62}
.top{box-shadow:0 2px 16px rgba(13,24,35,.045);border-bottom-color:var(--line)}
.brand-name{font-weight:800;letter-spacing:.035em}
.brand-sub{font-weight:600;letter-spacing:.16em}
.modal{border:1px solid var(--line);box-shadow:0 18px 56px rgba(8,15,24,.22);border-radius:18px}
.modal-h{border-bottom:1px solid var(--line)}
.modal-f{border-top:1px solid var(--line)}
.ph{border-radius:12px;background:var(--surface-2)}
.photo-pair-service{column-gap:clamp(12px,2.4vw,22px);row-gap:14px}
.photo-pair-service .photo-slot{gap:10px!important}
.photo-pair-service .photo-slot>.tiny{font-size:clamp(12px,2.8vw,14px)}
.photo-pair-service .photo-slot>.btn,.photo-pair-service .photo-gallery{border-radius:10px;min-height:46px}
@media(max-width:600px){
  .top{padding-block:8px}
  .top-in{gap:7px}
  .brand-sub{letter-spacing:.1em}
  .modal{border-radius:18px 18px 0 0;max-height:calc(100dvh - 20px)}
  .modal-f{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .photo-pair-service .photo-slot>.btn,.photo-pair-service .photo-gallery{min-height:44px}
}
@media(min-width:1100px){
  .top{padding-block:12px}
  .modal.wide{max-width:1050px}
}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}#splash *{animation:none!important}}
@media print{.top{box-shadow:none}.modal{box-shadow:none}}

/* V29.4: stronger Gold Standard identity, without enlarging the navigation header. */
header.top .brand{gap:10px;align-items:center;min-width:0}
header.top .brand-name{font-size:clamp(21px,1.65vw,26px);font-weight:850;letter-spacing:.025em;line-height:1.08}
header.top .brand-sub{font-size:11px;letter-spacing:.13em;line-height:1.2;margin-top:3px}
header.top .brand .logo,header.top .brand #logo-slot .logo{width:46px;height:46px;flex-shrink:0}
header.top .brand .brand-logo{height:46px!important;max-width:138px!important;width:auto;object-fit:contain}
@media(max-width:600px){
 header.top .top-in{min-height:50px}
 header.top .brand{gap:8px;min-width:0}
 header.top .brand-name{font-size:clamp(15px,3.9vw,19px);line-height:1.1;letter-spacing:0}
 header.top .brand-sub{font-size:9px;letter-spacing:.065em;margin-top:2px}
 header.top .brand .logo,header.top .brand #logo-slot .logo{width:38px;height:38px}
 header.top .brand .brand-logo{height:38px!important;max-width:100px!important}
}
@media(max-width:380px){
 header.top .brand{gap:6px}
 header.top .brand-name{font-size:14px}
 header.top .brand-sub{font-size:8px}
 header.top .brand .logo,header.top .brand #logo-slot .logo{width:34px;height:34px}
 header.top .brand .brand-logo{height:34px!important;max-width:72px!important}
}
.auth-brand .brand-name{font-size:clamp(26px,3vw,30px)}
.auth-brand .logo{width:52px;height:52px}


:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
.auth-wrap{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:calc(40px + env(safe-area-inset-top,0px)) 40px}
.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}
.auth-brand{display:flex;gap:12px;align-items:center}
.auth-brand .brand-name{font-size:24px}
.auth-note{background:var(--warn-bg);color:var(--ink);padding:10px 12px;border-radius:8px;font-size:14px}
.auth-card a{color:var(--gold-ink);font-weight:600}
@media (max-width:440px){.top .brand>div{display:flex;flex-direction:column;justify-content:center;min-width:0}.top .brand .brand-sub{display:block;font-size:9px;line-height:1.1;letter-spacing:.055em;white-space:nowrap}}
.acct{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);font-weight:700;font-size:13px;cursor:pointer;color:var(--ink);flex:none}

/* V19: optional per-device accent themes. Status colors and semantic buttons are untouched. */
:root[data-gs-accent="ocean"]{--gold:#1667B8;--gold-ink:#11518F;--gold-soft:#E4F0FC;--on-gold:#FFFFFF;--gold-a:#1667B8;--gold-b:#11518F}
:root[data-gs-accent="forest"]{--gold:#19734F;--gold-ink:#146044;--gold-soft:#E0F3E9;--on-gold:#FFFFFF;--gold-a:#19734F;--gold-b:#146044}
:root[data-gs-accent="plum"]{--gold:#7846A8;--gold-ink:#683A93;--gold-soft:#F0E7F8;--on-gold:#FFFFFF;--gold-a:#7846A8;--gold-b:#683A93}
:root[data-gs-accent="slate"]{--gold:#41556F;--gold-ink:#35485F;--gold-soft:#E8EEF4;--on-gold:#FFFFFF;--gold-a:#41556F;--gold-b:#35485F}
:root[data-theme="dark"][data-gs-accent="ocean"]{--gold:#69B8FF;--gold-ink:#8BCBFF;--gold-soft:#16364D;--on-gold:#0C1A2A;--gold-a:#69B8FF;--gold-b:#4598DB}
:root[data-theme="dark"][data-gs-accent="forest"]{--gold:#79DAB0;--gold-ink:#A0E8C9;--gold-soft:#183C30;--on-gold:#0C231A;--gold-a:#79DAB0;--gold-b:#43A57E}
:root[data-theme="dark"][data-gs-accent="plum"]{--gold:#D3A3FF;--gold-ink:#E0BEFF;--gold-soft:#382747;--on-gold:#281537;--gold-a:#D3A3FF;--gold-b:#AB79E4}
:root[data-theme="dark"][data-gs-accent="slate"]{--gold:#B7CDE8;--gold-ink:#DAE7F7;--gold-soft:#293746;--on-gold:#152333;--gold-a:#B7CDE8;--gold-b:#8BAACB}
@media(prefers-color-scheme:dark){
 :root:not([data-theme="light"])[data-gs-accent="ocean"]{--gold:#69B8FF;--gold-ink:#8BCBFF;--gold-soft:#16364D;--on-gold:#0C1A2A;--gold-a:#69B8FF;--gold-b:#4598DB}
 :root:not([data-theme="light"])[data-gs-accent="forest"]{--gold:#79DAB0;--gold-ink:#A0E8C9;--gold-soft:#183C30;--on-gold:#0C231A;--gold-a:#79DAB0;--gold-b:#43A57E}
 :root:not([data-theme="light"])[data-gs-accent="plum"]{--gold:#D3A3FF;--gold-ink:#E0BEFF;--gold-soft:#382747;--on-gold:#281537;--gold-a:#D3A3FF;--gold-b:#AB79E4}
 :root:not([data-theme="light"])[data-gs-accent="slate"]{--gold:#B7CDE8;--gold-ink:#DAE7F7;--gold-soft:#293746;--on-gold:#152333;--gold-a:#B7CDE8;--gold-b:#8BAACB}
}
.gs-theme-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin-top:9px}
.gs-theme-choices button{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:11px 10px;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.gs-theme-choices button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.gs-theme-choices button:focus-visible{outline:3px solid var(--info);outline-offset:3px}
.gs-theme-dot{height:16px;width:16px;flex:none;border-radius:50%;background:var(--swatch);border:1px solid rgba(0,0,0,.16)}
/* V20 — Visual hierarchy: differentiate notes, tabs and work surfaces without
   changing status semantics, actions, app state or any customer data. */
:root{
 --gs-panel-head:#F0F2F4; --gs-panel-border:#BFC7D0;
 --gs-note:#EAF2FC; --gs-note-border:#1E5CA3;
 --gs-tab-idle:#E9EDF1; --gs-tab-active:#FFFFFF;
 --gs-row-hover:#EAF0F6;
}
:root[data-theme="dark"]{
 --gs-panel-head:#283341; --gs-panel-border:#566374;
 --gs-note:#1B3149; --gs-note-border:#93C2FF;
 --gs-tab-idle:#283442; --gs-tab-active:#161B23;
 --gs-row-hover:#29394A;
}
@media(prefers-color-scheme:dark){
 :root:not([data-theme="light"]){
  --gs-panel-head:#283341; --gs-panel-border:#566374;
  --gs-note:#1B3149; --gs-note-border:#93C2FF;
  --gs-tab-idle:#283442; --gs-tab-active:#161B23;
  --gs-row-hover:#29394A;
 }
}
/* Main content panels: distinct header band and a defined edge. */
.panel{border-color:var(--gs-panel-border);box-shadow:0 2px 9px rgba(13,26,39,.045)}
.panel-h{background:var(--gs-panel-head);border-bottom:1px solid var(--gs-panel-border);border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0}
.panel-b{background:var(--surface);border-radius:0 0 var(--r) var(--r)}
/* Tabs: unselected = separate surface; selected = foreground and accent rail. */
.tabs{gap:6px;border-bottom:2px solid var(--gs-panel-border);padding:5px 4px 0;scrollbar-width:thin}
.tab{background:var(--gs-tab-idle);color:var(--ink-2);border:1px solid var(--gs-panel-border);border-bottom:3px solid transparent;border-radius:9px 9px 0 0;padding:10px 13px;margin-bottom:-2px;min-height:44px;transition:background .12s,border-color .12s}
.tab:hover{background:var(--gs-row-hover);color:var(--ink)}
.tab[aria-selected="true"]{background:var(--gs-tab-active);color:var(--ink);border-color:var(--gs-panel-border);border-bottom-color:var(--gold);box-shadow:inset 0 3px 0 var(--gold);font-weight:800}
.tab:focus-visible{outline:3px solid var(--info);outline-offset:-3px}
/* Informational notes have their own blue-tinted surface; severity notes keep
   the original red/amber/green status mapping. */
.callout{border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));border-left:5px solid var(--gold);padding:13px 15px;gap:12px}
.callout.access{background:var(--gs-note);border-color:color-mix(in srgb,var(--gs-note-border) 32%,var(--line));border-left:5px solid var(--gs-note-border)}
.callout.access>.ms,.callout.access .k{color:var(--gs-note-border)}
.callout.alert{border-color:color-mix(in srgb,var(--bad) 34%,var(--line));border-left:5px solid var(--bad)}
.callout.due{border-color:color-mix(in srgb,var(--warn) 34%,var(--line));border-left:5px solid var(--warn)}
/* Row and navigation hierarchy: selected, idle and hover are distinguishable. */
.item{border-top-color:var(--gs-panel-border)}
.item:hover,.item:focus-visible{background:var(--gs-row-hover)}
.nav-btn[aria-current="page"]{border-left:4px solid var(--gold);padding-left:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 20%,transparent)}
.bottom button[aria-current="page"]{background:color-mix(in srgb,var(--gold) 9%,var(--surface));font-weight:800}
/* Filters and segmented selectors have clearer pressed states. */
.chip{border-color:var(--gs-panel-border);background:var(--gs-tab-idle)}
.chip:hover{background:var(--gs-row-hover)}
.chip[aria-pressed="true"],.chip:has(input:checked){outline:2px solid color-mix(in srgb,var(--gold) 55%,transparent);outline-offset:1px}
.seg{border-color:var(--gs-panel-border)}
.seg button:not([aria-pressed="true"]){background:var(--gs-tab-idle)}
.seg button:not([aria-pressed="true"]):hover{background:var(--gs-row-hover)}
/* Distinguish editable form areas from plain cards. */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,select{border-color:var(--gs-panel-border)}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--info);outline-offset:1px}
@media(max-width:520px){
 .tabs{gap:5px}
 .tab{padding:10px 11px;font-size:13px}
 .callout{padding:12px 13px}
}


/* V22: unmistakable inspection progression, without changing navigation behavior. */
.nextstep.btn{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:12;display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;margin:22px 0 12px;padding:14px 20px;border:2px solid var(--gold);border-radius:14px;background:var(--gold);color:var(--on-gold,#171717);font-weight:800;font-size:1.05rem;letter-spacing:.01em;box-shadow:0 6px 0 rgba(0,0,0,.13),0 12px 26px rgba(0,0,0,.19);cursor:pointer;isolation:isolate}
.nextstep.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.nextstep.btn:active{transform:translateY(1px);box-shadow:0 3px 0 rgba(0,0,0,.13)}
.nextstep.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.nextstep.btn svg{width:22px;height:22px;flex-shrink:0}
@media(max-width:650px){.nextstep.btn{bottom:calc(8px + env(safe-area-inset-bottom,0px));width:100%;min-height:62px;margin-top:24px;font-size:1.05rem}}
@media(prefers-reduced-motion:reduce){.nextstep.btn{transition:none}.nextstep.btn:hover,.nextstep.btn:active{transform:none}}


/* V23 — typography and print consistency; no business logic changes */
:root{--gs-type-body:var(--font-b);--gs-type-heading:var(--font-d);--gs-type-data:var(--font-m)}
body,button,input,select,textarea,.modal,.panel,.report{font-family:var(--gs-type-body)}
h1,h2,h3,h4,.panel-h h3,.modal h2,.report h1,.report h2,.report h3,
.label,.tab,.nav-btn{font-family:var(--gs-type-heading)}
button,input,select,textarea{line-height:1.35}
.report{line-height:1.5;-webkit-text-size-adjust:100%}
.report h1{font-size:26px;line-height:1.14;font-weight:800}
.report h2{font-size:21px;line-height:1.2}
.report h3{font-size:18px;line-height:1.25;font-weight:700}
.report th{font-family:var(--gs-type-heading);font-size:12.5px;font-weight:700;letter-spacing:.045em}
.report td{font-family:var(--gs-type-body);font-size:13.5px;line-height:1.45}
.report .mono,.report code,.report .num{font-family:var(--gs-type-data)}
.report img{max-width:100%;height:auto}
.report table{table-layout:auto}
@media(max-width:620px){.report{padding:14px}.report h1{font-size:23px}.report th,.report td{padding:6px}}
@media print{.report{border:0;border-radius:0;padding:0;overflow:visible;box-shadow:none}.report tr,.report img{break-inside:avoid}}

/* V24 — customer-facing inspection report system */
.gs-report-document{--rp-ink:#1c2731;--rp-gold:#ba8a22;--rp-line:#dce3e9;--rp-muted:#536475;--rp-paper:#fff;color:var(--rp-ink);font-family:Barlow,Arial,Helvetica,sans-serif;line-height:1.55;max-width:100%;overflow-wrap:anywhere}
.gs-report-document *{box-sizing:border-box}
.gs-report-document .gs-report-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 22px;padding:16px 18px;border-radius:12px;background:#19252e;color:#fff;border-top:4px solid #d7aa46}
.gs-report-document .gs-report-eyebrow{display:block;color:#eacb87;font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:800}
.gs-report-document .gs-report-title{margin:3px 0 0;font:800 clamp(20px,3.4vw,29px)/1.12 'Barlow Condensed',Arial,sans-serif;letter-spacing:.025em}
.gs-report-document .gs-report-banner small{color:#d5dce2;white-space:nowrap}
.gs-report-document h3{margin:24px 0 10px;padding:0 0 8px;border-bottom:2px solid #d6a544;font:800 20px/1.25 'Barlow Condensed',Arial,sans-serif;color:#1b2b37;letter-spacing:.015em}
.gs-report-document table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--rp-line);border-radius:9px;overflow:hidden;margin:9px 0 17px;background:#fff}
.gs-report-document th{background:#e9eef2!important;color:#243443;font:700 12px/1.3 'Barlow Condensed',Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em}
.gs-report-document th,.gs-report-document td{padding:10px 11px;border:0;border-bottom:1px solid var(--rp-line);text-align:left;vertical-align:top}
.gs-report-document tr:last-child>td,.gs-report-document tr:last-child>th{border-bottom:0}
.gs-report-document tr:nth-child(even)>td{background:#f7f9fb}
.gs-report-document td{font-size:13px;line-height:1.5;color:#24323d}
.gs-report-document figure{max-width:100%;break-inside:avoid}
.gs-report-document figure img{max-width:100%;height:auto}
.gs-report-document img{max-width:100%}
.gs-report-document p{line-height:1.55}
.gs-report-document .gs-report-banner+.gs-report-content{min-width:0}
.gs-report-document .gs-report-content{min-width:0}
.gs-report-document .gs-report-content>p[style*="border:2px"]{border-radius:9px!important;box-shadow:0 1px 4px #13243214}
@media(max-width:720px){
 .gs-report-document .gs-report-banner{padding:14px;align-items:flex-start;flex-wrap:wrap}
 .gs-report-document .gs-report-banner small{white-space:normal}
 .gs-report-document .gs-report-content>table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
 .gs-report-document .gs-report-content>table tbody,.gs-report-document .gs-report-content>table thead{width:max-content;min-width:100%}
 .gs-report-document .gs-report-content>table th,.gs-report-document .gs-report-content>table td{min-width:95px}
 .gs-report-document .gs-report-content>table th:first-child,.gs-report-document .gs-report-content>table td:first-child{min-width:105px}
 .gs-report-document h3{font-size:19px}
 .gs-report-document figure{margin-bottom:12px!important}
}
@media print{
 @page{size:auto;margin:13mm}
 .gs-report-document{font-size:10pt;color:#17242e;overflow:visible}
 .gs-report-document .gs-report-banner{-webkit-print-color-adjust:exact;print-color-adjust:exact;break-after:avoid}
 .gs-report-document h3{break-after:avoid;page-break-after:avoid}
 .gs-report-document table{display:table!important;width:100%!important;overflow:visible!important;border-radius:0}
 .gs-report-document thead{display:table-header-group!important}
 .gs-report-document tr{break-inside:avoid;page-break-inside:avoid}
 .gs-report-document th,.gs-report-document td{padding:6px 7px;font-size:9pt;overflow-wrap:anywhere}
 .gs-report-document figure,.gs-report-document img{break-inside:avoid}
}

/* V25 — prevent site details and action buttons from squeezing text into a narrow column */
.gs-site-panel{min-width:0;max-width:100%}
.gs-site-panel>.panel-h{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:13px}
.gs-site-panel>.panel-h>.grow{min-width:0;width:100%;max-width:100%}
.gs-site-panel>.panel-h>.grow h2{font-size:clamp(22px,5vw,29px);line-height:1.15;overflow-wrap:break-word;word-break:normal;hyphens:none}
.gs-site-panel>.panel-h>.grow p{max-width:100%;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:none;line-height:1.55}
.gs-site-panel .gs-site-actions{width:100%;min-width:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px}
.gs-site-panel .gs-site-actions .btn{flex:0 0 auto;min-height:40px}
.gs-site-panel>.tbl-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.gs-site-panel>.tbl-wrap>.tbl{min-width:660px}
@media(min-width:900px){
 .gs-site-panel>.panel-h{grid-template-columns:minmax(260px,1fr) minmax(0,auto);align-items:start}
 .gs-site-panel .gs-site-actions{justify-content:flex-end;max-width:550px}
}
@media(max-width:540px){
 .gs-site-panel>.panel-h{padding:16px 14px}
 .gs-site-panel .gs-site-actions{gap:7px}
 .gs-site-panel .gs-site-actions .btn{font-size:13px}
 .gs-site-panel>.tbl-wrap>.tbl{min-width:650px}
}

/* V26: site summary independent of shared panel header and generic .grow constraints */
.gs-site-panel{width:100%;min-width:0;max-width:100%;overflow:hidden}
.gs-site-summary{display:flex;flex-direction:column;gap:14px;align-items:stretch;width:100%;min-width:0;max-width:100%;padding:17px 18px;border-bottom:1px solid var(--line);background:var(--gs-panel-head,var(--surface))}
.gs-site-details{display:block;flex:none;width:100%;min-width:0;max-width:100%}
.gs-site-details h2{display:block;margin:0 0 8px;font-size:clamp(23px,5vw,30px);line-height:1.17;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.gs-site-details p{display:block;width:100%;max-width:100%;margin:0;line-height:1.5;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:none}
.gs-site-actions{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:100%;max-width:100%;min-width:0}
.gs-site-actions>*{flex:0 0 auto;max-width:100%}
.gs-site-panel .tbl-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.gs-site-panel .tbl-wrap table{width:max-content;min-width:640px;max-width:none;table-layout:auto}
.gs-site-panel .tbl-wrap th,.gs-site-panel .tbl-wrap td{white-space:normal;min-width:84px;word-break:normal}
.gs-site-panel .tbl-wrap th:first-child,.gs-site-panel .tbl-wrap td:first-child{min-width:64px}
@media(min-width:850px){
 .gs-site-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:20px;align-items:start}
 .gs-site-actions{justify-content:flex-end;max-width:500px}
}
@media(max-width:540px){
 .gs-site-summary{padding:15px 14px;gap:12px}
 .gs-site-details h2{font-size:25px}
 .gs-site-actions .btn{min-height:42px}
}

/* V27: mobile-first readable cards; full tables preserved for desktop */
.gs-mobile-cards{display:none}
@media(max-width:720px){
 .gs-desktop-table{display:none!important}
 .gs-mobile-cards{display:grid;gap:10px;padding:12px;min-width:0}
 .gs-mobile-card{min-width:0;padding:15px;background:var(--surface,#fff);border:1px solid var(--line,#d9e0e5);border-radius:12px;box-shadow:0 1px 3px rgba(14,26,38,.06);overflow-wrap:anywhere}
 .gs-mobile-card[data-act],.gs-card-name[data-act]{cursor:pointer}
 .gs-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0}
 .gs-card-head>div:first-child{min-width:0;flex:1}
 .gs-card-name{font-family:var(--font-d,inherit);font-size:21px;line-height:1.2;font-weight:800;word-break:normal}
 .gs-card-kicker{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#65717b);font-weight:700;margin-bottom:3px}
 .gs-card-meta{font-size:13px;line-height:1.45;color:var(--muted,#65717b);margin:8px 0 12px;word-break:normal}
 .gs-card-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}
 .gs-card-facts>div{min-width:0;padding:10px 8px;border-radius:8px;background:var(--surface-2,#f1f3f5);border:1px solid var(--line,#e1e5e9)}
 .gs-card-facts span,.gs-card-history>span{display:block;color:var(--muted,#65717b);font-size:11px;letter-spacing:.035em;font-weight:700;margin-bottom:5px}
 .gs-card-facts strong{display:block;font-size:14px;line-height:1.3;overflow-wrap:anywhere}
 .gs-card-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line,#ddd);padding-top:12px}
 .gs-card-buttons{display:flex;gap:7px;flex-wrap:wrap}
 .gs-unit-cards .gs-card-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gs-card-history{margin-top:12px;border-top:1px solid var(--line,#ddd);padding-top:10px}
 .gs-card-history>div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:13px}
 .gs-card-history>div span{color:var(--muted,#65717b)}
 .gs-card-history>div strong{text-align:right;font-weight:600}
 .gs-card-open{margin-top:9px;color:var(--gold,#ac7a1a);font-size:12px;font-weight:700}
}
@media(max-width:350px){.gs-card-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* V28: every remaining table stacks into labeled cards on phones (labels added by gsStackTables) */
@media(max-width:720px){
 .tbl-wrap:has(> table.gs-stack){overflow:visible}
 table.gs-stack{min-width:0!important;width:100%!important}
 table.gs-stack thead{display:none}
 table.gs-stack,table.gs-stack tbody,table.gs-stack tfoot,table.gs-stack tr{display:block;width:100%}
 table.gs-stack tr{padding:12px 14px;border-bottom:1px solid var(--line)}
 table.gs-stack tr:last-child{border-bottom:0}
 table.gs-stack td{display:block;width:auto!important;min-width:0!important;max-width:none!important;padding:5px 0;border:0;text-align:right;overflow:hidden;overflow-wrap:anywhere;white-space:normal!important}
 table.gs-stack td::before{content:attr(data-label);float:left;max-width:48%;padding-right:12px;text-align:left;color:var(--ink-3);font-family:var(--font-d);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.7}
 table.gs-stack td[data-label=""]::before,table.gs-stack td:first-child::before{display:none}
 table.gs-stack td:first-child{text-align:left;font-size:16px;padding:0 0 6px}
 table.gs-stack td:first-child:last-child{padding:0}
 table.gs-stack td:first-child:has(input:not([type=checkbox]):not([type=radio]),textarea,select)::before{display:block;float:none;max-width:none;padding:0 0 4px}
 table.gs-stack td input:not([type=checkbox]):not([type=radio]),table.gs-stack td select{max-width:52%;min-width:0}
 table.gs-stack td:first-child input:not([type=checkbox]):not([type=radio]),table.gs-stack td:first-child select,table.gs-stack td:first-child textarea{max-width:100%;width:100%}
 table.gs-stack td .row,table.gs-stack td .chips{justify-content:flex-end}
 table.gs-stack td:first-child .row,table.gs-stack td:first-child .chips{justify-content:flex-start}
}

/* Company folders keep settings readable on phones and desktop. */
.company-folders{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;margin:16px 0 24px}
.company-folder{display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:18px;min-height:100px;cursor:pointer;font:inherit}
.company-folder>span:not(.ms){flex:1;min-width:0}.company-folder strong{display:block;font-size:17px}.company-folder small{display:block;color:var(--ink-3);margin-top:5px;line-height:1.4}
.company-folder.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.company-folder:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.company-folders.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}.compact .company-folder{min-height:54px;padding:10px}.compact .company-folder strong{font-size:13px}.compact .company-folder small,.compact .company-folder>.ms:last-child{display:none}
.equipment-picker,.equipment-details{padding:12px;margin:10px 0;border:1px solid var(--line,#ddd);border-radius:10px;max-width:100%;overflow-wrap:anywhere}
.equipment-picker>summary,.equipment-details>summary{cursor:pointer;font-weight:700}
.equipment-results{display:grid;gap:10px;margin-bottom:12px}
.equipment-result{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;border:1px solid var(--line,#ddd);border-radius:10px;padding:12px;min-width:0}
.equipment-result>.grow{flex:1 1 260px;min-width:0}
.equipment-result>.btn{flex:0 1 auto;max-width:100%;white-space:normal}
.equipment-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:8px;margin:10px 0}
.equipment-specs>div{min-width:0;border-bottom:1px solid var(--line,#ddd);padding-bottom:6px}
.equipment-specs dt{font-size:11px;text-transform:capitalize;color:var(--muted,#666)}
.equipment-specs dd{margin:2px 0;white-space:pre-wrap;overflow-wrap:anywhere}

/* OEM resources stay usable at phone widths and in exported manuals. */
.oem-resources {display:grid;gap:16px;min-width:0}
.oem-resource {border:1px solid var(--line,#ddd);border-radius:12px;padding:16px;min-width:0}
.oem-resource h3 {margin-top:0}
.oem-actions {display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.oem-actions a,.oem-actions button {display:inline-flex;align-items:center;min-height:44px;padding:8px 12px}
.oem-resource input {width:100%;min-width:0;margin-top:8px}
.oem-resource summary {cursor:pointer;padding:10px 0}
.guide-body a {overflow-wrap:anywhere}
@media print {.oem-resource {break-inside:avoid}.oem-actions button {display:none}}
