/* ═══════════ SiteCaddy design language (22 Oct 2026) — shared by every app ═══════════
   Taken from the WRA 1.1.0 build (the approved master). Each app sets its own accent in index.html:
   --acc, --acc-deep, --acc-tint, --acc-ring (and the legacy --orange names point at them).
   Light working interface: slim white header, neutral ground, white grouped surfaces, one accent,
   semantic colours only for results. Spacing 4 8 12 16 24 32. Radii 8 chips, 12 controls, 16 groups.
   Type: title 28, section 20, body 16, labels 14, helper 13. System font (works offline). */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#F2F4F7;--surface:#FFFFFF;--line:#E4E7EC;--line-soft:#EAECF0;--line-2:#D0D5DD;
  --ink:#101828;--ink-2:#344054;--muted:#475467;--faint:#667085;--disabled:#98A2B3;
  --pass:#067647;--pass-bg:#ECFDF3;--pass-dot:#17B26A;
  --obs:#B54708;--obs-bg:#FFFAEB;--obs-dot:#F79009;
  --fail:#B42318;--fail-bg:#FEF3F2;--fail-dot:#F04438;
  --high:#C4320A;--high-bg:#FFF4ED;--high-dot:#EF6820;
  --med:#175CD3;--med-bg:#EFF8FF;
  /* names used by older rules and by the report */
  --navy:#101828;--orange:var(--acc);--orange-hover:var(--acc-deep);--orange-light:var(--acc-tint);
  --white:#fff;--off:#F9FAFB;--border:#D0D5DD;--text:#101828;
  --critical:#B42318;--critical-bg:#FEF3F2;--medium:#175CD3;--medium-bg:#EFF8FF;--low:#067647;--low-bg:#ECFDF3;
  --teal:#067647;--teal-light:#ECFDF3;--grey-600:#475467;
  color-scheme:light;
}
html,body{background:var(--bg)}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;color:var(--ink);line-height:1.45;padding-bottom:env(safe-area-inset-bottom);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--acc-ring);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.ico{display:inline-block;vertical-align:-0.18em;flex:none}

/* ── opening tile (in the page so it shows before any script runs) ── */
#splash{position:fixed;inset:0;z-index:2147483600;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;transition:opacity .2s}
#splash .tile{width:112px;height:112px;border-radius:28px;background:var(--acc);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(16,24,40,.18)}
#splash .nm{font-size:22px;font-weight:600;color:#101828}
#splash .by{position:absolute;bottom:calc(40px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:6px;font-size:13px;color:#667085}
#splash .by i{width:18px;height:18px;border-radius:5px;background:#101828;display:inline-flex;align-items:center;justify-content:center}
#splash.out{opacity:0;pointer-events:none}

