@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css";:root{--color-bg: #FAFBFC;--color-surface: #FFFFFF;--color-surface-muted: #F4F6F8;--color-surface-subtle: #F8FAFC;--color-surface-hover: #EFF1F4;--color-border: #EEF0F3;--color-border-strong: #DDE1E6;--color-text: #0F1419;--color-text-secondary: #4B5563;--color-text-tertiary: #9AA0A6;--color-text-on-accent: #FFFFFF;--color-primary: #3182F6;--color-primary-hover: #1B64DA;--color-primary-pressed: #1257C2;--color-primary-soft: #E8F2FE;--color-primary-softer: #F1F7FF;--gradient-premium: linear-gradient(135deg, #7C5CFF 0%, #5A6BFF 55%, #3182F6 100%);--gradient-premium-hover: linear-gradient(135deg, #8B6EFF 0%, #6979FF 55%, #4090FA 100%);--gradient-surface: linear-gradient(180deg, #FFFFFF 0%, #FAFBFC 100%);--color-success: #16A34A;--color-success-soft: #E7F8EE;--color-warn: #F59E0B;--color-warn-soft: #FFF7E1;--color-danger: #DC2626;--color-danger-soft: #FEECEC;--color-focus-ring: rgba(49, 130, 246, .35);--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "D2Coding", Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-4xl: 40px;--text-display: 56px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tighter: -.03em;--tracking-tight: -.018em;--tracking-normal: 0;--tracking-wide: .04em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 4px rgba(15, 23, 42, .04);--shadow-md: 0 2px 4px rgba(15, 23, 42, .04), 0 6px 14px rgba(15, 23, 42, .06);--shadow-lg: 0 4px 8px rgba(15, 23, 42, .04), 0 14px 28px rgba(15, 23, 42, .08);--shadow-xl: 0 8px 16px rgba(15, 23, 42, .06), 0 28px 56px rgba(15, 23, 42, .12);--shadow-focus: 0 0 0 3px var(--color-focus-ring);--shadow-glow-primary: 0 6px 20px rgba(49, 130, 246, .28);--shadow-glow-premium: 0 8px 28px rgba(124, 92, 255, .3);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--z-dropdown: 50;--z-modal: 100;--z-toast: 200;--bg: var(--color-bg);--panel: var(--color-surface);--border: var(--color-border);--text: var(--color-text);--muted: var(--color-text-secondary);--accent: var(--color-primary);--accent-soft: var(--color-primary-soft)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:var(--font-sans);font-size:var(--text-base);font-feature-settings:"ss01","ss02","cv01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color:var(--color-text);background:var(--color-bg)}::selection{background:var(--color-primary-soft);color:var(--color-primary-pressed)}.tt-bubble{position:fixed;z-index:9999;pointer-events:none;background:#14181f;color:#f5f7fa;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);padding:6px 10px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);white-space:nowrap;max-width:280px;text-overflow:ellipsis;overflow:hidden;animation:tt-in .12s var(--ease-out)}.tt-bubble.tt-bottom{transform:translate(-50%)}.tt-bubble.tt-top{transform:translate(-50%,-100%)}@keyframes tt-in{0%{opacity:0;transform:translate(-50%,-2px)}to{opacity:1}}.tt-bubble.tt-top{animation-name:tt-in-up}@keyframes tt-in-up{0%{opacity:0;transform:translate(-50%,calc(-100% + 2px))}to{opacity:1;transform:translate(-50%,-100%)}}:focus-visible{outline:0;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}button{font:inherit}.app{display:flex;flex-direction:column;height:100%}.toolbar{height:48px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:stretch;padding:0 var(--space-3);gap:var(--space-2)}.menubar{display:flex;align-items:stretch}.menu{position:relative;display:flex}.menu-trigger{background:transparent;border:0;padding:0 var(--space-3);cursor:pointer;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);margin:6px 2px;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.menu-trigger:hover,.menu-trigger.open{background:var(--color-surface-muted);color:var(--color-text)}.menu-dropdown{position:absolute;top:100%;left:0;min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:var(--z-dropdown);animation:menu-in var(--duration-fast) var(--ease-out)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{width:100%;display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:var(--space-2);padding:8px 12px;background:transparent;border:0;border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.menu-item:hover:not(:disabled){background:var(--color-primary);color:var(--color-text-on-accent)}.menu-item:hover:not(:disabled) .menu-item-shortcut{color:#ffffffd9}.menu-item:disabled{color:var(--color-text-tertiary);cursor:default}.menu-item-check{color:var(--color-primary);font-size:var(--text-sm)}.menu-item:hover:not(:disabled) .menu-item-check{color:#fff}.menu-item-shortcut{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.menu-sep{height:1px;background:var(--color-border);margin:var(--space-1) 0}.menu-item-wrap{position:relative}.menu-item.has-submenu{grid-template-columns:18px 1fr auto auto}.menu-item-arrow{font-size:10px;color:var(--muted);margin-left:4px}.menu-item:hover:not(:disabled) .menu-item-arrow{color:#ffffffd9}.menu-dropdown-sub{top:-4px;left:100%;margin-left:2px}.png-export-modal{width:360px;max-width:90vw}.png-export-options{display:flex;flex-direction:column;gap:8px;margin:16px 0}.png-export-option{display:flex;align-items:center;gap:16px;padding:14px 16px;background:#fff;border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left;font:inherit}.png-export-option:hover{border-color:var(--accent);background:var(--accent-soft)}.png-export-option.is-locked{opacity:.7}.png-export-option.is-locked:hover{border-color:var(--accent);background:#fff7ed}.png-export-scale{font-size:18px;font-weight:700;color:var(--accent);min-width:56px}.png-export-desc{flex:1;font-size:12px;color:var(--muted);line-height:1.4}.modal-subtitle{font-size:12px;color:var(--muted);margin:4px 0 0}.toolbar-status{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.toolbar-action{display:inline-flex;align-items:center;gap:var(--space-2);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 12px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.toolbar-action:hover{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.toolbar-action.is-locked{color:var(--color-text-tertiary);opacity:.85}.toolbar-action.is-locked:hover{background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text);opacity:1}.toolbar-action-lock{font-size:10px;margin-left:2px}.toolbar-action-primary{background:var(--color-primary);color:var(--color-text-on-accent);border-color:var(--color-primary);font-weight:var(--weight-semibold)}.toolbar-action-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-on-accent);box-shadow:var(--shadow-glow-primary)}.toolbar-action-primary.is-locked{background:transparent;color:var(--accent);border-color:var(--accent);opacity:.85}.toolbar-action-primary.is-locked:hover{background:var(--accent-soft)}.toolbar-action.toolbar-action-on{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:var(--weight-semibold)}.toolbar-action-group{display:inline-flex;align-items:stretch}.toolbar-action-group .toolbar-action{border-radius:0;border-right-width:0}.toolbar-action-group .toolbar-action:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.toolbar-action-group .toolbar-action:last-child{border-right-width:1px;border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.toolbar-action-group .toolbar-action-on,.toolbar-action-group .toolbar-action-primary{border-right-width:1px}.toolbar-action-group .toolbar-action-on+.toolbar-action,.toolbar-action-group .toolbar-action-primary+.toolbar-action{border-left-width:0}.comment-pin{position:absolute;width:28px;height:28px;background:#f59e0b;color:#fff;border-radius:50% 50% 50% 0;rotate:-45deg;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 2px 6px #00000040;z-index:6}.comment-pin:hover{background:#d97706}.comment-pin.is-resolved{background:#6b7280;opacity:.65}.comment-pin.is-open{box-shadow:0 4px 14px #f59e0b73}.comment-pin.is-draggable{cursor:grab}.comment-pin.is-dragging{cursor:grabbing;box-shadow:0 6px 18px #f59e0b8c;z-index:8}.comment-pin-num{rotate:45deg}.comment-thread{position:absolute;bottom:calc(100% + 8px);left:50%;rotate:45deg;transform:translate(-50%);width:280px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #0000002e;padding:10px 12px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--text);text-align:left;z-index:7;cursor:default}.comment-thread-head{display:flex;align-items:center;justify-content:space-between}.comment-thread-author{font-weight:600;font-size:12px;color:var(--muted)}.comment-thread-close{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:16px;line-height:1}.comment-thread-close:hover{color:var(--text)}.comment-thread-body{font-size:13px;white-space:pre-wrap;color:var(--muted);font-style:italic}.comment-thread-body:empty:before{content:"(빈 댓글)";color:#d1d5db}.comment-reply{border-top:1px solid var(--border);padding-top:8px}.comment-reply-author{font-size:11px;color:var(--muted);font-weight:600}.comment-reply-body{font-size:13px;white-space:pre-wrap}.comment-reply-input{width:100%;border:1px solid var(--border);border-radius:4px;padding:6px 8px;font:inherit;font-size:12px;resize:vertical;background:#fff;outline:none}.comment-reply-input:focus{border-color:var(--accent)}.comment-thread-actions{display:flex;gap:6px;justify-content:flex-end}.comment-thread-actions .btn{padding:4px 8px;font-size:12px}.remote-cursor{position:absolute;pointer-events:none;display:flex;align-items:flex-start;gap:0;z-index:8}.remote-cursor svg{flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.remote-cursor-label{margin-left:14px;margin-top:16px;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;box-shadow:0 1px 2px #0000002e}.comments-mode-hint{display:none}.comments-panel-hint{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--color-warn-soft);border:1px solid #FCD34D;color:#6b4f00;font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-pill);align-self:flex-start}.comments-panel-hint-dot{width:8px;height:8px;border-radius:50%;background:var(--color-warn);box-shadow:0 0 0 4px #f59e0b2e;animation:comments-hint-pulse 1.4s ease-in-out infinite}@keyframes comments-hint-pulse{0%,to{box-shadow:0 0 0 4px #f59e0b2e}50%{box-shadow:0 0 0 8px #f59e0b0d}}.share-modal{min-width:420px;max-width:520px;gap:14px}.share-subtitle{margin:0;font-size:12px;color:var(--muted);line-height:1.5}.share-status,.share-error{font-size:12px;color:var(--muted);background:#f4f5f8;padding:8px 10px;border-radius:6px}.share-error{color:#b91c1c;background:#fef2f2}.share-row{display:flex;gap:8px;align-items:center}.share-row .share-url-input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:#f9fafb}.share-meta{font-size:11px;color:var(--muted)}.share-divider{height:1px;background:var(--border);margin:4px -22px}.share-collab-title{font-size:14px}.share-collab-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.share-collab-row{display:flex;align-items:center;gap:8px;background:#f9fafb;border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px}.share-collab-uid{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-collab-row .btn{padding:2px 8px;font-size:11px}.dashboard-uid{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);border-left:1px solid var(--border);padding-left:12px}.dashboard-uid-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f4f5f8;padding:2px 6px;border-radius:3px;cursor:pointer;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-uid-value:hover{background:var(--accent-soft);color:var(--accent)}.share-view{display:flex;flex-direction:column;min-height:100%;background:var(--color-bg)}.share-view-empty{align-items:center;justify-content:center;flex:1;text-align:center;color:var(--color-text-secondary);gap:var(--space-2)}.share-view-title{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);color:var(--color-text)}.share-view-header{height:56px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-6);gap:var(--space-4)}.share-view-brand{font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--color-text);text-decoration:none;letter-spacing:var(--tracking-tight);transition:color var(--duration-fast) var(--ease-out)}.share-view-brand:hover{color:var(--color-primary)}.share-view-name{font-size:var(--text-base);color:var(--color-text-secondary)}.share-view-canvas{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-10);overflow:auto}.share-view-canvas svg{max-width:100%;height:auto}.prop-input{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.prop-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.prop-input:disabled{background:var(--color-surface-muted);color:var(--color-text-tertiary);cursor:not-allowed}.preview-controls{background:transparent;padding:0 0 var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0;border-bottom:1px solid var(--color-border)}.preview-controls-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary);font-weight:var(--weight-semibold)}.preview-controls-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.preview-controls-size{align-items:center}.preview-controls-size .prop-input{flex:1 1 0;min-width:0;text-align:right;font-variant-numeric:tabular-nums}.preview-controls-x{color:var(--color-text-tertiary);font-size:var(--text-sm);flex-shrink:0}.preview-controls-btn{width:100%;padding:10px;font-size:var(--text-sm);font-weight:var(--weight-semibold)}.preview-view{display:flex;flex-direction:column;height:100%;background:#0b0e14}.preview-view-empty{align-items:center;justify-content:center;flex:1;text-align:center;color:#94a3b8;gap:var(--space-2)}.preview-view-title{color:#fff}.preview-view-header{height:52px;background:#14181f;color:#f5f7fa;display:flex;align-items:center;padding:0 var(--space-5);gap:var(--space-4);border-bottom:1px solid #1F242C}.preview-view-back{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#f5f7fa;border:1px solid #2A2F38;border-radius:var(--radius-md);cursor:pointer;font-size:16px;line-height:1;transition:background var(--duration-fast) var(--ease-out)}.preview-view-back:hover{background:#1f242c}.preview-view-name{font-weight:var(--weight-semibold);font-size:var(--text-base);letter-spacing:var(--tracking-tight)}.preview-view-meta{margin-left:auto;font-size:var(--text-xs);color:#8a92a0;font-variant-numeric:tabular-nums}.preview-view-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-10);overflow:auto}.preview-view-frame{background:#fff;border-radius:var(--radius-xl);box-shadow:0 24px 80px #00000080;overflow:hidden;flex-shrink:0}.preview-view-frame svg{width:100%;height:100%;display:block}.props-panel{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-5);flex:1;min-height:0}.props-section--empty-hint{margin-top:auto;border-top:1px solid var(--color-border);border-bottom:0!important;padding:var(--space-4) 0 0!important}.props-panel.empty{padding:var(--space-8);color:var(--color-text-tertiary);text-align:center;font-size:var(--text-sm)}.props-multi-banner{background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:8px 12px;border-radius:var(--radius-md)}.props-empty-hint{margin:0;color:var(--color-text-tertiary);font-size:var(--text-sm);text-align:center;line-height:var(--leading-relaxed)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a52;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:backdrop-in var(--duration-base) var(--ease-out)}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);min-width:320px;max-width:480px;box-shadow:var(--shadow-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);animation:modal-in var(--duration-slow) var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title{font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--color-text);margin:0}.modal-body{display:flex;flex-direction:column;gap:var(--space-3)}.modal-row{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:var(--space-2);font-size:var(--text-base)}.modal-row input,.modal-row select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;outline:none;background:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.modal-row input:focus,.modal-row select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.btn-primary{background:var(--color-primary);color:var(--color-text-on-accent);border-color:var(--color-primary);font-weight:var(--weight-semibold)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-glow-primary)}.btn-primary:active{background:var(--color-primary-pressed)}.upgrade-backdrop{background:#0f172a73}.upgrade-modal{min-width:420px;max-width:480px;gap:var(--space-4);padding:var(--space-8)}.upgrade-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;background:var(--gradient-premium);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.upgrade-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter)}.upgrade-desc{margin:0;font-size:var(--text-md);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.upgrade-reason{font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-surface-muted);padding:var(--space-3);border-radius:var(--radius-md)}.upgrade-pricing{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);background:var(--color-surface-subtle)}.upgrade-price-tier{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.upgrade-price-monthly{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:var(--tracking-tighter)}.upgrade-price-annual{font-size:var(--text-sm);color:var(--color-text-secondary)}.upgrade-price-note{font-size:var(--text-xs);color:var(--color-text-tertiary);font-style:italic}.upgrade-current{font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:right}.locked-feature{position:relative;display:inline-flex;cursor:pointer;opacity:.55;filter:grayscale(.4)}.locked-feature:hover{opacity:.8}.locked-feature>*{pointer-events:none}.locked-feature-badge{position:absolute;top:-4px;right:-6px;font-size:11px;background:var(--text);color:#fff;border-radius:999px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 1px 2px #0003}.toolbar-hint.status-saving{color:#b45309}.toolbar-hint.status-saved{color:#15803d}.toolbar-hint.status-dirty{color:var(--muted)}.layer-name-edit{flex:1;border:1px solid var(--color-primary);border-radius:var(--radius-xs);padding:2px 6px;font:inherit;font-size:var(--text-sm);outline:none;background:var(--color-surface);color:var(--color-text);min-width:0;box-shadow:var(--shadow-focus)}.props-panel.empty .dim{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.props-section{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.props-section:last-child{border-bottom:0;padding-bottom:0}.props-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary);font-weight:var(--weight-semibold);margin-top:var(--space-1)}.props-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.props-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-text-tertiary);border-radius:var(--radius-xs)}.props-row:hover .props-icon{color:var(--color-text)}.props-zoombar{position:sticky;top:0;display:flex;align-items:center;gap:2px;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-2);z-index:5;margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-1)}.props-zoombar .zoom-btn{flex:0 0 auto;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--color-text-secondary);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:6px 10px;cursor:pointer;min-width:30px;text-align:center;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.props-zoombar .zoom-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.props-zoombar .zoom-readout{flex:1 1 auto;font-variant-numeric:tabular-nums;text-align:center;color:var(--color-text);font-weight:var(--weight-medium)}.props-zoombar .zoom-fit{font-size:var(--text-xs)}.props-row>input[type=text],.props-row>input[type=number],.props-row>select{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);min-width:0;width:100%;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.props-row>input:focus,.props-row>select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.props-row .row-inline{display:flex;align-items:center;gap:var(--space-2);min-width:0}.props-row .row-inline input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;flex-shrink:0}.props-row .row-inline input[type=text]{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);min-width:0;outline:none}.props-row .row-inline input[type=range]{flex:1;min-width:0}.props-row .row-inline input[type=number]{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);background:var(--color-surface)}.props-row-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.props-row-pair .props-row{grid-template-columns:24px 1fr}.props-delete{width:100%;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-danger);padding:10px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.props-delete:hover{background:var(--color-danger-soft);border-color:#fca5a5}.props-link-row{display:flex;align-items:center;gap:var(--space-2);background:var(--color-primary-soft);color:var(--color-primary);padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium)}.props-link-target{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.props-link-clear{background:transparent;border:0;color:inherit;cursor:pointer;font-size:var(--text-base);line-height:1;padding:2px 6px;border-radius:var(--radius-xs);transition:background var(--duration-fast) var(--ease-out)}.props-link-clear:hover{background:#3182f62e}.toolbar-back{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:8px var(--space-1) 8px 0;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.toolbar-back:hover{background:var(--color-surface-muted);color:var(--color-text)}.brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--color-text)}.brand.brand-link{background:transparent;border:0;cursor:pointer;color:inherit;padding:0 var(--space-1);font-size:inherit;transition:color var(--duration-fast) var(--ease-out)}.brand.brand-link:hover{color:var(--color-primary)}.dashboard{display:flex;flex-direction:column;height:100%;background:var(--color-bg)}.dashboard-header{height:64px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-8);gap:var(--space-3)}.dashboard-actions{margin-left:auto;display:flex;gap:var(--space-2);align-items:center}.dashboard-account{display:flex;align-items:center;gap:var(--space-2);padding-left:var(--space-3);border-left:1px solid var(--color-border);margin-left:var(--space-1)}.dashboard-account-email{font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.share-collab-sub{color:var(--muted);font-size:11px;margin-left:6px}.dashboard-account-name{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--weight-medium);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu{position:relative}.profile-avatar{width:36px;height:36px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);cursor:pointer;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.profile-avatar:hover{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-initial{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text-on-accent);background:var(--gradient-premium);width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center}.profile-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.profile-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:50;min-width:260px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2);animation:menu-in var(--duration-fast) var(--ease-out)}.profile-menu-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3)}.profile-menu-photo{width:40px;height:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.profile-menu-photo-fallback{background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-md);font-weight:var(--weight-bold);display:inline-flex;align-items:center;justify-content:center}.profile-menu-id{flex:1;min-width:0}.profile-menu-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-email{font-size:var(--text-xs);color:var(--color-text-tertiary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.profile-menu-item{width:100%;display:flex;align-items:center;padding:10px var(--space-3);background:transparent;border:0;border-radius:var(--radius-sm);font:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.profile-menu-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.profile-menu-item-danger{color:var(--color-danger)}.profile-menu-item-danger:hover{background:var(--color-danger-soft);color:var(--color-danger)}.delete-account-modal{min-width:460px;max-width:520px;gap:var(--space-4)}.delete-account-warn{background:var(--color-danger-soft);border:1px solid #FCA5A5;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:#7f1d1d;line-height:var(--leading-relaxed)}.delete-account-warn strong{display:block;margin-bottom:var(--space-2);font-weight:var(--weight-bold)}.delete-account-warn ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:var(--space-1)}.delete-account-prompt{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.delete-account-input{font:inherit;font-size:var(--text-base);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.delete-account-input:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #fecaca}.delete-account-error{padding:10px 14px;background:var(--color-danger-soft);border:1px solid #FCA5A5;color:#7f1d1d;border-radius:var(--radius-md);font-size:var(--text-sm)}.delete-account-confirm{background:var(--color-danger);color:var(--color-text-on-accent);border-color:var(--color-danger);font-weight:var(--weight-semibold)}.delete-account-confirm:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;color:var(--color-text-on-accent)}.delete-account-confirm:disabled{opacity:.5}.dashboard-signin{align-items:center;justify-content:center;text-align:center;gap:var(--space-4);display:flex;flex-direction:column;padding:var(--space-20) var(--space-6) var(--space-16);background:radial-gradient(ellipse 800px 400px at 50% 0%,rgba(124,92,255,.06),transparent 70%),radial-gradient(ellipse 600px 300px at 50% 80%,rgba(49,130,246,.05),transparent 70%)}.dashboard-signin .dashboard-title{font-size:var(--text-4xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);margin:0;color:var(--color-text)}.dashboard-signin-subtitle{color:var(--color-text-secondary);font-size:var(--text-md);max-width:440px;margin:0;line-height:var(--leading-relaxed)}.dashboard-signin-cta{margin-top:var(--space-4);padding:14px 28px;font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);box-shadow:var(--shadow-glow-primary)}.dashboard-signin-cta:hover{transform:translateY(-1px)}.dashboard-signin-scratch{font-size:var(--text-sm);color:var(--color-text-secondary);background:transparent;border-color:transparent;padding:8px 14px}.dashboard-signin-scratch:hover{background:var(--color-surface-muted);border-color:transparent}.dashboard-shell{flex:1;display:flex;min-height:0}.dashboard-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-surface-subtle);padding:var(--space-6) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:10px 14px;background:transparent;border:0;border-radius:var(--radius-md);color:var(--color-text-secondary);font:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;text-align:left;width:100%;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.sidebar-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.sidebar-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--weight-semibold)}.sidebar-item-icon{font-size:var(--text-base);line-height:1}.sidebar-item-label{flex:1}.sidebar-item-count{font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:2px 10px;font-variant-numeric:tabular-nums;font-weight:var(--weight-medium)}.sidebar-item.active .sidebar-item-count{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary)}.dashboard-sidebar-hint{margin:var(--space-4) var(--space-2) 0;font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}.dashboard-body{flex:1;overflow:auto;padding:var(--space-10) var(--space-10);max-width:1400px;width:100%;margin:0 auto}.project-card.project-card-shared .project-card-thumb{background:linear-gradient(135deg,#fef3c7,#fde68a)}.dashboard-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);margin:0;color:var(--color-text);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight)}.dashboard-empty{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-12);color:var(--color-text-secondary);text-align:center;font-size:var(--text-md)}.project-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-5)}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-2);transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);-webkit-user-select:none;user-select:none}.project-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card-thumb{height:120px;background:linear-gradient(135deg,var(--color-primary-softer),var(--color-surface)),radial-gradient(circle at 30% 20%,rgba(124,92,255,.08),transparent 60%);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--color-text-tertiary);margin-bottom:var(--space-1)}.project-card-name{font-weight:var(--weight-semibold);font-size:var(--text-md);color:var(--color-text);letter-spacing:var(--tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-meta{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.project-card-id{font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono);opacity:.7}.project-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.project-card-actions .btn{flex:1;padding:6px 10px;font-size:var(--text-sm)}.dashboard-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-6) 0}.dashboard-view-toggle{display:inline-flex;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:3px;gap:2px}.view-toggle-btn{display:inline-flex;align-items:center;gap:var(--space-2);background:transparent;border:0;padding:6px 14px;font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-pill);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.view-toggle-btn:hover{color:var(--color-text)}.view-toggle-btn.active{background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-xs)}.view-toggle-btn.active:hover{background:var(--color-surface)}.project-card.project-card-new{padding:0;background:transparent;border:1.5px dashed var(--color-border-strong);box-shadow:none}.project-card.project-card-new:hover{border-color:var(--color-primary);background:var(--color-primary-softer);transform:translateY(-2px)}.project-card-new-btn{width:100%;height:100%;min-height:200px;background:transparent;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;color:var(--color-text-tertiary);font:inherit;font-size:var(--text-md);border-radius:inherit;transition:color var(--duration-fast) var(--ease-out)}.project-card-new-btn:disabled{cursor:default;opacity:.6}.project-card-new-btn:hover{color:var(--color-primary)}.project-card-new-plus{font-size:40px;line-height:1;font-weight:300}.project-card-new-label{font-weight:var(--weight-medium)}.project-list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden;font-size:13px}.project-list thead{background:#f8fafc;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.project-list th,.project-list td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.project-list tbody tr:last-child td{border-bottom:0}.project-list-row{cursor:pointer}.project-list-row:hover{background:#f8fafc}.project-list-row-new{cursor:default}.project-list-row-new:hover{background:transparent}.project-list-row-new td{padding:0}.project-list-name{font-weight:500;color:var(--text)}.project-list-thumb{display:inline-block;margin-right:8px;font-size:14px}.project-list-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted)}.project-list-updated{color:var(--muted);white-space:nowrap}.project-list-actions{display:flex;gap:6px;justify-content:flex-end}.project-list-actions .btn{padding:4px 10px;font-size:12px}.project-list-new-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:transparent;border:1.5px dashed #cbd5e1;border-radius:0;font:inherit;font-size:13px;color:var(--muted);cursor:pointer}.project-list-new-btn:hover{background:#f0f6ff;color:var(--accent);border-color:var(--accent)}.project-list-new-btn:disabled{cursor:default;opacity:.6}.project-list-new-plus{font-size:18px;line-height:1;font-weight:300}.toolbar-actions{display:flex;gap:8px;margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 14px;font:inherit;font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--color-text);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.btn-toggle-on{background:var(--color-primary);color:var(--color-text-on-accent);border-color:var(--color-primary)}.btn.btn-toggle-on:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.toolbar-sep{width:1px;height:24px;background:var(--border);margin:0 4px}.icon-btn{width:32px;padding:4px 0;font-size:16px;line-height:1}.toolbar-hint{font-size:12px;color:var(--muted);padding:4px 8px;border:1px dashed var(--border);border-radius:6px}select.btn{max-width:160px}.app-body{flex:1;display:grid;grid-template-columns:320px 6px 1fr 6px 320px;min-height:0}.left-pane,.right-pane{background:var(--panel);overflow:hidden;display:flex;flex-direction:column}.pane-resizer{cursor:col-resize;background:var(--border);transition:background .12s;-webkit-user-select:none;user-select:none}.pane-resizer:hover,.pane-resizer:active{background:var(--accent)}.pane-resizer.pane-resizer-h{cursor:row-resize}.pane-hide-btn{position:absolute;z-index:6;width:18px;height:18px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.pane-hide-btn:hover{color:var(--accent);border-color:var(--accent)}.pane-hide-btn-right{top:8px;right:6px}.pane-hide-btn-left{top:8px;left:6px}.pane-hide-btn-bottom{top:6px;right:8px}.left-pane,.right-pane,.ia-dock{position:relative}.pane-show-pill{position:absolute;z-index:6;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:14px;line-height:1;box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.pane-show-pill:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.pane-show-pill-left{top:12px;left:12px}.pane-show-pill-right{top:12px;right:12px}.pane-show-pill-bottom{width:56px;height:18px;bottom:6px;left:50%;transform:translate(-50%)}.canvas-column{display:flex;flex-direction:column;min-width:0;min-height:0}.canvas-column.has-dock{display:grid}.canvas-column .canvas-pane{min-height:0;flex:1}.ia-dock{background:var(--panel);border-top:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;min-height:0}.right-panel{display:flex;flex-direction:column;height:100%;background:var(--color-surface)}.tabs{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);padding:0 var(--space-2)}.tab{flex:1;background:transparent;border:0;padding:12px var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-tertiary);cursor:pointer;border-bottom:2px solid transparent;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.tab:hover{color:var(--color-text-secondary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--color-surface)}.tab-content{flex:1;overflow:auto}.comments-panel{flex:1;min-height:0;display:flex;flex-direction:column}.comments-panel-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.comments-panel-header-hint{flex:1;min-width:0}.comments-panel-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-4)}.comments-panel-tabs{flex-shrink:0;display:flex;gap:2px;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.comments-panel-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:var(--color-surface-muted);border:1px solid transparent;border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.comments-panel-tab:hover{color:var(--color-text)}.comments-panel-tab.is-active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.comments-panel-tab .comments-panel-count{background:var(--color-surface)}.comments-panel-tab.is-active .comments-panel-count{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary)}.comments-panel-close{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-tertiary);border:1px solid transparent;border-radius:var(--radius-md);font-size:18px;line-height:1;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.comments-panel-close:hover{background:var(--color-surface-muted);color:var(--color-text);border-color:var(--color-border-strong)}.comments-panel-empty{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-tertiary);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex:1;justify-content:center}.comments-panel-empty-icon{font-size:32px;margin-bottom:var(--space-2);opacity:.6}.comments-panel-empty p{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.comments-panel-empty-hint{font-size:var(--text-sm);line-height:var(--leading-relaxed);max-width:240px}.comments-panel-section{display:flex;flex-direction:column;gap:var(--space-2)}.comments-panel-section-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary);padding:0 var(--space-1)}.comments-panel-count{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-pill);font-variant-numeric:tabular-nums}.comments-panel-section-empty{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary);padding:var(--space-3);text-align:center}.comments-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.comments-panel-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.comments-panel-row:hover{border-color:var(--color-border-strong)}.comments-panel-row.is-open{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.comments-panel-row.is-resolved{opacity:.7}.comments-panel-row-head{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:10px 12px;background:transparent;border:0;font:inherit;text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.comments-panel-row-head:hover{background:var(--color-surface-muted)}.comments-panel-row.is-open .comments-panel-row-head{background:var(--color-primary-soft)}.comments-panel-row-num{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--color-warn);color:#fff;font-size:11px;font-weight:var(--weight-bold);display:inline-flex;align-items:center;justify-content:center}.comments-panel-row.is-resolved .comments-panel-row-num{background:var(--color-text-tertiary)}.comments-panel-row-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.comments-panel-row-author{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comments-panel-row-anchor{font-size:var(--text-xs);color:var(--color-text-tertiary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comments-panel-row-chev{font-size:10px;color:var(--color-text-tertiary);flex-shrink:0;width:12px;text-align:center}.comments-panel-row-preview{padding:0 12px 10px 44px;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.comments-panel-row.is-open .comments-panel-row-preview{-webkit-line-clamp:unset;display:block}.comments-panel-row-empty{color:var(--color-text-tertiary);font-style:italic}.comments-panel-row-body{padding:var(--space-3);border-top:1px solid var(--color-border);background:var(--color-surface-subtle);display:flex;flex-direction:column;gap:var(--space-3)}.comments-panel-row-bodytext{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word}.canvas-pane{position:relative;background-color:#e5e7eb;overflow:hidden}.canvas-wrap{width:100%;height:100%;position:relative;overflow:hidden;-webkit-user-select:none;user-select:none}.canvas-wrap.is-creating,.canvas-wrap.is-creating .wf-frame{cursor:crosshair}.tool-palette{position:absolute;bottom:var(--space-5);left:50%;transform:translate(-50%);display:flex;flex-direction:row;gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:6px;box-shadow:var(--shadow-md);z-index:5}.tool-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.tool-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.tool-btn.active{background:var(--color-primary);color:var(--color-text-on-accent);box-shadow:var(--shadow-glow-primary)}.tool-btn:active{transform:scale(.94)}.tool-btn:disabled{opacity:.4;cursor:default}.tool-btn:disabled:hover{background:transparent}.tool-btn.is-coming-soon{color:var(--color-text-tertiary);position:relative}.tool-btn.is-coming-soon:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--color-warn);border:1.5px solid var(--color-surface)}.tool-palette-divider{width:1px;align-self:stretch;margin:6px 8px;background:var(--color-border)}.props-bar{position:absolute;top:var(--space-3);left:var(--space-16);display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;box-shadow:var(--shadow-sm);z-index:5}.props-name{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);width:160px;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.props-name:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.props-sep{width:1px;height:20px;background:var(--color-border)}.props-field{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.props-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:5px 8px;font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);text-transform:none;letter-spacing:0;font-weight:var(--weight-regular)}.color-swatch{display:inline-flex;align-items:center;gap:var(--space-1)}.color-swatch input[type=color]{width:26px;height:26px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer}.color-clear{width:24px;height:24px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);color:var(--color-text-tertiary);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.color-clear.active{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.props-bar .props-delete{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-danger);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);width:auto;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.props-bar .props-delete:hover{background:var(--color-danger-soft);border-color:#fca5a5}.wf-shape-ellipse{border-radius:50%!important}.wf-shape-text{display:flex;align-items:center;justify-content:center}.wf-shape-text .wf-text{position:static;pointer-events:auto;font-size:14px;color:#1f2937;white-space:nowrap;text-align:center;cursor:text;min-width:1em;min-height:1em}.wf-shape-text .wf-text-editing{outline:1px solid var(--accent);outline-offset:2px;background:#ffffffb3;cursor:text}.wf-ghost{position:absolute;border:1.5px dashed var(--accent);background:#3b82f614;border-radius:6px;pointer-events:none}.wf-ghost.wf-shape-ellipse{border-radius:50%}.wf-marquee{position:absolute;border:1px solid var(--accent);background:#3b82f61f;pointer-events:none}.wf-guide{position:absolute;background:#ec4899;pointer-events:none;z-index:100}.wf-guide-v{width:1px}.wf-guide-h{height:1px}.wf-vector{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.wf-pen-preview{position:absolute;pointer-events:none;overflow:visible}.wf-selected-name{position:absolute;left:0;top:-2px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;line-height:1.2;padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 6px #00000026;max-width:320px;overflow:hidden;text-overflow:ellipsis;z-index:3}.canvas-wrap.is-panning,.canvas-wrap.is-panning .wf-frame{cursor:grab}.canvas-content{position:absolute;top:0;left:0;transform-origin:0 0}.wf-frame{position:absolute;border:1px solid #9aa6b9;border-radius:0;box-sizing:border-box;cursor:default}.wf-frame.is-root{cursor:default}.wf-frame:not(.is-root){cursor:move}.wf-frame.is-selected{border-color:#3b82f6;border-width:2px;z-index:1}.wf-frame.is-drop-target{border:2px dashed #1d4ed8}.wf-frame.is-artboard{cursor:default;box-shadow:0 4px 24px #0f172a14}.wf-frame.is-artboard:not(.is-active-artboard){border-style:dashed}.wf-frame.is-active-artboard{box-shadow:0 6px 30px #3b82f62e}.wf-artboard-label{position:absolute;top:-22px;left:0;font-size:12px;font-weight:600;color:var(--muted);pointer-events:auto;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.wf-frame.is-active-artboard .wf-artboard-label{color:var(--accent)}.wf-artboard-label:hover{color:var(--text)}.wf-label{position:absolute;top:6px;left:10px;font-size:13px;font-weight:700;color:#1f2937;pointer-events:none;white-space:nowrap}.wf-handle{position:absolute;width:14px;height:14px;margin:0;background:#fff;border:1.5px solid var(--accent);border-radius:3px;z-index:2;transform-origin:center;transform:translate(-50%,-50%) scale(var(--inv-zoom, 1));transition:background .12s ease-out,box-shadow .12s ease-out;pointer-events:auto}.wf-point-handle{position:absolute;width:12px;height:12px;background:#fff;border:2px solid var(--accent);border-radius:50%;cursor:grab;z-index:3;pointer-events:auto;transform-origin:center;transition:background .12s ease-out,box-shadow .12s ease-out}.wf-point-handle:hover{background:var(--accent);box-shadow:0 0 0 4px #3b82f62e}.wf-point-handle:active{cursor:grabbing}.wf-handle:hover{background:var(--accent);box-shadow:0 1px 4px #3b82f680;transform:translate(-50%,-50%) scale(calc(var(--inv-zoom, 1) * 1.4))}.wf-handle-nw{left:0;top:0;cursor:nwse-resize}.wf-handle-n{left:50%;top:0;cursor:ns-resize}.wf-handle-ne{left:100%;top:0;cursor:nesw-resize}.wf-handle-e{left:100%;top:50%;cursor:ew-resize}.wf-handle-se{left:100%;top:100%;cursor:nwse-resize}.wf-handle-s{left:50%;top:100%;cursor:ns-resize}.wf-handle-sw{left:0;top:100%;cursor:nesw-resize}.wf-handle-w{left:0;top:50%;cursor:ew-resize}.wf-radius-handle{position:absolute;width:12px;height:12px;background:#fff;border:3px solid var(--accent);border-radius:50%;z-index:3;cursor:pointer;transform:translate(-50%,-50%) scale(var(--inv-zoom, 1));box-shadow:0 1px 3px #0000002e;transition:background .12s ease-out,box-shadow .12s ease-out}.wf-radius-handle:hover{background:var(--accent);transform:translate(-50%,-50%) scale(calc(var(--inv-zoom, 1) * 1.25))}.canvas-hud{position:absolute;bottom:12px;left:12px;background:#1f2937e6;color:#fff;padding:6px 10px;border-radius:6px;display:flex;gap:12px;font-size:12px}.zoom-hud{position:absolute;bottom:12px;right:12px;display:flex;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 6px #0000000f;overflow:hidden}.zoom-btn{background:transparent;border:0;border-right:1px solid var(--border);color:var(--text);padding:6px 10px;cursor:pointer;font-size:13px;min-width:32px}.zoom-btn:last-child{border-right:0}.zoom-btn:hover{background:#f0f3f8}.zoom-readout{min-width:56px;font-variant-numeric:tabular-nums}.zoom-fit{font-size:12px}.ctx-menu{position:fixed;z-index:1000;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);-webkit-user-select:none;user-select:none;animation:menu-in var(--duration-fast) var(--ease-out)}.ctx-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);background:transparent;border:0;padding:8px 12px;border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.ctx-item:hover:not(:disabled){background:var(--color-primary);color:var(--color-text-on-accent)}.ctx-item:hover:not(:disabled) .ctx-shortcut{color:#ffffffd9}.ctx-item:disabled{color:var(--color-text-tertiary);cursor:default}.ctx-shortcut{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.ctx-sep{height:1px;background:var(--color-border);margin:var(--space-1) 0}.layer-panel{padding:var(--space-2) 0}.layer-header{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-3)}.layer-list,.layer-list ul{list-style:none;padding:0;margin:0}.layer-item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:6px 12px;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-base);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.layer-item:hover{background:var(--color-surface-muted)}.layer-item.selected{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--weight-medium)}.layer-item.drop-target{background:var(--color-primary-soft);outline:2px dashed var(--color-primary);outline-offset:-2px}.layer-item.drop-before{box-shadow:inset 0 2px 0 var(--color-primary)}.layer-item.drop-after{box-shadow:inset 0 -2px 0 var(--color-primary)}.layer-empty{padding:var(--space-3) var(--space-4);color:var(--color-text-tertiary);font-size:var(--text-sm)}.layer-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);padding:var(--space-3);border-top:1px solid var(--color-border);margin-top:8px;line-height:1.5}.layer-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted);flex-shrink:0}.layer-item.selected .layer-icon{color:var(--accent)}.layer-panel:focus{outline:none}.layer-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-count{font-size:11px;color:var(--muted);background:#eef1f6;padding:0 6px;border-radius:8px}.ia-grid{display:flex;flex-direction:column;height:100%}.ia-grid-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border)}.ia-grid-title{font-weight:600}.ia-grid-header-actions{display:flex;gap:6px;align-items:center}.ia-grid-table-wrap{flex:1;overflow:auto}.ia-grid-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.ia-grid-table th,.ia-grid-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:0;vertical-align:middle}.ia-grid-table th{background:#f7f8fb;font-weight:600;color:var(--muted);padding:6px 8px;top:0;z-index:1;white-space:nowrap;position:sticky}.col-resizer{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;background:transparent;z-index:5}.col-resizer:hover{background:var(--accent);opacity:.4}.ia-grid-table th{position:relative}.ia-grid-table td.num,.ia-grid-table th.num{text-align:center;color:var(--muted);background:#fafbfd;padding:0 4px}.num-cell{display:inline-flex;align-items:center;gap:6px;justify-content:center}.num-text{min-width:14px;text-align:right}.row-color-swatch{display:inline-flex;width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.18);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;box-shadow:inset 0 0 0 1px #fff6}.row-color-swatch:hover{outline:2px solid var(--accent);outline-offset:1px}.row-color-swatch input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;padding:0;cursor:pointer}.ia-grid-table td.actions,.ia-grid-table th.actions{width:112px;text-align:center;white-space:nowrap}.ia-grid-table td.actions button:disabled{color:#d1d5db;cursor:default}.ia-grid-table td.actions button:disabled:hover{color:#d1d5db}.ia-grid-table td.actions button{background:transparent;border:0;cursor:pointer;color:var(--muted);padding:2px 4px}.ia-grid-table td.actions button:hover{color:var(--accent)}.ia-grid-table td input{width:100%;border:0;outline:0;padding:6px 8px;font:inherit;background:transparent}.ia-cell-with-num{display:flex;align-items:center;min-width:0}.ia-row-num{flex:0 0 auto;padding:0 8px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;-webkit-user-select:none;user-select:none}.ia-grid-table th.screen-id,.ia-grid-table td.screen-id{text-align:left;padding:0 4px}.ia-screen-id-input{width:100%;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:4px 6px;border:1px solid transparent;background:transparent;border-radius:4px;outline:none;color:var(--text)}.ia-screen-id-input:hover,.ia-screen-id-input:focus{background:#fff;border-color:#cbd5e1}.ia-screen-id-input:focus{border-color:var(--accent)}.ia-screen-id-input::placeholder{color:var(--muted)}.ia-row-num-input{flex:0 0 auto;width:64px;margin:0 4px;padding:2px 6px;font:inherit;font-size:11px;font-variant-numeric:tabular-nums;border:1px solid var(--accent);border-radius:3px;outline:none;background:#fff;color:var(--text)}.ia-cell-with-num input{flex:1;min-width:0;padding-left:0}.ia-grid-table td.editable{background:#fff}.ia-grid-table td.ghost{background:#fafbfd;color:#c7ccd6;padding:6px 8px}.ia-grid-table tr td.editable{background:var(--row-tint, #fff)}.ia-grid-table tr.selected td{background:var(--accent-soft)!important}.ia-grid-table tr.selected td input{background:transparent}.ia-grid-table tr{cursor:grab}.ia-grid-table tr.drop-into td{background:#c5dbf7!important}.ia-grid-table tr.drop-before td{box-shadow:inset 0 2px 0 var(--accent)}.ia-grid-table tr.drop-after td{box-shadow:inset 0 -2px 0 var(--accent)}.ia-grid-table:focus{outline:none}.ia-grid-table td.empty{text-align:center;color:var(--muted);padding:24px}.ia-grid-table td.actions button.memo-toggle.active{color:var(--accent)}.ia-grid-table td.actions button.memo-toggle.has-memo{color:var(--accent);position:relative}.ia-grid-table td.actions button.memo-toggle.has-memo:after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;background:var(--accent);border-radius:50%}.ia-memo-edit{display:flex;gap:8px;align-items:stretch}.ia-memo-edit .ia-memo-input{flex:1}.ia-memo-delete{background:#fff;border:1px solid var(--border);color:#b91c1c;border-radius:4px;padding:0 10px;font-size:11px;cursor:pointer;white-space:nowrap}.ia-memo-delete:hover{background:#fef2f2;border-color:#fca5a5}.ia-grid-table tr.ia-memo-row td.ia-memo-cell{padding:6px 8px;background:#fafbfd}.ia-memo-input{width:100%;resize:vertical;border:1px solid var(--border);border-radius:4px;padding:6px 8px;font:inherit;background:#fff;color:var(--text);outline:none;min-height:32px}.ia-memo-input:focus{border-color:var(--accent)}.ia-sheet-tabs{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:#fafbfd;overflow-x:auto;flex-wrap:nowrap}.ia-sheet-tab{display:flex;align-items:center;gap:6px;padding:6px 10px 6px 12px;font-size:12px;color:var(--muted);background:transparent;border:0;border-right:1px solid var(--border);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.ia-sheet-tab:hover{color:var(--text);background:#f0f3f8}.ia-sheet-tab.active{color:var(--accent);background:#fff;border-bottom-color:var(--accent)}.ia-sheet-tab-close{border:0;background:transparent;color:var(--muted);cursor:pointer;width:16px;height:16px;border-radius:3px;font-size:13px;line-height:1;padding:0}.ia-sheet-tab-close:hover{background:#fee2e2;color:#b91c1c}.ia-sheet-tab-add{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px 12px;font-size:14px;line-height:1}.ia-sheet-tab-add:hover{color:var(--accent);background:#f0f3f8}.ia-sheet-tab-edit{border:1px solid var(--accent);border-radius:3px;padding:1px 4px;font:inherit;font-size:12px;outline:none;background:#fff;color:var(--text);min-width:80px}.spec-doc{min-height:100vh;background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column}.spec-doc-shell{flex:1;display:grid;grid-template-columns:1fr 340px;min-height:0}.spec-doc-shell.no-edit-panel,.spec-doc-shell.no-memo .spec-card-row{grid-template-columns:1fr}.spec-side{background:var(--color-surface);border:0 solid var(--color-border);overflow-y:auto;padding:var(--space-5) var(--space-4)}.spec-side-right{border-left-width:1px}.spec-card-row{display:grid;grid-template-columns:1fr 300px;gap:var(--space-5);align-items:start}.spec-card-memo-side{background:var(--color-warn-soft);border:1px solid #FCD34D;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:var(--space-4);align-self:start}.spec-card-memo-head{display:flex;align-items:center;gap:var(--space-2)}.spec-card-memo-icon{font-size:var(--text-base)}.spec-card-memo-label{flex:1;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#8c6a00}.spec-card-memo-screen{font-size:var(--text-xs);color:#a07700;font-family:var(--font-mono)}.spec-card-memo-input{flex:1;min-height:160px;resize:vertical;font-size:var(--text-sm);border:1px solid #FCD34D;background:#fffef5;border-radius:var(--radius-md);padding:10px 12px;outline:none;font-family:inherit;line-height:var(--leading-relaxed);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.spec-card-memo-input:focus{border-color:#ca8a04;background:#fff}.spec-side-panel{display:flex;flex-direction:column;gap:var(--space-3)}.spec-side-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.spec-side-title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-primary)}.spec-side-close{background:transparent;border:0;color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-base);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out)}.spec-side-close:hover{color:var(--color-text);background:var(--color-surface-muted)}.spec-side-empty{padding:var(--space-8) var(--space-2);text-align:center;color:var(--color-text-tertiary);display:flex;flex-direction:column;gap:var(--space-2)}.spec-side-empty-title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.spec-side-empty-body{font-size:var(--text-sm);margin:0;line-height:var(--leading-relaxed)}.spec-memo-panel{height:100%}.spec-memo-panel .spec-card-memo-input{flex:1;min-height:240px;height:100%}.spec-memo-screen{font-size:var(--text-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.spec-doc-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;box-shadow:var(--shadow-xs)}.spec-doc-header>.btn{display:inline-flex;align-items:center;justify-content:center;line-height:1}.spec-doc-back{width:36px;height:36px;padding:0;flex-shrink:0;border-radius:var(--radius-md);color:var(--color-text-secondary)}.spec-doc-back:hover{background:var(--color-surface-muted);color:var(--color-text);border-color:var(--color-border-strong)}.spec-doc-title{flex:1;display:flex;align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-lg);margin:0;font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.spec-doc-title-prefix{color:var(--color-text-tertiary);font-weight:var(--weight-medium)}.spec-doc-title-sep{color:var(--color-text-tertiary)}.spec-doc-title-input{flex:1;min-width:0;font:inherit;font-weight:var(--weight-bold);color:var(--color-text);background:transparent;border:1px solid transparent;padding:6px 10px;border-radius:var(--radius-sm);outline:none;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-doc-title-input:hover{border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.spec-doc-title-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:var(--shadow-focus)}.spec-card-duplicate{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:30px;height:30px;cursor:pointer;font-size:var(--text-base);color:var(--color-text-secondary);flex-shrink:0;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-card-duplicate:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.spec-annotation-input{field-sizing:content;min-height:32px;max-height:240px;resize:vertical;line-height:1.4;font-family:inherit}.import-modal{width:480px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column}.import-modal-search{margin:12px 0 8px}.import-modal-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:6px;min-height:200px;max-height:50vh}.import-modal-row{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;background:transparent;border:0;border-bottom:1px solid var(--border);font:inherit;font-size:13px;text-align:left;cursor:pointer;color:var(--text)}.import-modal-row:last-child{border-bottom:0}.import-modal-row:hover{background:var(--accent-soft);color:var(--accent)}.import-modal-shape{font-size:14px;color:var(--muted);width:18px;text-align:center;flex-shrink:0}.import-modal-path{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-modal-empty{padding:32px;text-align:center;color:var(--muted);font-size:13px}.spec-doc-actions{display:flex;gap:var(--space-2);align-items:center}.spec-paper-select{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary);margin-right:var(--space-1)}.spec-paper-select select{font:inherit;font-size:var(--text-sm);padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);outline:none;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.spec-paper-select select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.spec-paper-label{font-weight:var(--weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--text-xs)}.spec-doc-body{display:flex;flex-direction:column;gap:var(--space-8);padding:var(--space-10) var(--space-8);max-width:1040px;margin:0 auto}.spec-doc-empty,.spec-page-empty{text-align:center;padding:var(--space-20) var(--space-6);color:var(--color-text-tertiary)}.spec-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);page-break-inside:avoid;break-inside:avoid;aspect-ratio:var(--spec-card-aspect, 595 / 842);display:flex;flex-direction:column;transition:border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.spec-card:hover{box-shadow:var(--shadow-md)}.spec-card-body{flex:1;min-height:0}.spec-card[data-status=review]{border-color:#fcd34d}.spec-card[data-status=done]{border-color:#86efac}.spec-card-head{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle)}.spec-card-name{flex:1;min-width:0;font:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-text);border:1px solid transparent;background:transparent;padding:6px 10px;border-radius:var(--radius-sm);outline:none;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-card-name:hover,.spec-card-name:focus{background:var(--color-surface);border-color:var(--color-border-strong)}.spec-card-name:focus{box-shadow:var(--shadow-focus);border-color:var(--color-primary)}.spec-card-status{flex-shrink:0;font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;outline:none;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-card[data-status=review] .spec-card-status{background:var(--color-warn-soft);color:#8c6a00;border-color:#fcd34d}.spec-card[data-status=done] .spec-card-status{background:var(--color-success-soft);color:#166534;border-color:#86efac}.spec-card-body{display:grid;grid-template-columns:1fr 6px var(--spec-fields-w, 360px);gap:0}.spec-card-snapshot-wrap{position:relative;display:flex;min-height:0}.spec-card-snapshot-wrap .spec-card-snapshot{flex:1;border-right:0}.spec-card-import-overlay{position:absolute;top:var(--space-3);right:var(--space-3);z-index:2;padding:6px 12px;font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.spec-card-import-overlay:hover{background:var(--color-primary);color:var(--color-text-on-accent);border-color:var(--color-primary);box-shadow:var(--shadow-glow-primary)}.spec-card-pin-overlay{position:absolute;top:56px;right:var(--space-3);z-index:2;padding:6px 12px;font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-md);cursor:pointer;color:#fff;box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out)}.spec-card-pin-overlay:hover{background:#b91c1c;border-color:#b91c1c}.spec-card-delete-overlay{position:absolute;top:96px;right:var(--space-3);z-index:2;padding:6px 12px;font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-surface);border:1px solid #FECACA;border-radius:var(--radius-md);cursor:pointer;color:var(--color-danger);box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-card-delete-overlay:hover{background:var(--color-danger-soft);border-color:#f87171}.spec-card-num{flex-shrink:0;font:inherit;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-primary);padding:4px 10px;background:var(--color-primary-soft);border:1px solid transparent;border-radius:var(--radius-sm);outline:none;width:auto;min-width:64px;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-card-num::placeholder{color:var(--color-primary);opacity:.6}.spec-card-num:hover,.spec-card-num:focus{background:var(--color-surface);border-color:var(--color-primary)}.spec-card-snapshot{zoom:var(--spec-zoom, 1)}.spec-zoom-group{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.spec-zoom-group .btn{border:0;border-radius:0;border-right:1px solid var(--color-border);padding:6px 12px;font-size:var(--text-sm)}.spec-zoom-group .btn:last-child{border-right:0}.spec-zoom-readout{font-variant-numeric:tabular-nums;min-width:56px;text-align:center;font-weight:var(--weight-medium)}.spec-card-memo{border-right:1px solid var(--color-border);background:#fffbeb;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-height:0}.spec-card-memo .spec-field-label{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#8c6a00}.spec-card-memo-input{flex:1;resize:none;font-size:var(--text-sm);border:1px solid #FCD34D;background:var(--color-warn-soft);border-radius:var(--radius-md);padding:10px 12px;outline:none;font-family:inherit;line-height:var(--leading-relaxed);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out)}.spec-card-memo-input:focus{border-color:#ca8a04}.spec-card-resizer{cursor:col-resize;background:var(--color-surface-subtle);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);transition:background var(--duration-fast) var(--ease-out)}.spec-card-resizer:hover{background:var(--color-primary-soft)}.spec-card-resizer:active{background:var(--color-primary)}.spec-card-snapshot{border-right:1px solid var(--color-border);background:var(--color-primary-softer);padding:var(--space-4);display:flex;align-items:center;justify-content:center;cursor:crosshair;min-height:0;overflow:hidden}.spec-card-snapshot svg{width:100%;height:100%;max-height:448px}.spec-card-fields{display:flex;flex-direction:column;padding:var(--space-4);gap:var(--space-4)}.spec-edit-block{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md)}.spec-edit-head{display:flex;align-items:baseline;gap:var(--space-2)}.spec-edit-title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-primary)}.spec-edit-name{flex:1;font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spec-edit-row{display:flex;gap:var(--space-2)}.spec-field-color{flex:1}.spec-field-color input[type=color]{width:100%;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer}.spec-field-num{flex:1}.spec-field-num .spec-field-input{width:100%}.spec-edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.spec-edit-actions .btn{font-size:var(--text-sm);padding:6px 12px}.spec-edit-delete{color:var(--color-danger);border-color:#fecaca}.spec-edit-delete:hover{background:var(--color-danger-soft);border-color:#f87171}.spec-field-hint{font-weight:var(--weight-regular);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:none;letter-spacing:0}.spec-annotation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.spec-annotation-row{display:flex;align-items:center;gap:var(--space-2)}.spec-annotation-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--color-danger);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-bold);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs)}.spec-annotation-input{flex:1}.spec-annotation-text{flex:1;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 12px;font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:text;white-space:pre-wrap;line-height:var(--leading-normal);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.spec-annotation-text:hover{background:var(--color-surface);border-color:var(--color-border-strong)}.spec-annotation-placeholder{color:var(--color-text-tertiary);font-style:italic}.spec-annotation-confirm{flex-shrink:0;font-size:var(--text-sm);padding:6px 12px;background:var(--color-primary);color:var(--color-text-on-accent);border-color:var(--color-primary);font-weight:var(--weight-semibold)}.spec-annotation-confirm:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-glow-primary)}.spec-annotation-remove{flex-shrink:0;width:24px;height:24px;border:0;background:transparent;color:var(--color-text-tertiary);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.spec-annotation-remove:hover{background:var(--color-danger-soft);color:var(--color-danger)}.spec-field{display:flex;flex-direction:column;gap:var(--space-1)}.spec-field-label{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.spec-field-readonly{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--color-text);background:var(--color-surface-muted);padding:8px 10px;border-radius:var(--radius-sm)}.spec-field-rowlabel{font-family:var(--font-mono)!important;background:var(--color-surface-muted);border-color:transparent}.spec-field-rowlabel:hover{background:var(--color-surface-hover)}.spec-field-rowlabel:focus{background:var(--color-surface);border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.spec-field-input{font:inherit;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 12px;background:var(--color-surface);color:var(--color-text);resize:vertical;outline:none;line-height:var(--leading-relaxed);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.spec-field-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.spec-doc-locked{background:linear-gradient(135deg,var(--color-warn-soft) 0%,#FEF9C3 100%);border:1px solid #FCD34D;border-radius:var(--radius-lg);padding:var(--space-6);text-align:center}.spec-doc-locked-title{font-size:var(--text-md);font-weight:var(--weight-bold);margin-bottom:var(--space-2);color:#8c6a00;letter-spacing:var(--tracking-tight)}.spec-doc-locked-body{margin:0 0 var(--space-4) 0;color:#78350f;font-size:var(--text-sm);line-height:var(--leading-relaxed)}@media print{body,html{background:#fff!important}.spec-doc-header,.spec-doc-meta,.spec-doc-locked,.spec-card-import-overlay,.spec-card-pin-overlay,.spec-card-duplicate,.spec-annotation-remove,.spec-side-right{display:none!important}.spec-doc{background:#fff}.spec-doc-shell{grid-template-columns:1fr}.spec-doc-body{padding:0;gap:0;max-width:none}.spec-card-row{display:block!important;width:100%;height:100vh;page-break-after:always;page-break-inside:avoid;break-after:page;break-inside:avoid;overflow:hidden}.spec-card-row:last-child{page-break-after:auto;break-after:auto}.spec-card{box-shadow:none;border:1px solid #cbd5e1;width:100%;height:100%;aspect-ratio:auto!important;max-height:100vh;display:flex;flex-direction:column}.spec-card-memo-side{position:static;box-shadow:none;page-break-inside:avoid;break-inside:avoid}.spec-card-resizer{display:none}.spec-field-input,.spec-card-memo-input{background:transparent!important}.spec-card-body{grid-template-columns:1fr var(--spec-fields-w, 280px);flex:1;min-height:0;overflow:hidden}.spec-card-snapshot{overflow:hidden;min-height:0;border-right:1px solid #94a3b8!important}.spec-card-snapshot svg{width:100%;height:100%;max-height:none;object-fit:contain}.spec-card-snapshot{zoom:1!important}.spec-card-fields{overflow:hidden;min-height:0}}.ia-window{height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.ia-window-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.ia-window-title{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin:0}.ia-window-body{flex:1;overflow:hidden;padding:var(--space-4)}.ia-window-body .ia-grid-panel,.ia-window-body>*{height:100%}.spec-doc-subbar-wrap{position:sticky;top:56px;z-index:9;flex-shrink:0}.spec-doc-subbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-xs);max-height:280px;overflow:hidden;transition:max-height var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.spec-doc-subbar.is-collapsed{max-height:0;border-bottom-color:transparent;box-shadow:none}.spec-doc-subbar>.spec-doc-meta{border-bottom:1px solid var(--color-border)}.spec-doc-subbar>.spec-sheet-tabs{border-bottom:0}.spec-doc-subbar-toggle{position:absolute;top:var(--space-2);right:var(--space-4);z-index:2;display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 10px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.spec-doc-subbar-toggle:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-1px)}.spec-doc-subbar-toggle.is-collapsed{top:var(--space-2);background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.spec-doc-subbar-toggle-chev{font-size:10px;line-height:1}.spec-doc-subbar-toggle-label{white-space:nowrap}@media print{.spec-doc-subbar-toggle{display:none!important}}.spec-doc-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.spec-doc-meta-field{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary)}.spec-doc-meta-label{white-space:nowrap;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--text-xs)}.spec-doc-meta-input{font:inherit;font-size:var(--text-sm);color:var(--color-text);padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:130px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.spec-doc-meta-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.spec-doc-meta-readonly{font:inherit;font-size:var(--text-sm);color:var(--color-text);padding:6px 10px;min-width:130px;font-variant-numeric:tabular-nums}.spec-card-meta-strip{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-4);padding:8px var(--space-4);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.spec-card-meta-item{display:inline-flex;align-items:baseline;gap:var(--space-2)}.spec-card-meta-item .spec-card-meta-label{font-weight:var(--weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}@media print{.spec-doc-meta{border-bottom:1px solid #ccc;padding:6px 0}.spec-doc-meta-input{border:none;padding:0;background:transparent}}.spec-sheet-tabs{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);overflow-x:auto;flex-shrink:0}.spec-sheet-tab{flex-shrink:0;padding:7px 14px;background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.spec-sheet-tab:hover{background:var(--color-surface-muted);color:var(--color-text)}.spec-sheet-tab.active{background:var(--color-primary);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}@media print{.spec-sheet-tabs{display:none!important}}.toolbar-ai-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--gradient-premium);color:var(--color-text-on-accent);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-glow-premium);transition:background var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.toolbar-ai-btn:hover{background:var(--gradient-premium-hover);transform:translateY(-1px)}.toolbar-ai-btn:active{transform:translateY(0)}.modal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.modal-close{background:transparent;border:0;font-size:16px;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:4px}.modal-close:hover{color:var(--text);background:var(--accent-soft)}.ai-modal{width:min(680px,92vw)}.ai-modal-head{display:flex;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.ai-modal-head h2{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);flex:1}.ai-modal-body{padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto;flex:1}.ai-modal-section{display:flex;flex-direction:column;gap:var(--space-2)}.ai-modal-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary)}.ai-modal-hint{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.ai-modal-input,.ai-modal-textarea{font:inherit;font-size:var(--text-base);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);resize:vertical;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.ai-modal-input:focus,.ai-modal-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.ai-modal-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ai-modal-row{display:flex;align-items:center;gap:8px}.ai-modal-spacer{flex:1}.ai-modal-link{color:var(--accent);font-size:12px;text-decoration:none}.ai-modal-link:hover{text-decoration:underline}.ai-modal-key-pill{flex-direction:row;align-items:center;gap:10px;padding:8px 12px;background:var(--accent-soft);border:1px solid #c7d2fe;border-radius:6px}.ai-modal-key-label{font-size:11px;font-weight:600;color:var(--accent)}.ai-modal-key-mask{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--text);flex:1}.ai-modal-key-edit{padding:4px 10px;font-size:11px}.ai-modal-scale{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ai-modal-scale-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;cursor:pointer;text-align:left}.ai-modal-scale-btn strong{font-size:13px;color:var(--text)}.ai-modal-scale-btn small{font-size:11px;color:var(--muted)}.ai-modal-scale-btn:hover{border-color:var(--accent)}.ai-modal-scale-btn.active{border-color:var(--accent);background:var(--accent-soft)}.ai-modal-error{padding:10px 14px;background:var(--color-danger-soft);border:1px solid #FCA5A5;color:#7f1d1d;border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.ai-modal-coming-soon{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:linear-gradient(135deg,#7c5cff14,#3182f614);border:1px solid rgba(124,92,255,.25);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-relaxed)}.ai-modal-coming-soon-badge{align-self:flex-start;background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill);margin-bottom:var(--space-1)}.ai-modal-coming-soon strong{font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight)}.ai-modal-coming-soon p{margin:0;color:var(--color-text-secondary)}.ai-modal-progress{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--accent-soft);color:var(--accent);border-radius:6px;font-size:12px}.ai-modal-spinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-modal-foot{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:#f8fafc}.ai-modal-warn{margin:0;font-size:11px;color:var(--muted);line-height:1.4}.ai-modal-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai-modal-mode-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;cursor:pointer;text-align:left}.ai-modal-mode-btn strong{font-size:13px;color:var(--text)}.ai-modal-mode-btn small{font-size:11px;color:var(--muted)}.ai-modal-mode-btn:hover{border-color:var(--accent)}.ai-modal-mode-btn.active{border-color:var(--accent);background:var(--accent-soft)}.oauth-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:radial-gradient(ellipse 800px 500px at 50% 0%,rgba(124,92,255,.1),transparent 70%),radial-gradient(ellipse 600px 400px at 50% 100%,rgba(49,130,246,.08),transparent 70%),var(--color-bg)}.oauth-login-card{width:min(460px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);padding:var(--space-10)}.oauth-login-brand{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.oauth-login-spark{font-size:var(--text-xl)}.oauth-login-name{font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:var(--tracking-tight)}.oauth-login-title{margin:0 0 var(--space-2);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);color:var(--color-text)}.oauth-login-desc{margin:0 0 var(--space-6);font-size:var(--text-md);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.oauth-login-as{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.oauth-login-actions{display:flex;flex-direction:column;gap:var(--space-2)}.oauth-login-btn{width:100%;padding:14px;font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);box-shadow:var(--shadow-glow-primary)}.oauth-login-btn:hover{transform:translateY(-1px)}.oauth-login-status{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-3) 0 0}.oauth-login-error{margin:var(--space-3) 0 0;padding:var(--space-3);background:var(--color-danger-soft);border:1px solid #FCA5A5;color:#7f1d1d;border-radius:var(--radius-md);font-size:var(--text-sm)}.oauth-login-details{margin-top:var(--space-6);font-size:var(--text-xs);color:var(--color-text-tertiary)}.oauth-login-details summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:var(--weight-medium)}.oauth-login-details dl{margin:var(--space-2) 0 0;display:grid;grid-template-columns:max-content 1fr;gap:4px var(--space-3)}.oauth-login-details dt{font-weight:var(--weight-semibold)}.oauth-login-details dd{margin:0;word-break:break-all}.oauth-login-details code{font-family:var(--font-mono);font-size:var(--text-xs)}.landing{min-height:100vh;background:radial-gradient(ellipse 1000px 600px at 50% -10%,rgba(124,92,255,.1),transparent 60%),radial-gradient(ellipse 800px 500px at 90% 20%,rgba(49,130,246,.08),transparent 65%),var(--color-bg);color:var(--color-text);display:flex;flex-direction:column}.landing-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-6);padding:var(--space-3) var(--space-10);background:#fffc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border)}.landing-brand{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.landing-brand-beta{display:inline-flex;align-items:center;height:18px;padding:0 8px;font-size:10px;font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;background:var(--gradient-premium);color:var(--color-text-on-accent);border-radius:var(--radius-pill);box-shadow:0 2px 6px #7c5cff40}.landing-feedback-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.landing-feedback-btn:hover{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.landing-lang-switch{display:inline-flex;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:2px;gap:1px}.landing-lang-btn{padding:4px 10px;background:transparent;border:0;border-radius:var(--radius-pill);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;color:var(--color-text-tertiary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.landing-lang-btn:hover{color:var(--color-text)}.landing-lang-btn.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-xs)}.landing-nav{display:flex;gap:var(--space-1);margin-left:var(--space-6)}.landing-nav-link{display:inline-flex;align-items:center;padding:8px 14px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.landing-nav-link:hover{background:var(--color-surface-muted);color:var(--color-text)}.landing-header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.landing-login-btn{border-radius:var(--radius-pill);padding:8px 22px;font-weight:var(--weight-semibold)}.landing-login-btn:hover{box-shadow:var(--shadow-glow-primary)}.landing-main{flex:1;display:flex;flex-direction:column}.landing-hero{max-width:1200px;width:100%;margin:0 auto;padding:var(--space-20) var(--space-10) var(--space-16);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-5)}.landing-hero-eyebrow{display:inline-block;padding:5px 14px;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);box-shadow:var(--shadow-xs)}.landing-hero-title{margin:0;font-size:clamp(40px,7vw,72px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:1.05;color:var(--color-text)}.landing-hero-accent{background:var(--gradient-premium);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.landing-hero-sub{margin:0;max-width:640px;font-size:clamp(15px,1.4vw,18px);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.landing-hero-sub em{font-style:italic;color:var(--color-primary);font-weight:var(--weight-medium)}.landing-hero-ctas{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center;margin-top:var(--space-3)}.landing-cta-primary{padding:14px 32px;font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);box-shadow:var(--shadow-glow-primary);transition:background var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.landing-cta-primary:hover:not(:disabled){transform:translateY(-1px)}.landing-cta-secondary{padding:14px 28px;font-size:var(--text-md);font-weight:var(--weight-medium);border-radius:var(--radius-pill);background:var(--color-surface)}.landing-hero-note{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.landing-hero-visual{margin-top:var(--space-10);width:100%;max-width:880px;perspective:1200px}.landing-hero-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-5);box-shadow:var(--shadow-xl);transform:rotateX(8deg) rotateY(-2deg);transition:transform var(--duration-slow) var(--ease-out)}.landing-hero-visual:hover .landing-hero-card{transform:rotateX(2deg) rotateY(0)}.landing-hero-card-row-h{display:flex;gap:6px;margin-bottom:var(--space-4)}.landing-hero-card-row-h span{width:10px;height:10px;border-radius:50%;background:var(--color-surface-muted)}.landing-hero-card-row-h span:nth-child(1){background:#ff6058}.landing-hero-card-row-h span:nth-child(2){background:#ffbd2e}.landing-hero-card-row-h span:nth-child(3){background:#28c940}.landing-hero-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.landing-hero-card-cell{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.lh-cell-tag{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-primary);background:var(--color-primary-soft);padding:4px 10px;border-radius:var(--radius-sm)}.lh-cell-bar{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--color-surface-muted),var(--color-surface-hover))}.landing-section{max-width:1200px;width:100%;margin:0 auto;padding:var(--space-20) var(--space-10)}.landing-section-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-10)}.landing-section-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-primary)}.landing-section-title{margin:0;font-size:clamp(28px,3.5vw,40px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:1.15;color:var(--color-text)}.landing-section-sub{margin:0;max-width:540px;font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.landing-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5)}.landing-feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.landing-feature:hover{border-color:var(--color-border-strong);transform:translateY(-3px);box-shadow:var(--shadow-md)}.landing-feature-icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-md);transition:background var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.landing-feature:hover .landing-feature-icon{background:var(--color-primary);color:var(--color-text-on-accent);transform:scale(1.05) rotate(-3deg);box-shadow:var(--shadow-glow-primary)}.landing-feature-icon-premium{background:var(--gradient-premium);color:var(--color-text-on-accent);box-shadow:var(--shadow-glow-premium)}.landing-feature:hover .landing-feature-icon-premium{background:var(--gradient-premium-hover);color:var(--color-text-on-accent)}.landing-feature h3{margin:0;font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.landing-feature p{margin:0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.landing-workflow{background:var(--color-surface-subtle);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);max-width:none;width:100%;border-radius:0}.landing-workflow .landing-section-head{margin-bottom:var(--space-10)}.landing-steps{list-style:none;margin:0 auto;padding:0;max-width:720px;display:flex;flex-direction:column;gap:var(--space-5)}.landing-step{display:grid;grid-template-columns:56px 1fr;gap:var(--space-5);align-items:start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);transition:border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.landing-step:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.landing-step-num{width:44px;height:44px;border-radius:50%;background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-lg);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow-premium)}.landing-step h4{margin:0 0 6px;font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.landing-step p{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.landing-claude{display:flex;justify-content:center}.landing-claude-card{max-width:720px;width:100%;background:linear-gradient(135deg,#14181f,#1a2030 60%,#1f2a48);border-radius:var(--radius-2xl);padding:var(--space-12);text-align:center;color:#f5f7fa;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);box-shadow:0 20px 60px #14181f59}.landing-claude-badge{background:var(--gradient-premium);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);padding:4px 12px;border-radius:var(--radius-pill)}.landing-claude-card h2{margin:0;font-size:clamp(24px,3vw,32px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);color:#fff}.landing-claude-card p{margin:0;max-width:480px;font-size:var(--text-md);line-height:var(--leading-relaxed);color:#b8c0cc}.landing-final-cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding-bottom:var(--space-20)}.landing-final-cta h2{margin:0;font-size:clamp(28px,3.5vw,40px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);color:var(--color-text)}.landing-final-cta p{margin:0;font-size:var(--text-md);color:var(--color-text-secondary)}.landing-pricing-beta{display:inline-flex;align-items:center;gap:var(--space-2);padding:8px 14px 8px 8px;background:linear-gradient(135deg,#7c5cff1a,#3182f61a);border:1px solid rgba(124,92,255,.25);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--color-text);margin-top:var(--space-3)}.landing-pricing-beta strong{color:var(--color-primary);font-weight:var(--weight-bold)}.landing-pricing-beta-badge{background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);padding:3px 10px;border-radius:var(--radius-pill)}.landing-pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);align-items:stretch}.landing-plan{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.landing-plan:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-3px)}.landing-plan-featured{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-lg);background:radial-gradient(ellipse 600px 200px at 50% 0%,rgba(49,130,246,.08),transparent 80%),var(--color-surface)}.landing-plan-featured:hover{transform:translateY(-5px);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-xl)}.landing-plan-flag{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:4px 14px;border-radius:var(--radius-pill);box-shadow:var(--shadow-glow-premium);white-space:nowrap}.landing-plan-soon{background:var(--color-surface-subtle);border-style:dashed}.landing-plan-soon:hover{transform:none;box-shadow:none;border-color:var(--color-border-strong)}.landing-plan-soon .landing-plan-tier,.landing-plan-soon .landing-plan-price-main,.landing-plan-soon .landing-plan-price-sub,.landing-plan-soon .landing-plan-desc,.landing-plan-soon .landing-plan-features{color:var(--color-text-tertiary)}.landing-plan-soon .landing-plan-features li:before{border-color:var(--color-text-tertiary)}.landing-plan-soon-flag{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);padding:4px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-xs);white-space:nowrap}.landing-plan-tier{font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.landing-plan-featured .landing-plan-tier{color:var(--color-primary)}.landing-plan-price{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) 0}.landing-plan-price-main{font-size:clamp(28px,3.2vw,36px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:1.1;color:var(--color-text)}.landing-plan-price-sub{font-size:var(--text-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.landing-plan-desc{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.landing-plan-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text)}.landing-plan-features li{position:relative;padding-left:22px;line-height:var(--leading-relaxed)}.landing-plan-features li:before{content:"";position:absolute;left:4px;top:7px;width:8px;height:4px;border-left:1.5px solid var(--color-primary);border-bottom:1.5px solid var(--color-primary);transform:rotate(-45deg)}.landing-pricing-foot{margin:var(--space-8) auto 0;text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary);max-width:540px}.landing-pricing-foot a{color:var(--color-primary);text-decoration:none;font-weight:var(--weight-medium);border-bottom:1px solid var(--color-primary-soft)}.landing-pricing-foot a:hover{border-bottom-color:var(--color-primary)}.feedback-modal{min-width:480px;max-width:560px;gap:var(--space-4);padding:var(--space-6)}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.feedback-modal-intro{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.feedback-modal-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.feedback-modal-cat{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.feedback-modal-cat:hover{background:var(--color-surface-muted);color:var(--color-text)}.feedback-modal-cat.is-active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:var(--weight-semibold)}.feedback-modal-field{display:flex;flex-direction:column;gap:6px}.feedback-modal-label{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.feedback-modal-optional{text-transform:none;letter-spacing:0;font-weight:var(--weight-regular);color:var(--color-text-tertiary)}.feedback-modal-textarea,.feedback-modal-input{font:inherit;font-size:var(--text-base);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);resize:vertical;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.feedback-modal-textarea:focus,.feedback-modal-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.feedback-modal-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.feedback-modal-error{padding:10px 14px;background:var(--color-danger-soft);border:1px solid #FCA5A5;color:#7f1d1d;border-radius:var(--radius-md);font-size:var(--text-sm)}@media (max-width: 480px){.feedback-modal{min-width:0;width:100%}.feedback-modal-categories{grid-template-columns:1fr}}.landing-footer{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8) var(--space-10);border-top:1px solid var(--color-border);background:var(--color-surface);font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}.landing-footer-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}.landing-footer-brand{font-weight:var(--weight-bold);font-size:var(--text-md);color:var(--color-text);letter-spacing:var(--tracking-tight)}.landing-footer-nav{display:flex;gap:var(--space-2);flex-wrap:wrap}.landing-footer-nav a{padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-decoration:none;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.landing-footer-nav a:hover{background:var(--color-surface-muted);color:var(--color-primary)}.landing-footer-business{border-top:1px solid var(--color-border);padding-top:var(--space-4);display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.landing-footer-business strong{color:var(--color-text-secondary);font-weight:var(--weight-semibold)}.landing-footer-business-note{margin-top:var(--space-2)}.landing-footer-business-note a{color:var(--color-primary);text-decoration:none;font-weight:var(--weight-medium)}.landing-footer-business-note a:hover{text-decoration:underline}.legal{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text)}.legal-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-6);padding:var(--space-3) var(--space-10);background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border)}.legal-brand{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight)}.legal-nav{margin-left:auto;display:flex;gap:var(--space-1);flex-wrap:wrap}.legal-nav-link{padding:8px 14px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-decoration:none;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.legal-nav-link:hover{background:var(--color-surface-muted);color:var(--color-primary)}.legal-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:var(--space-12) var(--space-6)}.legal-title{margin:0 0 var(--space-2);font-size:clamp(28px,4vw,40px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:1.15;color:var(--color-text)}.legal-effective{margin:0 0 var(--space-10);font-size:var(--text-sm);color:var(--color-text-tertiary)}.legal-body{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text)}.legal-body h2{margin:var(--space-10) 0 var(--space-3);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.legal-body h3{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.legal-body p{margin:0 0 var(--space-4);color:var(--color-text-secondary)}.legal-body ul,.legal-body ol{margin:0 0 var(--space-4);padding-left:var(--space-6);color:var(--color-text-secondary)}.legal-body li{margin-bottom:6px}.legal-body li ul{margin:6px 0 0}.legal-body strong{color:var(--color-text);font-weight:var(--weight-semibold)}.legal-body a{color:var(--color-primary);text-decoration:none;border-bottom:1px solid var(--color-primary-soft);transition:border-color var(--duration-fast) var(--ease-out)}.legal-body a:hover{border-bottom-color:var(--color-primary)}.legal-business{margin-top:var(--space-12);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.legal-business h2{margin:0 0 var(--space-4);font-size:var(--text-md);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-secondary)}.legal-business dl,.legal-business-inline{margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.legal-business-row{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3);font-size:var(--text-sm)}.legal-business-row dt{color:var(--color-text-tertiary);font-weight:var(--weight-medium)}.legal-business-row dd{margin:0;color:var(--color-text)}.legal-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-6) var(--space-10);border-top:1px solid var(--color-border);background:var(--color-surface);font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}.legal-footer-brand{font-weight:var(--weight-bold);color:var(--color-text-secondary)}.legal-footer-business{text-align:right}.legal-footer-business strong{color:var(--color-text-secondary);font-weight:var(--weight-semibold)}@media (max-width: 640px){.legal-header{padding:var(--space-3) var(--space-4);gap:var(--space-2)}.legal-main{padding:var(--space-8) var(--space-4)}.legal-business-row{grid-template-columns:1fr;gap:2px}.legal-footer{padding:var(--space-5) var(--space-4)}.legal-footer-business{text-align:left}}@media (max-width: 640px){.landing-header{padding:var(--space-3) var(--space-4);gap:var(--space-2)}.landing-nav{display:none}.landing-hero,.landing-section{padding-left:var(--space-5);padding-right:var(--space-5);padding-top:var(--space-12);padding-bottom:var(--space-10)}.landing-step{grid-template-columns:40px 1fr;gap:var(--space-3);padding:var(--space-4)}.landing-step-num{width:36px;height:36px;font-size:var(--text-base)}.landing-claude-card{padding:var(--space-8) var(--space-5)}}.claude-connect-btn{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--gradient-premium);color:var(--color-text-on-accent);border-color:transparent;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);padding:8px 16px;border-radius:var(--radius-pill);transition:background var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.claude-connect-btn:hover{background:var(--gradient-premium-hover);color:var(--color-text-on-accent);border-color:transparent;box-shadow:var(--shadow-glow-premium);transform:translateY(-1px)}.claude-connect-btn-spark{font-size:var(--text-sm);line-height:1}.claude-connect-modal{min-width:520px;max-width:600px;gap:var(--space-5);padding:var(--space-8)}.claude-connect-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.claude-connect-header .modal-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-tighter);font-weight:var(--weight-bold)}.claude-connect-close{background:transparent;border:0;font-size:24px;line-height:1;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.claude-connect-close:hover{background:var(--color-surface-muted);color:var(--color-text)}.claude-connect-intro{margin:0;font-size:var(--text-md);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.claude-connect-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.claude-connect-step{display:grid;grid-template-columns:32px 1fr;gap:var(--space-3);align-items:start}.claude-connect-step-num{width:28px;height:28px;border-radius:50%;background:var(--gradient-premium);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs)}.claude-connect-step-body{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-base);line-height:var(--leading-relaxed);padding-top:3px}.claude-connect-step-title{font-weight:var(--weight-semibold);color:var(--color-text);font-size:var(--text-md);letter-spacing:var(--tracking-tight)}.claude-connect-step-text p{margin:0;color:var(--color-text-secondary)}.claude-connect-step-text a{color:var(--color-primary);text-decoration:none;font-weight:var(--weight-medium);border-bottom:1px solid var(--color-primary-soft);transition:border-color var(--duration-fast) var(--ease-out)}.claude-connect-step-text a:hover{border-bottom-color:var(--color-primary)}.claude-connect-url{display:flex;align-items:center;gap:var(--space-2);background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);margin-top:var(--space-2)}.claude-connect-url code{flex:1;font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-all;color:var(--color-text)}.claude-connect-url .btn{flex:none;padding:6px 12px;font-size:var(--text-sm)}.claude-connect-notice{background:var(--color-warn-soft);border:1px solid #FCD34D;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#6b4f00}.claude-connect-notice strong{display:block;margin-bottom:var(--space-1);font-weight:var(--weight-bold);color:#5c4400}.claude-connect-notice ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:var(--space-1)}
