:root{--dirt:#1f150e;--white:#fff;--shadow:#3f3f3f;--gray:#aaa;--yellow:#ff5;--green:#5f5;--red:#f55;--gold:#f5c518;--gold-deep:#7a4c06;--gold-ink:#241503;--stone:#727272;--stone-hi:#a9a9a9;--stone-lo:#3c3c3c;--px:1px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--white);background:linear-gradient(#0000009e, #0000009e), url(/dirt.png) 0 0 / 64px 64px repeat var(--dirt);image-rendering:pixelated;-webkit-font-smoothing:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;font-family:Tiny5,ui-monospace,monospace;font-size:24px;line-height:1.25}.mc-text{text-shadow:var(--px) var(--px) 0 var(--shadow)}.muted{color:var(--gray);text-shadow:var(--px) var(--px) 0 #2a2a2a}.title{color:var(--gold);text-shadow:0 var(--px) 0 var(--gold-deep), 0 calc(var(--px) * 2) 0 var(--gold-ink), var(--px) 0 0 var(--gold-ink), calc(var(--px) * -1) 0 0 var(--gold-ink), 0 calc(var(--px) * -1) 0 var(--gold-ink)}.auth{min-height:100%;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));place-items:center;display:grid}.panel{flex-direction:column;gap:18px;width:min(100%,440px);display:flex}.brand{align-items:flex-end;gap:10px;font-size:48px;line-height:1;display:flex}.brand img{width:52px;height:52px;image-rendering:pixelated}label{flex-direction:column;gap:6px;display:flex}input{font:inherit;color:var(--white);border:var(--px) solid #a0a0a0;background:#000;border-radius:0;outline:none;width:100%;padding:8px 10px;font-size:24px}input[aria-invalid=true]{border-color:var(--red)}.code-input{letter-spacing:.4em;text-align:center;font-size:36px}.btn{font:inherit;color:var(--white);text-shadow:var(--px) var(--px) 0 var(--shadow);background:var(--stone);border:var(--px) solid #000;box-shadow:inset var(--px) var(--px) 0 var(--stone-hi), inset calc(var(--px) * -1) calc(var(--px) * -1) 0 var(--stone-lo);cursor:pointer;touch-action:manipulation;min-height:48px;padding:8px 14px;font-size:24px}.btn:hover,.btn:focus-visible{color:#ffffa0;border-color:var(--white);outline:none}.btn:active{box-shadow:inset calc(var(--px) * -1) calc(var(--px) * -1) 0 var(--stone-hi), inset var(--px) var(--px) 0 var(--stone-lo)}.btn:disabled{color:#a0a0a0;box-shadow:none;cursor:default;background:#2c2c2c}.btn.gold{box-shadow:inset var(--px) var(--px) 0 #f5d55a, inset calc(var(--px) * -1) calc(var(--px) * -1) 0 #6e4f06;background:#b98a10}.row{flex-wrap:wrap;gap:12px;display:flex}.row>.btn{flex:1}.error{color:var(--red);min-height:1.25em}.ok{color:var(--green)}.qr{width:200px;height:200px;image-rendering:pixelated;background:#fff;align-self:center;padding:6px}.secret{word-break:break-all;-webkit-user-select:all;user-select:all;font-family:ui-monospace,monospace;font-size:16px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.remote{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000;position:fixed;inset:0;overflow:hidden}.frame{--safe-top:env(safe-area-inset-top);--safe-right:env(safe-area-inset-right);--safe-bottom:env(safe-area-inset-bottom);--safe-left:env(safe-area-inset-left);position:absolute;inset:0;container-type:size}.frame[data-turn]{inset:50% auto auto 50%}.frame[data-turn="90"]{--safe-top:env(safe-area-inset-right);--safe-right:env(safe-area-inset-bottom);--safe-bottom:env(safe-area-inset-left);--safe-left:env(safe-area-inset-top);transform:translate(-50%,-50%)rotate(90deg)}.frame[data-turn="-90"]{--safe-top:env(safe-area-inset-left);--safe-right:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-right);--safe-left:env(safe-area-inset-bottom);transform:translate(-50%,-50%)rotate(-90deg)}.stage{inset:0 0 var(--reserve,0px) 0;touch-action:none;place-items:center;display:grid;position:absolute}.screen{touch-action:none;background:#000;outline:none;display:block}.stage-msg{text-align:center;pointer-events:none;background:linear-gradient(#0000009e, #0000009e), url(/dirt.png) 0 0 / 64px 64px repeat var(--dirt);place-content:center;justify-items:center;gap:16px;padding:24px;display:grid;position:absolute;inset:0}.stage-msg p{margin:0}.spinner{background:var(--gold);width:28px;height:28px;box-shadow:inset 0 -6px 0 var(--gold-deep), 0 0 0 var(--px) var(--gold-ink);animation:1.2s steps(8,end) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hint,.secure-note{text-align:center;pointer-events:none;background:#000000b3;width:max-content;max-width:calc(100% - 32px);margin:0;padding:6px 12px;font-size:18px;position:absolute;left:50%;transform:translate(-50%)}.hint{top:max(12px, var(--safe-top))}.secure-note{border:var(--px) solid var(--gold);font-size:20px;top:40%}.gate-bars{top:max(8px, var(--safe-top));pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 24px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.gate-bar{text-align:center;color:var(--white);border:2px solid var(--gold);background:#000000c7;margin:0;padding:5px 10px;font-family:system-ui,Noto Sans Thai,sans-serif;font-size:15px;line-height:1.35}.gate-bar.busy{border-color:var(--red)}.safe-probe{visibility:hidden;pointer-events:none;padding:0 var(--safe-right) var(--safe-bottom) 0;position:absolute}.handle{height:var(--reserve,22px);cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0;position:absolute;bottom:0;left:0;right:0}.handle:after{content:"";background:#fff6;border-radius:3px;width:44px;height:5px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.handle svg{color:var(--gold);position:absolute;top:3px;left:calc(50% - 44px)}.handle:hover:after,.handle:focus-visible:after{background:#ffffffbf}.dock{left:50%;bottom:max(10px, var(--safe-bottom));max-width:calc(100% - 16px - var(--safe-left) - var(--safe-right));border:var(--px) solid #000;box-shadow:inset 0 0 0 var(--px) #ffffff1f;-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#100c08d1;align-items:center;gap:6px;padding:6px;transition:transform .18s cubic-bezier(.2,.8,.2,1),opacity .18s;display:flex;position:absolute;transform:translate(-50%,calc(100% + 24px))}.dock.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.frame[data-dock=side] .dock{left:auto;right:max(8px, var(--safe-right));flex-direction:column;max-width:none;max-height:calc(100% - 16px);top:50%;bottom:auto;transform:translateY(-50%)}.frame[data-dock=side] .dock-group{flex-direction:column}.frame[data-dock=side] .dock-group+.dock-group{border-top:2px solid #ffffff26;border-left:0;padding-top:6px;padding-left:0}.frame[data-dock=side] .status{flex-direction:column;padding:4px 0}.dock-group{gap:4px;display:flex}.dock-group+.dock-group{border-left:2px solid #ffffff26;padding-left:6px}.icon-btn{width:46px;height:46px;color:var(--white);background:var(--stone);border:var(--px) solid #000;box-shadow:inset var(--px) var(--px) 0 var(--stone-hi), inset calc(var(--px) * -1) calc(var(--px) * -1) 0 var(--stone-lo);cursor:pointer;touch-action:manipulation;place-items:center;padding:0;display:grid}.icon-btn:hover,.icon-btn:focus-visible{color:#ffffa0;border-color:var(--white);outline:none}.icon-btn:active,.icon-btn[aria-pressed=true]{box-shadow:inset calc(var(--px) * -1) calc(var(--px) * -1) 0 var(--stone-hi), inset var(--px) var(--px) 0 var(--stone-lo)}.mode-chip{color:var(--gold-ink);text-shadow:none;background:var(--gold);white-space:nowrap;border:2px solid #000;align-self:center;padding:2px 8px;font-size:16px}.frame[data-dock=side] .mode-chip{writing-mode:vertical-rl;padding:8px 2px}.status{white-space:nowrap;align-items:center;gap:6px;padding:0 6px;font-size:18px;display:flex}.dot{background:var(--gray);width:10px;height:10px;box-shadow:0 0 0 2px #000}.dot.good{background:var(--green)}.dot.ok{background:var(--yellow)}.dot.bad{background:var(--red)}.sheet{left:50%;bottom:calc(max(10px, var(--safe-bottom)) + 72px);z-index:2;width:min(420px,100% - 16px);max-height:calc(100% - 100px - var(--safe-top) - var(--safe-bottom));border:var(--px) solid #000;box-shadow:inset 0 0 0 var(--px) #ffffff1f;background:#100c08f0;flex-direction:column;gap:10px;padding:12px;font-size:20px;display:flex;position:absolute;overflow-y:auto;transform:translate(-50%)}.sheet .btn{justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:20px;display:inline-flex}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.menu-row{align-items:center;gap:8px;display:flex}.menu-row input{flex:1;min-width:0;font-size:20px}.menu-row select{font:inherit;color:#fff;border:var(--px) solid #555;background:#000;margin-left:auto;padding:6px 8px}.btn.small{white-space:nowrap;min-height:44px;padding:4px 10px;font-size:18px}.small-text{margin:0;font-size:18px}.toast{left:50%;top:max(16px, var(--safe-top));z-index:3;text-align:center;border:var(--px) solid #000;pointer-events:none;background:#000000d9;max-width:calc(100% - 32px);margin:0;padding:8px 14px;font-size:20px;position:absolute;transform:translate(-50%)}@container (height<=480px) or (width<=420px){.icon-btn{width:40px;height:40px}.dock .status .muted{display:none}}@container (width<=480px){.dock .status{display:none}}:root{--bg:#0b0b0d;--surface:#18181b;--surface-2:#27272a;--line:#ffffff1a;--line-strong:#ffffff2e;--text:#fafafa;--text-2:#a1a1aa;--red:#f87171;--green:#4ade80;--yellow:#facc15;--gold:#fbbf24;--ease-out:cubic-bezier(.23, 1, .32, 1)}body{color:var(--text);background:var(--bg);image-rendering:auto;-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans Thai,sans-serif;font-size:16px;line-height:1.45}.mc-text,.muted,.title,.btn{text-shadow:none}.muted{color:var(--text-2)}.title{color:var(--text)}.brand{letter-spacing:-.01em;align-items:center;font-size:26px;font-weight:650}.brand img{image-rendering:auto;border-radius:9px;width:36px;height:36px}.panel{gap:14px}label{color:var(--text-2);font-size:14px}input{color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:11px 12px;font-size:16px}input:focus{border-color:#a1a1aa}.code-input{letter-spacing:.3em;font-size:24px}.btn,.sheet .btn,.btn.small{color:var(--text);background:var(--surface-2);border:1px solid var(--line);box-shadow:none;min-height:44px;transition:transform .14s var(--ease-out), background-color .14s ease;border-radius:10px;padding:8px 14px;font-size:15px;font-weight:550}.btn:hover,.btn:focus-visible{color:var(--text);border-color:var(--line-strong);background:#323238}.btn:active{box-shadow:none;transform:scale(.97)}.btn:disabled{color:#71717a;background:var(--surface);transform:none}.btn.gold{color:#09090b;background:var(--text);box-shadow:none}.btn.gold:hover,.btn.gold:focus-visible{color:#09090b;background:#e4e4e7}.qr{image-rendering:auto;border-radius:10px}.stage-msg{background:var(--bg)}.stage-msg p{color:var(--text-2);font-size:15px}.spinner{border:3px solid #ffffff2e;border-top-color:var(--text);width:26px;height:26px;box-shadow:none;background:0 0;border-radius:50%;animation:.8s linear infinite spin}.hint,.secure-note,.toast{border:1px solid var(--line);background:#141416e0;border-radius:10px;font-size:14px}.handle svg{color:var(--text)}.dock,.sheet{border:1px solid var(--line);background:#141416e0;border-radius:16px;box-shadow:0 8px 24px #00000059}.sheet{background:#141416f5;font-size:15px}.dock-group+.dock-group{border-left-width:1px}.frame[data-dock=side] .dock-group+.dock-group{border-top-width:1px}.icon-btn{color:var(--text);box-shadow:none;transition:transform .14s var(--ease-out), background-color .14s ease;background:0 0;border:0;border-radius:12px}.icon-btn:hover,.icon-btn:focus-visible{color:var(--text);background:#ffffff14}.icon-btn:active,.icon-btn[aria-pressed=true]{box-shadow:none;background:#ffffff24}.icon-btn:active{transform:scale(.96)}.mode-chip{color:#09090b;background:var(--text);border:0;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.status{font-variant-numeric:tabular-nums;font-size:13px}.dot{box-shadow:none;border-radius:50%}.menu-row input{font-size:16px}.menu-row select{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;font-size:15px}.small-text{font-size:14px}.gate-bar{background:#141416e6;border-width:1px;border-radius:10px;font-size:14px}@media (prefers-reduced-motion:reduce){.spinner{animation:1.6s linear infinite spin!important}}.stage .still{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stage .still-note{text-align:center;color:#fff;pointer-events:none;background:#000000b8;border-radius:999px;max-width:calc(100% - 32px);margin:0;padding:6px 12px;font-size:13px;line-height:1.35;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}
