:root{--font-hand: "Handlee", "Comic Sans MS", cursive;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "Source Code Pro", "Cascadia Code", monospace;--font-caveat: "Caveat", cursive;--font-poppins: "Poppins", sans-serif;--font-serif: "Merriweather", serif;--font-marker: "Permanent Marker", cursive;--font-code: "JetBrains Mono", monospace;font-family:var(--font-sans);line-height:1.5;font-weight:400;--bg-canvas: #e2e8f0;--bg-panel: #ffffff;--bg-secondary: #f9fafb;--text-primary: #111827;--text-secondary: #6b7280;--border-color: #e5e7eb;--btn-bg: #ffffff;--btn-hover: #f3f4f6;--btn-active: #e5e7eb;--primary-color: #3b82f6;--danger-color: #ef4444;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);color-scheme:light dark;color:var(--text-primary);background-color:var(--bg-canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--bg-canvas: #e2e8f0;--bg-panel: #1e1e1e;--bg-secondary: #2d2d2d;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--border-color: #404040;--btn-bg: #2d2d2d;--btn-hover: #3d3d3d;--btn-active: #4d4d4d;--primary-color: #60a5fa;--danger-color: #f87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5)}[data-theme=focus]{--bg-canvas: #1a1a2e;--bg-panel: #1e1e1e;--bg-secondary: #2d2d2d;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--border-color: #404040;--btn-bg: #2d2d2d;--btn-hover: #3d3d3d;--btn-active: #4d4d4d;--primary-color: #60a5fa;--danger-color: #f87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5)}body{margin:0;padding:0;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-canvas);color:var(--text-primary)}button{border-radius:6px;border:1px solid var(--border-color);padding:8px 12px;font-size:14px;font-weight:500;font-family:inherit;background-color:var(--btn-bg);color:var(--text-primary);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}button:hover{background-color:var(--btn-hover);border-color:var(--border-color)}button:active{background-color:var(--btn-active);transform:translateY(1px)}button.active{background-color:#3b82f61a;border-color:var(--primary-color);color:var(--primary-color)}input[type=text]{border-radius:6px;border:1px solid var(--border-color);padding:8px 12px;font-family:inherit;font-size:14px;outline:none;background-color:var(--bg-panel);color:var(--text-primary);transition:border-color .2s}input[type=text]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f633}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:1.5px solid var(--border-color, #d1d5db);border-radius:4px;background:var(--bg-panel, #ffffff);cursor:pointer;position:relative;flex-shrink:0;transition:background .15s,border-color .15s}input[type=checkbox]:checked{background:var(--primary-color, #3b82f6);border-color:var(--primary-color, #3b82f6)}input[type=checkbox]:checked:after{content:"";position:absolute;left:4.5px;top:1.5px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}input[type=checkbox]:focus-visible{outline:2px solid var(--primary-color, #3b82f6);outline-offset:1px}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{border-radius:6px;border:1px solid #ccc;padding:8px 12px;font-size:14px;font-weight:500;font-family:inherit;background-color:#fff;cursor:pointer;transition:all .2s;box-shadow:0 1px 2px #0000000d}button:hover{background-color:#f9f9f9;border-color:#bbb}button:active{background-color:#f0f0f0;transform:translateY(1px)}button.active{background-color:#e0efff;border-color:#007acc;color:#007acc}input[type=text]{border-radius:6px;border:1px solid #ccc;padding:8px 12px;font-family:inherit;font-size:14px;outline:none;transition:border-color .2s}input[type=text]:focus{border-color:#007acc;box-shadow:0 0 0 2px #007acc33}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.unselectable{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.minimap-container{position:fixed;bottom:48px;right:20px;z-index:1000;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:8px;-webkit-user-select:none;user-select:none}.minimap-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding:0 4px}.minimap-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.minimap-close{background:transparent;border:none;padding:2px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s;box-shadow:none}.minimap-close:hover{background-color:var(--btn-hover);color:var(--text-primary)}.minimap-canvas{display:block;border-radius:4px;cursor:pointer;border:1px solid var(--border-color)}.minimap-canvas:active{cursor:grabbing}.floating-settings-btn{transition:all .2s ease}.floating-settings-btn:hover{transform:scale(1.1)}.floating-settings-btn.active{background:#3b82f6!important;color:#fff!important}.zen-exit-btn{position:fixed;bottom:12px;right:12px;padding:6px 14px;border:none;border-radius:6px;background:var(--bg-panel, #ffffff);color:var(--text-secondary, #6b7280);font-size:11px;font-weight:500;box-shadow:0 2px 8px #0000001f;cursor:pointer;z-index:1000;opacity:.5;transition:opacity .2s,background .2s}.zen-exit-btn:hover{opacity:1;background:var(--primary-color, #3b82f6);color:#fff}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-panel);color:var(--text-primary);padding:12px 16px;border-radius:8px;box-shadow:0 4px 20px #00000026;display:flex;align-items:center;gap:12px;z-index:10010;-webkit-user-select:none;user-select:none;font-size:14px;font-weight:500;border:1px solid var(--border-color);animation:slideUp .3s cubic-bezier(.16,1,.3,1);min-width:300px;max-width:90vw}.toast-success{border-left:4px solid #10b981}.toast-error{border-left:4px solid #ef4444}.toast-info{border-left:4px solid #3b82f6}.toast-icon{display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{color:#10b981}.toast-error .toast-icon{color:#ef4444}.toast-info .toast-icon{color:#3b82f6}.toast-message{flex:1}.toast-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .2s}.toast-close:hover{background:var(--bg-hover);color:var(--text-primary)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.toast-loading{border-left:4px solid #f59e0b}.toast-loading .toast-icon{color:#f59e0b}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.context-menu{position:fixed;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #00000026;padding:4px;min-width:220px;max-height:80vh;overflow-y:auto;overflow-x:visible;z-index:10000;-webkit-user-select:none;user-select:none;font-size:14px}.menu-item-wrapper{position:relative}.context-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;border-radius:4px;text-align:left;transition:background .15s;font-size:13px}.context-menu-item:hover:not(.disabled){background:var(--btn-hover)}.context-menu-item.disabled{opacity:.4;cursor:not-allowed}.menu-item-check{width:16px;flex-shrink:0;font-size:12px;color:#3b82f6}.menu-item-label{flex:1}.menu-item-shortcut{font-size:11px;color:var(--text-secondary);opacity:.6;font-family:monospace}.context-menu-separator{height:1px;background:var(--border-color);margin:4px 8px}[data-theme=dark] .context-menu,[data-theme=focus] .context-menu{box-shadow:0 4px 20px #0006}.recording-overlay{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 16px;border-radius:24px;display:flex;align-items:center;gap:16px;z-index:99999;box-shadow:0 4px 12px #0003;border:1px solid rgba(255,255,255,.1);color:#fff;font-family:Inter,sans-serif;animation:slideDown .3s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{transform:translate(-50%,-20px);opacity:0}to{transform:translate(-50%);opacity:1}}.recording-indicator{display:flex;align-items:center;gap:6px}.pulse-dot{width:10px;height:10px;background-color:#ff3b30;border-radius:50%;animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #ff3b30b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ff3b3000}to{transform:scale(.95);box-shadow:0 0 #ff3b3000}}.recording-text{font-weight:700;font-size:12px;letter-spacing:.5px;color:#ff3b30}.recording-timer{font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;min-width:36px}.stop-btn{display:flex;align-items:center;gap:6px;background:#ffffff1a;border:none;padding:6px 12px;border-radius:16px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.stop-btn:hover{background:#fff3;transform:translateY(-1px)}.stop-btn:active{transform:translateY(0)}.video-overlay-container{position:fixed;z-index:1500;background:#000;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #00000080;min-width:320px}.video-overlay-container.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.video-overlay-titlebar{display:flex;align-items:center;gap:2px;padding:3px 4px;background:#000000bf;-webkit-user-select:none;user-select:none}.video-overlay-drag-hint{color:#ffffff73;display:flex;align-items:center;padding:0 2px}.video-overlay-titlebar-spacer{flex:1}.video-overlay-titlebar-btn{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:#ffffffa6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.video-overlay-titlebar-btn:hover{background:#ffffff26;color:#fff}.video-overlay-content{width:100%}.video-overlay-iframe{width:100%;height:100%;border:none}.video-overlay-player{width:100%;height:100%;object-fit:contain}.rt-overlay-wrapper{z-index:10000;pointer-events:auto;background:var(--bg-panel, #ffffff);border:1px dashed var(--primary-color, #3b82f6);border-radius:6px;box-shadow:0 2px 8px #00000026;padding:4px}.rt-toolbar{display:flex;align-items:center;gap:2px;padding:4px 6px;background:var(--bg-panel, #ffffff);border:none;border-bottom:1px solid var(--border-color, #e5e7eb);border-radius:0;box-shadow:none;margin-bottom:4px;width:100%;margin-left:auto;margin-right:auto}.rt-toolbar-btn{width:26px;height:26px;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-secondary, #6b7280);transition:all .15s;padding:0}.rt-toolbar-btn:hover{background:var(--btn-hover, #f3f4f6);color:var(--text-primary, #374151)}.rt-toolbar-btn.active{background:var(--primary-color, #3b82f6);color:#fff;border-color:var(--primary-color, #3b82f6)}.rt-toolbar-divider{width:1px;height:20px;background:var(--border-color, #e5e7eb);margin:0 2px;flex-shrink:0}.rt-color-wrapper{position:relative}.rt-color-icon{font-weight:700;font-size:14px;border-bottom:3px solid var(--primary-color, #3b82f6);line-height:1;padding-bottom:1px}.rt-color-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-panel, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:6px;box-shadow:0 4px 12px #0003;z-index:10003;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.rt-color-swatch{width:20px;height:20px;border-radius:4px;cursor:pointer;transition:transform .1s;padding:0}.rt-color-swatch:hover{transform:scale(1.2)}.rt-font-wrapper{position:relative}.rt-font-icon{font-weight:700;font-size:14px;font-family:serif;line-height:1}.rt-font-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-panel, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:4px;box-shadow:0 4px 12px #0003;z-index:10003;display:flex;flex-direction:column;gap:1px;min-width:130px}.rt-font-option{background:transparent;border:none;border-radius:4px;cursor:pointer;padding:4px 8px;text-align:left;font-size:13px;color:var(--text-primary, #374151);transition:background .1s;white-space:nowrap}.rt-font-option:hover{background:var(--btn-hover, #f3f4f6)}.rt-editor{box-sizing:border-box;border:none;background:transparent;outline:none;padding:4px;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap}.rt-editor ul,.rt-editor ol{margin:0;padding-left:20px}.rt-editor li{margin:0;padding:0}.rt-editor ul{list-style-type:disc}.rt-editor ol{list-style-type:decimal}.text-editor-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.text-editor-modal{background:var(--bg-panel, #ffffff);color:var(--text-primary, #1f2937);border-radius:12px;width:700px;max-width:90vw;max-height:70vh;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color, #e5e7eb)}.text-editor-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0}.text-editor-modal-header h3{margin:0;font-size:1rem;font-weight:600}.text-editor-modal-toolbar{display:flex;align-items:center;gap:2px;padding:8px 20px;border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0}.text-editor-modal-toolbar .rt-toolbar-btn{width:28px;height:28px}.text-editor-modal-toolbar .rt-color-popover{z-index:2010}.text-editor-modal-body{flex:1;overflow-y:auto;padding:0;min-height:200px}.text-editor-modal-editor{box-sizing:border-box;width:100%;min-height:100%;padding:16px 20px;outline:none;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap;line-height:1.6}.text-editor-modal-textarea{box-sizing:border-box;width:100%;min-height:100%;padding:16px 20px;border:none;outline:none;background:transparent;color:inherit;resize:none;line-height:1.6;font-size:16px}.text-editor-modal-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--border-color, #e5e7eb);flex-shrink:0}.text-editor-modal-done-btn{padding:6px 20px;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;font-weight:500;transition:background .15s}.text-editor-modal-done-btn:hover{background:var(--primary-hover, #2563eb)}.text-editor-modal-editor ul,.text-editor-modal-editor ol{margin:0;padding-left:20px}.text-editor-modal-editor li{margin:0;padding:0}.text-editor-modal-editor ul{list-style-type:disc}.text-editor-modal-editor ol{list-style-type:decimal}.pen-tool-group,.tool-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.dropdown-indicator{font-size:8px;margin-left:2px;opacity:.6}.pen-tool-dropdown{position:fixed;min-width:200px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);z-index:10003;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.pen-tool-dropdown::-webkit-scrollbar{width:6px}.pen-tool-dropdown::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:3px}.dropdown-item{display:flex;align-items:center;justify-content:center;padding:10px;width:40px;height:40px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:inherit;transition:background .2s;touch-action:manipulation}.dropdown-item:hover{background:var(--btn-hover)}.dropdown-item.active{background:var(--primary-color);color:#fff}.tool-label{flex:1}.submenu-indicator{font-size:14px;margin-left:4px;opacity:1;color:var(--primary-color);fill:var(--primary-color);vertical-align:middle}.toolbar-btn:hover .submenu-indicator{transform:rotate(180deg)}.toolbar-btn.tool-locked:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;background:var(--primary-color);border-radius:50%;box-shadow:0 0 2px #0000004d}.connector-tool-group{position:relative;display:flex;align-items:center;justify-content:center}.connector-tool-dropdown{position:fixed;min-width:200px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);z-index:10003;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.video-dialog-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;animation:video-dialog-fade-in .15s ease-out}@keyframes video-dialog-fade-in{0%{opacity:0}to{opacity:1}}.video-dialog-modal{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;padding:24px;width:min(440px,90vw);box-shadow:var(--shadow-lg);color:var(--text-primary);animation:video-dialog-slide-up .15s ease-out}@keyframes video-dialog-slide-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.video-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.video-dialog-header h2{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.video-dialog-body{margin-bottom:20px}.video-dialog-label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.video-dialog-input-wrap{position:relative}.video-dialog-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .15s;box-sizing:border-box}.video-dialog-input:focus{border-color:var(--primary-color)}.video-dialog-input.valid{border-color:#22c55e}.video-dialog-input.invalid{border-color:#ef4444}.video-dialog-provider{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:500;color:#22c55e;text-transform:uppercase;letter-spacing:.5px}.video-dialog-preview{margin-top:12px;position:relative;border-radius:8px;overflow:hidden;aspect-ratio:16/9;background:#0a0a0a}.video-dialog-preview img{width:100%;height:100%;object-fit:cover}.video-dialog-preview-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#0000008c;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none}.video-dialog-hint{margin-top:8px;font-size:12px;color:var(--text-secondary)}.video-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.video-dialog-btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.video-dialog-btn-cancel{border:1px solid var(--border-color);background:var(--bg-panel);color:var(--text-secondary)}.video-dialog-btn-cancel:hover{background:var(--btn-hover);color:var(--text-primary)}.video-dialog-btn-submit{border:none;background:var(--primary-color);color:#fff}.video-dialog-btn-submit:hover:not(:disabled){opacity:.9}.video-dialog-btn-submit:disabled{opacity:.4;cursor:not-allowed}.toolbar-container{position:fixed;top:12px;left:50%;right:auto;margin:0;width:fit-content;display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-panel);border-radius:8px;box-shadow:var(--shadow-sm);z-index:10002;border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;transition:box-shadow .2s,background .2s}.toolbar-container.dragging{cursor:grabbing;box-shadow:0 8px 16px #0003}.drag-handle{width:12px;height:36px;cursor:grab;display:flex;align-items:center;justify-content:center;padding:0 2px;opacity:.4;transition:opacity .2s}.toolbar-container:hover .drag-handle{opacity:.8}.drag-dots{width:4px;height:18px;background-image:radial-gradient(var(--text-secondary) 1px,transparent 1px);background-size:4px 4px}@media(max-width:768px){.toolbar-container{inset:auto 0 36px;width:100%;max-width:100%;transform:none;border-radius:0;border-left:none;border-right:none;border-bottom:none;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));gap:4px;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;box-shadow:0 -2px 10px #0000001a}.toolbar-container::-webkit-scrollbar{display:none}.toolbar-container .drag-handle{display:none}.toolbar-btn{width:40px;height:40px;flex-shrink:0;touch-action:manipulation}.toolbar-container>*{flex-shrink:0}.pen-tool-dropdown{width:calc(100vw - 40px);max-width:320px;grid-template-columns:repeat(5,1fr)}}.toolbar-btn{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:6px;border:1px solid transparent;background-color:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.hotkey-badge{position:absolute;bottom:1px;right:1px;font-size:8px;line-height:1;color:var(--text-secondary);opacity:.45;pointer-events:none;font-family:system-ui,sans-serif}.toolbar-btn:hover{background-color:var(--btn-hover);color:var(--text-primary)}.toolbar-btn.active{background-color:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color)}.mobile-property-toggle{margin-left:4px;border-left:1px solid #e5e7eb;padding-left:8px}.settings-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.settings-modal{background:var(--bg-panel);color:var(--text-primary);padding:24px;border-radius:12px;width:420px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:20px}.settings-header{display:flex;justify-content:space-between;align-items:center}.settings-header h3{margin:0;font-size:1.2rem}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-row label{font-size:.85rem;color:var(--text-primary);white-space:nowrap}.settings-row select,.settings-row input[type=number]{padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-panel);color:var(--text-primary);font-size:.85rem;min-width:160px}.settings-row select:focus,.settings-row input[type=number]:focus{outline:none;border-color:var(--primary-color)}.settings-row input[type=color]{width:36px;height:30px;border:1px solid var(--border-color);border-radius:6px;padding:2px;cursor:pointer;background:var(--bg-panel)}.settings-color-group{display:flex;align-items:center;gap:8px;min-width:160px}.settings-color-group span{font-size:.8rem;color:var(--text-secondary)}.settings-row input[type=range]{min-width:120px;accent-color:var(--primary-color)}.settings-range-group{display:flex;align-items:center;gap:8px;min-width:160px}.settings-range-group span{font-size:.8rem;color:var(--text-secondary);min-width:30px;text-align:right}.settings-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--border-color)}.settings-reset-btn{padding:6px 14px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8rem}.settings-reset-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.settings-close-btn{padding:6px 18px;border:none;border-radius:6px;background:var(--primary-color);color:#fff;cursor:pointer;font-size:.85rem}.settings-close-btn:hover{opacity:.9}.settings-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;inset:0;background:var(--border-color, #d1d5db);border-radius:11px;transition:background .2s}.settings-toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s}.settings-toggle input:checked+.settings-toggle-slider{background:var(--primary-color, #3b82f6)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(18px)}.ai-settings-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.ai-settings-modal{background:var(--bg-panel);color:var(--text-primary);padding:24px;border-radius:12px;width:480px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:20px}.ai-settings-header{display:flex;justify-content:space-between;align-items:center}.ai-settings-header h3{margin:0;font-size:1.2rem}.ai-settings-header .close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.ai-settings-header .close-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.ai-settings-section{display:flex;flex-direction:column;gap:10px}.ai-settings-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.ai-settings-provider-select{display:flex;gap:6px}.ai-settings-provider-btn{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:500;transition:all .15s}.ai-settings-provider-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.ai-settings-provider-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.ai-settings-provider-btn.active:hover{background:var(--primary-color);color:#fff;opacity:.9}.ai-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-settings-row label{font-size:.85rem;color:var(--text-primary);white-space:nowrap;min-width:60px}.ai-settings-row select{padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-panel);color:var(--text-primary);font-size:.85rem;min-width:200px}.ai-settings-row select:focus{outline:none;border-color:var(--primary-color)}.ai-settings-key-input{display:flex;align-items:center;flex:1;border:1px solid var(--border-color);border-radius:6px;overflow:hidden;min-width:200px}.ai-settings-key-input input{flex:1;padding:6px 10px;border:none;background:var(--bg-panel);color:var(--text-primary);font-size:.82rem;font-family:monospace;outline:none}.ai-settings-key-input input::placeholder{color:var(--text-secondary);opacity:.6;font-family:inherit}.ai-settings-eye-btn{background:none;border:none;border-left:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;padding:6px 8px;display:flex;align-items:center}.ai-settings-eye-btn:hover{color:var(--text-primary);background:var(--btn-hover)}.ai-settings-note{font-size:.75rem;color:var(--text-secondary);margin:0;line-height:1.4}.ai-settings-footer{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-color)}.ai-settings-done-btn{padding:6px 18px;border:none;border-radius:6px;background:var(--primary-color);color:#fff;cursor:pointer;font-size:.85rem}.ai-settings-done-btn:hover{background:var(--primary-color);color:#fff;opacity:.9}.rocket-settings-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.rocket-settings-modal{background:var(--bg-panel);color:var(--text-primary);padding:24px;border-radius:12px;width:440px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:16px}.rocket-settings-header{display:flex;justify-content:space-between;align-items:center}.rocket-settings-header h3{margin:0;font-size:1.1rem}.rocket-settings-header .close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.rocket-settings-header .close-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.rocket-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.rocket-settings-row label{font-size:.85rem;color:var(--text-primary);white-space:nowrap;min-width:80px}.rocket-settings-row input{flex:1;padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-panel);color:var(--text-primary);font-size:.85rem;outline:none}.rocket-settings-row input:focus{border-color:var(--primary-color)}.rocket-settings-key-input{display:flex;align-items:center;flex:1;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.rocket-settings-key-input input{flex:1;padding:6px 10px;border:none;background:var(--bg-panel);color:var(--text-primary);font-size:.85rem;outline:none}.rocket-settings-eye-btn{background:none;border:none;border-left:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;padding:6px 8px;display:flex;align-items:center}.rocket-settings-eye-btn:hover{color:var(--text-primary);background:var(--btn-hover)}.rocket-settings-test-btn{padding:6px 14px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.82rem;font-weight:500;transition:all .15s}.rocket-settings-test-btn:hover{background:var(--btn-hover)}.rocket-settings-test-btn:disabled{opacity:.5;cursor:not-allowed}.rocket-settings-test-result{font-size:.8rem;padding:6px 10px;border-radius:6px;line-height:1.4}.rocket-settings-test-result.success{color:#16a34a;background:#16a34a14}.rocket-settings-test-result.error{color:#dc2626;background:#dc262614}.rocket-settings-note{font-size:.75rem;color:var(--text-secondary);margin:0;line-height:1.4}.rocket-settings-footer{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-color)}.rocket-settings-done-btn{padding:6px 18px;border:none;border-radius:6px;background:var(--primary-color);color:#fff;cursor:pointer;font-size:.85rem}.rocket-settings-done-btn:hover{opacity:.9}.menu-container{display:flex;align-items:center;background:var(--bg-panel);padding:6px;border-radius:8px;box-shadow:var(--shadow-sm);gap:4px;border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;transition:box-shadow .2s}.text-logo{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:700;letter-spacing:-.3px;line-height:1;flex-shrink:0;padding:0 2px}.text-logo-yappy{color:var(--text-primary)}.text-logo-draw{color:var(--logo-accent, #4f6df5)}.menu-container:hover{box-shadow:0 4px 12px #0000001a}.drag-handle{width:12px;height:32px;cursor:grab;display:flex;align-items:center;justify-content:center;padding:0 2px;opacity:.3;transition:opacity .2s}.drag-handle.sm{height:24px}.menu-container:hover .drag-handle,.app-title:hover .drag-handle{opacity:.7}.drag-dots{width:4px;height:16px;background-image:radial-gradient(var(--text-secondary) 1px,transparent 1px);background-size:4px 4px}.title-input{background:transparent;border:1px solid transparent;padding:4px 8px;font-size:14px;font-weight:500;width:150px;color:var(--text-primary);border-radius:4px}.title-input:hover{border-color:var(--border-color)}.title-input:focus{border-color:var(--primary-color);background:var(--bg-canvas)}.menu-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .2s}.menu-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.menu-btn:disabled{opacity:.5;cursor:not-allowed}.menu-btn.primary{background:var(--primary-color);color:#fff;width:auto;padding:0 12px}.menu-btn.primary:hover{opacity:.9}.menu-dropdown{position:absolute;top:60px;left:0;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:8px 0;width:300px;z-index:1001;display:flex;flex-direction:column;gap:1px;max-height:80vh;overflow-y:auto}@media(max-width:480px){.menu-dropdown{width:280px;left:0}}@media(max-width:768px){.menu-container .drag-handle{display:none}.menu-container{padding:4px}}.menu-item{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:12px;padding:10px 16px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;width:100%;box-sizing:border-box;transition:background .2s}.menu-item:hover{background:var(--btn-hover)}.menu-item svg{color:var(--text-secondary)}.menu-item .label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.menu-item-right{display:flex;align-items:center;gap:12px;flex-shrink:0;justify-content:flex-end;min-width:70px}.menu-item .shortcut{font-size:11px;color:var(--text-secondary);opacity:.6;white-space:nowrap;min-width:40px;text-align:right}.check-icon{color:var(--primary-color)}.menu-separator{height:1px;background:var(--border-color);margin:4px 0}.menu-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:999;cursor:default}.app-title{position:fixed;top:12px;left:50%;transform:translate(-50%);background:var(--bg-panel);padding:4px 12px;border-radius:6px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);font-weight:500;color:var(--text-secondary);opacity:.6;z-index:100;font-size:13px;pointer-events:none;-webkit-user-select:none;user-select:none}.status-bar{position:fixed;bottom:0;left:0;width:100%;height:28px;background:var(--bg-panel, white);border-top:1px solid var(--border-color, #e5e7eb);display:flex;align-items:center;padding:0 4px;font-size:11px;color:var(--text-secondary, #6b7280);z-index:100;-webkit-user-select:none;user-select:none;gap:0}.status-section{display:flex;align-items:center;gap:4px;padding:0 8px;height:100%;border-right:1px solid var(--border-color, #e5e7eb);white-space:nowrap}.status-section:last-child{border-right:none}.status-spacer{flex:1}.status-label{opacity:.6;font-size:10px}.status-value{font-variant-numeric:tabular-nums}.status-bar .status-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-secondary, #6b7280);cursor:pointer;transition:background .15s}.status-bar .status-btn:hover:not(:disabled){background:var(--btn-hover, #f3f4f6);color:var(--text-primary, #111827)}.status-bar .status-btn:disabled{opacity:.3;cursor:not-allowed}.status-bar .status-btn.text-btn{width:auto;padding:0 4px;font-size:11px;font-variant-numeric:tabular-nums}.status-doc-name{font-weight:500;color:var(--text-primary, #111827);opacity:.6;font-size:11px}.status-tool-name{font-weight:500;color:var(--text-primary, #111827)}.status-coords{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:10px;letter-spacing:-.3px}.status-bar .present-btn:hover:not(:disabled){background:var(--primary-color, #3b82f6);color:#fff}.status-attribution{font-size:10px;opacity:.7}.status-attribution a{color:var(--text-secondary, #6b7280);text-decoration:none;font-weight:500}.status-attribution a:hover{color:var(--primary-color, #3b82f6);text-decoration:underline}.status-heart{color:#e25555;font-size:12px}.status-hints{gap:8px;font-size:10px;opacity:.8;border-right:none!important}.status-hint{display:inline-flex;align-items:center;gap:3px}.status-hint kbd{display:inline-block;padding:0 4px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:9px;line-height:16px;color:var(--text-primary, #111827);background:var(--btn-hover, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:3px}@media(max-width:768px){.status-bar{height:36px;padding:0 2px;gap:0;justify-content:space-between}.status-section{padding:0 4px;border-right:none}.status-doc-name,.status-coords,.status-hints,.status-attribution{display:none}.status-bar .status-btn{width:32px;height:32px;touch-action:manipulation}.status-bar .status-btn.text-btn{font-size:12px}}
