*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sz-navy:#0c1640;--sz-coral:#f1605d;--sz-blue:#0d4bd0;--sz-blue-hover:#3758a6;--bg:#070d1c;--surface:#121c3ad1;--surface-solid:#121c3a;--surface2:#1a2550;--surface3:#152040;--text:#f1f5f9;--text2:#94a3b8;--text3:#64748b;--toolbar-bg:#121c3ac7;--toolbar-hover:#ffffff0f;--toolbar-active:#f1605d;--topbar-bg:#0a122ab8;--topbar-border:#ffffff14;--panel-bg:#121c3ad1;--panel-border:#ffffff14;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#0d4bd0;--danger:#ff6763;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #00000040;--shadow:0 4px 12px #00000052, 0 1px 2px #0003;--shadow-lg:0 16px 48px #00000073, 0 4px 12px #00000040;--shadow-xl:0 24px 72px #0000008c, 0 8px 24px #0000004d;--blur:saturate(140%) blur(18px)}html,body,#root{-webkit-font-smoothing:antialiased;background:var(--bg);width:100%;height:100%;color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden}.app{background:radial-gradient(at top,#0d1730 0%,#0000 60%),radial-gradient(at 100% 100%,#0d4bd014 0%,#0000 50%),#070d1c;flex-direction:column;width:100%;height:100%;display:flex}.top-bar{background:var(--topbar-bg);height:52px;-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--topbar-border);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 18px;display:flex}.top-bar-left{align-items:center;gap:12px;display:flex}.top-bar-right,.logo{align-items:center;gap:8px;display:flex}.sz-logo{object-fit:contain;height:22px}.logo-text{color:var(--text);letter-spacing:-.3px;font-size:15px;font-weight:600}.workspace{flex:1;display:flex;position:relative;overflow:hidden}.canvas-container{flex:1;position:relative;overflow:hidden}.main-canvas{width:100%;height:100%;display:block}.toolbar{background:var(--toolbar-bg);-webkit-backdrop-filter:var(--blur);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;flex-direction:column;flex-shrink:0;align-items:center;gap:2px;max-height:calc(100% - 32px);padding:8px 6px;display:flex;position:absolute;top:50%;left:16px;overflow-y:auto;transform:translateY(-50%)}.toolbar::-webkit-scrollbar{width:4px}.toolbar-btn{width:38px;height:38px;color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:background .18s,color .18s,transform .18s;display:flex}.toolbar-btn:hover{background:var(--toolbar-hover);color:var(--text)}.toolbar-btn:active{transform:scale(.94)}.toolbar-btn.active{background:var(--toolbar-active);color:#fff;box-shadow:0 4px 14px #f1605d59}.property-panel{background:var(--panel-bg);width:252px;max-height:calc(100% - 180px);-webkit-backdrop-filter:var(--blur);border:1px solid var(--panel-border);border-radius:var(--radius-lg);z-index:50;box-shadow:var(--shadow-lg);padding:16px 14px;animation:.18s cubic-bezier(.22,1,.36,1) propertyRise;position:absolute;top:16px;right:16px;overflow-y:auto}@keyframes propertyRise{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.property-panel::-webkit-scrollbar{width:4px}.panel-section{margin-bottom:16px}.panel-label{color:var(--text3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;font-size:10px;font-weight:700;display:block}.color-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.color-swatch{aspect-ratio:1;border:1.5px solid var(--panel-border);cursor:pointer;border-radius:8px;width:100%;transition:transform .18s,box-shadow .18s}.color-swatch:hover{box-shadow:var(--shadow-sm);transform:scale(1.08)}.color-swatch.active{border-color:var(--sz-coral);box-shadow:0 0 0 3px #f1605d47}.panel-slider{appearance:none;background:var(--surface2);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}.panel-slider::-webkit-slider-thumb{appearance:none;background:var(--sz-coral);cursor:pointer;border-radius:50%;width:14px;height:14px}.panel-slider::-moz-range-thumb{background:var(--sz-coral);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.panel-value{color:var(--text3);text-align:right;margin-top:2px;font-size:11px;display:block}.panel-info{color:var(--text3);border-top:1px solid var(--panel-border);padding-top:8px;font-size:11px}.zoom-controls{background:var(--surface);-webkit-backdrop-filter:var(--blur);border:1px solid var(--topbar-border);box-shadow:var(--shadow-sm);border-radius:10px;align-items:center;gap:2px;padding:3px;display:flex}.zoom-btn{width:28px;height:28px;color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.zoom-btn:hover{background:var(--surface3);color:var(--text)}.zoom-percent{min-width:48px;height:28px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:12px;font-weight:500;transition:background .15s}.zoom-percent:hover{background:var(--surface3)}.minimap{z-index:90;border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--panel-border);position:fixed;bottom:16px;right:16px;overflow:hidden}.minimap-canvas{cursor:pointer;display:block}.text-editor-overlay{z-index:200;border:2px solid var(--sz-coral);resize:none;color:inherit;background:0 0;outline:none;position:absolute;overflow:hidden;box-shadow:0 0 0 3px #f1605d33}.context-menu{z-index:300;background:var(--panel-bg);min-width:192px;-webkit-backdrop-filter:var(--blur);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;animation:.14s cubic-bezier(.22,1,.36,1) contextFadeIn;position:fixed}@keyframes contextFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;transition:background .12s;display:flex}.context-menu-item:hover{background:#ffffff0f}.context-menu-item.danger{color:var(--danger)}.context-menu-item.danger:hover{background:#ff67631f}.context-menu-item:disabled{color:var(--text3);cursor:not-allowed}.context-menu-item .shortcut{color:var(--text3);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:11px}.context-menu-divider{background:var(--panel-border);height:1px;margin:6px 2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--surface3)}.app-loading{height:100vh;color:var(--text2);background:var(--bg);justify-content:center;align-items:center;font-size:15px;display:flex}.login-page{background:radial-gradient(at top,#0d1730 0%,#0000 60%),radial-gradient(at 100% 100%,#0d4bd01f 0%,#0000 50%),#070d1c;justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;align-items:center;width:400px;padding:52px 44px;animation:.28s cubic-bezier(.22,1,.36,1) modalRise;display:flex}.login-logo{flex-direction:column;align-items:center;gap:14px;margin-bottom:36px;display:flex}.login-logo-img{object-fit:contain;height:34px}.login-logo h1{color:var(--text);letter-spacing:-.4px;font-size:18px;font-weight:700}.login-logo p{color:var(--text2);margin-top:-6px;font-size:13px}.login-error{color:#ff6763;text-align:center;background:#ff67631f;border:1px solid #ff67634d;border-radius:8px;width:100%;margin-bottom:16px;padding:10px 14px;font-size:13px}.google-signin-btn{background:var(--surface2);border:1px solid var(--topbar-border);width:100%;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.google-signin-btn:hover:not(:disabled){background:var(--surface3);border-color:var(--sz-coral)}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}.login-hint{color:var(--text3);text-align:center;margin-top:16px;font-size:12px}.boards-page{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.boards-header{background:var(--topbar-bg);height:56px;-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--topbar-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.boards-header-left{align-items:center;gap:12px;display:flex}.boards-logo{object-fit:contain;height:24px}.boards-app-name{color:var(--text2);border-left:1px solid var(--topbar-border);padding-left:12px;font-size:14px;font-weight:600}.boards-header-right{align-items:center;gap:12px;display:flex}.user-info{align-items:center;gap:8px;display:flex}.user-avatar{object-fit:cover;border:1.5px solid var(--topbar-border);border-radius:50%;width:30px;height:30px}.user-name{color:var(--text2);font-size:13px;font-weight:500}.logout-btn{border:1px solid var(--topbar-border);color:var(--text2);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .15s;display:flex}.logout-btn:hover{background:var(--surface2);color:var(--text)}.boards-body{flex:1;display:flex;overflow:hidden}.folders-sidebar{background:var(--surface);width:208px;-webkit-backdrop-filter:var(--blur);border-right:1px solid var(--topbar-border);flex-direction:column;flex-shrink:0;padding:16px 0;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:4px;padding:0 16px;font-size:10px;font-weight:700}.folder-item{color:var(--text2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:calc(100% - 16px);margin:0 8px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.folder-item:hover{color:var(--text);background:#ffffff0d}.folder-item.active{color:var(--sz-coral);background:linear-gradient(#f1605d2e,#f1605d14);box-shadow:inset 0 0 0 1px #f1605d38}.folder-item svg{opacity:.65;flex-shrink:0}.folder-item.active svg{opacity:1}.sidebar-divider{background:var(--topbar-border);height:1px;margin:8px 16px}.new-folder-btn{color:var(--text3);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:7px 16px;font-size:12px;font-weight:500;transition:all .12s;display:flex}.new-folder-btn:hover{color:var(--text2);background:var(--surface2)}.boards-main{flex:1;padding:24px 28px;overflow-y:auto}.boards-title-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.boards-title-row h2{color:var(--text);font-size:17px;font-weight:700}.new-board-btn{color:#fff;cursor:pointer;background:linear-gradient(#1753da 0%,#0d4bd0 100%);border:none;border-radius:10px;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;display:flex;box-shadow:0 4px 14px #0d4bd04d,inset 0 1px #ffffff26}.new-board-btn:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px #0d4bd073,inset 0 1px #ffffff2e}.boards-error{color:#ff6763;background:#ff67631a;border:1px solid #ff676340;border-radius:8px;margin-bottom:20px;padding:10px 14px;font-size:13px}.boards-loading{color:var(--text2);justify-content:center;align-items:center;padding:80px;font-size:14px;display:flex}.boards-empty{color:var(--text2);flex-direction:column;align-items:center;gap:16px;padding:80px;display:flex}.boards-empty p{font-size:14px}.boards-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.board-card{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .22s,box-shadow .22s,border-color .22s;position:relative;overflow:hidden}.board-card:hover{box-shadow:var(--shadow-lg), 0 0 0 1px #f1605d40;border-color:#f1605d80;transform:translateY(-3px)}.board-card-preview{background:var(--surface2);justify-content:center;align-items:center;height:120px;display:flex;overflow:hidden}.board-card-preview img{object-fit:cover;width:100%;height:100%}.board-card-info{border-top:1px solid var(--topbar-border);flex-direction:column;gap:3px;padding:10px 12px;display:flex}.board-card-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.board-card-meta{color:var(--text3);font-size:11px}.board-card-delete{border:1px solid var(--topbar-border);width:28px;height:28px;color:var(--text2);cursor:pointer;opacity:0;background:#010b20bf;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:8px;right:8px}.board-card:hover .board-card-delete{opacity:1}.board-card--pinned{background:linear-gradient(135deg, #0d4bd00f 0%, var(--surface) 100%);border-color:#0d4bd066}.board-card-delete:hover{color:var(--danger);background:#ff676333;border-color:#ff676366}.new-board-overlay{-webkit-backdrop-filter:blur(8px);z-index:500;background:#050a188c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.new-board-modal{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);width:380px;box-shadow:var(--shadow-xl);flex-direction:column;gap:18px;padding:32px;animation:.22s cubic-bezier(.22,1,.36,1) modalRise;display:flex}@keyframes modalRise{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.new-board-modal h3{color:var(--text);font-size:16px;font-weight:700}.new-board-input{border:1.5px solid var(--topbar-border);width:100%;color:var(--text);background:var(--surface2);border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s}.new-board-input:focus{border-color:var(--sz-coral);box-shadow:0 0 0 3px #f1605d26}.new-board-actions{justify-content:flex-end;gap:8px;display:flex}.new-board-modal--wide{width:680px;max-width:92vw}.template-label{color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px;font-weight:600}.template-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.template-card{background:var(--surface2);border:1.5px solid var(--topbar-border);cursor:pointer;text-align:left;color:var(--text);border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;transition:all .12s;display:flex}.template-card:hover{border-color:var(--sz-blue-hover);background:var(--surface3)}.template-card--active{border-color:var(--sz-coral);background:var(--surface3);box-shadow:0 0 0 3px #f1605d26}.template-icon{font-size:26px;line-height:1}.template-name{color:var(--text);font-size:14px;font-weight:600}.template-desc{color:var(--text2);font-size:12px;line-height:1.35}@media (width<=600px){.new-board-modal--wide{width:92vw}.template-grid{grid-template-columns:repeat(2,1fr)}}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(#1753da 0%,#0d4bd0 100%);border:none;border-radius:10px;padding:10px 22px;font-size:13px;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;box-shadow:0 4px 12px #0d4bd04d,inset 0 1px #ffffff26}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 18px #0d4bd073,inset 0 1px #ffffff2e}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-secondary{border:1px solid var(--topbar-border);color:var(--text2);cursor:pointer;background:0 0;border-radius:10px;padding:10px 18px;font-size:13px;font-weight:500;transition:all .18s}.btn-secondary:hover{color:var(--text);background:#ffffff0a;border-color:#ffffff24}.back-btn{border:1px solid var(--topbar-border);width:34px;height:34px;color:var(--text2);cursor:pointer;background:0 0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .18s,color .18s,border-color .18s;display:flex}.back-btn:hover{color:var(--text);background:#ffffff0a;border-color:#ffffff24}.board-name-btn{color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:8px;max-width:260px;padding:6px 12px;font-size:14px;font-weight:600;transition:background .15s;overflow:hidden}.board-name-btn:hover{background:#ffffff0d}.board-name-input{color:var(--text);border:1.5px solid var(--sz-coral);background:var(--surface2);border-radius:6px;outline:none;width:220px;padding:3px 8px;font-size:14px;font-weight:600;box-shadow:0 0 0 3px #f1605d26}.save-status{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.save-status--saved{color:var(--text3)}.save-status--saving{color:var(--sz-coral)}.save-status--autosaving{color:var(--sz-blue)}.save-status--dirty{color:#d97706}.save-status--idle{display:none}.save-btn{color:#fff;cursor:pointer;background:linear-gradient(#1753da 0%,#0d4bd0 100%);border:none;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;box-shadow:0 3px 10px #0d4bd04d,inset 0 1px #ffffff26}.save-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 5px 16px #0d4bd073,inset 0 1px #ffffff2e}.save-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.copy-link-btn{border:1px solid var(--topbar-border);color:var(--text2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-width:36px;padding:8px 14px;font-size:12px;font-weight:500;transition:background .18s,color .18s,border-color .18s;display:flex}.copy-link-btn:hover:not(:disabled){color:var(--text);background:#ffffff0a;border-color:#ffffff24}.copy-link-btn:disabled{opacity:.35;cursor:not-allowed}.panel-select{background:var(--surface2);border:1px solid var(--panel-border);width:100%;color:var(--text);cursor:pointer;appearance:none;border-radius:6px;outline:none;padding:5px 8px;font-size:12px}.panel-select:focus{border-color:var(--sz-coral)}.font-size-row{align-items:center;gap:4px;display:flex}.font-size-btn{border:1px solid var(--panel-border);background:var(--surface2);width:26px;height:26px;color:var(--text);cursor:pointer;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:background .12s;display:flex}.font-size-btn:hover{background:var(--surface3)}.font-size-input{text-align:center;color:var(--text);flex:1;font-size:12px;font-weight:600}.text-format-row{gap:3px;display:flex}.fmt-btn{border:1px solid var(--panel-border);background:var(--surface2);height:28px;color:var(--text2);cursor:pointer;border-radius:5px;flex:1;justify-content:center;align-items:center;font-size:13px;transition:all .12s;display:flex}.fmt-btn:hover{background:var(--surface3);color:var(--text)}.fmt-btn.active{border-color:var(--sz-coral);color:var(--sz-coral);background:#f1605d26}.toast-container{z-index:9000;pointer-events:none;flex-direction:column;gap:8px;max-width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{border-radius:var(--radius);background:var(--surface);color:var(--text);border:1px solid var(--topbar-border);box-shadow:var(--shadow-lg);text-align:left;cursor:pointer;pointer-events:auto;align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;animation:.18s ease-out toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:inline-flex}.toast-msg{flex:1}.toast--info{border-color:var(--accent)}.toast--info .toast-icon{background:var(--accent);color:#fff}.toast--success{border-color:#16a34a}.toast--success .toast-icon{color:#fff;background:#16a34a}.toast--error{border-color:var(--danger)}.toast--error .toast-icon{background:var(--danger);color:#fff}.confirm-overlay{-webkit-backdrop-filter:blur(8px);z-index:9500;background:#050a188c;justify-content:center;align-items:center;animation:.15s ease-out confirm-fade;display:flex;position:fixed;inset:0}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}.confirm-modal{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);width:calc(100% - 32px);max-width:440px;box-shadow:var(--shadow-xl);padding:24px 26px;animation:.22s cubic-bezier(.22,1,.36,1) confirm-pop}@keyframes confirm-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.confirm-modal h3{color:var(--text);margin:0 0 8px;font-size:15px}.confirm-modal p{color:var(--text2);margin:0 0 18px;font-size:13px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.btn-danger{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s}.btn-danger:hover{background:#e85754}.boards-title-actions{align-items:center;gap:10px;display:flex}.boards-search{align-items:center;display:flex;position:relative}.boards-search-icon{color:var(--text3);pointer-events:none;position:absolute;left:10px}.boards-search-input{background:var(--surface);border:1px solid var(--topbar-border);color:var(--text);border-radius:6px;width:220px;padding:7px 12px 7px 30px;font-size:13px;transition:border-color .12s}.boards-search-input::placeholder{color:var(--text3)}.boards-search-input:focus{border-color:var(--accent);outline:none}.board-card-preview{position:relative;overflow:hidden}.board-card-thumb{object-fit:cover;background:var(--surface2);width:100%;height:100%;display:block}.context-menu-row{gap:2px;padding:4px 6px;display:flex}.context-menu-icon-btn{height:26px;color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-size:11px;transition:background .12s,color .12s;display:inline-flex}.context-menu-icon-btn:hover{background:var(--toolbar-hover);color:var(--text)}.context-menu-icon-btn.wide{justify-content:flex-start}.shortcuts-overlay{-webkit-backdrop-filter:blur(8px);z-index:9700;background:#050a1899;justify-content:center;align-items:center;animation:.15s ease-out confirm-fade;display:flex;position:fixed;inset:0}.shortcuts-modal{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);width:min(820px,100% - 32px);max-height:calc(100vh - 60px);box-shadow:var(--shadow-xl);flex-direction:column;animation:.22s cubic-bezier(.22,1,.36,1) confirm-pop;display:flex;overflow:hidden}.shortcuts-header{border-bottom:1px solid var(--topbar-border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.shortcuts-header h3{color:var(--text);margin:0;font-size:16px}.shortcuts-close{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;width:28px;height:28px;font-size:24px;line-height:1;transition:background .12s,color .12s}.shortcuts-close:hover{background:var(--toolbar-hover);color:var(--text)}.shortcuts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px 30px;padding:22px;display:grid;overflow-y:auto}.shortcuts-section h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin:0 0 10px;font-size:12px;font-weight:600}.shortcuts-section dl{margin:0}.shortcut-row{border-bottom:1px solid var(--topbar-border);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.shortcut-row:last-child{border-bottom:none}.shortcut-row dt{align-items:center;gap:4px;display:inline-flex}.shortcut-row dd{color:var(--text2);text-align:right;flex:1;margin:0;font-size:13px}.shortcut-plus{color:var(--text3);padding:0 2px;font-size:11px}kbd{background:var(--surface2);border:1px solid var(--topbar-border);min-width:22px;height:22px;color:var(--text);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:600;display:inline-flex}.shortcuts-footer{border-top:1px solid var(--topbar-border);color:var(--text3);text-align:center;padding:12px 22px;font-size:12px}.generate-btn{background:linear-gradient(135deg,#0d4bd02e,#f1605d2e);border:1px solid #0d4bd066}.generate-btn:hover{background:linear-gradient(135deg,#0d4bd04d,#f1605d4d)}.generate-overlay{-webkit-backdrop-filter:blur(8px);z-index:9600;background:#050a188c;justify-content:center;align-items:center;animation:.15s ease-out confirm-fade;display:flex;position:fixed;inset:0}.generate-modal{background:var(--surface-solid);border:1px solid var(--topbar-border);border-radius:var(--radius-lg);width:min(640px,100% - 32px);max-height:calc(100vh - 60px);box-shadow:var(--shadow-xl);flex-direction:column;animation:.22s cubic-bezier(.22,1,.36,1) confirm-pop;display:flex;overflow:hidden}.generate-header{border-bottom:1px solid var(--topbar-border);justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.generate-header h3{color:var(--text);margin:0;font-size:15px}.generate-close{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:6px;width:28px;height:28px;font-size:22px;line-height:1}.generate-close:hover{background:var(--toolbar-hover);color:var(--text)}.generate-tabs{border-bottom:1px solid var(--topbar-border);gap:4px;padding:10px 14px 0;display:flex}.generate-tab{color:var(--text2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:12px;font-weight:600}.generate-tab.active{color:var(--text);border-bottom-color:var(--accent)}.generate-body{padding:18px 22px;overflow-y:auto}.generate-label{color:var(--text2);margin-bottom:8px;font-size:12px;display:block}.generate-textarea{border:1px solid var(--topbar-border);background:var(--surface2);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.5}.generate-textarea:focus{border-color:var(--accent);outline:none}.generate-textarea--mono{font-family:Consolas,Monaco,monospace;font-size:12px}.generate-examples{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.generate-examples-label{color:var(--text3);margin-right:4px;font-size:11px}.generate-example{border:1px solid var(--topbar-border);background:var(--surface2);color:var(--text2);cursor:pointer;border-radius:14px;padding:4px 10px;font-size:11px;transition:all .12s}.generate-example:hover{background:var(--surface3);color:var(--text);border-color:var(--accent)}.generate-notice{border-left:2px solid var(--accent);color:var(--text2);background:#0d4bd014;border-radius:0 6px 6px 0;margin-top:14px;padding:10px 12px;font-size:12px;line-height:1.5}.generate-notice strong{color:var(--text)}.generate-notice em{color:var(--text);font-style:italic}.generate-hint{color:var(--text3);margin-top:10px;font-size:11px;line-height:1.5}.generate-hint code{background:var(--surface2);color:var(--text);border-radius:3px;padding:1px 4px;font-family:Consolas,monospace}.generate-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.export-menu-wrap{display:inline-block;position:relative}.export-menu{background:var(--surface);border:1px solid var(--topbar-border);min-width:240px;box-shadow:var(--shadow-lg);z-index:400;border-radius:8px;padding:4px;animation:.12s ease-out confirm-fade;position:absolute;top:calc(100% + 6px);right:0}.export-menu-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:8px 12px;font-size:12px;transition:background .1s;display:block}.export-menu-item:hover{background:var(--surface2)}.export-menu-item strong{min-width:36px;color:var(--accent);font-weight:700;display:inline-block}.app--presenting .top-bar,.app--presenting .toolbar,.app--presenting .property-panel,.app--presenting .minimap{display:none!important}.present-overlay{pointer-events:none;z-index:9800;position:fixed;inset:0}.present-overlay>*{pointer-events:auto}.present-topbar{color:var(--text);background:linear-gradient(#0c1640eb,#0c164000);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex;position:absolute;top:0;left:0;right:0}.present-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;padding:0 16px;font-size:14px;font-weight:600;overflow:hidden}.present-counter{text-align:right;min-width:64px;color:var(--text2);font-variant-numeric:tabular-nums}.present-btn{border:1px solid var(--topbar-border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;transition:background .12s;display:inline-flex}.present-btn:hover{background:var(--surface2)}.present-nav{border:1px solid var(--topbar-border);width:48px;height:120px;color:var(--text);cursor:pointer;opacity:.5;background:#0c164080;border-radius:8px;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.present-nav:hover:not(:disabled){opacity:1;background:#0c1640cc}.present-nav:disabled{opacity:.15;cursor:default}.present-nav--prev{left:16px}.present-nav--next{right:16px}.present-empty{background:var(--surface);border:1px solid var(--topbar-border);color:var(--text2);text-align:center;border-radius:8px;padding:18px 24px;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.present-empty kbd{margin:0 2px}
