:root{--wine: #6b1020;--wine-bright: #9c1733;--bg: #160a0e;--fg: #f5e9ec;--muted: #b58a96;--ok: #2f9e57;--warn: #c9952b;--error: #d2453f;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app{height:100%}.viewfinder{display:flex;flex-direction:column;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;background:#000;overflow:hidden;border-radius:14px;margin:10px}.feed,.flash{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.flash{animation:flash .45s ease-out forwards;pointer-events:none}@keyframes flash{0%{opacity:1;filter:brightness(1.6)}to{opacity:0}}.placeholder{text-align:center;color:var(--muted)}.placeholder .logo{font-size:56px}.placeholder p{margin:8px 0 2px;font-size:20px;color:var(--fg)}.hud{padding:0 16px 12px}.status{font-size:14px;line-height:1.4;padding:10px 12px;border-radius:10px;margin-bottom:12px;background:#ffffff10;border-left:3px solid var(--muted)}.status[data-state=ok]{border-color:var(--ok)}.status[data-state=warn]{border-color:var(--warn)}.status[data-state=error]{border-color:var(--error)}.controls{display:flex;gap:10px}.btn{flex:1;padding:16px;font-size:17px;font-weight:600;color:var(--fg);background:#ffffff14;border:1px solid #ffffff22;border-radius:12px;cursor:pointer;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn.primary{background:var(--wine);border-color:var(--wine-bright)}.btn:disabled{opacity:.4;cursor:not-allowed}.diag{font-size:12px;color:var(--muted);padding:0 16px 16px}.diag summary{cursor:pointer;padding:6px 0}.diag dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:6px 0 0}.diag dt{color:var(--muted)}.diag dd{margin:0;word-break:break-all;color:var(--fg)}.guide{position:absolute;left:10%;top:22.5%;width:80%;height:55%;border:2px dashed #ffffff66;border-radius:10px;pointer-events:none;display:grid;place-items:end center;padding-bottom:6px}.guide[hidden]{display:none}.guide span{font-size:12px;color:#fffc;background:#0006;padding:3px 8px;border-radius:999px}.status[data-state=busy]{border-color:var(--wine-bright)}.btn.subtle{width:100%;margin-top:10px;padding:10px;font-size:14px;font-weight:500;color:var(--muted);background:transparent;border-style:dashed}.result{border-radius:12px;padding:12px 14px;margin-bottom:12px;background:#ffffff10;border-left:4px solid var(--muted)}.result[data-tone=confirmed]{border-color:var(--ok);background:#2f9e5722}.result[data-tone=probable]{border-color:var(--warn);background:#c9952b1a}.result[data-tone=rejected],.result[data-tone=unknown]{border-color:#fff3}.result-head{display:flex;align-items:flex-start;gap:12px}.result-text{flex:1;min-width:0}.result h2{margin:0;font-size:17px;line-height:1.25}.result .sub{margin:3px 0 0;font-size:13px;color:var(--muted)}.result .score{flex:none;font-size:26px;font-weight:700;line-height:1;padding:6px 10px;border-radius:10px;background:#00000040}.result[data-tone=confirmed] .score{color:var(--ok)}.result[data-tone=probable] .score{color:var(--warn)}.result-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:13px;color:var(--muted)}.result .why{margin:8px 0 0;font-size:12px;color:var(--muted);font-style:italic}.result .raw{margin-top:8px;font-size:12px;color:var(--muted)}.result .raw summary{cursor:pointer}.result .raw pre{margin:6px 0 0;padding:8px;background:#00000040;border-radius:8px;white-space:pre-wrap;word-break:break-word;font-size:12px;color:var(--fg)}.threshold{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;color:var(--muted)}.threshold .options{display:flex;gap:6px;flex:1}.threshold button{flex:1;padding:8px 0;font-size:14px;font-weight:600;color:var(--muted);background:#ffffff10;border:1px solid #ffffff22;border-radius:9px;cursor:pointer;touch-action:manipulation}.threshold button[aria-pressed=true]{color:var(--fg);background:var(--wine);border-color:var(--wine-bright)}.result[data-tone=below]{border-color:var(--muted);background:#ffffff0d}.result[data-tone=below] .score{color:var(--muted)}
