:root{--brand-500: #6366f1;--brand-600: #4f46e5;--brand-700: #4338ca;--brand-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 55%, #ec4899 100%);--bg: #f6f7fb;--surface: #ffffff;--surface-2: #f1f3f9;--surface-hover: #eceff7;--border: #e3e6ef;--border-strong: #d2d7e4;--text: #1a1d29;--text-muted: #626878;--text-faint: #9aa0b0;--on-brand: #ffffff;--success: #16a34a;--success-bg: #e8f7ee;--warning: #b45309;--warning-bg: #fef3e2;--danger: #dc2626;--danger-bg: #fdecec;--shadow-sm: 0 1px 2px rgba(20, 24, 40, .06), 0 1px 3px rgba(20, 24, 40, .05);--shadow-md: 0 4px 12px rgba(20, 24, 40, .08), 0 2px 4px rgba(20, 24, 40, .05);--shadow-lg: 0 16px 48px rgba(20, 24, 40, .18);--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-full: 999px;--ease: cubic-bezier(.22, .61, .36, 1);--cm-bg: transparent;--cm-fg: var(--text);--cm-gutter-bg: transparent;--cm-gutter-fg: var(--text-faint);--cm-active-line: color-mix(in srgb, var(--brand-500) 6%, transparent);--cm-cursor: var(--brand-500);--cm-selection: color-mix(in srgb, var(--brand-500) 22%, transparent);--header-h: 46px;--sidebar-w: 280px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme: dark){:root{--bg: #0d0f16;--surface: #151824;--surface-2: #1b1f2e;--surface-hover: #222739;--border: #262b3d;--border-strong: #333a52;--text: #eef0f6;--text-muted: #a2a9bd;--text-faint: #6b7288;--success-bg: #12261a;--warning-bg: #2a2011;--danger-bg: #2a1516;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 18px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 56px rgba(0, 0, 0, .6)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,a,input,textarea,select{font:inherit;color:inherit}*:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:4px}::selection{background:color-mix(in srgb,var(--brand-500) 30%,transparent)}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app-body{flex:1;display:flex;min-height:0;position:relative}.app-header{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:0 .6rem;background:var(--surface);border-bottom:1px solid var(--border);z-index:40}.app-header h1{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:.45rem}.brand-mark{width:22px;height:22px;border-radius:6px;background:var(--brand-gradient);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:800;box-shadow:var(--shadow-sm)}.brand-name .brand-accent{background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.header-spacer{flex:1}.header-btn{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);padding:.45rem .85rem;border-radius:var(--r-full);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s var(--ease);white-space:nowrap}.header-btn:hover{background:var(--surface-hover);border-color:var(--brand-500)}@media (max-width: 519px){.header-btn{display:none}}.icon-btn{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);width:34px;height:34px;border-radius:var(--r-full);font-size:1rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s var(--ease)}.icon-btn:hover{background:var(--surface-hover);border-color:var(--brand-500)}.app-shell.fullscreen .file-drawer,.app-shell.fullscreen .sidebar-resizer{display:none}.app-shell.fullscreen [data-role=fullscreen-btn]{background:var(--brand-gradient);color:#fff;border-color:transparent}.hamburger{background:transparent;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;width:38px;height:38px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;transition:background .15s var(--ease),color .15s var(--ease)}.hamburger:hover{background:var(--surface-hover);color:var(--text)}.auth-bar{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.auth-bar span{color:var(--text-muted)}.auth-link{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);text-decoration:none;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s var(--ease);white-space:nowrap}.auth-link:hover{background:var(--surface-hover);border-color:var(--brand-500)}.auth-link[data-role=logout]{border-color:var(--border);color:var(--text-muted)}.auth-email{color:var(--text-muted);max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1.1rem;border-radius:var(--r-full);border:none;background:var(--brand-gradient);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s var(--ease),box-shadow .15s var(--ease),filter .15s var(--ease)}.auth-btn:hover{filter:brightness(1.06);box-shadow:var(--shadow-md)}.auth-btn:active{transform:translateY(1px)}.signin-modal{text-align:center;max-width:380px}.signin-title{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.4rem}.signin-sub{color:var(--text-muted);font-size:.9rem;margin-bottom:1.4rem;line-height:1.5}.signin-providers{display:flex;flex-direction:column;gap:.6rem}.signin-provider{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1rem;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);text-decoration:none;font-size:.95rem;font-weight:600;transition:all .15s var(--ease)}.signin-provider:hover{border-color:var(--brand-500);background:var(--surface-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.signin-provider-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-weight:800}.signin-provider[data-provider=google] .signin-provider-icon{color:#ea4335}.signin-fine{color:var(--text-faint);font-size:.78rem;margin-top:1.2rem}.file-drawer{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;z-index:30}.drawer-header{padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.drawer-header h2{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.drawer-header-actions{display:inline-flex;align-items:center;gap:.4rem}.new-btn{background:var(--surface-2);color:var(--text);padding:.5rem .8rem;border:1px solid var(--border);border-radius:var(--r-full);cursor:pointer;font-size:.82rem;font-weight:600;transition:background .15s var(--ease),border-color .15s var(--ease)}.new-btn:hover{background:color-mix(in srgb,var(--brand-500) 10%,var(--surface-2));border-color:var(--brand-500)}.upload-btn{background:var(--brand-gradient);color:#fff;padding:.5rem .9rem;border-radius:var(--r-full);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;box-shadow:var(--shadow-sm);transition:transform .12s var(--ease),box-shadow .15s var(--ease),filter .15s var(--ease)}.upload-btn:before{content:"↑";font-weight:800}.upload-btn:hover{filter:brightness(1.06);box-shadow:var(--shadow-md)}.upload-btn:active{transform:translateY(1px)}.upload-btn input[type=file]{display:none}.file-actions{margin:.25rem .75rem .75rem;padding:.85rem;border-radius:var(--r-md);background:color-mix(in srgb,var(--brand-500) 5%,var(--surface-2));border:1px solid var(--border)}.file-actions-title{font-size:.82rem;font-weight:700;color:var(--text);margin-bottom:.65rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.file-action{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .65rem;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .14s var(--ease)}.file-action:hover{border-color:var(--brand-500);background:var(--surface-hover);transform:translateY(-1px)}.file-action:active{transform:translateY(0)}.file-action-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.file-action-icon svg{display:block}.file-action.is-primary{grid-column:1 / -1;background:var(--brand-gradient);color:#fff;border:none;justify-content:center;box-shadow:var(--shadow-sm)}.file-action.is-primary:hover{filter:brightness(1.06)}.file-action.is-accent{border-color:var(--brand-500);color:var(--brand-500)}[data-role=file-drawer]{list-style:none;padding:.25rem .5rem 1rem;overflow-y:auto;flex:1;min-height:0}[data-role=file-drawer] li{display:flex;align-items:center;border-radius:var(--r-sm);margin-bottom:2px;transition:background .12s var(--ease)}[data-role=file-drawer] li:hover{background:var(--surface-hover)}[data-role=file-drawer] li.active{background:color-mix(in srgb,var(--brand-500) 14%,transparent)}[data-role=file-drawer] li.active .file-item{color:var(--brand-600);font-weight:600}.file-item{flex:1;min-width:0;background:transparent;border:none;padding:.6rem .5rem .6rem .65rem;text-align:left;cursor:pointer;font-size:.88rem;display:flex;align-items:center;gap:.55rem;color:var(--text)}.file-item .file-icon{flex-shrink:0;width:24px;height:24px;border-radius:6px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}.file-item .file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-btn{background:transparent;border:none;cursor:pointer;width:40px;height:40px;border-radius:var(--r-sm);font-size:.95rem;color:var(--text-faint);opacity:0;transition:opacity .12s var(--ease),color .12s var(--ease),background .12s var(--ease)}[data-role=file-drawer] li:hover .delete-btn,[data-role=file-drawer] li.active .delete-btn{opacity:1}.delete-btn:hover{color:var(--danger);background:var(--danger-bg)}.drawer-empty{padding:1.5rem 1rem;text-align:center;color:var(--text-faint);font-size:.82rem}.storage-hint{padding:.75rem 1rem;border-top:1px solid var(--border);font-size:.72rem;color:var(--text-faint);display:flex;align-items:center;gap:.4rem}.editor-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--bg)}[data-role=editor-host]{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:2rem;text-align:center}.empty-state .dropzone{width:min(520px,100%);border:2px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.9rem;cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease)}.empty-state .dropzone:hover{border-color:var(--brand-500)}.app-body.drag-active .empty-state .dropzone,.empty-state .dropzone.drag-over{border-color:var(--brand-500);background:color-mix(in srgb,var(--brand-500) 8%,var(--surface));transform:scale(1.01)}.empty-state .drop-icon{width:64px;height:64px;border-radius:var(--r-md);background:var(--brand-gradient);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff;box-shadow:var(--shadow-md)}.empty-state h2{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.empty-state p{color:var(--text-muted);max-width:40ch;font-size:.92rem}.empty-state .browse-btn{background:var(--brand-gradient);color:#fff;border:none;padding:.7rem 1.5rem;border-radius:var(--r-full);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s var(--ease),filter .15s var(--ease)}.empty-state .browse-btn:hover{filter:brightness(1.06)}.empty-state .browse-btn:active{transform:translateY(1px)}.empty-state .kbd-hint{font-size:.78rem;color:var(--text-faint)}.empty-state kbd{font-family:var(--mono);font-size:.72rem;background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:.1rem .4rem}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;display:none;align-items:center;justify-content:center;background:color-mix(in srgb,var(--brand-500) 12%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:3px dashed var(--brand-500);border-radius:var(--r-md);pointer-events:none;font-weight:600;color:var(--brand-600)}.app-body.drag-active .drop-overlay{display:flex}.toolbar{flex-shrink:0;padding:.35rem .6rem;border-bottom:1px solid var(--border);display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;background:var(--surface)}.toolbar .push-right{margin-left:auto}.toolbar button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:.34rem .7rem;border-radius:var(--r-sm);cursor:pointer;font-size:.8rem;font-weight:500;transition:all .13s var(--ease)}.toolbar .save-btn{background:var(--surface-2);border-color:var(--brand-500);color:var(--brand-500);font-weight:600}.toolbar .save-btn:before{content:"💾";margin-right:.3rem}.toolbar .save-btn:hover{background:color-mix(in srgb,var(--brand-500) 12%,transparent)}.toolbar button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.toolbar button:active{transform:translateY(1px)}.toolbar .share-btn{background:var(--brand-gradient);color:#fff;border:none;font-weight:600;box-shadow:var(--shadow-sm)}.toolbar .share-btn:before{content:"🔗";margin-right:.35rem}.toolbar .share-btn:hover{filter:brightness(1.06)}.cm-editor{flex:1;overflow:auto;font-size:14px;min-height:0}.cm-editor .cm-scroller{font-family:var(--mono)}.preview-pane{flex:1;overflow:auto;padding:1.25rem 1.5rem;border-left:1px solid var(--border);background:var(--surface);min-height:0}.preview-pane iframe{min-height:400px;width:100%;border:0}.view-toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--r-full);overflow:hidden}.view-toggle button{border:none!important;background:var(--surface)!important;color:var(--text-muted);padding:.3rem .7rem!important;border-radius:0!important;font-size:.78rem;font-weight:600}.view-toggle button+button{border-left:1px solid var(--border)!important}.view-toggle button[aria-pressed=true]{background:var(--brand-gradient)!important;color:#fff!important}.pane-resizer{display:none;cursor:col-resize;background:var(--border);position:relative;touch-action:none}.pane-resizer:after{content:"";position:absolute;top:0;right:-5px;bottom:0;left:-5px}.pane-resizer:hover,.pane-resizer.dragging{background:var(--brand-500)}.sidebar-resizer{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;position:relative;touch-action:none;z-index:31}.sidebar-resizer:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px}.sidebar-resizer:hover,.sidebar-resizer.dragging{background:var(--brand-500)}@media (max-width: 719px){.sidebar-resizer{display:none}}[data-role=editor-host][data-view=edit] .preview-pane,[data-role=editor-host][data-view=edit] .pane-resizer,[data-role=editor-host][data-view=preview] .pane-resizer{display:none}[data-role=editor-host][data-view=preview] .cm-editor{display:none!important}[data-role=editor-host][data-view=edit] .cm-editor,[data-role=editor-host][data-view=preview] .preview-pane{flex:1;width:auto}.image-canvas{max-width:100%;height:auto;display:block;margin:1.5rem auto;border-radius:var(--r-sm);box-shadow:var(--shadow-md)}.binary-preview{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.binary-head{flex-shrink:0;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface)}.binary-meta{display:flex;align-items:center;gap:.6rem;min-width:0;font-size:.9rem;font-weight:500}.binary-meta span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.binary-meta .file-icon{flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center}.download-btn{margin-left:auto;flex-shrink:0;background:var(--brand-gradient);color:#fff;text-decoration:none;padding:.45rem 1rem;border-radius:var(--r-full);font-size:.82rem;font-weight:600;box-shadow:var(--shadow-sm);transition:filter .15s var(--ease)}.download-btn:before{content:"↓";margin-right:.35rem;font-weight:800}.download-btn:hover{filter:brightness(1.06)}.binary-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow:auto;background:var(--bg)}.media-el{max-width:100%;max-height:100%;border-radius:var(--r-md);box-shadow:var(--shadow-md);background:#000}.media-el.audio{width:min(520px,100%);box-shadow:none;background:transparent}.media-el.pdf{width:100%;height:100%;border:0;background:var(--surface);box-shadow:var(--shadow-sm)}.binary-none{text-align:center;color:var(--text-muted);max-width:420px;display:flex;flex-direction:column;align-items:center;gap:1rem}.binary-none .drop-icon{width:64px;height:64px;border-radius:var(--r-md);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:1.8rem}.binary-none p{font-size:.92rem}.doc-body{flex:1;min-height:0;overflow:auto;background:var(--bg);position:relative}.av-editor{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;max-width:860px;margin:0 auto;width:100%}.av-wave{width:100%;height:120px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.av-video{width:100%;max-height:60vh;border-radius:var(--r-md);background:#000;box-shadow:var(--shadow-md)}.av-range{display:flex;flex-direction:column;gap:.5rem}.av-range label{display:grid;grid-template-columns:3.2rem 1fr;align-items:center;gap:.6rem;font-size:.8rem;color:var(--text-muted);font-weight:600}.av-range input[type=range]{width:100%;accent-color:var(--brand-500)}.av-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.av-controls button{padding:.5rem .85rem;border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .14s var(--ease)}.av-controls button:hover{border-color:var(--brand-500);background:var(--surface-hover)}.av-controls button.active{background:var(--brand-gradient);color:#fff;border-color:transparent}.av-controls .av-rec.active{background:#ef4444;color:#fff;border-color:transparent}.av-status{font-size:.8rem;color:var(--text-muted);margin-left:auto}.docx-editor{display:flex;flex-direction:column;min-height:100%}.docx-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.5rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2}.docx-toolbar button{min-width:2.2rem;padding:.4rem .6rem;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--text);font-size:.85rem;cursor:pointer;transition:all .12s var(--ease)}.docx-toolbar button:hover{background:var(--surface-hover);border-color:var(--border)}.docx-sep{width:1px;height:20px;background:var(--border);margin:0 .3rem}.docx-page{flex:1;overflow:auto;background:var(--bg);padding:2.5rem;display:block}.docx-page>*{max-width:720px;margin-left:auto;margin-right:auto}.docx-page{outline:none;line-height:1.6;color:var(--text)}.docx-page h1{font-size:1.8rem;font-weight:800;margin:1rem auto .6rem}.docx-page h2{font-size:1.4rem;font-weight:700;margin:.9rem auto .5rem}.docx-page h3{font-size:1.15rem;font-weight:700;margin:.8rem auto .4rem}.docx-page p{margin:0 auto .7rem}.docx-page ul,.docx-page ol{margin:0 auto .7rem;padding-left:1.5rem}.sheet-wrap{display:flex;flex-direction:column;min-height:100%}.sheet-cellbar{display:flex;align-items:stretch;gap:.4rem;padding:.4rem .5rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:3}.sheet-ref{display:inline-flex;align-items:center;justify-content:center;min-width:3.2rem;padding:0 .6rem;font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm)}.sheet-cell-input{flex:1;min-width:0;padding:.5rem .7rem;font-size:.9rem;font-family:var(--mono);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);outline:none}.sheet-cell-input:focus{box-shadow:inset 0 0 0 2px var(--brand-500);border-color:var(--brand-500)}.sheet-ops{display:flex;flex-wrap:wrap;gap:.35rem;padding:.4rem .5rem;background:var(--surface);border-bottom:1px solid var(--border)}.sheet-ops button{flex:1 1 auto;min-width:4.5rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--ease),border-color var(--ease)}.sheet-ops button:hover{background:color-mix(in srgb,var(--brand-500) 10%,var(--surface-2));border-color:var(--brand-500)}@media (min-width: 720px){.sheet-ops button{flex:0 0 auto}}.sheet-tabs{display:flex;gap:.25rem;padding:.4rem .5rem 0;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;position:sticky;top:0;z-index:2}.sheet-tab{border:1px solid transparent;border-bottom:none;background:transparent;color:var(--text-muted);padding:.4rem .8rem;border-radius:var(--r-sm) var(--r-sm) 0 0;font-size:.8rem;cursor:pointer;white-space:nowrap}.sheet-tab.active{background:var(--bg);color:var(--text);border-color:var(--border);font-weight:600}.sheet-grid{flex:1;overflow:auto;position:relative}.sheet-fill-handle{position:absolute;display:none;width:10px;height:10px;margin:-6px 0 0 -6px;background:var(--brand-500);border:1.5px solid var(--surface);border-radius:2px;cursor:crosshair;z-index:5;touch-action:none}.sheet-table{border-collapse:collapse;font-size:.82rem;font-family:var(--mono)}.sheet-table th{position:sticky;background:var(--surface-2);color:var(--text-muted);font-weight:600;border:1px solid var(--border);padding:.25rem .5rem;text-align:center;z-index:1}.sheet-table thead th{top:0}.sheet-table .sheet-corner,.sheet-table .sheet-rownum{left:0;z-index:3;min-width:42px}.sheet-table thead th:first-child{z-index:4}.sheet-table td{border:1px solid var(--border);padding:.25rem .5rem;min-width:90px;max-width:320px;outline:none;background:var(--surface);color:var(--text)}.sheet-table td:focus{box-shadow:inset 0 0 0 2px var(--brand-500);background:color-mix(in srgb,var(--brand-500) 6%,var(--surface))}.sheet-table td.sel{box-shadow:inset 0 0 0 2px var(--brand-500);background:color-mix(in srgb,var(--brand-500) 8%,var(--surface))}.sheet-table td.in-range{background:color-mix(in srgb,var(--brand-500) 14%,var(--surface))}.sheet-table td.fill-target{background:color-mix(in srgb,var(--brand-500) 20%,var(--surface));box-shadow:inset 0 0 0 1px var(--brand-500)}.pdf-toolbar{position:sticky;top:0;z-index:3;display:flex;gap:.4rem;padding:.5rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.pdf-toolbar button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:.4rem .85rem;border-radius:var(--r-sm);font-size:.8rem;cursor:pointer}.pdf-toolbar button.active{background:var(--brand-gradient);color:#fff;border-color:transparent}.pdf-page{position:relative;margin:1.25rem auto;width:fit-content;box-shadow:var(--shadow-md);border-radius:4px;background:#fff}.pdf-page canvas{display:block;border-radius:4px}.pdf-page-ctrls{display:flex;gap:.35rem;align-items:center;justify-content:center;padding:.4rem;color:var(--text-muted);font-size:.78rem}.pdf-page-ctrls button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:.25rem .55rem;font-size:.78rem;cursor:pointer}.pdf-hint{color:var(--text-muted);font-size:.75rem;align-self:center;margin-left:auto}.pdf-annot-layer{position:absolute;top:0;right:0;bottom:0;left:0}.pdf-text-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;opacity:1;line-height:1;z-index:1}.pdf-text-layer :is(span,br){color:transparent;position:absolute;white-space:pre;transform-origin:0 0}.pdf-text-layer ::selection{background:#5078ff59}.pdf-annot{position:absolute;box-sizing:border-box;z-index:2;color:#111}.pdf-annot.selected{outline:2px solid var(--brand-500)}.pdf-annot-body{outline:none;width:100%;min-height:1em;padding:1px 3px;white-space:pre-wrap;word-break:break-word;cursor:text}.pdf-annot-text{background:transparent}.pdf-annot-box{background:#fff;border:1px dashed rgba(0,0,0,.25)}.pdf-annot-highlight{background:#ffe60059;border-radius:2px}.pdf-annot-signature img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.pdf-annot-grip{position:absolute;top:-18px;left:-2px;background:var(--brand-500);color:#fff;font-size:11px;line-height:16px;padding:0 5px;border-radius:3px;cursor:move;-webkit-user-select:none;user-select:none}.pdf-annot-del{position:absolute;top:-12px;right:-12px;width:22px;height:22px;border-radius:50%;border:none;background:#e5484d;color:#fff;font-size:12px;cursor:pointer;z-index:3}.pdf-annot-resize{position:absolute;right:-6px;bottom:-6px;width:14px;height:14px;background:var(--brand-500);border:2px solid #fff;border-radius:3px;cursor:nwse-resize}.pdf-annot-font{position:absolute;top:-20px;right:22px;display:flex;gap:2px}.pdf-annot-font button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:11px;border-radius:3px;padding:0 5px;cursor:pointer}.sig-modal{max-width:540px}.sig-tabs{display:flex;gap:.4rem;margin:.25rem 0 .75rem}.sig-tab{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--r-sm);padding:.35rem .9rem;cursor:pointer;font-size:.82rem}.sig-tab.active{background:var(--brand-gradient);color:#fff;border-color:transparent}.sig-canvas{width:100%;height:180px;background:#fff;border:1px dashed var(--border);border-radius:var(--r-sm);touch-action:none;cursor:crosshair}.sig-clear{margin-top:.5rem;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:.35rem .8rem;cursor:pointer;font-size:.8rem}.sig-type-input{width:100%;padding:.6rem .75rem;font-size:.95rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg);color:var(--text);outline:none}.sig-type-preview{margin-top:.75rem;padding:.75rem;background:#fff;color:#111;border-radius:var(--r-sm);font-family:Segoe Script,Brush Script MT,cursive;font-style:italic;font-size:2rem;text-align:center;min-height:3rem}.pptx-note,.pptx-empty{margin:1rem;padding:.75rem 1rem;border-radius:var(--r-sm);background:var(--warning-bg);color:var(--warning);font-size:.85rem}.pptx-empty{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);text-align:center}.pptx-slide{margin:1rem auto;max-width:780px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm)}.pptx-slide-num{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-600);margin-bottom:.6rem}.pptx-line{font-size:.95rem;margin:.2rem 0;color:var(--text)}.pptx-line.muted{color:var(--text-faint);font-style:italic}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1480;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.command-palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);width:92%;max-width:600px;overflow:hidden}.command-palette input{width:100%;padding:1rem 1.15rem;border:none;border-bottom:1px solid var(--border);font-size:1rem;background:transparent;min-height:54px}.command-palette input::placeholder{color:var(--text-faint)}.command-palette ul{list-style:none;max-height:400px;overflow-y:auto;padding:.4rem}.command-palette li{padding:.7rem .85rem;cursor:pointer;border-radius:var(--r-sm);display:flex;align-items:center;font-size:.9rem;transition:background .12s var(--ease)}.command-palette li:hover{background:var(--surface-hover)}.command-palette li.selected{background:color-mix(in srgb,var(--brand-500) 16%,transparent)}.ro-banner,.rw-banner{flex-shrink:0;padding:.6rem 1rem;font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;border-bottom:1px solid var(--border)}.ro-banner{background:var(--warning-bg);color:var(--warning)}.rw-banner{background:var(--success-bg);color:var(--success)}.ro-banner:before{content:"👁"}.rw-banner:before{content:"✎"}.rw-banner button{background:var(--success);color:#fff;border:none;padding:.4rem .9rem;border-radius:var(--r-full);font-size:.8rem;font-weight:600;cursor:pointer;transition:filter .15s var(--ease)}.rw-banner button:hover{filter:brightness(1.08)}.rw-banner [data-role=save-back-status]{font-weight:500}.toast-region{position:fixed;bottom:1.25rem;right:1.25rem;z-index:2000;display:flex;flex-direction:column;gap:.6rem;max-width:min(380px,calc(100vw - 2rem))}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand-500);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:.8rem 1rem;font-size:.87rem;color:var(--text);display:flex;align-items:flex-start;gap:.55rem;animation:toast-in .28s var(--ease)}.toast.leaving{animation:toast-out .22s var(--ease) forwards}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--brand-500)}.toast:before{font-size:1rem;line-height:1.3}.toast.success:before{content:"✓";color:var(--success)}.toast.error:before{content:"⚠";color:var(--danger)}.toast.info:before{content:"ℹ";color:var(--brand-500)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c148c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .18s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px;padding:1.5rem;animation:modal-in .22s var(--ease)}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}.modal h3{font-size:1.05rem;font-weight:700;margin-bottom:.5rem}.modal p{color:var(--text-muted);font-size:.9rem;margin-bottom:1.25rem}.new-file-modal{max-width:460px}.new-file-types{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.5rem 0 1rem}@media (min-width: 480px){.new-file-types{grid-template-columns:repeat(3,1fr)}}.new-file-type{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}.new-file-type:hover{border-color:var(--brand-500)}.new-file-type.selected{border-color:var(--brand-500);background:color-mix(in srgb,var(--brand-500) 10%,var(--surface-2))}.new-file-type .nf-icon{font-size:1.4rem}.new-file-type .nf-label{font-size:.78rem;font-weight:600;color:var(--text);text-align:center}.new-file-name-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:1.25rem}.new-file-name{display:block;width:100%;margin-top:.35rem;padding:.6rem .75rem;font-size:.9rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);outline:none}.new-file-name:focus{border-color:var(--brand-500);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand-500) 30%,transparent)}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end}.modal-actions button{padding:.55rem 1.1rem;border-radius:var(--r-sm);font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);transition:all .13s var(--ease)}.modal-actions .btn-cancel:hover{background:var(--surface-hover)}.modal-actions .btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.modal-actions .btn-danger:hover{filter:brightness(1.08)}.modal.wide{max-width:min(900px,96vw);display:flex;flex-direction:column;max-height:88vh}.compare-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.compare-head h3{margin:0}.modal-close{background:transparent;border:none;cursor:pointer;width:36px;height:36px;border-radius:var(--r-sm);color:var(--text-muted);font-size:1rem}.modal-close:hover{background:var(--surface-hover);color:var(--text)}.compare-selects{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.compare-selects select{flex:1;min-width:0;padding:.5rem .7rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}.compare-vs{color:var(--text-faint);font-size:.8rem;font-weight:600}.diff-view{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg);font-family:var(--mono);font-size:.82rem;line-height:1.5}.diff-line{padding:0 .75rem;white-space:pre-wrap;word-break:break-word}.diff-eq{color:var(--text-muted)}.diff-add{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--text)}.diff-del{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--text)}.diff-identical{padding:1.5rem;text-align:center;color:var(--text-muted);font-family:var(--font)}@media (max-width: 719px){.file-drawer{position:fixed;top:var(--header-h);left:0;bottom:0;transform:translate(-100%);transition:transform .28s var(--ease);box-shadow:var(--shadow-lg)}.file-drawer.open{transform:translate(0)}.drawer-backdrop{position:fixed;inset:var(--header-h) 0 0 0;background:#0a0c1473;z-index:25;opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}.drawer-backdrop.show{opacity:1;pointer-events:auto}[data-role=editor-host]{flex-direction:column}.preview-pane{border-left:none;border-top:1px solid var(--border)}.auth-bar .auth-link{padding:.4rem .6rem}.app-header{height:auto;min-height:var(--header-h);flex-wrap:wrap;row-gap:0}.editor-tools{order:99;flex-basis:100%;width:100%;padding:.3rem .5rem;background:color-mix(in srgb,var(--surface) 62%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.editor-tools:empty{display:none}.editor-tools button{padding:.3rem .6rem;font-size:.76rem;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.toolbar{padding:.3rem .5rem;gap:.3rem;background:color-mix(in srgb,var(--surface) 62%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.toolbar button{padding:.3rem .6rem;font-size:.76rem;background:color-mix(in srgb,var(--surface-2) 55%,transparent);white-space:nowrap;flex:0 0 auto}.view-toggle{flex:0 0 auto}.view-toggle button{background:color-mix(in srgb,var(--surface) 55%,transparent)!important}.pdf-toolbar,.sheet-ops,.sheet-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pdf-toolbar::-webkit-scrollbar,.sheet-ops::-webkit-scrollbar,.sheet-tabs::-webkit-scrollbar{display:none}.pdf-toolbar{padding:.35rem .5rem;background:color-mix(in srgb,var(--surface) 62%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pdf-toolbar button,.sheet-ops button,.sheet-tabs button{flex:0 0 auto;white-space:nowrap}.pdf-toolbar button{padding:.3rem .6rem;font-size:.76rem}.pdf-hint{display:none}}@media (min-width: 720px){.hamburger,.drawer-backdrop{display:none}[data-role=editor-host][data-view=split]:has(.preview-pane){display:grid;grid-template-columns:var(--split-left, 1fr) 6px minmax(140px,1fr);grid-template-rows:minmax(0,1fr)}[data-view=split]:has(.preview-pane) .cm-editor{grid-column:1;grid-row:1;width:auto;min-width:140px;min-height:0}[data-view=split]:has(.preview-pane) .pane-resizer{grid-column:2;grid-row:1;display:block}[data-view=split]:has(.preview-pane) .preview-pane{grid-column:3;grid-row:1;width:auto;min-height:0}}@media (hover: none) and (pointer: coarse){.file-item,.toolbar button,.auth-link{min-height:44px}.delete-btn{opacity:1}}.doc-body:has(.sketch-host){overflow:hidden}.sketch-host,.doc-body .excalidraw{height:100%;width:100%}.excalidraw{--zIndex-layerUI: 5}.pdf-ocr-btn:disabled{opacity:.6;cursor:wait}.editor-tools{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding:0 .2rem}.editor-tools::-webkit-scrollbar{display:none}.editor-tools:empty{flex:1}.editor-tools button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:.3rem .66rem;border-radius:var(--r-sm);cursor:pointer;font-size:.8rem;font-weight:500;white-space:nowrap;flex:0 0 auto;transition:all .13s var(--ease)}.editor-tools button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.editor-tools button:active{transform:translateY(1px)}.theme-popover{position:fixed;z-index:120;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:.4rem;display:flex;flex-direction:column;gap:.15rem;min-width:210px;animation:pop-in .14s var(--ease)}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.theme-option{display:flex;align-items:center;gap:.6rem;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:.4rem .5rem;cursor:pointer;text-align:left;color:var(--text);font-size:.85rem}.theme-option:hover{background:var(--surface-hover)}.theme-option.selected{border-color:var(--brand-500);background:color-mix(in srgb,var(--brand-500) 10%,transparent)}.theme-swatch{width:26px;height:26px;border-radius:7px;flex:0 0 auto;border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow-sm)}.theme-label{flex:1}.theme-anim{color:var(--brand-500);font-size:.8rem}.compare-split{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--bg);display:flex;flex-direction:column}.compare-split-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.4rem .8rem;border-bottom:1px solid var(--border);background:var(--surface)}.compare-split-title{font-weight:600;font-size:.9rem}.compare-split-close{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);padding:.35rem .8rem;border-radius:var(--r-full);cursor:pointer;font-size:.82rem}.compare-split-close:hover{background:var(--surface-hover);border-color:var(--brand-500)}.compare-split-body{flex:1;display:grid;grid-template-columns:1fr 90px 1fr;min-height:0}.compare-pane{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.compare-pane[data-role=right]{border-left:1px solid var(--border)}.compare-pane-head{flex-shrink:0;padding:.4rem .5rem;border-bottom:1px solid var(--border);background:var(--surface)}.compare-pane-head select{width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);padding:.35rem .5rem;font-size:.82rem;cursor:pointer}.compare-pane-host{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.compare-pane-host .cm-editor{flex:1}.compare-gutter{border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;padding:.5rem .3rem;align-items:center}.compare-hunk{display:flex;align-items:center;gap:.2rem;width:100%;justify-content:center}.compare-apply{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--brand-500);width:26px;height:24px;border-radius:var(--r-sm);cursor:pointer;font-size:.78rem;line-height:1}.compare-apply:hover{background:color-mix(in srgb,var(--brand-500) 14%,transparent);border-color:var(--brand-500)}.compare-hunk-label{font-size:.68rem;color:var(--text-muted);font-family:var(--mono);white-space:nowrap;background:transparent;border:none;cursor:pointer;padding:.15rem .2rem}.compare-hunk-label:hover{color:var(--text);text-decoration:underline}.compare-identical{font-size:.78rem;color:var(--text-muted);text-align:center;padding:1rem .4rem}.cm-diff-add{background:color-mix(in srgb,#16a34a 22%,transparent)}.cm-diff-del{background:color-mix(in srgb,#dc2626 20%,transparent)}.cm-diff-chg{background:color-mix(in srgb,#d97706 22%,transparent)}html[data-theme=dracula]{--bg: #21222c;--surface: #282a36;--surface-2: #2f3140;--surface-hover: #383a4a;--border: #383a4a;--border-strong: #4b4e63;--text: #f8f8f2;--text-muted: #b7b9c7;--text-faint: #7d80a0;--brand-500: #bd93f9;--brand-600: #a97ff0;--brand-700: #9264e6;--brand-gradient: linear-gradient(135deg, #bd93f9 0%, #ff79c6 100%);--cm-bg: transparent;--cm-fg: #f8f8f2;--cm-gutter-fg: #6272a4;--cm-active-line: rgba(189,147,249,.1);--cm-cursor: #f8f8f2;--cm-selection: rgba(189,147,249,.3)}html[data-theme=solarized]{--bg: #fdf6e3;--surface: #fbf1d3;--surface-2: #f4ead0;--surface-hover: #eee0c0;--border: #e6d9b8;--border-strong: #d3c39a;--text: #073642;--text-muted: #586e75;--text-faint: #93a1a1;--brand-500: #268bd2;--brand-600: #1f7bbd;--brand-700: #1a6aa3;--brand-gradient: linear-gradient(135deg, #268bd2 0%, #2aa198 100%);--cm-bg: transparent;--cm-fg: #073642;--cm-gutter-fg: #93a1a1;--cm-active-line: rgba(38,139,210,.08);--cm-cursor: #268bd2;--cm-selection: rgba(38,139,210,.2)}html[data-theme=aurora]{--bg: #0b1020;--surface: #131a30;--surface-2: #1a2340;--surface-hover: #222d52;--border: #26315a;--border-strong: #3a4980;--text: #eaf0ff;--text-muted: #a9b6de;--text-faint: #6d7aa8;--brand-500: #7c5cff;--brand-600: #6a49f0;--brand-700: #5a3ce0;--brand-gradient: linear-gradient(135deg, #7c5cff 0%, #22d3ee 100%);--cm-bg: transparent;--cm-fg: #eaf0ff;--cm-gutter-fg: #6d7aa8;--cm-active-line: rgba(124,92,255,.12);--cm-cursor: #22d3ee;--cm-selection: rgba(124,92,255,.3)}html[data-theme=sunset]{--bg: #1a1024;--surface: #241531;--surface-2: #2e1a3d;--surface-hover: #3a204c;--border: #3a2350;--border-strong: #55336f;--text: #ffeef0;--text-muted: #e0b6c0;--text-faint: #a2778a;--brand-500: #ff7a59;--brand-600: #ff6242;--brand-700: #f04e30;--brand-gradient: linear-gradient(135deg, #ff7a59 0%, #ff4d94 55%, #a742ff 100%);--cm-bg: transparent;--cm-fg: #ffeef0;--cm-gutter-fg: #a2778a;--cm-active-line: rgba(255,122,89,.12);--cm-cursor: #ff7a59;--cm-selection: rgba(255,77,148,.28)}html[data-theme=ocean]{--bg: #071a2b;--surface: #0c2337;--surface-2: #123048;--surface-hover: #183c59;--border: #17415f;--border-strong: #235c82;--text: #e6f6ff;--text-muted: #a4cbe0;--text-faint: #6b93aa;--brand-500: #22d3ee;--brand-600: #12bcd6;--brand-700: #0aa0b8;--brand-gradient: linear-gradient(135deg, #22d3ee 0%, #3b82f6 100%);--cm-bg: transparent;--cm-fg: #e6f6ff;--cm-gutter-fg: #6b93aa;--cm-active-line: rgba(34,211,238,.12);--cm-cursor: #22d3ee;--cm-selection: rgba(59,130,246,.28)}html[data-theme=forest]{--bg: #0f1c14;--surface: #16281c;--surface-2: #1d3325;--surface-hover: #264430;--border: #234331;--border-strong: #345f47;--text: #e8fff0;--text-muted: #a7ceb6;--text-faint: #6c9580;--brand-500: #34d399;--brand-600: #22c088;--brand-700: #14a674;--brand-gradient: linear-gradient(135deg, #34d399 0%, #a3e635 100%);--cm-bg: transparent;--cm-fg: #e8fff0;--cm-gutter-fg: #6c9580;--cm-active-line: rgba(52,211,153,.12);--cm-cursor: #34d399;--cm-selection: rgba(163,230,53,.24)}html[data-theme-animated] body:before{content:"";position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-1;background:radial-gradient(40% 50% at 20% 20%,color-mix(in srgb,var(--brand-500) 40%,transparent),transparent 70%),radial-gradient(45% 55% at 80% 30%,color-mix(in srgb,var(--brand-700) 45%,transparent),transparent 70%),radial-gradient(50% 60% at 50% 90%,color-mix(in srgb,var(--brand-600) 35%,transparent),transparent 70%);filter:blur(60px) saturate(1.1);opacity:.55;animation:aurora-drift 22s ease-in-out infinite alternate;pointer-events:none}@keyframes aurora-drift{0%{transform:translate3d(-4%,-3%,0) scale(1.05) rotate(0)}50%{transform:translate3d(4%,2%,0) scale(1.12) rotate(6deg)}to{transform:translate3d(-2%,4%,0) scale(1.08) rotate(-4deg)}}html[data-theme-animated] .app-header,html[data-theme-animated] .file-drawer,html[data-theme-animated] .editor-area{background:color-mix(in srgb,var(--surface) 82%,transparent)}@media (prefers-reduced-motion: reduce){html[data-theme-animated] body:before{animation:none}}.select-btn{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-sm);padding:.4rem .6rem;font-size:.8rem;cursor:pointer;transition:all .13s var(--ease)}.select-btn:hover{background:var(--surface-hover);color:var(--text)}.select-btn.active{border-color:var(--brand-500);color:var(--brand-500)}.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem;margin:0 .5rem .4rem;background:color-mix(in srgb,var(--brand-500) 8%,var(--surface-2));border:1px solid var(--border);border-radius:var(--r-sm);font-size:.8rem;color:var(--text-muted)}.selection-bar-actions{display:flex;gap:.4rem}.selection-bar .btn-cancel,.selection-bar .btn-danger{padding:.3rem .7rem;border-radius:var(--r-sm);font-size:.78rem;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.selection-bar .btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.selection-bar .btn-danger:disabled{opacity:.5;cursor:not-allowed}.file-check{flex:0 0 auto;width:16px;height:16px;margin:0 .2rem 0 .4rem;accent-color:var(--brand-500);cursor:pointer}li.selecting{display:flex;align-items:center}li.selecting .delete-btn{display:none}.img-editor{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--surface-2);color:var(--text);font:inherit}.img-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;flex:0 0 auto;scrollbar-width:thin}.img-toolbar::-webkit-scrollbar{height:6px}.img-toolbar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full)}.img-tool{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 11px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease)}.img-tool:hover{background:var(--surface-hover)}.img-tool[aria-pressed=true]{background:var(--brand-gradient);border-color:transparent;color:#fff}.img-tool:disabled{opacity:.5;cursor:not-allowed}.img-sep{flex:0 0 auto;width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.img-spacer{flex:1 1 auto}.img-body{display:flex;flex:1 1 auto;min-height:0}.img-stage{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto;background:repeating-conic-gradient(var(--surface-2) 0% 25%,var(--surface) 0% 50%) 50% / 24px 24px}.img-canvas-wrap{position:relative;line-height:0;box-shadow:var(--shadow-lg)}.img-canvas{display:block;max-width:100%;max-height:calc(100vh - 220px);touch-action:none}.img-crop{position:absolute;border:1px solid #fff;box-shadow:0 0 0 100vmax #00000080;cursor:move}.img-crop-handle{position:absolute;width:14px;height:14px;background:var(--brand-500);border:2px solid #fff;border-radius:3px}.img-crop-handle.nw{left:-7px;top:-7px;cursor:nwse-resize}.img-crop-handle.ne{right:-7px;top:-7px;cursor:nesw-resize}.img-crop-handle.sw{left:-7px;bottom:-7px;cursor:nesw-resize}.img-crop-handle.se{right:-7px;bottom:-7px;cursor:nwse-resize}.img-sel{position:absolute;border:1px dashed var(--brand-500);pointer-events:none}.img-sel-handle{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;background:var(--brand-500);border:2px solid #fff;border-radius:3px;pointer-events:auto;cursor:nwse-resize}.img-panel{flex:0 0 288px;width:288px;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;padding:14px}.img-panel[hidden]{display:none}.img-panel-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:4px 0 10px}.img-field{margin-bottom:12px}.img-field>label{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:5px}.img-field input[type=range]{width:100%;accent-color:var(--brand-500)}.img-row{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.img-input{width:72px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-size:13px}.img-input.wide{flex:1 1 auto;width:auto}.img-btn{padding:7px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-size:13px;cursor:pointer;transition:background .15s var(--ease)}.img-btn:hover{background:var(--surface-hover)}.img-btn.primary{background:var(--brand-gradient);border-color:transparent;color:#fff}.img-btn.danger{color:#ef4444}.img-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);cursor:pointer}.img-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.img-preset{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);padding:4px;cursor:pointer;text-align:center;transition:border-color .15s var(--ease)}.img-preset:hover{border-color:var(--border-strong)}.img-preset canvas{width:100%;height:54px;object-fit:cover;border-radius:4px;display:block}.img-preset span{display:block;font-size:11px;color:var(--text-muted);margin-top:3px}.img-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.img-chip{padding:5px 10px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface-2);color:var(--text);font-size:12px;cursor:pointer}.img-chip[aria-pressed=true]{background:var(--brand-500);border-color:transparent;color:#fff}.img-stickers{display:flex;flex-wrap:wrap;gap:6px}.img-sticker{font-size:24px;line-height:1;padding:6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer}.img-layers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.img-layer{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);font-size:13px}.img-layer.sel{border-color:var(--brand-500)}.img-layer .name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.img-layer button{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;font-size:13px}.img-layer button:hover{color:var(--text)}.img-note{font-size:12px;color:var(--text-muted);margin-top:10px}.img-note.error{color:#ef4444}@media (max-width: 720px){.img-body{flex-direction:column}.img-panel{flex:0 0 auto;width:100%;border-left:none;border-top:1px solid var(--border);max-height:44%}.img-canvas{max-height:46vh}}.pdf-tool-group{display:flex;align-items:center;gap:.3rem;padding-right:.5rem;margin-right:.25rem;border-right:1px solid var(--border);flex:0 0 auto}.pdf-tool-group:last-of-type{border-right:none}.pdf-style-group .pdf-color{width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer}.pdf-width{height:30px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-size:.78rem;padding:0 .3rem;cursor:pointer}.pdf-layout{display:flex;gap:.75rem;align-items:flex-start}.pdf-sidebar{flex:0 0 128px;max-height:78vh;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.pdf-main{flex:1 1 auto;max-height:82vh;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:.75rem;min-width:0}.pdf-thumb{position:relative;border:2px solid transparent;border-radius:var(--r-sm);background:var(--surface);cursor:pointer;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);box-shadow:var(--shadow-sm)}.pdf-thumb:hover{border-color:var(--border-strong)}.pdf-thumb.active{border-color:var(--brand-500);box-shadow:var(--shadow-md)}.pdf-thumb.dragging{opacity:.4}.pdf-thumb.drop-target{border-color:var(--brand-500);border-style:dashed}.pdf-thumb img{display:block;width:100%;border-radius:calc(var(--r-sm) - 2px);background:#fff}.pdf-thumb-num{position:absolute;bottom:3px;right:4px;font-size:.68rem;font-weight:600;color:#fff;background:#0009;border-radius:var(--r-sm);padding:0 .35rem;pointer-events:none}.pdf-thumb-check{position:absolute;top:4px;left:4px;width:16px;height:16px;cursor:pointer;z-index:2}.pdf-annot-rect,.pdf-annot-circle{background:transparent}.pdf-annot-image img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.pdf-vector-layer{z-index:3}.pdf-vector-layer .selected{outline:none;filter:drop-shadow(0 0 2px var(--brand-500))}@media (max-width: 640px){.pdf-tool-group{padding-right:.35rem}.pdf-layout{flex-direction:column}.pdf-sidebar{flex-direction:row;flex:0 0 auto;width:100%;max-height:none;overflow-x:auto;overflow-y:hidden}.pdf-sidebar .pdf-thumb{flex:0 0 84px}.pdf-main{max-height:none;width:100%}}.vid-editor{display:flex;flex-direction:column;gap:12px;width:100%;max-width:1100px;margin:0 auto;color:var(--text)}.vid-stage{position:relative;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md, 12px);overflow:hidden;min-height:220px}.vid-video{display:block;max-width:100%;max-height:60vh;border-radius:var(--r-md, 12px)}.vid-crop-layer{position:absolute;top:0;right:0;bottom:0;left:0;cursor:crosshair;display:none}.vid-crop-layer.active{display:block}.vid-crop-box{position:absolute;border:2px solid var(--brand-500);box-shadow:0 0 0 9999px #00000073;box-sizing:border-box;pointer-events:none}.vid-timeline{position:relative;border:1px solid var(--border);border-radius:var(--r-sm, 8px);background:var(--surface-2);padding:6px;overflow:hidden}.vid-thumbs{display:flex;height:54px;gap:1px;border-radius:var(--r-sm, 8px);overflow:hidden;background:var(--surface)}.vid-thumbs img,.vid-thumbs canvas{height:54px;flex:1 1 0;object-fit:cover;min-width:0;display:block}.vid-track{position:absolute;top:6px;right:6px;bottom:6px;left:6px;pointer-events:none}.vid-seg{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--brand-500) 22%,transparent);border-left:2px solid var(--brand-500);border-right:2px solid var(--brand-500)}.vid-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--text);box-shadow:0 0 4px #0009}.vid-scrub{position:absolute;top:6px;right:6px;bottom:6px;left:6px;cursor:pointer}.vid-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:thin}.vid-tab{flex:0 0 auto;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:13px;cursor:pointer;white-space:nowrap;transition:all .14s var(--ease)}.vid-tab:hover{border-color:var(--brand-500);color:var(--text)}.vid-tab.active{background:var(--brand-gradient);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.vid-panel{display:none;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--r-md, 12px);background:var(--surface);box-shadow:var(--shadow-sm)}.vid-panel.active{display:flex}.vid-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted);min-width:120px}.vid-field.row{flex-direction:row;align-items:center;gap:8px}.vid-field input[type=range]{width:150px;accent-color:var(--brand-500)}.vid-field input[type=text],.vid-field select{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-sm, 8px);background:var(--surface-2);color:var(--text);font-size:13px}.vid-field input[type=color]{width:36px;height:28px;border:none;background:none;padding:0}.vid-btn{flex:0 0 auto;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-sm, 8px);background:var(--surface-2);color:var(--text);font-size:13px;cursor:pointer;transition:all .14s var(--ease);white-space:nowrap}.vid-btn:hover{border-color:var(--brand-500);background:var(--surface-hover)}.vid-btn.active{background:var(--brand-gradient);color:#fff;border-color:transparent}.vid-btn:disabled{opacity:.5;cursor:not-allowed}.vid-statusbar{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);min-height:20px}.vid-progress{flex:1 1 auto;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;display:none}.vid-progress.active{display:block}.vid-progress>span{display:block;height:100%;width:0%;background:var(--brand-gradient);transition:width .2s var(--ease)}.vid-transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vid-time{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-muted)}.vid-seglist{display:flex;flex-wrap:wrap;gap:6px;width:100%}.vid-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;font-variant-numeric:tabular-nums}.vid-chip button{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1}.vid-chip button:hover{color:var(--brand-500)}@media (max-width: 640px){.vid-field input[type=range]{width:120px}}.aud-editor{display:flex;flex-direction:column;gap:10px;width:100%;color:var(--text)}.aud-toolbar{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.aud-group{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.aud-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint, var(--text-muted));padding:0 4px}.aud-btn{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:6px 10px;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease)}.aud-btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.aud-btn:active{transform:translateY(1px)}.aud-btn.active{background:color-mix(in srgb,var(--brand-500) 14%,var(--surface));border-color:var(--brand-500);color:var(--text)}.aud-btn:disabled{opacity:.45;cursor:not-allowed}.aud-btn.aud-primary{background:var(--brand-gradient, var(--brand-500));border-color:transparent;color:#fff}.aud-btn.aud-rec.active{background:#e5484d;border-color:#e5484d;color:#fff}.aud-scroll{position:relative;overflow-x:auto;overflow-y:hidden;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm) inset}.aud-track{position:relative;height:176px}.aud-ruler,.aud-wave{display:block;position:absolute;left:0;cursor:text}.aud-ruler{top:0;height:24px;cursor:default}.aud-wave{top:24px;height:152px;touch-action:none}.aud-status{font-size:12px;color:var(--text-muted);min-height:16px;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-editor{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--surface-2);color:var(--text);font:inherit}.game-topbar{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;flex:0 0 auto;scrollbar-width:thin}.game-tabs{display:flex;gap:4px;flex:0 0 auto}.game-tab{flex:0 0 auto;padding:7px 14px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease)}.game-tab:hover{background:var(--surface-hover)}.game-tab[aria-selected=true]{background:var(--brand-gradient);border-color:transparent;color:#fff}.game-hist{display:flex;gap:4px;flex:0 0 auto}.game-btn{flex:0 0 auto;padding:7px 11px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease)}.game-btn:hover{background:var(--surface-hover)}.game-live{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}.game-live-btn{color:var(--text-muted)}.game-live-btn.game-live-on{color:#10b981;border-color:#10b981}.game-roomlink,.game-avatars{display:flex;gap:4px}.game-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r-full);color:#fff;font-size:11px;font-weight:600;box-shadow:var(--shadow-sm)}.game-body{flex:1 1 auto;min-height:0;overflow:auto;padding:12px}.game-picker{max-width:720px;margin:24px auto}.game-picker-title{margin:0 0 16px;font-size:20px}.game-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.game-picker-card{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.game-picker-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.game-picker-icon{font-size:34px}.game-picker-name{font-size:16px;font-weight:600}.game-picker-blurb{font-size:13px;color:var(--text-muted)}.game-level{display:flex;flex-direction:column;gap:10px}.game-palette{display:flex;flex-wrap:wrap;gap:6px}.game-swatch{padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer}.game-swatch:hover{background:var(--surface-hover)}.game-swatch[aria-pressed=true]{background:var(--brand-gradient);border-color:transparent;color:#fff}.game-resize{display:flex;align-items:center;gap:6px}.game-x{color:var(--text-muted)}.game-label{font-size:13px;color:var(--text-muted)}.game-num,.game-text{padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:13px}.game-num{width:64px}.game-text{width:100%;max-width:320px}.game-canvas-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:#11151c;max-width:100%}.game-canvas{display:block;image-rendering:pixelated;touch-action:none;cursor:crosshair}.game-sprites{display:flex;flex-direction:column;gap:10px}.game-hint,.game-sprite-row{font-size:13px}.game-hint{color:var(--text-muted);margin:0 0 4px}.game-sprite-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.game-sprite-preview{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:26px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.game-sprite-img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.game-sprite-key{min-width:64px;font-weight:600;text-transform:capitalize}.game-emoji-choices{display:flex;flex-wrap:wrap;gap:4px}.game-emoji{width:32px;height:32px;font-size:18px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer}.game-emoji:hover{background:var(--surface-hover)}.game-upload{font-size:12px;color:var(--text-muted);max-width:180px}.game-rules{display:flex;flex-direction:column;gap:14px;max-width:460px}.game-field{display:flex;flex-direction:column;gap:6px}.game-range{width:100%;accent-color:var(--brand-500)}.game-play{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.game-hud{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.game-hud-item{font-size:15px;font-weight:600}.game-hud-status{font-size:14px;color:var(--text-muted)}.game-dpad{display:flex;gap:8px;flex-wrap:wrap}.game-dbtn{width:52px;height:52px;font-size:20px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.game-dbtn:active{background:var(--brand-gradient);color:#fff}@media (max-width: 640px){.game-live{margin-left:0}.game-topbar{gap:6px}}
