:root{--ink:#0b1739;--ink-soft:#4a5578;--line:#dde3f0;--surface:#fff;--bg:#f5f7fb;--accent:#2f5bea;--accent-soft:#e8eeff;--warn:#b45309;--ok:#157a52;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{min-height:100dvh}.shell{max-width:720px;padding:20px 16px calc(48px + env(safe-area-inset-bottom));margin:0 auto}.navbar{z-index:20;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffeb;justify-content:space-between;align-items:center;gap:12px;margin:-20px -16px 0;padding:10px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:flex}.app-icon{object-fit:cover;border-radius:12px;flex:none;width:40px;height:40px}.brand-name{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand-name strong{letter-spacing:-.2px;font-size:15px}.brand-name small{color:var(--ink-soft);font-size:11px}.nav-menu{flex:none;align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav-item{color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:10px;padding:7px 14px;font-size:13.5px;font-weight:500}.nav-item:hover{color:var(--ink);background:var(--accent-soft)}.tagline{color:var(--ink-soft);margin:14px 0 18px;font-size:13px;line-height:1.5}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:18px}.card h2{letter-spacing:-.1px;margin:0 0 6px;font-size:15px}.card .hint{color:var(--ink-soft);margin:0 0 14px;font-size:13px;line-height:1.5}.picker{border-radius:var(--radius);outline-offset:6px;outline:2px dashed #0000;grid-template-columns:1fr 1fr;gap:10px;transition:outline-color .15s;display:grid}.picker.is-active{outline-color:var(--accent)}.tile{border:1.5px solid var(--line);border-radius:var(--radius);color:var(--ink);text-align:center;background:#fbfcff;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:118px;padding:18px 10px 14px;display:flex}.tile:hover,.tile:active{border-color:var(--accent);background:var(--accent-soft)}.tile-icon{width:30px;height:30px;color:var(--accent);margin-bottom:6px}.tile strong{font-size:14.5px;font-weight:600}.tile span{color:var(--ink-soft);font-size:12px;line-height:1.35}.drop-note{text-align:center;color:var(--ink-soft);margin:10px 0 0;font-size:12px}@media (width<=380px){.tile{min-height:104px;padding:14px 8px 12px}.tile span{font-size:11.5px}}@media (hover:none){.drop-note{display:none}}.preview-actions{gap:8px;display:inline-flex}.preview-actions button{padding:8px 14px;font-size:13px}.preview-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.preview-cell{border-radius:var(--radius);border:1px solid var(--line);background:#0b1739;position:relative;overflow:hidden}.preview-cell img{object-fit:cover;width:100%;height:140px;display:block}.preview-remove{color:#fff;background:#0000008c;border:none;border-radius:50%;place-items:center;width:26px;height:26px;padding:0;font-size:17px;line-height:1;display:grid;position:absolute;top:6px;right:6px}.preview-add{border:1px dashed var(--line);border-radius:var(--radius);min-height:140px;color:var(--ink-soft);background:0 0;place-content:center;gap:6px;font-size:13px;display:grid}.preview-add-plus{font-size:28px;line-height:1}.saved-picture-empty{text-align:center;color:#fff;place-content:center;gap:6px;height:140px;display:grid}.saved-picture-empty span{letter-spacing:1px;font-size:30px;font-weight:700}.saved-picture-empty small{color:#c7d0e6;font-size:12px}.preview-meta{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 2px 0;font-size:12px;display:flex}.actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;padding:11px 18px;transition:opacity .15s}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;font-weight:600}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}textarea{width:100%;font:inherit;border:1px solid var(--line);resize:vertical;min-height:76px;color:var(--ink);background:#fff;border-radius:12px;padding:11px 12px;font-size:14px}textarea:focus,button:focus-visible,.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.alert{border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13.5px;line-height:1.5}.alert-error{color:#8f1d1d;background:#fdecec;border:1px solid #f5bcbc}.alert-info{background:var(--accent-soft);color:#23408f;border:1px solid #c5d3ff}.alert-saved{color:#14634a;background:#eef7f2;border:1px solid #bfe3d3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.alert-saved .btn-ghost{flex:none;padding:6px 12px;font-size:12.5px}.history-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.history-head .hint{margin:0 0 2px}.history-tools{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.btn-small{padding:6px 12px;font-size:12.5px}.btn-danger{color:#8f1d1d;background:#fdecec;border-color:#f5bcbc;font-weight:600}.btn-danger:hover:not(:disabled){background:#f8dada}.select-all{color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;padding:6px 8px;font-size:12.5px;display:inline-flex}.select-all input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.history-list{gap:8px;width:100%;min-width:0;margin:12px 0 0;padding:0;list-style:none;display:grid}.history-list>li{width:100%;min-width:0}.history-row{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.history-check{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.history-action{width:36px;height:36px;color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:10px;flex:none;place-items:center;padding:0;display:grid}.history-action svg{width:16px;height:16px}.history-action:hover:not(:disabled){color:var(--accent);background:var(--accent-soft);border-color:#c7d6ff}.history-action:disabled{opacity:.55;cursor:not-allowed}.history-delete:hover:not(:disabled){color:#8f1d1d;background:#fdecec;border-color:#f5bcbc}.history-item{background:var(--surface);border:1px solid var(--line);text-align:left;cursor:pointer;width:100%;min-width:0;max-width:100%;color:inherit;font:inherit;border-radius:12px;align-items:center;gap:12px;padding:8px;display:flex;overflow:hidden}.history-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.history-item:disabled{opacity:.55;cursor:default}.history-thumb{object-fit:cover;background:var(--bg);border-radius:10px;flex:none;width:46px;height:46px}.history-thumb-empty{color:var(--ink-soft);place-items:center;font-size:12px;font-weight:700;display:grid}.history-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-body strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:14px;display:block;overflow:hidden}.history-body small{min-width:0;max-width:100%;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;display:block;overflow:hidden}.result-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.result-head h2{margin:0;font-size:17px}.pill{text-transform:uppercase;letter-spacing:.6px;background:var(--accent-soft);color:#23408f;border-radius:999px;flex:none;padding:4px 9px;font-size:11px;font-weight:600}.pill.low{color:var(--warn);background:#fdeee0}.pill.high{color:var(--ok);background:#e3f6ee}.summary{color:var(--ink-soft);margin:0 0 4px;font-size:14.5px;line-height:1.6}.section-title{letter-spacing:.7px;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 8px;font-size:12px;font-weight:700}.finding-list,.step-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.finding-list li{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.5}.finding-list li b{font-size:13.5px;display:block}.finding-list li span{color:var(--ink-soft);font-size:13px}.scope-list li{justify-content:space-between;align-items:center;gap:12px;display:flex}.scope-name{font:inherit;text-align:left;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13.5px;font-weight:600}.scope-name:hover{text-decoration:underline}.scope-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.scope-hours{color:var(--ink-soft);background:var(--accent-soft);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.scope-hours-line b{color:var(--ink)}.scope-detail{color:var(--ink-soft);text-align:left;margin:10px 0 0;font-size:14px;line-height:1.6}.scope-note{color:var(--ink-soft);opacity:.75;text-align:left;margin:12px 0 0;font-size:12px;line-height:1.5}.step-list{counter-reset:step}.step-list li{padding-left:28px;font-size:14px;line-height:1.55;position:relative}.step-list li:before{counter-increment:step;content:counter(step);background:var(--accent-soft);color:#23408f;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid;position:absolute;top:1px;left:0}.spinner{vertical-align:-3px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.foot{text-align:center;color:var(--ink-soft);padding-top:6px;font-size:12px;line-height:1.6}.foot a{color:var(--accent)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body.is-locked{overflow:hidden}.scrim{z-index:50;-webkit-backdrop-filter:blur(3px);background:#0b17398c;place-items:center;padding:24px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.scrim-card{background:var(--surface);text-align:center;border-radius:18px;width:min(340px,100%);padding:26px 24px 20px;box-shadow:0 18px 50px #0b173947}.loader{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;margin:0 auto 16px;animation:.8s linear infinite spin}.scrim-title{margin:0 0 6px;font-size:16px;font-weight:600}.scrim-hint{color:var(--ink-soft);min-height:20px;margin:0 0 4px;font-size:13.5px}.scrim-timer{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:0 0 16px;font-size:12px}.about-card{text-align:left}.about-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.about-sub{color:var(--ink-soft);margin:2px 0 0;font-size:12.5px}.about-text{margin:0 0 16px;font-size:13.5px;line-height:1.55}.about-list{gap:8px;margin:0 0 18px;padding:0;display:grid}.about-list>div{background:var(--bg);border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 10px;font-size:13px;display:flex}.about-list dt{color:var(--ink-soft);flex:none}.about-list dd{text-align:right;word-break:break-all;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.about-actions{justify-content:flex-end;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.loader,.spinner{animation-duration:2s}.scrim{animation:none}}.auth-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100dvh;padding:24px 20px;display:flex}.auth-icon{border-radius:18px;width:64px;height:64px;margin-bottom:6px}.auth-title{letter-spacing:-.4px;margin:0;font-size:24px}.auth-tagline{max-width:420px;color:var(--ink-soft);margin:0 0 14px;font-size:14.5px;line-height:1.5}.google-btn{justify-content:center;align-items:center;min-height:48px;display:flex}.auth-note{color:var(--ink-soft);max-width:360px;margin:10px 0 0;font-size:12.5px}.loading-hint{color:var(--ink-soft);font-size:14px}.nav-user{border-left:1px solid var(--line);align-items:center;gap:2px;margin-left:6px;padding-left:10px;display:flex}.user-chip{border-radius:999px;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex:none;width:26px;height:26px}.user-avatar-empty{background:var(--accent);color:#fff;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.user-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:13px;font-weight:600;overflow:hidden}.admin-card{flex-direction:column;width:min(720px,94vw);max-height:88dvh;display:flex}.admin-tabs{border-bottom:1px solid var(--line);gap:6px;margin-bottom:14px;padding-bottom:10px;display:flex}.admin-tabs button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:600}.admin-tabs button:hover{color:var(--ink)}.admin-tabs button.is-active{background:var(--accent);color:#fff}.admin-section{flex-direction:column;flex:1;min-height:0;margin-bottom:16px;display:flex;overflow:auto}.settings-group{margin-bottom:18px}.settings-group+.settings-group{border-top:1px solid var(--line);padding-top:14px}.settings-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.settings-title{margin:0 0 4px;font-size:13.5px;font-weight:600}.settings-hint{color:var(--ink-soft);margin:0 0 10px;font-size:12.5px;line-height:1.5}.settings-hint code{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.settings-row{align-items:center;gap:8px;display:flex}.settings-row input[type=text]{min-width:0;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;flex:1;padding:8px 12px;font-size:13.5px}.settings-row input[type=text]:focus{border-color:var(--accent);outline:none}.settings-row-end{justify-content:flex-end}.settings-status{margin-top:12px}.settings-status dd{font-size:12.5px;font-weight:600}.scan-thumb{object-fit:cover;background:var(--bg);border-radius:8px;flex:none;width:44px;height:44px}.scan-thumb-empty{color:var(--ink-soft);letter-spacing:.5px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.scans-table td:nth-child(2){white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.scans-table td:nth-child(3){white-space:nowrap;color:var(--ink-soft);font-size:12.5px}.users-card{flex-direction:column;width:min(680px,92vw);max-height:86dvh;display:flex}.user-table-wrap{margin:8px 0 16px;overflow:auto}.user-table{border-collapse:collapse;width:100%;font-size:13.5px}.user-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:6px 10px;font-size:11.5px}.user-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.user-table tr.is-me{background:var(--accent-soft)}.user-table select{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px 8px;font-size:13px}.user-cell{align-items:center;gap:10px;min-width:0;display:flex}.user-cell .user-avatar{width:30px;height:30px}.user-meta{flex-direction:column;min-width:0;line-height:1.3;display:flex}.user-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.user-meta small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}@media (width<=620px){.navbar{flex-wrap:wrap;gap:4px 10px}.nav-menu{flex:100%;justify-content:flex-end}.user-name{display:none}.nav-user{margin-left:0}}.confirm-message{min-height:0;color:var(--ink);text-align:left;margin:0 0 18px;font-size:13.5px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px}.card-wide{flex-direction:column;width:min(720px,94vw);max-height:88dvh;display:flex}.scan-editor{text-align:left;overflow:auto}.editor-row{margin-bottom:12px}.editor-row-inline{align-items:center;gap:10px;display:flex}.editor-label{color:var(--ink-soft);margin:0 0 5px;font-size:12.5px;font-weight:600;display:block}.editor-row-inline .editor-label{margin:0}.editor-row input[type=text],.editor-row input[type=number],.editor-row select,.editor-row textarea{width:100%;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:8px 10px}.editor-row select{width:auto;min-width:130px}.editor-group{border:1px solid var(--line);background:var(--bg);border-radius:12px;margin:14px 0;padding:12px}.editor-group-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.editor-findings{margin-top:10px}.finding-item-head{align-items:center;gap:8px;display:flex}.finding-item-label{font-size:13.5px;display:inline}.finding-item-actions{margin-left:auto}.finding-item-detail{color:var(--ink-soft);margin:4px 0 0;font-size:13px;line-height:1.5}.editor-empty{color:var(--ink-soft);margin:10px 0 0;font-size:13px}.finding-editor-card{width:min(420px,100%)}.editor-steps{counter-reset:step}.editor-steps li{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px 10px 38px}.editor-steps li:before{top:50%;left:10px;transform:translateY(-50%)}.step-item{align-items:center;gap:8px;display:flex}.step-text{flex:1;min-width:0}.editor-actions{gap:10px;margin-top:8px}.tag-pills{flex-wrap:wrap;gap:4px;display:inline-flex}.tag-pill{background:var(--accent-soft);color:var(--ink);border-radius:999px;padding:2px 8px;font-size:11px}.tag-none{color:var(--ink-soft);font-size:12px}.row-actions{gap:6px;display:inline-flex}.settings-table input[type=text]{width:100%;min-width:180px;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px 9px;font-size:12.5px}.settings-key code{font-size:12px}.settings-by{color:var(--ink-soft);font-size:12px}.settings-add-row{grid-template-columns:1fr 1fr auto;gap:8px;margin-top:10px;display:grid}.role-checks{flex-wrap:wrap;align-items:center;gap:4px 10px;display:inline-flex}.role-checks label{color:var(--ink-soft);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.role-checks label input{accent-color:var(--accent)}.role-checks label.is-checked{color:var(--ink);font-weight:600}.role-checks label:has(input:disabled){cursor:not-allowed;opacity:.6}.role-none{color:var(--ink-soft);font-size:12px}.users-hint{margin-bottom:10px}