/* ── header ── */
.hdr{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.hdr-in{max-width:760px;margin:0 auto;min-height:56px;display:flex;align-items:center;gap:4px;padding:0 8px 0 4px}
.hdr-title{flex:1;min-width:0;font-size:18px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px}
.hdr-id{flex:1;min-width:0;display:none;align-items:center;gap:8px;padding-left:12px}
.hdr.home .hdr-id{display:flex}.hdr.home .hdr-title{display:none}
.hdr-id b{font-size:15px;font-weight:700;letter-spacing:-.01em}
.hdr-id .sep{width:1px;height:16px;background:var(--line-2)}
.hdr-id .nm{font-size:15px;font-weight:500;color:var(--ink-2)}
.mark{width:24px;height:24px;border-radius:7px;background:var(--acc);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ib{width:48px;height:48px;border:0;background:none;border-radius:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);flex:none}
.ib:hover{background:var(--bg)}
.back-btn{display:none}
.avatar{width:36px;height:36px;border-radius:18px;background:var(--acc-tint);color:var(--acc-deep);font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:80px;height:80px;border-radius:40px;font-size:28px}
.save-state{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--muted);white-space:nowrap;padding:0 4px}
.save-state.bad{color:var(--fail);font-weight:600}
.offline-bar{background:#FFFAEB;color:#7A2E0E;text-align:center;font-size:13px;padding:6px 16px;display:none;border-bottom:1px solid #FEDF89}
.offline-bar.show{display:block}
.container{max-width:760px;margin:0 auto;padding:0 0 32px}

/* ── layout blocks ── */
.shead{padding:20px 16px 8px}
.shead h1{font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.015em;text-wrap:balance}
.shead .sub{margin-top:4px;font-size:15px;color:var(--muted)}
.shead .meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.glabel,.home-section{padding:24px 32px 8px;font-size:13px;font-weight:500;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.group{background:var(--surface);margin:0 16px;border-radius:16px;overflow:hidden}
.card{background:var(--surface);margin:16px;border-radius:16px;padding:16px}
.card-head{margin:0 0 16px}
.card-icon{display:none}
.card-title{font-size:20px;font-weight:600;line-height:1.25}
.card-sub{font-size:13px;color:var(--muted);margin-top:2px}
.fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.fg3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.fg1{display:grid;grid-template-columns:minmax(0,1fr);margin-bottom:16px}
.fg>*,.fg3>*{min-width:0}
@media(max-width:480px){.fg{grid-template-columns:minmax(0,1fr)}.fg3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fl{display:flex;flex-direction:column;gap:6px;min-width:0}
.fl label{font-size:14px;font-weight:500;color:var(--ink-2)}
input[type=text],input[type=date],input[type=number],input[type=email],input[type=tel],input[type=password],input[type=search],input[type=time],select,textarea{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line-2);border-radius:12px;font-size:16px;color:var(--ink);background:var(--surface);-webkit-appearance:none;appearance:none;outline:none}
textarea{padding:12px 14px;min-height:96px;resize:vertical;line-height:1.45}
select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-ring)}
input:disabled,input[readonly]{background:#F9FAFB;border-color:var(--line);color:var(--muted)}
input[type=number]{-moz-appearance:textfield}
input[type=date]{min-width:0;max-width:100%}
.sec{font-size:15px;font-weight:600;color:var(--ink);margin:24px 0 12px;padding-top:16px;border-top:1px solid var(--line-soft)}
.sec:first-child,.card-head+.sec{margin-top:0;padding-top:0;border-top:0}
.secq{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:8px}
.hint{font-size:13px;color:var(--muted);margin:-4px 0 12px;line-height:1.4}
.warn{display:flex;gap:10px;background:var(--obs-bg);color:#7A2E0E;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.45;margin-bottom:12px}
.warn:before{content:"";flex:none;width:18px;height:18px;margin-top:1px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23F79009' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01'/%3E%3C/svg%3E") no-repeat}
.narrative{background:var(--bg);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--ink-2);margin-bottom:16px}
.ev{font-size:13px;color:var(--muted);background:var(--bg);border-radius:8px;padding:8px 12px;margin-bottom:8px}
.rr{padding:12px 0;border-bottom:1px solid var(--line-soft)}.rr:last-child{border-bottom:0}
.rr input[type=text]{min-height:44px;font-size:14px;margin-top:2px}

/* Choice buttons: a segmented control; nothing selected until answered; the chosen answer gets a tick.
   Colour follows the meaning of the answer for that question (see ADVERSE in app.js), never its wording. */
.tg{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:12px;background:var(--bg);margin-bottom:12px}
.tb{flex:1 1 0;min-width:fit-content;min-height:44px;padding:6px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2;text-align:center}
.tb.on,.tb.y,.tb.n,.tb.obs,.tb.pass,.tb.fail{background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.14),0 0 0 1px rgba(16,24,40,.04);font-weight:600;color:var(--acc-deep)}
.tb.on:before,.tb.y:before,.tb.n:before,.tb.obs:before,.tb.pass:before,.tb.fail:before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/contain no-repeat}
.tb.y,.tb.pass{color:var(--pass)}
.tb.n,.tb.fail{color:var(--fail)}
.tb.obs{color:var(--obs)}
.tb b{font-weight:700;opacity:.6;margin-left:4px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{min-height:44px;padding:0 14px;border-radius:22px;border:1px solid var(--line-2);background:var(--surface);font-size:14px;font-weight:500;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.chip.on{background:var(--acc-tint);border-color:var(--acc);color:var(--acc-deep)}

/* pills (status): words always shown; colour is not the only signal */
.bdg{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;font-size:13px;font-weight:500;white-space:nowrap;background:#F2F4F7;color:var(--ink-2)}
.bdg:before{content:"";width:7px;height:7px;border-radius:4px;background:currentColor;flex:none}
.bc,.bfa{background:var(--fail-bg);color:var(--fail)}.bc:before{border-radius:1px;transform:rotate(45deg)}
.bh,.bob{background:var(--high-bg);color:var(--high)}
.bm{background:var(--med-bg);color:var(--med)}
.bl,.bpa{background:var(--pass-bg);color:var(--pass)}
.bna{background:#F2F4F7;color:var(--ink-2)}
.prog{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;font-size:13px;font-weight:500;white-space:nowrap;background:#F2F4F7;color:var(--ink-2)}
.prog.done{background:var(--pass-bg);color:var(--pass)}
.prog.part{background:var(--acc-tint);color:var(--acc-deep)}
.temp-result{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:500;margin-top:4px}
.tr-pass{background:var(--pass-bg);color:var(--pass)}
.tr-obs{background:var(--obs-bg);color:var(--obs)}
.tr-fail{background:var(--fail-bg);color:var(--fail)}

/* rows (lists) */
.row{width:100%;min-height:64px;display:flex;align-items:center;gap:16px;padding:0 12px 0 16px;border:0;background:none;text-align:left;color:var(--ink);position:relative;text-decoration:none}
button.row:hover{background:#FAFBFC}
.row-ic{flex:none;color:var(--acc);display:flex}
.row-ic.n{color:var(--faint)}
.row-body{flex:1;min-width:0;align-self:stretch;display:flex;align-items:center;gap:12px}
.group>.row:not(:last-child) .row-body{border-bottom:1px solid var(--line-soft)}
.row-text{flex:1;min-width:0;padding:11px 0;display:flex;flex-direction:column;gap:2px}
.row-title{font-size:16px;font-weight:500;overflow-wrap:anywhere}
.row-sub{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.row-trail{flex:0 1 auto;max-width:48%;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;color:var(--disabled)}
.row-del{border:0;background:none;color:var(--faint);width:44px;height:44px;border-radius:22px;display:inline-flex;align-items:center;justify-content:center}
.empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:14px}
.empty b{display:block;color:var(--ink);font-size:16px;font-weight:600;margin-bottom:4px}

/* collapsible items */
.di{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:8px}
.di.crit{box-shadow:inset 0 0 0 1px var(--fail-dot)}
.dh{min-height:64px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;user-select:none}
.dh:active{background:#FAFBFC}
.dn{width:28px;height:28px;border-radius:14px;background:var(--bg);color:var(--ink-2);font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none;font-variant-numeric:tabular-nums}
.dh .chev{color:var(--faint);display:inline-flex;transition:transform .15s}
.dh .chev.up{transform:rotate(180deg)}
.db{padding:4px 16px 16px;border-top:1px solid var(--line-soft)}
.site-meta{font-size:13px;color:var(--muted);margin-top:2px}
.site-del{background:transparent;border:none;color:var(--fail);font-size:14px;font-weight:500;padding:8px 0}
.rec-t{font-size:15px;font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* buttons */
.btn{min-height:52px;padding:0 20px;border-radius:12px;border:0;font-size:16px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap}
.btn-primary,.btn-navy{background:var(--acc);color:#fff}.btn-primary:hover,.btn-navy:hover{background:var(--acc-deep)}
.btn-outline{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-2)}
.btn-danger{background:var(--fail-bg);color:var(--fail)}
.btn-text{background:none;color:var(--acc);min-height:44px;padding:0 8px}
.btn-sm{min-height:40px;padding:0 14px;font-size:14px}
.btn[disabled]{opacity:.45}
.btn-row{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.btn-row .btn{flex:1 1 auto}
.add-row{width:100%;min-height:56px;border:1px dashed var(--line-2);border-radius:12px;background:var(--surface);color:var(--acc);font-weight:500;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.add-asset-row{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg);border-radius:12px;margin-top:12px}
.add-asset-row label{font-size:14px;font-weight:500;color:var(--ink-2)}
.done-bar{position:sticky;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom));margin-top:16px}
.done-bar .btn{width:100%}
.card>.done-bar{margin:16px -16px -16px;border-radius:0 0 16px 16px}
a.row{color:var(--ink)}
.row a,.hint a{color:var(--acc);font-weight:500}

/* photos */
.pu{position:relative;border:1.5px dashed var(--disabled);border-radius:12px;background:#F9FAFB;min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--acc);margin-bottom:4px}
.pu input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.pu-icon{line-height:1;color:var(--acc)}
.pu-txt{font-size:14px;font-weight:500;color:var(--acc)}
.lib{display:block;font-size:13px;color:var(--acc);font-weight:500;cursor:pointer;margin:4px 0 12px;padding:6px 0}
.pp{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:12px}
.pt{position:relative;display:block}
.pt img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block;max-width:100%}
.prm{position:absolute;top:4px;right:4px;width:32px;height:32px;background:rgba(16,24,40,.6);color:#fff;border-radius:16px;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pc{display:flex;gap:10px;align-items:center;margin-bottom:10px}.pc .pt{width:88px;flex:none}
.logo-prev{max-height:56px;max-width:200px;display:block;margin-bottom:10px}

/* register: outlet picker and outlet cards */
.og{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
@media(min-width:600px){.og{grid-template-columns:repeat(3,minmax(0,1fr))}}
.oc{cursor:pointer;min-height:52px;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--line-2);border-radius:12px;padding:6px 8px 6px 12px;background:var(--surface)}
.oc.on{border-color:var(--acc);background:var(--acc-tint)}
.oc-l{min-width:0;line-height:1.2}
.oc-l b{display:block;font-size:14px;color:var(--ink)}
.oc-l span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-b{display:flex;align-items:center;gap:6px;flex-shrink:0}
.oc-b button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center}
.oc-b span{min-width:18px;text-align:center;font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}
.ocard{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;background:var(--surface)}
.ocard-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:15px;color:var(--ink)}
.ocard-h b{font-size:16px}
.tvb{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--surface);overflow:hidden}
.tvb-h{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:52px;padding:8px 12px;cursor:pointer;font-size:15px;color:var(--ink)}
.tvb-b{padding:12px;border-top:1px solid var(--line-soft)}
.mvb{width:40px;height:40px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;padding:0}.mvb:disabled{opacity:.3}
.sen-ic{color:var(--obs-dot)}

/* risk rating */
.rk-t{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}.rk-t th{text-align:left;font-size:13px;font-weight:500;color:var(--muted);padding:6px}.rk-t td{padding:8px 6px;border-top:1px solid var(--line-soft)}
.rk-q{font-weight:400;font-size:13px;color:var(--muted);display:block}
.cr{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;border-bottom:1px solid var(--line-soft);color:var(--ink)}
.cr:last-child{border-bottom:none}
.stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
.stat{background:var(--bg);border-radius:12px;padding:12px}
.stat-l{font-size:13px;color:var(--muted)}
.schwrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;-webkit-overflow-scrolling:touch}

/* sheets and toast (replace browser pop-ups) */
.scrim{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:2147483000}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:2147483001;background:var(--surface);border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));max-height:90vh;overflow:auto;max-width:760px;margin:0 auto}
.sheet .handle{width:36px;height:4px;border-radius:2px;background:var(--line-2);margin:0 auto 12px}
.sheet h2{font-size:20px;font-weight:600;margin:4px 0 6px}
.sheet p{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 16px}
.sheet .acts{display:grid;gap:10px;margin-top:8px}
.sheet .acts .btn{width:100%}
.sheet.full{top:0;border-radius:0;max-height:none;max-width:none}
#sc-toast{pointer-events:none;position:fixed;left:16px;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:2147483002;background:#101828;color:#fff;border-radius:12px;padding:12px 14px;font-size:14px;box-shadow:0 8px 24px rgba(16,24,40,.3);transition:opacity .3s;max-width:560px;margin:0 auto}

/* install banner */
.install-banner{display:none;align-items:center;gap:10px;background:var(--acc-tint);color:var(--acc-deep);padding:8px 8px 8px 16px;font-size:14px;font-weight:500;border-bottom:1px solid var(--line)}
.install-banner button{background:var(--acc);color:#fff;border:none;border-radius:10px;min-height:40px;padding:0 14px;font-size:14px;font-weight:600;white-space:nowrap}
.install-banner .install-dismiss{background:transparent;color:var(--acc-deep);width:40px;padding:0;font-size:20px}
.install-banner-text{flex:1;min-width:0}


/* sign-in card (one design for every app) */
.sc-auth{position:fixed;inset:0;z-index:2147483000;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}
.sc-auth-card{background:#fff;border-radius:16px;padding:28px 20px;width:100%;max-width:400px;border:1px solid var(--line);box-shadow:0 1px 3px rgba(16,24,40,.06)}
.sc-auth-id{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-2);margin-bottom:16px}
.sc-auth-mark{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.sc-auth h1{font-size:28px;line-height:1.2;font-weight:700;color:var(--ink);margin:0 0 8px}
.sc-auth p{font-size:15px;line-height:1.5;color:var(--muted);margin:0 0 16px}
.sc-auth label{display:block;font-size:14px;font-weight:500;color:var(--ink-2)}
.sc-auth input{margin:6px 0 16px}
.sc-auth .btn{width:100%;margin-top:4px}
.sc-auth .sc-auth-msg{font-size:13.5px;color:var(--fail);min-height:18px;margin-bottom:10px}
.sc-auth .sc-auth-msg.ok{color:var(--pass)}
.sc-auth .sc-auth-foot{font-size:12.5px;line-height:1.5;color:var(--faint);margin:16px 0 0}
.sc-auth .sc-auth-foot a{color:var(--acc);font-weight:500}
.grace-bar{background:var(--obs-bg);color:#7A2E0E;text-align:center;font-size:13px;padding:8px 16px;border-bottom:1px solid #FEDF89}
/* task progress (visit flow apps) */
.tprog{padding:0 16px 8px;background:var(--surface);border-bottom:1px solid var(--line)}
.tprog-bar{display:flex;gap:4px;padding-top:2px}
.tprog-bar i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.tprog-bar i.d{background:var(--acc-ring)}.tprog-bar i.on{background:var(--acc)}
.tprog-t{font-size:13px;color:var(--muted);margin-top:8px;display:flex;gap:6px;align-items:center}
.tprog-t button{border:0;background:none;color:var(--acc);font-weight:500;padding:4px 0;min-height:32px}
/* bottom bar */
.bbar-sp{height:96px}
.bbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.bbar-in{max-width:728px;margin:0 auto;display:flex;align-items:center;gap:12px}
.bbar-in .btn{flex:none}.bbar-in .btn.wide{flex:1;width:100%}
.bbar-t{flex:1;min-width:0}.bbar-t b{display:block;font-size:16px;font-weight:600}.bbar-t span{font-size:13px;color:var(--muted)}
/* checklist rows */
.ck{width:24px;height:24px;border-radius:6px;border:2px solid var(--line-2);display:inline-flex;align-items:center;justify-content:center;color:transparent;flex:none;background:#fff}
.ck.on{background:var(--acc);border-color:var(--acc);color:#fff}
.row.on .row-ic{color:var(--acc)}
.num{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.glabel .act{border:0;background:none;color:var(--acc);font-size:13px;font-weight:500;padding:0}
@media print{.bbar,.bbar-sp,.tprog,.hdr,.install-banner,.offline-bar,#sc-toast,.no-print{display:none!important}}

.pdf-skip{display:none!important}
