:root{--bg: #0d1117;--surface: #161b22;--surface-2: #1c2330;--text: #e8edf4;--text-dim: #8b98a9;--border: #2a3444;--accent: #4d92ff;--accent-press: #3b7ae0;--success: #4ade80;--warn: #fbbf24;--error: #f87171;--radius: 12px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.65rem}h2{font-size:1.2rem}p{margin:0}.mono{font-family:var(--mono)}button,input{font-family:inherit;font-size:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.shell{min-height:100dvh;display:flex}.shell-center{align-items:center;justify-content:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px;display:flex;flex-direction:column;gap:14px;width:100%}.card-narrow{max-width:420px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.subtext{color:var(--text-dim);font-size:.95rem}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.85rem;font-weight:600;color:var(--text-dim)}.field input{padding:12px 14px;min-height:46px;color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius)}.field input:focus-visible{outline:none;border-color:var(--accent)}.field input[aria-invalid=true]{border-color:var(--error)}.error-text{color:var(--error);font-size:.88rem}.btn{min-height:46px;padding:12px 20px;font-weight:600;border:1.5px solid transparent;border-radius:var(--radius);cursor:pointer;text-align:center;text-decoration:none;color:var(--text);transition:background-color .15s ease,opacity .15s ease}.btn-sm{min-height:38px;padding:8px 14px;font-size:.88rem}.btn-primary{background:var(--accent);color:#08111f}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-ghost{background:var(--surface-2);border-color:var(--border)}.btn-danger{background:transparent;border-color:var(--error);color:var(--error)}.btn:disabled{opacity:.45;cursor:not-allowed}kbd{font-family:var(--mono);font-size:.75em;padding:1px 5px;margin-left:6px;border:1px solid var(--border);border-radius:4px;color:var(--text-dim)}.shell-live{flex-direction:row;align-items:stretch}.qr-stage{flex:1;min-width:0;display:grid;place-items:center;padding:2vmin;background:#000}.qr-plate{background:#fff;border-radius:8px;padding:2.5vmin;width:min(88vh,88vw);aspect-ratio:1;display:grid;place-items:center}.qr-svg{width:100%!important;height:100%!important;image-rendering:pixelated;shape-rendering:crispEdges}.rail{width:280px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);padding:24px 20px;display:flex;flex-direction:column;gap:22px;overflow-y:auto}.rail-block{display:flex;flex-direction:column;gap:4px}.session-id{font-size:.8rem;color:var(--text-dim);letter-spacing:.08em}.rail-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.rail-value{font-size:2rem;font-weight:650;line-height:1.1}.rail-note{font-size:.85rem}.rail-note.warn{color:var(--warn)}.rail-note.ok{color:var(--success)}.rail-actions{margin-top:auto;display:flex;flex-direction:column;gap:8px}.shell-live.focus .qr-stage{padding:1vmin}.shell-live.focus .qr-plate{width:min(96vh,96vw)}.focus-exit{position:fixed;top:50%;right:0;transform:translateY(-50%);width:30px;height:64px;background:var(--surface);color:var(--text-dim);border:1px solid var(--border);border-right:0;border-radius:8px 0 0 8px;cursor:pointer}@media (max-width: 900px){.shell-live{flex-direction:column}.rail{width:100%;border-left:0;border-top:1px solid var(--border);flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px;padding:16px}.rail-actions{margin-top:0;flex-direction:row;flex-wrap:wrap;width:100%}.rail-value{font-size:1.5rem}.qr-plate{width:min(70vh,92vw)}}@media (prefers-reduced-motion: reduce){*{transition-duration:.01ms!important}}
