:root{--ink:#12151b;--ink-2:#39414f;--muted:#5b6472;--faint:#8a93a3;--line:#d4d8df;--line-2:#e4e7ec;--surface:#fff;--surface-2:#f8f9fb;--surface-3:#eef0f3;--bg:#f2f4f7;--brand:#2456d6;--brand-700:#1d3fa8;--brand-300:#7c9ae8;--brand-tint:#e8eefc;--brand-ink:#1d3fa8;--pass:#1e8a4c;--pass-tint:#e3f3e9;--pass-ink:#15703c;--fail:#c6362e;--fail-tint:#fbe7e5;--fail-ink:#a12b24;--partial:#c98a12;--partial-tint:#fbf0d8;--partial-ink:#b4560e;--na:#6b7280;--na-tint:#eef0f3;--knockout:#a12b24;--r-sm:6px;--r:10px;--r-lg:12px;--r-xl:16px;--sh-1:0 1px 2px #12151b0d;--sh-2:0 8px 22px #12151b12;--sh-3:0 30px 80px #0a0e184d;--font:"IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}.tnum{font-variant-numeric:tabular-nums}.chip{font:600 12px/1 var(--font);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.chip--pass{background:var(--pass-tint);color:var(--pass-ink)}.chip--partial{background:var(--partial-tint);color:var(--partial-ink)}.chip--na{background:var(--na-tint);color:var(--muted)}.dot{border-radius:50%;flex:none;width:7px;height:7px}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}html{background:var(--bg);min-height:100%}body{min-height:100%;color:var(--ink);font-family:var(--font);letter-spacing:0;margin:0}button,input,select,textarea{font:inherit}.login-page{place-items:center;min-height:100vh;padding:20px;display:grid}.login-panel,.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);border-radius:12px}.login-panel{width:min(420px,100%);padding:24px}.brand-mark{background:var(--brand);color:#fff;width:56px;height:56px;box-shadow:var(--sh-2);border-radius:16px;place-items:center;font-size:32px;font-weight:700;display:grid}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{margin-bottom:4px;font-size:28px;line-height:1.12}h2{margin-bottom:6px;font-size:18px;line-height:1.2}h3{margin-bottom:6px;font-size:16px;line-height:1.25}.muted,.panel p,.item-head p{color:var(--ink-2)}.login-form,.field,.list,.draft{gap:12px;display:grid}.field,.login-form label{color:var(--ink-2);font-size:13px;font-weight:600}input,select,textarea{border:1px solid var(--line);background:var(--surface);width:100%;min-height:46px;color:var(--ink);border-radius:10px;margin-top:6px;padding:10px 12px}textarea{resize:vertical}.btn,.icon-btn,.tab,.answer{border:1px solid var(--line);cursor:pointer;border-radius:10px;font-weight:700}.btn{justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;text-decoration:none;display:inline-flex}.btn-primary{border-color:var(--brand);background:var(--brand);color:#fff}.btn-secondary{background:var(--surface);color:var(--brand-ink)}.btn-danger{border-color:var(--fail);background:var(--fail-tint);color:var(--fail-ink)}.btn:disabled,.icon-btn:disabled{cursor:not-allowed;opacity:.55}.icon-btn{background:var(--surface);width:44px;height:44px;color:var(--ink);place-items:center;display:grid}.app-shell{min-height:100vh;padding:max(16px, env(safe-area-inset-top)) 16px max(92px, env(safe-area-inset-bottom))}.app-shell--no-tabs{padding-bottom:max(16px, env(safe-area-inset-bottom))}.topbar,.row,.item-head,.photo-line,.bottom-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar{z-index:10;padding:max(16px, env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--line);background:color-mix(in oklch, var(--bg), white 70%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin:-16px -16px 12px;position:sticky;top:0}.top-actions{flex:none;align-items:center;gap:8px;display:flex}.topbar>div:first-child{flex:auto;min-width:0}.topbar h1{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(18px,5.4vw,28px);overflow:hidden}.topbar .eyebrow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.net{border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.net.is-online{background:var(--pass-tint);color:var(--pass-ink)}.net.is-offline{background:var(--fail-tint);color:var(--fail-ink)}.push-state--subscribed{border-color:color-mix(in oklch, var(--pass), white 18%);background:var(--pass-tint);color:var(--pass-ink)}.push-state--prompt{border-color:color-mix(in oklch, var(--brand), white 15%);background:var(--brand-tint);color:var(--brand-ink)}.push-state--denied,.push-state--unconfigured{background:var(--partial-tint);color:var(--partial-ink)}.status-line{color:var(--muted);flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.status-line span,.status-line strong{background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:6px 9px;display:inline-flex}.status-line .is-busy{color:var(--brand-ink);background:var(--brand-tint)}.status-line strong,.error,.warn{color:var(--fail-ink)}.ok{color:var(--pass-ink)}.tabs{z-index:20;padding:8px 8px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:3px;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-width:0;min-height:54px;color:var(--muted);background:0 0;align-content:center;justify-items:center;gap:3px;padding:6px 2px;font-size:10px;line-height:1.15;display:grid}.tab span{overflow-wrap:anywhere;text-align:center}.tab.is-active{background:var(--brand-tint);color:var(--brand-ink)}.dashboard{gap:12px;display:grid}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.outbox-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.action-card{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:58px;color:var(--ink);text-align:left;box-shadow:var(--sh-1);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-weight:800;display:flex}.action-card svg{color:var(--brand);flex:none}.action-card span{overflow-wrap:anywhere;min-width:0}.action-card.is-primary{border-color:var(--brand);background:var(--brand);color:#fff}.action-card.is-primary svg{color:#fff}.action-card:disabled{color:var(--muted);cursor:not-allowed;opacity:.72}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.panel{padding:16px}.panel.wide{grid-column:1/-1}.metric strong{font-family:var(--mono);font-size:32px;line-height:1;display:block}.metric span{color:var(--muted);font-size:12px}.metric.is-danger{border-color:color-mix(in oklch, var(--fail), white 40%)}.empty-state{text-align:left}.progress{background:var(--surface-3);border-radius:999px;height:8px;margin:12px 0;overflow:hidden}.progress span{border-radius:inherit;background:var(--brand);height:100%;display:block}.section-panel{padding:0}.section-panel>.eyebrow,.section-panel>h2{padding:16px 16px 0}.section-panel .answer-row{padding:10px 16px}.photo-line--strip{flex-wrap:wrap;justify-content:flex-start;gap:8px}.photo-thumb{flex:none}.item-card{border-top:1px solid var(--line);gap:12px;padding:16px;display:grid}.item-card.is-fail{background:color-mix(in oklch, var(--fail-tint), white 65%)}.item-head{justify-content:flex-start;align-items:flex-start}.mono{min-width:32px;color:var(--muted);font-family:var(--mono)}.segmented{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.segmented.compact{grid-template-columns:repeat(5,minmax(0,1fr))}.answer{background:var(--surface-2);min-height:44px;color:var(--ink)}.answer.is-selected{border-color:var(--brand);background:var(--brand);color:#fff}.answer.is-danger.is-selected{border-color:var(--fail);background:var(--fail)}.photo-line input{display:none}.new-audit{gap:12px;display:grid}.new-audit>p:not(.eyebrow),.empty-state p{color:var(--ink-2);margin-bottom:0}.selection-summary,.task-meta{flex-wrap:wrap;gap:8px;display:flex}.selection-summary span,.task-meta span,.task-result,.offline-note{background:var(--surface-2);min-width:0;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.task-card{gap:12px;display:grid}.task-card.is-overdue{border-color:color-mix(in oklch, var(--fail), white 42%)}.task-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.task-head h2,.row h2{overflow-wrap:anywhere}.task-card>p{margin-bottom:0}.task-complete{border-top:1px solid var(--line);gap:10px;padding-top:12px;display:grid}.task-result{background:var(--pass-tint);color:var(--pass-ink);border-radius:10px;justify-self:start}.task-result--queued{background:var(--brand-tint);color:var(--brand-ink)}.task-result--queued.is-error{background:var(--fail-tint);color:var(--fail-ink)}.offline-note{background:var(--fail-tint);color:var(--fail-ink);border-radius:10px;justify-self:start}.score{background:var(--na-tint);color:var(--muted);border-radius:999px;flex:none;padding:8px 10px;font-weight:800}.chip{background:var(--na-tint);color:var(--ink-2);border-radius:999px;align-items:center;padding:5px 10px;font-size:13px;font-weight:700;display:inline-flex}.chip--brand{background:var(--pass-tint);color:var(--pass-ink)}.chip--fail{background:var(--fail-tint);color:var(--fail-ink)}.report-row{text-align:left;cursor:pointer;width:100%}.report-row:active{transform:scale(.995)}.answer-row{border-top:1px solid var(--line);gap:6px;padding:10px 0;display:grid}.answer-row:first-of-type{border-top:0}.answer-title{font-weight:600;line-height:1.3}.photo-thumb{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;width:72px;height:72px;padding:0;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-modal{z-index:40;background:#000000d1;place-content:center;gap:14px;padding:16px;display:grid;position:fixed;inset:0}.photo-modal img{object-fit:contain;border-radius:12px;max-width:min(94vw,900px);max-height:78vh}.near-miss-form{gap:12px;display:grid}.near-miss-datetime{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.near-miss-photos{flex-wrap:wrap;justify-content:flex-start}.release-note{text-align:left;gap:10px;width:min(460px,92vw);display:grid}.release-body{max-height:52vh;color:var(--ink-2);white-space:pre-wrap;margin-bottom:0;overflow-y:auto}.score.is-pass{background:var(--pass-tint);color:var(--pass-ink)}.score.is-partial{background:var(--partial-tint);color:var(--partial-ink)}.score.is-fail{background:var(--fail-tint);color:var(--fail-ink)}.geo-start .panel>.btn{margin-top:12px}.geo-start .mono{margin:4px 0 0;font-size:14px}.geo-bypass{border-color:color-mix(in oklch, var(--fail), white 40%);background:var(--fail-tint)}.bottom-actions{bottom:max(10px, env(safe-area-inset-bottom));border:1px solid var(--line);background:color-mix(in oklch, var(--surface), white 70%);box-shadow:var(--sh-2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;padding:10px;position:sticky}@media (width>=780px){.app-shell{max-width:1040px;margin:0 auto;padding-bottom:32px}.tabs{border:1px solid var(--line);box-shadow:var(--sh-1);border-radius:14px;grid-template-columns:repeat(6,max-content);justify-content:start;margin-bottom:12px;padding:8px;position:sticky;top:88px}.tab{grid-auto-columns:max-content;grid-auto-flow:column;min-height:42px;padding:0 12px;font-size:13px}.grid,.quick-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}.btn-link{color:var(--muted,#6b7280);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:6px 0 0;font-size:14px;text-decoration:underline}.qr-landing{min-height:100vh;padding:max(20px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));align-content:start;justify-items:center;gap:16px;display:grid}.qr-landing__brand{width:min(560px,100%);color:var(--ink);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.qr-landing__logo{background:var(--brand);color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:20px;display:grid}.qr-landing__panel{box-sizing:border-box;gap:14px;width:min(560px,100%);padding:20px;display:grid}.qr-landing__panel h1{overflow-wrap:anywhere;margin:0;font-size:22px;line-height:1.25}.qr-landing__panel p{margin:0;line-height:1.5}.qr-landing__address,.qr-landing__meta,.qr-landing__hint{color:var(--muted);font-size:13px;font-weight:400}.qr-landing__actions{gap:10px;display:grid}.qr-landing__req{color:var(--muted);text-transform:lowercase;margin-left:6px;font-size:11px;font-weight:500}.qr-landing__panel textarea,.qr-landing__panel input:not([type=checkbox]):not([type=file]){box-sizing:border-box;width:100%}.qr-landing__photos{flex-wrap:wrap;gap:8px;display:flex}.qr-landing__photo,.qr-landing__add-photo{border:1px dashed var(--line);background:var(--surface-2,transparent);cursor:pointer;border-radius:10px;place-items:center;width:84px;height:84px;padding:0;display:grid;position:relative;overflow:hidden}.qr-landing__photo img{object-fit:cover;width:100%;height:100%}.qr-landing__photo span{color:#fff;background:#0009;border-radius:50%;place-items:center;width:22px;height:22px;font-size:16px;line-height:1;display:grid;position:absolute;top:4px;right:4px}.qr-landing__add-photo input{opacity:0;cursor:pointer;position:absolute;inset:0}.qr-landing__add-photo span{color:var(--brand);font-size:13px;font-weight:600}.qr-landing__trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.qr-landing__consent{color:var(--ink-2);align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;display:flex}.qr-landing__consent input{flex:none;width:20px;height:20px;margin:1px 0 0}.qr-landing__error{color:var(--fail,#b42318);font-size:13px;font-weight:600}.qr-landing__staff{color:var(--brand);cursor:pointer;background:0 0;border:0;justify-self:center;padding:6px 10px;font-size:14px;text-decoration:underline}.qr-landing__label{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.qr-landing__label .qr-landing__req{margin-left:0}.qr-landing__actions a.btn:not(.btn-primary){background:var(--surface);color:var(--ink)}.scan-card{justify-content:center;width:100%}.new-audit .scan-inline{background:var(--surface);color:var(--ink);justify-self:start}.new-audit .scan-inline svg{color:var(--brand)}.qr-scan{z-index:400;color:#fff;background:#0b0d12;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.qr-scan__top{padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;justify-content:space-between;align-items:center;gap:12px;font-weight:700;display:flex}.qr-scan__close{color:#fff;background:#ffffff1f;border:0;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.qr-scan__viewport{grid-row:2;min-height:0;position:relative;overflow:hidden}.qr-scan__video{object-fit:cover;width:100%;height:100%}.qr-scan__frame{aspect-ratio:1;background:linear-gradient(var(--brand-300), var(--brand-300)) top left / 36px 4px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) top left / 4px 36px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) top right / 36px 4px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) top right / 4px 36px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) bottom left / 36px 4px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) bottom left / 4px 36px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) bottom right / 36px 4px no-repeat, linear-gradient(var(--brand-300), var(--brand-300)) bottom right / 4px 36px no-repeat;border-radius:18px;width:min(68vw,280px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000059}.qr-scan__hint{text-align:center;text-shadow:0 1px 3px #0009;margin:0;font-size:15px;position:absolute;bottom:16px;left:16px;right:16px}.qr-scan__sheet{padding:16px 16px calc(env(safe-area-inset-bottom,0px) + 16px);background:var(--surface);color:var(--ink);border-radius:18px 18px 0 0;grid-row:3;align-content:start;align-self:end;gap:10px;display:grid}.qr-scan__sheet p{margin:0}.qr-scan__sheet .btn{width:100%}.qr-scan__sheet a.btn:not(.btn-primary),.qr-scan__sheet label.btn,.qr-scan__sheet button.btn:not(.btn-primary){background:var(--surface);color:var(--ink)}.qr-scan__title{overflow-wrap:anywhere;margin:0;font-size:20px;line-height:1.25}.qr-scan__address{color:var(--muted);font-size:14px}.qr-scan__offline{background:var(--partial-tint);color:var(--ink-2);border-radius:10px;padding:8px 10px;font-size:14px}.qr-scan__error{color:var(--fail-ink);font-weight:600}.qr-scan__photo{position:relative;overflow:hidden}.qr-scan__photo input{opacity:0;cursor:pointer;position:absolute;inset:0}.qr-landing__ios-hint{border-left:3px solid var(--brand);background:var(--brand-tint);color:var(--ink-2);border-radius:10px;margin:0;padding:10px 12px;font-size:14px;line-height:1.45}.history-controls form,.history-pagination{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.history-controls>form,.history-controls>p,.history-controls>small,.history-controls>.history-pagination{grid-column:1/-1}.history-controls input,.history-controls select{min-width:0;max-width:100%}.history-controls form>input{flex:160px}.history-pagination form>input{width:76px}.history-pagination{padding:8px 0}.history-pagination form{flex:180px;min-width:0;max-width:100%}.history-pagination form>input{flex:64px;width:64px;min-width:0}.notification-modal{z-index:35;background:#12223499;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.notification-modal__panel{width:min(900px,100%);max-height:92dvh;overflow:auto}.notification-modal__panel>header{background:var(--surface,white);z-index:1;position:sticky;top:0}.notification-modal__panel h2{overflow-wrap:anywhere}.text-answer-field textarea{resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere;min-height:100px}.report-text-answer{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;line-height:1.5}.acknowledgement{overflow-wrap:anywhere}.annotated-image{max-width:100%;line-height:0;display:inline-block;position:relative}.annotated-image>img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:66vh;display:block}.annotated-image>svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.annotated-image>svg.photo-annotation-canvas{pointer-events:auto;touch-action:none;cursor:crosshair}.photo-annotation-dialog{background:var(--surface,#fff);color:var(--ink,#17243b);text-align:center;border-radius:16px;max-width:min(96vw,960px);max-height:95dvh;padding:16px;overflow:auto}.photo-annotation-dialog p{max-width:70ch;margin:8px auto;line-height:1.4}.photo-annotation-dialog:has(.photo-annotation-stage){width:min(96vw,960px)}.photo-annotation-stage{text-align:center;width:100%}.photo-annotation-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:8px 0;display:flex}.photo-annotation-toolbar [aria-pressed=true]{outline-offset:1px;outline:2px solid #2759a2}.photo-thumb--annotate{position:relative}.photo-thumb--annotate span{color:#17243b;background:#fff;border-radius:4px;padding:1px 3px;font-size:11px;position:absolute;bottom:1px;right:1px}.acknowledgement .btn{margin:6px 4px 6px 0}.ack-pad{touch-action:none;-webkit-user-select:none;user-select:none;aspect-ratio:5/2;background:#fff;border:2px solid #8a9ab2;border-radius:12px;position:relative}.ack-signature{background:#fff;border-radius:10px;width:100%;height:160px;display:block}.ack-pad .ack-signature{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}
