:root{--n-bg-13: #131519;--n-bg-24: #1e2128;--n-bg-77: #484b51;--n-bg-90: #1a1b1d;--n-bg-93: #212225;--n-bg-100: #2f3135;--n-bd-50: #5e636d;--n-bd-62: #535760;--n-bd-73: #494d55;--n-bd-78: #44474e;--n-bd-82: #41444b;--n-bd-86: #3d4046;--n-bd-89: #393c42;--n-bd-93: #36383e;--n-bd-100: #2f3237;--n-tx-07: #d3d5d8;--n-tx-13: #c8cace;--n-tx-17: #c3c5c9;--n-tx-20: #bdc0c5;--n-tx-27: #b2b5bb;--n-tx-33: #a7aab1;--n-tx-38: #9fa3aa;--n-tx-47: #90959d;--n-tx-50: #8b8f98;--n-tx-54: #848992;--n-tx-100: #ffffff;--n-ink-07: #e4e5e6;--n-ink-10: #dcdde0;--n-ink-13: #d6d7da;--n-ink-17: #ced0d3;--n-ink-23: #c1c3c7;--n-ink-43: #999ca2;--n-ink-31: #b0b3b8;--n-ink-38: #a3a6ac;--n-ink-51: #868a92;--n-ink-54: #81858d;--n-ink-65: #6b6f76;--n-ink-60: #757981;--n-ink-70: #61656c;--n-ink-87: #424449;--n-ink-97: #2f3134;--n-ink-100: #292b2e;--a-bg-32: #e78e23;--a-bg-38: #e78e23;--a-bg-46: #e78e23;--a-bg-84: #403529;--a-bg-94: #4e3e2a;--a-bg-98: #4e3e2a;--a-bd-36: #e89530;--a-bd-31: #e89530;--a-bd-46: #e89530;--a-bd-65: #e89530;--a-bd-72: #e89530;--a-bd-81: #674f32;--a-bd-85: #674f32;--a-tx-36: #eba147;--a-tx-15: #e5ae6c;--a-tx-28: #e5ae6c;--a-ink-36: #ef9d39;--a-ink-25: #ef9d39;--a-ink-95: #56442e;--r-bg-98: #3b1c1c;--r-bg-98b: #3b1c1f;--r-bd-53: #cc3346;--r-bd-74: #853232;--r-bd-77: #853232;--r-tx-34: #dd5f5f;--r-tx-28: #dd5f74;--r-tx-35: #dd5f76;--r-tx-42: #dd5f5f;--r-ink-41: #e06f52;--r-ink-51: #e05252;--r-ink-50: #e05271;--r-ink-97: #5d282c;--g-bg-36: #28bd5f;--g-bg-95: #1c3b24;--g-bd-79: #32854a;--g-tx-25: #5fdd87;--g-ink-27: #52e08c;--o-ink-32: #e0a452;--o-ink-36: #e09f52;--o-ink-53: #e08c52;--o-ink-95: #5d4a28;--p-tx-45: #b285d6;--canvas-bg: #15171b;--canvas-wash: rgba(21, 23, 27, .85);--surface-float: rgba(38, 40, 45, .92);--accent-wash: rgba(239, 154, 43, .13);--accent-wash-strong: rgba(239, 154, 43, .2);--accent-wash-soft: rgba(239, 154, 43, .1);--focus-ring: rgba(239, 154, 43, .3);--shadow-sm: rgba(0, 0, 0, .42);--shadow-md: rgba(0, 0, 0, .5);--shadow-lg: rgba(0, 0, 0, .62);--shadow-xl: rgba(0, 0, 0, .66);--overlay-scrim: rgba(8, 9, 11, .62);--overlay-scrim-strong: rgba(8, 9, 11, .72);--login-glow: rgba(239, 154, 43, .16);--login-mark-ring: rgba(255, 255, 255, .1);--login-card-border: rgba(255, 255, 255, .08);--login-badge-bg: #ffffff;--login-badge-tx: #16181c;--login-submit-tx: #1b1d21;--watermark-ink: rgba(255, 255, 255, .085);--icon-fill: #2b2d31;--icon-accent: #ef9d39;--chart-1: #5b9cf6;--chart-2: #f2705e;--chart-3: #46c97a;--chart-4: #f0a83c;--chart-5: #a988f0;--chart-6: #35b6d4;--chart-7: #f070b0;--chart-8: #a3cf47;--chart-9: #f2688b;--chart-10: #35b2a0;--chart-pos: #4cc98a;--chart-neg: #ef8a55}:root[data-theme=light]{--n-bg-13: #15202b;--n-bg-24: #263b52;--n-bg-77: #c4c4c4;--n-bg-90: #e6e6e6;--n-bg-93: #eeeeee;--n-bg-100: #ffffff;--n-bd-50: #6f7f92;--n-bd-62: #7a9cc4;--n-bd-73: #b9b9b9;--n-bd-78: #c8c8c8;--n-bd-82: #d0d0d0;--n-bd-86: #d4dbe2;--n-bd-89: #e4e4e4;--n-bd-93: #eeeeee;--n-bd-100: #ffffff;--n-tx-07: #111111;--n-tx-13: #222222;--n-tx-17: #222233;--n-tx-20: #333333;--n-tx-27: #444444;--n-tx-33: #555555;--n-tx-38: #606060;--n-tx-47: #777777;--n-tx-50: #777788;--n-tx-54: #8a8a8a;--n-tx-100: #ffffff;--n-ink-07: #111111;--n-ink-10: #1a1a1a;--n-ink-13: #222222;--n-ink-17: #2b2b2b;--n-ink-23: #333344;--n-ink-43: #4a6b8f;--n-ink-31: #505050;--n-ink-38: #606060;--n-ink-51: #7a828c;--n-ink-54: #8a8a8a;--n-ink-65: #97a6b6;--n-ink-60: #999999;--n-ink-70: #b3b3b3;--n-ink-87: #d8dde3;--n-ink-97: #f7f7f7;--n-ink-100: #ffffff;--a-bg-32: #1b5087;--a-bg-38: #225f9f;--a-bg-46: #2f68bc;--a-bg-84: #c6d4e8;--a-bg-94: #dfeeff;--a-bg-98: #f7fbff;--a-bd-36: #0057b8;--a-bd-31: #1b4d82;--a-bd-46: #2f75bd;--a-bd-65: #5b9cf0;--a-bd-72: #8eb4df;--a-bd-81: #b9cee6;--a-bd-85: #c3d6ec;--a-tx-36: #0057b8;--a-tx-15: #10233b;--a-tx-28: #1e3f6f;--a-ink-36: #0057b8;--a-ink-25: #143d6b;--a-ink-95: #e7f0ff;--r-bg-98: #fff5f5;--r-bg-98b: #fff5f6;--r-bd-53: #d23b4e;--r-bd-74: #d8a0a0;--r-bd-77: #e6a2a2;--r-tx-34: #8c2020;--r-tx-28: #8f0018;--r-tx-35: #b00020;--r-tx-42: #b91c1c;--r-ink-41: #b43c1d;--r-ink-51: #dc2626;--r-ink-50: #e11d48;--r-ink-97: #fff1f2;--g-bg-36: #16a34a;--g-bg-95: #eef9f1;--g-bd-79: #b9dcc3;--g-tx-25: #245d36;--g-ink-27: #0f7a3b;--o-ink-32: #8a5a18;--o-ink-36: #b66300;--o-ink-53: #f97316;--o-ink-95: #fff7e8;--p-tx-45: #7a3fa8;--canvas-bg: #ffffff;--canvas-wash: rgba(255, 255, 255, .85);--surface-float: rgba(244, 244, 244, .92);--accent-wash: rgba(0, 87, 184, .08);--accent-wash-strong: rgba(0, 87, 184, .12);--accent-wash-soft: rgba(238, 245, 255, .6);--focus-ring: rgba(47, 117, 189, .18);--shadow-sm: rgba(20, 40, 70, .22);--shadow-md: rgba(20, 40, 70, .25);--shadow-lg: rgba(10, 20, 40, .4);--shadow-xl: rgba(0, 0, 0, .32);--overlay-scrim: rgba(20, 30, 45, .5);--overlay-scrim-strong: rgba(13, 23, 34, .56);--login-glow: rgba(63, 111, 170, .22);--login-mark-ring: rgba(255, 255, 255, .25);--login-card-border: rgba(255, 255, 255, .7);--login-badge-bg: #225f9f;--login-badge-tx: #ffffff;--login-submit-tx: #ffffff;--watermark-ink: rgba(21, 32, 43, .085);--icon-fill: #ffffff;--icon-accent: #0057b8;--chart-1: #2563eb;--chart-2: #dc2626;--chart-3: #16a34a;--chart-4: #d97706;--chart-5: #7c3aed;--chart-6: #0891b2;--chart-7: #db2777;--chart-8: #65a30d;--chart-9: #e11d48;--chart-10: #0f766e;--chart-pos: #15803d;--chart-neg: #c2410c}:root{font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--n-tx-07);background:var(--n-bg-90);color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}button,input,select{font:inherit}button{border:0}.constructor-shell{display:grid;grid-template-rows:auto 32px minmax(0,1fr);width:100%;height:100%;background:var(--n-bg-93)}.main-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:54px;padding:4px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-73)}.toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.toolbar-button{display:grid;place-items:center;width:47px;height:44px;color:var(--n-tx-07);background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border:1px solid var(--n-bd-78);box-shadow:inset 0 0 0 1px var(--n-bd-100);cursor:pointer}.toolbar-button:hover,.tool-button:hover,.large-icon-button:hover{background:var(--a-bg-94)}.toolbar-button:disabled{opacity:.4;cursor:not-allowed}.toolbar-icon-spin{animation:auth-spin .8s linear infinite}.document-tabs{display:flex;align-items:stretch;gap:2px;height:32px;padding:0 4px;overflow-x:auto;overflow-y:hidden;background:var(--n-bg-90);border-bottom:1px solid var(--n-bd-73)}.document-tab{display:flex;flex:0 1 auto;align-items:center;min-width:0;padding:0 2px 0 0;background:var(--n-bg-93);border:1px solid var(--n-bd-78);border-bottom:none;border-radius:4px 4px 0 0}.document-tab.active{background:var(--n-bg-100);border-color:var(--a-bd-65);box-shadow:inset 0 2px 0 var(--a-bd-36)}.document-tab-label{display:flex;align-items:center;gap:6px;max-width:220px;height:100%;padding:0 4px 0 9px;overflow:hidden;color:var(--n-tx-20);font-size:12px;white-space:nowrap;text-overflow:ellipsis;background:none;border:none;cursor:pointer}.document-tab.active .document-tab-label{color:var(--a-tx-15);font-weight:600}.document-tab-dot{flex:0 0 auto;width:7px;height:7px;background:var(--n-bg-77);border-radius:50%}.document-tab-dot.solved{background:var(--g-bg-36)}.document-tab-close{display:grid;place-items:center;width:19px;height:19px;color:var(--n-tx-47);background:none;border:none;border-radius:3px;cursor:pointer}.document-tab-close:hover{color:var(--r-tx-42);background:var(--n-bg-90)}.document-tab-input{width:160px;margin:3px 2px 3px 6px;padding:1px 4px;font-size:12px;border:1px solid var(--a-bd-65);border-radius:3px}.document-tab-add{flex:0 0 auto;display:grid;place-items:center;width:26px;margin:3px 0;color:var(--n-tx-27);background:var(--n-bg-93);border:1px solid var(--n-bd-78);border-radius:4px;cursor:pointer}.document-tab-add:hover{background:var(--n-bg-100);border-color:var(--a-bd-65)}.graphs-doc-group{margin-bottom:6px}.graphs-doc-name{position:sticky;top:0;padding:4px 6px;overflow:hidden;color:var(--a-tx-15);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;background:var(--a-bg-94);border-bottom:1px solid var(--n-bd-82)}.toolbar-separator{flex:0 0 auto;width:1px;height:36px;margin:0 3px;background:var(--n-bg-77)}.toolbar-tool-button{color:var(--n-tx-38);background:var(--n-bg-93)}.toolbar-tool-button.active{color:var(--a-tx-36);background:var(--a-bg-94);border-color:var(--a-bd-65);box-shadow:inset 0 0 0 1px var(--n-bd-100)}.constructor-layout{display:grid;grid-template-columns:var(--tool-palette-width, 56px) minmax(0,1fr) 16px var(--dock-width, 295px);min-height:0}.constructor-layout.dock-collapsed{--dock-width: 0px}.constructor-layout.dock-collapsed .right-dock{display:none}.dock-collapse-handle{display:grid;place-items:center;width:16px;padding:0;color:var(--n-tx-47);background:var(--n-bg-90);border-left:1px solid var(--n-bd-73);cursor:pointer}.dock-collapse-handle:hover{color:var(--n-tx-07);background:var(--a-bg-94)}.tool-palette{display:flex;flex-direction:column;align-content:flex-start;align-items:flex-start;gap:3px;padding:4px;overflow:hidden;background:var(--n-bg-93);border-right:1px solid var(--n-bd-73)}.tool-group{display:grid;flex:0 0 auto;gap:2px}.tool-group.separated{padding-top:4px;border-top:1px solid var(--n-bd-73)}.tool-button{display:grid;place-items:center;width:48px;height:48px;color:var(--n-tx-38);background:var(--n-bg-93);border:1px solid var(--n-bd-82);cursor:pointer}.tool-button.active{color:var(--a-tx-36);background:var(--a-bg-94);border-color:var(--a-bd-65);box-shadow:inset 0 0 0 1px var(--n-bd-100)}.workspace-canvas{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;background:var(--n-bg-100)}.workspace-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;min-width:0;min-height:32px;padding:3px 10px;color:var(--n-tx-20);background:var(--n-bg-93);border-top:1px solid var(--n-bd-82);font-size:12px}.workspace-status>span{min-width:min(220px,100%);max-width:440px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-error{color:var(--r-tx-35)}.workspace-status label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.workspace-status input[type=checkbox]{width:14px;height:14px;padding:0}.canvas-wrap{position:relative;min-height:0;overflow:hidden;background:var(--n-bg-100)}.mechanism-svg{width:100%;height:100%;display:block;background:var(--canvas-bg);cursor:crosshair;overscroll-behavior:none;touch-action:none}.mechanism-svg.placing{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.5' fill='white' stroke='%230057b8' stroke-width='2'/%3E%3Cpath d='M12 7v10M7 12h10' stroke='%230057b8' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") 12 12,crosshair}.coordinate-readout{position:absolute;left:8px;bottom:6px;display:flex;gap:16px;color:var(--n-tx-33);font-size:12px;pointer-events:none}.canvas-controls{position:absolute;right:10px;bottom:9px;display:inline-flex;gap:4px;padding:3px;background:var(--surface-float);border:1px solid var(--n-bd-78)}.canvas-controls button{display:grid;place-items:center;width:27px;height:27px;color:var(--n-tx-13);background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border:1px solid var(--n-bd-73);cursor:pointer}.canvas-controls button:hover{background:var(--a-bg-94)}.grid-layer line{stroke:var(--n-ink-87);stroke-width:1}.grid-layer .axis{stroke:var(--n-ink-70);stroke-width:1.5}.trajectory{fill:none;stroke:var(--n-ink-54);stroke-width:1.2;opacity:.46}.trajectory.selected{stroke:var(--a-ink-36);stroke-width:2;opacity:.95}.mechanism-link{stroke:var(--n-ink-31);stroke-width:4;stroke-linecap:round;cursor:pointer}.mechanism-link.relative{stroke:var(--a-ink-36)}.mechanism-link.selected{stroke:var(--a-ink-36);stroke-width:6}.mechanism-link.slotted{stroke:var(--n-ink-31);stroke-width:6}.mechanism-link.slotted.selected{stroke:var(--a-ink-36);stroke-width:8}.crank-direction-arrow{fill:none;stroke:var(--r-ink-41);stroke-width:2.2;stroke-linecap:round;pointer-events:none}.slotted-lever-slot{stroke:var(--n-ink-100);stroke-width:3.2;stroke-linecap:round;pointer-events:none}.slotted-block rect{fill:var(--n-ink-100);stroke:var(--a-ink-36);stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:none}.slotted-link-details.selected .slotted-block rect{stroke:var(--a-ink-36);stroke-width:3}.slotted-link-preview .slotted-lever-body{stroke-width:6}.slider-guide{stroke:var(--n-ink-38);stroke-width:2.4;stroke-linecap:round}.slider-guide-roller line{stroke:var(--n-ink-07);stroke-width:2.2;stroke-linecap:round}.slider-limit-point{fill:var(--n-ink-100);stroke:var(--n-ink-38);stroke-width:1.6;pointer-events:none}.slider-rotate-handle{cursor:grab;pointer-events:all}.slider-rotate-handle circle{fill:var(--n-ink-100);stroke:var(--a-ink-36);stroke-width:1.8}.slider-rotate-handle path{fill:var(--a-ink-36)}.mechanism-point{fill:var(--n-ink-100);stroke:var(--n-ink-38);stroke-width:2.2;cursor:pointer}.mechanism-point.attached{stroke:var(--r-ink-50)}.mechanism-point.gear-output{fill:var(--o-ink-95);stroke:var(--o-ink-36);stroke-width:2.6}.mechanism-point.selected{fill:var(--r-ink-97);stroke:var(--r-ink-50);stroke-width:3}.slider-block{cursor:pointer}.slider-block rect{fill:var(--n-ink-97);stroke:var(--n-ink-31);stroke-width:2}.slider-block line{stroke:var(--n-ink-31);stroke-width:1.2;stroke-linecap:round}.slider-block.selected rect{fill:var(--a-ink-95);stroke:var(--a-ink-36);stroke-width:2.4}.slider-block.roller circle{fill:var(--n-ink-100);stroke:var(--n-ink-07);stroke-width:2}.slider-block.roller circle+circle{stroke-width:1.7}.slider-block.roller line{stroke:var(--n-ink-07);stroke-width:2}.slider-block.roller.selected circle{fill:var(--a-ink-95);stroke:var(--a-ink-36)}.point-layer text{fill:var(--n-ink-13);font-size:13px;paint-order:stroke;stroke:var(--n-ink-100);stroke-width:4px}.ground-symbol path{fill:var(--n-ink-97);stroke:var(--n-ink-38);stroke-width:1.5}.ground-symbol line{stroke:var(--n-ink-38);stroke-width:1.2}.guide-mount-symbol{pointer-events:none}.guide-mount-symbol line{stroke:var(--n-ink-38);stroke-width:1.25;stroke-linecap:round}.gear-visual,.rack-visual{cursor:pointer}.gear-outline{fill:var(--n-ink-97);stroke:var(--n-ink-31);stroke-width:1.8;stroke-linejoin:round;vector-effect:non-scaling-stroke}.gear-hub{fill:var(--n-ink-100);stroke:var(--n-ink-31);stroke-width:1.7;vector-effect:non-scaling-stroke}.gear-output-arm{stroke:var(--o-ink-36);stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.gear-eccentric-line{stroke:var(--o-ink-32);stroke-width:1.4;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.gear-geometric-center{fill:var(--n-ink-100);stroke:var(--o-ink-32);stroke-width:1.5;vector-effect:non-scaling-stroke}.gear-visual.selected .gear-outline,.gear-visual.selected .gear-hub{fill:var(--a-ink-95);stroke:var(--a-ink-36);stroke-width:2.5}.rack-teeth,.rack-back{fill:none;stroke:var(--n-ink-31);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rack-visual.selected .rack-teeth,.rack-visual.selected .rack-back{stroke:var(--a-ink-36);stroke-width:2.8}.segment-visual{cursor:pointer}.segment-shell{fill:var(--n-ink-97);stroke:var(--n-ink-31);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}.segment-guide,.segment-chord{fill:none;stroke:var(--n-ink-51);stroke-width:1.4;vector-effect:non-scaling-stroke}.segment-guide{stroke-dasharray:7 4}.segment-surface{stroke:var(--n-ink-17);stroke-width:2.6;stroke-linecap:round;vector-effect:non-scaling-stroke}.segment-rack{fill:none;stroke:var(--n-ink-31);stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}.segment-radius{stroke:var(--o-ink-36);stroke-width:1.4;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.segment-center{fill:var(--n-ink-100);stroke:var(--o-ink-36);stroke-width:1.6;vector-effect:non-scaling-stroke}.segment-roller{fill:var(--n-ink-100);stroke:var(--n-ink-31);stroke-width:1.8;vector-effect:non-scaling-stroke}.segment-roller-arm{stroke:var(--n-ink-31);stroke-width:1.2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.segment-visual.selected .segment-shell{fill:var(--a-ink-95);stroke:var(--a-ink-36);stroke-width:2.8}.segment-visual.selected .segment-roller{stroke:var(--a-ink-36);stroke-width:2.4}.segment-visual.preview .segment-shell{fill:var(--accent-wash);stroke:var(--a-ink-36);stroke-dasharray:6 4}.segment-visual.preview .segment-surface,.segment-visual.preview .segment-rack{stroke:var(--a-ink-36);stroke-dasharray:6 4}.eccentric-visual,.roller-visual{cursor:pointer}.eccentric-disc{fill:var(--n-ink-97);stroke:var(--n-ink-31);stroke-width:1.9;vector-effect:non-scaling-stroke}.eccentric-shaft{fill:var(--n-ink-100);stroke:var(--n-ink-31);stroke-width:1.7;vector-effect:non-scaling-stroke}.eccentric-arm{stroke:var(--o-ink-32);stroke-width:1.4;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.eccentric-pin{fill:var(--n-ink-100);stroke:var(--o-ink-36);stroke-width:1.8;vector-effect:non-scaling-stroke}.eccentric-visual.selected .eccentric-disc,.eccentric-visual.selected .eccentric-shaft{fill:var(--a-ink-95);stroke:var(--a-ink-36);stroke-width:2.5}.eccentric-visual.preview .eccentric-disc{fill:var(--accent-wash);stroke:var(--a-ink-36);stroke-dasharray:6 4}.roller-wheel{fill:var(--n-ink-97);stroke:var(--n-ink-31);stroke-width:1.9;vector-effect:non-scaling-stroke}.roller-hub{fill:var(--n-ink-100);stroke:var(--n-ink-31);stroke-width:1.5;vector-effect:non-scaling-stroke}.roller-rim{fill:var(--n-ink-100);stroke:var(--n-ink-31);stroke-width:1.9;vector-effect:non-scaling-stroke}.roller-centre-line{stroke:var(--n-ink-51);stroke-width:1.2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.roller-visual.selected .roller-wheel,.roller-visual.selected .roller-rim{fill:var(--a-ink-95);stroke:var(--a-ink-36);stroke-width:2.5}.roller-visual.preview .roller-wheel,.roller-visual.preview .roller-rim{fill:var(--accent-wash);stroke:var(--a-ink-36);stroke-dasharray:6 4}.guide-anchor-highlight{fill:none;stroke:var(--a-ink-36);stroke-width:2;vector-effect:non-scaling-stroke}.guide-anchor-hint{fill:none;stroke:var(--a-ink-36);stroke-width:1.4;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.linear-dimension.movable,.angular-dimension.movable{cursor:move}.weld-symbol{fill:none;stroke:var(--a-ink-36);stroke-width:7;stroke-linecap:round;opacity:.95;pointer-events:none}.snap-guide-layer line{stroke:var(--o-ink-53);stroke-width:1.35;stroke-dasharray:8 6;pointer-events:none}.preview-layer{pointer-events:none;opacity:.62}.preview-layer line{stroke:var(--a-ink-36);stroke-width:3;stroke-linecap:round;stroke-dasharray:7 5}.preview-layer circle{fill:var(--n-ink-100);stroke:var(--a-ink-36);stroke-width:2}.preview-coordinate{fill:var(--a-ink-25);stroke:var(--n-ink-100);stroke-width:3px;paint-order:stroke;font-size:12px;font-weight:700;letter-spacing:.1px}.preview-layer .ground-symbol path{fill:var(--a-ink-95);stroke:var(--a-ink-36)}.preview-layer .ground-symbol line,.preview-layer .guide-mount-symbol line{stroke:var(--a-ink-36)}.preview-layer .slider-block rect,.slider-block.preview rect{fill:var(--a-ink-95);stroke:var(--a-ink-36)}.preview-layer .slider-block line,.slider-block.preview line{stroke:var(--a-ink-36)}.preview-layer .slider-guide-roller line{stroke:var(--a-ink-36)}.preview-layer.invalid line,.preview-layer.invalid circle,.preview-layer.invalid .ground-symbol path,.preview-layer.invalid .ground-symbol line,.preview-layer.invalid .guide-mount-symbol line,.preview-layer.invalid .slider-block rect,.preview-layer.invalid .slider-block line{stroke:var(--r-ink-51)}.preview-layer.invalid circle,.preview-layer.invalid .ground-symbol path,.preview-layer.invalid .slider-block rect{fill:var(--r-ink-97)}.preview-layer.invalid .preview-coordinate{fill:var(--r-ink-41)}.gear-preview circle{fill:var(--accent-wash-soft)}.weld-symbol.preview,.preview-layer .linear-dimension.movable,.angular-dimension.movable{cursor:move}.weld-symbol{stroke:var(--a-ink-36);stroke-dasharray:none}.tracer-preview circle{fill:var(--r-ink-97);stroke:var(--r-ink-50)}.vector{stroke-width:2.2;stroke-linecap:round}.vector.velocity{stroke:var(--g-ink-27)}.vector.acceleration{stroke:var(--r-ink-41)}.tool-hint{fill:var(--a-ink-36);font-size:15px;font-weight:700}.empty-hint{fill:var(--n-ink-60);font-size:17px;text-anchor:middle}.right-dock{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:34px 260px 1fr auto;min-height:0;background:var(--n-bg-93);border-left:1px solid var(--n-bd-73)}.dimensions-panel{min-height:0;max-height:36vh;padding:5px;overflow:auto;background:var(--n-bg-93);border-top:1px solid var(--n-bd-82)}.dock-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--n-bd-78)}.dock-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--n-tx-20);background:var(--n-bg-90);border-right:1px solid var(--n-bd-78);cursor:pointer}.dock-tabs button.active{background:var(--n-bg-100);font-weight:700}.object-list-panel,.properties-panel{min-height:0;padding:5px}.panel-caption{height:18px;color:var(--n-tx-13);font-size:12px}.object-list{height:calc(100% - 18px);overflow:auto;background:var(--n-bg-100);border:1px solid var(--n-bd-62)}.object-row{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:5px;width:100%;height:25px;padding:0 6px 0 calc(6px + var(--depth, 0) * 16px);color:var(--n-tx-13);background:var(--n-bg-100);border-bottom:1px solid var(--n-bd-93);text-align:left;cursor:pointer}.object-row-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.object-row.child{color:var(--n-tx-27);background:var(--n-bg-100)}.object-row.active{color:var(--n-tx-100);background:var(--a-bg-46)}.empty-list{padding:10px;color:var(--n-tx-47);font-size:12px}.properties-panel{overflow:auto;border-top:1px solid var(--n-bd-82)}.animation-strip{display:grid;grid-template-columns:48px 48px 1fr 1fr;gap:8px;align-items:end;margin:10px 0 12px;padding:8px;background:var(--n-bg-93);border:1px solid var(--n-bd-82)}.initial-position-button{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;color:var(--a-tx-28);background:var(--a-bg-98);border:1px solid var(--a-bd-81);border-radius:3px;cursor:pointer}.initial-position-button:disabled{color:var(--n-tx-54);background:var(--n-bg-93);border-color:var(--n-bd-82);cursor:default}.large-icon-button{display:grid;place-items:center;width:46px;height:46px;background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border:1px solid var(--n-bd-73);border-radius:5px;cursor:pointer}.property-form{display:grid;gap:9px;padding:9px;background:var(--n-bg-93);border:1px solid var(--n-bd-82)}.field{display:grid;gap:4px;font-size:12px}.field.compact{gap:3px}.field span{color:var(--n-tx-27)}input,select{width:100%;min-width:0;height:27px;padding:2px 6px;color:var(--n-tx-07);background:var(--n-bg-100);border:1px solid var(--n-bd-73);border-radius:2px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.switch-row{display:inline-flex;align-items:center;gap:7px;font-size:12px}.switch-row input{width:14px;height:14px;padding:0}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;color:var(--r-tx-28);background:var(--r-bg-98);border:1px solid var(--r-bd-77);border-radius:3px;cursor:pointer}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;color:var(--a-tx-28);background:var(--a-bg-98);border:1px solid var(--a-bd-81);border-radius:3px;cursor:pointer}.secondary-button:disabled{color:var(--n-tx-54);background:var(--n-bg-93);border-color:var(--n-bd-82);cursor:default}.small-icon-button{display:inline-grid;place-items:center;width:27px;height:27px;padding:0;color:var(--n-tx-33);background:var(--n-bg-100);border:1px solid var(--n-bd-78);border-radius:3px;cursor:pointer}.small-icon-button:hover{color:var(--r-tx-28);border-color:var(--r-bd-74)}.additional-dimensions{display:grid;gap:8px}.extra-dimension-card{display:grid;gap:8px;padding:8px;background:var(--n-bg-100);border:1px solid var(--n-bd-82)}.extra-dimension-head{display:grid;grid-template-columns:1fr 27px;gap:6px;align-items:end}.charts-panel{display:block;grid-row:2 / -1;min-height:0;overflow:auto;background:var(--n-bg-93)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-82)}.panel-heading h2{margin:0;font-size:14px}.panel-heading p{margin:2px 0 0;color:var(--n-tx-38);font-size:12px}.mini-button{display:inline-grid;place-items:center;width:27px;height:27px;color:var(--n-tx-13);background:var(--n-bg-100);border:1px solid var(--n-bd-78);cursor:pointer}.segmented{display:grid;grid-template-columns:1fr 1fr;margin:8px;border:1px solid var(--n-bd-73)}.segmented button{height:28px;color:var(--n-tx-20);background:var(--n-bg-93);border-right:1px solid var(--n-bd-73);cursor:pointer}.segmented button.active{background:var(--n-bg-100);font-weight:700}.chart-stack{display:grid;gap:8px;padding:0 8px 8px}.readout,.mini-chart,.table-preview{background:var(--n-bg-100);border:1px solid var(--n-bd-82)}.readout{display:grid;gap:6px;padding:8px;font-size:12px}.readout strong{font-size:13px}.readout div{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px}.read-only-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;color:var(--n-tx-33);background:var(--n-bg-100);border:1px solid var(--n-bd-86);font-size:12px}.chart-title{display:flex;align-items:center;justify-content:space-between;padding:6px 7px 0;font-size:12px;font-weight:700}.mini-chart svg{display:block;width:100%;height:auto}.chart-grid{stroke:var(--n-ink-87)}.chart-axis{stroke:var(--n-ink-60)}.chart-cursor{stroke:var(--n-ink-07);stroke-dasharray:4 4}.chart-label,.chart-legend text{fill:var(--n-ink-38);font-size:10px}.table-preview{margin:8px;overflow:hidden}.table-title{display:flex;align-items:center;gap:6px;padding:7px;font-size:12px;font-weight:700;border-bottom:1px solid var(--n-bd-82)}table{width:100%;border-collapse:collapse;font-size:11px}th,td{padding:4px 6px;text-align:right;border-bottom:1px solid var(--n-bd-93)}th{color:var(--n-tx-33);background:var(--n-bg-93)}tr.current td{color:var(--a-tx-28);background:var(--a-bg-94);font-weight:700}.dimension-layer .linear-dimension{cursor:pointer}.dimension-layer .linear-dimension.informative{cursor:default}.dim-extension{stroke:var(--n-ink-60);stroke-width:1}.dim-line{stroke:var(--n-ink-43);stroke-width:1.2}.dim-arrow{fill:var(--n-ink-43)}.dim-text{fill:var(--a-ink-36);font-size:12.5px;paint-order:stroke;stroke:var(--n-ink-100);stroke-width:3.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.linear-dimension.locked .dim-text,.dim-text.locked{fill:var(--n-ink-07);font-weight:700}.linear-dimension.locked .dim-line,.linear-dimension.locked .dim-extension{stroke:var(--n-ink-17)}.linear-dimension.locked .dim-arrow{fill:var(--n-ink-17)}.dim-box{fill:var(--canvas-wash);stroke:var(--n-ink-17);stroke-width:1.1}.dim-text.coord{font-size:11.5px;fill:var(--n-ink-43)}.linear-dimension.informative .dim-line,.linear-dimension.informative .dim-extension{stroke:var(--n-ink-65);stroke-dasharray:none}.linear-dimension.informative .dim-arrow{fill:var(--n-ink-65)}.linear-dimension.informative .dim-text{fill:var(--n-ink-51);font-style:italic}.linear-dimension.ghost{pointer-events:none;opacity:.75}.linear-dimension.ghost .dim-line,.linear-dimension.ghost .dim-extension{stroke:var(--a-ink-36);stroke-dasharray:5 3}.linear-dimension.ghost .dim-arrow{fill:var(--a-ink-36)}.linear-dimension.ghost .dim-text{fill:var(--a-ink-36);font-style:normal}.dim-ref-highlight{fill:var(--accent-wash-strong);stroke:var(--a-ink-36);stroke-width:1.6;pointer-events:none}.dim-pick-line{stroke:var(--a-ink-36);stroke-width:1.2;stroke-dasharray:5 4;pointer-events:none}.dim-editor{position:absolute;z-index:20;display:grid;gap:6px;min-width:176px;max-width:300px;padding:8px;background:var(--n-bg-100);border:1px solid var(--n-bd-62);box-shadow:0 4px 14px var(--shadow-sm);font-size:12px}.dim-editor-title{color:var(--n-tx-20);font-weight:700}.dim-editor-field{display:grid;gap:3px}.dim-editor-field span{color:var(--n-tx-27)}.dim-editor-field input{height:25px}.dim-editor-lock{display:inline-flex;align-items:center;gap:6px}.dim-editor-lock input{width:13px;height:13px;padding:0}.dim-editor-error{color:var(--r-tx-35);white-space:pre-line;overflow-wrap:break-word;line-height:1.35}.dim-editor-range{justify-self:start;padding:3px 8px;border:1px solid var(--a-bd-65);border-radius:3px;color:var(--a-tx-36);background:var(--a-bg-94);font-size:11px;cursor:pointer}.dim-editor-range:hover:not(:disabled){background:var(--a-bg-94)}.dim-editor-range:disabled{opacity:.55;cursor:default}.dim-editor-progress{color:var(--a-tx-36);line-height:1.35}.dim-editor-actions{display:flex;justify-content:flex-end;gap:6px}.dim-editor-actions button{height:24px;padding:0 12px;background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border:1px solid var(--n-bd-73);cursor:pointer}.dim-editor-actions button:disabled{color:var(--n-tx-47);cursor:wait}.field-caption{display:flex;align-items:center;justify-content:space-between}.field-error{color:var(--r-tx-35);white-space:pre-line;overflow-wrap:break-word;line-height:1.35}.field-progress{color:var(--a-tx-36);line-height:1.35}.lock-button{display:inline-grid;place-items:center;width:18px;height:18px;padding:0;color:var(--n-tx-54);background:transparent;border:0;cursor:pointer}.lock-button:hover{color:var(--a-tx-36)}.lock-button.locked{color:var(--n-tx-13)}.caption-with-lock{display:flex;align-items:center;justify-content:space-between;color:var(--n-tx-27);font-size:12px}input.invalid{border-color:var(--r-bd-53);background:var(--r-bg-98b)}input.has-formula{color:var(--p-tx-45);font-style:italic}.capacity-note{margin-top:8px;padding:6px 8px;color:var(--a-tx-36);background:var(--a-bg-94);border:1px solid var(--a-bd-85);font-size:11.5px}.capacity-note.over{color:var(--r-tx-28);background:var(--r-bg-98);border-color:var(--r-bd-77)}.tree-chevron{display:inline-grid;place-items:center;width:16px;height:16px;color:var(--n-tx-38)}.object-row.active .tree-chevron{color:var(--n-tx-100)}.variables-panel{display:block;grid-row:2 / -1;overflow:auto;background:var(--n-bg-93)}.variables-table{margin:8px;background:var(--n-bg-100);border:1px solid var(--n-bd-82)}.variables-row{display:grid;grid-template-columns:58px 1fr 62px 26px;gap:4px;align-items:center;padding:3px 5px;border-bottom:1px solid var(--n-bd-93)}.variables-row.header{color:var(--n-tx-33);background:var(--n-bg-93);font-size:11px;font-weight:700}.variables-row input{height:24px;font-size:12px}.variable-value{overflow:hidden;font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.variable-value.error{color:var(--r-tx-35);font-weight:700}.variables-hint{margin:0 8px 10px;color:var(--n-tx-47);font-size:11.5px;line-height:1.45}.toolbar-menu-anchor{position:relative;display:inline-flex}.toolbar-button-split{position:relative}.toolbar-caret{position:absolute;right:3px;bottom:2px;color:var(--n-tx-33)}.toolbar-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.toolbar-menu{position:absolute;top:calc(100% + 3px);left:0;z-index:41;display:grid;min-width:150px;padding:4px;background:var(--n-bg-100);border:1px solid var(--n-bd-62);box-shadow:0 6px 18px var(--shadow-md)}.toolbar-menu button{padding:7px 10px;color:var(--n-tx-13);background:var(--n-bg-100);text-align:left;cursor:pointer}.toolbar-menu button:hover{background:var(--a-bg-94)}.dock-tabs-4{grid-template-columns:repeat(4,minmax(0,auto))}.dock-tabs-4 button{gap:3px;min-width:0;padding:0 2px;overflow:hidden;font-size:11px;white-space:nowrap}.dimensions-tab{grid-row:2 / -1;min-height:0;padding:6px;overflow:auto;background:var(--n-bg-93)}@media(max-height:880px){.constructor-layout{--tool-palette-width: 105px}.tool-palette{flex-flow:column wrap;column-gap:3px}}@media(max-height:520px){.constructor-layout{--tool-palette-width: 157px}}@media(max-width:1050px){.constructor-layout{grid-template-columns:minmax(0,1fr) 16px var(--dock-width, 275px);grid-template-rows:auto minmax(0,1fr)}.tool-palette{grid-column:1 / -1;grid-row:1;flex-flow:row wrap;align-items:flex-start;width:100%;padding:4px;overflow:visible;border-right:0;border-bottom:1px solid var(--n-bd-73)}.tool-group{grid-auto-flow:column;grid-template-rows:48px}.tool-group.separated{padding-top:0;padding-left:8px;border-top:0;border-left:1px solid var(--n-bd-73)}.workspace-canvas{grid-column:1;grid-row:2}.dock-collapse-handle{grid-column:2;grid-row:2}.right-dock{grid-column:3;grid-row:2}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:var(--overlay-scrim)}.graphs-modal{display:grid;grid-template-rows:auto 1fr;width:min(1200px,96vw);height:min(760px,94vh);background:var(--n-bg-93);border:1px solid var(--n-bd-50);box-shadow:0 18px 50px var(--shadow-lg)}.graphs-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--n-bg-90);border-bottom:1px solid var(--n-bd-78)}.graphs-title-input{flex:1;max-width:420px;height:30px;padding:0 8px;font-size:14px;font-weight:700;border:1px solid var(--n-bd-78)}.graphs-modal-actions{display:flex;align-items:center;gap:6px}.graphs-save{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;color:var(--a-tx-15);background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border:1px solid var(--n-bd-73);cursor:pointer}.graphs-save:hover:not(:disabled){background:var(--a-bg-94)}.graphs-save:disabled{opacity:.45;cursor:not-allowed}.graphs-close{display:grid;place-items:center;width:32px;height:30px;background:var(--n-bg-100);border:1px solid var(--n-bd-73);cursor:pointer}.graphs-close:hover{background:var(--r-bg-98)}.graphs-modal-body{display:grid;grid-template-columns:240px 1fr;min-height:0}.graphs-curve-list{min-height:0;padding:8px;overflow:auto;background:var(--n-bg-93);border-right:1px solid var(--n-bd-78)}.graphs-zero-toggle{display:inline-flex;align-items:center;gap:5px;padding:0 6px;color:var(--n-tx-17);font-size:12px;white-space:nowrap;cursor:pointer}.graphs-tree-node{margin-bottom:2px}.graphs-tree-head{display:flex;align-items:center;gap:4px;width:100%;padding:4px;color:var(--n-tx-17);background:transparent;font-size:12.5px;font-weight:700;text-align:left;cursor:pointer}.graphs-tree-head:hover{background:var(--n-bg-90)}.graphs-tree-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graphs-tree-badge{min-width:17px;padding:1px 5px;color:var(--n-tx-100);background:var(--a-bg-46);border-radius:9px;font-size:11px;text-align:center}.graphs-tree-params{display:grid;padding:1px 0 4px 8px}.graphs-param-row{display:grid;grid-template-columns:16px 1fr auto;gap:7px;align-items:center;padding:4px 6px;background:transparent;font-size:12px;text-align:left;cursor:pointer}.graphs-param-row:hover,.graphs-param-row.active{background:var(--n-bg-100)}.graphs-param-mark{display:grid;place-items:center;width:15px;height:15px;border:1.5px solid var(--n-bd-73);border-radius:3px}.graphs-param-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graphs-param-row.active .graphs-param-name{font-weight:600}.graphs-param-unit{color:var(--n-tx-50);font-size:11px}.mini-chart.clickable:hover{border-color:var(--a-bd-65);box-shadow:0 0 0 1px var(--a-bd-65)}.chart-title-actions{display:inline-flex;gap:4px}.graphs-chart-area{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 14px;overflow:auto;background:var(--n-bg-100)}.graphs-chart-canvas{display:grid;place-items:center;flex:1;min-height:0}.graphs-settings{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;background:var(--n-bg-93);border:1px solid var(--n-bd-86)}.graphs-settings-title{color:var(--n-tx-20);font-size:12px;font-weight:700}.graphs-setting{display:inline-flex;align-items:center;gap:5px;color:var(--n-tx-17);font-size:12px}.graphs-setting input[type=number]{width:62px;height:24px;padding:0 5px;border:1px solid var(--n-bd-78)}.graphs-setting-reset{height:26px;padding:0 10px;color:var(--n-tx-17);background:var(--n-bg-100);border:1px solid var(--n-bd-73);cursor:pointer}.graphs-setting-reset:hover{background:var(--a-bg-94)}.graphs-chart-footer{display:flex;align-items:center;gap:14px;margin-top:8px;padding-top:8px;border-top:1px solid var(--n-bd-89)}.graphs-foot-check{display:inline-flex;align-items:center;gap:6px;color:var(--n-tx-17);font-size:12.5px;cursor:pointer}.graphs-save.active{background:var(--a-bg-94);border-color:var(--a-bd-65)}.big-chart-tick{stroke:var(--n-ink-31);stroke-width:1.2}.big-chart-svg{width:100%;height:auto;max-height:100%}.big-chart-title{fill:var(--n-ink-10);font-size:18px;font-weight:700}.big-chart-grid{stroke:var(--n-ink-87);stroke-width:1}.big-chart-grid.faint{stroke:var(--n-ink-97)}.big-chart-axis{stroke:var(--n-ink-31);stroke-width:1.4}.big-chart-zero{stroke:var(--n-ink-65);stroke-width:1;stroke-dasharray:4 3}.big-chart-cursor{stroke:var(--o-ink-53);stroke-width:1.4;stroke-dasharray:4 3}.big-chart-axis-label{fill:var(--n-ink-38);font-size:12px}.big-chart-axis-caption{fill:var(--n-ink-23);font-size:13px;font-weight:600}.big-chart-legend text{fill:var(--n-ink-17);font-size:13px}.big-chart-empty{fill:var(--n-ink-65);font-size:15px}.chart-watermark{fill:var(--watermark-ink);font-weight:800;letter-spacing:2px;pointer-events:none;-webkit-user-select:none;user-select:none}.auth-loading,.login-page{display:grid;place-items:center;width:100%;min-height:100%;padding:24px;background:radial-gradient(circle at 50% 6%,var(--login-glow),transparent 46%),linear-gradient(180deg,var(--n-bg-13),var(--n-bg-24) 60%,var(--n-bg-13))}.auth-spinner{width:42px;height:42px;border:4px solid var(--login-mark-ring);border-top-color:var(--n-bd-100);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.login-card{display:grid;gap:14px;width:min(400px,100%);padding:34px 34px 28px;color:var(--n-tx-13);background:var(--n-bg-100);border:1px solid var(--login-card-border);border-radius:16px;box-shadow:0 30px 80px var(--shadow-xl)}.login-brand{display:flex;align-items:center;gap:14px}.login-badge{display:grid;flex:none;place-items:center;width:46px;height:46px;color:var(--login-badge-tx);background:var(--login-badge-bg);border-radius:12px;font-size:17px;font-weight:800;letter-spacing:.5px}.login-wordmark{display:grid;gap:2px;margin:0;color:var(--n-tx-07);font-size:28px;font-weight:800;line-height:1.05}.login-wordmark span{color:var(--a-tx-36);font-size:13px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase}.login-lead{margin:2px 0 6px;color:var(--n-tx-47);font-size:14px}.login-card .auth-field{gap:7px}.login-card .auth-field span{color:var(--n-tx-47);font-size:13px;font-weight:400}.auth-field,.admin-create label,.project-save-row label,.password-reset-row label{display:grid;gap:5px}.auth-field span,.admin-create label>span,.project-save-row label>span,.password-reset-row label>span{color:var(--n-tx-33);font-size:12px;font-weight:700}.auth-field input{height:40px;padding:6px 10px;border-color:var(--n-bd-73);border-radius:5px}.login-card .auth-field input{height:42px;padding:6px 12px;border-radius:8px}.auth-field input:focus,.admin-create input:focus,.project-save-row input:focus,.password-reset-row input:focus{border-color:var(--a-bd-46);outline:2px solid var(--focus-ring)}.auth-submit,.auth-demo,.account-primary,.account-secondary,.account-danger,.toolbar-account-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 11px;border:1px solid transparent;border-radius:4px;cursor:pointer}.auth-submit,.account-primary{color:var(--n-tx-100);background:var(--a-bg-38);border-color:var(--a-bd-31)}.auth-submit{min-height:42px;margin-top:6px;color:var(--login-submit-tx);border-radius:8px;font-size:15px;font-weight:700}.auth-submit:hover,.account-primary:hover{background:var(--a-bg-32)}.auth-submit:disabled,.auth-demo:disabled,.account-primary:disabled,.account-secondary:disabled,.account-danger:disabled,.toolbar-account-button:disabled{opacity:.52;cursor:default}.auth-error,.account-message.error{color:var(--r-tx-34);background:var(--r-bg-98);border-color:var(--r-bd-77)}.auth-error{padding:9px 10px;border:1px solid var(--r-bd-77);border-radius:4px;font-size:13px}.login-hint{margin-top:4px;color:var(--n-tx-47);font-size:13px;line-height:1.4;text-align:center}.login-security{margin-top:-6px;color:var(--n-tx-50);font-size:12px;line-height:1.4;text-align:center}.login-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:2px;color:var(--n-tx-50);font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--n-bd-73)}.auth-demo{min-height:42px;color:var(--n-tx-13);background:transparent;border-color:var(--n-bd-62);border-radius:8px;font-size:15px;font-weight:700}.auth-demo:hover:not(:disabled){background:var(--a-bg-98);border-color:var(--a-bd-72)}.login-demo-note{color:var(--n-tx-50);font-size:12px;line-height:1.45;text-align:center}.admin-demo-tag{margin-left:6px;padding:1px 6px;color:var(--a-tx-36);background:var(--a-bg-84);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.toolbar-demo-badge{display:inline-flex;align-items:center;height:34px;padding:0 11px;color:var(--a-tx-36);background:var(--a-bg-84);border:1px solid var(--a-bd-81);border-radius:4px;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap}.toolbar-end{margin-left:auto}.toolbar-user{display:inline-flex;align-items:center;gap:6px;max-width:190px;height:34px;padding:0 10px;color:var(--n-tx-20);background:var(--a-bg-98);border:1px solid var(--n-bd-82);border-radius:4px;font-size:12px}.toolbar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-account-button{height:34px;color:var(--n-tx-20);background:linear-gradient(var(--n-bg-100),var(--n-bg-90));border-color:var(--n-bd-78);font-size:12px}.toolbar-account-button:hover{background:var(--a-bg-94);border-color:var(--a-bd-72)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:24px;background:var(--overlay-scrim-strong)}.account-modal{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);width:min(1180px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;color:var(--n-tx-13);background:var(--n-bg-100);border:1px solid var(--n-bd-62);border-radius:7px;box-shadow:0 24px 80px var(--shadow-xl)}.project-modal{width:min(840px,calc(100vw - 48px))}.account-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-86)}.account-modal-head h2{display:flex;align-items:center;gap:8px;margin:0;font-size:18px}.account-modal-head p{margin:4px 0 0;color:var(--n-tx-47);font-size:12px}.icon-close{display:grid;place-items:center;width:30px;height:30px;color:var(--n-tx-27);background:var(--n-bg-100);border:1px solid var(--n-bd-78);border-radius:4px;cursor:pointer}.account-tabs{display:flex;align-items:center;gap:3px;padding:7px 10px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-86)}.account-tabs>button{height:29px;padding:0 12px;color:var(--n-tx-27);background:transparent;border:1px solid transparent;border-radius:3px;cursor:pointer}.account-tabs>button.active{color:var(--a-tx-28);background:var(--n-bg-100);border-color:var(--n-bd-78);font-weight:700}.account-tabs .account-refresh{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.account-message{margin:10px 12px 0;padding:8px 10px;color:var(--g-tx-25);background:var(--g-bg-95);border:1px solid var(--g-bd-79);border-radius:4px;font-size:12px}.account-secondary{color:var(--a-tx-28);background:var(--a-bg-98);border-color:var(--n-bd-78)}.account-secondary:hover{background:var(--a-bg-94)}.account-danger{color:var(--r-tx-34);background:var(--r-bg-98);border-color:var(--r-bd-77)}.account-danger:hover{background:var(--r-bg-98)}.admin-content{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:0;overflow:hidden}.admin-create{display:grid;align-content:start;gap:11px;padding:15px;background:var(--n-bg-93);border-right:1px solid var(--n-bd-86)}.admin-create h3{display:flex;align-items:center;gap:7px;margin:0 0 2px;font-size:14px}.admin-create p{margin:0;color:var(--n-tx-47);font-size:11px;line-height:1.4}.account-check{display:flex!important;align-items:center;gap:7px;color:var(--n-tx-27);font-size:12px}.account-check input,.admin-users-table input[type=checkbox]{width:15px;height:15px}.admin-users-wrap,.audit-list,.project-list{min-height:0;overflow:auto}.admin-users-table{min-width:790px;font-size:12px}.admin-users-table th,.admin-users-table td{padding:8px;text-align:left;vertical-align:middle}.admin-users-table td:first-child strong,.admin-users-table td:first-child span{display:block}.admin-users-table td:first-child span{margin-top:2px;color:var(--n-tx-50);font-size:11px}.admin-users-table tr.disabled-user td{color:var(--n-tx-50);background:var(--n-bg-93)}.admin-actions{display:flex;gap:5px;white-space:nowrap}.password-reset-row td{padding:10px 14px;background:var(--a-bg-94)}.password-reset-row form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:9px;align-items:end}.audit-list{display:grid;align-content:start;padding:10px 14px 16px}.audit-list article{display:grid;grid-template-columns:175px 190px minmax(0,1fr);gap:12px;padding:8px 5px;border-bottom:1px solid var(--n-bd-89);font-size:12px}.audit-list time{color:var(--n-tx-47)}.visits-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.visits-summary{padding:10px 14px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-86);font-size:12px;line-height:1.45}.visits-summary p{margin:0;color:var(--n-tx-47)}.visits-summary b{color:var(--n-tx-13)}.visits-summary code{font-size:11px}.visits-summary .visits-countries{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px}.visits-table-wrap{flex:1;min-height:0;overflow:auto;padding:4px 14px 14px}.visits-table{min-width:860px;font-size:12px}.visits-table th,.visits-table td{padding:7px 8px;text-align:left;vertical-align:middle;border-bottom-color:var(--n-bd-89)}.visits-table td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visits-table a{color:var(--a-tx-28);text-decoration:none}.visits-table a:hover{text-decoration:underline}.visits-live{margin-left:6px;padding:1px 6px;color:var(--g-tx-25);background:var(--g-bg-95);border:1px solid var(--g-bd-79);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.visits-none{color:var(--n-tx-50)}.sign-in-totals{min-width:0}.sign-in-totals tbody tr{cursor:pointer}.sign-in-totals tbody tr:hover td{background:var(--n-bg-93)}.sign-in-totals tbody tr.selected td{background:var(--a-bg-94)}.sign-in-filter{display:flex;align-items:center;gap:10px;margin:14px 0 4px;font-size:12px}.sign-in-filter select{width:auto;min-width:220px}.visits-more{margin-top:10px;padding:5px 12px;border:1px solid;border-radius:4px;cursor:pointer}.visits-credit{margin:0;padding:6px 14px 10px;font-size:11px}.visits-credit a{color:var(--n-tx-50)}.project-save-row{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:9px;align-items:end;padding:13px 15px;background:var(--n-bg-93);border-bottom:1px solid var(--n-bd-86)}.project-list{display:grid;align-content:start;padding:8px 14px 16px}.project-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--n-bd-89)}.project-row>div{display:grid;gap:3px;min-width:0}.project-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row span{color:var(--n-tx-50);font-size:11px}.account-empty{padding:28px 12px;color:var(--n-tx-50);font-size:13px;text-align:center}.field-input{position:relative;display:flex;align-items:stretch;min-width:0}.field-input input{flex:1;min-width:0;padding-right:20px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.field-input input::-webkit-outer-spin-button,.field-input input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.field-spinner{position:absolute;top:2px;right:2px;bottom:2px;display:grid;grid-template-rows:1fr 1fr;width:16px;overflow:hidden;border-radius:3px}.field-spinner button{display:grid;place-items:center;padding:0;color:var(--n-tx-27);background:var(--n-bg-93);border:1px solid var(--n-bd-82);cursor:pointer}.field-spinner button:first-child{border-bottom:0}.field-spinner button:hover{background:var(--n-bg-90);color:var(--a-tx-36)}.field-spinner button:active{background:var(--a-bg-84)}
