:root{--m-header-h: 56px;--m-composer-h: 60px;--m-safe-top: env(safe-area-inset-top, 0px);--m-safe-bottom: env(safe-area-inset-bottom, 0px);--m-bg-app: #F8F8FA;--m-bg-card: #FFFFFF;--m-bg-subtle: #F1F1F4;--m-bg-muted: #E4E4E7;--m-bg-dark: #18181B;--m-bg-code: #09090B;--m-ink: #18181B;--m-ink-muted: #71717A;--m-ink-subtle: #A1A1AA;--m-ink-light: #FAFAFA;--m-border: #E4E4E7;--m-border-subtle: #EDEDF0;--m-border-dark: #27272A;--m-emerald: #10B981;--m-emerald-bg: #ECFDF5;--m-emerald-text: #059669;--m-danger: #DC2626;--m-danger-bg: #FEF2F2;--m-danger-border: #FECACA;--m-radius-sm: 8px;--m-radius-md: 12px;--m-radius-lg: 18px;--m-radius-full: 9999px;--m-shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--m-shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--m-shadow-lg: 0 12px 32px rgba(0, 0, 0, .12)}.m-app-root{width:100vw;width:100%;height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;position:fixed;inset:0;background-color:var(--m-bg-app);color:var(--m-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:none}.m-fullscreen-wrap{width:100%;height:100%;height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden}.m-fullscreen-wrap.m-admin-wrap{display:block;height:100%;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem .4rem calc(1.5rem + var(--m-safe-bottom, 0px));background-color:var(--m-bg-app, #FAFAF9)}.m-fullscreen-wrap.m-admin-login-wrap{display:flex;align-items:center;justify-content:center;height:100%;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1rem .75rem;background-color:var(--m-bg-app, #FAFAF9)}.m-lobby-wrapper{width:100%;height:100%;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;background-color:var(--m-bg-app);position:absolute;inset:0;overflow:hidden;overscroll-behavior:none}.m-lobby-scrollable{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;padding:1.5rem 1.25rem;padding-bottom:calc(1.5rem + var(--m-safe-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;box-sizing:border-box}.m-lobby-hero{display:flex;flex-direction:column;align-items:center;margin-bottom:1.75rem}.m-lobby-logo-wrapper{transform:scale(.85);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s ease}.m-lobby-logo-wrapper:active{transform:scale(.82)}.m-lobby-tagline{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-top:.5rem;font-size:.58rem;font-weight:700;letter-spacing:.24em;color:var(--m-ink-muted);text-transform:uppercase}.m-lobby-tagline-line{display:block;width:22px;height:1px;background-color:var(--m-border)}.m-lobby-card{width:100%;max-width:380px;background:var(--m-bg-card);border:2.5px solid var(--m-ink);position:relative;overflow:hidden}.m-lobby-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--m-ink)}.m-lobby-tab-bar{display:grid;grid-template-columns:1fr 1fr}.m-lobby-tab{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem .5rem;background:var(--m-bg-card);border:none;border-bottom:2.5px solid var(--m-ink);font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--m-ink-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s ease;user-select:none}.m-lobby-tab:first-child{border-right:1.25px solid var(--m-ink)}.m-lobby-tab:last-child{border-left:1.25px solid var(--m-ink)}.m-lobby-tab.active{background:var(--m-ink);color:#fff}.m-lobby-form{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1.25rem 1.25rem}.m-lobby-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80px}.m-lobby-section-header{display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.63rem;font-weight:800;letter-spacing:.16em;color:var(--m-ink-muted);text-transform:uppercase;margin-bottom:.85rem;text-align:center}.m-digit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;width:100%;box-sizing:border-box}.m-pin-cell{position:relative;display:flex;flex-direction:column;align-items:center}.m-pin-input{width:100%;min-width:0;height:58px;box-sizing:border-box;text-align:center;font-size:1.6rem;font-weight:900;border:2px solid var(--m-border);border-radius:0;background:var(--m-bg-app);color:var(--m-ink);outline:none;caret-color:transparent;-webkit-tap-highlight-color:transparent;transition:all .2s cubic-bezier(.16,1,.3,1)}.m-pin-input::placeholder{color:var(--m-border);font-weight:300;font-size:1.2rem}.m-pin-input:focus{border-color:var(--m-ink);background:var(--m-bg-card);box-shadow:inset 0 -3px 0 0 var(--m-ink)}.m-pin-cell.filled .m-pin-input{background:var(--m-ink);color:#fff;border-color:var(--m-ink);transform:scale(1.02)}.m-pin-underline{width:60%;height:3px;background:var(--m-border);margin-top:5px;transition:all .2s cubic-bezier(.16,1,.3,1)}.m-pin-cell.filled .m-pin-underline{width:80%;background:var(--m-ink)}.m-lobby-name-input{width:100%;height:58px;padding:0 1rem;font-size:1rem;font-weight:700;letter-spacing:.05em;text-align:center;text-transform:uppercase;background:var(--m-bg-app);color:var(--m-ink);border:2px solid var(--m-border);border-radius:0;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.m-lobby-name-input::placeholder{color:var(--m-border);font-weight:400}.m-lobby-name-input:focus{border-color:var(--m-ink);box-shadow:inset 0 -3px 0 0 var(--m-ink)}.m-lobby-inline-error{display:flex;align-items:center;gap:8px;background:var(--m-ink);color:#fff;padding:.55rem .75rem;font-size:.72rem;font-weight:600}.m-error-close{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;padding:2px}.m-lobby-submit{width:100%;height:52px;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--m-bg-subtle);color:var(--m-ink-muted);border:2px solid var(--m-border);border-radius:0;font-size:.82rem;font-weight:800;letter-spacing:.14em;cursor:not-allowed;transition:all .2s cubic-bezier(.16,1,.3,1);-webkit-tap-highlight-color:transparent;user-select:none}.m-lobby-submit:disabled{opacity:.5}.m-lobby-submit.ready{background:var(--m-ink);color:#fff;border-color:var(--m-ink);cursor:pointer;opacity:1;box-shadow:0 4px #18181b4d}.m-lobby-submit.ready:active{box-shadow:none;transform:translateY(4px)}@keyframes m-blink-cursor{0%,to{opacity:1}50%{opacity:0}}.m-blink{animation:m-blink-cursor .8s step-end infinite}.m-lobby-footer{display:flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-top:1.5px dashed var(--m-border);font-size:.56rem;font-weight:700;letter-spacing:.14em;color:var(--m-ink-muted);text-transform:uppercase;opacity:.65}.m-lobby-page-footer{margin-top:.85rem;margin-bottom:.35rem;padding:0 .5rem;font-size:clamp(.46rem,1.8vw,.54rem);font-family:var(--font-mono, monospace);color:var(--m-ink-muted, #777777);text-align:center;line-height:1.35;letter-spacing:-.015em;opacity:.45;transition:opacity .2s ease;user-select:none;width:100%;max-width:100%;box-sizing:border-box;text-wrap:balance}.m-lobby-page-footer:hover,.m-lobby-page-footer:active{opacity:.85}.m-lobby-terms-link{background:none;border:none;color:inherit;font-family:inherit;font-size:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:0;display:inline;transition:color .15s ease}.m-lobby-terms-link:hover,.m-lobby-terms-link:active{color:var(--m-ink-main, #000000)}.m-terms-backdrop{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:flex-end}.m-terms-drawer{width:100%;max-height:85vh;background:var(--m-bg-card);border-radius:20px 20px 0 0;display:flex;flex-direction:column}.m-terms-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--m-border);font-size:.82rem}.m-terms-close-btn{background:none;border:none;color:var(--m-ink);cursor:pointer}.m-terms-scroll{flex:1;overflow-y:auto;padding:1.25rem}.m-chat-root{width:100%;height:100%;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;background-color:var(--m-bg-app);overflow:hidden;position:absolute;inset:0;overscroll-behavior:none;touch-action:none}.m-chat-header{height:calc(var(--m-header-h) + var(--m-safe-top));padding-top:var(--m-safe-top);padding-left:.75rem;padding-right:.75rem;display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface, #FFFFFF);border-bottom:1px solid var(--border-muted, #E4E4E7);box-shadow:0 1px 2px #00000005;flex-shrink:0;z-index:30;touch-action:none;user-select:none}.m-header-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--m-radius-sm);color:var(--m-ink);cursor:pointer;transition:background .12s ease;-webkit-tap-highlight-color:transparent}.m-header-btn:active{background:var(--m-bg-subtle)}.m-header-dropdown-btn{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-surface, #FFFFFF);border:1px solid var(--border-muted, #E4E4E7);border-radius:10px;color:var(--fg-main, #18181B);cursor:pointer;padding:0;flex-shrink:0;transition:all .22s cubic-bezier(.16,1,.3,1);-webkit-tap-highlight-color:transparent;box-shadow:0 1px 2px #0000000a}.m-header-dropdown-btn:after{content:"";position:absolute;inset:-6px}.m-header-dropdown-btn:hover{background:var(--bg-subtle, #F4F4F5);border-color:var(--border-muted, #D4D4D8);color:var(--fg-main, #18181B)}.m-header-dropdown-btn:active{transform:scale(.92);background:var(--bg-muted, #E4E4E7)}.m-header-dropdown-btn.is-active{background:var(--fg-main, #18181B);border-color:var(--fg-main, #18181B);color:var(--bg-surface, #FFFFFF);box-shadow:0 3px 10px #00000029}.m-header-dropdown-btn.is-active:hover{background:var(--fg-main, #18181B);color:var(--bg-surface, #FFFFFF)}.m-dropdown-chevron-icon{display:block;transition:transform .32s cubic-bezier(.34,1.56,.64,1),color .2s ease;transform-origin:center;will-change:transform}.m-dropdown-chevron-icon.is-open{transform:rotate(180deg)}.m-header-center{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:2px 8px;border-radius:var(--m-radius-sm);transition:background .12s ease;-webkit-tap-highlight-color:transparent}.m-header-center:active{background:var(--m-bg-subtle)}.m-header-links-left{display:flex;align-items:center;gap:4px;flex-shrink:0;min-width:32px}.m-header-icon-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#1a1a1a;text-decoration:none;cursor:pointer;transition:all .12s ease;-webkit-tap-highlight-color:transparent}.m-header-icon-btn:active{transform:scale(.9);background:#0000000d}.m-header-spacer{width:34px;height:34px;flex-shrink:0}.m-header-brand-line{display:flex;align-items:center;justify-content:center;line-height:1}.m-header-sub-line{display:flex;align-items:center;justify-content:center;margin-top:4px;line-height:1}.m-header-e2ee-tag{display:inline-flex;align-items:center;justify-content:center;gap:3.5px;font-size:.38rem;font-weight:700;letter-spacing:.14em;color:#777;text-transform:uppercase;user-select:none;line-height:1;white-space:nowrap;text-align:center;margin-right:-.14em;margin-top:1px}.m-header-timer-wrap{display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;letter-spacing:.1em;color:#555}.m-timer-time-val{font-size:.62rem;font-weight:700;color:#555;letter-spacing:.1em;font-variant-numeric:tabular-nums}.m-header-action-icon,.m-settings-icon{color:#1a1a1a;transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .12s ease}.m-header-controls-btn:active .m-header-action-icon,.m-header-controls-btn:active .m-settings-icon{transform:scale(.88)}.m-header-typing{display:inline-flex;align-items:center;gap:5px;font-size:.62rem;font-weight:700;color:#2563eb}.m-typing-pulse-dot{width:5px;height:5px;border-radius:50%;background:#2563eb;animation:m-pulse-dot 1.2s infinite;flex-shrink:0}@keyframes m-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}.m-chat-messages{flex:1 1 0%;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;overscroll-behavior-x:none;touch-action:pan-y;padding:.9rem .9rem .6rem;display:flex;flex-direction:column;gap:2px;transform:translateZ(0)}.m-chat-seal-wrap{width:100%;display:flex;justify-content:center;margin:.4rem 0 1rem}.m-chat-seal{display:inline-flex;align-items:center;gap:6px;background:var(--m-bg-card);border:1px solid var(--m-border);padding:5px 12px;border-radius:var(--m-radius-full);font-size:.64rem;font-weight:700;color:var(--m-ink-muted);box-shadow:var(--m-shadow-sm)}.m-seal-icon{color:var(--m-emerald)}.m-system-msg-wrap{width:100%;display:flex;justify-content:center;margin:.5rem 0}.m-system-pill{font-size:.55rem;font-weight:700;letter-spacing:.03em;color:var(--m-ink-muted);background:var(--m-bg-subtle);padding:4px 10px;border-radius:12px;text-align:center;white-space:normal;word-break:break-word;max-width:95%;box-sizing:border-box;line-height:1.35}.m-msg-row{display:flex;flex-direction:column;width:100%;margin-top:8px;content-visibility:auto;contain-intrinsic-size:auto 50px;contain:layout style;transform:translateZ(0)}.m-msg-row.consecutive{margin-top:2px}.m-msg-row.me{align-items:flex-end}.m-msg-row.other{align-items:flex-start}.m-msg-author{display:flex;align-items:center;gap:5px;margin-bottom:3px;margin-left:4px}.m-msg-sender{font-size:.68rem;font-weight:700;color:var(--m-ink-muted)}.admin-badge-svg{display:block;flex-shrink:0;shape-rendering:geometricPrecision}.m-msg-bubble{max-width:78%;min-width:60px;padding:8px 12px;position:relative;word-break:break-word;line-height:1.42;box-shadow:0 1px 2px #00000008}.m-msg-bubble.bubble-me{background:var(--m-bg-dark);color:var(--m-ink-light);border-radius:18px 18px 4px}.m-msg-row.me.consecutive .m-msg-bubble.bubble-me{border-radius:18px 4px 4px 18px}.m-msg-bubble.bubble-other{background:#fff;color:var(--m-ink);border:1px solid var(--m-border);border-radius:18px 18px 18px 4px}.m-msg-row.other.consecutive .m-msg-bubble.bubble-other{border-radius:4px 18px 18px 4px}.m-msg-bubble.is-code{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;max-width:95%!important}.m-msg-text{font-size:.9rem;font-weight:450}.m-msg-link{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:700}.m-msg-footer{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:3px}.m-msg-time{font-size:.56rem}.bubble-me .m-msg-time,.bubble-other .m-msg-time{color:#a1a1aa}.m-msg-status{color:var(--m-emerald)}.m-bubble-sealed{display:inline-flex;align-items:center;gap:5px;background:var(--m-bg-subtle);border:1px solid var(--m-border);padding:5px 9px;font-size:.65rem;font-weight:700;color:var(--m-ink-muted);border-radius:var(--m-radius-sm)}.m-msg-parts{display:flex;flex-direction:column;gap:6px}.m-msg-image-card{border-radius:var(--m-radius-md);overflow:hidden;background:#000;cursor:pointer;max-width:250px}.m-msg-image{width:100%;max-height:220px;object-fit:cover;display:block}.m-msg-file-card{display:flex;align-items:center;gap:8px;background:var(--m-bg-subtle);color:var(--m-ink);border:1px solid var(--m-border);border-radius:var(--m-radius-sm);padding:7px 10px;text-decoration:none;min-width:200px;max-width:260px;-webkit-tap-highlight-color:transparent;transition:opacity .12s ease}.m-msg-file-card:active{opacity:.75}.m-msg-file-icon{color:var(--m-ink);flex-shrink:0}.m-msg-file-details{flex:1;min-width:0;display:flex;flex-direction:column}.m-msg-file-name{font-size:.74rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-msg-file-size{font-size:.56rem;color:var(--m-ink-muted)}.m-msg-file-action{color:var(--m-ink-muted);flex-shrink:0}.m-msg-audio-card{background:#fff;color:var(--m-ink);border:1px solid var(--m-border);border-radius:var(--m-radius-sm);padding:8px 10px;min-width:210px;max-width:260px}.m-msg-audio-top{display:flex;align-items:center;gap:5px;font-size:.62rem;font-weight:700;margin-bottom:5px}.m-msg-audio-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-msg-audio-player{width:100%;height:30px}.m-msg-code-block{border:1.5px solid var(--m-border-dark, #27272A);border-radius:0;overflow:hidden;background:var(--m-bg-code, #09090B);color:#e4e4e7;width:100%;box-shadow:0 3px 12px #0003}.m-msg-code-header{display:flex;align-items:center;justify-content:space-between;background:#18181b;color:#fff;padding:5px 8px;border-bottom:1.5px solid var(--m-border-dark, #27272A)}.m-msg-code-lang{display:flex;align-items:center;gap:5px;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.m-msg-code-ext{background:#ffffff1f;padding:1px 4px;border-radius:0;font-size:.55rem}.m-msg-code-actions{display:flex;gap:4px}.m-msg-code-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #3F3F46;color:#fff;border-radius:0;cursor:pointer;transition:all .12s ease}.m-msg-code-btn:active{background:#fafafa;color:#09090b}.m-msg-code-body{padding:8px 0;max-height:280px;overflow:auto;-webkit-overflow-scrolling:touch;font-size:.72rem;line-height:1.5;background:#09090b;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) rgba(0,0,0,.35)}.m-msg-code-body::-webkit-scrollbar{width:6px;height:6px}.m-msg-code-body::-webkit-scrollbar-track{background:#00000059}.m-msg-code-body::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.m-msg-code-body::-webkit-scrollbar-thumb:hover{background:#ffffff80}.m-msg-code-body::-webkit-scrollbar-corner{background:#00000059}.m-msg-code-line{display:flex;padding:0 6px;min-width:100%;width:max-content}.m-msg-code-num{min-width:1.4rem;text-align:right;padding-right:.45rem;color:#71717a;user-select:none;flex-shrink:0;border-right:1px solid #27272A;margin-right:.45rem}.m-msg-code-txt{white-space:pre;color:#fafafa;flex:1}.m-scroll-bottom-btn{position:absolute;bottom:calc(var(--m-composer-h) + 12px + var(--m-safe-bottom));right:1rem;width:40px;height:40px;border-radius:50%;background:var(--m-ink);color:#fff;border:none;box-shadow:var(--m-shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:40;-webkit-tap-highlight-color:transparent;transition:transform .12s ease}.m-scroll-bottom-btn:active{transform:scale(.92)}.m-composer-wrap{background:#fff;border-top:1.5px solid var(--m-border-subtle);padding-bottom:var(--m-safe-bottom);flex-shrink:0;z-index:35;touch-action:pan-y;position:relative;box-shadow:0 -1px 3px #00000005}.m-composer-upload{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--m-bg-subtle);border-bottom:1px solid var(--m-border-subtle);font-size:.65rem;font-weight:700;color:var(--m-ink)}.m-upload-spinner{width:11px;height:11px;border:1.5px solid var(--m-ink);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.m-composer-chips{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 10px;background:var(--m-bg-subtle);border-bottom:1px solid var(--m-border-subtle)}.m-chip{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--m-border);border-radius:var(--m-radius-sm);padding:3px 6px;font-size:.62rem;flex-shrink:0;max-width:140px}.m-chip-img{width:20px;height:20px;object-fit:cover;border-radius:3px}.m-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-chip-remove{background:none;border:none;color:var(--m-ink-muted);cursor:pointer;padding:1px;display:flex;align-items:center}.m-composer-bar{padding:8px 10px}.m-composer-capsule{display:flex;align-items:center;background:var(--bg-surface, #FFFFFF);border:1.5px solid var(--border-muted, #E5E5E0);border-radius:24px;padding:4px 6px;min-height:44px;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease;box-shadow:0 1px 3px #0000000a}.m-composer-capsule:focus-within{background:#fff;border-color:var(--fg-main, #1A1A1A);box-shadow:0 2px 8px #00000014}.m-composer-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:#71717a;cursor:pointer;flex-shrink:0;transition:all .12s ease;-webkit-tap-highlight-color:transparent;align-self:center}.m-composer-btn:active{color:#1a1a1a;transform:scale(.92)}.m-composer-btn.active{color:#1a1a1a}.m-composer-input{flex:1;min-width:0;min-height:24px;max-height:120px;padding:4px 8px;font-family:var(--font-mono, monospace);font-size:.86rem;font-weight:500;border:none!important;background:transparent!important;color:var(--fg-main, #1A1A1A);resize:none!important;outline:none!important;box-shadow:none!important;line-height:1.4;box-sizing:border-box;margin:0;align-self:center;overflow-y:auto;scrollbar-width:none}.m-composer-input::-webkit-scrollbar{display:none}.m-composer-input:focus,.m-composer-input:focus-visible{border:none!important;outline:none!important;box-shadow:none!important}.m-composer-input::placeholder{color:#8e8e93;font-family:var(--font-mono, monospace);font-size:.86rem}.m-composer-send-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent;color:#a1a1aa;border:none;cursor:default;flex-shrink:0;transition:all .16s cubic-bezier(.16,1,.3,1);-webkit-tap-highlight-color:transparent;align-self:center}.m-composer-send-btn.is-active{background:#1a1a1a;color:#fafaf7;cursor:pointer;box-shadow:0 2px 6px #0000002e;transform:scale(1)}.m-composer-send-btn.is-active:active{transform:scale(.9);background:#000}.m-composer-send-btn.is-disabled{opacity:.3;pointer-events:none;cursor:default}.m-emoji-panel{display:flex;flex-direction:column;height:270px;background:var(--m-bg-card);border-top:1px solid var(--m-border-subtle);overflow:hidden;user-select:none;animation:m-emoji-slide-up .16s cubic-bezier(.16,1,.3,1)}@keyframes m-emoji-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.m-emoji-search-bar{display:flex;align-items:center;gap:8px;padding:8px 10px 6px;background:var(--m-bg-card);flex-shrink:0}.m-emoji-search-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:6px;background:var(--m-bg-subtle);border-radius:var(--m-radius-sm);padding:0 8px;height:32px}.m-emoji-search-icon{color:var(--m-ink-muted);flex-shrink:0}.m-emoji-search-input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:.78rem;color:var(--m-ink)}.m-emoji-search-input::placeholder{color:var(--m-ink-subtle)}.m-emoji-clear-btn{background:none;border:none;color:var(--m-ink-muted);cursor:pointer;padding:2px;display:flex;align-items:center}.m-emoji-backspace-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--m-bg-subtle);border:1px solid var(--m-border-subtle);border-radius:var(--m-radius-sm);color:var(--m-ink);cursor:pointer;flex-shrink:0;transition:all .12s ease}.m-emoji-backspace-btn:active{background:var(--m-bg-muted);transform:scale(.92)}.m-emoji-category-strip{display:flex;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 6px 4px;gap:2px;border-bottom:1px solid var(--m-border-subtle);background:var(--m-bg-card);flex-shrink:0;scrollbar-width:none}.m-emoji-category-strip::-webkit-scrollbar{display:none}.m-emoji-cat-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;font-size:1rem;cursor:pointer;flex-shrink:0;transition:all .12s ease}.m-emoji-cat-btn.active{background:var(--m-bg-subtle);box-shadow:inset 0 -2px 0 var(--m-ink)}.m-emoji-scroll-area{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 8px 12px;display:flex;flex-direction:column}.m-emoji-section{margin-bottom:8px}.m-emoji-section-title{font-size:.62rem;font-weight:800;letter-spacing:.06em;color:var(--m-ink-muted);text-transform:uppercase;padding:4px 4px 2px;position:sticky;top:0;background:var(--m-bg-card);z-index:2}.m-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.m-emoji-cell{aspect-ratio:1;width:100%;border:none;background:transparent;border-radius:6px;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,background .1s ease;-webkit-tap-highlight-color:transparent}.m-emoji-cell:active{transform:scale(1.3);background:var(--m-bg-subtle)}.m-emoji-empty{padding:30px 10px;text-align:center;color:var(--m-ink-subtle);font-size:.76rem}@media (max-width: 360px){.m-emoji-grid{grid-template-columns:repeat(7,1fr)}}.m-sheet-root{position:fixed;inset:0;z-index:100;pointer-events:none}.m-sheet-backdrop{position:absolute;inset:0;background:#0006;pointer-events:auto}.m-sheet-panel{position:absolute;inset:auto 0 0;background:var(--bg-surface, #FFFFFF);border-top:1px solid var(--border-muted, #E4E4E7);border-radius:12px 12px 0 0;display:flex;flex-direction:column;pointer-events:auto;touch-action:none;box-shadow:0 -4px 24px #00000014;will-change:transform,height}.m-sheet-panel.m-sheet-auto{top:auto;bottom:0;height:auto;max-height:85vh;max-height:85dvh}.m-sheet-animated{transition:transform .22s cubic-bezier(.16,1,.3,1),height .22s cubic-bezier(.16,1,.3,1)}.m-sheet-handle-area{display:none}.m-sheet-header-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.15rem .65rem;border-bottom:1px solid var(--border-muted, #E4E4E7)}.m-sheet-title{font-size:.76rem;font-weight:800;letter-spacing:.08em;color:var(--fg-main, #18181B);text-align:center;font-family:var(--font-mono, monospace);text-transform:uppercase}.m-sheet-close-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:flex-start;background:transparent;border:none;color:var(--fg-muted, #71717A);cursor:pointer;padding:0;transition:color .12s ease}.m-sheet-close-btn:hover,.m-sheet-close-btn:active{color:var(--fg-main, #18181B)}.m-sheet-header-spacer{width:26px;height:26px}.m-sheet-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.9rem 1.25rem 1.25rem;padding-bottom:calc(1.25rem + var(--m-safe-bottom))}.eink-sheet{display:flex;flex-direction:column;align-items:center;text-align:center}.eink-qr-frame{background:#fff;padding:10px 10px 6px;border:1.5px solid #1A1A1A;border-radius:8px;box-shadow:2px 2px #1a1a1a;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;margin-bottom:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.eink-qr-frame:active{transform:translate(1px,1px);box-shadow:1px 1px #1a1a1a}.eink-qr-hint{font-size:.56rem;font-weight:700;letter-spacing:.08em;color:#555}.eink-qr-url-link{display:block;font-family:var(--font-mono, monospace);font-size:.5rem;font-weight:600;letter-spacing:.02em;color:#666;text-decoration:none;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:4px;line-height:1.2}.eink-qr-url-link:active{color:#000}.eink-url-card{display:flex;align-items:center;width:100%;max-width:280px;gap:8px;margin:.1rem auto .4rem;padding:0;background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;text-decoration:none;box-sizing:border-box;user-select:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.eink-url-card:before,.eink-url-card:after{content:"";flex:1;height:1px;background-color:#e5e5e0;transition:background-color .15s ease}.eink-url-card:active{opacity:.65}.eink-url-text{font-family:var(--font-mono, monospace);font-size:.59rem;font-weight:600;letter-spacing:.05em;color:#777;text-align:center;white-space:nowrap;border-bottom:none!important;padding:0;line-height:1}.eink-url-banner{display:flex;align-items:center;justify-content:center;width:100%;max-width:280px;height:36px;padding:0 10px;background:#fff;border:1.5px solid #1A1A1A;border-radius:6px;color:#1a1a1a;text-decoration:none;box-sizing:border-box;box-shadow:2px 2px #1a1a1a;margin-bottom:12px}.eink-timer-readout{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:12px;user-select:none;cursor:default;pointer-events:none}.eink-timer-destroys-label{font-size:.52rem;font-weight:800;letter-spacing:.16em;color:#777;text-transform:uppercase}.eink-timer-clock-digits{font-size:.84rem;font-weight:800;letter-spacing:.12em;color:#1a1a1a;font-variant-numeric:tabular-nums;line-height:1.2}.eink-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:280px;margin-bottom:8px}.eink-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 10px;background:#fff;border:1.5px solid #1A1A1A;border-radius:6px;color:#1a1a1a;cursor:pointer;user-select:none;box-shadow:2px 2px #1a1a1a;transition:all .12s ease;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent}.eink-btn:active{transform:translate(1px,1px);box-shadow:1px 1px #1a1a1a;background:#1a1a1a;color:#fafaf7}.eink-btn.is-copied{border-color:#10b981;background:#ecfdf5;color:#065f46;box-shadow:2px 2px #10b981}.eink-btn-text{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eink-btn-icon{flex-shrink:0}.eink-danger-area{width:100%;max-width:280px;display:flex;justify-content:center;margin-bottom:4px}.eink-leave-btn{width:100%;height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:#dc2626;border:1.5px solid #DC2626;border-radius:6px;font-size:.7rem;font-weight:800;letter-spacing:.06em;cursor:pointer;box-shadow:2px 2px #dc2626;transition:all .12s ease;-webkit-tap-highlight-color:transparent}.eink-leave-btn:active{background:#dc2626;color:#fff;transform:translate(1px,1px);box-shadow:1px 1px #dc2626}.eink-leave-confirm{width:100%;height:36px;display:flex;align-items:center;justify-content:space-between;background:#fef2f2;border:1.5px solid #DC2626;border-radius:6px;padding:0 8px;box-shadow:2px 2px #dc2626;animation:eink-pop .12s ease-out}@keyframes eink-pop{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.eink-confirm-msg{display:inline-flex;align-items:center;gap:4px;color:#dc2626;font-weight:800;font-size:.65rem;letter-spacing:.04em}.eink-warn-icon{flex-shrink:0}.eink-confirm-btns{display:flex;gap:5px}.eink-cancel-btn{height:24px;background:#fff;border:1.5px solid #1A1A1A;border-radius:4px;padding:0 7px;font-size:.6rem;font-weight:800;color:#1a1a1a;cursor:pointer}.eink-proceed-btn{height:24px;background:#dc2626;border:1.5px solid #DC2626;border-radius:4px;padding:0 7px;font-size:.6rem;font-weight:800;color:#fff;cursor:pointer}.m-code-editor-sheet{display:flex;flex-direction:column;gap:12px;width:100%}.m-code-window{background:#fff;border:1.5px solid #1A1A1A;border-radius:6px;box-shadow:2px 2px #1a1a1a;overflow:hidden;display:flex;flex-direction:column}.m-code-window-topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#f0efec;border-bottom:1.5px solid #1A1A1A}.m-code-window-title{font-size:.62rem;font-weight:800;color:#1a1a1a;letter-spacing:.1em}.m-code-lang-tag{display:inline-flex;align-items:center;padding:2px 6px;background:#1a1a1a;color:#fafaf7;border-radius:3px;font-size:.58rem;font-weight:800;letter-spacing:.08em}.m-code-sheet-textarea{width:100%;height:180px;min-height:140px;padding:10px;font-size:.78rem;line-height:1.5;background:#fff;color:#1a1a1a;border:none;resize:none;outline:none;tab-size:2;box-sizing:border-box;font-family:var(--font-mono, monospace)}.m-code-sheet-textarea::placeholder{color:#888}.m-code-sheet-actions{display:flex;justify-content:flex-end;gap:8px}.m-code-cancel-btn{height:36px;padding:0 14px;background:#fff;border:1.5px solid #1A1A1A;border-radius:6px;font-size:.7rem;font-weight:800;letter-spacing:.06em;color:#1a1a1a;cursor:pointer;box-shadow:2px 2px #1a1a1a;transition:all .12s ease;-webkit-tap-highlight-color:transparent}.m-code-cancel-btn:active{transform:translate(1px,1px);box-shadow:1px 1px #1a1a1a}.m-code-insert-btn{height:36px;padding:0 16px;background:#1a1a1a;border:1.5px solid #1A1A1A;border-radius:6px;font-size:.7rem;font-weight:800;letter-spacing:.06em;color:#fafaf7;cursor:pointer;box-shadow:2px 2px #1a1a1a;transition:all .12s ease;-webkit-tap-highlight-color:transparent}.m-code-insert-btn:active:not(:disabled){transform:translate(1px,1px);box-shadow:1px 1px #1a1a1a}.m-code-insert-btn:disabled{background:#f0efec;border-color:#ccc;color:#999;box-shadow:none;cursor:not-allowed}.m-viewer-root{position:fixed;inset:0;z-index:200;background:#000;display:flex;flex-direction:column;touch-action:none}.m-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;padding-top:calc(.75rem + var(--m-safe-top));background:#000000d9;backdrop-filter:blur(8px);flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.15)}.m-viewer-title{display:flex;flex-direction:column;min-width:0;color:#fff}.m-viewer-name{font-size:.82rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-viewer-size{font-size:.62rem;color:#999}.m-viewer-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#fff;cursor:pointer}.m-viewer-body{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.m-viewer-image{max-width:100%;max-height:100%;object-fit:contain;transition:transform .12s ease-out;user-select:none;-webkit-user-drag:none}.m-viewer-controls{display:flex;justify-content:center;gap:8px;padding:.75rem 1rem;padding-bottom:calc(.75rem + var(--m-safe-bottom));background:#000000d9;border-top:1px solid rgba(255,255,255,.15);flex-shrink:0}.m-viewer-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#fff;cursor:pointer;text-decoration:none}.m-viewer-download{background:#fff;color:#000;border-color:#fff}@media (max-width: 374px){.m-digit-grid{gap:.4rem}.m-pin-input{height:50px;font-size:1.35rem}.m-lobby-card{max-width:330px}.m-msg-bubble{max-width:86%}}@media (min-width: 428px){.m-lobby-card{max-width:400px}.m-pin-input{height:62px;font-size:1.75rem}.m-msg-bubble{max-width:76%}}@media (min-width: 600px){.m-chat-messages,.m-composer-bar,.m-sheet-content{padding-left:1.5rem;padding-right:1.5rem}}.m-top-status-banner{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;font-size:.64rem;font-weight:700;z-index:100;flex-shrink:0;animation:slide-down-banner .2s ease-out}.m-top-status-banner.waking{background:#fef3c7;color:#92400e;border-bottom:1px solid #FDE68A}.m-top-status-banner.reconnecting{background:#fee2e2;color:#991b1b;border-bottom:1px solid #FECACA}.m-status-pulse-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.m-status-pulse-dot.waking{background:#d97706;animation:wake-pulse 1.2s ease-in-out infinite}.m-status-pulse-dot.reconnecting{background:#dc2626;animation:wake-pulse 1s ease-in-out infinite}@font-face{font-family:SK Quadratica;src:url(/SK-Quadratica-Trial-400.ttf) format("truetype"),url(/SK%20Quadratica%20Trial%20400.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:SK Quadratica Trial;src:url(/SK-Quadratica-Trial-400.ttf) format("truetype"),url(/SK%20Quadratica%20Trial%20400.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}.font-squarea{font-family:Squarea,IBM Plex Mono,monospace!important}:root{--bg-app: #FAFAF7;--bg-surface: #FFFFFF;--bg-subtle: #F0EFEC;--bg-contrast: #1A1A1A;--fg-main: #1A1A1A;--fg-muted: #555555;--fg-subtle: #777777;--fg-on-contrast: #FAFAF7;--border-main: #1A1A1A;--border-muted: #CCCCCC;--border-thick: 2px solid #1A1A1A;--border-thin: 1px solid #1A1A1A;--alert-bg: #1A1A1A;--alert-fg: #FAFAF7;--alert-border: #000000;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", monospace;--transition-speed: 0ms}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}button,a,input,textarea,select,[role=button]{touch-action:manipulation}html,body{width:100%;height:100%;height:100dvh;margin:0;padding:0;background-color:var(--bg-app);color:var(--fg-main);font-family:var(--font-sans);font-size:16px;line-height:1.5;letter-spacing:.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow:hidden;overscroll-behavior:none}#root{width:100%;height:100%;height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;position:relative;overscroll-behavior:none;transform:translateZ(0)}.smooth-scroll,.overflow-y-auto,.overflow-x-auto,.overflow-auto,[data-scrollable=true]{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-behavior:smooth;transform:translateZ(0)}.e-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.625rem 1.25rem;font-family:var(--font-sans);font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;background-color:var(--bg-surface);color:var(--fg-main);border:var(--border-thick);border-radius:0;outline:none;user-select:none;transition:background-color .15s ease,color .15s ease,opacity .15s ease,border-color .15s ease,transform .1s ease}.e-btn:hover:not(:disabled):not(.e-btn-primary){background-color:var(--fg-main);color:var(--bg-app)}.e-btn:active:not(:disabled){transform:translateY(1px)}.e-btn-primary{background-color:var(--fg-main);color:var(--bg-app);border:var(--border-thick)}.e-btn-primary:hover:not(:disabled),.e-btn-primary:focus-visible:not(:disabled){background-color:var(--fg-main);color:var(--bg-app);opacity:.88}.e-btn-sm{min-height:36px;padding:.375rem .75rem;font-size:.85rem}.e-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-subtle)!important;color:var(--fg-muted)!important;border-color:var(--border-muted)!important}.e-tab-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.625rem 1rem;font-family:var(--font-mono);font-size:.88rem;font-weight:700;letter-spacing:.06em;cursor:pointer;background-color:var(--bg-surface);color:var(--fg-main);border:var(--border-thick);border-radius:0;outline:none;user-select:none;transition:background-color .15s ease,color .15s ease,opacity .15s ease,border-color .15s ease}.e-tab-btn:hover:not(.active){background-color:var(--fg-main);color:var(--bg-app)}.e-tab-btn.active{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.e-tab-btn.active:hover{opacity:.88}.e-input{width:100%;min-height:44px;padding:.625rem .875rem;font-family:var(--font-sans);font-size:1rem;font-weight:500;background-color:var(--bg-surface);color:var(--fg-main);border:var(--border-thick);border-radius:0;outline:none}.e-input:focus{outline:2px solid var(--fg-main);outline-offset:2px}.e-input-mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.e-card{background-color:var(--bg-surface);border:var(--border-thick);padding:1.5rem}.e-title{font-family:var(--font-mono);font-weight:700;letter-spacing:-.02em;text-transform:uppercase}.e-badge{display:inline-block;padding:.15rem .5rem;font-family:var(--font-mono);font-size:.75rem;font-weight:700;border:var(--border-thin);background-color:var(--bg-subtle);color:var(--fg-main);text-transform:uppercase}.e-badge-active{background-color:var(--fg-main);color:var(--bg-app)}.font-mono{font-family:var(--font-mono)}.font-logo{font-family:Space Grotesk,Chakra Petch,IBM Plex Mono,sans-serif;font-weight:900;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.font-quadratica{font-family:SK Quadratica,SK Quadratica Trial,Space Grotesk,sans-serif!important;font-weight:400!important;font-style:normal!important}.font-squarea{font-family:IBM Plex Mono,Space Grotesk,monospace;font-weight:900}.e-logo-wrapper{display:inline-flex;flex-direction:column;align-items:center;user-select:none;position:relative;transition:transform .2s cubic-bezier(.16,1,.3,1)}.e-logo-wrapper:hover{transform:translateY(-2px)}.e-logo-box{display:inline-flex;align-items:stretch;border:var(--border-thick);background-color:var(--fg-main);padding:1px;box-shadow:3px 3px 0 var(--fg-main);transition:box-shadow .2s ease,border-color .2s ease}.e-logo-wrapper:hover .e-logo-box{box-shadow:5px 5px 0 var(--fg-main)}.e-textbox-logo{font-family:inherit;display:inline-flex;align-items:stretch;line-height:1;user-select:none;border-radius:4px;overflow:hidden;border:1.5px solid var(--fg-main);transition:opacity .15s ease;cursor:default}.e-textbox-logo:hover{opacity:.85}.tactical-logo-badge{transition:opacity .2s ease,transform .2s ease}.tactical-logo-badge:hover{opacity:.9}.tactical-live-dot{animation:liveDotPulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes liveDotPulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 6px #10b981e6}50%{opacity:.65;transform:scale(.85);box-shadow:0 0 2px #10b98159}}.e-digit-block{width:100%;height:62px;text-align:center;font-size:1.75rem;font-weight:800;font-family:var(--font-mono);letter-spacing:.05em;background-color:var(--bg-app);color:var(--fg-main);border:2px solid var(--border-muted);border-radius:0;outline:none;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.e-digit-block::placeholder{color:var(--border-muted);font-weight:400}.e-digit-block:focus{border-color:var(--fg-main);box-shadow:0 0 0 3px color-mix(in srgb,var(--fg-main) 12%,transparent);background-color:var(--bg-surface)}.e-digit-block.filled{border-color:var(--fg-main);background-color:var(--fg-main);color:var(--bg-app)}.e-digit-row{display:grid;grid-template-columns:1fr auto 1fr 1fr 1fr;gap:.65rem;align-items:center}.e-digit-sep{font-family:var(--font-mono);font-weight:300;font-size:1.1rem;color:var(--border-muted);user-select:none;text-align:center}.e-digit-progress{display:flex;justify-content:center;gap:.5rem;margin-top:.75rem}.e-dot{width:6px;height:6px;border-radius:50%;background-color:var(--border-muted);transition:background-color .2s ease,transform .2s ease}.lobby-error{display:flex;align-items:center;gap:.5rem;margin:1.25rem 1.5rem 0;padding:.6rem .85rem;background:var(--fg-main);color:var(--bg-app);font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.02em}.lobby-section{display:flex;flex-direction:column}.lobby-section-header{display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.65rem;font-weight:800;letter-spacing:.18em;color:var(--fg-muted);text-transform:uppercase;margin-bottom:1rem}.lobby-pin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem}.lobby-pin-input{width:100%;height:72px;text-align:center;font-size:2rem;font-weight:900;font-family:var(--font-mono);letter-spacing:0;background:var(--bg-app);color:var(--fg-main);border:2px solid var(--border-muted);border-radius:0;outline:none;caret-color:transparent;transition:all .2s cubic-bezier(.16,1,.3,1)}.lobby-pin-input::placeholder{color:var(--border-muted);font-weight:300;font-size:1.5rem}.lobby-pin-underline{width:60%;height:3px;background:var(--border-muted);margin-top:6px;transition:all .2s cubic-bezier(.16,1,.3,1);border-radius:2px}.lobby-name-input{width:100%;height:56px;padding:0 1rem;font-family:var(--font-sans);font-size:1.05rem;font-weight:600;background:var(--bg-app);color:var(--fg-main);border:2px solid var(--border-muted);border-radius:0;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.lobby-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;border-top:1.5px solid var(--border-color, rgba(0,0,0,.12));font-family:var(--font-mono);font-size:.72rem;font-weight:800;letter-spacing:.08em;color:var(--fg-main);text-transform:uppercase}.lobby-footer-badge{background:var(--fg-main);color:var(--bg-app);padding:.12rem .4rem;border-radius:2px;font-weight:900;letter-spacing:.04em;margin:0 .2rem;font-family:var(--font-mono);font-size:.72rem}.lobby-page-footer{position:absolute;bottom:.6rem;left:50%;transform:translate(-50%);width:max-content;max-width:96vw;font-family:var(--font-mono);font-size:clamp(.46rem,1.8vw,.58rem);color:var(--fg-muted);text-transform:none;text-align:center;line-height:1.4;opacity:.38;user-select:none;box-sizing:border-box;text-wrap:balance;transition:opacity .2s ease}.lobby-page-footer:hover{opacity:.8}.lobby-terms-link{background:none;border:none;padding:0;margin:0;font-family:inherit;font-size:inherit;font-weight:700;color:var(--fg-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;display:inline;transition:color .15s ease}.lobby-terms-link:hover{opacity:.7}.e-terminal-card{position:relative;background-color:var(--bg-surface);border:var(--border-thick);padding:1.75rem 1.5rem;outline:1px solid var(--border-muted);outline-offset:4px}.e-input-prefix-wrapper{display:flex;align-items:center;border:2px solid var(--border-muted);background-color:var(--bg-app);transition:border-color .15s ease}.e-input-prefix-wrapper:focus-within{border-color:var(--fg-main);box-shadow:0 0 0 3px color-mix(in srgb,var(--fg-main) 12%,transparent)}.e-input-prefix-wrapper .e-prefix{padding-left:.875rem;font-family:var(--font-mono);font-weight:700;font-size:1rem;color:var(--fg-muted);user-select:none}.e-input-prefix-wrapper .e-input{border:none!important;background:transparent!important;outline:none!important;box-shadow:none!important;padding-left:.5rem}.lobby-root{max-width:420px;margin:0 auto;padding:0 1rem;width:100%}.lobby-hero{text-align:center;margin-bottom:2rem}.lobby-tagline{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:.6rem;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.28em;color:var(--fg-muted);text-transform:uppercase}.lobby-tagline-line{display:block;width:28px;height:1px;background-color:var(--border-muted)}.lobby-card{background-color:var(--bg-surface);border:2.5px solid var(--fg-main);position:relative;overflow:hidden}.lobby-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--fg-main)}.lobby-tabs{display:grid;grid-template-columns:1fr 1fr}.lobby-tab{display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.9rem .75rem;font-family:var(--font-mono);font-size:.72rem;font-weight:800;letter-spacing:.14em;cursor:pointer;background:var(--bg-surface);color:var(--fg-muted);border:none;border-bottom:2.5px solid var(--fg-main);outline:none;user-select:none;transition:all .2s ease;position:relative}.lobby-tab:first-child{border-right:1.25px solid var(--fg-main)}.lobby-tab:last-child{border-left:1.25px solid var(--fg-main)}.lobby-tab:not(.active):hover{color:var(--fg-main);background:var(--bg-subtle)}.lobby-tab.active{background:var(--fg-main);color:var(--bg-app)}.lobby-inline-error{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .8rem;background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--fg-main);border-radius:0;font-size:.72rem;font-weight:700;letter-spacing:.03em;box-shadow:1.5px 1.5px 0 var(--fg-main);width:100%;box-sizing:border-box}.lobby-error-close{background:none;border:none;color:inherit;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;opacity:.65;transition:opacity .12s ease;flex-shrink:0}.lobby-error-close:hover{opacity:1}.lobby-body{display:flex;flex-direction:column;gap:1.75rem;padding:1.75rem 1.5rem 1.5rem}.lobby-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px}.lobby-section-header{display:flex;align-items:center;justify-content:center;gap:.4rem;font-family:var(--font-mono);font-size:.65rem;font-weight:800;letter-spacing:.18em;color:var(--fg-muted);text-transform:uppercase;margin-bottom:1rem;text-align:center}.lobby-pin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;width:100%}.lobby-pin-cell{position:relative;display:flex;flex-direction:column;align-items:center}.lobby-pin-input{width:100%;height:58px;text-align:center;font-size:1.65rem;font-weight:900;font-family:var(--font-mono);background:var(--bg-app);color:var(--fg-main);border:2px solid var(--border-muted);border-radius:0;outline:none;caret-color:transparent;transition:all .2s cubic-bezier(.16,1,.3,1)}.lobby-pin-input::placeholder{color:var(--border-muted);font-weight:300;font-size:1.3rem}.lobby-pin-input:focus{border-color:var(--fg-main);background:var(--bg-surface);box-shadow:inset 0 -3px 0 0 var(--fg-main)}.lobby-pin-cell.filled .lobby-pin-input{background:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main);transform:scale(1.02)}.lobby-pin-underline{width:60%;height:3px;background:var(--border-muted);margin-top:5px;transition:all .2s cubic-bezier(.16,1,.3,1);border-radius:2px}.lobby-pin-cell.filled .lobby-pin-underline{width:80%;background:var(--fg-main)}.lobby-name-input{width:100%;height:58px;padding:0 1rem;font-family:var(--font-sans);font-size:1.1rem;font-weight:700;letter-spacing:.05em;text-align:center;background:var(--bg-app);color:var(--fg-main);border:2px solid var(--border-muted);border-radius:0;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.lobby-name-input::placeholder{color:var(--border-muted);font-weight:400}.lobby-name-input:focus{border-color:var(--fg-main);box-shadow:inset 0 -3px 0 0 var(--fg-main)}.lobby-caption{font-family:var(--font-mono);font-size:.65rem;font-weight:500;color:var(--fg-muted);margin-top:.85rem;letter-spacing:.02em;opacity:.7;text-align:center}.lobby-submit{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;height:54px;font-family:var(--font-mono);font-size:.82rem;font-weight:800;letter-spacing:.14em;cursor:pointer;background:var(--bg-subtle);color:var(--fg-muted);border:2px solid var(--border-muted);border-radius:0;outline:none;user-select:none;transition:all .25s cubic-bezier(.16,1,.3,1)}.lobby-submit:disabled{opacity:.5;cursor:not-allowed}.lobby-submit.ready{background:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main);box-shadow:0 4px color-mix(in srgb,var(--fg-main) 30%,transparent)}.lobby-submit.ready:hover{box-shadow:0 2px color-mix(in srgb,var(--fg-main) 30%,transparent);transform:translateY(2px)}.lobby-submit.ready:active{box-shadow:none;transform:translateY(4px)}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.blink{animation:blink-cursor .8s step-end infinite}.lobby-loading{letter-spacing:.1em}.lobby-footer{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.7rem 1rem;border-top:1.5px dashed var(--border-muted);font-family:var(--font-mono);font-size:.58rem;font-weight:700;letter-spacing:.14em;color:var(--fg-muted);text-transform:uppercase;opacity:.65}.lobby-footer-sep{display:block;width:3px;height:3px;border-radius:50%;background:var(--fg-muted);opacity:.5}.room-layout-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--bg-app)}.chatroom-main-area{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-app)}.chatroom-container,.chatroom-wrapper{display:flex;flex-direction:column;height:100%;max-height:100%;width:100%;background-color:var(--bg-app);border:none;position:relative;overflow:hidden;box-sizing:border-box}.chatroom-header{display:flex;align-items:center;justify-content:flex-start;padding:.5rem 1rem 0;background-color:transparent;border-bottom:none!important;flex-shrink:0;height:auto;min-height:0;position:relative;z-index:10}.chatroom-header.sidebar-is-open{display:none!important}@media (max-width: 768px){.chatroom-header.sidebar-is-open{display:flex!important}}.chatroom-header-left{display:flex;align-items:center}.chatroom-header-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--border-muted);border-radius:2px;cursor:pointer;transition:all .15s ease}.chatroom-header-btn:hover{border-color:var(--fg-main);background-color:var(--bg-subtle)}.desktop-sidebar-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:var(--bg-surface);color:var(--fg-muted);border:1.5px solid var(--border-muted);border-radius:6px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.desktop-sidebar-toggle-btn:hover{border-color:var(--fg-main);color:var(--fg-main);background-color:var(--bg-subtle);transform:scale(1.05);box-shadow:0 2px 8px #00000014}.mobile-only-btn{display:none}@media (max-width: 768px){.desktop-sidebar-toggle-btn{display:none!important}.mobile-only-btn{display:inline-flex!important}}.chatroom-messages-container{flex:1 1 0%;min-height:0;overflow-y:auto;overflow-x:hidden;padding:1.25rem 1rem .5rem;display:flex;flex-direction:column;align-items:center;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;transform:translateZ(0)}.chatroom-messages-inner{width:100%;max-width:820px;display:flex;flex-direction:column}.chatroom-messages-container::-webkit-scrollbar{width:5px}.chatroom-messages-container::-webkit-scrollbar-track{background:transparent}.chatroom-messages-container::-webkit-scrollbar-thumb{background:var(--border-muted);border-radius:2px}.chatroom-messages-container::-webkit-scrollbar-thumb:hover{background:var(--fg-main)}.chatroom-welcome-card{width:100%;margin:.5rem 0 1.5rem;padding:1.15rem 1.25rem;background-color:var(--bg-surface);border:2px solid var(--fg-main);box-shadow:3px 3px 0 var(--fg-main);border-radius:2px}.chatroom-welcome-header{display:flex;align-items:center;gap:.6rem;border-bottom:1.5px solid var(--border-muted);padding-bottom:.5rem;margin-bottom:.65rem}.chatroom-welcome-shield{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background-color:var(--fg-main);color:var(--bg-app);border-radius:2px;flex-shrink:0}.chatroom-welcome-title{font-family:var(--font-mono);font-size:.76rem;font-weight:900;letter-spacing:.08em;color:var(--fg-main)}.chatroom-welcome-desc{font-size:.82rem;color:var(--fg-muted);line-height:1.5;margin-bottom:.75rem;font-family:var(--font-sans)}.chatroom-welcome-tags{display:flex;flex-wrap:wrap;gap:.45rem}.chatroom-welcome-tag{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.65rem;font-weight:700;background-color:var(--bg-subtle);color:var(--fg-main);padding:.18rem .45rem;border:1px solid var(--border-muted);border-radius:2px}.chatroom-sys-msg{display:flex;justify-content:center;margin:.75rem 0 .45rem;user-select:none;width:100%;content-visibility:auto}.chatroom-sys-bubble{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.54rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-muted);background-color:var(--bg-subtle);border:1px solid var(--border-muted);padding:.28rem .65rem;border-radius:6px;box-shadow:0 1px 2px #00000005;text-align:center;white-space:normal;word-break:break-word;max-width:96%;box-sizing:border-box;transition:all .2s ease;line-height:1.35}.chatroom-sys-bubble.is-room-init{background-color:var(--bg-subtle);border:1px solid var(--border-muted);color:var(--fg-muted);font-weight:700;letter-spacing:.05em;border-radius:6px;white-space:normal}.chatroom-msg-row{display:flex;flex-direction:column;width:100%;content-visibility:auto;contain-intrinsic-size:auto 64px}.msg-row-me{align-items:flex-end}.msg-row-other{align-items:flex-start}.chatroom-sender-info{display:flex;align-items:center;gap:.45rem;margin-bottom:.25rem;font-family:var(--font-mono);font-size:.72rem;color:var(--fg-muted)}.chatroom-sender-name{font-weight:800;color:var(--fg-main);letter-spacing:.02em}.chatroom-msg-time{font-size:.65rem;opacity:.55;font-weight:500}.chatroom-bubble{max-width:78%;padding:.65rem .9rem;font-size:.92rem;line-height:1.5;word-break:break-word;position:relative;border-radius:2px;box-shadow:1.5px 1.5px 0 var(--fg-main)}.bubble-me{background-color:var(--fg-main);color:var(--bg-app);border:1.5px solid var(--fg-main)}.bubble-other{background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--border-muted)}.chatroom-bubble.bubble-code-only,.chatroom-bubble:has(.e-code-container){background:transparent!important;background-color:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;margin:.15rem 0!important;max-width:88%!important;width:auto!important}.chatroom-bubble.bubble-code-only .e-code-container,.chatroom-bubble:has(.e-code-container) .e-code-container{margin:0!important;min-width:240px;max-width:100%}.chatroom-scroll-btn{position:absolute;bottom:120px;left:50%;transform:translate(-50%);width:34px;height:34px;display:flex;align-items:center;justify-content:center;background-color:var(--fg-main);color:var(--bg-app);border:2px solid var(--fg-main);cursor:pointer;box-shadow:2px 2px 0 var(--fg-main);transition:all .2s ease;z-index:5;border-radius:2px}.chatroom-scroll-btn:hover{transform:translate(-50%) translateY(-2px)}.chatroom-bottom-section{width:100%;max-width:820px;margin:0 auto;padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}.chatroom-status-bar{display:flex;align-items:center;justify-content:space-between;padding:.15rem .35rem;min-height:20px;user-select:none}.chatroom-status-text{display:flex;align-items:center;font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--fg-muted);letter-spacing:.02em}.chatroom-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background-color:#10b981;box-shadow:0 0 6px #10b98199;margin-right:.35rem}.chatroom-typing-indicator{display:flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--fg-main);letter-spacing:.02em}.typing-dots{display:flex;align-items:center;gap:3px}.typing-dot{width:4px;height:4px;background-color:var(--fg-main);border-radius:50%;animation:typing-bounce 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chatroom-ephemeral-tag{display:flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.6rem;font-weight:800;color:var(--fg-muted);letter-spacing:.08em}.emoji-picker-popover-wrapper{position:relative;width:100%;z-index:60}.emoji-picker-backdrop{position:fixed;inset:0;z-index:55;background:transparent}.human-emoji-picker{width:350px;height:380px;background-color:var(--bg-surface);border:1px solid var(--border-muted);box-shadow:0 16px 36px -4px #00000029,0 4px 12px -2px #00000014;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;position:absolute;bottom:calc(100% + 12px);left:0;z-index:60;animation:human-emoji-appear .15s cubic-bezier(.16,1,.3,1)}@keyframes human-emoji-appear{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.human-emoji-search-row{display:flex;align-items:center;width:100%;padding:10px 10px 8px;background:var(--bg-surface);box-sizing:border-box}.human-emoji-search-box{display:flex;align-items:center;gap:8px;width:100%;height:34px;background:var(--bg-subtle);border-radius:8px;padding:0 10px;box-sizing:border-box;transition:background-color .15s ease,box-shadow .15s ease}.human-emoji-search-box:focus-within{background:var(--bg-surface);box-shadow:0 0 0 1.5px var(--fg-main)}.human-emoji-search-icon{color:var(--fg-muted);flex-shrink:0;opacity:.8}.human-emoji-search-input{flex:1;border:none;background:transparent;outline:none;font-size:.86rem;font-family:var(--font-sans);color:var(--fg-main);min-width:0}.human-emoji-search-input::placeholder{color:var(--fg-muted);font-size:.84rem}.human-emoji-search-clear{border:none;background:none;color:var(--fg-muted);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:50%;transition:color .1s ease}.human-emoji-search-clear:hover{color:var(--fg-main)}.human-emoji-scroll-body{flex:1;overflow-y:auto;padding:0 10px 6px;scrollbar-width:thin;display:flex;flex-direction:column}.human-emoji-scroll-body::-webkit-scrollbar{width:5px}.human-emoji-scroll-body::-webkit-scrollbar-thumb{background:var(--border-muted);border-radius:4px}.human-emoji-section{margin-bottom:12px}.human-emoji-section-header{position:sticky;top:0;z-index:2;padding:6px 4px 4px;font-size:.72rem;font-weight:700;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-surface);user-select:none}.human-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.human-emoji-btn{aspect-ratio:1;width:100%;border:none;background:transparent;border-radius:8px;font-size:1.35rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;user-select:none;transition:transform .1s cubic-bezier(.16,1,.3,1),background-color .1s ease}.human-emoji-btn:hover{background-color:var(--bg-subtle);transform:scale(1.18);z-index:1}.human-emoji-btn:active{transform:scale(.95)}.human-emoji-empty{padding:40px 10px;text-align:center;color:var(--fg-muted);font-size:.84rem;font-weight:500}.human-emoji-category-bar{display:flex;align-items:center;justify-content:space-around;padding:4px 6px;border-top:1px solid var(--border-muted);background:var(--bg-surface);user-select:none;flex-shrink:0}.human-emoji-nav-item{flex:1;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:var(--fg-muted);transition:all .12s ease}.human-emoji-nav-item:hover{background:var(--bg-subtle);transform:translateY(-1px)}.human-emoji-nav-item.active{background:var(--bg-subtle);box-shadow:inset 0 -2px 0 var(--fg-main)}@media (max-width: 480px){.human-emoji-picker{width:100%;max-width:100%;left:0;right:0;bottom:calc(100% + 8px);border-radius:12px 12px 0 0}.human-emoji-grid{grid-template-columns:repeat(7,1fr)}}.e-tray-container{display:flex;flex-direction:column;gap:.5rem;padding:.65rem .85rem;background-color:var(--bg-surface);border:2px solid var(--fg-main);border-radius:2px;box-shadow:3px 3px 0 var(--fg-main);flex-shrink:0;max-height:220px;animation:traySlideUp .18s cubic-bezier(.16,1,.3,1)}@keyframes traySlideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.e-tray-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.45rem;border-bottom:1.5px solid var(--border-muted);user-select:none}.e-tray-header-left{display:flex;align-items:center;gap:.5rem}.e-tray-title{font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--fg-main)}.e-tray-count-pill{display:inline-flex;align-items:center;justify-content:center;padding:.1rem .45rem;background-color:var(--fg-main);color:var(--bg-app);font-size:.62rem;font-weight:900;border-radius:2px}.e-tray-limit-badge{display:inline-flex;align-items:center;padding:.12rem .45rem;background-color:var(--bg-app);border:1px solid var(--fg-main);border-radius:2px;color:var(--fg-main);font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;user-select:none}.e-tray-header-actions{display:flex;align-items:center;gap:.4rem}.e-tray-btn{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .75rem;font-family:var(--font-mono);font-size:.68rem;font-weight:800;letter-spacing:.04em;border-radius:2px;cursor:pointer;user-select:none;transition:all .15s ease;line-height:1.2}.e-tray-add-btn{background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--fg-main);box-shadow:2px 2px 0 var(--fg-main)}.e-tray-add-btn:hover{background-color:var(--fg-main);color:var(--bg-app);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--fg-main)}.e-tray-add-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--fg-main)}.e-tray-clear-btn{background-color:var(--bg-app);color:var(--fg-main);border:1.5px solid var(--border-muted)}.e-tray-clear-btn:hover{border-color:var(--fg-main);background-color:var(--fg-main);color:var(--bg-app)}.e-tray-clear-btn:active{transform:translate(1px,1px)}.e-tray-card-list{display:flex;flex-wrap:wrap;gap:.45rem;overflow-y:auto;max-height:145px;padding:.1rem .1rem .2rem 0}.e-att-card{display:flex;align-items:center;gap:.55rem;padding:.35rem .6rem;background-color:var(--bg-app);border:1.5px solid var(--fg-main);border-radius:2px;box-shadow:2px 2px 0 var(--fg-main);transition:all .15s ease;max-width:250px;min-width:170px;flex:1 1 auto}.e-att-card:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--fg-main)}.e-att-media{flex-shrink:0;display:flex;align-items:center;justify-content:center}.e-att-thumb{width:28px;height:28px;border-radius:2px;object-fit:cover;border:1px solid var(--fg-main)}.e-att-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .45rem;border-radius:2px;font-size:.58rem;font-weight:900;letter-spacing:.05em;background-color:var(--fg-main);color:var(--bg-app);border:1px solid var(--fg-main)}.e-att-details{display:flex;flex-direction:column;gap:.1rem;overflow:hidden;flex:1}.e-att-filename{font-size:.73rem;font-weight:700;color:var(--fg-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.e-att-size-tag{color:var(--fg-muted);font-size:.62rem;font-weight:600}.e-att-del-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--bg-surface);border:1px solid var(--fg-main);border-radius:2px;color:var(--fg-main);font-size:.68rem;font-weight:700;cursor:pointer;transition:all .15s ease;flex-shrink:0;padding:0}.e-att-del-btn:hover{background-color:var(--fg-main);color:var(--bg-app)}.chatroom-upload-telemetry{display:flex;flex-direction:column;gap:5px;padding:6px 10px;background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:6px;margin-bottom:6px;box-shadow:0 1px 3px #0000000a;animation:telemetrySlideIn .15s ease-out;user-select:none}@keyframes telemetrySlideIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.upload-telemetry-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.62rem;line-height:1.2}.upload-telemetry-left{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.upload-status-chip{display:inline-flex;align-items:center;padding:1.5px 5px;background-color:var(--fg-main);color:var(--bg-surface);border-radius:3px;font-size:.54rem;font-weight:800;letter-spacing:.08em;flex-shrink:0;line-height:1.1}.upload-telemetry-filename{font-weight:600;color:var(--fg-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-telemetry-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.upload-telemetry-idx{font-size:.58rem;color:var(--fg-subtle);font-weight:600}.upload-telemetry-pct{font-weight:800;font-size:.62rem;color:var(--fg-main);min-width:28px;text-align:right}.upload-telemetry-track{width:100%;height:2.5px;background-color:var(--border-muted);border-radius:2px;overflow:hidden}.upload-telemetry-fill{height:100%;background-color:var(--fg-main);border-radius:2px;transition:width .1s ease-out}.chatroom-attachment-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem .85rem;background-color:var(--bg-subtle);border:1.5px solid var(--border-muted);border-radius:2px;flex-shrink:0}.chatroom-attachment-info{display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.74rem;font-weight:600;color:var(--fg-main);overflow:hidden}.chatroom-attachment-thumb{width:28px;height:28px;border-radius:2px;object-fit:cover;border:1px solid var(--border-muted);flex-shrink:0}.chatroom-attachment-type-tag{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .35rem;background-color:var(--fg-main);color:var(--bg-app);font-size:.6rem;font-weight:800;letter-spacing:.05em;border-radius:2px;flex-shrink:0}.chatroom-attachment-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.chatroom-attachment-size{font-size:.65rem;color:var(--fg-muted);flex-shrink:0}.chatroom-attachment-remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:1.5px solid var(--border-muted);color:var(--fg-muted);cursor:pointer;border-radius:2px;transition:all .15s ease;flex-shrink:0}.chatroom-attachment-remove:hover{border-color:var(--fg-main);background-color:var(--fg-main);color:var(--bg-app)}.chatroom-input-bar{display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem .35rem .65rem;background-color:var(--bg-surface);border:2px solid var(--fg-main);box-shadow:2.5px 2.5px 0 var(--fg-main);border-radius:4px;flex-shrink:0;transition:box-shadow .15s ease,border-color .15s ease}.chatroom-input-bar:focus-within{box-shadow:3.5px 3.5px 0 var(--fg-main)}.chatroom-action-group{display:flex;align-items:center;gap:.15rem;flex-shrink:0}.chatroom-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1.5px solid transparent;color:var(--fg-muted);cursor:pointer;transition:all .12s ease;border-radius:2px}.chatroom-action-btn:hover{color:var(--fg-main);background-color:var(--bg-app)}.chatroom-action-btn.active{color:var(--fg-main);background-color:var(--bg-subtle);border-color:var(--border-muted)}.chatroom-text-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-sans);font-size:.92rem;font-weight:500;color:var(--fg-main);padding:.35rem;resize:none;min-height:24px;max-height:120px;line-height:1.45;overflow-y:auto}.chatroom-text-input::placeholder{color:var(--fg-muted);opacity:.6}.chatroom-send-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background-color:var(--fg-main);color:var(--bg-app);border:none;cursor:pointer;transition:all .15s ease;border-radius:2px;flex-shrink:0}.chatroom-send-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.chatroom-send-btn:disabled{opacity:.3;cursor:not-allowed}.timer-widget{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border:1.5px solid var(--border-muted);background-color:var(--bg-subtle);color:var(--fg-main);font-family:var(--font-mono);font-weight:700;font-size:.78rem;letter-spacing:.05em;pointer-events:none;user-select:none;transition:all .2s ease;flex-shrink:0}.timer-widget .timer-icon{flex-shrink:0;opacity:.6}.timer-widget .timer-label{font-size:.6rem;font-weight:600;opacity:.5;letter-spacing:.08em}.timer-widget .timer-value{font-weight:800;letter-spacing:.05em}.timer-widget.low-time{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.timer-widget.low-time .timer-label,.timer-widget.low-time .timer-icon{opacity:.7}.timer-widget.critical{animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.6}}.desktop-sidebar{display:flex;flex-direction:column;height:100%;width:310px;min-width:310px;max-width:310px;background-color:var(--bg-surface);border-right:1.5px solid var(--border-muted);box-sizing:border-box;overflow:hidden;position:relative;transition:width .28s cubic-bezier(.4,0,.2,1),min-width .28s cubic-bezier(.4,0,.2,1),max-width .28s cubic-bezier(.4,0,.2,1),opacity .2s ease,border-color .2s ease;will-change:width,min-width,max-width;z-index:40}.desktop-sidebar.is-closed{width:0!important;min-width:0!important;max-width:0!important;border-right-color:transparent!important;opacity:0;pointer-events:none}@media (max-width: 768px){.desktop-sidebar{display:none!important}}.sb2-container{display:flex;flex-direction:column;height:100%;width:310px;min-width:310px;background-color:var(--bg-surface);box-sizing:border-box;overflow:hidden;position:relative}.sidebar-mobile-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(4px);z-index:999;display:flex;justify-content:flex-start;animation:sb2FadeIn .2s ease-out forwards}.sidebar-mobile-overlay.is-closing{animation:sb2FadeOut .2s ease-in forwards;pointer-events:none}.sidebar-mobile-drawer{width:85%;max-width:340px;height:100%;background-color:var(--bg-surface);box-shadow:10px 0 30px #00000059;animation:sb2SlideIn .22s cubic-bezier(.16,1,.3,1) forwards;display:flex;flex-direction:column;overflow:hidden;position:relative}.sidebar-mobile-drawer.is-closing{animation:sb2SlideOut .2s cubic-bezier(.16,1,.3,1) forwards}.sidebar-mobile-drawer .sb2-container{border-right:2.5px solid var(--fg-main)}@keyframes sb2SlideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sb2SlideOut{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes sb2FadeIn{0%{opacity:0}to{opacity:1}}@keyframes sb2FadeOut{0%{opacity:1}to{opacity:0}}.sb2-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem .85rem;flex-shrink:0;background-color:var(--bg-surface);border-bottom:1.5px solid var(--border-muted);box-sizing:border-box}.sb2-logo-lockup{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.sb2-e2ee-tag{display:inline-flex;align-items:center;justify-content:center;gap:3.5px;font-size:.38rem;font-weight:700;letter-spacing:.14em;color:var(--fg-muted, #777777);text-transform:uppercase;user-select:none;line-height:1;white-space:nowrap;text-align:center;width:100%;margin-right:-.14em;margin-top:1px}.sb2-direct-logo{font-family:"SK Quadratica","SK Quadratica Trial","Space Grotesk",var(--font-sans, sans-serif);font-size:1.3rem;font-weight:400;font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-main);line-height:1;user-select:none;cursor:default;transition:opacity .2s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision}.sb2-direct-logo:hover{opacity:.85}.sb2-close-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--bg-app);border:1.2px solid var(--border-muted);color:var(--fg-muted);border-radius:5px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);flex-shrink:0}.sb2-close-btn:hover{border-color:var(--fg-main);color:var(--fg-main);background-color:var(--bg-surface);transform:scale(1.1);box-shadow:0 2px 6px #00000014}.sb2-users-strip{display:flex;align-items:center;justify-content:space-between;padding:.45rem .7rem;flex-shrink:0;border-bottom:1px solid var(--border-muted);background:var(--bg-app)}.sb2-users-row{display:flex;align-items:center}.sb2-user-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.52rem;font-weight:900;color:#fff;letter-spacing:.02em;border:2px solid var(--bg-surface);margin-left:-6px;position:relative;z-index:1;cursor:default;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease;animation:sb2AvatarIn .3s cubic-bezier(.16,1,.3,1) backwards;text-shadow:0 1px 2px rgba(0,0,0,.3)}.sb2-user-avatar:first-child{margin-left:0}.sb2-user-avatar:hover{transform:translateY(-2px) scale(1.12);box-shadow:0 3px 8px #00000026;z-index:10}.sb2-admin-avatar-wrap{margin-left:-6px;position:relative;z-index:2;cursor:default;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease;animation:sb2AvatarIn .3s cubic-bezier(.16,1,.3,1) backwards;display:inline-flex;align-items:center;justify-content:center}.sb2-admin-avatar-wrap:first-child{margin-left:0}.sb2-admin-avatar-wrap:hover{transform:translateY(-2px) scale(1.12);z-index:10}.sb2-admin-avatar-wrap .admin-avatar-circle{border:2px solid var(--bg-surface)}.sb2-admin-avatar-wrap.is-you .admin-avatar-circle{outline:2px solid var(--fg-main);outline-offset:1px}.sb2-user-avatar.is-you{box-shadow:0 0 0 2px var(--fg-main)}.sb2-user-extra{background-color:var(--bg-subtle)!important;color:var(--fg-muted)!important;border:2px solid var(--border-muted);font-size:.5rem;text-shadow:none}@keyframes sb2AvatarIn{0%{opacity:0;transform:scale(.5) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.sb2-users-count{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.6rem;font-weight:800;color:var(--fg-muted);letter-spacing:.04em;padding:.12rem .35rem;background:var(--bg-surface);border:1px solid var(--border-muted);border-radius:999px;flex-shrink:0}.sb2-tab-bar{display:flex;align-items:center;position:relative;padding:.35rem .7rem;gap:0;flex-shrink:0;border-bottom:1px solid var(--border-muted);background:var(--bg-surface)}.sb2-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem .5rem;font-family:var(--font-mono);font-size:.62rem;font-weight:800;letter-spacing:.08em;color:var(--fg-muted);background:transparent;border:none;cursor:pointer;position:relative;z-index:2;transition:color .2s ease;border-radius:6px;user-select:none}.sb2-tab:hover{color:var(--fg-main)}.sb2-tab.is-active{color:var(--bg-app)}.sb2-tab-badge{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981b3;flex-shrink:0;animation:sb2LivePulse 2s infinite ease-in-out}.sb2-tab-indicator{position:absolute;left:.7rem;top:.35rem;bottom:.35rem;width:calc(50% - .7rem);background:var(--fg-main);border-radius:6px;z-index:1;transition:transform .28s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #0000001f}.sb2-scroll-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:0;padding:0;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-muted) transparent}.sb2-scroll-body::-webkit-scrollbar{width:4px}.sb2-scroll-body::-webkit-scrollbar-track{background:transparent}.sb2-scroll-body::-webkit-scrollbar-thumb{background:var(--border-muted);border-radius:2px}.sb2-scroll-body::-webkit-scrollbar-thumb:hover{background:var(--fg-muted)}.sb2-tab-panel{display:none;flex-direction:column;gap:.5rem;padding:.6rem .7rem;animation:sb2PanelIn .22s ease-out}.sb2-tab-panel.is-visible{display:flex}@keyframes sb2PanelIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sb2-action-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%}.sb2-action-half-btn{display:inline-flex;align-items:center;justify-content:center;gap:.42rem;height:38px;padding:0 .6rem;background:var(--bg-surface);border:1.5px solid var(--border-muted);border-radius:8px;color:var(--fg-main);cursor:pointer;user-select:none;transition:all .18s cubic-bezier(.16,1,.3,1);box-sizing:border-box;overflow:hidden;box-shadow:0 1px 3px #0000000a}.sb2-btn-text{font-family:var(--font-mono);font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb2-action-half-btn:hover{border-color:var(--fg-main);background:var(--bg-app);transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.sb2-action-half-btn:active{transform:translateY(.5px);box-shadow:none}.sb2-action-half-btn.is-copied{border-color:#10b981;background:#10b9811a;color:#10b981;box-shadow:0 0 0 1px #10b981}.sb2-btn-icon{flex-shrink:0;opacity:.85;transition:transform .2s ease,opacity .2s ease}.sb2-action-half-btn:hover .sb2-btn-icon{opacity:1;transform:scale(1.08)}.sb2-action-half-btn.is-copied .sb2-btn-icon{opacity:1;color:#10b981;animation:sb2Pop .25s cubic-bezier(.16,1,.3,1)}@keyframes sb2Pop{0%{transform:scale(.6)}60%{transform:scale(1.2)}to{transform:scale(1)}}.sb2-qr-card{display:flex;flex-direction:column;background:var(--bg-app);border:1.5px solid var(--border-muted);border-radius:10px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.sb2-qr-card:hover{border-color:var(--fg-muted)}.sb2-qr-card-body{display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:.65rem;box-sizing:border-box}.sb2-qr-frame{display:flex;align-items:center;justify-content:center;padding:.5rem;background-color:#fff;border:1.5px solid var(--border-muted);border-radius:8px;cursor:pointer;position:relative;overflow:hidden;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #0000000f}.sb2-qr-frame:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000001a;border-color:var(--fg-muted)}.sb2-qr-svg-wrapper{display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.sb2-qr-scan-line{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#10B981,transparent);opacity:0;pointer-events:none}.sb2-qr-frame:hover .sb2-qr-scan-line{opacity:1;animation:sb2LaserScan 1.6s infinite ease-in-out}@keyframes sb2LaserScan{0%{top:10%;opacity:0}50%{opacity:1}to{top:90%;opacity:0}}.sb2-qr-hover-overlay{position:absolute;inset:0;background:#000000d1;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;font-family:var(--font-mono);font-size:.58rem;font-weight:800;opacity:0;transition:opacity .18s ease;letter-spacing:.08em;border-radius:7px}.sb2-qr-frame:hover .sb2-qr-hover-overlay{opacity:1}.sb2-qr-hint{font-family:var(--font-mono);font-size:.54rem;font-weight:700;letter-spacing:.12em;color:var(--fg-muted);text-transform:uppercase;text-align:center;transition:color .2s ease}.sb2-qr-url-link{display:block;width:100%;font-family:var(--font-mono);font-size:.52rem;font-weight:600;letter-spacing:.02em;color:var(--fg-muted);text-decoration:none;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 0 1px;margin-top:1px;line-height:1.2;transition:all .15s ease;user-select:all;cursor:pointer}.sb2-qr-url-link:hover{color:var(--fg-main);text-decoration:underline;text-underline-offset:2px}.sb2-url-card{display:flex;align-items:center;width:100%;gap:8px;margin:.15rem 0 .25rem;padding:0;background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;text-decoration:none;box-sizing:border-box;cursor:pointer;user-select:none}.sb2-url-card:before,.sb2-url-card:after{content:"";flex:1;height:1px;background-color:var(--border-muted);transition:background-color .18s ease}.sb2-url-card:hover:before,.sb2-url-card:hover:after{background-color:var(--fg-muted)}.sb2-url-card:active{opacity:.65}.sb2-url-card-modal{width:100%;max-width:256px;margin:.3rem auto .5rem}.sb2-url-text{font-family:var(--font-mono);font-size:.61rem;font-weight:600;letter-spacing:.06em;color:var(--fg-muted);text-align:center;white-space:nowrap;border-bottom:none!important;padding:0;line-height:1;transition:color .18s ease}.sb2-url-card:hover .sb2-url-text{color:var(--fg-main)}.sb2-url-banner{display:flex;align-items:center;justify-content:center;width:100%;height:38px;padding:0 .75rem;background:var(--bg-surface);border:1.5px solid var(--border-muted);border-radius:8px;color:var(--fg-main);text-decoration:none;box-sizing:border-box}.sb2-qr-modal-overlay{position:fixed;inset:0;z-index:1200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;animation:einkFadeIn .15s ease}.sb2-qr-modal-card{width:100%;max-width:320px;background:var(--bg-surface);border:1.5px solid var(--fg-main);border-radius:6px;overflow:hidden;box-shadow:0 8px 32px #0000001f;animation:einkDialogPop .14s ease-out forwards}.sb2-qr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--border-muted);font-family:var(--font-mono);font-size:.76rem;font-weight:800;letter-spacing:.06em;color:var(--fg-main)}.sb2-qr-modal-title{display:flex;align-items:center;gap:.4rem}.sb2-qr-modal-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:var(--fg-muted);cursor:pointer;border-radius:3px;transition:color .12s ease}.sb2-qr-modal-close:hover{color:var(--fg-main)}.sb2-qr-modal-body{padding:1.15rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.85rem;background:var(--bg-app)}.sb2-qr-modal-frame{padding:.75rem;background:#fff;border:1.5px solid var(--border-muted);border-radius:4px}.sb2-qr-modal-room-code{display:flex;flex-direction:column;align-items:center;gap:.15rem}.sb2-qr-modal-label{font-family:var(--font-mono);font-size:.58rem;font-weight:700;letter-spacing:.12em;color:var(--fg-muted)}.sb2-qr-modal-code-val{font-size:1.15rem;font-weight:900;color:var(--fg-main);letter-spacing:.12em}.sb2-qr-modal-actions{display:flex;gap:.5rem;width:100%;padding:0 .25rem}.sb2-qr-modal-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;height:34px;font-family:var(--font-mono);font-size:.7rem;font-weight:800;background:transparent;border:1.5px solid var(--border-muted);color:var(--fg-main);cursor:pointer;transition:all .12s ease;border-radius:3px}.sb2-qr-modal-btn:hover{border-color:var(--fg-main);background:var(--bg-subtle)}.sb2-footer-links-section{margin-top:1.1rem;margin-bottom:.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.sb2-footer-icons-row{display:flex;align-items:center;justify-content:center;gap:.65rem}.sb2-footer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid var(--border-muted);background-color:var(--bg-surface);color:var(--fg-main);text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1)}.sb2-footer-icon-btn:hover{border-color:var(--fg-main);background-color:var(--bg-app);transform:translateY(-1.5px);box-shadow:0 3px 8px #00000014}.sb2-e2ee-label{font-size:.52rem;font-weight:800;letter-spacing:.12em;color:var(--fg-muted);text-transform:uppercase;user-select:none;opacity:.8;cursor:default}.sb2-bottom-dock{margin-top:auto;flex-shrink:0;display:flex;flex-direction:column;background-color:var(--bg-surface);border-top:1px solid var(--border-muted);box-sizing:border-box;position:relative;z-index:5}.sb2-timer-section{padding:.6rem .7rem .35rem;flex-shrink:0;background-color:transparent}.sb2-footer{padding:.25rem .7rem .6rem;flex-shrink:0;background-color:transparent;box-sizing:border-box}.sb2-exit-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.48rem .7rem;font-family:var(--font-mono);font-size:.66rem;font-weight:800;letter-spacing:.06em;background-color:transparent;color:var(--fg-muted);border:1.5px solid var(--border-muted);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);user-select:none;border-radius:8px}.sb2-exit-btn:hover{background-color:#ef444414;color:#ef4444;border-color:#ef444466;transform:translateY(-1px);box-shadow:0 4px 12px #ef44441a}.sb2-exit-btn:active{transform:scale(.98);box-shadow:none}.sb2-qr-modal-overlay{position:fixed;inset:0;z-index:1200;background:#000000b8;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:sb2FadeIn .2s ease}.sb2-qr-modal-card{width:100%;max-width:350px;background:var(--bg-surface);border:2.5px solid var(--fg-main);box-shadow:6px 6px 0 var(--fg-main);border-radius:6px;overflow:hidden;animation:sb2ModalScaleUp .22s cubic-bezier(.16,1,.3,1)}@keyframes sb2ModalScaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.sb2-qr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:2px solid var(--border-muted);background:var(--bg-app);font-family:var(--font-mono);font-size:.78rem;font-weight:800;letter-spacing:.06em;color:var(--fg-main)}.sb2-qr-modal-title{display:flex;align-items:center;gap:.45rem}.sb2-qr-modal-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:1px solid var(--border-muted);color:var(--fg-muted);cursor:pointer;border-radius:4px;transition:all .15s ease}.sb2-qr-modal-close:hover{border-color:var(--fg-main);color:var(--fg-main)}.sb2-qr-modal-body{padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.sb2-qr-modal-frame{padding:.85rem;background:#fff;border:2px solid var(--fg-main);box-shadow:3px 3px 0 var(--fg-main);border-radius:4px}.sb2-qr-modal-room-code{display:flex;flex-direction:column;align-items:center;gap:.2rem}.sb2-qr-modal-label{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--fg-muted)}.sb2-qr-modal-code-val{font-size:1.25rem;font-weight:900;color:var(--fg-main);letter-spacing:.1em}.sb2-qr-modal-actions{display:flex;gap:.6rem;width:100%}.sb2-qr-modal-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem;font-family:var(--font-mono);font-size:.72rem;font-weight:800;background:var(--bg-app);border:1.5px solid var(--fg-main);color:var(--fg-main);cursor:pointer;transition:all .15s ease;border-radius:4px}.sb2-qr-modal-btn:hover{background:var(--fg-main);color:var(--bg-app)}.game-soon-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:3rem 1.5rem;background-color:var(--bg-surface);border:1.5px dotted var(--border-muted);border-radius:12px;box-sizing:border-box;position:relative;overflow:hidden;box-shadow:0 2px 10px #0000000a;transition:all .25s ease}.game-soon-container:hover{border-color:var(--fg-muted);box-shadow:0 4px 16px #00000014}.game-soon-icon-box{display:flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:16px;background-color:var(--bg-app);border:1.5px dotted var(--border-muted);color:var(--fg-main);box-shadow:0 4px 14px #0000000d;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s ease,box-shadow .25s ease}.game-soon-container:hover .game-soon-icon-box{transform:translateY(-2px) scale(1.04);border-color:var(--fg-main);box-shadow:0 6px 20px #00000017}.game-soon-pill{display:inline-flex;align-items:center;justify-content:center;padding:.32rem .8rem;border-radius:999px;background:var(--bg-app);border:1.2px dotted var(--border-muted);color:var(--fg-muted);font-size:.66rem;font-weight:800;letter-spacing:.1em;line-height:1;user-select:none;transition:all .2s ease}.game-soon-container:hover .game-soon-pill{border-color:var(--fg-main);color:var(--fg-main)}.game-soon-sub{font-family:var(--font-mono);font-size:.58rem;font-weight:700;color:var(--fg-muted);letter-spacing:.08em;text-transform:uppercase;text-align:center;margin:-.3rem 0 0;opacity:.75;transition:color .2s ease,opacity .2s ease}.game-soon-container:hover .game-soon-sub{color:var(--fg-main);opacity:1}.ttt-arena{display:flex;flex-direction:column;gap:.55rem;background:var(--bg-app);border:1.5px solid var(--border-muted);border-radius:10px;padding:.65rem;box-sizing:border-box;overflow:hidden}.ttt-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--border-muted)}.ttt-header-title{font-size:.64rem;font-weight:900;color:var(--fg-main);letter-spacing:.06em}.ttt-badge{font-size:.52rem;font-weight:800;color:#10b981;background:#10b98114;border:1px solid rgba(16,185,129,.3);padding:.08rem .35rem;border-radius:4px;letter-spacing:.04em}.ttt-forfeit-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem;background:var(--bg-surface);border:1px solid var(--border-muted);color:var(--fg-muted);font-family:var(--font-mono);font-size:.52rem;font-weight:800;border-radius:4px;cursor:pointer;transition:all .15s ease}.ttt-forfeit-btn:hover{border-color:#ef4444;color:#ef4444}.ttt-matchup{display:flex;align-items:center;gap:.3rem;width:100%}.ttt-player-box{flex:1;display:flex;align-items:center;gap:.35rem;padding:.35rem .45rem;background:var(--bg-surface);border:1.5px solid var(--border-muted);border-radius:7px;min-width:0;transition:all .2s ease}.ttt-player-box.is-active-turn{border-color:var(--fg-main);box-shadow:0 0 10px #0000000f}.ttt-p-symbol{font-family:var(--font-mono);font-weight:900;font-size:.9rem;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:var(--bg-app);border:1px solid var(--border-muted);flex-shrink:0;line-height:1}.x-color{color:#3b82f6}.o-color{color:#f59e0b}.ttt-p-meta{display:flex;flex-direction:column;gap:.08rem;min-width:0;flex:1;overflow:hidden}.ttt-p-name{font-size:.6rem;font-weight:800;color:var(--fg-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ttt-p-sub{display:flex;align-items:center;justify-content:space-between;gap:.2rem}.ttt-p-score{font-size:.5rem;font-weight:800;color:var(--fg-muted)}.ttt-pips{display:flex;gap:3px;align-items:center}.ttt-pip{width:4.5px;height:4.5px;border-radius:50%;background:var(--border-muted);transition:all .2s ease}.ttt-pip.x-fill{background:#3b82f6}.ttt-pip.o-fill{background:#f59e0b}.ttt-pip.is-oldest{background:#ef4444!important;animation:tttPipPulse 1s infinite alternate}@keyframes tttPipPulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.4);opacity:.6}}.ttt-vs-text{font-size:.5rem;font-weight:900;color:var(--fg-muted);opacity:.5;flex-shrink:0}.ttt-turn-bar{display:flex;align-items:center;justify-content:center;padding:.3rem .5rem;border-radius:5px;font-size:.56rem;font-weight:800;letter-spacing:.05em;background:var(--bg-surface);color:var(--fg-muted);border:1px solid var(--border-muted);text-align:center}.ttt-turn-bar.is-mine{background:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.ttt-turn-bar.is-won{background:#10b981;color:#fff;border-color:#10b981}.ttt-board-container{display:flex;justify-content:center;width:100%;padding:.15rem 0}.ttt-board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:100%;max-width:220px;aspect-ratio:1 / 1}.ttt-board-grid.is-idle-preview{max-width:120px;margin:0 auto;gap:4px}.ttt-cell{background:var(--bg-surface);border:1.5px solid var(--border-muted);border-radius:7px;display:flex;align-items:center;justify-content:center;cursor:default;position:relative;padding:0;outline:none;transition:all .14s ease;user-select:none}.ttt-cell.can-click{cursor:pointer}.ttt-cell.can-click:hover{border-color:var(--fg-main);background:var(--bg-subtle);transform:translateY(-1px)}.ttt-cell.can-click:hover .ttt-ghost{opacity:.3;transform:scale(1)}.ttt-cell.is-oldest-cell{border:1.5px dashed rgba(239,68,68,.6)!important;background:#ef44440a!important}.ttt-cell.is-targeted-cell{border:2px solid #EF4444!important;background:#ef444426!important}.ttt-cell.is-win{border-color:#10b981!important;background:#10b9811f!important}.ttt-cell.is-preview-cell{border-radius:5px}.ttt-mark{font-family:var(--font-mono);font-weight:900;font-size:1.5rem;line-height:1}.ttt-board-grid.is-idle-preview .ttt-mark{font-size:1rem}.ttt-ghost{font-family:var(--font-mono);font-weight:900;font-size:1.5rem;opacity:0;transform:scale(.7);transition:all .12s ease;pointer-events:none}.ttt-actions-row{display:flex;gap:.35rem;width:100%}.ttt-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.45rem .6rem;border-radius:6px;font-family:var(--font-mono);font-size:.6rem;font-weight:900;letter-spacing:.05em;cursor:pointer;transition:all .14s ease;border:none;flex:1}.ttt-btn.ttt-btn-primary{background:var(--fg-main);color:var(--bg-app)}.ttt-btn.ttt-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.ttt-btn.ttt-btn-ghost{background:var(--bg-surface);border:1px solid var(--border-muted);color:var(--fg-main)}.ttt-btn.ttt-btn-ghost:hover{border-color:var(--fg-main);transform:translateY(-1px)}.ttt-btn.ttt-btn-accept{background:#10b981;color:#fff}.ttt-btn.ttt-btn-accept:hover{background:#059669;transform:translateY(-1px)}.ttt-btn.full-width{width:100%}.ttt-idle-body,.ttt-invite-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;padding:.25rem 0;width:100%}.ttt-radar{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin:.1rem 0}.ttt-radar-ring{position:absolute;border:1.5px solid var(--fg-main);border-radius:50%;opacity:0;animation:tttRadarAnim 2.2s infinite cubic-bezier(.1,.8,.3,1)}.ttt-radar-ring.r1{animation-delay:0s}.ttt-radar-ring.r2{animation-delay:1.1s}@keyframes tttRadarAnim{0%{width:8px;height:8px;opacity:.8}to{width:42px;height:42px;opacity:0}}.ttt-radar-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-main);z-index:2}.ttt-invite-text{font-size:.6rem;font-weight:800;color:var(--fg-main);letter-spacing:.04em}.chatroom-ttt-challenge-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;background:var(--bg-surface);border:1.5px solid var(--fg-main);border-radius:8px;margin:.4rem 0 .8rem}.chatroom-ttt-card-left{display:flex;align-items:center;gap:.5rem;min-width:0}.chatroom-ttt-icon-wrap{width:28px;height:28px;border-radius:5px;background:var(--fg-main);color:var(--bg-app);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chatroom-ttt-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.chatroom-ttt-card-title{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.66rem;font-weight:900;color:var(--fg-main)}.chatroom-ttt-live-tag{font-size:.44rem;font-weight:800;padding:.06rem .25rem;background:#10b981;color:#fff;border-radius:3px}.chatroom-ttt-card-sub{font-size:.6rem;color:var(--fg-muted)}.chatroom-ttt-card-right{display:flex;align-items:center;flex-shrink:0}.chatroom-ttt-accept-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .65rem;background:#10b981;color:#fff;border:1.5px solid #10B981;border-radius:5px;font-family:var(--font-mono);font-size:.58rem;font-weight:900;cursor:pointer;transition:all .14s ease}.chatroom-ttt-accept-btn:hover{background:#059669}.chatroom-ttt-waiting-badge{display:inline-flex;align-items:center;padding:.28rem .5rem;background:var(--bg-surface);border:1px solid var(--border-muted);color:var(--fg-muted);font-size:.52rem;font-weight:800;border-radius:4px}.smooth-timer-container{display:flex;flex-direction:column;gap:.45rem;width:100%}.smooth-timer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.25rem;border-bottom:1px dashed var(--border-muted)}.smooth-timer-title-group{display:flex;align-items:center;gap:.4rem}.smooth-timer-destruct-icon{color:var(--fg-main);flex-shrink:0}.smooth-timer-container.low-time .smooth-timer-destruct-icon{color:#f59e0b}.smooth-timer-container.critical .smooth-timer-destruct-icon{color:#ef4444;animation:timer-icon-flame 1s infinite ease-in-out}@keyframes timer-icon-flame{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.smooth-timer-title{font-family:var(--font-mono);font-size:.65rem;font-weight:800;letter-spacing:.08em;color:var(--fg-main);text-transform:uppercase}.smooth-timer-total-sec{font-size:.6rem;font-weight:700;color:var(--fg-muted);letter-spacing:.04em;background:var(--bg-surface);padding:.1rem .35rem;border:1px solid var(--border-muted);border-radius:2px}.smooth-timer-display{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.2rem 0}.smooth-timer-block{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-surface);border:1.5px solid var(--border-muted);border-radius:3px;min-width:44px;padding:.3rem .3rem .2rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.smooth-timer-block:hover{border-color:var(--fg-main);transform:translateY(-1px)}.smooth-timer-num{font-size:1.1rem;font-weight:900;color:var(--fg-main);letter-spacing:.06em;line-height:1;font-variant-numeric:tabular-nums}.smooth-timer-unit{font-family:var(--font-mono);font-size:.46rem;font-weight:800;color:var(--fg-muted);letter-spacing:.08em;margin-top:.2rem}.smooth-timer-colon{font-family:var(--font-mono);font-size:1.05rem;font-weight:900;color:var(--fg-muted);line-height:1;animation:timer-colon-blink 1s infinite steps(1,start)}@keyframes timer-colon-blink{0%,to{opacity:1}50%{opacity:.25}}.smooth-timer-sec-block{border-color:var(--fg-main);background:var(--bg-surface)}.smooth-timer-sec-block.ticking .smooth-timer-sec-num{animation:smooth-sec-tick .26s cubic-bezier(.16,1,.3,1)}@keyframes smooth-sec-tick{0%{transform:translateY(-3px);opacity:.5}to{transform:translateY(0);opacity:1}}.smooth-timer-bar-track{width:100%;height:3px;background:var(--bg-surface);border-radius:2px;overflow:hidden;position:relative;margin-top:.15rem;border:1px solid var(--border-muted)}.smooth-timer-bar-fill{height:100%;background:var(--fg-main);border-radius:2px;transition:width 1s linear}.smooth-timer-container.low-time .smooth-timer-bar-fill{background:#f59e0b}.smooth-timer-container.critical .smooth-timer-bar-fill{background:#ef4444}.smooth-timer-container.critical{animation:timer-critical-pulse 1s infinite ease-in-out}@keyframes timer-critical-pulse{0%,to{transform:scale(1)}50%{transform:scale(.99)}}.e-code-container,.e-code-card{margin:.55rem 0;border:1.5px solid var(--fg-main, #18181B);background-color:#09090b;color:#fafafa;font-family:var(--font-mono);overflow:hidden;max-width:100%;border-radius:0;box-shadow:0 4px 18px #00000040}.e-code-header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.45rem .8rem;background-color:#18181b;border-bottom:1.5px solid #27272A;color:#a1a1aa;font-size:.72rem;user-select:none}.e-code-header-left{display:flex;align-items:center;gap:.45rem;overflow:hidden}.e-code-term-icon{flex-shrink:0;color:#fafafa}.e-code-lang{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#fafafa;text-transform:uppercase;white-space:nowrap}.e-code-header-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.e-code-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background-color:transparent;color:#e4e4e7;border:1px solid #3F3F46;border-radius:0;cursor:pointer;transition:all .14s ease;user-select:none;text-decoration:none}.e-code-icon-btn:hover{background-color:#fafafa;color:#09090b;border-color:#fafafa}.e-code-icon-btn:active{transform:translateY(0)}.e-code-icon-btn.is-copied{background-color:#fafafa;border-color:#fafafa;color:#09090b}.e-attachment-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.25rem .6rem;font-family:var(--font-mono);font-size:.72rem;font-weight:700;line-height:1.2;background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--border-muted);border-radius:0;cursor:pointer;transition:all .14s ease;user-select:none;text-decoration:none}.e-attachment-btn:hover{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.e-attachment-btn:active{transform:translateY(0)}.e-attachment-btn.is-copied{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.e-code-scroll-pane{display:block;max-height:400px;overflow:auto;background-color:#09090b;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) rgba(0,0,0,.2)}.e-code-scroll-pane::-webkit-scrollbar{width:8px;height:8px}.e-code-scroll-pane::-webkit-scrollbar-track{background:#09090b}.e-code-scroll-pane::-webkit-scrollbar-thumb{background:#ffffff3d;border-radius:0;border:1.5px solid #09090B}.e-code-scroll-pane::-webkit-scrollbar-thumb:hover{background:#ffffff6b}.e-code-scroll-pane::-webkit-scrollbar-corner{background:#00000059}.e-code-table{display:table;min-width:100%;width:max-content;border-collapse:collapse;padding:.55rem 0;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:.82rem;line-height:1.55;tab-size:4;-moz-tab-size:4}.e-code-row{display:table-row}.e-code-row:hover{background-color:#ffffff0a}.e-code-num{display:table-cell;position:sticky;left:0;z-index:10;padding:.15rem .55rem .15rem .65rem;min-width:1.6rem;text-align:right;vertical-align:top;font-size:.76rem;color:#71717a;background-color:#09090b;border-right:1.5px solid #27272A;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;white-space:nowrap}.e-code-line-text{display:table-cell;padding:.15rem .85rem .15rem .65rem;color:#fafafa;white-space:pre;vertical-align:top;font-size:.78rem}.e-msg-file-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .8rem;border-radius:2px;text-decoration:none;cursor:pointer;transition:all .15s ease;max-width:440px;width:100%;user-select:none;margin:.15rem 0}.bubble-me .e-msg-file-row{background-color:#fafaf714;border:1.5px solid var(--bg-app);box-shadow:2px 2px 0 var(--bg-app)}.bubble-me .e-msg-file-row:hover{background-color:#fafaf729;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--bg-app)}.bubble-me .e-msg-file-icon-box{background-color:var(--bg-app);color:var(--fg-main);border:1px solid var(--bg-app)}.bubble-me .e-msg-file-name{color:var(--bg-app)!important}.bubble-me .e-msg-file-size{color:var(--bg-app)!important;opacity:.8}.bubble-me .e-msg-file-dl-btn{background-color:transparent;color:var(--bg-app);border:1.5px solid var(--bg-app)}.bubble-me .e-msg-file-row:hover .e-msg-file-dl-btn{background-color:var(--bg-app);color:var(--fg-main)}.bubble-other .e-msg-file-row{background-color:var(--bg-app);border:1.5px solid var(--fg-main);box-shadow:2px 2px 0 var(--fg-main)}.bubble-other .e-msg-file-row:hover{background-color:var(--bg-surface);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--fg-main)}.bubble-other .e-msg-file-icon-box{background-color:var(--fg-main);color:var(--bg-app);border:1px solid var(--fg-main)}.bubble-other .e-msg-file-name{color:var(--fg-main)!important}.bubble-other .e-msg-file-size{color:var(--fg-muted)!important}.bubble-other .e-msg-file-dl-btn{background-color:var(--bg-surface);color:var(--fg-main);border:1.5px solid var(--fg-main)}.bubble-other .e-msg-file-row:hover .e-msg-file-dl-btn{background-color:var(--fg-main);color:var(--bg-app)}.e-msg-file-icon-box{width:34px;height:34px;border-radius:2px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.e-msg-file-ext{font-size:.62rem;font-weight:900;letter-spacing:.05em}.e-msg-file-text{display:flex;flex-direction:column;gap:.1rem;overflow:hidden;flex:1}.e-msg-file-name{font-size:.78rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.e-msg-file-size{font-size:.64rem;letter-spacing:.02em;white-space:nowrap}.e-msg-file-dl-btn{width:26px;height:26px;border-radius:2px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.e-msg-image-bubble{display:flex;flex-direction:column;border-radius:0;overflow:hidden;margin:.25rem 0;max-width:360px;width:100%}.bubble-me .e-msg-image-bubble{border:1.5px solid var(--bg-app);box-shadow:2px 2px 0 var(--bg-app);background-color:#fafaf70f}.bubble-other .e-msg-image-bubble{border:1.5px solid var(--fg-main);box-shadow:2px 2px 0 var(--fg-main);background-color:var(--bg-surface)}.e-msg-image-preview{position:relative;overflow:hidden;cursor:pointer;max-height:260px;background-color:#000;display:flex;align-items:center;justify-content:center}.e-msg-image-preview:hover .e-msg-image-element{opacity:.92}.e-msg-image-element{width:100%;height:auto;max-height:260px;object-fit:cover;display:block;transition:opacity .15s ease}.e-msg-image-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;gap:.5rem;user-select:none}.bubble-me .e-msg-image-bar{background-color:var(--fg-main);border-top:1.5px solid var(--bg-app);color:var(--bg-app)}.bubble-other .e-msg-image-bar{background-color:var(--bg-surface);border-top:1.5px solid var(--fg-main);color:var(--fg-main)}.e-msg-image-info{display:flex;flex-direction:column;gap:.1rem;overflow:hidden;flex:1;min-width:0}.e-msg-image-name{font-size:.76rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.e-msg-image-size{font-size:.62rem;font-weight:600;opacity:.75;letter-spacing:.04em}.e-msg-image-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0;white-space:nowrap}.e-msg-img-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;height:26px;padding:0 .65rem;font-family:var(--font-mono);font-size:.68rem;font-weight:800;letter-spacing:.06em;border-radius:0;cursor:pointer;white-space:nowrap;text-decoration:none;transition:all .14s ease;flex-shrink:0}.bubble-me .e-msg-img-btn{background-color:transparent;border:1.5px solid var(--bg-app);color:var(--bg-app)}.bubble-me .e-msg-img-btn:hover{background-color:var(--bg-app);color:var(--fg-main)}.bubble-other .e-msg-img-btn{background-color:transparent;border:1.5px solid var(--fg-main);color:var(--fg-main)}.bubble-other .e-msg-img-btn:hover{background-color:var(--fg-main);color:var(--bg-surface)}.bubble-other .e-msg-img-btn-dl{background-color:var(--fg-main);border:1.5px solid var(--fg-main);color:var(--bg-surface)}.bubble-other .e-msg-img-btn-dl:hover{opacity:.88}.e-modal-backdrop{position:fixed;inset:0;z-index:1000;background-color:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem}.e-modal-box{width:100%;max-width:520px;background-color:var(--bg-surface);border:1px solid var(--border-muted);box-shadow:0 8px 32px #0000001a;border-radius:6px;overflow:hidden;animation:einkDialogPop .14s ease-out forwards}.e-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.15rem;background-color:var(--bg-surface);color:var(--fg-main);border-bottom:1px solid var(--border-muted);font-family:var(--font-mono);font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.e-modal-body{padding:1.15rem;display:flex;flex-direction:column;gap:.85rem}.e-modal-textarea{width:100%;min-height:160px;padding:.75rem;font-family:Consolas,Courier New,monospace;font-size:.85rem;background-color:var(--bg-app);color:var(--fg-main);border:1px solid var(--border-muted);border-radius:4px;outline:none;resize:vertical}.e-code-modal{max-width:560px}.e-code-editor-box{display:flex;flex-direction:column;border:1px solid var(--border-muted);background-color:var(--bg-app);border-radius:4px;overflow:hidden}.e-code-detected-tag{display:inline-flex;align-items:center;padding:.15rem .45rem;background-color:var(--bg-subtle);color:var(--fg-muted);font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:lowercase;border:1px solid var(--border-muted);border-radius:3px}.e-code-textarea{width:100%;min-height:180px;max-height:420px;padding:.85rem;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:.84rem;line-height:1.5;background-color:transparent;color:var(--fg-main);border:none;outline:none;resize:vertical;tab-size:4;-moz-tab-size:4;white-space:pre;overflow-x:auto}.e-code-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.e-code-hint{font-size:.68rem;color:var(--fg-muted);letter-spacing:.04em}.e-user-avatar{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background-color:var(--fg-main);color:var(--bg-app);font-family:var(--font-mono);font-weight:800;font-size:.7rem;border-radius:0;flex-shrink:0}.chatroom-inline-link{color:#2563eb;text-decoration:underline;text-underline-offset:2px;word-break:break-all;font-weight:600;transition:opacity .15s ease}.chatroom-inline-link:hover{opacity:.8}[data-theme=ink] .chatroom-inline-link{color:#60a5fa}.bubble-me .chatroom-inline-link{color:#93c5fd}.admin-login-root{width:100%;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;box-sizing:border-box;background-color:var(--bg-app)}.admin-login-container{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:1.35rem;margin:auto}.admin-login-hero{display:flex;flex-direction:column;align-items:center;gap:.65rem;text-align:center}.admin-hero-sub{display:inline-flex;align-items:center;gap:.45rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;color:var(--fg-muted)}.admin-status-dot{width:6px;height:6px;border-radius:50%;background-color:#22c55e;box-shadow:0 0 8px #22c55eb3;display:inline-block;flex-shrink:0}.admin-card{width:100%;background-color:var(--bg-surface);border:1.5px solid var(--fg-main);box-shadow:3px 3px 0 var(--fg-main);padding:1.5rem 1.35rem;box-sizing:border-box}.admin-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .85rem;margin-bottom:1.15rem;font-size:.74rem;font-weight:700;border:1.5px solid}.admin-alert-banner.error{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.admin-alert-banner.success{background-color:#22c55e14;color:#16a34a;border-color:#22c55e}.admin-alert-content{display:flex;align-items:center;gap:.45rem;min-width:0;overflow:hidden}.admin-alert-icon{flex-shrink:0}.admin-alert-dismiss{background:none;border:none;color:inherit;opacity:.75;cursor:pointer;padding:2px;display:flex;align-items:center}.admin-alert-dismiss:hover{opacity:1}.admin-bio-view{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:.25rem 0}.admin-bio-header-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;background:var(--bg-subtle);border:1px solid var(--border-muted);color:var(--fg-muted);font-size:.65rem;font-weight:800;letter-spacing:.1em}.admin-bio-touch-pad{cursor:pointer;padding:.5rem;display:flex;justify-content:center;align-items:center;user-select:none;outline:none}.admin-bio-pad-inner{width:90px;height:90px;border-radius:22px;border:2px solid var(--fg-main);background-color:var(--bg-app);display:flex;align-items:center;justify-content:center;position:relative;transition:all .2s cubic-bezier(.16,1,.3,1)}.admin-bio-touch-pad:hover .admin-bio-pad-inner{transform:scale(1.05);background-color:var(--bg-surface);box-shadow:2px 2px 0 var(--fg-main)}.admin-bio-touch-pad.scanning .admin-bio-pad-inner{box-shadow:0 0 0 4px #0000001f,2px 2px 0 var(--fg-main);animation:bioPadPulse 1.2s ease-in-out infinite alternate}@keyframes bioPadPulse{0%{transform:scale(1)}to{transform:scale(1.04)}}.admin-bio-pad-icon{color:var(--fg-main)}.admin-bio-profile-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem .75rem;background-color:var(--bg-app);border:1px solid var(--border-muted);font-size:.72rem;box-sizing:border-box}.admin-bio-profile-name{display:flex;align-items:center;gap:.35rem;color:var(--fg-main)}.admin-bio-profile-name span{color:var(--fg-muted)}.admin-bio-profile-device{display:flex;align-items:center;gap:.3rem;color:var(--fg-muted);font-size:.65rem}.admin-btn-content{display:inline-flex;align-items:center;gap:.45rem}.admin-bio-footer-actions{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:.4rem;font-size:.72rem;gap:.5rem;flex-wrap:wrap}.admin-footer-link{background:none;border:none;color:var(--fg-muted);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:.25rem 0;font-size:.72rem;transition:color .15s ease}.admin-footer-link:hover{color:var(--fg-main)}.admin-footer-link.danger{color:#ef4444}.admin-footer-link.danger:hover{color:#dc2626}.admin-confirm-pill{display:flex;align-items:center;gap:.4rem;font-size:.68rem;color:#ef4444;font-weight:700}.admin-confirm-btn{border:none;padding:2px 8px;cursor:pointer;font-weight:800;font-size:.65rem}.admin-confirm-btn.yes{background-color:#ef4444;color:#fff}.admin-confirm-btn.no{background-color:var(--bg-subtle);color:var(--fg-main);border:1px solid var(--border-muted)}.admin-form{display:flex;flex-direction:column;gap:1.15rem}.admin-bio-shortcut{width:100%;display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem .75rem;background-color:var(--bg-subtle);border:1.5px solid var(--fg-main);color:var(--fg-main);font-size:.72rem;font-weight:800;cursor:pointer;margin-bottom:.25rem;transition:all .15s ease}.admin-bio-shortcut:hover{background-color:var(--fg-main);color:var(--bg-app)}.admin-field-group{display:flex;flex-direction:column;gap:.35rem}.admin-label{display:flex;align-items:center;gap:.35rem;font-size:.65rem;font-weight:800;letter-spacing:.12em;color:var(--fg-muted)}.admin-input-wrapper{position:relative;display:flex;align-items:center}.admin-input{width:100%;height:46px;padding:0 .85rem;font-family:var(--font-mono);font-size:.92rem;font-weight:700;background-color:var(--bg-app);color:var(--fg-main);border:1.5px solid var(--border-muted);outline:none;transition:border-color .15s ease;box-sizing:border-box}.admin-input:focus{border-color:var(--fg-main)}.admin-input-trailing-btn{position:absolute;right:.65rem;background:none;border:none;color:var(--fg-muted);cursor:pointer;padding:.3rem;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.admin-input-trailing-btn:hover{color:var(--fg-main)}.admin-bio-toggle-row{margin:.25rem 0 .5rem}.admin-bio-toggle-label{display:flex;align-items:center;gap:.55rem;cursor:pointer;user-select:none;font-size:.72rem;font-weight:700;color:var(--fg-muted);transition:color .15s ease}.admin-bio-toggle-label:hover{color:var(--fg-main)}.admin-custom-checkbox-input{display:none}.admin-custom-checkbox-box{width:20px;height:20px;border:1.5px solid var(--border-muted);display:flex;align-items:center;justify-content:center;background-color:var(--bg-app);flex-shrink:0;transition:all .15s ease;color:transparent}.admin-custom-checkbox-input:checked+.admin-custom-checkbox-box{border-color:var(--fg-main);background-color:var(--fg-main);color:var(--bg-app)}.admin-check-icon{color:inherit}.admin-toggle-text{line-height:1.35}.admin-submit-btn{display:flex;align-items:center;justify-content:center;width:100%;height:48px;font-family:var(--font-mono);font-size:.8rem;font-weight:900;letter-spacing:.1em;background-color:var(--bg-subtle);color:var(--fg-muted);border:1.5px solid var(--border-muted);cursor:pointer;user-select:none;transition:all .15s ease}.admin-submit-btn.ready{background-color:var(--fg-main);color:var(--bg-app);border-color:var(--fg-main)}.admin-submit-btn.ready:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.admin-submit-btn.ready:active:not(:disabled){transform:translateY(0)}.admin-submit-btn:disabled{opacity:.45;cursor:not-allowed}.admin-submit-btn.active-scan{animation:btnActivePulse 1.2s infinite}@keyframes btnActivePulse{0%,to{opacity:1}50%{opacity:.8}}.admin-back-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:var(--font-mono);font-size:.72rem;font-weight:800;background:none;border:1.5px solid var(--border-muted);color:var(--fg-muted);cursor:pointer;transition:all .15s ease}.admin-back-btn:hover{border-color:var(--fg-main);color:var(--fg-main);background-color:var(--bg-surface)}@media (max-width: 480px){.admin-login-root{padding:1.25rem .85rem}.admin-login-container{max-width:100%;gap:1.15rem}.admin-card{padding:1.25rem 1rem;box-shadow:2px 2px 0 var(--fg-main)}.admin-input{height:44px;font-size:.88rem}.admin-submit-btn{height:46px;font-size:.76rem}.admin-bio-pad-inner{width:82px;height:82px;border-radius:18px}}.admin-dash-root{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.admin-dash-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background-color:var(--bg-surface);border-bottom:1.5px solid var(--fg-main);margin-bottom:1.25rem}.admin-dash-brand{display:flex;align-items:center;gap:.85rem}.admin-dash-nav-actions{display:flex;align-items:center;gap:.5rem}.admin-logout-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;font-family:var(--font-mono);font-size:.72rem;font-weight:800;background-color:var(--fg-main);color:var(--bg-app);border:1.5px solid var(--fg-main);border-radius:3px;cursor:pointer;transition:opacity .15s ease}.admin-logout-btn:hover{opacity:.85}.admin-toast{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background-color:var(--fg-main);color:var(--bg-app);font-family:var(--font-mono);font-size:.8rem;font-weight:800;margin-bottom:1.25rem;border:1.5px solid var(--fg-main);border-radius:4px;animation:slide-down .2s ease-out}@keyframes slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.admin-dash-toast-container{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom,0px));right:1rem;z-index:99999;max-width:380px;width:calc(100vw - 2rem);display:flex;flex-direction:column;gap:.75rem}.admin-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.25rem}.admin-metric-card{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-top:2.5px solid var(--fg-main);padding:.75rem .9rem;display:flex;flex-direction:column;gap:.25rem}.admin-metric-header{display:flex;align-items:center;justify-content:space-between;color:var(--fg-muted)}.admin-metric-title{font-family:var(--font-mono);font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.admin-metric-value{font-size:1.65rem;font-weight:900;color:var(--fg-main);letter-spacing:-.02em}.admin-metric-sub{font-size:.65rem;color:var(--fg-muted);font-family:var(--font-mono);opacity:.7}.admin-main-grid{display:flex;gap:1.25rem}@media (max-width: 900px){.admin-main-grid{flex-direction:column}}.admin-panel-card{background-color:var(--bg-surface);border:1px solid var(--border-muted);overflow:hidden}.admin-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;background-color:var(--bg-subtle);border-bottom:1px solid var(--border-muted)}.admin-table-container{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.admin-table th{padding:.65rem .85rem;text-align:left;font-size:.62rem;font-weight:800;letter-spacing:.12em;color:var(--fg-muted);border-bottom:1.5px solid var(--fg-main);background-color:var(--bg-app)}.admin-table td{padding:.65rem .85rem;border-bottom:1px solid var(--border-muted);color:var(--fg-main);vertical-align:middle}.admin-table tr:hover{background-color:var(--bg-subtle)}.admin-room-code-badge{display:inline-block;padding:.15rem .45rem;background-color:var(--fg-main);color:var(--bg-app);font-weight:800;font-size:.75rem;border-radius:2px}.admin-action-destroy-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;font-family:var(--font-mono);font-size:.65rem;font-weight:800;background:none;border:1px solid var(--border-muted);border-radius:3px;color:var(--fg-muted);cursor:pointer;transition:all .12s ease}.admin-action-destroy-btn:hover{border-color:var(--fg-main);color:var(--bg-app);background-color:var(--fg-main)}.admin-mobile-rooms-list{display:none}.admin-mobile-room-card{background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:6px;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.6rem;box-sizing:border-box}.admin-mobile-room-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-mobile-room-info{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1}.admin-mobile-room-name{font-weight:700;font-size:.84rem;color:var(--fg-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-room-ttl{font-size:.7rem;color:var(--fg-muted);display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;flex-shrink:0;padding:.15rem .45rem;background:var(--bg-app);border:1px solid var(--border-muted);border-radius:3px}.admin-mobile-room-stats{display:flex;align-items:center;gap:.75rem;font-size:.72rem;color:var(--fg-muted)}.admin-mobile-stat-pill{display:inline-flex;align-items:center;gap:.3rem}.admin-mobile-room-actions{display:flex;align-items:center;gap:.5rem;padding-top:.35rem;border-top:1px dashed var(--border-muted)}.admin-mobile-btn-inspect{flex:1;height:36px;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.admin-mobile-btn-destroy{flex:1;height:36px;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:3px}.admin-empty-table{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem}.admin-broadcast-form{padding:1rem;display:flex;flex-direction:column}.admin-textarea{width:100%;padding:.65rem;font-family:var(--font-sans);font-size:.85rem;background-color:var(--bg-app);color:var(--fg-main);border:1.5px solid var(--border-muted);border-radius:4px;outline:none;resize:vertical}.admin-textarea:focus{border-color:var(--fg-main)}.admin-nuke-btn{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;padding:.75rem;font-family:var(--font-mono);font-size:.78rem;font-weight:900;letter-spacing:.08em;background-color:var(--fg-main);color:var(--bg-app);border:1.5px solid var(--fg-main);border-radius:4px;cursor:pointer;transition:all .15s ease}.admin-nuke-btn:hover{opacity:.9}.admin-nuke-confirm-btn{padding:.5rem .85rem;font-family:var(--font-mono);font-size:.75rem;font-weight:900;background-color:var(--fg-main);color:var(--bg-app);border:1.5px solid var(--fg-main);border-radius:4px;cursor:pointer}@media (max-width: 640px){.admin-dash-root{padding:.5rem .4rem}.admin-dash-header{padding:.65rem .85rem;margin-bottom:.75rem}.admin-dash-brand{gap:.5rem}.admin-dash-nav-actions{gap:.35rem}.admin-dash-nav-actions .e-btn,.admin-logout-btn{height:32px;padding:0 .55rem;font-size:.68rem}.admin-metrics-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}.admin-metric-card{padding:.65rem .75rem;gap:.2rem}.admin-metric-title{font-size:.54rem}.admin-metric-value{font-size:1.25rem}.admin-metric-sub{font-size:.58rem}.admin-main-grid{gap:.75rem}.admin-panel-header{padding:.65rem .75rem;flex-direction:column;align-items:stretch;gap:.5rem}.admin-panel-header>div:last-child{max-width:100%!important;width:100%}.admin-desktop-table{display:none!important}.admin-mobile-rooms-list{display:flex;flex-direction:column;gap:.55rem;padding:.55rem}.admin-broadcast-form{padding:.75rem}.admin-input{height:42px;font-size:.88rem}.admin-textarea{font-size:.88rem}.admin-nuke-btn{padding:.65rem;font-size:.74rem}}.spin{animation:spin-rotate 1s linear infinite}@keyframes spin-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chatroom-bubble.is-sealed-bubble{padding:.25rem .35rem!important;background-color:transparent!important;border:none!important;box-shadow:none!important}.chatroom-sealed-pill{display:inline-flex;align-items:center;gap:.38rem;padding:.28rem .58rem;background-color:var(--bg-surface);border:1px dashed var(--border-muted);border-radius:6px;user-select:none;cursor:default;box-sizing:border-box;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 3px #00000005}.chatroom-sealed-pill:hover{border-style:solid;border-color:var(--fg-main);background-color:var(--bg-app);transform:translateY(-.5px);box-shadow:0 2px 8px #0000000f}.chatroom-sealed-icon{color:var(--fg-muted);flex-shrink:0;transition:color .2s ease}.chatroom-sealed-pill:hover .chatroom-sealed-icon{color:var(--fg-main)}.chatroom-sealed-text{font-size:.6rem;font-weight:800;letter-spacing:.08em;color:var(--fg-muted);line-height:1;text-transform:uppercase;transition:color .2s ease}.chatroom-sealed-pill:hover .chatroom-sealed-text{color:var(--fg-main)}.render-wake-banner{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:#fef3c7;color:#92400e;border-bottom:1px solid #FDE68A;padding:8px 14px;font-size:.72rem;font-weight:700;letter-spacing:.02em;z-index:9999;animation:slide-down-banner .25s ease-out}.render-wake-pulse{width:7px;height:7px;border-radius:50%;background:#d97706;box-shadow:0 0 6px #d9770699;animation:wake-pulse 1.2s ease-in-out infinite}@keyframes wake-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.5}}.socket-reconnect-banner{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;background:#fee2e2;color:#991b1b;border-bottom:1px solid #FECACA;padding:6px 12px;font-size:.7rem;font-weight:700;z-index:9998;animation:slide-down-banner .2s ease-out}.socket-reconnect-dot{width:6px;height:6px;border-radius:50%;background:#dc2626;animation:wake-pulse 1s ease-in-out infinite}@keyframes slide-down-banner{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.terms-modal-card{max-width:520px;width:min(92vw,520px);max-height:82vh;display:flex;flex-direction:column;background-color:var(--bg-surface);border:1px solid var(--border-muted);box-shadow:0 8px 32px #0000001a;border-radius:6px;overflow:hidden;box-sizing:border-box;animation:einkDialogPop .14s ease-out forwards}.terms-modal-header{padding:.85rem 1.25rem;border-bottom:1px solid var(--border-muted);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.terms-modal-title{margin:0;font-size:1rem;font-weight:700;color:var(--fg-main);letter-spacing:-.01em;line-height:1.2}.terms-modal-updated{font-size:.68rem;color:var(--fg-muted);white-space:nowrap;flex-shrink:0;opacity:.7}.terms-modal-body{padding:1rem 1.25rem 1.25rem;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;display:flex;flex-direction:column;gap:1rem;font-size:.84rem;line-height:1.55;color:var(--fg-main);box-sizing:border-box}.terms-modal-callout{padding:.7rem .9rem;background-color:var(--bg-subtle);border-left:2px solid var(--fg-main);border-radius:0 4px 4px 0;font-size:.8rem;color:var(--fg-muted);line-height:1.5}.terms-modal-section-title{margin:0;font-size:.86rem;font-weight:600}.terms-modal-section-desc{margin:0;color:var(--fg-muted);font-size:.8rem;line-height:1.5}.terms-modal-footer{padding:.75rem 1.25rem;border-top:1px solid var(--border-muted);display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box}.terms-modal-btns{display:flex;align-items:center;gap:.5rem}.terms-btn-dismiss{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 .9rem;font-size:.78rem;font-weight:600;background-color:transparent;color:var(--fg-muted);border:1px solid var(--border-muted);border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .12s ease}.terms-btn-dismiss:hover{color:var(--fg-main);border-color:var(--fg-main)}.terms-btn-agree{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 1.1rem;font-size:.78rem;font-weight:600;background-color:var(--fg-main);color:var(--bg-app);border:1px solid var(--fg-main);border-radius:4px;cursor:pointer;white-space:nowrap;transition:opacity .12s ease}.terms-btn-agree:hover{opacity:.85}@media (max-width: 520px){.terms-modal-card{width:94vw;max-height:85vh}.terms-modal-header{padding:.75rem 1rem;gap:.5rem}.terms-modal-title{font-size:.92rem}.terms-modal-body{padding:.85rem 1rem 1rem;gap:.85rem}.terms-modal-footer{padding:.65rem 1rem}.terms-modal-btns{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.terms-btn-dismiss,.terms-btn-agree{width:100%;height:36px;font-size:.76rem;box-sizing:border-box}}.history-loading-bar{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.45rem 1rem;margin:.5rem auto 1rem;background-color:var(--bg-surface);border:1px solid var(--border-muted);border-radius:4px;font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--fg-muted);box-shadow:0 1px 3px #0000000a;align-self:center;user-select:none;animation:fadeInHistory .2s ease-out}.history-loading-spinner{width:11px;height:11px;border:2px solid var(--border-muted);border-top-color:var(--fg-main);border-radius:50%;animation:spinHistory .6s linear infinite}@keyframes spinHistory{to{transform:rotate(360deg)}}@keyframes fadeInHistory{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.e-modal-backdrop{position:fixed;inset:0;z-index:1000;background-color:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:einkFadeIn .12s ease}@keyframes einkFadeIn{0%{opacity:0}to{opacity:1}}.eink-dialog-card{width:min(92vw,380px);background-color:var(--bg-surface, #FFFFFF);border:1px solid var(--border-muted, #E4E4E7);box-shadow:0 8px 32px #0000001a;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;animation:einkDialogPop .14s ease-out forwards}.eink-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.15rem;border-bottom:1px solid var(--border-muted, #E4E4E7);box-sizing:border-box}.eink-dialog-title{margin:0;font-family:var(--font-mono, monospace);font-size:.82rem;font-weight:800;letter-spacing:.06em;color:var(--fg-main, #18181B);text-transform:uppercase}.eink-dialog-close{background:transparent;border:none;color:var(--fg-muted, #71717A);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.eink-dialog-close:hover{color:var(--fg-main, #18181B);background-color:var(--bg-subtle, #F4F4F5)}.eink-dialog-body{padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.75rem;box-sizing:border-box}.eink-dialog-code-box{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-app, #FAFAF9);border:1px solid var(--border-muted, #E4E4E7);border-radius:4px;padding:.6rem .85rem;cursor:pointer;transition:border-color .12s ease;user-select:none}.eink-dialog-code-box:hover{border-color:var(--fg-main, #18181B)}.eink-dialog-code-col{display:flex;flex-direction:column;gap:.12rem}.eink-dialog-code-label{font-size:.58rem;font-weight:700;letter-spacing:.1em;color:var(--fg-muted, #71717A);text-transform:uppercase}.eink-dialog-code-digits{font-size:1.35rem;font-weight:800;letter-spacing:.22em;color:var(--fg-main, #18181B);line-height:1}.eink-dialog-copy-btn{display:inline-flex;align-items:center;gap:.3rem;height:26px;padding:0 .55rem;font-size:.68rem;font-weight:700;letter-spacing:.04em;background-color:transparent;color:var(--fg-muted, #71717A);border:1px solid var(--border-muted, #D4D4D8);border-radius:3px;cursor:pointer;transition:all .12s ease}.eink-dialog-copy-btn:hover{color:var(--fg-main, #18181B);border-color:var(--fg-main, #18181B)}.eink-dialog-copy-btn.copied{background-color:var(--fg-main, #18181B);border-color:var(--fg-main, #18181B);color:#fff}.eink-dialog-note{margin:0;font-size:.8rem;line-height:1.45;color:var(--fg-muted, #52525B)}.eink-dialog-note strong{color:var(--fg-main, #18181B);font-weight:600}.eink-dialog-message{margin:0;font-size:.85rem;line-height:1.45;color:var(--fg-main, #18181B)}.eink-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.75rem 1.15rem;border-top:1px solid var(--border-muted, #E4E4E7);box-sizing:border-box}.eink-dialog-btn-secondary{height:36px;padding:0 1rem;font-family:var(--font-mono, monospace);font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background-color:transparent;color:var(--fg-muted, #52525B);border:1px solid var(--border-muted, #D4D4D8);border-radius:4px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:all .12s ease}.eink-dialog-btn-secondary:hover{color:var(--fg-main, #18181B);border-color:var(--fg-main, #18181B)}.eink-dialog-btn-primary{height:36px;padding:0 1.15rem;font-family:var(--font-mono, monospace);font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background-color:var(--fg-main, #18181B);color:#fff;border:1px solid var(--fg-main, #18181B);border-radius:4px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:opacity .12s ease}.eink-dialog-btn-primary:hover{opacity:.85}@keyframes einkDialogPop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.eink-dialog-card{width:92vw}.eink-dialog-footer{padding:.65rem 1rem;gap:.45rem}.eink-dialog-btn-secondary,.eink-dialog-btn-primary{flex:1}}.admin-sender-lockup{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.admin-avatar-circle{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:900;background:linear-gradient(135deg,#18181b,#27272a);color:#fbbf24;border:1.5px solid #d97706;box-shadow:0 0 8px #f59e0b40;user-select:none;flex-shrink:0;line-height:1}.admin-avatar-xs{width:16px;height:16px;font-size:.6rem}.admin-avatar-sm{width:20px;height:20px;font-size:.72rem}.admin-avatar-md{width:26px;height:26px;font-size:.85rem}.admin-avatar-lg{width:34px;height:34px;font-size:1.1rem}.admin-sender-name{font-weight:800;font-size:.82rem;letter-spacing:.04em;color:var(--fg-main);line-height:1}.admin-verified-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;vertical-align:middle;transform:translateY(-.5px);user-select:none}.admin-badge-svg{display:block;flex-shrink:0;shape-rendering:geometricPrecision;transition:transform .14s ease}.admin-badge-svg:hover{transform:scale(1.12)}.admin-you-tag{font-size:.65rem;color:var(--fg-muted);font-weight:600}
