:root{--bg: #14161a;--surface: #1d222b;--surface-2: #262d39;--line: #39424f;--ink: #e9e6da;--ink-dim: #9aa3ad;--accent: #ffb52e;--ok: #7fd48a;--warn: #ff7a6b;--font-display: "DotGothic16", monospace;--font-body: "Zen Kaku Gothic New", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:12px 14px calc(16px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:baseline;justify-content:space-between;padding:6px 2px 12px}.app-title{font-family:var(--font-display);font-size:20px;letter-spacing:.06em;margin:0}.app-title .accent{color:var(--accent)}.status-chip{font-size:12px;color:var(--ink-dim)}.status-chip.ready{color:var(--ok)}.mode-tabs{display:flex;gap:8px;margin-bottom:12px}.mode-tabs button{flex:1;padding:9px 12px;font-size:14px;color:var(--ink-dim)}.mode-tabs button.active{background:var(--surface-2);border-color:var(--accent);color:var(--accent);font-weight:700}.viewport{position:relative;background:#000;border:1px solid var(--line);border-radius:10px;overflow:hidden;aspect-ratio:3 / 4}.viewport video,.viewport canvas.frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}.viewport .placeholder{position:absolute;inset:0;display:grid;place-content:center;gap:10px;text-align:center;color:var(--ink-dim);font-size:14px;padding:24px}.scan-guide{position:absolute;inset:8%;border:1.5px dashed color-mix(in srgb,var(--accent) 65%,transparent);border-radius:8px;pointer-events:none}.controls{display:flex;gap:10px;margin-top:14px}button{font-family:var(--font-body);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:13px 16px;font-size:15px;font-weight:500;cursor:pointer;transition:filter .12s ease}button:active{filter:brightness(1.25)}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{flex:1;background:var(--accent);border-color:var(--accent);color:#1a1204;font-weight:700;font-size:16px}.message-window{margin-top:16px;background:#0b0d11;border:3px solid var(--ink);border-radius:6px;box-shadow:0 0 0 3px #0b0d11,0 0 0 4.5px var(--line);padding:16px 18px 20px;position:relative}.message-window .label{position:absolute;top:-12px;left:12px;background:var(--accent);color:#1a1204;font-family:var(--font-display);font-size:12px;padding:2px 8px;border-radius:3px}.message-text{font-family:var(--font-display);font-size:26px;line-height:1.7;letter-spacing:.1em;margin:6px 0 0;white-space:pre-wrap;word-break:break-all;min-height:1.7em}.message-text .unknown{color:var(--warn)}.cursor{display:inline-block;margin-left:6px;color:var(--accent);animation:blink 1.1s steps(2) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.cursor{animation:none}}.copy-row{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.copy-row button{padding:8px 14px;font-size:13px}.hint{color:var(--ink-dim);font-size:12.5px;margin-top:12px;line-height:1.6}.error-box{margin-top:14px;border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13.5px;line-height:1.6}input[type=file]{display:none}.compose-view{display:flex;flex-direction:column;gap:12px}.compose-view textarea{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-family:var(--font-body);font-size:16px;line-height:1.6;resize:vertical;min-height:84px}.compose-view textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.compose-view .error-box{margin-top:0}.compose-preview{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:150px;display:grid;place-items:center;padding:12px;overflow:auto}.compose-preview img{max-width:100%;height:auto}.compose-preview .empty{color:#8a8a8a;font-size:13.5px}.compose-actions{display:flex;gap:10px}.compose-view .hint{margin-top:0}.table-overlay{position:fixed;inset:0;z-index:50;background:#080a0ee6;display:grid;place-items:center;padding:16px}.table-overlay img{max-width:min(100%,1100px);max-height:calc(100dvh - 90px);object-fit:contain;background:#fff;border-radius:8px;border:1px solid var(--line)}.table-overlay .overlay-close{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));font-size:13px;padding:9px 14px}@media (orientation: landscape) and (min-width: 480px){#root{max-width:1100px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);grid-template-rows:auto auto auto auto auto auto 1fr;grid-template-areas:"view header" "view tabs" "view controls" "view error" "view message" "view copy" "view hint";column-gap:18px;padding:12px calc(14px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}.app-header{grid-area:header;padding-top:0}.mode-tabs{grid-area:tabs;margin-bottom:0}#root[data-mode=compose]{display:flex;flex-direction:column;max-width:720px}#root[data-mode=compose] .mode-tabs{margin-bottom:12px}.viewport{grid-area:view;aspect-ratio:auto;min-height:0;max-height:calc(100dvh - 24px);position:sticky;top:12px}.controls{grid-area:controls;margin-top:0}.error-box{grid-area:error}.message-window{grid-area:message}.copy-row{grid-area:copy}.hint{grid-area:hint;align-self:end}.message-text{font-size:22px}}
