@import "https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--primary-h:14;--primary-s:80%;--primary-l:52%;--primary-ink:#fff;--primary:hsl(var(--primary-h) var(--primary-s) var(--primary-l));--primary-light:hsl(var(--primary-h) var(--primary-s) min(calc(var(--primary-l) + 10%), 92%));--primary-dark:hsl(var(--primary-h) var(--primary-s) max(calc(var(--primary-l) - 12%), 12%));--primary-deep:hsl(var(--primary-h) var(--primary-s) max(calc(var(--primary-l) - 24%), 8%));--primary-text:var(--primary-text-lt,var(--primary-dark));--primary-faint:hsl(var(--primary-h) var(--primary-s) var(--primary-l) / .07);--primary-soft:hsl(var(--primary-h) var(--primary-s) var(--primary-l) / .12);--primary-alpha:hsl(var(--primary-h) var(--primary-s) var(--primary-l) / .15);--primary-edge:hsl(var(--primary-h) var(--primary-s) var(--primary-l) / .24);--primary-ring:hsl(var(--primary-h) var(--primary-s) var(--primary-l) / .4);--gradient-primary:linear-gradient(135deg, var(--primary), hsl(calc(var(--primary-h) + 28) var(--primary-s) min(calc(var(--primary-l) + 2%), 88%)));--accent:#2bd4bd;--accent-light:#56dcca;--accent-dark:#23a997;--warm:#fa9247;--warm-light:#fcaf79;--success:#21c45d;--warning:#f59f0a;--error:#ef4343;--urgency-done:#3fa665;--urgency-later:#7c8a9c;--urgency-soon:#f0a119;--urgency-now:#f46a25;--urgency-overdue:#e73c3c;--bg-primary:#f9f7f6;--bg-secondary:#f0edeb;--bg-tertiary:#e6e3e0;--bg-card:#fff;--bg-elevated:#fff;--bg-overlay:#18141080;--text-primary:#221c16;--text-secondary:#5d544c;--text-tertiary:#756b61;--text-inverse:#fff;--border:#e0dbd7;--border-light:#e9e6e2;--border-focus:var(--primary);--sidebar-bg:#1f1c19;--sidebar-text:#d2cdc6;--sidebar-strong:#fff;--sidebar-title:hsl(var(--primary-h) 20% 62%);--sidebar-hover:var(--primary-soft);--sidebar-active:var(--primary-edge);--sidebar-border:#ffffff0f;--canvas-bg:#f0edeb;--canvas-dot:#a194874d;--canvas-grid:#a1948714;--card-white:#fff;--card-gray:#f4f2f1;--card-red:#fde8e8;--card-orange:#feeadc;--card-yellow:#fdf1ce;--card-green:#def7e7;--card-teal:#d9f2ef;--card-blue:#dfedfb;--card-purple:#e9e5fa;--card-pink:#fae5f0;--card-indigo:#e5e9fa;--card-cyan:#dcf4f9;--shadow-xs:0 1px 2px #19140f0d;--shadow-sm:0 1px 3px #19140f14, 0 1px 2px #19140f0f;--shadow-md:0 4px 6px #19140f12, 0 2px 4px #19140f0f;--shadow-lg:0 10px 15px #19140f1a, 0 4px 6px #19140f0d;--shadow-xl:0 20px 25px #19140f1a, 0 8px 10px #19140f0a;--shadow-card:0 2px 8px #19140f14, 0 1px 2px #19140f0f;--shadow-card-hover:0 8px 24px #19140f1f, 0 4px 8px #19140f14;--shadow-card-drag:0 16px 40px #19140f2e, 0 8px 16px #19140f1f;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--font-sans:"Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Archivo", "Instrument Sans", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--ui-gap:var(--space-3);--ui-row-y:var(--space-2);--ui-row-x:var(--space-3);--ui-control-h:36px;--leading-tight:1.2;--leading-normal:1.5;--leading-relaxed:1.65;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s;--z-canvas:1;--z-card:10;--z-card-dragging:100;--z-toolbar:200;--z-sidebar:300;--z-modal-backdrop:400;--z-modal:500;--z-toast:600;--z-tooltip:700;--z-context-menu:800;--sidebar-width:260px;--sidebar-collapsed-width:60px;--toolbar-height:52px}body[data-sidebar=collapsed]{--sidebar-width:var(--sidebar-collapsed-width)}[data-density=compact]{--ui-gap:var(--space-2);--ui-row-y:5px;--ui-row-x:var(--space-2);--ui-control-h:30px;--sidebar-width:224px;--toolbar-height:44px}[data-density=compact] .btn,[data-density=compact] .toolbar-btn{height:var(--ui-control-h);padding:0 var(--space-3)}[data-density=compact] .input{height:34px}[data-density=compact] .sidebar-item{padding:var(--ui-row-y) var(--ui-row-x);gap:var(--space-2)}[data-density=compact] .sidebar-section{padding:var(--space-2) var(--space-2)}[data-corners=soft]{--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:14px}[data-corners=square]{--radius-xs:0px;--radius-sm:0px;--radius-md:2px;--radius-lg:2px;--radius-xl:3px;--radius-2xl:4px}[data-motion=reduced] *,[data-motion=reduced] :before,[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-theme=dark]{--bg-primary:#131210;--bg-secondary:#1e1c1a;--bg-tertiary:#292624;--bg-card:#24211e;--bg-elevated:#2c2926;--bg-overlay:#0c0a09b8;--primary-text:var(--primary-text-dk,var(--primary-light));--text-primary:#f0eeeb;--text-secondary:#b0a9a0;--text-tertiary:#928a81;--border:#3a3531;--border-light:#2f2b28;--canvas-bg:#191715;--canvas-dot:#aaa09226;--canvas-grid:#aaa0920d;--card-white:#272421;--card-gray:#312e2b;--card-red:#401c1c;--card-orange:#412816;--card-yellow:#3d3314;--card-green:#1d3526;--card-teal:#1b322f;--card-blue:#1c2e40;--card-purple:#282145;--card-pink:#411f30;--card-indigo:#212745;--card-cyan:#1c353b;--shadow-card:0 2px 8px #0000004d, 0 1px 2px #0003;--shadow-card-hover:0 8px 24px #0006, 0 4px 8px #0000004d;--shadow-card-drag:0 16px 40px #00000080, 0 8px 16px #0006;--urgency-done:#54b678;--urgency-later:#8d97a5;--urgency-soon:#e9ae49;--urgency-now:#ec8755;--urgency-overdue:#e46767}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:calc(16px * var(--ui-scale,1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-primary);min-height:100vh;overflow:hidden auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}a{color:var(--primary-text);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:color-mix(in srgb, var(--primary-text) 78%, var(--text-primary))}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}img,video{max-width:100%;display:block}::selection{background:var(--primary-alpha);color:var(--primary-text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#ffffff14;border:1px solid #ffffff1f}[data-theme=dark] .glass{background:#24211eb3;border-color:#ffffff14}.glass-strong{-webkit-backdrop-filter:blur(40px)saturate(200%);background:#ffffff26;border:1px solid #ffffff2e}.gradient-primary{background:var(--primary)}.gradient-accent{background:var(--accent)}.gradient-warm{background:var(--warm)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:500;font-size:var(--text-sm);white-space:nowrap;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);-webkit-user-select:none;user-select:none;height:36px;line-height:1;display:inline-flex}.btn-primary{background:var(--primary);color:var(--primary-ink);box-shadow:0 1px 2px hsl(var(--primary-h) var(--primary-s) 40% / .3), inset 0 1px 0 #ffffff26}.btn-primary:hover{background:var(--primary-light);box-shadow:0 4px 12px hsl(var(--primary-h) var(--primary-s) 40% / .35), inset 0 1px 0 #ffffff26;transform:translateY(-1px)}.btn-primary:active{background:var(--primary-dark);transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border);border-color:var(--border-light)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#ed2c2c}.btn-lg{height:44px;padding:var(--space-3) var(--space-6);font-size:var(--text-base);border-radius:var(--radius-lg)}.btn-sm{height:28px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon-sm{border-radius:var(--radius-sm);width:28px;height:28px}.input{width:100%;height:40px;padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);outline:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha)}.input::placeholder{color:var(--text-tertiary)}.input-lg{height:48px;padding:var(--space-3) var(--space-4);font-size:var(--text-md);border-radius:var(--radius-lg)}.textarea{width:100%;padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);line-height:var(--leading-relaxed);resize:vertical;min-height:80px;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);outline:none}.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha)}.canvas-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--border-light);transition:box-shadow var(--duration-fast) var(--ease-out);cursor:grab;-webkit-user-select:none;user-select:none;position:absolute;overflow:hidden}.canvas-card:hover{box-shadow:var(--shadow-card-hover)}.canvas-card.dragging{cursor:grabbing;box-shadow:var(--shadow-card-drag);opacity:.95;z-index:var(--z-card-dragging)!important}.canvas-card.selected{border-color:var(--primary);box-shadow:var(--shadow-card-hover), 0 0 0 2px var(--primary)}.canvas-card:focus-visible{outline:2px solid var(--bg-primary);outline-offset:-4px;box-shadow:var(--shadow-card-hover), 0 0 0 2px var(--primary), 0 0 0 5px color-mix(in srgb, var(--primary) 45%, transparent)}.canvas-container:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.canvas-card.in-group.selected{border-color:color-mix(in srgb, var(--primary) 55%, transparent);box-shadow:var(--shadow-card), 0 0 0 2px color-mix(in srgb, var(--primary) 40%, transparent)}.canvas-card.in-group.selected.group-focus{border-color:var(--primary);box-shadow:var(--shadow-card-hover), 0 0 0 2px var(--primary), 0 0 0 6px color-mix(in srgb, var(--primary) 22%, transparent)}.canvas-card.in-group:after{content:"";background:var(--primary);opacity:.55;pointer-events:none;border-radius:2px;width:6px;height:6px;position:absolute;top:6px;right:6px}.card-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;min-height:36px;display:flex}.card-header-title{font-size:var(--text-sm);color:var(--text-secondary);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.card-color-bar{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;height:4px}.card-body{padding:var(--space-3)}.card-actions{gap:var(--space-1);opacity:0;transition:opacity var(--duration-fast) var(--ease-out);display:flex}.canvas-card:hover .card-actions{opacity:1}.card-drag-grip{border-radius:var(--radius-full);background:var(--text-tertiary,#9aa0ae);opacity:0;width:32px;height:10px;transition:opacity var(--duration-fast) var(--ease-out);cursor:grab;z-index:6;position:absolute;top:3px;left:50%;transform:translate(-50%)}.canvas-card:hover .card-drag-grip,.canvas-card.selected .card-drag-grip{opacity:.45}.card-drag-grip:hover{opacity:.85!important}.canvas-card.dragging .card-drag-grip{cursor:grabbing}.canvas-card.is-tiny .rotate-handle{display:none}.canvas-card.is-tiny .card-drag-grip{border-radius:inherit;z-index:0;width:auto;height:auto;inset:0;transform:none}.canvas-card.is-tiny:hover .card-drag-grip,.canvas-card.is-tiny.selected .card-drag-grip,.canvas-card.is-tiny .card-drag-grip:hover{opacity:0!important}.canvas-card:not(.selected) .embed-card-frame,.canvas-card:not(.selected) .video-card-embed{pointer-events:none}body[data-canvas-gesture=true] iframe,body[data-canvas-gesture=true] video,body[data-canvas-gesture=true] embed,body[data-canvas-gesture=true] object{pointer-events:none!important}.canvas-card.frameless{box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.canvas-card.frameless:hover{box-shadow:none}.canvas-card.frameless.selected{box-shadow:0 0 0 2px var(--primary);border-color:#0000}.canvas-card.frameless.dragging{box-shadow:none}.canvas-card.frameless:hover:not(.selected){box-shadow:0 0 0 1px var(--border)}.drawing-card{pointer-events:none;width:100%;height:100%}.drawing-card-svg{width:100%;height:100%;display:block;overflow:visible}.draw-layer{z-index:var(--z-card-dragging,500);cursor:crosshair;touch-action:none;position:absolute;inset:0}.draw-layer.eraser{cursor:cell}.draw-layer-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.draw-eraser-ring{border:2px solid var(--danger,#ef4444);pointer-events:none;opacity:.7;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.pen-panel{gap:var(--space-3);padding:var(--space-3);flex-direction:column;min-width:220px;display:flex}.pen-swatches{flex-wrap:wrap;gap:6px;display:flex}.pen-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.pen-swatch.active{border-color:var(--text-primary);transform:scale(1.12)}.share-modal{max-width:560px}.share-invite{gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.share-invite input[type=email]{flex:1;min-width:0}.share-section{margin-bottom:var(--space-5)}.share-members{margin:var(--space-2) 0 0;flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.share-member{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:var(--bg-subtle,#00000008);padding:6px 8px;display:flex}.share-member-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.share-dot{background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:8px;height:8px}.share-dot.online{background:var(--success,#00b894);box-shadow:0 0 0 3px #00b89433}.share-empty{font-size:var(--text-sm);color:var(--text-tertiary)}.inspector-segmented{gap:4px;display:flex}.inspector-segmented .btn{flex:1;padding:2px 6px;font-size:11px}.presence-layer{pointer-events:none;z-index:var(--z-card-dragging,500);position:absolute;inset:0;overflow:hidden}.presence-cursor{will-change:transform, opacity;align-items:flex-start;gap:2px;transition:opacity .16s;display:flex;position:absolute;top:0;left:0}.presence-name{letter-spacing:.01em;color:#fff;white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:4px;margin-top:13px;padding:2px 7px;font-size:11px;font-weight:600}.canvas-card.peer-selected{outline:2px solid var(--peer-color);outline-offset:1px}.peer-selection-tag{color:#fff;white-space:nowrap;pointer-events:none;border-radius:3px 0 0;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.6;position:absolute;bottom:0;right:0}.presence-avatars{align-items:center;display:flex}.presence-avatar{color:#fff;border:2px solid var(--bg-elevated);border-radius:50%;place-items:center;width:26px;height:26px;margin-left:-8px;font-size:11px;font-weight:700;display:grid}.presence-avatar:first-child{margin-left:0}.role-pill{border-radius:var(--radius-full);background:var(--bg-subtle,#0000000f);color:var(--text-secondary);text-transform:capitalize;padding:2px 8px;font-size:11px;font-weight:600}.canvas-container.read-only .canvas-card{cursor:default}.canvas-container.read-only .rotate-handle,.canvas-container.read-only .card-drag-grip,.canvas-container.read-only .resize-handle{display:none}.read-only-banner{bottom:var(--space-4);z-index:900;align-items:center;gap:var(--space-2);border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--text-secondary);padding:8px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.resize-handle{z-index:5;background:0 0;position:absolute}.resize-handle-se{cursor:se-resize;width:16px;height:16px;bottom:0;right:0}.resize-handle-e{cursor:e-resize;width:6px;top:8px;bottom:8px;right:0}.resize-handle-s{cursor:s-resize;height:6px;bottom:0;left:8px;right:8px}.rotate-handle{border:1px solid var(--border);background:var(--bg-elevated,#fff);width:20px;height:20px;color:var(--text-secondary);box-shadow:var(--shadow-sm);cursor:grab;opacity:0;z-index:6;touch-action:none;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:4px;left:4px}.canvas-card.selected .rotate-handle{opacity:.75}.rotate-handle:hover,.canvas-card.rotating .rotate-handle{border-color:var(--primary);color:var(--primary-text);transform:scale(1.15);opacity:1!important}.canvas-card.rotating .rotate-handle{cursor:grabbing}.rotate-readout{border-radius:var(--radius-full);font-variant-numeric:tabular-nums;color:#fff;background:var(--primary);box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap;z-index:7;padding:2px 7px;font-size:11px;font-weight:600;line-height:14px;position:absolute;top:5px;left:30px}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);z-index:var(--z-sidebar);border-right:1px solid var(--sidebar-border);transition:width var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}html:not([data-sidebar-tone=theme]) .sidebar{--primary-text:var(--primary-text-dk,var(--primary-light))}html[data-sidebar-tone=theme] .sidebar{--sidebar-bg:var(--bg-secondary);--sidebar-text:var(--text-secondary);--sidebar-strong:var(--text-primary);--sidebar-title:var(--text-tertiary);--sidebar-border:var(--border)}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:var(--space-4) var(--space-4);border-bottom:1px solid var(--sidebar-border);justify-content:space-between;align-items:center;min-height:60px;display:flex}.sidebar-logo{align-items:center;gap:var(--space-3);font-weight:700;font-size:var(--text-lg);color:var(--sidebar-strong);letter-spacing:-.02em;display:flex}.sidebar-logo-icon{border-radius:var(--radius-md);width:32px;height:32px;font-size:var(--text-xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-section{padding:var(--space-3) var(--space-2)}.sidebar-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--sidebar-title);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-1);font-weight:600}.sidebar-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--sidebar-text);cursor:pointer;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);white-space:nowrap;display:flex;overflow:hidden}.sidebar-item:hover{background:var(--sidebar-hover);color:var(--sidebar-strong)}.sidebar-item.active{background:var(--sidebar-active);color:var(--sidebar-strong);box-shadow:inset 2px 0 0 var(--primary-text)}.sidebar-item.active .sidebar-item-icon,.sidebar-item:hover .sidebar-item-icon{color:var(--primary-text)}.sidebar-item-icon{width:20px;height:20px;font-size:var(--text-md);color:inherit;transition:color var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-board-row{gap:var(--space-2);padding-right:var(--space-2);grid-template-columns:20px 1fr 12px 20px;display:grid}.sidebar-board-row.nested{padding-left:var(--space-6);font-size:var(--text-xs);opacity:.85}.sidebar-board-icon{border-radius:var(--radius-sm);width:20px;height:20px;font-size:var(--text-md);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.sidebar-board-icon:hover{background:var(--sidebar-hover);transform:scale(1.15)}.sidebar-board-star{color:var(--warning);justify-content:center;align-items:center;display:flex}.sidebar-board-menu{border-radius:var(--radius-sm);width:20px;height:20px;color:inherit;cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.sidebar-board-row:hover .sidebar-board-menu,.sidebar-board-row:focus-within .sidebar-board-menu,.sidebar-board-menu:focus-visible{opacity:.7}.sidebar-board-menu:hover{background:var(--sidebar-hover);opacity:1!important}.sidebar-row-menu{z-index:1200;min-width:180px;padding:var(--space-1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;display:flex;position:fixed}.sidebar-row-menu-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.sidebar-row-menu-item:hover{background:var(--primary-alpha);color:var(--primary-text)}.sidebar-row-menu-item.danger,.sidebar-row-menu-item.danger:hover{color:var(--error)}.sidebar-row-menu-item.danger:hover{background:#ef43431f}.sidebar-nav{scrollbar-color:var(--primary-edge) transparent;flex:1;overflow:hidden auto}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--primary-edge)}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--primary-ring)}.sidebar-footer{padding:var(--space-3) var(--space-2);border-top:1px solid var(--sidebar-border)}.sidebar-header .btn-icon{color:var(--sidebar-text)}.sidebar-header .btn-icon:hover{background:var(--sidebar-hover);color:var(--primary-text)}.toolbar{top:var(--space-3);left:calc(var(--sidebar-width) + var(--space-3));right:var(--space-3);height:var(--toolbar-height);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);z-index:var(--z-toolbar);padding:0 var(--space-3);align-items:center;gap:var(--space-1);transition:left var(--duration-slow) var(--ease-out);display:flex;position:fixed;container:toolbar/inline-size}.toolbar-divider{background:var(--border);width:1px;height:28px;margin:0 var(--space-2);flex-shrink:0}.toolbar-group{align-items:center;gap:var(--space-1);display:flex}.toolbar-spacer{flex:1}.toolbar-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);min-width:34px;height:36px;font-size:var(--text-sm);color:var(--text-secondary);transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);white-space:nowrap;flex-shrink:0;font-weight:500;display:flex;position:relative}.toolbar-btn:not(:has(.tb-label)){padding-inline:var(--space-2)}.toolbar-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.toolbar-btn.active{background:var(--primary-alpha);color:var(--primary-text)}.toolbar-btn-sm{min-width:0;height:24px;font-size:var(--text-xs);border:1px solid var(--border);background:var(--bg-tertiary);padding:0 8px}.toolbar-btn-icon{font-size:var(--text-md);align-items:center;display:flex}.toolbar-btn-icon .device-glyph{width:auto;max-width:28px;height:16px}.canvas-container{--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--text-6xl:60px;font-size:var(--text-base);top:0;left:var(--sidebar-width);background:var(--canvas-bg);transition:left var(--duration-slow) var(--ease-out);cursor:default;position:fixed;bottom:0;right:0;overflow:hidden}.canvas-container.panning{cursor:grab}.canvas-container.panning:active{cursor:grabbing}.canvas-surface{transform-origin:0 0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-card,.canvas-surface .connection-label{pointer-events:auto}.canvas-surface .connection-hitbox{pointer-events:stroke}.canvas-grid{pointer-events:none;background-image:radial-gradient(circle, var(--canvas-dot) 1px, transparent 1px);background-size:24px 24px;width:100%;height:100%;position:absolute;top:0;left:0}[data-pattern=grid] .canvas-grid{background-image:linear-gradient(to right, var(--canvas-grid) 1px, transparent 1px), linear-gradient(to bottom, var(--canvas-grid) 1px, transparent 1px)}[data-pattern=plain] .canvas-grid{background-image:none}.selection-box{border:2px solid var(--primary);background:var(--primary-alpha);border-radius:var(--radius-xs);pointer-events:none;z-index:var(--z-card-dragging);position:absolute}@keyframes menuIn{0%{opacity:0;transform:scale(.98)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}.menu-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex}.menu-item:hover,.menu-item.is-active{background:var(--primary-alpha);color:var(--primary-text)}.menu-item.is-danger:hover,.menu-item.is-danger.is-active{background:color-mix(in srgb, var(--error) 12%, transparent);color:var(--error)}.menu-item-icon{width:18px;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.menu-item:hover .menu-item-icon,.menu-item.is-active .menu-item-icon{color:inherit}.menu-item-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.menu-item-label{font-weight:500}.menu-item-desc{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menu-item:hover .menu-item-desc,.menu-item.is-active .menu-item-desc{color:inherit;opacity:.7}.menu-shortcut{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);background:0 0;border:none;flex-shrink:0;padding:0}.menu-item:hover .menu-shortcut,.menu-item.is-active .menu-shortcut{color:inherit;opacity:.7}.menu-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;padding:1px 5px;font-size:10px}.menu-divider{background:var(--border);height:1px;margin:var(--space-1) var(--space-2)}.menu-group-title{padding:var(--space-2) var(--space-3) 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:10px;font-weight:600;display:block}.menu-item-static,.menu-item-static:hover{cursor:default;background:0 0}.export-scales{flex-shrink:0;gap:4px;display:flex}.export-scale{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);padding:2px 7px}.export-scale:hover{color:var(--text-primary);border-color:var(--primary)}.pro-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--primary-text);background:color-mix(in srgb, var(--primary) 16%, transparent);border-radius:var(--radius-sm);align-self:flex-start;padding:2px 6px;font-size:10px;font-weight:600}.pro-upsell{align-items:flex-start;gap:var(--space-2);padding:var(--space-4);margin:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-tertiary);flex-direction:column;display:flex}.pro-upsell h4{font-size:var(--text-sm);color:var(--text-primary);margin:0;font-weight:600}.pro-upsell p{font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--text-secondary);margin:0}.pro-upsell-note{color:var(--text-tertiary);font-size:11px}.brand-kits{flex-direction:column;display:flex}.brand-kit{align-items:center;gap:var(--space-1);padding-right:var(--space-2);border-radius:var(--radius-md);display:flex}.brand-kit:hover{background:var(--bg-hover)}.brand-kit-main{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;display:flex}.brand-kit-palette{flex-shrink:0;display:flex}.brand-kit-palette span{border:1px solid var(--bg-elevated);border-radius:50%;width:12px;height:12px;margin-right:-4px}.brand-kit-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.brand-kit.is-active .brand-kit-name{color:var(--primary-text)}.versions{top:var(--toolbar-height);gap:var(--space-2);width:284px;padding:var(--space-3);background:var(--bg-elevated);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:var(--z-toolbar);flex-direction:column;display:flex;position:fixed;bottom:0;right:0;overflow-y:auto}.versions-head{align-items:center;gap:var(--space-2);display:flex}.versions-head h3{font-size:var(--text-base);flex:1;margin:0}.versions-save{justify-content:center}.versions-empty{padding:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-tertiary);margin:0}.versions-list{flex-direction:column;list-style:none;display:flex}.versions-item{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);display:flex}.versions-item:hover{background:var(--bg-hover)}.versions-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.versions-when{font-size:var(--text-sm);color:var(--text-primary)}.versions-count{font-size:var(--text-xs);color:var(--text-tertiary)}.versions-item-actions{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);gap:2px;display:flex}.versions-item:hover .versions-item-actions,.versions-item:focus-within .versions-item-actions{opacity:1}.canvas-menu{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:296px;max-height:min(440px,68vh);box-shadow:var(--shadow-xl);z-index:var(--z-context-menu);animation:menuIn var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}.canvas-menu-search{margin:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);border:1px solid #0000;outline:none;flex-shrink:0}.canvas-menu-search:focus{border-color:var(--primary);background:var(--bg-primary)}.canvas-menu-list{padding:0 var(--space-1) var(--space-1);flex:1;overflow-y:auto}.canvas-menu-group+.canvas-menu-group{border-top:1px solid var(--border);margin-top:var(--space-1)}.canvas-menu-empty{padding:var(--space-5) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.canvas-menu-colours{padding:0 var(--space-1) var(--space-2);border-top:1px solid var(--border);flex-shrink:0}.canvas-menu-swatches{padding:0 var(--space-3);flex-wrap:wrap;gap:5px;display:flex}.canvas-menu-swatch{border:1px solid var(--border);cursor:pointer;width:20px;height:20px;color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-out);border-radius:50%;place-items:center;display:grid}.canvas-menu-swatch:hover{transform:scale(1.15)}.canvas-menu-swatch.is-active{outline:2px solid var(--primary);outline-offset:2px}.canvas-menu-swatch.is-none{background:0 0}.canvas-menu-footer{gap:var(--space-4);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);background:var(--bg-secondary);font-size:var(--text-xs);color:var(--text-tertiary);flex-shrink:0;display:flex}.canvas-menu-footer kbd{margin-right:2px}.modal-overlay{background:var(--bg-overlay);z-index:var(--z-modal-backdrop);animation:fadeIn var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);z-index:var(--z-modal);width:90%;max-width:500px;max-height:85vh;animation:modalIn var(--duration-slow) var(--ease-out);overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);font-weight:700}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);justify-content:flex-end;gap:var(--space-3);display:flex}.confirm-dialog{max-width:400px}.confirm-dialog-body{color:var(--text-secondary);font-size:var(--text-sm);margin:0;line-height:1.55}.upgraded-modal{max-width:520px;padding:var(--space-8) var(--space-8) 0}.upgraded-mark{border-radius:var(--radius-lg);background:var(--primary-soft);width:44px;height:44px;color:var(--primary-text);margin-bottom:var(--space-5);justify-content:center;align-items:center;display:flex}.upgraded-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight);margin:0 0 var(--space-2)}.upgraded-lede{color:var(--text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.upgraded-note{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--text-primary);font-size:var(--text-sm);line-height:var(--leading-normal)}.upgraded-perks{margin:var(--space-6) 0 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.upgraded-perks li{padding-left:var(--space-4);border-left:2px solid var(--primary-edge);flex-direction:column;gap:2px;display:flex}.upgraded-perks strong{font-size:var(--text-base);font-weight:600}.upgraded-perks span{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.upgraded-actions{gap:var(--space-3);margin-top:var(--space-6);padding:var(--space-4) 0 var(--space-6);background:var(--bg-elevated);display:flex;position:sticky;bottom:0}.upgraded-actions .btn{flex:1 1 0;min-width:0}.upgraded-go-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.upgraded-actions .btn svg{flex-shrink:0}@media (max-width:480px){.upgraded-modal{padding:var(--space-6) var(--space-5) 0}.upgraded-actions{padding-bottom:var(--space-5);flex-direction:column}}.emoji-picker{z-index:var(--z-modal);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);animation:fadeIn var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}.emoji-picker-search{align-items:center;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.emoji-picker-search input{min-width:0;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);outline:none;flex:1}.emoji-picker-search input:focus{border-color:var(--primary)}.emoji-picker-body{min-height:0;padding:var(--space-2);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.emoji-section h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin:var(--space-2) 0 var(--space-1) var(--space-1);font-weight:600}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:2px;display:grid}.emoji-cell{aspect-ratio:1;border-radius:var(--radius-md);font-size:var(--text-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.emoji-cell:hover{background:var(--bg-tertiary);transform:scale(1.15)}.emoji-cell.active{border-color:var(--primary);background:var(--primary-alpha,var(--bg-tertiary))}.emoji-picker-empty{padding:var(--space-6) var(--space-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.board-icon-btn{border-radius:var(--radius-md);font-size:var(--text-lg);cursor:pointer;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:2px;line-height:1;display:inline-flex}.board-icon-btn-lg{font-size:var(--text-2xl)}.board-icon-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border);transform:scale(1.1)}.board-icon-btn:disabled{cursor:default}.btn-icon-danger:hover{color:var(--error);background:var(--bg-tertiary)}.toast-container{bottom:var(--space-6);right:var(--space-6);z-index:var(--z-toast);gap:var(--space-2);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);animation:toastIn var(--duration-slow) var(--ease-out);min-width:280px;max-width:400px;display:flex}@keyframes toastIn{0%{opacity:0;transform:translate(100%)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--error)}.toast-warning{border-left:3px solid var(--warning)}.toast-info{border-left:3px solid var(--primary)}.minimap-container{bottom:var(--space-4);right:var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);z-index:var(--z-toolbar);-webkit-user-select:none;user-select:none;box-shadow:0 0 0 1px var(--border), var(--shadow-lg);position:fixed;overflow:hidden}.minimap-canvas{pointer-events:none;display:block;position:absolute;inset:0}.minimap-surface{cursor:grab;touch-action:none;outline:none;position:absolute;inset:0}.minimap-container.is-dragging .minimap-surface{cursor:grabbing}.minimap-surface:focus-visible{box-shadow:inset 0 0 0 2px var(--primary-ring);border-radius:var(--radius-lg)}.minimap-viewport{border:1.5px solid var(--primary);background:var(--primary-faint);pointer-events:none;border-radius:2px;position:absolute;top:0;left:0;box-shadow:0 0 0 9999px #0c0a0957}[data-theme=light] .minimap-viewport{box-shadow:0 0 0 9999px #3d322924}.minimap-tools{z-index:2;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);gap:2px;display:flex;position:absolute;top:4px;right:4px}.minimap-container:hover .minimap-tools,.minimap-container:focus-within .minimap-tools{opacity:1}.minimap-tool{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-light);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);place-items:center;display:grid}.minimap-tool:hover{color:var(--text-primary);border-color:var(--primary)}.minimap-zoom{z-index:2;font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text-tertiary);background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;opacity:.75;transition:opacity var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);padding:1px 6px;font-size:9px;font-weight:500;line-height:16px;position:absolute;bottom:4px;left:4px}.minimap-container:hover .minimap-zoom{opacity:1}.minimap-zoom:hover{color:var(--text-primary)}.minimap-grip{z-index:3;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, var(--text-tertiary) 0 1.5px, transparent 1.5px 4px, var(--text-tertiary) 4px 5.5px, transparent 5.5px);opacity:0;width:18px;height:18px;transition:opacity var(--duration-fast) var(--ease-out);position:absolute;top:0;left:0}.minimap-container:hover .minimap-grip,.minimap-container.is-resizing .minimap-grip{opacity:.7}.minimap-toggle{bottom:var(--space-4);right:var(--space-4);z-index:var(--z-toolbar);align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);padding:6px 12px;font-weight:600;display:flex;position:fixed}.minimap-toggle:hover{color:var(--text-primary);border-color:var(--primary)}.landing-page{color:#efeeeb;isolation:isolate;--primary-text:var(--primary-text-dk,var(--primary-light));--ink-muted:#988f86;--landing-measure:1120px;background:#110f0e;min-height:100vh;position:relative;overflow-x:clip}.landing-nav{height:68px;padding:0 var(--space-8);z-index:100;transition:background var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.landing-nav.scrolled{-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4);background:#110f0ed1;border-bottom-color:#ffffff12}.landing-nav-progress{background:var(--primary);transform-origin:0;will-change:transform;height:1px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.hero-section{min-height:min(100vh,900px);max-width:var(--landing-measure);padding:calc(68px + var(--space-20)) var(--space-8) var(--space-20);flex-direction:column;justify-content:center;margin:0 auto;display:flex;position:relative}.hero-copy{max-width:760px}.hero-status-dot{background:var(--success);border-radius:50%;width:6px;height:6px}.hero-title{font-family:var(--font-display);letter-spacing:-.028em;max-width:19ch;margin-bottom:var(--space-5);animation:fadeInUp .7s var(--ease-out) 80ms both;font-size:clamp(2.25rem,4.6vw,3.5rem);font-weight:600;line-height:1.06}.hero-underline{white-space:nowrap;position:relative}.hero-underline svg{width:100%;height:.34em;margin-top:-.06em;position:absolute;top:100%;left:0;overflow:visible}.hero-underline path{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:drawStroke .9s var(--ease-out) .7s forwards}@keyframes drawStroke{to{stroke-dashoffset:0}}.hero-subtitle{font-size:var(--text-lg);color:#a69f96;max-width:56ch;line-height:var(--leading-relaxed);margin-bottom:var(--space-8);animation:fadeInUp .7s var(--ease-out) .16s both}.hero-actions{gap:var(--space-3);animation:fadeInUp .7s var(--ease-out) .24s both;display:flex}.hero-note{margin-top:var(--space-8);font-size:var(--text-base);color:#948d84;max-width:48ch;animation:fadeInUp .7s var(--ease-out) .32s both}.stats-strip{gap:var(--space-8);margin-top:var(--space-6);animation:fadeInUp .7s var(--ease-out) .4s both;flex-wrap:wrap;display:flex}.stats-item{align-items:baseline;gap:var(--space-2);display:flex}.stats-value{font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:#eaecf1;font-weight:700}.stats-label{font-size:var(--text-xs);color:#727e97}.review-wall{max-width:1120px;padding:var(--space-16) var(--space-6);margin:0 auto}.review-wall h2{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--space-10);color:#eaecf1;font-weight:700}.review-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));display:grid}.review-card{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:#ffffff08;border:1px solid #ffffff14;flex-direction:column;margin:0;display:flex;position:relative}.review-card blockquote{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#c9ced9;margin:0}.review-card figcaption{padding-top:var(--space-1);align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#9099ad;margin-top:auto;font-weight:600;display:flex}.review-plan{padding:1px var(--space-2);border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;color:#a7afbe;background:#ffffff12;font-size:10px;font-weight:600}.review-report{top:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);color:#576175;opacity:0;cursor:pointer;width:22px;height:22px;transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid;position:absolute}.review-card:hover .review-report,.review-report:focus-visible{opacity:1}@media (hover:none){.review-report{opacity:.45}}.review-report:hover{color:#c2c9d6}.review-report:disabled{opacity:1;color:var(--warning,#f5b13d);cursor:default}.star-rating{color:#f6bb31;gap:2px;display:inline-flex}.star-button{color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;padding:0;line-height:0}.star-button.filled{color:#f6bb31}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}html[data-js] [data-reveal=out]{opacity:0;transform:translateY(22px)}[data-reveal]{transition:opacity .6s var(--ease-out), transform .6s var(--ease-out)}[data-reveal=in]{opacity:1;transform:none}.section-head{max-width:680px;margin-bottom:var(--space-12)}.section-title{letter-spacing:-.024em;margin-bottom:var(--space-3);font-size:clamp(1.625rem,3.2vw,2.125rem);font-weight:600;line-height:1.14}.section-subtitle{font-size:var(--text-base);color:#988f86;max-width:58ch;line-height:var(--leading-relaxed)}.features-section{padding:var(--space-20) var(--space-8);max-width:var(--landing-measure);margin:0 auto}.feature-index{gap:0 var(--space-12);border-top:1px solid #ffffff14;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));list-style:none;display:grid}.feature-row{align-items:start;gap:var(--space-4);padding:var(--space-6) 0;border-bottom:1px solid #ffffff0f;grid-template-columns:auto 1fr;display:grid;position:relative}.feature-row:before{content:"";background:var(--primary);transform-origin:50% 0;width:2px;height:100%;transition:transform var(--duration-normal) var(--ease-out);position:absolute;top:0;left:0;transform:scaleY(0)}.feature-row:hover:before{transform:scaleY(1)}.feature-row-icon{border-radius:var(--radius-md);color:#d2cdc6;width:30px;height:30px;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #ffffff1a;place-items:center;display:grid}.feature-row:hover .feature-row-icon{border-color:var(--primary-edge);color:var(--primary-text)}.feature-row-body h3{font-size:var(--text-base);letter-spacing:-.01em;margin-bottom:var(--space-2);font-weight:650}.feature-row-body p{font-size:var(--text-sm);color:#938a80;line-height:var(--leading-relaxed);max-width:48ch}.pricing-page{min-height:100vh;padding:var(--space-8) var(--space-8) var(--space-16);color:#efeeeb;--primary-text:var(--primary-text-dk,var(--primary-light));--ink-muted:#988f86;--pricing-measure:calc(1120px - var(--space-8) * 2);background:#141210;overflow:auto}.pricing-backrow{max-width:var(--pricing-measure);margin:0 auto}.pricing-back{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#958d83;transition:color var(--duration-fast) var(--ease-out);display:inline-flex}.pricing-back:hover{color:#e9e6e2}.pricing-head{max-width:var(--pricing-measure);margin:var(--space-16) auto var(--space-12)}.pricing-head h1{font-size:var(--text-3xl);letter-spacing:-.03em;font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-4);max-width:20ch}.pricing-head p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:#a19a91;max-width:62ch}.pricing-page .pricing-grid{max-width:var(--pricing-measure);margin-left:auto;margin-right:auto}.campaign-banner{max-width:var(--pricing-measure);margin:0 auto var(--space-8);padding:var(--space-4) var(--space-5);align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-lg);background:linear-gradient(135deg,#392818,#292114);border:1px solid #493b27;display:flex}.campaign-banner>svg{color:#ebb447;flex-shrink:0;margin-top:2px}.campaign-banner-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#d2cdc6}.campaign-banner-text strong{color:#f4f3f1}.pricing-tools{max-width:var(--pricing-measure);margin:var(--space-20) auto 0}.pricing-tools h2{font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid #ffffff14;font-weight:600}.pricing-tools-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.pricing-tool h3{font-size:var(--text-base);margin-bottom:var(--space-2);font-weight:600}.pricing-tool p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#9c948b}.pricing-fineprint{max-width:var(--pricing-measure);margin:var(--space-16) auto 0;font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--ink-muted)}.donate{max-width:var(--pricing-measure);margin:var(--space-16) auto 0;padding-top:var(--space-10);border-top:1px solid #2c2926}.donate h2{align-items:center;gap:var(--space-2);font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:var(--space-3);font-weight:650;display:flex}.donate>p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#a19a91;max-width:62ch}.donate-amounts{align-items:stretch;gap:var(--space-2);margin:var(--space-6) 0 var(--space-3);flex-wrap:wrap;display:flex}.donate-preset{min-width:72px;padding:0 var(--space-4);border-radius:var(--radius-md);color:#d7d2cc;height:42px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #37332f;font-weight:550}.donate-preset:hover{color:#efeeeb;border-color:#534d46}.donate-preset.is-selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent);color:#f4f3f1}.donate-preset:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.donate-custom{align-items:center;gap:var(--space-1);max-width:180px;height:42px;padding-left:var(--space-3);border-radius:var(--radius-md);color:var(--ink-muted);font-size:var(--text-sm);border:1px solid #37332f;flex:120px;display:flex}.donate-custom:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha)}.donate-custom .input{min-width:0;height:100%;padding:0 var(--space-2) 0 0;color:#efeeeb;font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:0 0;border:none;flex:1}.donate-custom .input:focus,.donate-custom .input:focus-visible{box-shadow:none;border:none;outline:none}.donate-range{font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--ink-muted);max-width:62ch}.donate-range a{color:#9c948b;text-underline-offset:2px;text-decoration:underline}.donate-range a:hover{color:#e4e1dd}.donate-cta{margin-top:var(--space-5)}.donate-checkout{max-width:320px;margin-top:var(--space-5)}.donate-cancel{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--ink-muted)}.donate-cancel:hover{color:#e4e1dd}.donate-done h2{color:#f4f3f1}.donate-done h2 svg{color:var(--primary-text)}.pricing-section{padding:var(--space-20) var(--space-8);max-width:var(--landing-measure);margin:0 auto}.pricing-grid{margin-top:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch;gap:0;display:grid}.pricing-card{padding:var(--space-2) var(--space-7) 0;text-align:left;border-left:1px solid #ffffff14;flex-direction:column;display:flex;position:relative}.pricing-card:first-child{border-left:0;padding-left:0}.pricing-plan{align-items:center;gap:var(--space-2);font-size:var(--text-sm);letter-spacing:.02em;color:#a69f96;margin-bottom:var(--space-4);font-weight:600;display:flex}.pricing-current-badge{padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--primary);color:#fff;letter-spacing:0;text-transform:none;font-size:11px;font-weight:600}.pricing-card.is-current .pricing-plan{color:var(--text-primary)}.pricing-price{align-items:baseline;gap:var(--space-2);font-size:var(--text-4xl);letter-spacing:-.03em;margin-bottom:var(--space-2);font-weight:700;display:flex}.pricing-was{font-size:var(--text-lg);color:var(--ink-muted);font-weight:500;text-decoration:line-through}.pricing-period{font-size:var(--text-sm);color:#958d83;font-weight:500}.pricing-description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#a19a91;margin-bottom:var(--space-6);min-height:2.6em}.pricing-features{gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;list-style:none;display:flex}.pricing-features li{align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-normal);color:#cbc7c2;display:flex}.pricing-features li svg{color:#837b72;flex-shrink:0;margin-top:2px}.pricing-cta{width:100%;margin-top:auto}.pricing-checkout{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.link-button.pricing-cancel{font-size:var(--text-xs);color:#9c948b;align-self:center}.pay-unavailable{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:#ded1ba;background:#dda23c1a;border:1px solid #dda23c40;flex-direction:column;display:flex}.pay-unavailable a{color:inherit;text-underline-offset:2px;text-decoration:underline}.referral-field{gap:var(--space-2);padding-top:var(--space-5);margin-bottom:var(--space-5);border-top:1px solid #ffffff12;flex-direction:column;display:flex}.referral-field label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#9c948b;display:flex}.referral-input-row{gap:var(--space-2);display:flex}.referral-input-row .input{flex:1;min-width:0}.input-code{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.input-code::placeholder{letter-spacing:.14em;opacity:.35}.referral-error{font-size:var(--text-xs);color:var(--error)}.referral-applied{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-5);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:#b0ddc8;background:#2eb8771a;border:1px solid #2eb87740;display:flex}.referral-applied svg{flex-shrink:0;margin-top:1px}.link-button{font:inherit;color:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-button:hover{opacity:.75}.landing-brand{align-items:center;gap:var(--space-3);color:#fff;font-weight:700;font-size:var(--text-md);cursor:pointer;background:0 0;border:none;padding:0;display:flex}.landing-brand.static{cursor:default}.brand-mark{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--primary-text);transition:border-color var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out);border:1px solid #ffffff2e;place-items:center;font-size:13px;display:grid}.landing-brand:hover .brand-mark{border-color:var(--primary-ring)}.brand-word{letter-spacing:-.01em}.landing-nav-links{align-items:center;gap:var(--space-5);display:flex}.landing-nav-link{color:#a69f96;font-size:var(--text-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;padding:0;position:relative}.landing-nav-link:hover,.landing-nav-link.active{color:#fff}.landing-nav-link.active:after{content:"";background:var(--primary);height:1px;position:absolute;bottom:-6px;left:0;right:0}.landing-nav-toggle{color:#fff;cursor:pointer;padding:var(--space-2);background:0 0;border:none;display:none}.btn-xl{height:52px;padding:0 var(--space-8);font-size:var(--text-md)}.btn-glass{color:#fff;background:#ffffff0f;border:1px solid #ffffff24}.btn-glass:hover{background:#ffffff1f}.hero-preview{margin-top:var(--space-16);aspect-ratio:16/9;border-radius:var(--radius-xl);width:100%;animation:fadeInUp .9s var(--ease-out) .4s both;background:#1e1c1ae6;border:1px solid #ffffff14;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 40px 90px #00000080}.hero-preview-chrome{align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);background:#2c2926e6;border-bottom:1px solid #ffffff0f;display:flex}.hero-dot{border-radius:50%;width:10px;height:10px}.hero-dot.red{background:#ff5f57}.hero-dot.amber{background:#febc2e}.hero-dot.green{background:#28c840}.hero-preview-url{font-family:var(--font-mono);color:var(--ink-muted);margin-left:auto;margin-right:auto;font-size:11px}.hero-preview-body{height:calc(100% - 40px);display:flex}.hero-preview-rail{background:#191715e6;border-right:1px solid #ffffff0f;flex-direction:column;flex-shrink:0;align-items:center;gap:10px;width:48px;padding-top:14px;display:flex}.hero-rail-dot{border-radius:var(--radius-full);background:#ffffff1a;width:20px;height:6px}.hero-rail-dot.on{background:var(--primary)}.hero-preview-canvas{background-image:radial-gradient(#ffffff0d 1px,#0000 1px);background-size:22px 22px;flex:1;position:relative;overflow:hidden}.hero-card{border-radius:var(--radius-lg);background:#2c2926eb;border:1px solid #ffffff14;padding:10px;position:absolute;box-shadow:0 8px 24px #00000059}@keyframes heroFloat{0%,to{transform:translateY(0) rotate(var(--tilt,0deg))}50%{transform:translateY(-7px) rotate(var(--tilt,0deg))}}.float-a{animation:heroFloat 7s var(--ease-in-out,ease-in-out) infinite}.float-b{animation:heroFloat 9s var(--ease-in-out,ease-in-out) .8s infinite}.float-c{animation:heroFloat 8s var(--ease-in-out,ease-in-out) 1.6s infinite}.hero-card-note{--tilt:-1.5deg;width:30%;top:8%;left:5%}.hero-card-image{--tilt:1deg;width:26%;padding:0;top:12%;left:41%;overflow:hidden}.hero-card-task{--tilt:1.5deg;width:30%;top:45%;left:12%}.hero-card-swatch{--tilt:-2deg;width:18%;padding:0;top:58%;left:48%;overflow:hidden}.hero-card-progress{--tilt:2deg;width:22%;top:16%;right:5%}.hero-card-label{margin-bottom:6px;font-size:10px;font-weight:600}.hero-card-label.violet{color:var(--primary-text)}.hero-card-label.teal{color:var(--accent)}.hero-card-label.amber{color:var(--warm-light,#fdcb6e)}.hero-card-label.green{color:var(--success)}.hero-card-label.mono{font-family:var(--font-mono);color:#a19a91;margin:0;padding:6px 8px}.hero-line{border-radius:var(--radius-full);background:#ffffff1f;height:5px;margin-bottom:5px}.hero-line.w90{width:90%}.hero-line.w80{width:80%}.hero-line.w70{width:70%}.hero-card-thumb{background:var(--primary);height:62px}.hero-card-image .hero-card-label{margin:0;padding:8px}.hero-task{color:#9c948b;padding:2px 0;font-size:9px}.hero-task:before{content:"☐ "}.hero-task.done:before{content:"☑ ";color:var(--success)}.hero-swatch-chip{background:var(--primary);height:52px}.hero-progress{border-radius:var(--radius-full);background:#ffffff1a;height:6px;overflow:hidden}.hero-progress i{border-radius:var(--radius-full);background:var(--primary);height:100%;animation:heroFill 6s var(--ease-in-out,ease-in-out) infinite;display:block}@keyframes heroFill{0%,to{width:42%}50%{width:78%}}.hero-cursor{color:var(--accent);animation:heroCursor 11s var(--ease-in-out,ease-in-out) infinite;align-items:flex-start;gap:2px;font-size:9px;font-weight:600;display:flex;position:absolute}.hero-cursor span{background:var(--accent);color:#141210;border-radius:var(--radius-sm);white-space:nowrap;padding:1px 5px;transform:translateY(8px)}@keyframes heroCursor{0%{opacity:0;top:30%;left:30%}8%{opacity:1}30%{top:55%;left:55%}55%{top:25%;left:72%}80%{top:62%;left:22%}92%{opacity:1}to{opacity:0;top:30%;left:30%}}@media (prefers-reduced-motion:reduce){.float-a,.float-b,.float-c,.hero-cursor,.hero-progress i{animation:none}.hero-cursor{top:40%;left:60%}.hero-title,.hero-subtitle,.hero-actions,.hero-note,.hero-preview{animation-duration:1ms;animation-delay:0s}.hero-underline path{stroke-dashoffset:0;animation:none}html[data-js] [data-reveal=out]{opacity:1;transform:none}[data-reveal]{transition:none}}.how-section,.compare-section,.faq-section{padding:var(--space-20) var(--space-8);max-width:var(--landing-measure);margin:0 auto}.how-track{gap:var(--space-8);padding-top:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));list-style:none;display:grid;position:relative}.how-track:before{content:"";background:#ffffff1a;height:1px;position:absolute;top:4px;left:0;right:0}.how-step{position:relative}.how-step-node{top:calc(-1 * var(--space-8) + 1px);width:7px;height:7px;box-shadow:0 0 0 1px var(--primary-ring);background:#110f0e;border-radius:50%;position:absolute;left:0}.how-step:first-child .how-step-node{background:var(--primary);box-shadow:0 0 0 4px var(--primary-faint)}.how-step-n{font-family:var(--font-mono);letter-spacing:.12em;color:var(--primary-text);margin-bottom:var(--space-3);font-size:10px;font-weight:600;display:block}.how-step h3{font-size:var(--text-base);letter-spacing:-.01em;margin-bottom:var(--space-2);font-weight:650}.how-step p{font-size:var(--text-sm);color:#938a80;line-height:var(--leading-relaxed)}.shortcut-strip{align-items:center;gap:var(--space-2) var(--space-5);margin-top:var(--space-12);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:#211e1c99;border:1px solid #ffffff12;flex-wrap:wrap;display:flex}.shortcut-strip-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#958d83;display:inline-flex}.shortcut-chip{font-size:var(--text-xs);color:#9c948b;align-items:center;gap:6px;display:inline-flex}.shortcut-chip kbd{font-family:var(--font-mono);border-radius:var(--radius-sm);color:#e9e6e2;background:#ffffff12;border:1px solid #ffffff1f;padding:3px 6px;font-size:10px;box-shadow:0 1px #0000004d}.compare-table-wrap{overflow-x:auto}.compare-table{border-collapse:collapse;text-align:left;width:100%;min-width:520px}.compare-table th,.compare-table td{padding:var(--space-4) var(--space-4);font-size:var(--text-sm);font-weight:400}.compare-table thead th{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-bottom:var(--space-3);font-size:10px;font-weight:600}.compare-table thead tr{border-bottom:1px solid #ffffff24}.compare-table thead th.us{color:var(--primary-text)}.compare-table tbody th{color:#a69f96;padding-left:0}.compare-table td{font-variant-numeric:tabular-nums}.compare-table td.us{color:#edebe8;font-weight:500}.compare-table td.them{color:var(--ink-muted)}.compare-table tbody tr{transition:background var(--duration-fast) var(--ease-out);border-bottom:1px solid #ffffff0d}.compare-table tbody tr:hover{background:#ffffff05}.cmp-yes{color:var(--success);align-items:center;gap:6px;display:inline-flex}.cmp-yes:before{content:"✓";font-weight:700}.cmp-no{color:#58524b}.compare-note{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--ink-muted)}.faq-list{border-top:1px solid #ffffff1a}.faq-item{border-bottom:1px solid #ffffff0f}.faq-question{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-5) 0;color:#e9e6e2;font-size:var(--text-base);text-align:left;cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;grid-template-columns:1fr auto;font-weight:550;display:grid}.faq-question:hover{color:#fff}.faq-sign{color:var(--ink-muted);transition:transform var(--duration-normal) var(--ease-out), color var(--duration-fast) var(--ease-out);flex-shrink:0}.faq-item.open .faq-sign{color:var(--primary-text);transform:rotate(135deg)}.faq-answer-wrap{transition:grid-template-rows var(--duration-normal) var(--ease-out);grid-template-rows:0fr;display:grid}.faq-item.open .faq-answer-wrap{grid-template-rows:1fr}.faq-answer{font-size:var(--text-sm);color:#9c948b;line-height:var(--leading-relaxed);max-width:68ch;overflow:hidden}.faq-item.open .faq-answer{padding-bottom:var(--space-5)}.faq-more{margin-top:var(--space-6);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-muted)}.faq-more a{color:#dddad4;text-underline-offset:3px;transition:text-decoration-color var(--duration-fast) var(--ease-out);-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40}.faq-more a:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.cta-section{padding:var(--space-20) var(--space-8);max-width:var(--landing-measure);margin:0 auto}.cta-inner{padding-top:var(--space-16);border-top:1px solid #ffffff17}.cta-inner h2{letter-spacing:-.03em;max-width:22ch;margin-bottom:var(--space-4);font-size:clamp(1.75rem,3.6vw,2.5rem);font-weight:700;line-height:1.12}.cta-inner p{font-size:var(--text-base);color:#9c948b;max-width:52ch;margin-bottom:var(--space-8)}.route-error{min-height:100vh;padding:var(--space-8);background:var(--bg-primary);place-items:center;display:grid}.route-error-inner{text-align:center;max-width:440px}.route-error-mark{color:var(--text-tertiary);margin-bottom:var(--space-4)}.route-error-inner h1{font-size:var(--text-2xl);letter-spacing:-.02em;margin-bottom:var(--space-3);font-weight:700}.route-error-inner p{color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-5)}.route-error-digest{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-5);display:block}.route-error-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.landing-footer{padding:var(--space-16) var(--space-8) var(--space-8);color:var(--ink-muted);font-size:var(--text-sm);--landing-footer-measure:calc(var(--landing-measure) - var(--space-8) * 2);border-top:1px solid #ffffff12}.landing-footer-top{justify-content:space-between;gap:var(--space-10);max-width:var(--landing-footer-measure);margin:0 auto var(--space-12);flex-wrap:wrap;display:flex}.landing-footer-brand{max-width:30ch}.landing-footer-brand p{margin-top:var(--space-4);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-muted)}.landing-footer-cols{gap:var(--space-12);flex-wrap:wrap;display:flex}.landing-footer-col{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.landing-footer-col h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-1);font-size:10px;font-weight:600}.landing-footer-col a,.landing-footer-col button{color:#9c948b;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;padding:0;font-family:inherit}.landing-footer-col a:hover,.landing-footer-col button:hover{color:#fff}.landing-footer-base{justify-content:space-between;align-items:center;gap:var(--space-4);max-width:var(--landing-footer-measure);padding-top:var(--space-6);font-size:var(--text-xs);color:var(--ink-muted);border-top:1px solid #ffffff0d;flex-wrap:wrap;margin:0 auto;display:flex}.landing-footer-status{align-items:center;gap:var(--space-2);font-family:var(--font-mono);letter-spacing:.04em;display:inline-flex}.landing-footer-legal{justify-content:center;gap:var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.landing-footer-legal a{color:var(--ink-muted);text-decoration:none}.landing-footer-legal a:hover{color:#fff}@media (max-width:860px){.landing-nav{padding:0 var(--space-5)}.landing-nav-toggle{display:block}.landing-nav-links{align-items:stretch;gap:var(--space-3);padding:var(--space-5);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#110f0ef7;border-bottom:1px solid #ffffff14;flex-direction:column;display:none;position:absolute;top:68px;left:0;right:0}.landing-nav-links.open{display:flex}.landing-nav-link{text-align:left;padding:var(--space-2) 0}.landing-nav-link.active:after{display:none}.landing-nav-link.active{color:var(--primary-text)}.hero-section{min-height:0;padding:calc(68px + var(--space-16)) var(--space-5) var(--space-16)}.hero-title{max-width:none}.hero-actions{flex-direction:column;width:100%;max-width:320px}.hero-actions .btn{width:100%}.hero-preview{aspect-ratio:4/3}.hero-card-swatch,.hero-card-progress{display:none}.features-section,.how-section,.compare-section,.faq-section,.pricing-section,.cta-section{padding-left:var(--space-5);padding-right:var(--space-5)}.how-track:before,.how-step-node{display:none}.how-track{gap:var(--space-6);padding-top:0}.how-step{padding-left:var(--space-4);border-left:1px solid var(--primary-edge)}.cta-inner{padding-top:var(--space-10)}.landing-footer-cols{gap:var(--space-8)}}.legal-page{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);flex-direction:column;display:flex}.legal-topbar{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.legal-brand{align-items:center;gap:var(--space-2);color:var(--text-primary);font-weight:650;text-decoration:none;display:inline-flex}.legal-mark{border-radius:var(--radius-sm);background:var(--primary);width:24px;height:24px;color:var(--primary-ink);font-size:var(--text-xs);place-items:center;display:grid}.legal-topbar-link{font-size:var(--text-sm);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.legal-topbar-link:hover{color:var(--text-primary)}.legal-shell{gap:var(--space-12);width:100%;max-width:1080px;padding:var(--space-10) var(--space-6) var(--space-16);flex:1;grid-template-columns:240px minmax(0,1fr);margin:0 auto;display:grid}.legal-aside-inner{top:calc(var(--space-16) + var(--space-2));max-height:calc(100vh - var(--space-20));padding-right:var(--space-2);scrollbar-width:thin;position:sticky;overflow-y:auto}.legal-panel-head{margin-bottom:var(--space-3);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:600}.legal-docs{margin:0 0 var(--space-8);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.legal-doc-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);transition-property:color,background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);line-height:1.4;text-decoration:none;display:block}.legal-doc-link:hover{background:var(--bg-secondary);color:var(--text-primary)}.legal-doc-link[aria-current=page]{background:var(--primary-faint);color:var(--primary-text);font-weight:600}.legal-toc{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.legal-toc a{align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-tertiary);transition-property:color,border-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);border-left:2px solid #0000;line-height:1.4;text-decoration:none;display:flex}.legal-toc a:hover,.legal-toc a:focus-visible{color:var(--primary-text);border-left-color:var(--primary)}.legal-toc-n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-tertiary);opacity:.7;flex-shrink:0;font-size:10px}.legal-main{min-width:0;max-width:68ch}.legal-main-solo{width:100%;padding:var(--space-10) var(--space-6) var(--space-16);flex:1;margin:0 auto}.legal-head{padding-bottom:var(--space-6);border-bottom:1px solid var(--border-light);margin-bottom:var(--space-8)}.legal-head h1{margin:0 0 var(--space-3);letter-spacing:-.03em;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;line-height:1.1}.legal-updated{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);margin:0}.legal-lede{margin:var(--space-5) 0 0;font-size:var(--text-md);color:var(--text-secondary);line-height:1.65}.legal-section{scroll-margin-top:calc(var(--space-16) + var(--space-4));margin-top:var(--space-10)}.legal-section h2{align-items:baseline;gap:var(--space-3);margin:0 0 var(--space-4);font-size:var(--text-xl);letter-spacing:-.015em;font-weight:650;line-height:1.3;display:flex}.legal-section-n{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--primary-text);flex-shrink:0;font-weight:600}.legal-section h3{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-md);font-weight:650}.legal-section p,.legal-list li{font-size:var(--text-md);color:var(--text-secondary);line-height:1.7}.legal-section p{margin:0 0 var(--space-4)}.legal-doc a{color:var(--primary-text)}.legal-list{margin:0 0 var(--space-4);padding-left:var(--space-5);list-style:none}.legal-list li{margin-bottom:var(--space-2);position:relative}.legal-list li:before{content:"";left:calc(-1 * var(--space-4));background:var(--primary-ring);width:5px;height:1px;position:absolute;top:.75em}.legal-table-wrap{margin:0 0 var(--space-5);overflow-x:auto}.legal-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:1.55}.legal-table th,.legal-table td{padding:var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--border-light);color:var(--text-secondary)}.legal-table thead th{color:var(--text-primary);white-space:nowrap;font-weight:650}.legal-table tbody th{color:var(--text-primary);width:30%;font-weight:600}.legal-tldr{scroll-margin-top:calc(var(--space-16) + var(--space-4));margin-top:var(--space-16);padding:var(--space-8);border:1px solid var(--primary-edge);border-radius:var(--radius-lg);background:var(--primary-faint)}.legal-tldr-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.legal-tldr-tag{padding:3px var(--space-2);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-ink);font-family:var(--font-mono);letter-spacing:.08em;font-size:10px;font-weight:700}.legal-tldr-head h2{font-size:var(--text-lg);letter-spacing:-.015em;margin:0;font-weight:650}.legal-tldr-lede{margin:0 0 var(--space-6);font-size:var(--text-md);color:var(--text-primary);line-height:1.65}.legal-tldr-list{margin:0;padding:0;list-style:none;display:grid}.legal-tldr-list li{gap:var(--space-4);padding:var(--space-4) 0 0;border-top:1px solid var(--primary-edge);font-size:var(--text-sm);grid-template-columns:15ch minmax(0,1fr);line-height:1.7;display:grid}.legal-tldr-list li+li{margin-top:var(--space-4)}.legal-tldr-list strong{color:var(--text-primary);font-weight:600}.legal-tldr-list span{color:var(--text-secondary)}.legal-tldr-foot{margin:var(--space-6) 0 0;padding-top:var(--space-5);border-top:1px solid var(--primary-edge);font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.7}.legal-index{margin:var(--space-6) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.legal-index a{padding:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-lg);transition-property:border-color,background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);text-decoration:none;display:block}.legal-index a:hover{border-color:var(--primary);background:var(--bg-secondary)}.legal-index strong{color:var(--text-primary);font-size:var(--text-base);display:block}.legal-index span{color:var(--text-tertiary);font-size:var(--text-sm)}.legal-footer{border-top:1px solid var(--border-light);padding:var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.legal-footer p{margin:0 0 var(--space-2)}.legal-footer a{color:var(--text-secondary)}.legal-footer a:hover{color:var(--text-primary)}@media (max-width:900px){.legal-shell{padding:var(--space-6) var(--space-5) var(--space-12);grid-template-columns:minmax(0,1fr);gap:0}.legal-aside-inner{max-height:none;padding:0 0 var(--space-6);position:static;overflow:visible}.legal-main{max-width:none}.legal-tldr{padding:var(--space-6) var(--space-5)}.legal-tldr-list li{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}}.legal-disclosure{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-secondary)}.legal-disclosure>summary{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);cursor:pointer;font-weight:600;list-style:none;display:flex}.legal-disclosure>summary::-webkit-details-marker{display:none}.legal-disclosure>summary:after{content:"";opacity:.5;width:7px;height:7px;transition:transform var(--duration-fast) var(--ease-out);border-bottom:1.5px solid;border-right:1.5px solid;transform:rotate(45deg)translate(-2px,-2px)}.legal-disclosure[open]>summary:after{transform:rotate(225deg)translate(-2px,-2px)}.legal-disclosure-body{padding:0 var(--space-4) var(--space-4)}@media (min-width:901px){.legal-disclosure{background:0 0;border:none}.legal-disclosure>summary{display:none}.legal-disclosure-body{padding:0;display:block}.legal-disclosure::details-content{content-visibility:visible;block-size:auto}}.prose-page{color:#efeeeb;--primary-text:var(--primary-text-dk,var(--primary-light));--ink-muted:#988f86;--prose-measure:760px;background:#141210;flex-direction:column;min-height:100vh;display:flex}.prose-topbar{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141210d1;border-bottom:1px solid #ffffff12;display:flex;position:sticky;top:0}.prose-brand{align-items:center;gap:var(--space-2);color:#efeeeb;font-weight:650;text-decoration:none;display:inline-flex}.prose-mark{border-radius:var(--radius-sm);background:var(--primary);width:24px;height:24px;color:var(--primary-ink);place-items:center;display:grid}.prose-topbar-links{align-items:center;gap:var(--space-5);display:flex}.prose-topbar-link{font-size:var(--text-sm);color:#958d83;transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.prose-topbar-link:hover{color:#e9e6e2}.prose-topbar-cta{color:#efeeeb;font-weight:600}.prose-main{width:100%;max-width:var(--prose-measure);padding:var(--space-16) var(--space-6) var(--space-20);flex:1;margin:0 auto}.prose-main-wide{--prose-measure:980px}.prose-main-wide .prose-section>p,.prose-main-wide .prose-head p{max-width:72ch}.prose-head{margin-bottom:var(--space-12)}.prose-head h1{font-size:var(--text-3xl);letter-spacing:-.03em;font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-5);max-width:22ch}.prose-head p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:#a19a91}.prose-lede{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:#b4aea7}.prose-head a,.prose-section a:not(.btn){color:#e4e1dd;text-underline-offset:3px;transition:text-decoration-color var(--duration-fast) var(--ease-out);-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40}.prose-head a:hover,.prose-section a:not(.btn):hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.prose-jump{gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.prose-jump a{padding:6px var(--space-3);font-size:var(--text-sm);color:#a69f96;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #ffffff1f;border-radius:999px;text-decoration:none}.prose-jump a:hover{color:#edebe8;border-color:#ffffff47}.prose-section{margin-top:var(--space-16);scroll-margin-top:calc(var(--space-16) + var(--space-4))}.prose-section h2{font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid #ffffff14;font-weight:600}.prose-section>p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:#afa9a1;margin-bottom:var(--space-4)}.prose-section>p:last-child{margin-bottom:0}.prose-caveat{padding-left:var(--space-5);border-left:2px solid #ffffff29}.faq-open-list{border-top:1px solid #ffffff12;margin:0}.faq-open-item{padding:var(--space-6) 0;border-bottom:1px solid #ffffff12}.faq-open-item dt{font-size:var(--text-base);color:#edebe8;margin-bottom:var(--space-3);font-weight:600}.faq-open-item dd{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#a69f96;max-width:68ch;margin:0}.prose-main-wide .compare-table{table-layout:fixed}.prose-main-wide .compare-table th:first-child{width:46%}@media (max-width:768px){.prose-main-wide .compare-table th:first-child{width:56%}}.prose-main-wide .compare-table tbody th,.prose-main-wide .compare-table tbody td{vertical-align:top}.compare-row-note{margin-top:var(--space-2);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--ink-muted);max-width:46ch;font-weight:400;display:block}.theirs-list{gap:var(--space-6);margin-top:var(--space-8);display:grid}.theirs-item h3{font-size:var(--text-base);margin-bottom:var(--space-2);color:#edebe8;font-weight:600}.theirs-item p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#a19a91;max-width:68ch}.prose-cta-row{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.prose-cta .btn-secondary{color:#e4e1dd;background:0 0;border:1px solid #ffffff29}.prose-cta .btn-secondary:hover{color:#f4f3f1;background:#ffffff0d;border-color:#ffffff47}.prose-onward{gap:var(--space-4);margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid #ffffff14;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.prose-onward a,.pricing-onward a{padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);border:1px solid #ffffff1a;text-decoration:none;display:block}.prose-onward a:hover,.pricing-onward a:hover{background:#ffffff05;border-color:#ffffff38}.prose-onward a strong,.pricing-onward a strong{font-size:var(--text-sm);color:#edebe8;margin-bottom:var(--space-1);font-weight:600;display:block}.prose-onward a span,.pricing-onward a span{font-size:var(--text-xs);line-height:var(--leading-relaxed);color:#8e857b;display:block}.pricing-onward{gap:var(--space-4);max-width:var(--pricing-measure);margin:var(--space-16) auto 0;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.prose-footer{padding:var(--space-12) var(--space-6);border-top:1px solid #ffffff12}.prose-footer-cols{gap:var(--space-8);max-width:var(--prose-measure);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0 auto;display:grid}.prose-footer-col{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.prose-footer-col h2{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-1);font-size:10px;font-weight:600}.prose-footer-col a{font-size:var(--text-sm);color:#9c948b;transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.prose-footer-col a:hover{color:#e9e6e2}@media (max-width:700px){.prose-main{padding:var(--space-10) var(--space-5) var(--space-16)}.prose-head h1{font-size:var(--text-2xl);max-width:none}.prose-section{margin-top:var(--space-12)}.compare-row-note{max-width:32ch}}.auth-page{min-height:100vh;padding:var(--space-8) var(--space-6);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:380px}.auth-brand{align-items:center;gap:var(--space-2);margin-bottom:var(--space-10);color:var(--text-primary);font-weight:600;font-size:var(--text-sm);letter-spacing:-.01em;display:inline-flex}.auth-brand svg,.auth-brand:hover{color:var(--primary-text)}.auth-title{font-size:var(--text-2xl);letter-spacing:-.02em;margin-bottom:var(--space-2);font-weight:700}.auth-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-7)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-form-group{gap:var(--space-2);flex-direction:column;display:flex}.auth-form-group label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:600}.auth-select{appearance:none;cursor:pointer;padding-right:var(--space-8);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px}.auth-optional{color:var(--text-tertiary);font-weight:400;font-size:var(--text-xs);margin-left:var(--space-1)}.auth-divider{align-items:center;gap:var(--space-4);color:var(--text-tertiary);font-size:var(--text-sm);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-social-btn{justify-content:center;align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;height:44px;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);font-weight:500;display:flex}.auth-social-btn:hover{background:var(--bg-tertiary);border-color:var(--border-focus)}.auth-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--error);font-size:var(--text-sm);margin-bottom:var(--space-4);background:#ef43431a;border:1px solid #ef434333}.auth-submit{width:100%;margin-top:var(--space-2)}.auth-divider{margin:var(--space-6) 0}.auth-alt{margin-top:var(--space-6);font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.auth-alt a{color:var(--primary-text);font-weight:600}.boards-page{padding:var(--space-8);padding-top:calc(var(--toolbar-height) + var(--space-8) + var(--space-3));margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--duration-slow) var(--ease-out)}.boards-header{margin-bottom:var(--space-8);justify-content:space-between;align-items:center;display:flex}.boards-title{font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700}.boards-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-top:4px}.boards-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.boards-tree,.boards-skeletons{gap:var(--space-5);flex-direction:column;display:flex}.board-skeleton{border-radius:var(--radius-xl);border:1px solid var(--border);background:linear-gradient(90deg, var(--bg-card) 0%, var(--bg-tertiary) 50%, var(--bg-card) 100%);background-size:200% 100%;height:88px;animation:1.4s ease-in-out infinite boardSkeleton}@keyframes boardSkeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.board-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);transition:border-color var(--duration-fast) var(--ease-out)}.board-group:hover{border-color:var(--primary)}.board-group-head{align-items:center;gap:var(--space-3);cursor:pointer;border-radius:var(--radius-md);display:flex}.board-group-head:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.board-group-text{flex:1;min-width:0}.board-group-name{align-items:center;gap:var(--space-2);font-weight:700;font-size:var(--text-lg);display:flex}.board-home-pill{font-size:var(--text-xs);background:var(--primary-alpha);color:var(--primary-text);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.board-group-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.board-group-actions{gap:var(--space-2);opacity:1;transition:opacity var(--duration-fast) var(--ease-out);display:flex}@media (hover:hover) and (pointer:fine){.board-group-actions{opacity:0}.board-group:hover .board-group-actions,.board-group:focus-within .board-group-actions{opacity:1}}.board-subgrid{margin-top:var(--space-4);padding-left:var(--space-8);border-left:2px dashed var(--border);gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.board-subcard{padding:var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;align-items:center;gap:var(--space-2);transition:border-color var(--duration-fast) var(--ease-out);display:flex}.board-subcard:hover{border-color:var(--primary)}.board-subcard:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.board-subcard-text{flex:1;min-width:0}.board-subcard-name{font-weight:600;font-size:var(--text-sm)}.board-subcard-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.boards-empty{text-align:center;padding:var(--space-16) var(--space-6);border:1px dashed var(--border);border-radius:var(--radius-xl)}.boards-empty-mark{color:var(--text-tertiary);margin-bottom:var(--space-3)}.boards-empty h2{font-size:var(--text-lg);margin-bottom:var(--space-2);font-weight:700}.boards-empty p{color:var(--text-secondary);font-size:var(--text-sm);max-width:380px;margin:0 auto var(--space-5);line-height:1.6}@media (max-width:720px){.boards-header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.board-group-head{flex-wrap:wrap}.board-group-actions{opacity:1;width:100%}.board-subgrid{padding-left:var(--space-4)}}.board-preview-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);overflow:hidden}.board-preview-card:hover{border-color:var(--primary);background:var(--bg-tertiary)}.board-preview-thumb{background:var(--canvas-bg);height:160px;position:relative;overflow:hidden}.board-preview-info{padding:var(--space-4)}.board-preview-title{font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-1)}.board-preview-meta{font-size:var(--text-xs);color:var(--text-tertiary);align-items:center;gap:var(--space-3);display:flex}.board-new-card{border:2px dashed var(--border);border-radius:var(--radius-xl);cursor:pointer;min-height:220px;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);color:var(--text-tertiary);justify-content:center;align-items:center;gap:var(--space-3);background:0 0;flex-direction:column;display:flex}.board-new-card:hover{border-color:var(--primary);color:var(--primary-text);background:var(--primary-alpha)}.note-editor{padding:var(--space-3);min-height:60px;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-primary);cursor:text;word-wrap:break-word;outline:none}.note-editor:empty:before{content:"Type a note...";color:var(--text-tertiary)}.note-editor h1{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:700}.note-editor h2{font-size:var(--text-lg);margin-bottom:var(--space-2);font-weight:700}.note-editor h3{font-size:var(--text-md);margin-bottom:var(--space-1);font-weight:600}.note-editor ul,.note-editor ol{padding-left:var(--space-5);margin:var(--space-1) 0}.note-editor code{font-family:var(--font-mono);background:var(--bg-tertiary);border-radius:var(--radius-xs);padding:1px 4px;font-size:.85em}.note-format-bar{align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;animation:fadeIn var(--duration-fast) var(--ease-out);display:flex;position:absolute;top:-44px;left:50%;transform:translate(-50%)}.image-card-preview{aspect-ratio:4/3;object-fit:cover;border-radius:0 0 var(--radius-lg) var(--radius-lg);width:100%;display:block}.image-card-caption{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);border-top:1px solid var(--border-light)}.image-upload-zone{padding:var(--space-8);justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-tertiary);font-size:var(--text-sm);border:2px dashed var(--border);border-radius:var(--radius-md);min-height:120px;margin:var(--space-3);transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);flex-direction:column;display:flex}.image-upload-zone.dragover{border-color:var(--primary);background:var(--primary-alpha);color:var(--primary-text)}.image-upload-zone.failed{border-color:var(--error);color:var(--error);background:color-mix(in srgb, var(--error) 6%, transparent)}.upload-retry{font-size:var(--text-xs);opacity:.75;text-decoration:underline}.image-link-trigger{align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;display:inline-flex}.image-link-trigger:hover{color:var(--primary-text);border-color:var(--primary)}.image-link-form{gap:var(--space-2);padding:var(--space-4);margin:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);flex-direction:column;display:flex}.image-link-label{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-secondary);font-weight:600;display:inline-flex}.image-link-input{width:100%;padding:var(--space-2);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.image-link-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-alpha);outline:none}.image-link-error{font-size:var(--text-xs);color:var(--error)}.image-link-actions{gap:var(--space-2);display:flex}.image-link-note{font-size:var(--text-xs);color:var(--text-tertiary)}.upload-upsell{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);margin:var(--space-3);text-align:center;color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);flex-direction:column;display:flex}.upload-upsell strong{font-size:var(--text-sm);color:var(--text-primary)}.upload-upsell p{font-size:var(--text-xs);max-width:30ch;margin:0;line-height:1.5}.image-card-shell{border-radius:inherit;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.card-upload-veil{justify-content:center;align-items:center;gap:var(--space-2);background:color-mix(in srgb, var(--bg-primary) 62%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-size:var(--text-xs);color:var(--text-secondary);border-radius:inherit;pointer-events:none;display:flex;position:absolute;inset:0}.card-upload-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite cardUploadSpin}@keyframes cardUploadSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.card-upload-spinner{animation-duration:2.4s}}.file-card{position:relative}.file-card-body{padding:var(--space-4);align-items:center;gap:var(--space-3);display:flex}.file-card-icon{font-size:var(--text-2xl);flex-shrink:0;line-height:1}.file-card-text{flex:1;min-width:0}.file-card-name{font-weight:500;font-size:var(--text-sm)}.file-card-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.pdf-card{flex-direction:column;height:100%;min-height:0;display:flex}.pdf-card-stage{background:var(--bg-secondary);min-height:0;padding:var(--space-2);flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.pdf-card-page,.pdf-reader-page{justify-content:center;width:100%;display:flex}.pdf-canvas{border-radius:var(--radius-sm);max-width:100%;box-shadow:var(--shadow-sm);background:#fff;display:block}.pdf-card-loading,.pdf-card-error{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--space-6);text-align:center;flex-direction:column;margin:auto;display:flex}.pdf-card-error{color:var(--error)}.pdf-card-nav{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2);border-top:1px solid var(--border-light);font-size:var(--text-xs);color:var(--text-secondary);flex-shrink:0;display:flex}.pdf-card-page-input{text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);width:3.4em;color:var(--text-primary);font-size:var(--text-xs);appearance:textfield;padding:2px 4px}.pdf-card-page-input::-webkit-outer-spin-button{appearance:none;margin:0}.pdf-card-page-input::-webkit-inner-spin-button{appearance:none;margin:0}.pdf-card-page-total{color:var(--text-tertiary)}.pdf-reader{z-index:2000;animation:fadeIn var(--duration-fast) var(--ease-out);background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}.pdf-reader-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg-primary);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.pdf-reader-name{font-size:var(--text-sm);color:var(--text-primary);min-width:0;font-weight:500}.pdf-reader-tools{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.pdf-reader-count{font-size:var(--text-xs);color:var(--text-secondary);text-align:center;font-variant-numeric:tabular-nums;min-width:4.5em}.pdf-reader-stage{min-height:0;padding:var(--space-6);flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.pdf-reader-page{max-width:900px}@media (max-width:720px){.pdf-reader-stage{padding:var(--space-3)}.pdf-reader-name{display:none}.pdf-reader-bar{justify-content:center}}.link-card-preview{flex-direction:column;display:flex}.link-card-image{object-fit:cover;width:100%;height:140px}.link-card-info{padding:var(--space-3)}.link-card-domain{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-2);display:flex}.link-card-domain img{border-radius:var(--radius-xs);flex-shrink:0;width:14px;height:14px}.link-card-domain span{min-width:0}.link-card-refresh{cursor:pointer;color:inherit;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:none;margin-left:auto;padding:0;display:inline-flex}.link-card-preview:hover .link-card-refresh,.link-card-refresh:focus-visible{opacity:1}@media (hover:none){.link-card-refresh{opacity:1}}.link-card-refresh+a{color:inherit;display:inline-flex}.spin{animation:.8s linear infinite cardUploadSpin}.link-card-empty{padding:var(--space-3)}.link-card-empty-head{padding:0 0 var(--space-2) 0;border:none}.link-card-status{text-align:center;padding:var(--space-2);color:var(--text-tertiary);font-size:var(--text-xs)}.link-card-title{font-size:var(--text-sm);margin-bottom:var(--space-1);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.link-card-description{font-size:var(--text-xs);color:var(--text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.task-list{padding:var(--space-2) var(--space-3)}.task-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.task-checkbox{border-radius:var(--radius-xs);border:2px solid var(--border);cursor:pointer;width:18px;height:18px;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);color:#0000;background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;display:flex}.task-checkbox:hover{border-color:var(--primary)}.task-checkbox.checked{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.task-text{font-size:var(--text-sm);width:100%;min-width:0;color:inherit;background:0 0;border:none;outline:none;flex:1;padding:1px 0;font-family:inherit;line-height:1.4}.task-count{color:var(--text-tertiary);font-weight:400;font-size:var(--text-xs)}.task-remove{opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.task-item:hover .task-remove,.task-remove:focus-visible{opacity:.6}.task-add{text-align:left;background:0 0;border:none;width:100%;font-family:inherit}.task-text.completed{color:var(--text-tertiary);text-decoration:line-through}.task-progress{background:var(--bg-tertiary);border-radius:var(--radius-full);height:3px;margin:var(--space-2) var(--space-3) var(--space-3);overflow:hidden}.task-progress-bar{background:var(--primary);border-radius:var(--radius-full);height:100%;transition:width var(--duration-normal) var(--ease-out)}.task-add{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);color:var(--text-tertiary);font-size:var(--text-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);display:flex}.task-add:hover{color:var(--primary-text)}.color-swatch-preview{cursor:pointer;width:100%;height:100px;transition:height var(--duration-fast) var(--ease-out)}.color-swatch-info{padding:var(--space-2) var(--space-3);justify-content:space-between;align-items:center;display:flex}.color-swatch-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer}.color-swatch-value:hover{color:var(--primary-text)}.code-card-header{padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.code-card-lang{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary)}.code-card-body{padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre;tab-size:2;color:var(--text-primary);max-height:300px;line-height:1.6;overflow:auto}.code-card-body code{font-family:inherit}.video-card-embed{aspect-ratio:16/9;border-radius:0 0 var(--radius-lg) var(--radius-lg);border:none;width:100%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}.animate-slide-down{animation:slideDown var(--duration-normal) var(--ease-out)}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-out)}.settings-page{padding:var(--space-8);padding-top:calc(var(--toolbar-height) + var(--space-8) + var(--space-3));margin-left:var(--sidebar-width);max-width:700px;transition:margin-left var(--duration-slow) var(--ease-out)}.settings-section{padding:var(--space-6) 0;border-bottom:1px solid var(--border)}.settings-section-title{font-size:var(--text-lg);margin-bottom:var(--space-1);padding-left:var(--space-3);border-left:3px solid var(--primary);font-weight:700;line-height:1.3}.settings-section-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-5);padding-left:calc(var(--space-3) + 3px)}.settings-section.last{border-bottom:none}.settings-title{font-size:var(--text-2xl);letter-spacing:-.02em;margin-bottom:var(--space-1);font-weight:700}.settings-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-8)}.settings-section-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.settings-form{gap:var(--space-4);flex-direction:column;max-width:420px;display:flex}.settings-form .input:disabled{opacity:.6;cursor:not-allowed}.settings-save{align-self:flex-start}.setting-row{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-4) 0;border-top:1px solid var(--border);display:flex}.setting-row:first-of-type{border-top:none}.setting-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-row-label{align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:600;display:flex}.setting-row-hint{font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-relaxed)}.setting-choices{gap:var(--space-1);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-shrink:0;padding:3px;display:flex}.setting-choice{align-items:center;gap:var(--space-2);padding:6px var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);background:0 0;border:none;font-weight:500;display:inline-flex}.setting-choice:hover{color:var(--primary-text)}.setting-choice.active{background:var(--bg-elevated);color:var(--primary-text);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--primary-edge)}.accent-swatches{gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;display:flex}.accent-swatch{border-radius:var(--radius-full);background:var(--swatch);color:#fff;cursor:pointer;width:26px;height:26px;transition:transform var(--duration-fast) var(--ease-out);border:2px solid #0000;justify-content:center;align-items:center;padding:0;display:flex}.accent-swatch:hover{transform:scale(1.12)}.accent-swatch.active{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--swatch);color:var(--primary-ink)}.accent-swatch-custom{color:#2b2112;background:conic-gradient(from .5turn,#dd3c3c,#dddd3c,#3cdd3c,#3cdddd,#3c3cdd,#dd3cdd,#dd3c3c)}.accent-swatch-custom.active{background:var(--swatch)}.accent-custom{gap:var(--space-4);padding:var(--space-4);margin-bottom:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-lg);flex-direction:column;display:flex}.accent-sliders{gap:var(--space-3);display:grid}.accent-slider{align-items:center;gap:var(--space-3);grid-template-columns:5.5rem 1fr 3rem;display:grid}.accent-slider label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.accent-slider output{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);text-align:right;font-variant-numeric:tabular-nums}.accent-slider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.accent-slider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--radius-full);background:var(--track);height:10px;box-shadow:inset 0 0 0 1px var(--border)}.accent-slider input[type=range]::-moz-range-track{border-radius:var(--radius-full);background:var(--track);height:10px;box-shadow:inset 0 0 0 1px var(--border)}.accent-slider input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #19140f80;margin-top:-3px}.accent-slider input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #19140f80}.accent-slider input[type=range]:focus-visible{outline:none}.accent-slider input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:var(--shadow-sm), 0 0 0 3px var(--primary-ring)}.accent-slider input[type=range]:focus-visible::-moz-range-thumb{box-shadow:var(--shadow-sm), 0 0 0 3px var(--primary-ring)}.accent-preview{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.accent-preview-fill{padding:6px var(--space-3);border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-ink);font-size:var(--text-xs);font-weight:600}.accent-preview-text{color:var(--primary-text);font-size:var(--text-sm);text-underline-offset:2px;font-weight:600;text-decoration:underline}.accent-preview-note{min-width:0;font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-relaxed);flex:12rem}.settings-plan-card{padding:var(--space-5);background:var(--primary-faint);border:1px solid var(--primary-edge);border-radius:var(--radius-lg);max-width:420px}.settings-plan-name{text-transform:capitalize;margin-bottom:var(--space-1);color:var(--primary-text);font-weight:700}.settings-plan-card p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.settings-referral{justify-content:space-between;align-items:center;gap:var(--space-6);max-width:420px;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--primary-edge);display:flex}.settings-code{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.14em;color:var(--text-primary);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out);display:inline-flex}.settings-code:hover{border-color:var(--primary);color:var(--primary-text)}.settings-shortcut:hover .settings-shortcut-keys{color:var(--primary-text)}.settings-shortcuts{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.settings-shortcut{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-sm);display:flex}.settings-shortcut-keys{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.settings-danger{margin:var(--space-2) 0 var(--space-5);padding:var(--space-4);border:1px solid var(--error);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--error) 6%, transparent);max-width:480px}.settings-danger p{margin:0 0 var(--space-3);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary)}.settings-danger .input{font-family:var(--font-mono);letter-spacing:.02em}.settings-danger-actions{gap:var(--space-2);margin-top:var(--space-3);display:flex}.settings-legal-links{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.settings-legal-link{padding:var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.settings-legal-link:hover{border-color:var(--border)}.settings-legal-link strong{font-size:var(--text-sm);font-weight:600}.settings-legal-link span,.settings-legal-foot{font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-relaxed)}.settings-legal-foot a{color:var(--text-secondary)}.settings-section-desc kbd{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border);padding:2px 6px;font-size:11px}.team-panel,.team-empty{gap:var(--space-4);flex-direction:column;max-width:420px;display:flex}.team-note{font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-relaxed)}.team-members{border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.team-member{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.team-member:last-child{border-bottom:0}.team-member-who{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.team-member-role,.team-role{flex:none;width:88px}.team-member-action{flex:none;justify-content:flex-end;min-width:38px;display:flex}.team-member-name{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;display:flex}.team-member-email{font-size:var(--text-xs);color:var(--text-tertiary)}.team-name{text-transform:none}.team-member-you{padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--primary-faint);border:1px solid var(--primary-edge);text-transform:uppercase;letter-spacing:.04em;color:var(--primary-text);font-size:10px;font-weight:600}.team-member-role{font-size:var(--text-xs);text-transform:capitalize;color:var(--text-tertiary)}.team-role{width:auto;padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.team-invite{opacity:.72}.perks-panel{gap:var(--space-4);max-width:420px;margin-top:var(--space-4);flex-direction:column;display:flex}.perks-list{border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.perk-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.perk-row:last-child{border-bottom:0}.perk-amount{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--success,#2eb877)}.perk-amount.spent{color:var(--text-tertiary)}.review-form{gap:var(--space-3);flex-direction:column;max-width:520px;display:flex}.review-textarea{resize:vertical;min-height:96px;line-height:var(--leading-relaxed)}.review-form-actions{align-items:center;gap:var(--space-3);display:flex}.review-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);flex:1}.review-removed-note{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--text-secondary);background:#d9262614;border:1px solid #d9262638}.join-page{min-height:100vh;padding:var(--space-6);margin-left:var(--sidebar-width);transition:margin-left var(--duration-slow) var(--ease-out);place-items:center;display:grid}.join-card{gap:var(--space-4);max-width:440px;padding:var(--space-8);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.join-card h1{font-size:var(--text-xl);font-weight:700}.join-card p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary)}.join-card>svg{color:var(--primary-text)}.join-actions{gap:var(--space-3);display:flex}.join-error{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);color:var(--error);background:#d9262614;border:1px solid #d9262638;display:flex}.join-note{font-size:var(--text-xs);color:var(--text-tertiary)}@media (max-width:640px){.setting-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.setting-choices{align-self:flex-start}}.welcome-shell{background:var(--bg-primary);min-height:100vh}.welcome-main{max-width:660px;padding:var(--space-16) var(--space-6) var(--space-20);margin:0 auto}.welcome-eyebrow{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-2)}.welcome-main h1{font-size:var(--text-3xl);margin-bottom:var(--space-3);line-height:1.15}.welcome-lede{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--text-secondary);margin-bottom:var(--space-10)}.welcome-steps{gap:var(--space-6);margin-bottom:var(--space-10);flex-direction:column;padding:0;list-style:none;display:flex}.welcome-steps li{gap:var(--space-4);display:flex}.welcome-step-num{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border);width:26px;height:26px;font-size:var(--text-xs);color:var(--text-secondary);flex:none;place-items:center;font-weight:600;display:grid}.welcome-steps h2{font-size:var(--text-base);margin-bottom:var(--space-1);font-weight:600}.welcome-steps p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary)}.welcome-note{padding:var(--space-5);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-8)}.welcome-note h2{font-size:var(--text-base);margin-bottom:var(--space-2);font-weight:600}.welcome-note p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary)}.welcome-note p+p{margin-top:var(--space-3)}.welcome-actions{gap:var(--space-3);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.welcome-foot{font-size:var(--text-xs);color:var(--text-tertiary)}.connect-main{padding-top:var(--space-10);max-width:520px}.connect-id{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-6)}.connect-id code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border);padding:2px 6px;font-size:11px}.connect-error{font-size:var(--text-sm);color:var(--error);margin-bottom:var(--space-4)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}@media (max-width:768px){:root,body{--sidebar-width:0px}body:not([data-sidebar=expanded]) .sidebar{transform:translate(-100%)}body[data-sidebar=expanded] .sidebar{z-index:9999;width:260px;transform:translate(0);box-shadow:0 0 50px #0009}.boards-page,.settings-page{padding:var(--space-4);padding-top:calc(var(--toolbar-height) + var(--space-4));margin-left:0!important}.toolbar{left:var(--space-2);right:var(--space-2)}.pricing-grid{grid-template-columns:1fr}.pricing-card{padding:var(--space-7) 0 0;border-top:1px solid #ffffff14;border-left:0}.pricing-card:first-child{padding-top:var(--space-2);border-top:0}.compare-table{min-width:0}.compare-table th,.compare-table td{padding:var(--space-3) var(--space-2);font-size:var(--text-xs);vertical-align:top}.compare-table thead th:first-child,.compare-table tbody th{padding-left:0}.compare-table th:last-child,.compare-table td:last-child{padding-right:0}}.toolbar-title{align-items:center;gap:var(--space-2);flex:0 auto;min-width:0;display:flex}.toolbar-title-icon{font-size:var(--text-lg);flex-shrink:0;line-height:1}.toolbar-title-input{border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-base);color:var(--text-primary);text-overflow:ellipsis;width:180px;min-width:44px;transition:border-color var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;outline:none;padding:4px 6px}.toolbar-title-input:hover{border-color:var(--border)}.toolbar-title-input:focus{border-color:var(--primary)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.toolbar-menu-anchor{position:relative}.toolbar-dropdown{min-width:220px;padding:var(--space-2);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-context-menu);animation:menuIn var(--duration-fast) var(--ease-out);position:absolute;top:calc(100% + 8px);left:0}.toolbar-dropdown-scroll{max-height:360px;overflow-y:auto}.toolbar-appearance{width:264px}.toolbar-swatches{min-width:0;max-width:232px;padding:0 var(--space-2) var(--space-1);flex-wrap:wrap;gap:6px;display:flex}.toolbar-swatch{border:1px solid var(--border);cursor:pointer;width:24px;height:24px;transition:transform var(--duration-fast) var(--ease-out);border-radius:50%}.toolbar-swatch:hover{transform:scale(1.15)}.toolbar-zoom-value{min-width:52px;font-family:var(--font-mono);font-size:var(--text-xs);justify-content:center}.toolbar-placing{align-items:center;gap:var(--space-2);background:var(--primary-alpha);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--primary-text);white-space:nowrap;padding:4px 12px;font-weight:600;display:flex}.toolbar-placing button{color:inherit;cursor:pointer;background:0 0;border:none;font-size:12px}.save-indicator{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;align-items:center;gap:6px;display:flex}.save-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.save-saving .save-dot{background:var(--warning);animation:pulseDot 1s var(--ease-out) infinite}.save-saved .save-dot{background:var(--success)}.save-error{color:var(--error)}.save-error .save-dot{background:var(--error)}.save-offline{color:var(--warning)}.save-offline .save-dot{background:var(--warning);animation:pulseDot 2s var(--ease-out) infinite}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.3}}.canvas-connections{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.connection-hitbox{pointer-events:stroke;cursor:pointer}.canvas-empty{pointer-events:none;padding:var(--space-6);place-items:center;display:grid;position:absolute;inset:0}.canvas-empty-inner{pointer-events:auto;align-items:center;gap:var(--space-3);text-align:center;max-width:460px;animation:fadeIn var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.canvas-empty-icon{color:var(--primary-text);opacity:.8;font-size:34px}.canvas-empty-title{font-size:var(--text-xl);color:var(--text-primary);margin:0;font-weight:700}.canvas-empty-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.6}.canvas-empty-grid{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.canvas-empty-chip{font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);align-items:center;gap:6px;padding:8px 14px;display:flex}.canvas-empty-chip:hover{color:var(--text-primary);border-color:var(--primary);background:var(--bg-tertiary)}.canvas-empty-chip-icon{font-size:var(--text-base);line-height:1}.palette-overlay{background:var(--bg-overlay);z-index:var(--z-modal-backdrop);animation:fadeIn var(--duration-fast) var(--ease-out);justify-content:center;align-items:flex-start;padding-top:14vh;display:flex;position:fixed;inset:0}.palette{width:min(620px, calc(100vw - var(--space-6)));background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);max-height:62vh;box-shadow:var(--shadow-xl);animation:slideDown var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.palette-search{align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);display:flex}.palette-search-icon{color:var(--text-tertiary);font-size:var(--text-sm);display:flex}.palette-input{font-size:var(--text-base);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.palette-input::placeholder{color:var(--text-tertiary)}.palette-esc{border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono);padding:2px 6px}.palette-list{padding:var(--space-2);overflow-y:auto}.palette-group{padding:var(--space-2) var(--space-3) 4px;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:700}.palette-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;font-family:inherit;display:flex}.palette-item.active{background:var(--primary-alpha)}.palette-item-icon{text-align:center;flex-shrink:0;width:20px}.palette-item-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.palette-item-hint,.palette-item-key{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono);flex-shrink:0}.palette-empty{padding:var(--space-6);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.shortcuts-modal{max-width:720px;width:min(720px, calc(100vw - var(--space-6)));max-height:80vh;padding:var(--space-5);overflow-y:auto}.shortcuts-grid{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.shortcuts-section-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin:0 0 var(--space-2);font-weight:700}.shortcuts-row{justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);padding:5px 0;display:flex}.shortcuts-keys{flex-shrink:0;gap:4px;display:flex}.modal-close{color:var(--text-tertiary);cursor:pointer;font-size:var(--text-base);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px}.modal-close:hover{color:var(--text-primary);background:var(--primary-alpha)}kbd{min-width:20px;font-family:var(--font-mono);text-align:center;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xs);border-bottom-width:2px;padding:2px 6px;font-size:11px;line-height:1.4;display:inline-block}.toast-icon{flex-shrink:0;place-items:center;display:grid}.toast-message{flex:1}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--error)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--primary-text)}.board-status{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6);color:var(--text-secondary);background:var(--bg-base,var(--bg-elevated));flex-direction:column;display:flex;position:fixed;inset:0}.board-status h2{font-size:var(--text-xl);color:var(--text-primary);margin:0}.board-status p{font-size:var(--text-sm);max-width:380px;margin:0}.board-status-mark{color:var(--text-tertiary)}.board-status-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}.note-editor:empty:before{content:attr(data-placeholder);color:var(--text-tertiary);pointer-events:none}.table-card{flex-direction:column;height:100%;min-height:0;display:flex}.table-card-scroll{flex:1;min-height:0;overflow:auto}.table-card table{border-collapse:collapse;table-layout:fixed;width:100%}.table-card td{border:1px solid var(--border-light);padding:0}.table-card td input{width:100%;padding:var(--space-1) var(--space-2);font:inherit;font-size:var(--text-sm);color:var(--text-primary);background:0 0;border:0;min-width:0}.table-card td input:focus{outline:2px solid var(--primary);outline-offset:-2px;background:var(--bg-card)}.table-card-head td{background:var(--bg-secondary)}.table-card-head td input{color:var(--text-primary);font-weight:600}.table-card-controls{gap:var(--space-1);padding-top:var(--space-2);flex-wrap:wrap;display:flex}.shape-card{width:100%;height:100%;position:relative}.shape-card-body{pointer-events:none;position:absolute;inset:0}.shape-card-label{text-align:center;width:100%;font:inherit;font-weight:600;font-size:var(--text-base);color:var(--text-primary);padding:var(--space-2);background:0 0;border:0;position:absolute;inset:0}.shape-card-label:focus{outline:none}.shape-card-toolbar,.divider-card-toolbar{top:calc(100% + var(--space-2));align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);white-space:nowrap;z-index:var(--z-card-dragging);display:flex;position:absolute;left:50%;transform:translate(-50%)}.shape-card-toolbar input[type=color],.progress-card-inputs input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:24px;height:24px;padding:0}.shape-card-toolbar input[type=range]{width:72px}.callout-card{gap:var(--space-2);border-left:3px solid var(--callout-accent,var(--primary));background:color-mix(in srgb, var(--callout-accent,var(--primary)) 8%, transparent);border-radius:var(--radius-sm);height:100%;padding:var(--space-2) var(--space-3);flex-direction:column;display:flex}.callout-card-head{align-items:center;gap:var(--space-2);display:flex}.callout-card-emoji{font-size:var(--text-lg);line-height:1}.callout-card-tones{gap:4px;margin-left:auto;display:flex}.callout-tone{border-radius:var(--radius-full);cursor:pointer;border:2px solid #0000;width:14px;height:14px;padding:0}.callout-tone.active{border-color:var(--text-primary)}.callout-card-text{resize:none;font:inherit;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-primary);background:0 0;border:0;flex:1;min-height:0}.callout-card-text:focus{outline:none}.quote-card{gap:var(--space-2);height:100%;padding-left:var(--space-6);flex-direction:column;margin:0;display:flex;position:relative}.quote-card-mark{color:var(--primary-text);opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:40px;line-height:1;position:absolute;top:-6px;left:0}.quote-card-text{resize:none;font:inherit;font-size:var(--text-md);font-style:italic;line-height:var(--leading-relaxed);color:var(--text-primary);background:0 0;border:0;flex:1;min-height:0}.quote-card-author{font:inherit;font-size:var(--text-sm);color:var(--text-secondary);background:0 0;border:0}.quote-card-text:focus,.quote-card-author:focus{outline:none}.progress-card{gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.progress-card-head{align-items:baseline;gap:var(--space-2);display:flex}.progress-card-label{min-width:0;font:inherit;font-weight:600;font-size:var(--text-base);color:var(--text-primary);background:0 0;border:0;flex:1}.progress-card-label:focus{outline:none}.progress-card-value{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-lg);color:var(--text-primary)}.progress-card-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:10px;overflow:hidden}.progress-card-fill{border-radius:var(--radius-full);height:100%;transition:width var(--duration-normal) var(--ease-out)}.progress-card-inputs{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);display:flex}.progress-card-inputs input[type=number]{width:64px;padding:2px var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:var(--text-xs);color:var(--text-primary)}.progress-card-linked{gap:var(--space-2);flex-direction:column;display:flex}.progress-card-hint{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--text-tertiary)}.progress-card-tally{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.progress-card-bulk{gap:var(--space-2);display:flex}.progress-card-bulk .btn{flex:1}.progress-card-partial{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;display:flex}.progress-card-partial input{accent-color:var(--primary);cursor:pointer}.checkmark-card{align-items:center;gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.canvas-card-checkmark{container:checkmark/inline-size}.checkmark-box{aspect-ratio:1;border:2px solid var(--border);border-radius:var(--radius-lg);color:#0000;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), transform var(--duration-fast) var(--ease-out);z-index:1;background:0 0;flex:none;justify-content:center;align-items:center;width:min(56px,60%);max-height:100%;padding:0;display:flex;position:relative}.checkmark-box:hover{border-color:var(--primary);transform:scale(1.05)}.checkmark-box:active{transform:scale(.96)}.checkmark-tick{width:62%;height:62%;transition:transform var(--duration-fast) var(--ease-out);transform:scale(.6)}.checkmark-card.is-checked .checkmark-box{background:var(--primary);border-color:var(--primary);color:var(--text-inverse)}.checkmark-card.is-checked .checkmark-tick{transform:scale(1)}.checkmark-label{color:var(--text-secondary);font-size:var(--text-sm);text-align:center;background:0 0;border:none;outline:none;width:100%;padding:0}.checkmark-label:focus,.checkmark-card.is-checked .checkmark-label{color:var(--text-primary)}@container checkmark (max-width:104px){.checkmark-card{gap:var(--space-1);padding:var(--space-2)}.checkmark-label{font-size:var(--text-xs)}}@container checkmark (max-width:72px){.checkmark-label{display:none}.checkmark-card{gap:0;padding:3px}.checkmark-box{border-radius:var(--radius-sm);border-width:1.5px;width:min(56px,88%)}}@container checkmark (max-width:40px){.checkmark-box{border-width:1px}}@media (prefers-reduced-motion:reduce){.checkmark-box,.checkmark-tick{transition:none}.checkmark-box:hover,.checkmark-box:active{transform:none}}.button-card{gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.button-card-fire{background:var(--primary);border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;font-size:var(--text-sm);align-items:center;gap:var(--space-2);padding:var(--space-3);transition:filter var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:none;justify-content:center;width:100%;font-weight:600;display:flex}.button-card-fire:hover{filter:brightness(1.08)}.button-card-fire:active{transform:translateY(1px)}.button-card-fire-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.button-card-config{gap:var(--space-2);flex-direction:column;display:flex}.button-card-label{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);width:100%}.button-card-label:focus{border-color:var(--primary);outline:none}.button-card-action{position:relative}.button-card-action-current{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--text-xs);align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);width:100%;display:flex}.button-card-action-current:hover{border-color:var(--primary);color:var(--text-primary)}.button-card-action-current svg{margin-left:auto}.button-card-action-list{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:20;margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0}.button-card-action-list button{border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;align-items:flex-start;gap:var(--space-2);padding:var(--space-1) var(--space-2);text-align:left;background:0 0;border:none;width:100%;display:flex}.button-card-action-list button:hover,.button-card-action-list button.is-active{background:var(--bg-tertiary)}.button-card-action-icon{color:var(--primary-text);font-size:var(--text-sm);line-height:var(--leading-tight);flex:none}.button-card-action-text{flex-direction:column;display:flex}.button-card-action-text strong{font-size:var(--text-xs);font-weight:600}.button-card-action-text small{color:var(--text-tertiary);font-size:10px;line-height:var(--leading-normal)}.button-card-wired{color:var(--text-tertiary);text-align:center;margin:0;font-size:10px}.checkbox-card{gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.checkbox-card-main{align-items:center;gap:var(--space-2);display:flex}.checkbox-card-box{border:2px solid var(--border);border-radius:var(--radius-sm);color:#0000;cursor:pointer;width:22px;height:22px;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;flex-shrink:0;place-items:center;padding:0;display:grid}.checkbox-card-box:hover{border-color:var(--primary)}.checkbox-card.is-checked .checkbox-card-box{border-color:var(--primary);background:var(--primary);color:var(--text-inverse)}.checkbox-card-label{min-width:0;font:inherit;color:var(--text-primary);background:0 0;border:0;flex:1;font-weight:500}.checkbox-card-label:focus{outline:none}.checkbox-card.is-checked .checkbox-card-label{color:var(--text-tertiary);text-decoration:line-through;text-decoration-thickness:1px}.checkbox-card-cog{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);flex-shrink:0}.canvas-card:hover .checkbox-card-cog,.canvas-card.selected .checkbox-card-cog,.checkbox-card-cog:focus-visible,.checkbox-card-cog[aria-expanded=true]{opacity:1}.checkbox-card-meta{align-items:center;gap:var(--space-1);flex-wrap:wrap;padding-left:30px;display:flex}.checkbox-chip{padding:1px var(--space-2) 1px var(--space-1);border-radius:var(--radius-full);background:var(--bg-tertiary);font-size:var(--text-xs);white-space:nowrap;color:var(--text-secondary);align-items:center;gap:3px;line-height:1.5;display:inline-flex}.checkbox-chip.chip-done,.checkbox-chip.chip-later,.checkbox-chip.chip-soon,.checkbox-chip.chip-now,.checkbox-chip.chip-overdue{background:color-mix(in srgb, var(--chip-color) 16%, transparent);color:var(--chip-color)}.checkbox-chip.chip-done{--chip-color:var(--urgency-done)}.checkbox-chip.chip-later{--chip-color:var(--urgency-later)}.checkbox-chip.chip-soon{--chip-color:var(--urgency-soon)}.checkbox-chip.chip-now{--chip-color:var(--urgency-now)}.checkbox-chip.chip-overdue{--chip-color:var(--urgency-overdue);font-weight:600}.checkbox-chip.chip-todoist{color:#d03025;padding-left:var(--space-2);background:#e3413524}[data-theme=dark] .checkbox-chip.chip-todoist{color:#ef756c}.checkbox-card-note{font-size:var(--text-xs);color:var(--text-tertiary)}.checkbox-card-settings{gap:var(--space-2);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.checkbox-field{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);display:flex}.checkbox-field>span:first-child{flex-shrink:0;width:56px}.checkbox-field input,.checkbox-field select{min-width:0;padding:3px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:var(--text-xs);color:var(--text-primary);flex:1}.checkbox-field input:focus,.checkbox-field select:focus{border-color:var(--primary);outline:none}.checkbox-inline{align-items:center;gap:var(--space-2);flex:1;display:flex}.checkbox-inline input{flex:none;width:64px}.checkbox-hint{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--text-tertiary)}.timer-card{gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.timer-card-head{align-items:center;gap:var(--space-2);display:flex}.timer-card-label{min-width:0;font:inherit;color:var(--text-primary);background:0 0;border:0;flex:1;font-weight:600}.timer-card-label:focus{outline:none}.timer-card-readout{font-family:var(--font-mono);font-size:var(--text-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text-primary);font-weight:600;line-height:1.1}.timer-card.is-running .timer-card-readout{color:var(--urgency-later)}.timer-card.urgency-soon .timer-card-readout{color:var(--urgency-soon)}.timer-card.urgency-now .timer-card-readout{color:var(--urgency-now)}.timer-card.urgency-overdue .timer-card-readout{color:var(--urgency-overdue)}.timer-card.is-paused .timer-card-readout{color:var(--text-tertiary)}.timer-card.is-finished .timer-card-readout{color:var(--urgency-done);animation:timer-ring 1.4s var(--ease-out) 3}@keyframes timer-ring{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.timer-card.is-finished .timer-card-readout{animation:none}}.timer-card-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:6px;overflow:hidden}.timer-card-fill{border-radius:var(--radius-full);background:var(--primary);height:100%;transition:width var(--duration-normal) linear}.timer-card.urgency-soon .timer-card-fill{background:var(--urgency-soon)}.timer-card.urgency-now .timer-card-fill{background:var(--urgency-now)}.timer-card.urgency-overdue .timer-card-fill{background:var(--urgency-overdue)}.timer-card.is-finished .timer-card-fill{background:var(--urgency-done)}.timer-card-controls{gap:var(--space-2);display:flex}.timer-card-controls .btn{flex:1}.timer-card-presets{align-items:center;gap:var(--space-1);display:flex}.timer-preset{padding:2px var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;flex:1}.timer-preset:hover{border-color:var(--primary);color:var(--text-primary)}.timer-preset.is-active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary-text);font-weight:600}.timer-card-minutes{width:52px;padding:2px var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:var(--text-xs);text-align:center;color:var(--text-primary)}.timer-card-repeat{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;display:flex}.timer-card-repeat input{accent-color:var(--primary);cursor:pointer}.timer-card-wired{font-size:var(--text-xs);color:var(--text-tertiary)}.timeline-card{gap:var(--space-2);height:100%;min-height:0;padding:var(--space-3);flex-direction:column;display:flex}.timeline-card.is-compact{padding:var(--space-2) var(--space-3);gap:var(--space-1)}.timeline-head{align-items:center;gap:var(--space-2);display:flex}.timeline-title{min-width:0;font:inherit;font-family:var(--font-display);font-weight:600;font-size:var(--text-md);color:var(--text-primary);background:0 0;border:0;flex:1}.timeline-title:focus{outline:none}.timeline-card.is-compact .timeline-title{font-size:var(--text-base)}.timeline-head-tools{gap:var(--space-1);opacity:0;transition:opacity var(--duration-fast) var(--ease-out);display:flex}.canvas-card:hover .timeline-head-tools,.canvas-card.selected .timeline-head-tools,.timeline-head-tools:focus-within{opacity:1}.timeline-track-wrap{gap:var(--space-1);flex-direction:column;flex:1;min-height:0;display:flex}.timeline-axis{border-bottom:1px solid var(--border-light);flex-shrink:0;height:14px;position:relative}.timeline-tick{white-space:nowrap;color:var(--text-tertiary);font-size:10px;line-height:14px;position:absolute;top:0;transform:translate(-50%)}.timeline-track{min-height:calc(var(--timeline-lanes,1) * 26px);border-radius:var(--radius-sm);background:var(--bg-tertiary);flex:1;position:relative;overflow:hidden}.timeline-card.is-compact .timeline-track{flex:0 0 26px;min-height:26px}.timeline-event{top:calc(var(--lane,0) * 26px + 2px);justify-content:space-between;align-items:center;gap:var(--space-2);min-width:6px;height:22px;padding:0 var(--space-2);border:1px solid #0000;border-left:3px solid var(--event-color,var(--primary));border-radius:var(--radius-xs);background:color-mix(in srgb, var(--event-color,var(--primary)) 22%, var(--bg-card));font:inherit;font-size:var(--text-xs);text-align:left;color:var(--text-primary);cursor:pointer;transition:filter var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex;position:absolute;overflow:hidden}.timeline-event:hover{filter:brightness(1.06)}.timeline-event.urgency-done{--event-color:var(--urgency-done)}.timeline-event.urgency-later{--event-color:var(--urgency-later)}.timeline-event.urgency-soon{--event-color:var(--urgency-soon)}.timeline-event.urgency-now{--event-color:var(--urgency-now)}.timeline-event.urgency-overdue{--event-color:var(--urgency-overdue)}.timeline-event.urgency-done{opacity:.6}.timeline-event.is-active{border-color:color-mix(in srgb, var(--event-color,var(--primary)) 60%, transparent);font-weight:600}.timeline-event.is-selected{box-shadow:0 0 0 2px var(--primary)}.timeline-event-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.timeline-event-time{font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-shrink:0;font-size:10px}.timeline-now{background:var(--urgency-overdue);pointer-events:none;z-index:2;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.timeline-now-dot{border-radius:var(--radius-full);background:var(--urgency-overdue);width:7px;height:7px;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.timeline-empty{font-size:var(--text-xs);color:var(--text-tertiary);place-items:center;display:grid;position:absolute;inset:0}.timeline-inspector{gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.timeline-field-title{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;color:var(--text-primary);font-weight:600}.timeline-field-title:focus{border-color:var(--primary);outline:none}.timeline-field-row{align-items:center;gap:var(--space-2);display:flex}.timeline-field{min-width:0;font-size:var(--text-xs);color:var(--text-tertiary);flex-direction:column;flex:1;gap:2px;display:flex}.timeline-field input{width:100%;padding:3px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:var(--text-xs);color:var(--text-primary)}.timeline-field input:focus{border-color:var(--primary);outline:none}.timeline-field-color{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;flex-shrink:0;width:30px;height:26px;padding:2px}.timeline-remove{margin-left:auto}.divider-card{align-items:center;gap:var(--space-3);width:100%;height:100%;display:flex;position:relative}.divider-card-rule{border-top:2px solid var(--border);flex:1;height:0}.divider-card-label{text-align:center;font:inherit;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);background:0 0;border:0;min-width:0;font-weight:600}.divider-card-label:focus{color:var(--text-primary);outline:none}.embed-card{flex-direction:column;height:100%;min-height:0;display:flex}.embed-card-empty{justify-content:center;align-items:stretch;gap:var(--space-2);text-align:center}.embed-card-hint{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.embed-card-input{width:100%;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);font:inherit;font-size:var(--text-sm);color:var(--text-primary)}.embed-card-bar{align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);display:flex}.embed-card-domain{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs);color:var(--text-tertiary);flex:1;overflow:hidden}.embed-card-actions{gap:var(--space-1);display:flex}.embed-card-stage{flex:1;min-height:0;display:flex;position:relative}.embed-card-frame{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);flex:1;width:100%;min-height:0}.embed-card:not(.is-live) .embed-card-frame{pointer-events:none}.embed-card-shield{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;inset:0}.embed-card-shield-pill{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:#fff;font-size:var(--text-xs);opacity:0;transition:opacity .12s var(--ease-out);background:#000000b8;font-weight:500;display:inline-flex}.canvas-card.selected .embed-card-shield:hover .embed-card-shield-pill,.canvas-card.selected .embed-card-shield:focus-visible .embed-card-shield-pill{opacity:1}.embed-card.is-live .embed-card-frame{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.embed-card-release{gap:var(--space-1);padding:2px var(--space-2);background:var(--primary);color:#fff;font-size:var(--text-xs)}.embed-card-live-hint{left:50%;bottom:var(--space-2);max-width:calc(100% - var(--space-4));padding:3px var(--space-2);border-radius:var(--radius-full);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#000000c7;font-size:11px;position:absolute;overflow:hidden;transform:translate(-50%)}.audio-card{gap:var(--space-2);flex-direction:column;justify-content:center;height:100%;display:flex}.audio-card-head{align-items:center;gap:var(--space-2);color:var(--text-secondary);display:flex}.audio-card-head input{min-width:0;font:inherit;font-weight:600;font-size:var(--text-base);color:var(--text-primary);background:0 0;border:0;flex:1}.audio-card-head input:focus{outline:none}.audio-card-player{width:100%;height:34px}.audio-card-upload{align-self:flex-start}.countdown-card{gap:var(--space-2);height:100%;padding:var(--space-3);flex-direction:column;justify-content:center;display:flex}.countdown-card-label{font:inherit;font-weight:600;font-size:var(--text-base);color:var(--text-primary);background:0 0;border:0}.countdown-card-label:focus{outline:none}.countdown-card-clock{gap:var(--space-3);display:flex}.countdown-card-clock.past{opacity:.55}.countdown-unit{flex-direction:column;align-items:center;line-height:1.1;display:flex}.countdown-unit strong{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;color:var(--text-primary)}.countdown-unit em{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-style:normal}.countdown-card-empty{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.countdown-card-past{font-size:var(--text-xs);color:var(--error);margin:0;font-weight:600}.countdown-card-date{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:2px var(--space-2);font:inherit;font-size:var(--text-xs);color:var(--text-secondary)}.canvas-card.locked{cursor:default}.card-lock-badge{border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);width:20px;height:20px;box-shadow:var(--shadow-sm);z-index:6;place-items:center;font-size:10px;display:grid;position:absolute;top:6px;right:6px}.canvas-container.blueprint{--bp-paper:#102846;--bp-line:#77c7f829;--bp-line-major:#81cbf847;--bp-ink:#80d3fa;--bp-glow:#62c9f88c}.canvas-container.blueprint .canvas-grid{background-color:var(--bp-paper);background-image:linear-gradient(to right, var(--bp-line) 1px, transparent 1px), linear-gradient(to bottom, var(--bp-line) 1px, transparent 1px)}.canvas-container.blueprint .canvas-card{filter:saturate(.2)brightness(.96);opacity:.9;box-shadow:0 0 0 1px var(--bp-line-major), var(--shadow-sm);transition:filter var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out)}.canvas-container.blueprint .canvas-card:hover,.canvas-container.blueprint .canvas-card.selected{filter:none;opacity:1;box-shadow:0 0 0 1.5px var(--bp-ink), 0 0 18px var(--bp-glow)}.blueprint-layer{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.blueprint-port{pointer-events:none;fill:var(--bp-paper);stroke:var(--bp-ink);stroke-width:2px;transition:fill var(--duration-fast) var(--ease-out), r var(--duration-fast) var(--ease-out)}.blueprint-port-hit:hover+.blueprint-port,.blueprint-port.is-active{fill:var(--bp-ink)}.blueprint-port.is-active{animation:blueprint-port-pulse 1.2s var(--ease-out) infinite}.blueprint-port-hit{pointer-events:auto;fill:#0000;cursor:crosshair}.blueprint-wire-live{stroke:var(--bp-ink);stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 5;filter:drop-shadow(0 0 6px var(--bp-glow));animation:.6s linear infinite blueprint-dash}.wire-node-hit{pointer-events:auto;fill:#0000;cursor:grab}.wire-node-hit:active{cursor:grabbing}.wire-node{stroke-width:2px;transition:r var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out)}.wire-node:not(.is-ghost){stroke:var(--bg-card)}.wire-node.is-ghost{fill:var(--bg-card);stroke-width:1.5px;opacity:.5}.wire-node-hit:hover+.wire-node.is-ghost{opacity:1;r:5}.wire-node-hit:hover+.wire-node,.wire-node.is-active{r:7}.wire-branch-live{stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 5;animation:.6s linear infinite blueprint-dash}@keyframes blueprint-port-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes blueprint-dash{to{stroke-dashoffset:-22px}}.canvas-container.blueprint .connection-line path:not(.connection-hitbox){filter:drop-shadow(0 0 5px var(--bp-glow))}.connection-badge circle{stroke:var(--bg-card);stroke-width:2px}.connection-badge text{-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600}.wire-inspector{top:calc(var(--toolbar-height) + var(--space-6));left:var(--space-4);width:268px;z-index:var(--z-toolbar);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-3);gap:var(--space-2);animation:fadeIn var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:absolute}.wire-inspector-head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.wire-inspector-pair{align-items:center;gap:0 var(--space-1);font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--leading-normal);flex-wrap:wrap;min-width:0;display:flex}.wire-inspector-pair strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-weight:600;overflow:hidden}.wire-inspector-options{gap:var(--space-1);flex-direction:column;display:flex}.wire-option{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2);text-align:left;border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border:1px solid #0000;display:flex}.wire-option:hover{border-color:var(--border)}.wire-option.is-active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.wire-option-icon{flex-shrink:0;font-size:13px;line-height:1.3}.wire-option-text{flex-direction:column;min-width:0;display:flex}.wire-option-text strong{font-size:var(--text-xs);font-weight:600}.wire-option-text small{opacity:.72;font-size:11px;line-height:var(--leading-normal)}.wire-inspector-hint{padding-top:var(--space-1);border-top:1px solid var(--border-light);font-size:11px;line-height:var(--leading-normal);color:var(--text-secondary);margin:0}.wire-inspector-hint kbd{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);padding:0 3px;font-family:inherit;font-size:10px}.wire-inspector-delete{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;display:flex}.wire-inspector-delete:hover{background:color-mix(in srgb, var(--error) 12%, transparent);color:var(--error);border-color:currentColor}@media (prefers-reduced-motion:reduce){.blueprint-port.is-active,.blueprint-wire-live,.wire-branch-live{animation:none}}.canvas-container.presenting{background:var(--bg-secondary)}.present-dimmed{opacity:.18;filter:saturate(.4);transition:opacity var(--duration-slow) var(--ease-out)}.logic-faded{opacity:.55;filter:saturate(.6);transition:opacity var(--duration-slow) var(--ease-out), filter var(--duration-slow) var(--ease-out)}.logic-faded.selected,.logic-faded.dragging{opacity:.85;filter:none}.logic-blocked{opacity:.72;filter:grayscale(.85);outline-offset:2px;transition:opacity var(--duration-slow) var(--ease-out), filter var(--duration-slow) var(--ease-out);outline:1px dashed #ef44448c}.logic-blocked>*{pointer-events:none}.logic-blocked>.card-lock-badge,.logic-blocked>.peer-selection-tag{pointer-events:auto}.card-lock-badge.is-blocked{pointer-events:auto;color:#ef4444;border-color:color-mix(in srgb, #ef4444 45%, var(--border));top:6px;left:auto;right:6px}.present-bar{bottom:var(--space-6);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-xl);z-index:var(--z-modal);max-width:min(90vw,640px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.present-position{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.present-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--text-primary);flex:1;font-weight:600;overflow:hidden}.present-divider{background:var(--border);width:1px;height:20px}.search-panel{top:calc(var(--toolbar-height) + var(--space-4));right:var(--space-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);width:320px;max-height:min(70vh,520px);box-shadow:var(--shadow-xl);z-index:var(--z-modal);flex-direction:column;display:flex;position:fixed;overflow:hidden}.search-panel-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);color:var(--text-tertiary);display:flex}.search-panel-bar input{min-width:0;font:inherit;font-size:var(--text-base);color:var(--text-primary);background:0 0;border:0;flex:1}.search-panel-bar input:focus{outline:none}.search-panel-count{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-tertiary)}.search-panel-filters{gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);flex-wrap:wrap;display:flex}.search-chip{padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);background:0 0}.search-chip:hover{background:var(--bg-secondary)}.search-chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.search-panel-results{min-height:0;padding:var(--space-1);flex:1;overflow-y:auto}.search-panel-empty{padding:var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.search-result{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-md);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.search-result:hover,.search-result.active{background:var(--bg-secondary)}.search-result-icon{font-size:var(--text-sm);line-height:1.4}.search-result-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.search-snippet{font-size:var(--text-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-snippet mark{background:color-mix(in srgb, var(--warning) 45%, transparent);color:inherit;border-radius:var(--radius-xs)}.search-result-type{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px}.inspector{top:var(--toolbar-height);gap:var(--space-3);width:268px;padding:var(--space-3);background:var(--bg-elevated);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:var(--z-toolbar);flex-direction:column;display:flex;position:fixed;bottom:0;right:0;overflow-y:auto}.inspector-head{align-items:center;gap:var(--space-2);display:flex}.inspector-head h3{font-size:var(--text-base);color:var(--text-primary);flex:1;margin:0}.inspector-empty{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.inspector-section{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.inspector-section:first-of-type{border-top:0;padding-top:0}.inspector-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:700}.inspector-row{align-items:center;gap:var(--space-2);display:flex}.inspector-row-label{width:76px;font-size:var(--text-xs);color:var(--text-secondary);flex-shrink:0}.inspector-row-control{flex:1;min-width:0;display:flex}.inspector-row-control input,.inspector-row-control select{width:100%;min-width:0;padding:4px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:var(--text-xs);color:var(--text-primary)}.inspector-rotate{align-items:center;gap:var(--space-2);width:100%;min-width:0;display:flex}.inspector-rotate input[type=range]{flex:1;min-width:0}.inspector-row-control .inspector-number{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 56px;width:56px}.inspector-unit{font-size:var(--text-xs);color:var(--text-tertiary)}.inspector-rotate-steps{flex-wrap:wrap;gap:4px;width:100%;display:flex}.inspector-rotate-steps .btn{font-variant-numeric:tabular-nums;min-width:0;padding:2px 6px;font-size:11px}.inspector-swatches{gap:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}.inspector-swatch{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out);padding:0}.inspector-swatch:hover{transform:scale(1.12)}.inspector-swatch-none{color:var(--text-tertiary);background:var(--bg-secondary);place-items:center;font-size:11px;display:grid}.inspector-swatch-none:after{content:"⊘"}.inspector-buttons{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.inspector-danger{color:var(--error)}.inspector-danger:hover{background:color-mix(in srgb, var(--error) 12%, transparent)}.canvas-container.drop-active{outline:2px dashed var(--primary);outline-offset:-8px}.drop-overlay{background:color-mix(in srgb, var(--primary) 8%, transparent);pointer-events:none;z-index:var(--z-card-dragging);place-items:center;display:grid;position:absolute;inset:0}.drop-overlay-inner{align-items:center;gap:var(--space-1);padding:var(--space-6) var(--space-8);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:var(--shadow-xl);text-align:center;flex-direction:column;display:flex}.drop-overlay-inner strong{font-size:var(--text-md);color:var(--text-primary)}.drop-overlay-inner span{font-size:var(--text-sm);color:var(--text-tertiary)}.drop-overlay-icon{font-size:var(--text-2xl);color:var(--primary-text)}.upload-pill{bottom:var(--space-6);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--text-secondary);z-index:var(--z-toolbar);display:flex;position:absolute;left:50%;transform:translate(-50%)}.upload-pill-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.toolbar-dropdown-right{left:auto;right:0}.toolbar-more{width:300px;max-width:calc(100cqw - var(--space-4));padding:var(--space-1)}.toolbar-more-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:min(70vh,460px);padding:var(--space-1);overflow-y:auto}.toolbar-more-group+.toolbar-more-group{border-top:1px solid var(--border);margin-top:2px;padding-top:2px}.toolbar-more-back{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);font-family:inherit;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;margin-bottom:2px;font-weight:600;display:flex}.toolbar-more-back:hover{color:var(--primary-text)}.menu-item-chevron{color:var(--text-tertiary);flex-shrink:0;margin-left:auto}@container toolbar (max-width:1400px){.tb-label{display:none}.toolbar-btn{padding-inline:var(--space-2);gap:0}.toolbar{gap:2px}.toolbar-divider{margin:0 var(--space-1)}}@container toolbar (max-width:1280px){.tb-p3{display:none}}@container toolbar (max-width:1040px){.tb-p2{display:none}}@container toolbar (max-width:820px){.tb-p1{display:none}}@container toolbar (max-width:640px){.toolbar{padding:0 var(--space-2)}.toolbar-divider,.save-indicator .save-label{display:none}.toolbar .toolbar-menu-anchor{position:static}.toolbar .toolbar-dropdown{left:var(--space-2);right:var(--space-2);width:auto;max-width:none;top:calc(100% + 6px)}}@container toolbar (max-width:460px){.toolbar-zoom-value,.save-indicator{display:none}.save-indicator.save-offline,.save-indicator.save-error{display:flex}.toolbar-title-input{min-width:24px}}@container toolbar (min-width:1281px){.tb-overflow{display:none}}@media (max-width:720px){.inspector{width:100%}.search-panel{left:var(--space-3);right:var(--space-3);width:auto}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.task-body{flex:1;min-width:0}.task-meta{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin-top:2px;display:flex}.task-meta>*{white-space:nowrap;font-size:10px;line-height:1.5}.task-due{font-variant-numeric:tabular-nums;font-weight:500}.task-due-overdue{color:var(--danger)}.task-due-today{color:var(--text-primary);font-weight:600}.task-due-soon,.task-due-later{color:var(--text-tertiary)}.task-priority{color:var(--text-tertiary);align-items:center;gap:2px;font-weight:500;display:inline-flex}.task-priority-4{color:var(--danger)}.task-priority-3{color:#dc7418}.task-priority-2{color:#267ad9}.task-label{border-radius:var(--radius-xs);background:var(--bg-tertiary);color:var(--text-secondary);padding:0 5px}.task-note{color:var(--text-tertiary);text-overflow:ellipsis;max-width:100%;overflow:hidden}.task-sub{margin-left:var(--space-4);padding-left:var(--space-2);border-left:1px solid var(--border)}.task-section{font-size:var(--text-xs);color:var(--text-tertiary);margin:var(--space-3) 0 var(--space-1);border-bottom:1px solid var(--border-subtle,var(--border));padding-bottom:2px;font-weight:600}.task-section:first-child{margin-top:0}.task-done{opacity:.5}.task-removed .task-text{color:var(--text-tertiary);text-decoration:line-through}.task-removed{opacity:.6}.task-p4{box-shadow:inset 2px 0 0 var(--danger);padding-left:var(--space-2)}.task-p3{padding-left:var(--space-2);box-shadow:inset 2px 0 #dc7418}.task-p2{padding-left:var(--space-2);box-shadow:inset 2px 0 #267ad9}.task-link{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);color:var(--text-tertiary)}.task-item:hover .task-link,.task-link:focus-visible{opacity:.7}.task-synced{color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-xs);margin-left:auto;padding:0 4px;font-size:10px;font-weight:500}.td-empty,.td-connect{padding:var(--space-4) 0}.td-connect-row{gap:var(--space-2);margin:var(--space-3) 0 var(--space-2);display:flex}.td-connect-row .input{min-width:0;font-family:var(--font-mono,monospace);flex:1}.td-token-link{font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}.td-account{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);flex-wrap:wrap;display:flex}.td-account-text{flex-direction:column;gap:2px;min-width:0;display:flex}.td-account-name{font-weight:600}.td-account-actions{gap:var(--space-2);display:flex}.td-disconnect{color:var(--danger)}.td-spin{animation:.9s linear infinite td-spin}@keyframes td-spin{to{transform:rotate(360deg)}}.td-status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-tertiary);margin:var(--space-3) 0 var(--space-2);display:flex}.td-status-error,.td-status-partial{color:var(--danger)}.td-group{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-6) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border);font-weight:600}.td-group-hint{font-size:var(--text-sm);color:var(--text-tertiary);margin:var(--space-1) 0 0;max-width:62ch}.td-switch-row{cursor:pointer}.td-switch-row.disabled{opacity:.5;cursor:default}.td-switch{width:18px;height:18px;accent-color:var(--primary);cursor:inherit;flex-shrink:0}.td-input-sm{max-width:220px}.td-input-xs{max-width:90px}.td-range{width:180px;accent-color:var(--primary)}.td-projects{gap:var(--space-1) var(--space-3);padding:var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.td-project,.td-field{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;min-width:0;display:flex}.td-project span,.td-field span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.td-project input,.td-field input{accent-color:var(--primary);flex-shrink:0}.td-fields{gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.td-migrations{margin:var(--space-2) 0 0;padding-left:var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.td-migrations code{word-break:break-all}.td-links{padding:var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary)}.td-links-head{margin-bottom:var(--space-2)}.td-link-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--border);display:flex}.td-link-name{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;display:flex;overflow:hidden}.td-link-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@media (max-width:768px){.td-account,.td-connect-row{flex-direction:column;align-items:stretch}.td-input-sm,.td-range{width:100%;max-width:none}}.td-warn{border:1px solid var(--border);border-left:3px solid var(--warning,#ec9c13);border-radius:var(--radius-md);background:var(--bg-secondary);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.td-warn p{margin:0}.td-warn p+p{margin-top:var(--space-2);color:var(--text-secondary)}.td-warn code{font-size:var(--text-xs);word-break:break-all}.td-flyout{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:264px;max-height:min(420px,64vh);box-shadow:var(--shadow-xl);z-index:calc(var(--z-context-menu) + 1);animation:menuIn var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}.td-flyout-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:600;display:flex}.td-flyout-head span{font-variant-numeric:tabular-nums;color:var(--text-tertiary)}.td-flyout-list{min-height:0;padding:var(--space-1);flex:1;overflow-y:auto}.td-flyout-state{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);margin:0;display:flex}.td-flyout-state.is-error{color:var(--danger,#e5484d)}.td-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite spin}.td-flyout-list .td-project,.td-flyout-list .td-task{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex}.td-flyout-list .td-project:hover,.td-flyout-list .td-project.is-open,.td-flyout-list .td-task:hover{background:var(--primary-alpha);color:var(--primary-text)}.td-flyout-list .td-project:disabled,.td-flyout-list .td-task:disabled{opacity:.5;cursor:default}.td-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.td-project-name,.td-task-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.td-project-mark{color:var(--text-tertiary);flex-shrink:0}.td-project-tag{border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;padding:1px 6px;font-size:10px}.td-chevron,.menu-more{color:var(--text-tertiary);flex-shrink:0;font-size:15px;line-height:1}.td-task.is-sub{padding-left:var(--space-5)}.td-task-box{border:1.5px solid var(--border-strong,var(--border));color:#fff;border-radius:4px;flex-shrink:0;place-items:center;width:14px;height:14px;display:grid}.td-task.is-picked .td-task-box{background:var(--primary);border-color:var(--primary)}.td-task.is-picked{background:var(--primary-alpha)}.td-due{font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-shrink:0;font-size:10px}.td-pri{flex-shrink:0;place-items:center;display:grid}.td-pri-4{color:#d1453b}.td-pri-3{color:#eb8909}.td-pri-2{color:#246fe0}.td-flyout-foot{padding:var(--space-2);border-top:1px solid var(--border);flex-shrink:0}.td-flyout-cta{width:100%;padding:var(--space-2);border-radius:var(--radius-md);background:var(--primary);color:#fff;font-family:inherit;font-size:var(--text-sm);text-align:center;cursor:pointer;transition:filter var(--duration-fast) var(--ease-out);border:none;font-weight:500;text-decoration:none;display:block}.td-flyout-cta:hover:not(:disabled){filter:brightness(1.08)}.td-flyout-cta:disabled{opacity:.6;cursor:default}.td-flyout-hint{text-align:center;color:var(--text-tertiary);font-size:10px;display:block}.td-flyout-hint kbd{border:1px solid var(--border);border-radius:3px;padding:0 3px;font-family:inherit;font-size:9px}.demo-shell{--sidebar-width:0px}.demo-bar{bottom:var(--space-4);left:var(--space-4);z-index:900;align-items:center;gap:var(--space-3);max-width:460px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;position:fixed}.demo-bar-mark{background:var(--primary-soft);width:26px;height:26px;color:var(--primary-text);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.demo-bar-text{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.35}.demo-bar-text strong{color:var(--text-primary);font-weight:600}.demo-bar-cta{border-radius:var(--radius-full);flex-shrink:0;text-decoration:none}.board-card-locked{border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary-text);font-size:var(--text-xs);white-space:nowrap;padding:3px 10px;font-weight:600}.demo-claim-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}@media (max-width:768px){.demo-bar{left:var(--space-3);right:var(--space-3);align-items:stretch;gap:var(--space-2);max-width:none;padding:var(--space-3);border-radius:var(--radius-lg);text-align:center;flex-direction:column}.demo-bar-mark{display:none}.demo-bar-cta{justify-content:center}.demo-shell .minimap-container,.demo-shell .minimap-toggle{display:none}}.admin-shell{background:var(--bg-secondary);flex-direction:column;min-height:100vh;display:flex}.admin-bar{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-4);padding:0 var(--space-5);background:var(--sidebar-bg);height:52px;color:var(--sidebar-text);border-bottom:1px solid var(--sidebar-border);display:flex;position:sticky;top:0}.admin-bar-left,.admin-bar-right{align-items:center;gap:var(--space-4);min-width:0;display:flex}.admin-badge{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--primary-ink);background:var(--primary);padding:3px var(--space-2);border-radius:var(--radius-xs);font-weight:700}.admin-tabs{align-items:center;gap:var(--space-1);display:flex}.admin-tab{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--sidebar-text);opacity:.72;transition:background-color var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);display:inline-flex}.admin-tab:hover{background:var(--sidebar-hover);opacity:1}.admin-tab.active{background:var(--sidebar-active);opacity:1;font-weight:600}.admin-who{font-size:var(--text-xs);color:var(--sidebar-text);opacity:.6;text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.admin-exit{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--sidebar-text);opacity:.72;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);display:inline-flex}.admin-exit:hover{background:var(--sidebar-hover);opacity:1}.admin-main{flex:1;min-width:0}.admin-page{max-width:1180px;padding:var(--space-6) var(--space-5) var(--space-16);margin:0 auto}.admin-page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.admin-h1{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);font-weight:700;line-height:1.1}.admin-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.admin-spin{animation:.9s linear infinite admin-spin}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-empty,.admin-error{align-items:center;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4);line-height:1.5;display:flex}.admin-error{color:var(--text-primary);background:#ef43430f;border-color:#ef434366}.admin-note{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.5}.admin-inline-link{font-size:var(--text-xs);color:var(--primary-text);font-weight:500}.admin-inline-link:hover{text-decoration:underline}.admin-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.admin-panel{gap:var(--space-3);padding:var(--space-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.admin-panel-title{align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;display:flex}.admin-panel-aside{text-transform:none;letter-spacing:0;margin-left:auto;font-weight:400}.admin-stat{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-stat-value{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.1}.admin-stat.big .admin-stat-value{font-size:var(--text-4xl)}.admin-stat-label{font-size:var(--text-xs);color:var(--text-tertiary)}.admin-stat-row{gap:var(--space-5);flex-wrap:wrap;display:flex}.admin-split{gap:var(--space-2);padding-top:var(--space-2);flex-direction:column;margin-top:auto;display:flex}.admin-split.flush{margin-top:0}.admin-share-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:3px;display:flex}.admin-share-count{font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}.admin-share-count em{color:var(--text-tertiary);margin-left:4px;font-style:normal}.admin-share-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:5px;overflow:hidden}.admin-share-fill{border-radius:var(--radius-full);background:var(--text-tertiary);height:100%;transition:width var(--duration-normal) var(--ease-out)}.admin-share-fill.pro{background:var(--primary)}.admin-share-fill.team{background:var(--accent)}.admin-source-label{font-size:var(--text-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.admin-source-label.muted{color:var(--text-tertiary);font-weight:400}.admin-range{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-range-btn{padding:5px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--text-xs);transition-property:background-color,border-color,color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);font-weight:500}.admin-range-btn:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.admin-range-btn.active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast,#fff)}.admin-themes{gap:var(--space-3);flex-direction:column;display:flex}.admin-theme-head{align-items:center;gap:var(--space-2);text-align:left;width:100%;color:var(--text-secondary);margin-bottom:3px;display:flex}.admin-theme-head:hover{color:var(--text-primary)}.admin-theme-caret{color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-out);flex-shrink:0}.admin-theme.open .admin-theme-caret{transform:rotate(90deg)}.admin-theme-label{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.admin-theme-label.found{font-family:var(--font-mono);color:var(--text-tertiary);font-weight:400}.admin-theme-count{font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-left:auto}.admin-theme-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:5px;overflow:hidden}.admin-theme-fill{border-radius:var(--radius-full);background:var(--primary);height:100%;transition:width var(--duration-normal) var(--ease-out)}.admin-answers{gap:var(--space-3);margin-top:var(--space-3);padding-left:var(--space-4);border-left:2px solid var(--border);flex-direction:column;display:flex}.admin-answer-text{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-relaxed);font-style:italic}.admin-answer-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.admin-answer-meta a{color:var(--primary-text)}.admin-answer-meta a:hover{text-decoration:underline}.admin-leftovers{margin-top:var(--space-4)}.admin-plan{font-size:var(--text-xs);text-transform:capitalize;padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);align-items:center;font-weight:600;display:inline-flex}.admin-plan.pro{background:var(--primary-soft);color:var(--primary-text)}.admin-plan.team{color:var(--accent-dark);background:#2bd4bd29}.admin-tag{margin-left:var(--space-2);border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-tertiary);white-space:nowrap;vertical-align:middle;align-items:center;gap:3px;padding:1px 6px;font-size:.6875rem;display:inline-flex}.admin-tag.comped{border-color:var(--primary-edge);color:var(--primary-text)}.admin-tag.live{color:var(--success);border-color:#21c45d80}.admin-tag.admin{border-color:var(--primary-edge);background:var(--primary-faint);color:var(--primary-text)}.admin-tag.warn{color:#ba7908;border-color:#f59f0a80}.admin-chart-panel{margin-top:var(--space-4)}.admin-chart{align-items:flex-end;gap:3px;height:120px;display:flex}.admin-chart-slot{flex:1;align-items:flex-end;min-width:0;height:100%;display:flex}.admin-chart-bar{background:var(--primary);width:100%;min-height:2px;transition:opacity var(--duration-fast) var(--ease-out);border-radius:2px 2px 0 0}.admin-chart-bar.empty{background:var(--border)}.admin-chart-slot:hover .admin-chart-bar{opacity:.7}.admin-chart-axis{color:var(--text-tertiary);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.6875rem;display:flex}.admin-search{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:260px;height:34px;color:var(--text-tertiary);display:flex}.admin-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha)}.admin-search input{min-width:0;font-size:var(--text-sm);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.admin-filters{gap:var(--space-1);margin-bottom:var(--space-3);display:flex}.admin-filter{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);height:26px;font-size:var(--text-xs);color:var(--text-secondary);border:1px solid #0000}.admin-filter:hover{background:var(--bg-tertiary)}.admin-filter.active{background:var(--bg-card);border-color:var(--border);color:var(--text-primary);font-weight:600}.admin-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:opacity var(--duration-fast) var(--ease-out);overflow:hidden}.admin-table-wrap.loading{opacity:.6}.admin-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.admin-table th{text-align:left;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:600}.admin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:1%}.admin-table .dim{color:var(--text-tertiary);font-size:var(--text-xs);white-space:nowrap}.admin-row{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.admin-row:hover{background:var(--bg-secondary)}.admin-row:focus-visible{background:var(--bg-secondary);box-shadow:inset 2px 0 0 var(--primary);outline:none}.admin-empty-cell{text-align:center;color:var(--text-tertiary);padding:var(--space-10) var(--space-4)}.admin-who-cell{align-items:center;gap:var(--space-3);min-width:0;display:flex}.admin-avatar{border-radius:var(--radius-full);width:30px;height:30px;font-family:var(--font-display);font-size:var(--text-sm);background:var(--bg-tertiary);color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.admin-avatar.pro{background:var(--primary-soft);color:var(--primary-text)}.admin-avatar.team{color:var(--accent-dark);background:#2bd4bd2e}.admin-who-text{flex-direction:column;min-width:0;display:flex}.admin-who-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.admin-who-mail{font-size:var(--text-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-pager{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-4);display:flex}.admin-pager-label{font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.admin-drawer-overlay{z-index:200;background:var(--bg-overlay);justify-content:flex-end;display:flex;position:fixed;inset:0}.admin-drawer{background:var(--bg-card);border-left:1px solid var(--border);width:min(560px,100vw);height:100%;box-shadow:var(--shadow-xl);animation:admin-slide-in var(--duration-normal) var(--ease-out);overflow-y:auto}@keyframes admin-slide-in{0%{opacity:0;transform:translate(24px)}}.admin-drawer-head{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.admin-icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-tertiary);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.admin-icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.admin-icon-btn.danger:hover{color:var(--error);background:#ef43431f}.admin-drawer-body{gap:var(--space-5);padding:var(--space-5);flex-direction:column;display:flex}.admin-drawer-plan{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.admin-figures{gap:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light);flex-wrap:wrap;display:flex}.admin-figure{flex-direction:column;display:flex}.admin-figure-value{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.1}.admin-figure-label{font-size:var(--text-xs);color:var(--text-tertiary)}.admin-facts{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.admin-fact dt{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:2px}.admin-fact dd{font-size:var(--text-sm);color:var(--text-primary);overflow-wrap:anywhere}.admin-fact dd.mono,.admin-input.mono{font-family:var(--font-mono);font-size:var(--text-xs)}.admin-block{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);flex-direction:column;display:flex}.admin-block.danger{background:#ef43430d;border-color:#ef434340}.admin-block-title{align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);font-weight:600;display:flex}.admin-block>.admin-input{width:100%}.admin-choices{gap:var(--space-1);flex-wrap:wrap;display:flex}.admin-choice{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);height:28px;font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);align-items:center;display:inline-flex}.admin-choice:hover{border-color:var(--text-tertiary);color:var(--text-primary)}.admin-choice.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}.admin-input{width:100%;height:34px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit}.admin-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha);outline:none}.admin-input.bad{border-color:var(--error)}.admin-field{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.admin-field>span{font-size:var(--text-xs);color:var(--text-secondary);font-weight:600}.admin-field>em{font-style:normal;font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.45}.admin-field-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.admin-field-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.admin-list{flex-direction:column;gap:1px;width:100%;list-style:none;display:flex}.admin-list-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-card);border-radius:var(--radius-sm);display:flex}.admin-list-item.spent{opacity:.55}.admin-list-main{flex-direction:column;gap:1px;min-width:0;display:flex}.admin-list-title{font-size:var(--text-sm);color:var(--text-primary);text-transform:capitalize;font-weight:500}.admin-board-link{text-align:left;cursor:pointer;color:var(--primary-text);text-transform:capitalize;background:0 0;border:none;padding:0}.admin-board-link:hover{text-decoration:underline}.admin-list-meta{font-size:var(--text-xs);color:var(--text-tertiary);overflow-wrap:anywhere}.admin-list-note{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px;font-style:italic}.admin-board-list{gap:var(--space-2)}.admin-board-item{align-items:flex-start}.admin-board-badge{flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.admin-board-progress{white-space:nowrap;font-size:var(--text-xs);text-transform:capitalize;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:999px;align-items:center;padding:4px 8px;font-weight:600;display:inline-flex}.admin-board-progress.empty{color:var(--text-tertiary)}.admin-board-progress.low{color:#d48311;background:#fdf4e7;border-color:#f9deb8}.admin-board-progress.mid{color:#1474b8;background:#e8f4fc;border-color:#badef7}.admin-board-progress.high{color:#1d8749;background:#eafbf1;border-color:#c0f2d5}.admin-board-progress.deep{color:#5220b6;background:#efe9fb;border-color:#d0bef4}.admin-board-modal-overlay{z-index:250;padding:var(--space-5);background:#101318b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-board-modal{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--bg-card);width:min(1200px,100%);height:min(820px,100%);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.admin-board-modal-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);display:flex}.admin-board-modal-title-wrap{flex-direction:column;min-width:0;display:flex}.admin-board-modal-title{font-size:var(--text-base);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.admin-board-modal-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.admin-board-modal-actions{align-items:center;gap:var(--space-2);display:flex}.admin-board-modal-frame{background:var(--bg-secondary);border:0;flex:1;width:100%}.admin-form{margin-bottom:var(--space-5);gap:var(--space-4)}.admin-preview{padding:var(--space-3) var(--space-4);background:var(--primary-faint);border:1px solid var(--primary-edge);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary);line-height:1.5}.admin-campaigns{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.admin-campaign{gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.admin-campaign.live{border-color:var(--primary-edge);box-shadow:inset 3px 0 0 var(--primary)}.admin-campaign-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.admin-campaign-title{align-items:center;gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.admin-campaign-title h3{font-family:var(--font-display);font-size:var(--text-md);color:var(--text-primary);margin-right:var(--space-1);font-weight:600}.admin-campaign-actions{flex-shrink:0;gap:2px;display:flex}.admin-campaign-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.admin-code{align-self:flex-start;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px dashed var(--border);background:var(--bg-secondary);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.06em;color:var(--text-primary);font-weight:600;display:inline-flex}.admin-code:hover{border-color:var(--primary);color:var(--primary-text)}.admin-campaign-stats{gap:var(--space-1) var(--space-4);font-size:var(--text-xs);color:var(--text-secondary);flex-wrap:wrap;display:flex}.admin-campaign-stats strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.admin-campaign-stats .dim{color:var(--text-tertiary)}.admin-campaign-note{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic;line-height:1.5}.admin-campaign-edit{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-light);flex-direction:column;display:flex}@media (max-width:720px){.admin-bar{gap:var(--space-2);height:auto;padding:var(--space-2) var(--space-3);flex-wrap:wrap}.admin-who{display:none}.admin-page{padding:var(--space-4) var(--space-3) var(--space-12)}.admin-search{width:100%;min-width:0}.admin-table th:nth-child(3),.admin-table td:nth-child(3),.admin-table th:nth-child(5),.admin-table td:nth-child(5){display:none}.admin-drawer{border-left:none;width:100vw}.admin-campaigns{grid-template-columns:1fr}}.redeem-row{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.redeem-field{align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-tertiary);display:flex}.redeem-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha)}.redeem-field input{width:150px;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary);background:0 0;border:none;outline:none}.redeem-refused{font-size:var(--text-xs);color:var(--error);flex-basis:100%}.redeem-won{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--success);background:#21c45d12;border:1px solid #21c45d59;display:flex}.redeem-won>div{flex-direction:column;gap:2px;display:flex}.redeem-won strong{color:var(--text-primary);font-size:var(--text-sm)}.redeem-won span{color:var(--text-secondary);font-size:var(--text-xs);line-height:1.5}.onboarding-hero{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-direction:column;display:flex}.onboarding-sparkle{color:var(--primary-text);font-size:38px;animation:2.4s ease-in-out infinite onboarding-pulse}@keyframes onboarding-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.onboarding-title{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text-primary);margin:0;font-weight:800}.onboarding-subtitle{font-size:var(--text-sm);color:var(--text-secondary);max-width:420px;margin:0;line-height:1.65}.onboarding-actions{gap:var(--space-3);width:100%;max-width:560px;margin-top:var(--space-2);display:flex}.onboarding-action-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:all var(--duration-fast) var(--ease-out);flex-direction:column;flex:1;display:flex}.onboarding-action-card:hover{border-color:var(--primary);background:var(--bg-tertiary);transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.onboarding-action-primary{border-color:var(--primary);background:linear-gradient(135deg, hsla(var(--primary-h,255), 70%, 60%, .08), transparent)}.onboarding-action-primary:hover{background:linear-gradient(135deg, hsla(var(--primary-h,255), 70%, 60%, .16), transparent);box-shadow:0 8px 32px hsla(var(--primary-h,255), 70%, 50%, .2)}.onboarding-action-icon{border-radius:var(--radius-md);background:var(--bg-tertiary);width:40px;height:40px;color:var(--primary-text);justify-content:center;align-items:center;display:flex}.onboarding-action-primary .onboarding-action-icon{background:var(--primary);color:#fff}.onboarding-action-text{flex-direction:column;gap:4px;display:flex}.onboarding-action-text strong{font-size:var(--text-sm);color:var(--text-primary);font-weight:650}.onboarding-action-text span{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.5}.onboarding-quick{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.onboarding-quick-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.onboarding-hints{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);animation:fadeIn var(--duration-normal) var(--ease-out);display:flex}.onboarding-hint{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;display:flex}.onboarding-hint kbd{color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;font-family:inherit;font-size:11px;font-weight:600}.onboarding-hint-dot{color:var(--text-tertiary);font-size:var(--text-sm)}@media (max-width:640px){.onboarding-actions{flex-direction:column}.onboarding-hints{border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:center}.onboarding-hint-dot{display:none}}.tutorial-overlay{pointer-events:none;position:fixed;inset:0}.tutorial-spotlight-ring{animation:1.8s ease-in-out infinite tutorial-ring-pulse}@keyframes tutorial-ring-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.5}}.tutorial-tooltip{pointer-events:auto;background:var(--bg-elevated);border-radius:var(--radius-lg);width:320px;box-shadow:0 12px 32px #00000073, 0 0 0 1px var(--border);padding:var(--space-5);gap:var(--space-3);animation:tutorial-in .25s var(--ease-out);flex-direction:column;display:flex}@keyframes tutorial-in{0%{opacity:0;transform:translateY(8px)}}.tutorial-progress{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.tutorial-progress-bar{gap:4px;display:flex}.tutorial-progress-dot{background:var(--border);width:8px;height:8px;transition:background var(--duration-fast);border-radius:50%}.tutorial-progress-dot.done{background:var(--primary)}.tutorial-progress-dot.active{background:var(--primary);box-shadow:0 0 0 3px hsla(var(--primary-h,255), 70%, 60%, .25)}.tutorial-step-count{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500}.tutorial-title{font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:700}.tutorial-text{font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.6}.tutorial-actions{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.tutorial-actions-end{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.tutorial-back{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast);background:0 0;align-items:center;gap:6px;font-weight:500;display:flex}.tutorial-back:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.tutorial-skip{font-size:var(--text-sm);color:var(--text-tertiary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--duration-fast);background:0 0;border:none;min-height:32px}.tutorial-skip:hover{color:var(--text-secondary)}.tutorial-next{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:#fff;background:var(--primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast);border:none;align-items:center;gap:6px;font-weight:600;display:flex}.tutorial-next:hover{filter:brightness(1.1);transform:translate(1px)}.tutorial-finish{padding:var(--space-2) var(--space-5);background:linear-gradient(135deg, var(--primary), #a73cdd)}.shortcut-hints{z-index:var(--z-popover);animation:shortcut-hints-in .4s var(--ease-out) 1.5s both;pointer-events:auto;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@keyframes shortcut-hints-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.shortcut-hints-inner{align-items:center;gap:var(--space-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:10px 16px;display:flex;box-shadow:0 4px 20px #0003}.shortcut-hint-item{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;display:flex}.shortcut-hint-item kbd{color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 7px;font-family:inherit;font-size:11px;font-weight:600}.shortcut-hint-sep{background:var(--border);width:1px;height:16px}.shortcut-hints-close{width:20px;height:20px;margin-left:var(--space-1);color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:11px;display:flex}.shortcut-hints-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}@media (max-width:640px){.shortcut-hints-inner{border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px)}.shortcut-hint-sep{display:none}}.sidebar-empty-helper{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.sidebar-empty-text{font-size:var(--text-xs);color:var(--text-tertiary);margin:0;line-height:1.5}.sidebar-empty-action{font-size:var(--text-xs);color:var(--sidebar-text);border:1px dashed var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);text-align:left;background:0 0;align-items:center;gap:8px;width:100%;padding:8px 12px;font-weight:500;display:flex}.sidebar-empty-action:hover{color:var(--primary-text);border-color:var(--primary);background:hsla(var(--primary-h,255), 70%, 60%, .06)}.canvas-container.cable{--bp-paper:var(--bg-elevated);--bp-ink:var(--primary)}.device-card{border-radius:inherit;width:100%;height:100%;position:relative;overflow:visible}.canvas-card-device{box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.device-card-body,.device-preview-body{isolation:isolate;width:100%;height:100%;color:var(--text-primary);border-radius:var(--radius-sm);justify-content:center;align-items:flex-end;display:flex;position:relative}.device-card-art,.device-preview-art,.device-glyph{width:100%;height:100%;display:block}.device-card-art,.device-preview-art{z-index:-1;pointer-events:none;position:absolute;inset:0}.device-card-plate{text-align:center;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-card) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);flex-direction:column;align-items:center;gap:1px;max-width:100%;margin:0 3px 3px;padding:2px 6px;display:flex;box-shadow:0 0 0 1px #0000001a}.device-card.is-mounted .device-card-body{align-items:center}.device-card.is-mounted .device-card-plate{background:color-mix(in srgb, var(--bg-card) 70%, transparent);margin:0;padding:1px 5px}.device-card.is-thin .device-card-plate{flex-direction:row;align-items:baseline;gap:6px}.device-card.is-thin .device-card-label{width:auto;font-size:11px}.device-card.is-thin .device-card-kind span:not(.device-card-address){display:none}.device-card-address{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--primary-text,var(--primary));background:color-mix(in srgb, var(--primary) 16%, transparent);border-radius:3px;padding:0 4px;font-weight:700}.device-card-u{color:var(--text-secondary);background:color-mix(in srgb, var(--text-tertiary) 18%, transparent);border-radius:3px;padding:0 3px;font-weight:700}.canvas-card-rack{box-shadow:none;background:0 0;border-color:#0000;padding:0;overflow:visible}.canvas-card.is-mounted{box-shadow:none;background:0 0;border-color:#0000;border-radius:2px;padding:0;overflow:visible}.rack-card{border-radius:var(--radius-md);width:100%;height:100%;box-shadow:inset 0 0 0 1px #ffffff12, var(--shadow-sm);color:#dddfe3;background:linear-gradient(#3d4148,#2c2f35);flex-direction:column;display:flex;overflow:hidden}.rack-card.is-focus{box-shadow:inset 0 0 0 1px #ffffff12, 0 0 0 2px var(--primary), 0 0 20px -4px var(--primary)}.rack-head{height:var(--rack-cap);cursor:grab;background:linear-gradient(#464a53,#353940);border-bottom:1px solid #0006;flex-shrink:0;align-items:center;gap:6px;padding:0 8px;display:flex}.rack-address{font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#eeeff1;background:#ffffff1f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.rack-name{min-width:0;font-size:var(--text-sm);color:inherit;background:0 0;border:none;outline:none;flex:1;font-weight:600}.rack-name::placeholder{color:#fff6}.rack-name:focus{background:#00000040;border-radius:3px;padding:0 4px}.rack-warn{color:#f7b645;flex-shrink:0;align-items:center;display:flex}.rack-fill{font-variant-numeric:tabular-nums;color:#ffffffa6;flex-shrink:0;font-size:10px;font-weight:700}.rack-frame{background:#191b1f;flex:1;min-height:0;display:flex}.rack-ruler{width:var(--rack-rail);background:linear-gradient(90deg,#383c42,#282a2f);border-right:1px solid #00000080;flex-direction:column;flex-shrink:0;display:flex}.rack-ruler-right{background:linear-gradient(90deg,#282a2f,#383c42);border-left:1px solid #00000080;border-right:none}.rack-tick{height:var(--rack-unit);font-variant-numeric:tabular-nums;color:#ffffff47;background-image:radial-gradient(circle,#0000008c 0 1px,#0000 1.4px);background-size:100% calc(var(--rack-unit) / 3);flex-shrink:0;justify-content:center;align-items:center;font-size:7px;line-height:1;display:flex;box-shadow:inset 0 -1px #00000059}.rack-tick.is-marked{color:#fff9;background-image:none;font-weight:700}.rack-bay{flex-direction:column;flex:1;min-width:0;display:flex}.rack-slot{height:var(--rack-unit);background:linear-gradient(#ffffff08,#0000);border-bottom:1px solid #ffffff0a;flex-shrink:0}.rack-slot.is-used{background:#14161a;border-bottom-color:#00000080}.rack-foot{justify-content:space-between;align-items:center;gap:var(--space-2);height:var(--rack-foot);font-variant-numeric:tabular-nums;color:#ffffff80;background:linear-gradient(#33363d,#22252a);border-top:1px solid #0006;flex-shrink:0;padding:0 8px;font-size:9px;display:flex}.rack-foot .is-over{color:#f26969;font-weight:700}.device-card.is-flow-dim{opacity:.4;filter:saturate(.5)}.device-card.is-flow-active .device-card-body{box-shadow:0 0 0 2px var(--device-accent,var(--primary)), 0 0 16px -2px var(--device-accent,var(--primary))}.device-card.is-flow-endpoint .device-card-body{outline:2px dashed var(--device-accent,var(--primary));outline-offset:2px}.device-card.is-flow-source{opacity:1;filter:none}.device-card.is-flow-source .device-card-body{box-shadow:0 0 0 2px var(--device-accent,var(--primary)), 0 0 22px -1px var(--device-accent,var(--primary))}.device-ports{pointer-events:none;z-index:3;position:absolute;inset:0}.device-port{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.connector-glyph{display:block;overflow:visible}.device-port-pin{filter:drop-shadow(0 1px 1.5px #00000059);display:block}.device-port-label{white-space:nowrap;text-overflow:ellipsis;max-width:96px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out);padding:1px 5px;font-size:9px;font-weight:600;position:absolute;overflow:hidden}.device-port-right .device-port-label{top:50%;left:13px;transform:translateY(-50%)}.device-port-left .device-port-label{top:50%;right:13px;transform:translateY(-50%)}.device-port-top .device-port-label{bottom:13px;left:50%;transform:translate(-50%)}.device-port-bottom .device-port-label{top:13px;left:50%;transform:translate(-50%)}.canvas-card-device:hover .device-port-label{opacity:1}.device-port-label-edit{opacity:1;pointer-events:auto;color:var(--text-primary);text-align:center;outline:none}.device-port-label-edit:focus{border-color:var(--primary)}.device-card-label{text-align:center;width:100%;font-size:var(--text-sm);color:var(--text-primary);background:0 0;border:none;outline:none;font-weight:600}.device-card-label::placeholder{color:var(--text-tertiary);font-weight:500}.device-card-kind{text-transform:uppercase;letter-spacing:.06em;min-width:0;color:var(--text-tertiary);justify-content:center;align-items:center;gap:4px;font-size:10px;display:flex}.device-card-kind>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cable-badge text{font-family:var(--font-sans,inherit)}.cable-flow{stroke-dasharray:6 10;opacity:.9}.cable-flow-data{animation:1s linear infinite cable-flow-move}.cable-flow-power{animation:1s linear infinite reverse cable-flow-move}@keyframes cable-flow-move{to{stroke-dashoffset:-16px}}@media (prefers-reduced-motion:reduce){.cable-flow-data,.cable-flow-power{animation:none}}.cable-badge-tag{margin-left:var(--space-2);border-radius:var(--radius-full,999px);background:var(--primary-soft);color:var(--primary-text);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.cable-defaults{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow-x:auto}.cable-swatch{border-radius:var(--radius-sm);border:1px solid var(--border);flex-shrink:0;width:16px;height:16px;box-shadow:inset 0 0 0 1px #ffffff26}.cable-field{flex-direction:column;gap:2px;display:flex}.cable-field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-size:9px;font-weight:600}.cable-seg{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);display:inline-flex;overflow:hidden}.cable-seg-btn{color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;padding:3px 8px;font-weight:500}.cable-seg-btn+.cable-seg-btn{border-left:1px solid var(--border)}.cable-seg-btn:hover{background:var(--bg-hover,var(--bg-secondary))}.cable-seg-btn.is-active{background:var(--primary);color:var(--primary-ink)}.cable-select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;max-width:130px;padding:3px 6px;font-family:inherit}.cable-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-xs);outline:none;padding:3px 6px;font-family:inherit}.cable-input:focus{border-color:var(--border-focus,var(--primary))}.wiring-scope-bar{align-items:center;gap:var(--space-2);min-width:0;display:flex}.wiring-scope-field{flex-direction:row;align-items:center;gap:4px}.wiring-scope-glyph{color:var(--text-tertiary);flex-shrink:0}.wiring-scope-rack{max-width:150px}.wiring-scope-count{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary);cursor:default;flex-shrink:0;font-weight:700}.wiring-scope-count .dim{color:var(--text-tertiary);font-weight:500}.wiring-find{align-items:center;gap:4px;min-width:0;display:flex;position:relative}.wiring-find-input{width:150px;min-width:0}.wiring-find-input:focus{width:210px}.wiring-find-input::placeholder{color:var(--text-tertiary)}.wiring-find-clear{border-radius:var(--radius-full);color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex;position:absolute;right:4px}.wiring-find-clear:hover{color:var(--text-primary);background:var(--bg-hover,var(--bg-secondary))}.wiring-find-results{z-index:var(--z-context-menu);width:320px;max-height:280px;animation:menuIn var(--duration-fast) var(--ease-out);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-xl);padding:4px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.wiring-find-row{align-items:baseline;gap:var(--space-2);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;padding:5px 7px;display:flex}.wiring-find-row:hover{background:var(--bg-hover,var(--bg-secondary))}.wiring-find-addr{background:color-mix(in srgb, var(--primary) 16%, transparent);min-width:46px;color:var(--primary-text,var(--primary));font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:center;border-radius:3px;flex-shrink:0;padding:1px 5px;font-weight:700}.wiring-find-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.wiring-find-where{text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:var(--text-xs);color:var(--text-tertiary);flex-shrink:0;overflow:hidden}.wiring-find-empty{padding:var(--space-3);font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;margin:0}.cable-device-grid{gap:var(--space-1);padding:var(--space-2);grid-template-columns:repeat(3,1fr);width:300px;display:grid}.cable-device-btn{padding:var(--space-2);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;display:flex}.cable-device-btn:hover{border-color:var(--border);background:var(--bg-hover,var(--bg-secondary))}.cable-device-btn.is-active{border-color:var(--primary);background:var(--primary-soft)}.cable-device-icon{font-size:22px;line-height:1}.cable-device-name{color:var(--text-secondary);text-align:center;font-size:10px}.cable-inspector-body{gap:var(--space-2);flex-direction:column;display:flex}.cable-inspector .cable-select{width:100%;max-width:none}.cable-inspector .cable-seg{width:100%}.cable-inspector .cable-seg-btn{text-align:center;flex:1}.cable-color-row{align-items:center;gap:var(--space-2);display:flex}.cable-color-input{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:40px;height:26px;padding:0}.cable-color-clear{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;background:0 0;padding:3px 8px;font-size:11px}.cable-color-clear:hover{border-color:var(--primary);color:var(--primary-text)}.boards-header-actions{align-items:center;gap:var(--space-2);display:flex}.board-card-cable-link{color:var(--primary-text);cursor:pointer;opacity:.8;background:0 0;border:none;margin-top:2px;padding:0;font-size:11px}.board-card-cable-link:hover{opacity:1;text-decoration:underline}.cable-port-socket{fill:var(--bg-elevated);stroke:var(--bp-ink);stroke-width:1.5px;opacity:.92;pointer-events:none;transition:r var(--duration-fast) var(--ease-out), stroke var(--duration-fast) var(--ease-out)}.cable-port-glyph{pointer-events:none;filter:drop-shadow(0 1px 1.5px #0000004d)}.cable-port-group:hover .cable-port-socket,.cable-port-group.is-active .cable-port-socket{stroke:var(--primary);stroke-width:2px;r:15}.cable-port-group.is-target .cable-port-socket{stroke:var(--accent);stroke-width:3px;r:17;opacity:1;animation:cable-port-target .9s var(--ease-out) infinite}.cable-port-group.is-target .cable-port-glyph{filter:drop-shadow(0 0 5px var(--accent))}.cable-port-group.is-mismatch{opacity:.3}@keyframes cable-port-target{50%{stroke-width:2px;r:15}}.cable-flow-trace{stroke-dasharray:3 12;opacity:.95;animation:.7s linear infinite cable-flow-trace-move}.cable-flow-trace.flow-reverse{animation-direction:reverse}@keyframes cable-flow-trace-move{to{stroke-dashoffset:-15px}}.connection-line.is-flow-dim{opacity:.28}.connection-line.is-flow-active{opacity:1}@media (prefers-reduced-motion:reduce){.cable-flow-trace,.cable-port-group.is-target .cable-port-socket{animation:none}}.device-palette{z-index:1000;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:fixed;overflow:hidden}.device-palette-head{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);border-bottom:1px solid var(--border);font-weight:700}.device-palette-inner{flex-direction:column;min-height:0;display:flex}.device-palette-search{margin:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-sm);padding:6px 10px;font-family:inherit}.device-palette-search:focus{border-color:var(--primary);outline:none}.device-palette-scroll{max-height:320px;padding:0 var(--space-2) var(--space-2);overflow-y:auto}.device-palette-empty{padding:var(--space-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.device-palette-group+.device-palette-group{margin-top:var(--space-2)}.device-palette-group-title{padding:4px var(--space-1);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-size:10px;font-weight:700}.device-palette-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.device-palette-item{padding:var(--space-2) 4px;border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;display:flex;position:relative}.device-palette-item:hover{background:var(--bg-hover,var(--bg-secondary));border-color:var(--border)}.device-palette-item.is-active{border-color:var(--device-accent,var(--primary));background:var(--primary-soft)}.device-palette-icon{justify-content:center;align-items:center;width:100%;height:26px;display:flex}.device-palette-icon .device-glyph{width:auto;max-width:100%;height:100%}.device-palette-name{text-align:center;color:var(--text-secondary);font-size:10px;line-height:1.2}.device-palette-ports{border-radius:var(--radius-full);background:var(--device-accent,var(--primary));color:#fff;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;display:inline-flex;position:absolute;top:3px;right:4px}.device-palette-dropdown{width:320px;padding:0}.device-palette-dropdown .device-palette-scroll{max-height:340px}.cable-flow-source .cable-select{max-width:160px}.board-stats{z-index:60;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:288px;max-height:calc(100vh - 110px);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:fixed;top:72px;right:16px;overflow:hidden}.board-stats-head{padding:var(--space-3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.board-stats-head h3{font-size:var(--text-sm);margin:0;font-weight:700}.board-stats-body{gap:var(--space-3);padding:var(--space-3);flex-direction:column;display:flex;overflow-y:auto}.stats-totals{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.stats-total{padding:var(--space-2);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;display:flex}.stats-total-num{font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:700}.stats-total-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);font-size:10px}.stats-port-bar{border-radius:var(--radius-full);background:var(--bg-tertiary);height:6px;overflow:hidden}.stats-port-fill{border-radius:inherit;background:var(--primary);height:100%;transition:width var(--duration-fast) var(--ease-out)}.stats-empty{padding:var(--space-3) 0;text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.stats-section{flex-direction:column;gap:4px;display:flex}.stats-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);align-items:center;gap:6px;margin:0;font-size:10px;font-weight:700;display:flex}.stats-facility-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.stats-fact{border-radius:var(--radius-md);background:var(--bg-tertiary);text-align:center;flex-direction:column;align-items:center;gap:1px;padding:5px 2px;display:flex}.stats-fact-num{font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.stats-fact-num small{opacity:.65;font-size:9px;font-weight:600}.stats-fact-num.is-over{color:#ef4d4d}.stats-fact-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);font-size:9px;line-height:1.2}.stats-warn-pill{border-radius:var(--radius-full);color:#c47f08;letter-spacing:0;background:#f59f0a38;align-items:center;gap:2px;padding:0 5px;font-size:9px;font-weight:700;display:inline-flex}.stats-rack-rows{gap:1px}.stats-rack-btn{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);width:100%;color:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;padding:3px 5px;font-family:inherit;display:flex}.stats-rack-btn:hover{background:var(--bg-hover,var(--bg-secondary))}.stats-rack-addr{background:color-mix(in srgb, var(--primary) 16%, transparent);min-width:30px;color:var(--primary-text,var(--primary));font-variant-numeric:tabular-nums;text-align:center;border-radius:3px;flex-shrink:0;padding:0 4px;font-size:10px;font-weight:700}.stats-rack-warn{color:#f59f0a;flex-shrink:0}.stats-wiring-split{font-variant-numeric:tabular-nums;color:var(--text-tertiary);cursor:default;flex-wrap:wrap;gap:4px 10px;padding-top:2px;font-size:10px;display:flex}.stats-rows{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.stats-row{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.stats-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.stats-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:14px;display:flex}.stats-icon .device-glyph{width:auto;max-width:100%;height:100%}.stats-row-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);flex:1;overflow:hidden}.stats-row-count{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.rack-panel{z-index:61;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(660px,100vw - 32px);max-height:calc(100vh - 110px);box-shadow:var(--shadow-xl);animation:modalIn var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:72px;right:16px;overflow:hidden}.rack-panel-head{align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.rack-panel-addr{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--primary) 16%, transparent);color:var(--primary-text,var(--primary));font-size:var(--text-sm);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0;padding:2px 7px;font-weight:700}.rack-panel-title{border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);font-size:var(--text-base);background:0 0;border:1px solid #0000;outline:none;flex:1;padding:2px 4px;font-family:inherit;font-weight:600}.rack-panel-title:focus{border-color:var(--border-focus,var(--primary));background:var(--bg-tertiary)}.rack-panel-title::placeholder{color:var(--text-tertiary);font-weight:500}.rack-panel-body{gap:var(--space-3);min-height:0;padding:var(--space-3);grid-template-columns:1fr 268px;display:grid;overflow-y:auto}.rack-panel-elevation{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.rack-panel-moving{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--text-primary);font-size:var(--text-xs);margin:0;padding:6px 8px;display:flex}.rack-panel-moving strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rack-panel-moving .btn{flex-shrink:0;margin-left:auto}.rack-elev{border:1px solid var(--border);border-radius:var(--radius-md);background:#191b1f;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.rack-elev-row{min-height:calc(var(--span,1) * 22px);border-bottom:1px solid #ffffff0d;align-items:stretch;display:flex}.rack-elev-row:last-child{border-bottom:none}.rack-elev-row.is-warn{box-shadow:inset 3px 0 #f6a823}.rack-elev-u{font-variant-numeric:tabular-nums;color:#ffffff73;background:linear-gradient(90deg,#34373d,#26282c);flex-shrink:0;justify-content:center;align-items:center;width:26px;font-size:9px;font-weight:700;display:flex}.rack-elev-free{align-items:center;gap:var(--space-2);color:#fff6;font-family:inherit;font-size:var(--text-xs);text-align:left;cursor:default;background:repeating-linear-gradient(135deg,#ffffff08 0 6px,#0000 6px 12px);border:none;flex:1;padding:0;display:flex}.rack-elev-free:not(:disabled){cursor:pointer;background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary-text,var(--primary))}.rack-elev-free:not(:disabled):hover{background:color-mix(in srgb, var(--primary) 28%, transparent)}.rack-elev-empty{font-weight:600}.rack-elev-device{align-items:center;gap:var(--space-2);border:none;border-left:3px solid var(--device-accent,var(--primary));color:#e3e5e8;min-width:0;font-family:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;background:linear-gradient(#31343a,#25272d);flex:1;padding:2px 6px;display:flex}.rack-elev-device:hover{background:linear-gradient(#3f434b,#2e3138)}.rack-elev-art{width:40px;height:calc(var(--span,1) * 18px);flex-shrink:0;max-height:46px}.rack-elev-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.rack-elev-facts{font-variant-numeric:tabular-nums;color:#ffffff73;flex-shrink:0;font-size:10px}.rack-elev-tools{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);background:#25272d;flex-shrink:0;align-items:center;gap:1px;padding:0 2px;display:flex}.rack-elev-row:hover .rack-elev-tools,.rack-elev-tools:focus-within{opacity:1}.rack-elev-tools .admin-icon-btn{color:#fff9}.rack-elev-tools .admin-icon-btn:hover{color:#fff;background:#ffffff1f}.rack-panel-side{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.rack-panel-warnings{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.rack-panel-warnings li{border-radius:var(--radius-md);font-size:var(--text-xs);align-items:flex-start;gap:5px;padding:5px 7px;line-height:1.35;display:flex}.rack-panel-warnings li svg{flex-shrink:0;margin-top:1px}.rack-panel-warnings .is-warn{color:#b07207;background:#f59f0a29}.rack-panel-warnings .is-error{color:#cc1e1e;background:#ef434329}.rack-panel-facts{grid-template-columns:repeat(2,1fr);gap:4px;display:grid}.rack-panel-spec{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;margin:0;display:flex}.rack-panel-spec legend{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);padding:0 5px;font-size:10px;font-weight:700}.rack-panel-spec:disabled{opacity:.6}.rack-panel-wiring{gap:var(--space-2);flex-direction:column;display:flex}.rack-panel-wiring h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin:0;font-size:10px;font-weight:700}.rack-panel-scopes{flex-wrap:wrap;gap:4px;display:flex}.rack-panel-links{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.rack-panel-links button{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:var(--text-xs);text-align:left;cursor:pointer;background:0 0;border:none;padding:4px 5px;font-family:inherit;display:flex}.rack-panel-links button:hover{background:var(--bg-hover,var(--bg-secondary))}.rack-panel-links button>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rack-panel-links .dim{color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.rack-panel-addr-sm{background:color-mix(in srgb, var(--primary) 16%, transparent);min-width:28px;color:var(--primary-text,var(--primary));font-variant-numeric:tabular-nums;text-align:center;border-radius:3px;flex-shrink:0;padding:0 4px;font-size:10px;font-weight:700}@media (max-width:760px){.rack-panel-body{grid-template-columns:1fr}}.admin-device-group{margin-top:var(--space-4)}.admin-device-group-head{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700}.admin-device-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(248px,1fr));display:grid}.admin-device-card{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex}.admin-device-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.admin-device-swatch{border-radius:var(--radius-md);background:var(--bg-tertiary);border-bottom:3px solid var(--device-accent,var(--primary));flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:4px;display:flex}.admin-device-swatch .device-glyph{width:auto;max-width:100%;height:auto;max-height:100%}.admin-device-meta{flex:1;min-width:0}.admin-device-meta h3{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:600;overflow:hidden}.admin-device-sub{align-items:center;gap:var(--space-2);font-size:var(--text-xs);margin:2px 0 0;display:flex}.admin-device-sub code{border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);padding:1px 5px;font-size:11px}.admin-device-sub .dim{color:var(--text-tertiary)}.admin-device-actions{gap:2px;margin-left:auto;display:flex}.device-editor{gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.device-editor-grid{gap:var(--space-4);grid-template-columns:280px 1fr;align-items:start;display:grid}.device-editor-preview{gap:var(--space-2);flex-direction:column;display:flex}.device-preview-stage{min-height:240px;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle, var(--border) 1px, transparent 1.5px) 0 0 / 18px 18px, var(--bg-tertiary);justify-content:center;align-items:center;display:flex}.device-preview-name{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-card) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);max-width:calc(100% - 6px);font-size:var(--text-sm);margin:0 3px 3px;padding:2px 6px;font-weight:600;overflow:hidden;box-shadow:0 0 0 1px #0000001a}.device-preview-port{border-radius:var(--radius-sm);cursor:pointer;filter:drop-shadow(0 1px 2px #0000004d);background:0 0;border:none;padding:0;line-height:0;position:absolute;transform:translate(-50%,-50%)}.device-preview-port.is-selected{outline:2px solid var(--primary);outline-offset:2px}.device-editor-hint{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.device-editor-fields{gap:var(--space-3);flex-direction:column;display:flex}.device-field-accent{max-width:96px}.device-color{cursor:pointer;height:34px;padding:2px}.device-editor-ports{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.device-editor-ports-head{justify-content:space-between;align-items:center;display:flex}.device-editor-ports-head h4{font-size:var(--text-sm);margin:0}.device-port-rows{flex-direction:column;gap:6px;display:flex}.device-port-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);grid-template-columns:auto 1.4fr 1.6fr .9fr .7fr 1fr auto;align-items:center;gap:6px;padding:6px;display:grid}.device-port-row-glyph{filter:drop-shadow(0 1px 1px #00000040);line-height:0;display:inline-flex}.device-port-row.is-selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.device-port-row .admin-input{font-size:var(--text-xs);padding:5px 7px}.device-editor-actions{align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);display:flex}.device-editor-actions-right{gap:var(--space-2);margin-left:auto;display:flex}.device-editor-delete{color:var(--danger)}.admin-check{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;display:flex}.admin-check input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.device-editor-tabs{border-bottom:1px solid var(--border);gap:2px;display:flex}.device-editor-tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:7px 14px;font-family:inherit;font-weight:500;display:inline-flex}.device-editor-tab:hover{color:var(--text-primary);background:var(--bg-hover,var(--bg-secondary))}.device-editor-tab.is-active{color:var(--primary-text,var(--primary));border-bottom-color:var(--primary)}.device-editor-tab-count{border-radius:var(--radius-full);background:var(--bg-tertiary);font-variant-numeric:tabular-nums;padding:0 5px;font-size:10px;font-weight:700}.device-editor-face{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.face-reset{align-self:flex-start}.face-designer{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 300px;align-items:start;width:100%;display:grid}.face-stage-wrap{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.face-stage{border-radius:var(--radius-md);background:radial-gradient(circle, var(--border) 1px, transparent 1.5px) 0 0 / 16px 16px, var(--bg-tertiary);width:100%;box-shadow:0 0 0 1px var(--border);touch-action:none;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.face-stage-art{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.face-stage-hint{text-align:center}.face-handles{position:absolute;inset:0}.face-handle{cursor:grab;touch-action:none;border:1px solid #0000;border-radius:2px;min-width:8px;min-height:8px;position:absolute}.face-handle:hover{border-color:#ffffffb3;box-shadow:0 0 0 1px #00000080}.face-handle:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.face-handle.is-selected{border-color:var(--primary);box-shadow:0 0 0 1px #0000008c, 0 0 0 3px color-mix(in srgb, var(--primary) 35%, transparent)}.face-handle:active{cursor:grabbing}.face-handle-size{border:1px solid var(--bg-elevated);background:var(--primary);cursor:nwse-resize;touch-action:none;border-radius:2px;width:10px;height:10px;position:absolute;bottom:-5px;right:-5px}.face-controls{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.face-add{align-items:center;gap:var(--space-2);display:flex}.face-add .admin-input{flex:1;min-width:0}.face-add .admin-sub{white-space:nowrap;flex-shrink:0}.face-list{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;gap:1px;max-height:200px;margin:0;padding:4px;list-style:none;display:flex;overflow-y:auto}.face-list-row{align-items:baseline;gap:var(--space-2);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:var(--text-xs);text-align:left;cursor:pointer;background:0 0;border:none;padding:4px 6px;font-family:inherit;display:flex}.face-list-row:hover{background:var(--bg-hover,var(--bg-tertiary))}.face-list-row.is-selected{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--primary-text,var(--primary));font-weight:600}.face-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.face-list-pos{font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-shrink:0}.face-list-empty{padding:var(--space-2);line-height:1.4}.face-inspector{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;display:flex}.face-inspector-head{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.face-inspector-tools{gap:1px;display:flex}.face-inspector-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.face-num{min-width:0}.face-num .admin-input{font-size:var(--text-xs);padding:4px 6px}.face-num-wide{grid-column:span 3}@media (max-width:1000px){.face-designer{grid-template-columns:1fr}}@media (max-width:720px){.device-editor-grid{grid-template-columns:1fr}.device-port-row{grid-template-columns:auto 1fr 1fr}}.device-details-backdrop{background:var(--bg-overlay);z-index:var(--z-modal-backdrop);padding:var(--space-4);animation:fadeIn var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.device-details{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);width:min(560px,100%);max-height:min(78vh,720px);box-shadow:var(--shadow-xl);z-index:var(--z-modal);animation:modalIn var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.device-details-head{align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);border-top:3px solid var(--device-accent,var(--primary));display:flex}.device-details-icon{flex-shrink:0;justify-content:center;align-items:center;width:44px;height:30px;display:flex}.device-details-icon .device-glyph{width:auto;max-width:100%;height:auto;max-height:100%}.device-details-titles{flex:1;min-width:0}.device-details-titles h3{font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}.device-details-kind{font-size:var(--text-xs);color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.device-details-addr{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--primary) 16%, transparent);color:var(--primary-text,var(--primary));font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:pointer;border:none;padding:1px 6px;font-weight:700}.device-details-addr:hover{background:color-mix(in srgb, var(--primary) 26%, transparent);text-decoration:underline}.device-details-physical{font-variant-numeric:tabular-nums}.device-details-physical:before{content:"·";margin-right:6px}.device-details-tabs{padding:var(--space-2) var(--space-3) 0;border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.device-details-tab{color:var(--text-secondary);font-size:var(--text-sm);border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:8px 12px;font-weight:500;display:inline-flex}.device-details-tab:hover{color:var(--text-primary);background:var(--bg-hover,var(--bg-secondary))}.device-details-tab.is-active{color:var(--primary-text,var(--primary));border-bottom-color:var(--primary)}.device-details-tab-count{min-width:16px;height:16px;color:var(--primary-ink,#fff);background:var(--primary);border-radius:var(--radius-full);justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.device-details-body{min-height:0;padding:var(--space-4);flex:1;overflow-y:auto}.device-details-textarea{resize:vertical;width:100%;min-height:220px;padding:var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out);outline:none;line-height:1.6}.device-details-textarea:focus{border-color:var(--primary)}.device-details-todos,.device-details-logs{flex-direction:column;min-height:0;display:flex}.device-details-logs .device-details-add{margin-top:0;margin-bottom:var(--space-3)}.device-details-empty{padding:var(--space-4) 0;text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.device-details-progress{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);font-weight:600}.device-details-add{gap:var(--space-2);margin-top:var(--space-3);display:flex}.device-details-add .admin-input{flex:1}.device-todo-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.device-todo{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);padding:4px 6px;display:flex}.device-todo:hover{background:var(--bg-secondary)}.device-todo input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.device-todo-text{min-width:0;font:inherit;font-size:var(--text-sm);color:var(--text-primary);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;outline:none;flex:1;padding:4px 6px}.device-todo-text:hover{border-color:var(--border)}.device-todo-text:focus{border-color:var(--primary);background:var(--bg-card)}.device-todo.is-done .device-todo-text{color:var(--text-tertiary);text-decoration:line-through}.device-log-list{margin:var(--space-3) 0 0;flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.device-log{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);display:flex}.device-log-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.device-log-time{letter-spacing:.02em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:600}.device-log-text{font-size:var(--text-sm);color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.device-details-badge{z-index:4;min-width:18px;height:18px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-strong,var(--border));border-radius:var(--radius-full);box-shadow:var(--shadow-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);align-items:center;gap:2px;padding:2px 4px;display:inline-flex;position:absolute;top:5px;right:5px}.device-details-badge:hover{color:var(--primary-text,var(--primary));border-color:var(--primary)}.device-details-badge-count{font-size:10px;font-weight:700;line-height:1}:root{--part-line:#43372d;--part-fill:#43372d0d;--part-dead:#a49e98}[data-theme=dark]{--part-line:#e0dcd6;--part-fill:#efebe70f;--part-dead:#726b65}.canvas-card-part{box-shadow:none;background:0 0;border-color:#0000;overflow:visible}.part-card{border-radius:inherit;width:100%;height:100%;color:var(--part-line);position:relative;overflow:visible}.part-card-body{isolation:isolate;border-radius:var(--radius-sm);justify-content:center;align-items:flex-end;width:100%;height:100%;transition:filter .14s;display:flex;position:relative}.part-card-art,.part-glyph{width:100%;height:100%;display:block}.part-card-art{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:visible}.part-card-plate{text-align:center;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-card) 84%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);flex-direction:column;align-items:center;gap:1px;max-width:100%;margin:0 3px 2px;padding:1px 5px;display:flex}.part-card-label{width:100%;min-width:0;color:var(--text-primary);text-align:center;background:0 0;border:none;outline:none;padding:0;font-size:11px;font-weight:600;line-height:1.2}.part-card-label::placeholder{color:var(--text-tertiary);font-weight:500}.part-card-rating{color:var(--text-tertiary);letter-spacing:.02em;font-size:9px;font-weight:600;line-height:1}.part-card.is-energised .part-card-body{filter:none}.part-card.is-running .part-card-body{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--part-accent) 80%, transparent)) drop-shadow(0 0 22px color-mix(in srgb, var(--part-accent) 40%, transparent))}.part-card.is-running.part-load .part-card-art{animation:2.4s ease-in-out infinite part-glow}@keyframes part-glow{0%,to{opacity:1}50%{opacity:.86}}.part-card.is-dead{color:var(--part-dead)}.part-card.is-dead .part-card-body{opacity:.62}.part-card.has-fault .part-card-body{box-shadow:0 0 0 2px color-mix(in srgb, var(--error) 70%, transparent);border-radius:var(--radius-sm)}.part-card.fault-warn .part-card-body{box-shadow:0 0 0 2px color-mix(in srgb, var(--warning,#f59e0b) 65%, transparent)}.part-card.fault-info .part-card-body{box-shadow:0 0 0 1.5px color-mix(in srgb, var(--text-tertiary) 50%, transparent)}.part-fault-badge{z-index:3;color:#fff;background:var(--error);pointer-events:auto;cursor:help;border-radius:50%;place-items:center;width:17px;height:17px;display:grid;position:absolute;top:-7px;right:-7px;box-shadow:0 1px 4px #0000004d}.part-card.fault-warn .part-fault-badge{background:var(--warning,#f59e0b)}.part-card.fault-info .part-fault-badge{background:var(--text-tertiary)}.part-toggle{z-index:2;cursor:pointer;background:0 0;border:none;padding:0;line-height:0;position:absolute;top:3px;right:3px}.part-toggle-b{top:21px}.part-toggle-track{background:color-mix(in srgb, var(--text-tertiary) 40%, var(--bg-card));border:1px solid var(--border);border-radius:999px;width:26px;height:14px;transition:background .12s;display:block}.part-toggle-knob{background:var(--bg-card);border-radius:50%;width:10px;height:10px;margin:1px;transition:transform .12s;display:block;box-shadow:0 1px 2px #00000047}.part-card.is-closed .part-toggle-track{background:color-mix(in srgb, var(--part-accent) 80%, transparent)}.part-card.is-closed .part-toggle-knob{transform:translate(12px)}.part-toggle:focus-visible .part-toggle-track{outline:2px solid var(--primary);outline-offset:2px}.part-terminals{pointer-events:none;position:absolute;inset:0}.part-terminal{align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%,-50%)}.part-terminal-pin{background:var(--terminal-color);width:9px;height:9px;box-shadow:0 0 0 1.5px var(--bg-card);border-radius:50%;display:block}.part-terminal.role-PE .part-terminal-pin{background:conic-gradient(var(--terminal-color) 0deg 90deg, var(--terminal-stripe) 90deg 180deg, var(--terminal-color) 180deg 270deg, var(--terminal-stripe) 270deg 360deg)}.part-terminal.is-live .part-terminal-pin{box-shadow:0 0 0 1.5px var(--bg-card), 0 0 7px 1px color-mix(in srgb, var(--terminal-color) 85%, transparent)}.part-terminal-label{color:var(--text-tertiary);white-space:nowrap;opacity:0;font-size:8px;font-weight:700;line-height:1;transition:opacity .12s}.canvas-card-part:hover .part-terminal-label,.canvas-card-part.selected .part-terminal-label{opacity:1}.part-terminal-left{flex-direction:row-reverse}.part-terminal-left .part-terminal-label{text-align:right}.part-terminal-top{flex-direction:column-reverse}.part-terminal-bottom{flex-direction:column}.part-terminal-label-edit{width:34px;color:var(--text-secondary);text-align:center;background:var(--bg-card);border:1px solid var(--border);opacity:1;pointer-events:auto;border-radius:3px;outline:none;padding:0;font-size:8px;font-weight:700}.part-card.is-structure{color:color-mix(in srgb, var(--part-accent) 70%, var(--part-line))}.part-card.is-structure .part-structure-outline{opacity:.55;pointer-events:none;position:absolute;inset:0}.part-structure-label{letter-spacing:.02em;width:auto;max-width:calc(100% - 20px);color:color-mix(in srgb, var(--part-accent) 80%, var(--text-primary));text-transform:uppercase;background:color-mix(in srgb, var(--bg-card) 88%, transparent);border-radius:var(--radius-sm);border:none;outline:none;padding:2px 7px;font-size:12px;font-weight:700;position:absolute;top:6px;left:10px}.canvas-card-part:has(.is-structure){background:color-mix(in srgb, var(--part-accent,var(--primary)) 4%, transparent)}.blueprint-layer.is-wire .wire-terminal-socket{fill:var(--bg-card);stroke:var(--border);stroke-width:1px;opacity:0;transition:opacity .12s}.blueprint-layer.is-wire .wire-terminal-pin{fill:var(--role-color);stroke:var(--bg-card);stroke-width:1.5px;transition:r .12s,opacity .12s}.blueprint-layer.is-wire .wire-terminal-stripe{fill:var(--role-stripe);pointer-events:none}.blueprint-layer.is-wire .wire-terminal-group:hover .wire-terminal-socket{opacity:1}.blueprint-layer.is-wire .wire-terminal-group:hover .wire-terminal-pin,.blueprint-layer.is-wire .wire-terminal-group.is-active .wire-terminal-pin{r:7}.blueprint-layer.is-wire .wire-terminal-group.is-target .wire-terminal-pin{r:8;stroke:var(--role-color);stroke-width:2.5px;filter:drop-shadow(0 0 6px var(--role-color))}.blueprint-layer.is-wire .wire-terminal-group.is-mismatch .wire-terminal-pin,.blueprint-layer.is-wire .wire-terminal-group.is-mismatch .wire-terminal-stripe{opacity:.2}.blueprint-layer.is-wire .wire-terminal-group.is-dangerous .wire-terminal-pin{opacity:.5;stroke:var(--error);stroke-width:2px;stroke-dasharray:2 2}.connection-line.is-conductor.is-live path{filter:drop-shadow(0 0 4px)}.connection-line.is-conductor.is-dead{opacity:.42}.wire-toolbar{gap:6px;overflow:visible}.wire-toolbar .toolbar-title{flex:0 auto;min-width:0}.wire-toolbar .toolbar-title-input{min-width:48px}.wire-toolbar .wire-select{flex:0 auto;min-width:0}.wire-field{align-items:center;gap:4px;display:flex;position:relative}.wire-sep{background:var(--border);width:1px;height:20px}.wire-spacer{flex:1;min-width:4px}.wire-select{max-width:118px;height:26px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;outline:none;padding:0 6px;font-size:11px;font-weight:600}.wire-select:focus-visible{border-color:var(--primary)}.wire-mm2{max-width:84px}.wire-role-more{max-width:34px}.wire-lang{text-align:center;width:34px}.wire-capacity{color:var(--text-tertiary);white-space:nowrap;font-size:10px;font-weight:700}.wire-role{height:26px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:4px;padding:0 8px 0 6px;font-size:11px;font-weight:700;display:flex}.wire-role.is-active{color:var(--text-primary);border-color:var(--role-color);background:color-mix(in srgb, var(--role-color) 14%, var(--bg-card))}.wire-role-swatch{background:var(--role-color);background-image:linear-gradient(135deg, var(--role-color) 0 50%, var(--role-stripe) 50% 100%);border-radius:50%;width:10px;height:10px}.wire-add-button{height:26px;color:var(--primary-text,var(--primary));background:color-mix(in srgb, var(--primary) 12%, var(--bg-card));border:1px solid color-mix(in srgb, var(--primary) 40%, var(--border));border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:4px;padding:0 10px 0 8px;font-size:11px;font-weight:700;display:flex}.wire-add-menu{z-index:60;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);width:340px;max-height:460px;position:absolute;top:32px;left:0;overflow:hidden;box-shadow:0 12px 40px #00000038}.wire-panels{gap:2px}.wire-panel-tab{width:28px;height:26px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.wire-panel-tab:hover,.wire-panel-tab.is-active{color:var(--text-primary);background:var(--bg-card);border-color:var(--border)}.wire-panel-tab.has-errors{color:var(--error)}.wire-panel-tab.has-warns{color:var(--warning,#f59e0b)}.wire-badge{min-width:13px;height:13px;color:var(--text-primary);text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:0 3px;font-size:9px;font-weight:800;line-height:13px;position:absolute;top:-3px;right:-3px}.wire-badge.is-error{color:#fff;background:var(--error);border-color:#0000}.wire-badge.is-warn{color:#1a1a1a;background:var(--warning,#f59e0b);border-color:#0000}.wire-power{letter-spacing:.02em;height:28px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 12px 0 9px;font-size:11px;font-weight:800;transition:background .14s,color .14s,box-shadow .14s;display:flex}.wire-power.is-on{color:#1a1400;background:linear-gradient(#fde047,#f59e0b);border-color:#d97706;box-shadow:0 0 14px #fbbd2380}.wire-power-label{white-space:nowrap}.canvas-container.wire-board.is-live:after{content:"";z-index:150;pointer-events:none;border:2px solid #ef4343;animation:2.6s ease-in-out infinite wire-live-frame;position:absolute;inset:0;box-shadow:inset 0 0 22px -4px #ef43438c,inset 0 0 70px -30px #ef4343e6}@keyframes wire-live-frame{0%,to{border-color:#ef43438c;box-shadow:inset 0 0 18px -6px #ef434366,inset 0 0 60px -30px #ef4343b3}50%{border-color:#ef4d4df2;box-shadow:inset 0 0 30px -2px #ef4343b3,inset 0 0 90px -24px #ef4343}}.conductor-flow{stroke-dasharray:5 11;opacity:.95}.conductor-flow.flow-forward{animation:.9s linear infinite conductor-flow-move}.conductor-flow.flow-reverse{animation:.9s linear infinite reverse conductor-flow-move}@keyframes conductor-flow-move{to{stroke-dashoffset:-16px}}@media (prefers-reduced-motion:reduce){.canvas-container.wire-board.is-live:after{border-color:#ef4343e6;animation:none}.conductor-flow,.part-card.is-running.part-load .part-card-art{animation:none}}.part-palette{z-index:300;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);max-height:460px;position:fixed;overflow:hidden;box-shadow:0 16px 48px #00000042}.part-palette-head{letter-spacing:.04em;color:var(--text-tertiary);text-transform:uppercase;border-bottom:1px solid var(--border-light);padding:9px 12px 7px;font-size:11px;font-weight:800}.part-palette-inner{flex-direction:column;max-height:424px;display:flex}.part-palette-search{color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;margin:8px 10px 6px;padding:6px 9px;font-size:12px}.part-palette-search:focus{border-color:var(--primary)}.part-palette-cats{flex-wrap:wrap;gap:2px;padding:0 10px 6px;display:flex}.part-palette-cat{border-radius:var(--radius-sm);cursor:pointer;filter:grayscale(.6);opacity:.75;background:0 0;border:1px solid #0000;width:24px;height:24px;font-size:12px;line-height:1}.part-palette-cat:hover,.part-palette-cat.is-active{background:var(--bg-card);border-color:var(--border);filter:none;opacity:1}.part-palette-scroll{flex:1;min-height:0;padding:0 10px 10px;overflow-y:auto}.part-palette-group-title{letter-spacing:.05em;color:var(--text-tertiary);text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 2px 5px;font-size:10px;font-weight:800;display:flex}.part-palette-group-count{opacity:.7;font-weight:700}.part-palette-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.part-palette-item{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:6px 3px 5px;transition:border-color .12s,transform .12s;display:flex}.part-palette-item:hover{border-color:var(--part-accent);transform:translateY(-1px)}.part-palette-icon{width:34px;height:30px;color:var(--part-line);display:block}.part-palette-name{color:var(--text-primary);text-align:center;font-size:9.5px;font-weight:700;line-height:1.15}.part-palette-alt{color:var(--text-tertiary);text-align:center;font-size:8px;font-weight:600;line-height:1.1}.part-palette-empty{color:var(--text-tertiary);text-align:center;padding:18px 4px;font-size:12px}.circuit-panel{top:calc(var(--toolbar-height) + var(--space-3) * 2);right:var(--space-3);bottom:var(--space-3);z-index:38;background:color-mix(in srgb, var(--bg-elevated) 96%, transparent);border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;width:min(392px,100vw - 24px);display:flex;position:fixed;overflow:hidden;box-shadow:0 10px 36px #0003}.circuit-panel-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:8px;padding:7px 8px 7px 10px;display:flex}.circuit-tabs{gap:2px;display:flex}.circuit-tab{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 9px;font-size:11px;font-weight:700}.circuit-tab.is-active{color:var(--text-primary);background:var(--bg-card);border-color:var(--border)}.circuit-panel-actions{gap:2px;display:flex}.circuit-icon-btn{width:26px;height:26px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.circuit-icon-btn:hover{color:var(--text-primary);background:var(--bg-card)}.circuit-panel-body{flex:1;min-height:0;padding:10px;overflow-y:auto}.circuit-checks{flex-direction:column;gap:6px;display:flex}.circuit-check{text-align:left;background:var(--bg-card);border:1px solid var(--border-light);border-left:3px solid var(--text-tertiary);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:8px;width:100%;padding:8px 9px;display:flex}.circuit-check:hover{border-color:var(--primary)}.circuit-check.sev-error{border-left-color:var(--error)}.circuit-check.sev-warn{border-left-color:var(--warning,#f59e0b)}.circuit-check.sev-info{border-left-color:var(--text-tertiary)}.circuit-check-icon{flex:none;margin-top:1px}.circuit-check.sev-error .circuit-check-icon{color:var(--error)}.circuit-check.sev-warn .circuit-check-icon{color:var(--warning,#f59e0b)}.circuit-check.sev-info .circuit-check-icon{color:var(--text-tertiary)}.circuit-check-text{flex-direction:column;gap:2px;min-width:0;display:flex}.circuit-check-text strong{color:var(--text-primary);font-size:12px}.circuit-check-text span{color:var(--text-secondary);font-size:11px;line-height:1.45}.circuit-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:36px 20px;display:flex}.circuit-empty p{margin:0;font-size:12px}.circuit-empty.is-ok{color:var(--success,#22c55e)}.circuit-empty.is-ok p{color:var(--text-secondary)}.circuit-note{color:var(--text-tertiary);margin:10px 0 0;font-size:10.5px;line-height:1.5}.circuit-note.is-warn{color:var(--warning,#f59e0b)}.circuit-table-wrap{overflow-x:auto}.circuit-table{border-collapse:collapse;width:100%;font-size:11px}.circuit-table th{letter-spacing:.04em;color:var(--text-tertiary);text-align:left;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 6px;font-size:9.5px;font-weight:800}.circuit-table td{color:var(--text-secondary);vertical-align:top;border-bottom:1px solid var(--border-light);padding:6px}.circuit-table td.is-bad{color:var(--error);font-weight:700}.circuit-num{color:var(--text-tertiary);font-weight:800}.circuit-name{color:var(--text-primary);font-weight:700;display:block}.circuit-points,.circuit-len,.circuit-mat-runs{color:var(--text-tertiary);font-size:9.5px;display:block}.circuit-rating{color:var(--text-primary);font-weight:700;display:block}.circuit-rcd{color:var(--success,#22c55e);font-size:9.5px;font-weight:700;display:block}.circuit-rcd.is-missing{color:var(--error)}.circuit-load{margin-top:14px}.circuit-load h4,.circuit-materials h4{letter-spacing:.05em;color:var(--text-tertiary);text-transform:uppercase;margin:14px 0 6px;font-size:10px;font-weight:800}.circuit-load dl{grid-template-columns:repeat(2,1fr);gap:6px;margin:0;display:grid}.circuit-load dl>div{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:6px 8px}.circuit-load dl>div.is-bad{border-color:var(--error)}.circuit-load dt{color:var(--text-tertiary);font-size:9.5px}.circuit-load dd{color:var(--text-primary);margin:1px 0 0;font-size:13px;font-weight:700}.circuit-mat-list{margin:0;padding:0;list-style:none}.circuit-mat-list li{border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:5px 2px;display:flex}.circuit-mat-icon{width:22px;height:20px;color:var(--part-line);flex:none;display:block}.circuit-mat-name{min-width:0;color:var(--text-primary);flex:1;font-size:11.5px}.circuit-mat-count{color:var(--text-primary);text-align:right;white-space:nowrap;font-size:12px;font-weight:800}.circuit-legend{flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;list-style:none;display:flex}.circuit-legend li{color:var(--text-secondary);align-items:center;gap:5px;font-size:10.5px;display:flex}.circuit-legend-swatch{background-image:linear-gradient(135deg, var(--role-color) 0 50%, var(--role-stripe) 50% 100%);width:11px;height:11px;box-shadow:0 0 0 1px var(--border);border-radius:50%}body:has(.circuit-panel) .minimap-container{right:calc(min(392px, 100vw - 24px) + var(--space-4) + var(--space-3))}@media (max-width:720px){.circuit-panel{width:auto;max-height:52vh;inset:auto 8px 8px}.wire-toolbar{height:auto;padding:6px var(--space-2);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:center}.wire-spacer{display:none}body:has(.circuit-panel) .minimap-container{display:none}}.wire-empty{z-index:5;text-align:center;background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;align-items:center;width:min(520px,100vw - 48px);padding:28px 26px 22px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 44px #0000002e}.wire-empty-mark{color:#1a1400;background:linear-gradient(#fde047,#f59e0b);border-radius:50%;place-items:center;width:46px;height:46px;margin-bottom:12px;display:grid;box-shadow:0 0 18px #fbbd2359}.wire-empty h2{letter-spacing:-.01em;color:var(--text-primary);margin:0 0 6px;font-size:19px;font-weight:800}.wire-empty-lede{max-width:40ch;color:var(--text-secondary);margin:0 0 18px;font-size:13px;line-height:1.55}.wire-empty-cta{text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:14px;width:100%;padding:12px 14px;transition:border-color .14s,transform .14s,box-shadow .14s;display:flex}.wire-empty-cta:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 6px 18px #00000024}.wire-empty-cta-parts{flex:none;gap:3px;display:flex}.wire-empty-chip{width:30px;height:30px;color:var(--part-line);background:color-mix(in srgb, var(--part-accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--part-accent) 30%, var(--border));border-radius:var(--radius-sm);place-items:center;padding:3px;display:grid}.wire-empty-cta-text{flex-direction:column;gap:2px;min-width:0;display:flex}.wire-empty-cta-text strong{color:var(--text-primary);font-size:13px;font-weight:700}.wire-empty-cta-text small{color:var(--text-tertiary);font-size:11.5px;line-height:1.4}.wire-empty-hints{flex-direction:column;gap:7px;width:100%;margin:18px 0 0;padding:0;list-style:none;display:flex}.wire-empty-hints li{color:var(--text-tertiary);align-items:center;gap:8px;font-size:12px;display:flex}.wire-empty-hints svg{color:var(--text-tertiary);flex:none}.wire-empty-hints kbd{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:inherit;font-size:10.5px;font-weight:700}@media (max-width:720px){.wire-empty{padding:22px 18px 18px}.wire-empty-cta{flex-direction:column;align-items:flex-start;gap:10px}}.wire-part-inspector,.wire-conductor-inspector{gap:9px;width:280px}.wi-title{align-items:center;gap:8px;min-width:0;display:flex}.wi-glyph{width:30px;height:30px;color:var(--part-line);background:color-mix(in srgb, var(--part-accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--part-accent) 30%, var(--border));border-radius:var(--radius-sm);flex:none;place-items:center;padding:2px;display:grid}.wi-swatch{background-image:linear-gradient(135deg, var(--role-color) 0 50%, var(--role-stripe) 50% 100%);width:14px;height:14px;box-shadow:0 0 0 1px var(--border);border-radius:50%;flex:none}.wi-title-text{flex-direction:column;gap:1px;min-width:0;display:flex}.wi-title-text strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;overflow:hidden}.wi-title-text small{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.wi-hint{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.5}.wi-live{border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-light);color:var(--text-tertiary);justify-content:space-between;align-items:center;gap:8px;padding:5px 9px;font-size:11px;font-weight:700;display:flex}.wi-live.is-live{color:#b45309;background:color-mix(in srgb, #f59e0b 10%, var(--bg-card));border-color:#f59e0b73}.wi-live.is-running{color:#15803d;background:color-mix(in srgb, #22c55e 10%, var(--bg-card));border-color:#22c55e73}[data-theme=dark] .wi-live.is-live{color:#fbbf24}[data-theme=dark] .wi-live.is-running{color:#4ade80}.wi-live-figure{font-variant-numeric:tabular-nums;font-weight:800}.wi-field{flex-direction:column;gap:3px;min-width:0;display:flex}.wi-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.wi-label{letter-spacing:.03em;color:var(--text-tertiary);text-transform:uppercase;font-size:10px;font-weight:700}.wi-unit{text-transform:none;opacity:.8;font-weight:600}.wi-input{font-variant-numeric:tabular-nums;width:100%;height:28px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:0 7px;font-size:12px;font-weight:600}.wi-input:focus{border-color:var(--primary)}.wi-toggle-row{gap:5px;display:flex}.wi-toggle{height:28px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex:1;font-size:11.5px;font-weight:700}.wi-toggle.is-on{color:#1a1400;background:linear-gradient(#fde047,#f59e0b);border-color:#d97706}.wi-note{color:var(--text-tertiary);margin:0;font-size:10.5px;line-height:1.45}.wi-note strong{color:var(--text-secondary)}.wi-faults{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.wi-faults li,.wi-verdict{color:var(--text-secondary);background:var(--bg-card);border-radius:var(--radius-sm);border-left:3px solid var(--text-tertiary);align-items:flex-start;gap:6px;margin:0;padding:6px 8px;font-size:10.5px;line-height:1.45;display:flex}.wi-faults li strong,.wi-verdict strong{color:var(--text-primary);display:block}.wi-faults li.sev-error,.wi-verdict.sev-error{border-left-color:var(--error)}.wi-faults li.sev-warn,.wi-verdict.sev-warn{border-left-color:var(--warning)}.wi-faults li svg,.wi-verdict svg{flex:none;margin-top:1px}@media (max-width:720px){.wire-part-inspector,.wire-conductor-inspector{top:auto;bottom:var(--space-3);left:var(--space-3);right:var(--space-3);width:auto;max-height:46vh;overflow-y:auto}}
