:root{color-scheme:dark light;--bg: #0b0f14;--card: #141b24;--inset: #0e141b;--border: #263241;--text: #e6edf3;--muted: #8b98a8;--accent: #2f5fa8;--accent-hover: #3a6fbf;--navy: #1b3a63;--good: #3ddc97;--warn: #ffb020;--danger: #ff5d5d;--bar-track: #263241;--radius: 14px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, monospace}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg: #eef2f7;--card: #ffffff;--inset: #f6f8fb;--border: #d9e1ea;--text: #0e1621;--muted: #5a6b7d;--accent: #1b3a63;--accent-hover: #25487a;--navy: #1b3a63;--bar-track: #e1e8f0}}:root[data-theme=light]{--bg: #eef2f7;--card: #ffffff;--inset: #f6f8fb;--border: #d9e1ea;--text: #0e1621;--muted: #5a6b7d;--accent: #1b3a63;--accent-hover: #25487a;--navy: #1b3a63;--bar-track: #e1e8f0}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100dvh;-webkit-font-smoothing:antialiased}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px max(16px,env(safe-area-inset-left)) 14px max(16px,env(safe-area-inset-right));max-width:760px;margin:0 auto}.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}.brand-mark{font-size:1.25rem}.theme-toggle{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:10px;width:38px;height:38px;font-size:1.05rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.theme-toggle:hover{border-color:var(--accent)}.app{max-width:760px;margin:0 auto;padding:8px 16px 40px}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:18px}.block{display:flex;flex-direction:column}.block-label{display:flex;align-items:center;gap:6px;font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:10px}.block-label .ico{opacity:.85}.block-label .req{color:var(--danger);font-weight:700}.input{width:100%;background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:1rem;padding:14px 16px;resize:vertical;line-height:1.6;min-height:110px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.input::placeholder{color:var(--muted);opacity:.7}.error{color:var(--danger);font-size:.85rem;margin:8px 0 0;min-height:1.1em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;align-self:flex-start;border:none;border-radius:999px;padding:11px 26px;font-size:.98rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn .ico{font-size:1rem}.btn-ghost{background:var(--inset);color:var(--text);border:1px solid var(--border);padding:9px 16px;font-size:.9rem}.btn-ghost:hover{border-color:var(--accent);background:var(--card)}.scan-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.scanner{position:fixed;inset:0;z-index:50;background:#03070cd1;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;animation:fade-in .2s ease}.scanner.hidden{display:none}.scanner-sheet{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:18px;width:min(420px,100%);display:flex;flex-direction:column;align-items:center;gap:14px}.scanner-view{position:relative;width:100%;aspect-ratio:1 / 1;background:#000;border-radius:14px;overflow:hidden}.scanner-view video{width:100%;height:100%;object-fit:cover}.scanner-reticle{position:absolute;inset:16%;border:3px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 0 0 100vmax #00000040}.scanner-status{color:var(--muted);font-size:.9rem;margin:0;text-align:center;min-height:1.2em}.codes{width:100%;background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-height:110px;display:flex;flex-direction:column;gap:6px}.codes-empty{color:var(--muted);font-size:.95rem;margin:auto;opacity:.7;font-family:var(--mono)}.code-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px 14px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:10px;animation:fade-in .2s ease}.code-meta{grid-column:1;grid-row:1;color:var(--muted);font-size:.82rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-value{grid-column:1;grid-row:2;font-family:var(--mono);font-size:2rem;font-weight:600;letter-spacing:.1em;color:var(--text);line-height:1.2;user-select:all}.code-timer{grid-column:2;grid-row:1 / 3;position:relative;width:40px;height:40px}.code-timer svg{width:100%;height:100%;transform:rotate(-90deg)}.code-timer .t-track{fill:none;stroke:var(--bar-track);stroke-width:4}.code-timer .t-fill{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .3s linear,stroke .3s ease}.code-timer .t-fill.low{stroke:var(--danger)}.code-timer .t-num{position:absolute;inset:0;display:grid;place-items:center;font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}.code-row.invalid .code-value{color:var(--danger);font-size:1rem;letter-spacing:0}.foot{text-align:center;margin-top:22px}.foot p{color:var(--muted);font-size:.8rem;margin:0;opacity:.85;line-height:1.5}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
