:root{color-scheme:light dark;--bg:#f4f7f8;--panel:#fff;--text:#182c34;--muted:#63767d;--border:#d8e2e5;--brand:#06756f;--soft:#e7f4f1;--warn:#875e12;--warnbg:#fff4d7;--shadow:0 12px 40px #173e4b09}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}header{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:28px 24px;gap:16px}.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:18px;letter-spacing:-.4px}.brand small{display:block;color:var(--muted);font-size:12px}.mark{display:grid;place-items:center;background:var(--brand);color:white;width:42px;height:42px;border-radius:12px;font-weight:800;font-size:14px}main{max-width:1180px;margin:auto;padding:28px 24px 48px}h1,h2,p{margin-top:0}h1{font-size:clamp(28px,3.2vw,42px);letter-spacing:-1.4px;line-height:1.14;margin-bottom:14px}h2{font-size:21px;letter-spacing:-.5px}p{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:var(--brand);margin-bottom:14px}.gate{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;padding-top:36px}.intro{padding-top:32px}.intro h1{font-size:clamp(36px,4.2vw,54px)}.intro>p:not(.eyebrow){font-size:18px;max-width:440px}.features{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.features span{background:var(--soft);color:var(--brand);font-size:12px;padding:8px 12px;border-radius:20px}.panel,.card{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:28px}.panel p{font-size:14px}.panel button.primary{width:100%}label{display:block;font-size:13px;font-weight:600;margin:14px 0}input,textarea,select,button,.file-button{font:inherit}input,textarea,select{width:100%;margin-top:6px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--text);padding:11px 12px;outline-offset:3px}input[type=file]{font-size:12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--brand)}button,.file-button{display:inline-flex;justify-content:center;align-items:center;gap:6px;border:1px solid var(--border);border-radius:9px;padding:10px 14px;background:var(--panel);color:var(--text);cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:filter .15s}button:hover,.file-button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.hint{font-size:12px!important;line-height:1.6;color:var(--muted)}.notice,.warning{padding:13px 16px;border-radius:10px;margin-bottom:22px;font-size:14px;border:1px solid var(--border)}.notice{background:var(--soft);color:var(--brand);position:relative;z-index:2}.notice.error,.warning{background:var(--warnbg);color:var(--warn)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:12px 0 20px}.section-heading h1{margin:0 0 8px}.section-heading .eyebrow{margin-bottom:8px}.section-heading p:last-child{margin:0}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:26px}.toolbar input{flex:1;min-width:230px;margin:0;padding:11px 14px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.card{padding:22px;min-width:0}.card-top{display:flex;justify-content:space-between;align-items:start;gap:8px}.card h2{font-size:17px;margin:0;word-break:break-word}.card .account{font-size:13px;color:var(--muted);overflow-wrap:anywhere;margin:4px 0 16px}.tag{font-size:10px;background:var(--soft);color:var(--brand);padding:3px 8px;border-radius:20px;max-width:120px;overflow-wrap:anywhere}.code-line{display:flex;justify-content:space-between;align-items:center;gap:12px}.code{font-size:32px;font-weight:700;letter-spacing:3px;font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.copy{font-size:12px;padding:8px 11px}.card progress{display:block;width:100%;height:5px;margin:16px 0 10px;accent-color:var(--brand)}.card-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;gap:8px}.card-actions{display:flex;gap:6px}.card-actions button{font-size:11px;border:0;padding:2px 4px;background:transparent;color:var(--muted)}.card-actions .danger{color:#ad4747}.empty{text-align:center;padding:64px 20px;background:var(--panel);border:1px dashed var(--border);border-radius:18px}.bottom-note{margin-top:28px}footer{text-align:center;padding:22px;color:var(--muted);font-size:11px}dialog{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:18px;max-width:520px;width:calc(100% - 30px);max-height:90vh;padding:26px;box-shadow:0 28px 100px #0004}dialog::backdrop{background:#0d2029aa;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.dialog-heading h2{margin:0}.close{padding:0;border:0;font-size:26px;width:30px;height:30px}.advanced{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:10px}details{border-top:1px solid var(--border);padding-top:14px;margin:18px 0}summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}.qr-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.file-button{margin:0}.file-button input{display:none}video{width:100%;border-radius:12px;background:#111}.offline-details{margin-bottom:0}.offline-details p{margin-top:10px}.muted{color:var(--muted)}[hidden]{display:none!important}@media(prefers-color-scheme:dark){:root{--bg:#101c22;--panel:#18282f;--text:#e4eff2;--muted:#9bb0b8;--border:#2e454f;--brand:#36b6a6;--soft:#193b3a;--warn:#f0ca7f;--warnbg:#41341c}.primary{color:#0b2525}.mark{color:#0b2525}.card-actions .danger{color:#f19f9f}}@media(max-width:760px){header{padding:20px 16px}.brand strong{font-size:16px}.brand small{font-size:10px}main{padding:10px 16px 32px}.gate{grid-template-columns:1fr;gap:24px;padding-top:10px}.intro{padding-top:0}.intro h1{font-size:34px}.intro>p:not(.eyebrow){font-size:15px}.features{margin-top:18px}.panel{padding:22px}.section-heading{align-items:start}.section-heading h1{font-size:28px}.toolbar button{flex:1}.toolbar input{width:100%;flex-basis:100%}.cards{grid-template-columns:1fr}.card{padding:20px}.advanced{gap:6px}.advanced input,.advanced select{padding:10px 8px}dialog{padding:20px}}

/* KeyHarbor layout: theme values are compiled from branding/brand.json. */
header{border-bottom:1px solid var(--border);padding-top:20px;padding-bottom:20px}
.brand-icon{display:block;flex:none;filter:drop-shadow(0 4px 8px #07152222)}
.brand strong{display:block;font-size:25px;line-height:1.12;letter-spacing:-.7px}
.brand-product{display:block;font-size:12px;letter-spacing:1.6px;color:var(--brand);margin-top:3px}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.hero-emblem{margin-bottom:25px}.hero-emblem img{display:block}
.intro-detail{font-size:15px!important;line-height:1.7}
.intro{padding-top:12px}.intro h1{letter-spacing:-1.9px}
.gate{gap:60px}.panel{border-radius:22px}
.card{border-radius:18px}.code{color:var(--brand)}
#app-dialog p{font-size:14px;line-height:1.7}#app-dialog h3{font-size:16px;margin-bottom:8px}
@media(max-width:760px){header{gap:10px;flex-wrap:wrap}.brand strong{font-size:23px}.brand-product{font-size:11px}.brand-icon{width:48px;height:48px}.header-actions button{padding:9px 10px;font-size:12px}.hero-emblem{display:none}.gate{gap:25px}.intro{padding-top:16px}.intro h1{font-size:36px}.features{margin-top:16px}.eyebrow{letter-spacing:1.4px;font-size:10px}}
@media(max-width:400px){header{align-items:center}.header-actions{gap:5px}.brand-icon{width:40px;height:40px}.brand{gap:8px}.brand strong{font-size:20px}.brand-product{font-size:9px}.header-actions button{font-size:11px;padding:8px}.code{font-size:28px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Personal security enrollment */
.check-row{display:flex;align-items:flex-start;gap:.65rem}.check-row input{width:auto;margin:.2rem 0 0;flex-shrink:0}
.recovery-codes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.84rem;padding:.75rem;border:1px solid var(--border);border-radius:.6rem}
#enrollment-panel button,#factor-form button{margin-top:.5rem}
