:root{--bg:#09090b;--bg-alt:#0f0f12;--bg-hover:#18181c;--surface:#141418;--surface-2:#1c1c22;--surface-3:#242430;--border:#ffffff12;--border-bright:#ffffff1f;--text:#f4f4f5;--sub:#a1a1aa;--muted:#52525b;--dim:#3f3f46;--docs-primary:#3b82f6;--docs-light:#60a5fa;--docs-dim:#3b82f61f;--docs-border:#3b82f633;--sheets-primary:#10b981;--sheets-light:#34d399;--sheets-dim:#10b9811f;--sheets-border:#10b98133;--slides-primary:#f59e0b;--slides-light:#fbbf24;--slides-dim:#f59e0b1f;--slides-border:#f59e0b33;--green:#10b981;--green-light:#34d399;--red:#ef4444;--red-light:#f87171;--yellow:#f59e0b;--purple:#8b5cf6;--cyan:#06b6d4;--pink:#ec4899;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:9999px;--fs-xs:11px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--fs-4xl:36px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 40px #0009;--shadow-glow-docs:0 0 40px #3b82f626;--shadow-glow-sheets:0 0 40px #10b98126;--shadow-glow-slides:0 0 40px #f59e0b26;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--dur-fast:.15s;--dur-normal:.25s;--dur-slow:.4s;--sidebar-w:260px;--toolbar-h:48px;--ribbon-h:88px;--statusbar-h:28px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:14px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow:hidden}input,button,textarea,select{font-family:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}ul{list-style:none}img{display:block}.font-mono{font-family:JetBrains Mono,monospace}.font-display{font-feature-settings:"cv11";font-family:Inter,sans-serif}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.text-md{font-size:var(--fs-md)}.text-lg{font-size:var(--fs-lg)}.text-xl{font-size:var(--fs-xl)}.text-2xl{font-size:var(--fs-2xl)}.text-3xl{font-size:var(--fs-3xl)}.text-sub{color:var(--sub)}.text-muted{color:var(--muted)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.text-center{text-align:center}.grad-docs{background:linear-gradient(135deg, var(--docs-primary) 0%, var(--cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.grad-sheets{background:linear-gradient(135deg, var(--sheets-primary) 0%, var(--cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.grad-slides{background:linear-gradient(135deg, var(--slides-primary) 0%, var(--pink) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.grad-forge{background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 50%,#f59e0b 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.btn{align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);border-radius:var(--r-md);height:36px;font-size:var(--fs-sm);transition:all var(--dur-fast) var(--ease);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;outline:none;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-sm{height:28px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn-lg{height:44px;padding:0 var(--sp-6);font-size:var(--fs-md)}.btn-ghost{color:var(--sub);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-surface{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-surface:hover{background:var(--surface-3);border-color:var(--border-bright)}.btn-docs{background:var(--docs-primary);color:#fff}.btn-docs:hover{background:var(--docs-light);box-shadow:0 0 20px #3b82f64d}.btn-sheets{background:var(--sheets-primary);color:#fff}.btn-sheets:hover{background:var(--sheets-light);box-shadow:0 0 20px #10b9814d}.btn-slides{background:var(--slides-primary);color:#000}.btn-slides:hover{background:var(--slides-light);box-shadow:0 0 20px #f59e0b4d}.btn-danger{color:var(--red-light);background:#ef44441f;border:1px solid #ef444433}.btn-danger:hover{background:#ef444433}.btn-icon{border-radius:var(--r-sm);width:32px;height:32px;color:var(--sub);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-icon.active{background:var(--surface-3);color:var(--text);border-color:var(--border-bright)}.tb-btn{height:30px;color:var(--sub);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;transition:all .12s;display:inline-flex}.tb-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.tb-btn.active{background:var(--surface-3);color:var(--text);border-color:var(--border-bright)}.tb-btn.active-docs{background:var(--docs-dim);color:var(--docs-light);border-color:var(--docs-border)}.tb-btn.active-sheets{background:var(--sheets-dim);color:var(--sheets-light);border-color:var(--sheets-border)}.tb-btn.active-slides{background:var(--slides-dim);color:var(--slides-light);border-color:var(--slides-border)}.tb-divider{background:var(--border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.forge-input{width:100%;padding:0 var(--sp-3);background:var(--surface);height:36px;color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);transition:border-color var(--dur-fast);outline:none}.forge-input:focus{border-color:var(--docs-primary)}.forge-input::placeholder{color:var(--muted)}.forge-select{background:var(--surface);height:28px;color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:pointer;outline:none;padding:0 6px}.forge-select:focus{border-color:var(--docs-primary)}.forge-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:all var(--dur-normal) var(--ease)}.forge-card:hover{border-color:var(--border-bright);background:var(--surface-2)}.badge{border-radius:var(--r-full);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-docs{background:var(--docs-dim);color:var(--docs-light);border:1px solid var(--docs-border)}.badge-sheets{background:var(--sheets-dim);color:var(--sheets-light);border:1px solid var(--sheets-border)}.badge-slides{background:var(--slides-dim);color:var(--slides-light);border:1px solid var(--slides-border)}.badge-online{color:var(--green-light);background:#10b9811f;border:1px solid #10b98133}.badge-offline{color:var(--muted);border:1px solid var(--border);background:#52525b4d}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--dim);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.forge-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.forge-header{height:var(--toolbar-h);background:var(--bg-alt);border-bottom:1px solid var(--border);padding:0 var(--sp-3);align-items:center;gap:var(--sp-2);z-index:100;flex-shrink:0;display:flex;position:relative}.forge-logo{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text);padding:0 var(--sp-2);font-weight:700;display:flex}.forge-logo svg{flex-shrink:0}.ribbon{background:var(--bg-alt);border-bottom:1px solid var(--border);flex-shrink:0}.ribbon-tabs{padding:0 var(--sp-3);border-bottom:1px solid var(--border);gap:0;display:flex}.ribbon-tab{color:var(--sub);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .12s}.ribbon-tab:hover,.ribbon-tab.active{color:var(--text)}.ribbon-tab.active-docs{color:var(--docs-light);border-bottom-color:var(--docs-primary)}.ribbon-tab.active-sheets{color:var(--sheets-light);border-bottom-color:var(--sheets-primary)}.ribbon-tab.active-slides{color:var(--slides-light);border-bottom-color:var(--slides-primary)}.ribbon-body{align-items:center;gap:2px;padding:6px 12px;display:flex;overflow-x:auto}.ribbon-body::-webkit-scrollbar{height:0}.ribbon-group{border-right:1px solid var(--border);align-items:center;gap:2px;padding:0 8px;display:flex}.ribbon-group:last-child{border-right:none}.ribbon-group-label{color:var(--muted);text-align:center;margin-top:2px;font-size:10px;display:block}.forge-workspace{flex:1;display:flex;overflow:hidden}.forge-sidebar{width:var(--sidebar-w);background:var(--bg-alt);border-right:1px solid var(--border);transition:width var(--dur-normal) var(--ease);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.forge-sidebar.collapsed{width:0}.sidebar-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-files{padding:var(--sp-2);flex:1;overflow-y:auto}.file-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;transition:all .1s;display:flex}.file-item:hover{background:var(--surface-2)}.file-item.active{background:var(--surface-3);border-color:var(--border)}.file-item-icon{border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.file-item-icon.docs{background:var(--docs-dim);color:var(--docs-primary)}.file-item-icon.sheets{background:var(--sheets-dim);color:var(--sheets-primary)}.file-item-icon.slides{background:var(--slides-dim);color:var(--slides-primary)}.file-item-name{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.file-item-time{color:var(--muted);white-space:nowrap;font-size:10px}.forge-main{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.forge-statusbar{height:var(--statusbar-h);background:var(--bg-alt);border-top:1px solid var(--border);padding:0 var(--sp-4);align-items:center;gap:var(--sp-4);font-size:var(--fs-xs);color:var(--muted);flex-shrink:0;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.online{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.offline{background:var(--muted)}.status-dot.syncing{background:var(--yellow);animation:1s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.collab-bar{align-items:center;gap:-8px;display:flex}.collab-avatar{color:#fff;border:2px solid var(--bg-alt);first:margin-left: 0;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-left:-8px;font-size:11px;font-weight:700;transition:transform .15s;display:flex;position:relative}.collab-avatar:first-child{margin-left:0}.collab-avatar:hover{z-index:10;transform:translateY(-2px)scale(1.1)}.landing{background:radial-gradient(circle at 15% 50%, #3b82f60f, transparent 25%), radial-gradient(circle at 85% 30%, #8b5cf60f, transparent 25%), radial-gradient(circle at 50% 80%, #10b9810f, transparent 25%), var(--bg);flex-direction:column;width:100vw;height:100vh;display:flex;position:relative;overflow-y:auto}.landing:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.landing-header{padding:0 var(--sp-8);-webkit-backdrop-filter:blur(16px);z-index:10;background:#0f0f1299;border-bottom:1px solid #ffffff0d;flex-shrink:0;justify-content:space-between;align-items:center;height:72px;display:flex;position:relative}.landing-hero{padding:var(--sp-16) var(--sp-8) var(--sp-12);text-align:center;z-index:5;position:relative}.landing-hero-bg{z-index:0;pointer-events:none;background:radial-gradient(at 50% -20%,#3b82f626 0%,#8b5cf60d 40%,#0000 70%);animation:8s ease-in-out infinite alternate pulse-glow;position:absolute;inset:0}@keyframes pulse-glow{0%{opacity:.7;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}.app-cards-grid{gap:var(--sp-6);max-width:900px;padding:var(--sp-8);grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid}.app-card{-webkit-backdrop-filter:blur(24px);border-radius:var(--r-xl);padding:var(--sp-8);z-index:5;background:#14141866;border:1px solid #ffffff0f;flex-direction:column;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 24px #0003}.app-card:before{content:"";opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.app-card.docs:before{pointer-events:none;background:radial-gradient(at 50% 0,#3b82f626,#0000 70%)}.app-card.sheets:before{pointer-events:none;background:radial-gradient(at 50% 0,#10b98126,#0000 70%)}.app-card.slides:before{pointer-events:none;background:radial-gradient(at 50% 0,#f59e0b26,#0000 70%)}.app-card:hover{background:#18181e99;border-color:#ffffff26;transform:translateY(-8px)scale(1.02)}.app-card:hover:before{opacity:1}.app-card:hover.docs{border-color:#3b82f666;box-shadow:0 12px 40px #3b82f640}.app-card:hover.sheets{border-color:#10b98166;box-shadow:0 12px 40px #10b98140}.app-card:hover.slides{border-color:#f59e0b66;box-shadow:0 12px 40px #f59e0b40}.app-card-icon{border-radius:var(--r-xl);width:64px;height:64px;margin-bottom:var(--sp-5);justify-content:center;align-items:center;font-size:32px;transition:transform .3s;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff1a}.app-card:hover .app-card-icon{transform:scale(1.1)rotate(-5deg)}.app-card-icon.docs{background:linear-gradient(135deg, var(--docs-dim), #3b82f633);color:var(--docs-light)}.app-card-icon.sheets{background:linear-gradient(135deg, var(--sheets-dim), #10b98133);color:var(--sheets-light)}.app-card-icon.slides{background:linear-gradient(135deg, var(--slides-dim), #f59e0b33);color:var(--slides-light)}.app-card-title{margin-bottom:var(--sp-2);letter-spacing:-.5px;font-size:22px;font-weight:800}.app-card-desc{color:var(--sub);font-size:14px;font-weight:400;line-height:1.6}.app-card-new-btn{align-items:center;gap:var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-sm);cursor:pointer;z-index:10;border:none;outline:none;width:fit-content;margin-top:auto;padding:8px 14px;font-weight:600;transition:all .15s;display:inline-flex;position:relative}.app-card-new-btn.docs{background:var(--docs-dim);color:var(--docs-light)}.app-card-new-btn:hover.docs{background:var(--docs-primary);color:#fff}.app-card-new-btn.sheets{background:var(--sheets-dim);color:var(--sheets-light)}.app-card-new-btn:hover.sheets{background:var(--sheets-primary);color:#fff}.app-card-new-btn.slides{background:var(--slides-dim);color:var(--slides-light)}.app-card-new-btn:hover.slides{background:var(--slides-primary);color:#000}.recent-section{padding:0 var(--sp-8) var(--sp-8);width:100%;max-width:900px;margin:0 auto}.recent-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.recent-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.recent-file{-webkit-backdrop-filter:blur(12px);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;gap:var(--sp-3);z-index:5;background:#14141866;border:1px solid #ffffff0a;align-items:flex-start;transition:all .25s;display:flex;position:relative}.recent-file:hover{background:#1e1e2499;border-color:#ffffff1a;transform:translate(4px);box-shadow:0 4px 16px #0003}.recent-file-info{flex:1;min-width:0}.recent-file-name{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.recent-file-meta{color:var(--muted);margin-top:2px;font-size:11px}.sheets-workspace{flex-direction:column;flex:1;display:flex;overflow:hidden}.sheets-formula-bar{align-items:center;gap:var(--sp-2);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;padding:4px 8px;display:flex}.sheets-cell-ref{text-align:center;background:var(--surface-2);border:1px solid var(--border);width:60px;height:24px;color:var(--text);border-radius:4px;outline:none;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.sheets-formula-input{height:24px;padding:0 var(--sp-2);background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;flex:1;font-family:JetBrains Mono,monospace;font-size:13px}.sheets-formula-input:focus{border-color:var(--sheets-primary)}.sheets-grid-container{flex:1;position:relative;overflow:auto}.sheets-grid-table{border-collapse:collapse;table-layout:fixed;min-width:max-content}.sheets-col-header,.sheets-row-header{background:var(--bg-alt);border:1px solid var(--border);color:var(--muted);-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600;position:sticky}.sheets-col-header{z-index:10;text-align:center;min-width:100px;height:24px;padding:0 4px;top:0}.sheets-row-header{z-index:9;text-align:center;width:48px;padding:0 4px;left:0}.sheets-row-header.corner{z-index:11;width:48px;height:24px}.sheets-col-header.selected,.sheets-row-header.selected{background:var(--sheets-dim);color:var(--sheets-light)}.sheets-cell{border:1px solid var(--border);min-width:100px;height:26px;color:var(--text);cursor:cell;white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:13px;position:relative;overflow:hidden}.sheets-cell:focus{outline:2px solid var(--sheets-primary);outline-offset:-2px;z-index:5}.sheets-cell.selected{outline:2px solid var(--sheets-primary);outline-offset:-2px;z-index:5;background:#10b9810d}.sheets-cell.editing{outline:2px solid var(--sheets-light);z-index:10}.sheets-cell input{width:100%;height:100%;color:var(--text);background:0 0;border:none;outline:none;padding:0 4px;font-family:inherit;font-size:13px}.sheets-tabs{background:var(--bg-alt);border-top:1px solid var(--border);padding:0 var(--sp-3);flex-shrink:0;align-items:center;gap:2px;display:flex}.sheets-tab{color:var(--muted);cursor:pointer;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;padding:4px 14px;font-size:12px;font-weight:500;transition:all .1s}.sheets-tab:hover{color:var(--text);background:var(--surface-2)}.sheets-tab.active{color:var(--sheets-light);background:var(--surface);border-color:var(--border);border-bottom-color:var(--surface)}.docs-workspace{padding:var(--sp-8) var(--sp-4);background:#1a1a20;flex:1;justify-content:center;display:flex;overflow-y:auto}.docs-page{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);width:816px;min-height:1056px;box-shadow:var(--shadow-lg);flex-shrink:0;padding:72px 96px;position:relative}.docs-editor{min-height:100%;color:var(--text);caret-color:var(--docs-primary);outline:none;font-size:14px;line-height:1.8}.docs-editor h1{margin-bottom:16px;font-size:28px;font-weight:800}.docs-editor h2{margin-top:24px;margin-bottom:12px;font-size:22px;font-weight:700}.docs-editor h3{margin-top:20px;margin-bottom:8px;font-size:18px;font-weight:600}.docs-editor p{margin-bottom:12px}.docs-editor ul,.docs-editor ol{margin-bottom:12px;padding-left:24px}.docs-editor li{margin-bottom:4px}.docs-editor table{border-collapse:collapse;width:100%;margin-bottom:16px}.docs-editor table td,.docs-editor table th{border:1px solid var(--border-bright);padding:8px 12px}.docs-editor table th{background:var(--surface-2);font-weight:600}.docs-editor blockquote{border-left:3px solid var(--docs-primary);color:var(--sub);margin:12px 0;padding-left:16px}.docs-editor img{border-radius:var(--r-md);max-width:100%;margin:8px 0}.docs-editor hr{border:none;border-top:1px solid var(--border);margin:20px 0}.docs-word-count{color:var(--muted);font-size:11px;position:absolute;bottom:8px;right:16px}.slides-workspace{flex:1;display:flex;overflow:hidden}.slides-panel{background:var(--bg-alt);border-right:1px solid var(--border);width:200px;padding:var(--sp-2);flex-shrink:0;overflow-y:auto}.slide-thumb{border-radius:var(--r-sm);margin-bottom:var(--sp-2);cursor:pointer;aspect-ratio:16/9;background:var(--surface);border:2px solid #0000;transition:border-color .15s;position:relative;overflow:hidden}.slide-thumb:hover{border-color:var(--border-bright)}.slide-thumb.active{border-color:var(--slides-primary)}.slide-thumb-num{color:var(--muted);font-size:9px;position:absolute;top:4px;left:4px}.slides-canvas-area{background:#1a1a20;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.slides-canvas{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:2px;position:relative;overflow:hidden}.slide-element{cursor:move;-webkit-user-select:none;user-select:none;border:1px solid #0000;position:absolute}.slide-element:hover{border-color:var(--slides-border)}.slide-element.selected{border-color:var(--slides-primary);outline:none}.slide-element.selected .resize-handle{display:block}.resize-handle{background:var(--slides-primary);z-index:10;border:1px solid #fff;border-radius:2px;width:8px;height:8px;display:none;position:absolute}.resize-handle.nw{cursor:nw-resize;top:-4px;left:-4px}.resize-handle.ne{cursor:ne-resize;top:-4px;right:-4px}.resize-handle.sw{cursor:sw-resize;bottom:-4px;left:-4px}.resize-handle.se{cursor:se-resize;bottom:-4px;right:-4px}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--r-xl);padding:var(--sp-8);width:90%;max-width:480px;box-shadow:var(--shadow-lg)}.modal-header{margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--fs-xl);font-weight:700}.modal-footer{justify-content:flex-end;gap:var(--sp-3);margin-top:var(--sp-6);display:flex}.toast-container{z-index:9999;gap:var(--sp-2);flex-direction:column;display:flex;position:fixed;bottom:40px;right:20px}.toast{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-3);border:1px solid var(--border-bright);border-radius:var(--r-md);box-shadow:var(--shadow-md);font-size:var(--fs-sm);min-width:260px;max-width:400px;font-weight:500;display:flex}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.toast.info{border-left:3px solid var(--docs-primary)}.toast.warning{border-left:3px solid var(--yellow)}.auth-page{background:var(--bg);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.auth-bg-glow{pointer-events:none;background:radial-gradient(at 50% 30%,#3b82f612 0%,#0000 60%);position:absolute;inset:0}.auth-card{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--r-xl);padding:var(--sp-8) var(--sp-10);z-index:1;width:400px;box-shadow:var(--shadow-lg);position:relative}.auth-divider{align-items:center;gap:var(--sp-3);color:var(--muted);font-size:var(--fs-xs);margin:var(--sp-5) 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.present-overlay{z-index:9990;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.present-controls{z-index:9991;align-items:center;gap:var(--sp-3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-full);background:#000c;border:1px solid #ffffff1a;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.context-menu{z-index:500;background:var(--surface-2);border:1px solid var(--border-bright);border-radius:var(--r-md);box-shadow:var(--shadow-lg);min-width:180px;position:fixed;overflow:hidden}.context-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);cursor:pointer;color:var(--sub);transition:background .1s;display:flex}.context-item:hover{background:var(--surface-3);color:var(--text)}.context-item.danger:hover{color:var(--red-light);background:#ef44441a}.context-separator{background:var(--border);height:1px;margin:4px 0}.spinner{border:2px solid var(--border-bright);border-top-color:var(--docs-primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.select-none{-webkit-user-select:none;user-select:none}.pointer{cursor:pointer}.relative{position:relative}.absolute{position:absolute}.hidden{display:none}.opacity-50{opacity:.5}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.ml-auto{margin-left:auto}.color-swatch-grid{grid-template-columns:repeat(8,1fr);gap:3px;display:grid}.color-swatch{cursor:pointer;border:1px solid #0000;border-radius:3px;width:20px;height:20px;transition:transform .1s}.color-swatch:hover{border-color:#fff6;transform:scale(1.2)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--surface-3);color:var(--text);border-radius:var(--r-sm);white-space:nowrap;pointer-events:none;opacity:0;border:1px solid var(--border-bright);z-index:100;padding:4px 8px;font-size:11px;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}.chart-container{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);justify-content:center;align-items:center;display:flex}.dropzone{border:2px dashed var(--border);border-radius:var(--r-lg);padding:var(--sp-8);text-align:center;cursor:pointer;transition:all .2s}.dropzone:hover,.dropzone.dragging{border-color:var(--docs-primary);background:var(--docs-dim)}.num-format-sel{background:var(--surface-2);border:1px solid var(--border);height:24px;color:var(--sub);cursor:pointer;border-radius:4px;outline:none;padding:0 6px;font-size:11px}@media (width<=768px){.app-cards-grid{grid-template-columns:1fr}.forge-sidebar{width:0}.docs-page{width:100%;padding:40px 20px}.slides-panel{width:120px}}
