:root{--bg-app:#0b0f19;--bg-panel:#111827;--bg-panel-hover:#1f2937;--bg-surface:#1e293b;--bg-input:#0f172a;--border-color:#ffffff14;--border-color-focus:#6366f1;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#6366f1;--accent-hover:#4f46e5;--accent-glow:#6366f140;--danger-color:#ef4444;--success-color:#10b981;--warning-color:#f59e0b;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--topbar-height:48px;--toolbox-width:56px;--inspector-width:300px}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}html,body,#root{width:100vw;height:100vh;font-family:var(--font-ui);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow:hidden}.app-container{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.studio-main-workspace{height:calc(100vh - var(--topbar-height));flex:1;display:flex;position:relative;overflow:hidden}.topbar{height:var(--topbar-height);background-color:var(--bg-panel);border-bottom:1px solid var(--border-color);z-index:50;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:0 12px;display:grid}.topbar-left,.topbar-center,.topbar-right{align-items:center;gap:8px;min-width:0;display:flex}.topbar-left{justify-content:flex-start}.topbar-center{justify-content:center}.topbar-right{justify-content:flex-end}.topbar-brand{flex-shrink:0;align-items:center;gap:8px;display:flex}.brand-text{align-items:baseline;gap:2px;display:flex}.brand-title{font-family:var(--font-ui);letter-spacing:-.2px;color:var(--text-primary);font-size:14px;font-weight:600;line-height:1}.brand-tld{font-family:var(--font-ui);color:var(--text-muted);font-size:14px;font-weight:500;line-height:1}.topbar-document{border-left:1px solid var(--border-color);align-items:center;gap:8px;min-width:0;padding-left:8px;display:flex}.document-title{font-family:var(--font-ui);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;font-weight:600;overflow:hidden}.document-title-editor{flex-direction:column;gap:1px;min-width:0;max-width:180px;display:flex}.document-title-button,.document-title-input{font-family:var(--font-ui);color:var(--text-secondary);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:none;max-width:100%;margin:0;padding:0;font-size:12px;font-weight:600;overflow:hidden}.document-title-button:hover{color:var(--text-primary)}.document-title-input{background:var(--bg-input);border:1px solid var(--border-color-focus);color:var(--text-primary);border-radius:4px;outline:none;padding:2px 6px}.document-file-hint{font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.save-status{font-family:var(--font-ui);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600}.save-status--dirty{color:var(--warning-color);background:#f59e0b26;border:1px solid #f59e0b4d}.save-status--saving{color:#a5b4fc;background:#6366f124;border:1px solid #6366f147}.save-status--saved{color:var(--success-color);background:#10b9811f;border:1px solid #10b98147}.save-status--error{color:var(--danger-color);background:#ef44441f;border:1px solid #ef444447}.workspace-file-menu{align-items:center;gap:4px;display:flex}.workspace-menu-anchor{align-items:center;display:flex;position:relative}.workspace-split-btn{border-top-right-radius:0;border-bottom-right-radius:0}.workspace-chevron-btn{border-top-left-radius:0;border-bottom-left-radius:0;width:26px;margin-left:-1px}.workspace-dropdown{border:1px solid var(--border-color);z-index:120;background:#0f172a;border-radius:10px;min-width:240px;max-width:320px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 16px 40px #00000073}.workspace-dropdown-label{font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;padding:6px 8px 4px;font-size:10px;font-weight:600;display:flex}.workspace-dropdown-item{width:100%;color:var(--text-secondary);font-family:var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.workspace-dropdown-item:hover{color:var(--text-primary);background:#6366f11f}.workspace-dropdown-item.recent{padding:6px 8px}.recent-row{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.recent-thumb{background:#fff;border:1px solid #ffffff1f;border-radius:6px;flex-shrink:0;width:40px;height:40px;overflow:hidden}.recent-thumb img{object-fit:contain;width:100%;height:100%;display:block}.recent-thumb-placeholder{background:linear-gradient(135deg,#6366f133,#0f172acc);width:100%;height:100%}.recent-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.recent-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.recent-meta{color:var(--text-muted);font-size:10px}.app-boot-screen{background:var(--bg-app);width:100vw;height:100vh}.recover-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#020617b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.recover-modal{border:1px solid var(--border-color);background:#0f172a;border-radius:16px;width:min(100%,420px);padding:24px;box-shadow:0 24px 60px #0000008c}.recover-modal-icon{width:48px;height:48px;color:var(--warning-color);background:#f59e0b24;border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.recover-modal-title{font-family:var(--font-ui);color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.recover-modal-desc{font-family:var(--font-ui);color:var(--text-muted);margin-bottom:16px;font-size:13px;line-height:1.5}.recover-preview-card{border:1px solid var(--border-color);background:#ffffff08;border-radius:12px;gap:12px;margin-bottom:18px;padding:12px;display:flex}.recover-preview-thumb{background:#fff;border:1px solid #ffffff1f;border-radius:8px;flex-shrink:0;width:72px;height:72px;overflow:hidden}.recover-preview-thumb img{object-fit:contain;width:100%;height:100%}.recover-preview-placeholder{background:linear-gradient(135deg,#6366f140,#0f172ad9);width:100%;height:100%}.recover-preview-meta{flex-direction:column;justify-content:center;gap:4px;min-width:0;display:flex}.recover-preview-name{color:var(--text-primary);font-size:14px;font-weight:700}.recover-preview-detail,.recover-preview-time{color:var(--text-muted);font-size:11px}.recover-modal-actions{justify-content:flex-end;gap:8px;display:flex}.recover-btn{font-family:var(--font-ui);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.recover-btn.secondary{border-color:var(--border-color);color:var(--text-secondary);background:0 0}.recover-btn.secondary:hover{color:var(--text-primary);border-color:#ffffff2e}.recover-btn.primary{background:var(--accent-primary);color:#fff}.recover-btn.primary:hover{background:var(--accent-hover)}.topbar-divider{background-color:var(--border-color);flex-shrink:0;width:1px;height:18px}.topbar-group{align-items:center;gap:4px;display:flex}.topbar-btn{height:32px;color:var(--text-secondary);font-family:var(--font-ui);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.topbar-btn:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-color)}.topbar-btn:disabled{opacity:.35;cursor:not-allowed}.topbar-btn.active{color:#c7d2fe;background:#6366f124;border-color:#6366f159}.topbar-btn.primary{background:var(--accent-primary);color:#fff;border-color:#0000}.topbar-btn.primary:hover:not(:disabled){background:var(--accent-hover);color:#fff;border-color:#0000}.topbar-btn.icon-only{width:32px;padding:0}.topbar-btn.compact{gap:5px;padding:0 8px;font-size:12px}.topbar-btn.mini{width:28px;height:28px;padding:0;font-size:12px}.topbar-group.align-group{gap:2px}.topbar-btn.danger:hover:not(:disabled){color:var(--danger-color);background:#ef444426;border-color:#ef44444d}.left-toolbox{width:var(--toolbox-width);background-color:var(--bg-panel);border-right:1px solid var(--border-color);z-index:40;flex-direction:column;align-items:center;padding:12px 0;display:flex;overflow:visible}.tools-list{flex-direction:column;gap:4px;display:flex;overflow:visible}.tools-divider{background:var(--border-color);height:1px;margin:6px 8px}.tool-btn{width:40px;height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex;position:relative}.tool-btn:hover{background:var(--bg-surface);color:var(--text-primary)}.tool-btn.active{background:var(--accent-primary);color:#fff;box-shadow:0 4px 12px var(--accent-glow);border-color:#fff3}.tool-shortcut{letter-spacing:.02em;opacity:.55;pointer-events:none;font-size:8px;font-weight:700;position:absolute;bottom:3px;right:5px}.tool-btn.active .tool-shortcut{opacity:.85}.tool-flyout{border:1px solid var(--border-color);white-space:nowrap;opacity:0;pointer-events:none;z-index:80;background:#0f172a;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;transition:opacity .12s,transform .12s;display:flex;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)translate(-4px);box-shadow:0 8px 24px #00000073}.tool-btn:hover .tool-flyout{opacity:1;transform:translateY(-50%)translate(0)}.tool-flyout-name{color:var(--text-primary);font-size:12px;font-weight:600}kbd{color:#c7d2fe;min-width:18px;height:18px;font-family:var(--font-mono);background:#ffffff14;border:1px solid #ffffff1f;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.canvas-viewport{background-color:var(--bg-app);-webkit-user-select:none;user-select:none;touch-action:none;background-image:radial-gradient(circle,#6366f108 0%,#0000 80%),radial-gradient(#ffffff0d 1px,#0000 1px);background-size:100% 100%,24px 24px;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.canvas-stage{will-change:transform;justify-content:center;align-items:center;display:flex}.svg-artboard{border-radius:4px;overflow:visible}.marquee-selection-overlay{pointer-events:none;z-index:25;box-sizing:border-box;background:#6366f129;border:1.5px dashed #6366f1;position:absolute}.canvas-zoom-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);color:var(--text-secondary);z-index:30;background:#111827d9;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 4px 16px #0000004d}.mini-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:13px;font-weight:700}.mini-btn:hover{background:var(--bg-surface);color:#fff}.right-inspector{width:var(--inspector-width);background-color:var(--bg-panel);border-left:1px solid var(--border-color);z-index:40;flex-direction:column;display:flex;overflow:hidden}.inspector-tabs{border-bottom:1px solid var(--border-color);display:flex}.tab-btn{color:var(--text-muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:5px;min-width:0;padding:10px 4px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s;display:flex}.tab-btn span:not(.tab-count){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-count{min-width:16px;height:16px;color:var(--text-secondary);background:#ffffff14;border-radius:8px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px}.tab-btn.active .tab-count{color:#c7d2fe;background:#6366f133}.inspector-content{flex:1;padding:14px;overflow:hidden auto}.canvas-settings-panel{flex-direction:column;gap:4px;display:flex}.inspector-section{flex-direction:column;gap:14px;display:flex}.section-title-row{align-items:center;gap:8px;min-width:0;display:flex}.element-name-input{background:var(--bg-input);border:1px solid var(--border-color);min-width:0;color:var(--text-primary);font-family:var(--font-ui);border-radius:6px;flex:1;padding:6px 10px;font-size:13px;font-weight:600}.element-name-input:focus{border-color:var(--border-color-focus);outline:none}.element-badge{text-transform:uppercase;color:#a5b4fc;background:#6366f126;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700}.quick-actions-bar{gap:6px;display:flex}.quick-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.quick-btn:hover{color:#fff;border-color:var(--accent-primary)}.quick-btn.danger:hover{color:var(--danger-color);border-color:var(--danger-color)}.divider{background-color:var(--border-color);height:1px;margin:2px 0}.section-block{flex-direction:column;gap:8px;display:flex}.section-label{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.grid-2x2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.prop-input-box{flex-direction:column;gap:4px;min-width:0;display:flex}.prop-input-box.full-width{grid-column:span 2}.prop-label{font-family:var(--font-ui);color:var(--text-muted);font-size:11px;font-weight:500}.prop-input-box input[type=number],.prop-input-box input[type=text],.prop-input-box select{background:var(--bg-input);border:1px solid var(--border-color);width:100%;min-width:0;color:var(--text-primary);font-family:var(--font-mono);border-radius:6px;outline:none;padding:6px 8px;font-size:12px;font-weight:500}.prop-input-box input:focus,.prop-input-box select:focus{border-color:var(--border-color-focus)}.prop-input-box input[type=range]{accent-color:var(--accent-primary);margin-top:6px}.color-row{align-items:center;gap:8px;min-width:0;display:flex}.color-picker-input{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;width:32px;height:32px}.color-hex-input{background:var(--bg-input);border:1px solid var(--border-color);min-width:0;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);border-radius:6px;flex:1;padding:6px 8px;font-weight:500}.orientation-btn-group{gap:6px;margin-top:4px;display:flex}.toggle-option-btn{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;flex:1;justify-content:center;align-items:center;padding:6px 8px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.toggle-option-btn:hover{color:var(--text-primary);border-color:#6366f166}.toggle-option-btn.active{border-color:var(--accent-primary);color:#a5b4fc;background:#6366f126;font-weight:600}.mini-tag-btn{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:600}.mini-tag-btn.active{color:var(--danger-color);background:#ef444433;border-color:#ef444466}.palette-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:4px;display:grid}.swatch-btn{cursor:pointer;border:1px solid #ffffff26;border-radius:4px;height:22px;transition:transform .1s}.swatch-btn:hover{transform:scale(1.15)}.arrange-buttons-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.arrange-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:6px;font-size:11px;font-weight:500;display:flex}.arrange-btn:hover{color:#fff;border-color:var(--accent-primary)}.empty-inspector-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:280px;padding:32px 12px;display:flex}.empty-inspector-state.layers-empty{min-height:180px}.empty-icon{color:var(--text-muted);opacity:.45;margin-bottom:12px}.empty-title{color:var(--text-secondary);margin-bottom:6px;font-size:14px;font-weight:600}.empty-desc{color:var(--text-muted);max-width:220px;font-size:12px;line-height:1.5}.empty-shortcut-row{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;font-size:11px;display:flex}.empty-shortcut-row span{align-items:center;gap:5px;display:inline-flex}.empty-canvas-link{border:1px solid var(--border-color);color:#a5b4fc;cursor:pointer;background:0 0;border-radius:8px;margin-top:18px;padding:7px 12px;font-size:12px;font-weight:600}.empty-canvas-link:hover{background:#6366f11a;border-color:#6366f173}.layers-list{flex-direction:column;gap:4px;display:flex}.layer-item{background:var(--bg-surface);cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;transition:all .15s;display:flex}.layer-item:hover{border-color:var(--border-color)}.layer-item.selected{border-color:var(--accent-primary);background:#6366f12e}.layer-color-preview{border:1px solid #fff3;border-radius:3px;width:14px;height:14px}.layer-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:500;overflow:hidden}.layer-actions{gap:4px;display:flex}.layer-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px}.layer-btn:hover{color:#fff;background:#ffffff1a}.code-drawer-container{bottom:0;left:var(--toolbox-width);right:var(--inspector-width);border-top:1px solid var(--border-color);z-index:45;background:#090d16;flex-direction:column;height:280px;animation:.2s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:absolute;box-shadow:0 -10px 30px #00000080}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.code-drawer-header{border-bottom:1px solid var(--border-color);background:#0d121f;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.drawer-title{align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.code-badge{font-family:var(--font-mono);background:var(--accent-primary);color:#fff;border-radius:4px;padding:2px 6px;font-size:10px}.unsaved-badge{color:var(--warning-color);background:#f59e0b33;border:1px solid #f59e0b4d;border-radius:4px;padding:2px 6px;font-size:10px}.drawer-actions{align-items:center;gap:8px;display:flex}.drawer-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:500;display:flex}.drawer-btn:hover{color:#fff;border-color:var(--accent-primary)}.drawer-btn.apply-btn{background:var(--accent-primary);color:#fff;border-color:#0000}.drawer-btn.icon-only{padding:5px}.code-drawer-body{flex:1;padding:10px;overflow:hidden}.code-textarea{resize:none;width:100%;height:100%;font-family:var(--font-mono);color:#38bdf8;white-space:pre;tab-size:2;background:0 0;border:none;outline:none;font-size:12px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.pen-guide-banner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#c7d2fe;z-index:30;background:#111827e6;border:1px solid #6366f166;border-radius:20px;align-items:center;gap:12px;padding:6px 16px;font-size:12px;font-weight:600;animation:.2s fadeIn;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}.direct-select-banner{color:#a7f3d0;border-color:#10b98166}.finish-btn{background:var(--accent-primary);color:#fff;border-radius:12px;padding:3px 8px;font-size:11px}.finish-btn:hover{background:var(--accent-hover)}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.section-header-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.section-icon{color:var(--accent-primary)}.preset-buttons-grid{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px;display:grid}.preset-btn{border:1px solid var(--border-color);cursor:pointer;text-align:left;min-width:0;font-family:var(--font-ui);background:#ffffff08;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 8px;transition:background .15s,border-color .15s;display:flex}.preset-btn:hover{background:#6366f114;border-color:#6366f14d}.preset-btn.active{border-color:var(--accent-primary);background:#6366f126}.preset-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:11px;font-weight:600;line-height:1.3;overflow:hidden}.preset-dim{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);font-weight:500}.transparent-toggle-box{margin:4px 0}.prop-checkbox-box{min-width:0}.toggle-rows{flex-direction:column;gap:6px;margin-top:8px;display:flex}.checkbox-label,.toggle-row{border:1px solid var(--border-color);background:var(--bg-input);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;transition:border-color .15s,background .15s;display:flex}.checkbox-label:hover,.toggle-row:hover{background:#6366f10f;border-color:#6366f159}.checkbox-label input[type=checkbox],.toggle-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0;margin:0}.checkbox-text{font-family:var(--font-ui);color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.3}:is(.checkbox-label:has(input:checked) .checkbox-text,.toggle-row:has(input:checked) .checkbox-text){color:var(--text-primary)}.color-swatches-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.color-swatch-dot{cursor:pointer;border:1px solid #ffffff26;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:transform .15s;display:flex}.color-swatch-dot:hover{transform:scale(1.15)}.color-swatch-dot.active{box-shadow:0 0 0 2px var(--accent-primary)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.15s fadeInModal;display:flex;position:fixed;inset:0}.export-modal{background:#111827;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;width:720px;max-width:90vw;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #0009}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-title-row{align-items:center;gap:8px;display:flex}.modal-icon{color:var(--accent-primary)}.modal-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close-btn:hover{color:var(--text-primary);background:#ffffff14}.modal-body{grid-template-columns:1.1fr 1fr;gap:20px;padding:20px;display:grid}.export-preview-pane{flex-direction:column;gap:10px;display:flex}.preview-container{border:1px solid var(--border-color);background:#090d16;border-radius:8px;justify-content:center;align-items:center;width:100%;height:240px;padding:12px;display:flex;overflow:hidden}.preview-image{object-fit:contain;border-radius:4px;max-width:100%;max-height:100%;box-shadow:0 4px 12px #0006}.preview-loading{color:var(--text-muted);font-size:12px}.preview-footer{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.mini-link-btn{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:11px;display:flex}.mini-link-btn:hover{text-decoration:underline}.export-config-pane{flex-direction:column;gap:16px;display:flex}.config-group{flex-direction:column;gap:6px;display:flex}.config-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.format-chips,.scale-chips{gap:6px;display:flex}.format-chip,.scale-chip{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;text-align:center;border-radius:6px;flex:1;padding:8px;font-size:11px;font-weight:600;transition:all .15s}.format-chip:hover,.scale-chip:hover{border-color:#6366f166}.format-chip.active,.scale-chip.active{border-color:var(--accent-primary);color:#a5b4fc;background:#6366f126}.export-modal-actions{flex-direction:column;gap:8px;margin-top:auto;display:flex}.export-action-btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.export-action-btn.primary{background:var(--accent-primary);color:#fff}.export-action-btn.primary:hover{background:var(--accent-hover)}.export-action-btn.secondary{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary)}.export-action-btn.secondary:hover{background:#ffffff14}@keyframes fadeInModal{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.canvas-rulers-container{pointer-events:none;z-index:20;position:absolute;inset:0}.ruler-corner-box{color:#94a3b8;pointer-events:all;cursor:pointer;-webkit-user-select:none;user-select:none;background:#090d16;border-bottom:1px solid #ffffff26;border-right:1px solid #ffffff26;justify-content:center;align-items:center;font-size:10px;font-weight:700;transition:all .15s;display:flex;position:absolute;top:0;left:0}.ruler-corner-box:hover{color:#38bdf8;background:#1e293b}.ruler-horizontal{-webkit-user-select:none;user-select:none;background:#090d16;border-bottom:1px solid #ffffff26;position:absolute;top:0}.ruler-vertical{-webkit-user-select:none;user-select:none;background:#090d16;border-right:1px solid #ffffff26;position:absolute;left:0}.dimension-hud text{-webkit-user-select:none;user-select:none}.pen-toolbar-floating{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;background:#0f172af0;border:1px solid #6366f14d;border-radius:30px;align-items:center;gap:12px;padding:6px 14px;animation:.2s cubic-bezier(.16,1,.3,1) fadeInDown;display:flex;position:absolute;top:40px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px -5px #00000080,0 0 15px #6366f133}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.pen-toolbar-section{align-items:center;gap:8px;display:flex}.pen-toolbar-label{color:var(--text-muted);font-size:11px;font-weight:600}.pen-size-indicator{border:1px solid #ffffff4d;border-radius:50%;display:inline-block;box-shadow:0 0 6px #00000080}.pen-size-value{color:#a5b4fc;font-size:11px;font-weight:700;font-family:var(--font-mono);min-width:28px}.pen-slider{width:90px;accent-color:var(--accent-primary);cursor:pointer;height:4px}.pen-toolbar-divider{background:#ffffff1f;width:1px;height:18px}.pen-toolbar-presets{gap:4px;display:flex}.pen-preset-chip{color:var(--text-secondary);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;padding:3px 8px;font-size:10px;font-weight:600;transition:all .15s}.pen-preset-chip:hover{color:#fff;background:#6366f133;border-color:#6366f166}.pen-preset-chip.active{background:var(--accent-primary);color:#fff;border-color:#818cf8;box-shadow:0 0 8px #6366f180}.pen-toolbar-colors{align-items:center;gap:5px;display:flex}.pen-color-swatch{cursor:pointer;border:1px solid #ffffff4d;border-radius:50%;width:16px;height:16px;transition:transform .15s}.pen-color-swatch:hover{transform:scale(1.2)}.pen-color-swatch.active{transform:scale(1.25);box-shadow:0 0 0 2px #fff,0 0 8px #0009}.pen-color-picker-input{cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:50%;width:20px;height:20px;padding:0}.text-path-section{background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;padding:10px}.switch-toggle-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:flex}.switch-toggle-label input[type=checkbox]{accent-color:var(--accent-primary)}.mini-preset-btn{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;padding:5px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.mini-preset-btn:hover{color:var(--text-primary);border-color:#6366f166}.mini-preset-btn.active{border-color:var(--accent-primary);color:#a5b4fc;background:#6366f133;font-weight:600}.blob-inspector-card{color:#e2e8f0;background:#181c24;border-radius:8px;flex-direction:column;gap:14px;padding:12px 14px;display:flex}.blob-header-title{color:#fff;letter-spacing:-.3px;font-size:18px;font-weight:700}.blob-section{border-top:1px solid #ffffff14;flex-direction:column;gap:8px;padding-top:10px;display:flex}.blob-section-title{color:#fff;font-size:12px;font-weight:700}.blob-prop-row{justify-content:space-between;align-items:center;display:flex}.blob-prop-label,.blob-label{color:#94a3b8;font-size:11px;font-weight:600}.blob-mode-toggle{background:#0f131a;border:1px solid #ffffff1a;border-radius:6px;padding:2px;display:flex;overflow:hidden}.blob-mode-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:6px 12px;font-size:11px;font-weight:600;transition:all .15s}.blob-mode-btn:hover{color:#fff}.blob-mode-btn.active{color:#fff;background:#0ea5e9;box-shadow:0 2px 8px #0ea5e966}.blob-checkbox-label{color:#cbd5e1;cursor:pointer;align-items:center;gap:8px;font-size:11px;display:flex}.blob-checkbox-label input[type=checkbox]{accent-color:#0ea5e9;cursor:pointer;width:14px;height:14px}.blob-geometry-widget{background:#252b36;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;margin-bottom:4px;padding:6px;display:flex}.blob-slider-row{flex-direction:column;gap:4px;display:flex}.blob-control-group{align-items:center;gap:8px;display:flex}.blob-slider{accent-color:#0ea5e9;cursor:pointer;flex:1;height:4px}.blob-number-input{color:#fff;width:52px;font-size:11px;font-family:var(--font-mono);text-align:right;background:#0f131a;border:1px solid #ffffff24;border-radius:4px;padding:4px 6px}.blob-number-input.small{width:44px}.blob-input-with-unit{align-items:center;display:flex;position:relative}.blob-input-with-unit .blob-number-input{padding-right:18px}.blob-unit{color:#94a3b8;pointer-events:none;font-size:10px;position:absolute;right:6px}.blob-dynamics-row{flex-direction:column;gap:4px;display:flex}.blob-dynamics-controls{align-items:center;gap:6px;display:flex}.blob-select{color:#fff;cursor:pointer;background:#0f131a;border:1px solid #ffffff24;border-radius:4px;flex:1;padding:4px 8px;font-size:11px}.shape-toolbar-floating{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;background:#0f172af0;border:1px solid #6366f14d;border-radius:30px;align-items:center;gap:10px;padding:6px 14px;animation:.2s cubic-bezier(.16,1,.3,1) fadeInDown;display:flex;position:absolute;top:40px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px -5px #00000080,0 0 15px #6366f133}.shape-toolbar-title{color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.shape-toolbar-divider{background:#ffffff1f;width:1px;height:18px}.shape-toolbar-items{align-items:center;gap:4px;display:flex}.shape-chip-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.shape-chip-btn:hover{color:#fff;background:#6366f133;border-color:#6366f166;transform:translateY(-1px)}.shape-chip-btn.active{background:var(--accent-primary);color:#fff;border-color:#818cf8;box-shadow:0 0 10px #6366f180}.shape-chip-label{font-size:11px}.canvas-bottom-bar{--ruler-offset:0px;left:calc(16px + var(--ruler-offset));z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;min-height:36px;font-family:var(--font-ui);background:#0f172af5;border:1px solid #ffffff24;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:6px 10px 6px 12px;display:flex;position:absolute;bottom:16px;right:16px;box-shadow:0 10px 25px -5px #00000080}.canvas-bottom-bar.with-rulers{--ruler-offset:28px}.bottom-bar-left{flex:1;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.status-tool-badge{background:#6366f124;border:1px solid #6366f147;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px 4px 10px;display:inline-flex}.status-tool-name{font-family:var(--font-ui);color:#e2e8f0;white-space:nowrap;font-size:12px;font-weight:600}.status-tool-badge kbd{color:#c7d2fe;background:#0f172a8c;border-color:#ffffff29;min-width:16px;height:16px;padding:0 4px;font-size:9px}.status-hint-track{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.status-hint-part{font-family:var(--font-ui);color:#94a3b8;white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:500}.status-hint-track .status-hint-part:last-child{text-overflow:ellipsis;flex-shrink:1;overflow:hidden}.status-hint-sep{background:#94a3b88c;border-radius:50%;flex-shrink:0;width:3px;height:3px}.bottom-bar-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.bottom-bar-divider{background:#ffffff1f;flex-shrink:0;width:1px;height:18px}.bottom-zoom-controls{flex-shrink:0;align-items:center;gap:2px;display:flex}.status-chip{letter-spacing:.02em;text-transform:uppercase;color:#a5b4fc;white-space:nowrap;background:#6366f129;border:1px solid #6366f147;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:600}.status-coords{font-family:var(--font-mono);color:#cbd5e1;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.status-coords span{color:var(--text-muted);font-size:10px;font-weight:700}.zoom-btn{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.zoom-btn:hover{color:#fff;background:#ffffff1a}.zoom-btn:active{transform:scale(.92)}.zoom-level-badge{font-size:11px;font-weight:700;font-family:var(--font-mono);color:#a5b4fc;cursor:pointer;text-align:center;background:0 0;border:none;border-radius:4px;min-width:44px;padding:3px 6px;transition:background .15s,color .15s}.zoom-level-badge:hover{color:#fff;background:#6366f133}.canvas-viewport.tool-pen,.canvas-viewport.tool-pencil,.canvas-viewport.tool-blob,.canvas-viewport.tool-rect,.canvas-viewport.tool-rounded-rect,.canvas-viewport.tool-circle,.canvas-viewport.tool-ellipse,.canvas-viewport.tool-polygon,.canvas-viewport.tool-star,.canvas-viewport.tool-line{cursor:crosshair}.canvas-viewport.tool-text{cursor:text}.canvas-viewport.hand-mode{cursor:grab}.canvas-viewport.panning,.canvas-viewport.hand-mode.panning{cursor:grabbing}.canvas-viewport.tool-pen .svg-element,.canvas-viewport.tool-pencil .svg-element,.canvas-viewport.tool-blob .svg-element,.canvas-viewport.tool-rect .svg-element,.canvas-viewport.tool-rounded-rect .svg-element,.canvas-viewport.tool-circle .svg-element,.canvas-viewport.tool-ellipse .svg-element,.canvas-viewport.tool-polygon .svg-element,.canvas-viewport.tool-star .svg-element,.canvas-viewport.tool-line .svg-element,.canvas-viewport.tool-text .svg-element,.canvas-viewport.hand-mode .svg-element,.canvas-viewport.panning .svg-element{cursor:inherit!important}.auth-signin-btn{gap:6px}.auth-menu,.publish-menu{position:relative}.publish-popover{border:1px solid var(--border-color);z-index:120;background:#0f172a;border-radius:10px;width:280px;padding:14px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 40px #00000073}.publish-title{color:var(--text-primary);margin:0 0 6px;font-size:13px;font-weight:700}.publish-desc,.publish-error{color:var(--text-muted);margin:0 0 12px;font-size:12px;line-height:1.45}.publish-error{color:#fca5a5}.publish-link{color:#38bdf8;font-size:13px;font-weight:600;display:inline-flex}.publish-popover .topbar-btn.primary{width:100%}.auth-user-btn{gap:6px;max-width:220px}.auth-user-btn span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-menu-dropdown{border:1px solid var(--border-color);z-index:120;background:#0f172a;border-radius:10px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 40px #00000073}.auth-menu-email{color:var(--text-muted);border-bottom:1px solid var(--border-color);word-break:break-all;margin-bottom:4px;padding:8px 10px;font-size:12px}.auth-menu-item{width:100%;color:var(--text-primary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.auth-menu-item:hover:not(:disabled){background:#ffffff0f}.auth-menu-item.danger{color:#fca5a5}.auth-menu-item:disabled{opacity:.6;cursor:not-allowed}.auth-modal-backdrop{z-index:300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#020617b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.auth-modal{border:1px solid var(--border-color);background:#0f172a;border-radius:16px;width:min(100%,440px);overflow:hidden;box-shadow:0 24px 60px #0000008c}.auth-modal-header{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.auth-modal-title-row{align-items:center;gap:10px;display:flex}.auth-modal-icon{color:var(--accent-primary)}.auth-modal-title{font-family:var(--font-ui);color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.auth-mode-tabs{grid-template-columns:1fr 1fr;gap:8px;padding:14px 20px 0;display:grid}.auth-mode-tab{color:var(--text-muted);font-family:var(--font-ui);cursor:pointer;background:#ffffff08;border:1px solid #0000;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.auth-mode-tab:hover:not(:disabled){color:var(--text-primary);background:#ffffff0f}.auth-mode-tab.active{color:var(--text-primary);background:#6366f129;border-color:#6366f159}.auth-mode-tab:disabled{opacity:.55;cursor:not-allowed}.auth-modal-body{padding:16px 20px 20px}.auth-modal-desc{font-family:var(--font-ui);color:var(--text-muted);margin:0 0 16px;font-size:13px;line-height:1.55}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-label{font-family:var(--font-ui);color:var(--text-primary);font-size:12px;font-weight:600}.auth-input-wrap{position:relative}.auth-input-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-ui);background:#ffffff08;border-radius:10px;padding:10px 12px 10px 38px;font-size:14px}.auth-input:focus{border-color:#6366f18c;outline:none;box-shadow:0 0 0 3px #6366f126}.auth-otp-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);letter-spacing:.35em;text-align:center;background:#ffffff08;border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:24px}.auth-otp-input:focus{border-color:#6366f18c;outline:none;box-shadow:0 0 0 3px #6366f126}.auth-btn{font-family:var(--font-ui);cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.auth-btn.primary{background:var(--accent-primary);color:#fff}.auth-btn.primary:hover:not(:disabled){filter:brightness(1.06)}.auth-btn.secondary{border-color:var(--border-color);color:var(--text-primary);background:#ffffff0a}.auth-btn.secondary:hover:not(:disabled){background:#ffffff14}.auth-btn:disabled{opacity:.55;cursor:not-allowed}.auth-link-btn{color:var(--accent-primary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.auth-link-btn:hover:not(:disabled){text-decoration:underline}.auth-link-btn:disabled{color:var(--text-muted);cursor:not-allowed;text-decoration:none}.auth-otp-footer{justify-content:space-between;gap:12px;margin-top:4px;display:flex}.auth-error{color:#fecaca;font-family:var(--font-ui);background:#ef44441f;border:1px solid #ef444459;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:12px;line-height:1.45}.auth-setup-warning{color:#fde68a;font-family:var(--font-ui);background:#f59e0b1f;border:1px solid #f59e0b59;border-radius:10px;gap:10px;margin-bottom:14px;padding:12px;font-size:12px;line-height:1.5;display:flex}.auth-setup-warning p{margin:0}.auth-key-box{border:1px solid var(--border-color);background:#ffffff08;border-radius:10px;margin-bottom:12px;padding:12px;overflow-x:auto}.auth-key-value{color:var(--text-primary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.6}.auth-key-actions{gap:8px;margin-bottom:12px;display:flex}.auth-key-actions .auth-btn{flex:1}.auth-checkbox-row{font-family:var(--font-ui);color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:14px;font-size:12px;line-height:1.45;display:flex}.auth-checkbox-row input{margin-top:2px}
