:root{color-scheme:dark;--c-bg: #14161a;--c-surface: #1b1e24;--c-surface-2: #22262e;--c-surface-3: #2b3039;--c-viewport: #101317;--c-border: #2c313a;--c-border-strong: #3a414d;--c-text: #e6e9ee;--c-text-muted: #a3abb8;--c-text-dim: #6f7885;--c-accent: #c2410c;--c-accent-hover: #d4500f;--c-accent-active: #9a3412;--c-accent-text: #fb923c;--c-accent-soft: rgba(194, 65, 12, 0.22);--c-on-accent: #ffffff;--c-success: #3fb950;--c-warning: #d29922;--c-danger: #f0533f;--c-model: #e6e9ee;--c-model-edge: #39424e;--c-grid-line: #5a6675;--c-grid-line-alt: #333b46;--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.45);--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;--font-mono: 'SF Mono', ui-monospace, 'JetBrains Mono', Menlo, Consolas, monospace}[data-theme=light]{color-scheme:light;--c-bg: #eef0f4;--c-surface: #ffffff;--c-surface-2: #f5f6f9;--c-surface-3: #e9ebf0;--c-viewport: #dfe3ea;--c-border: #dcdfe6;--c-border-strong: #c3c8d2;--c-text: #1c1f26;--c-text-muted: #5a6270;--c-text-dim: #8a919e;--c-accent: #c2410c;--c-accent-hover: #ad3a0b;--c-accent-active: #9a3412;--c-accent-text: #c2410c;--c-accent-soft: rgba(194, 65, 12, 0.10);--c-on-accent: #ffffff;--c-success: #1a7f37;--c-warning: #9a6700;--c-danger: #cf222e;--c-model: #5c646f;--c-model-edge: #c9d0d9;--c-grid-line: #98a2b0;--c-grid-line-alt: #b7bec9;--shadow-sm: 0 1px 2px rgba(16, 22, 34, 0.08);--shadow-md: 0 4px 12px rgba(16, 22, 34, 0.10);--shadow-lg: 0 12px 32px rgba(16, 22, 34, 0.16)}*,*::before,*::after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}img,svg,canvas{display:block;max-width:100%}.icon{width:18px;height:18px;flex-shrink:0}[hidden]{display:none !important}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a{color:var(--c-accent-text);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none;padding:0}:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:2px}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}h1,h2,h3,h4{font-weight:600;line-height:1.25}h1{font-size:1.125rem}h2{font-size:1rem}h3{font-size:.875rem}.u-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.u-mono{font-family:var(--font-mono)}.u-muted{color:var(--c-text-muted)}.u-dim{color:var(--c-text-dim)}.u-hint{font-size:.75rem;line-height:1.4;color:var(--c-text-dim)}.app{display:grid;grid-template-rows:56px 1fr;grid-template-columns:1fr;height:100dvh;overflow:hidden}.app__main{display:grid;grid-template-columns:1fr;min-height:0;position:relative}@media(min-width: 900px){.app__main{grid-template-columns:340px 1fr}.app__main.is-collapsed{grid-template-columns:0 1fr}}@media(min-width: 1600px){.app__main{grid-template-columns:380px 1fr}.app__main.is-collapsed{grid-template-columns:0 1fr}}.topbar{display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--c-surface);border-bottom:1px solid var(--c-border);z-index:20}.topbar__brand{display:flex;align-items:center;gap:9px;padding:4px 6px 4px 4px;flex-shrink:0;border-radius:6px;transition:background 120ms ease}.topbar__brand:hover{background:var(--c-surface-2)}.topbar__brand:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:-2px}.topbar__logo{width:28px;height:28px;flex-shrink:0;border-radius:6px}.topbar__title{font-size:.9375rem;font-weight:650;letter-spacing:-0.01em;white-space:nowrap}.topbar__title span{color:var(--c-accent-text)}.topbar__divider{width:1px;height:24px;background:var(--c-border);flex-shrink:0}.topbar__spacer{flex:1 1 auto}.topbar__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}@media(min-width: 900px){.topbar .topbar__menu-btn{display:none}}.topbar__actions{position:relative}.topbar__more{display:contents}.topbar .topbar__more-btn,.topbar .topbar__more-only{display:none}@media(max-width: 640px){.topbar .topbar__more-btn,.topbar .topbar__more-only{display:inline-flex}.topbar__more{position:absolute;top:calc(100% + 10px);right:0;z-index:30;display:none;align-items:center;gap:4px;padding:6px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:6px;box-shadow:var(--shadow-md)}.topbar__more.is-open{display:flex}}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--c-surface);border-right:1px solid var(--c-border);z-index:15;position:fixed;inset:56px auto 0 0;width:min(88vw,340px);transform:translateX(-100%);transition:transform 200ms ease;box-shadow:var(--shadow-lg)}.sidebar.is-open{transform:translateX(0)}@media(min-width: 900px){.sidebar{position:static;inset:auto;width:auto;transform:none;box-shadow:none}.app__main.is-collapsed .sidebar{overflow:hidden;border-right:0}}.sidebar__body{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--c-border-strong) rgba(0,0,0,0)}.sidebar__body::-webkit-scrollbar{width:10px;height:10px}.sidebar__body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.sidebar__body::-webkit-scrollbar-thumb{background:var(--c-border-strong);border:3px solid rgba(0,0,0,0);background-clip:content-box;border-radius:999px}.sidebar__body::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-dim);background-clip:content-box}.sidebar__footer{flex-shrink:0;padding:12px 14px;border-top:1px solid var(--c-border);background:var(--c-surface);display:flex;gap:8px}.sidebar__ok{flex:1 1 auto;justify-content:center}.sidebar .panel{border-bottom:0}.sidebar .panel .panel__chevron{display:none}.sidebar .panel .panel__header{pointer-events:none;padding-top:16px}.sidebar .panel .panel__title{font-size:.9375rem}.sidebar .panel[data-open] .panel__body{display:block}.sidebar [data-section]>.panel+.panel{border-top:1px solid var(--c-border)}.sidebar-scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity 200ms ease,visibility 200ms ease;z-index:14}.sidebar-scrim.is-visible{opacity:1;visibility:visible}@media(min-width: 900px){.sidebar-scrim{display:none}}.viewport{position:relative;min-width:0;min-height:0;background:var(--c-viewport);overflow:hidden}.viewport__canvas{width:100%;height:100%;display:block;touch-action:none}.viewport__toolbar{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:4px;background:color-mix(in srgb, var(--c-surface) 88%, transparent);backdrop-filter:blur(8px);border:1px solid var(--c-border);border-radius:6px;box-shadow:var(--shadow-md)}.viewport__toolbar-sep{width:1px;align-self:stretch;margin:2px 2px;background:var(--c-border)}.viewport__info{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;font-family:var(--font-mono);font-size:.6875rem;line-height:1.5;color:var(--c-text-muted);background:color-mix(in srgb, var(--c-surface) 82%, transparent);backdrop-filter:blur(8px);border:1px solid var(--c-border);border-radius:6px;pointer-events:none}@media(max-width: 900px){.viewport__info{top:auto;right:auto;bottom:12px;left:12px}}.viewport__info-row{display:flex;gap:14px;justify-content:space-between}.viewport__info-row dt{color:var(--c-text-dim)}.viewport__info-row dd{color:var(--c-text);margin:0}.viewport__info-sep{height:1px;margin:4px 0;background:var(--c-border)}.viewport__loader{position:absolute;inset:0;display:grid;place-content:center;gap:12px;justify-items:center;background:var(--c-viewport);color:var(--c-text-muted);font-size:.8125rem;transition:opacity 200ms ease,visibility 200ms ease}.viewport__loader.is-hidden{opacity:0;visibility:hidden}.viewport__spinner{width:28px;height:28px;border:2px solid var(--c-border-strong);border-top-color:var(--c-accent-text);border-radius:50%;animation:spin 700ms linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.workspace{position:relative;display:grid;grid-template-rows:minmax(0, 1fr);min-width:0;min-height:0}.workspace[data-view="2d"] .viewport{display:none}.workspace[data-view="3d"] .drawing{display:none}.workspace__bar{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 16px);z-index:5;display:flex;align-items:center;gap:4px;padding:4px;background:color-mix(in srgb, var(--c-surface) 88%, transparent);backdrop-filter:blur(8px);border:1px solid var(--c-border);border-radius:6px;box-shadow:var(--shadow-md)}.workspace__bar .btn{flex-shrink:0}@media(max-width: 480px){.workspace__bar .workspace__grid-label,.workspace__bar .workspace__sep,.workspace__bar [data-action=zoom-in],.workspace__bar [data-action=zoom-out]{display:none}.workspace__bar .view-switch .segmented__label{padding:6px 9px}}.workspace__tools{display:flex;align-items:center;gap:4px}.workspace[data-view="2d"] .workspace__tools{display:none}.workspace__history{display:flex;align-items:center;gap:2px}.workspace[data-view="3d"] .workspace__history{display:none}.workspace__zoom{display:flex;align-items:center;gap:2px}.workspace[data-view="3d"] .workspace__zoom{display:none}.workspace__zoom-label{min-width:52px;justify-content:center;font-family:var(--font-mono);font-size:.6875rem}.workspace__grid{display:flex;align-items:center;flex-shrink:0;gap:6px;padding-right:2px}.workspace[data-view="3d"] .workspace__grid{display:none}.workspace__grid-label{display:inline-flex;align-items:center;gap:5px;padding-left:4px;font-size:.75rem;font-weight:500;color:var(--c-text-muted)}.workspace__grid-label .icon{width:15px;height:15px}@media(max-width: 720px){.workspace__grid-label span{display:none}}.workspace__bar .select--compact{flex-shrink:0;width:5.5rem;padding-block:4px;padding-inline-start:8px;font-size:.75rem}.workspace__sep{width:1px;align-self:stretch;margin:2px 2px;background:var(--c-border)}.view-switch{flex-shrink:0;border:0;background:rgba(0,0,0,0)}.view-switch .segmented__label{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px}.view-switch .icon{width:15px;height:15px}@media(max-width: 720px){.view-switch .segmented__label span{display:none}}kbd{display:inline-block;padding:0 4px;font-family:var(--font-mono);font-size:.6875rem;line-height:1.5;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border-strong);border-bottom-width:2px;border-radius:4px}.start{position:fixed;inset:0;z-index:50;overflow-y:auto;background:var(--c-bg);transition:opacity 200ms ease,visibility 200ms ease}.start.is-hidden{opacity:0;visibility:hidden}.start__inner{display:grid;gap:28px;justify-items:center;min-height:100%;align-content:center;padding:40px 16px 64px}.start__head{display:grid;gap:8px;justify-items:center;text-align:center}.start__logo{width:52px;height:52px;border-radius:12px}.start__title{font-size:1.5rem;font-weight:650;letter-spacing:-0.02em}.start__title span{color:var(--c-accent-text)}.start__subtitle{max-width:46ch;color:var(--c-text-muted)}.start__section{display:grid;gap:14px;width:100%;max-width:1040px}.start__section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px}.start__section-title{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--c-text-dim)}.start__options{display:flex;flex-wrap:wrap;gap:8px}.start__kinds{display:grid;gap:16px;grid-template-columns:repeat(2, minmax(0, 1fr))}@media(min-width: 900px){.start__kinds{grid-template-columns:repeat(4, minmax(0, 1fr))}}.start__card{display:grid;grid-template-rows:auto auto 1fr;gap:10px;justify-items:center;align-content:start;padding:22px 16px;text-align:center;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:10px;transition:border-color 120ms ease,background 120ms ease,transform 120ms ease}.start__card:hover{background:var(--c-surface-2);border-color:var(--c-accent);transform:translateY(-2px)}.start__card:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:2px}.start__card .icon{width:34px;height:34px;color:var(--c-accent-text)}@media(max-width: 480px){.start__card{padding:16px 10px}.start__card .icon{width:28px;height:28px}}.start__card-title{font-size:.9375rem;font-weight:600}.start__card-text{font-size:.75rem;line-height:1.5;color:var(--c-text-muted)}.start__prefs{display:grid;justify-items:center}.start__foot{font-size:.75rem;color:var(--c-text-dim);text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 13px;font-size:.8125rem;font-weight:500;line-height:1.2;white-space:nowrap;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px;transition:background 120ms ease,border-color 120ms ease,color 120ms ease}.btn:hover:not(:disabled){background:var(--c-surface-3);border-color:var(--c-border-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn .icon{width:16px;height:16px;flex-shrink:0}.btn--primary{color:var(--c-on-accent);background:var(--c-accent);border-color:var(--c-accent)}.btn--primary:hover:not(:disabled){background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.btn--primary:active:not(:disabled){background:var(--c-accent-active)}.btn--ghost{background:rgba(0,0,0,0);border-color:rgba(0,0,0,0);color:var(--c-text-muted)}.btn--ghost:hover:not(:disabled){background:var(--c-surface-3);border-color:rgba(0,0,0,0);color:var(--c-text)}.btn[aria-pressed=true]{color:var(--c-accent-text);background:var(--c-accent-soft)}.btn[aria-pressed=true]:hover:not(:disabled){color:var(--c-accent-text);background:color-mix(in srgb, var(--c-accent) 26%, transparent)}.btn--icon{padding:0;width:32px;height:32px;flex-shrink:0}.btn--sm{padding:5px 9px;font-size:.75rem}.btn--block{width:100%}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-start-start-radius:6px;border-end-start-radius:6px}.btn-group .btn:last-child{border-start-end-radius:6px;border-end-end-radius:6px}.btn-group .btn+.btn{margin-inline-start:-1px}.btn-group .btn:hover{position:relative;z-index:1}[data-theme=dark] .icon--light,[data-theme=light] .icon--dark{display:none}.btn .icon--on{display:none}.btn[aria-pressed=true] .icon--off{display:none}.btn[aria-pressed=true] .icon--on{display:block}.field{display:grid;gap:6px;padding:9px 14px}.field--row{grid-template-columns:1fr auto;align-items:center;gap:12px}.field__label{display:flex;align-items:center;gap:5px;font-size:.8125rem;font-weight:500;color:var(--c-text-muted);min-width:0}.field__label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field__hint{font-size:.6875rem;line-height:1.4;color:var(--c-text-dim)}.field__info{width:14px;height:14px;display:grid;place-content:center;font-size:.625rem;font-weight:600;color:var(--c-text-dim);border:1px solid var(--c-border-strong);border-radius:50%;cursor:help;flex-shrink:0}.field__info:hover{color:var(--c-accent-text);border-color:var(--c-accent)}.input{width:100%;padding:6px 9px;font-size:.8125rem;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:4px;transition:border-color 120ms ease,background 120ms ease}.input:hover:not(:disabled){border-color:var(--c-border-strong)}.input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.input:disabled{opacity:.45;cursor:not-allowed}.input[type=number]{font-family:var(--font-mono);-moz-appearance:textfield;appearance:textfield}.input[type=number]::-webkit-outer-spin-button,.input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input--num{width:72px;text-align:right;flex-shrink:0}.input--sm{padding:4px 7px;font-size:.75rem}.input-unit{display:flex;align-items:center;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:4px;overflow:hidden;flex-shrink:0}.input-unit:hover{border-color:var(--c-border-strong)}.input-unit:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.input-unit .input{border:0;background:rgba(0,0,0,0);border-radius:0}.input-unit .input:focus{box-shadow:none}.input-unit__suffix{padding-inline:2px 8px;font-size:.6875rem;font-family:var(--font-mono);color:var(--c-text-dim);user-select:none;pointer-events:none;white-space:nowrap}.stepper .input-unit__suffix{width:22px;padding-inline:0;text-align:center;align-self:center}.stepper{display:inline-flex;align-items:stretch;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:4px;overflow:hidden;flex-shrink:0}.stepper:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.stepper .input{width:52px;text-align:center;border:0;border-inline:1px solid var(--c-border);border-radius:0;background:rgba(0,0,0,0)}.stepper .input:focus{box-shadow:none}.stepper__btn{width:28px;display:grid;place-content:center;font-size:.9375rem;line-height:1;color:var(--c-text-muted);transition:background 120ms ease,color 120ms ease}.stepper__btn:hover:not(:disabled){background:var(--c-surface-3);color:var(--c-text)}.stepper__btn:disabled{opacity:.3;cursor:not-allowed}.slider-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.slider{width:100%;height:18px;background:rgba(0,0,0,0);appearance:none;cursor:pointer}.slider::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--c-surface-3)}.slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--c-accent);border:2px solid var(--c-surface);box-shadow:var(--shadow-sm);transition:transform 120ms ease}.slider:hover::-webkit-slider-thumb{transform:scale(1.15)}.slider::-moz-range-track{height:4px;border-radius:999px;background:var(--c-surface-3)}.slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--c-accent);border:2px solid var(--c-surface)}.slider:disabled{opacity:.45;cursor:not-allowed}.switch{position:relative;width:34px;height:19px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch input:disabled{cursor:not-allowed}.switch__track{position:absolute;inset:0;background:var(--c-surface-3);border:1px solid var(--c-border-strong);border-radius:999px;transition:background 120ms ease,border-color 120ms ease;pointer-events:none}.switch__track::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;background:var(--c-text-dim);border-radius:50%;transition:transform 120ms ease,background 120ms ease}.switch input:checked+.switch__track{background:var(--c-accent);border-color:var(--c-accent)}.switch input:checked+.switch__track::after{transform:translateX(15px);background:var(--c-on-accent)}.switch input:focus-visible+.switch__track{outline:2px solid var(--c-accent-text);outline-offset:2px}.switch input:disabled+.switch__track{opacity:.45}.select{width:100%;padding:6px 28px 6px 9px;font-size:.8125rem;color:var(--c-text);background-color:var(--c-surface-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a3abb8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;border:1px solid var(--c-border);border-radius:4px;appearance:none;cursor:pointer;transition:border-color 120ms ease}.select:hover:not(:disabled){border-color:var(--c-border-strong)}.select:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.select:disabled{opacity:.45;cursor:not-allowed}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:2px;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px}.segmented__option{position:relative;display:flex}.segmented__option input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.segmented__label{flex:1;padding:5px 8px;font-size:.75rem;font-weight:500;text-align:center;color:var(--c-text-muted);border-radius:4px;transition:background 120ms ease,color 120ms ease;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.segmented__option input:hover+.segmented__label{color:var(--c-text)}.segmented__option input:checked+.segmented__label{color:var(--c-text);background:var(--c-surface-3);box-shadow:var(--shadow-sm)}.segmented__option input:focus-visible+.segmented__label{outline:2px solid var(--c-accent-text);outline-offset:-1px}.field.is-disabled{opacity:.42;pointer-events:none}.color-input{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.color-input input[type=color]{width:34px;height:26px;padding:2px;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:4px;cursor:pointer}.color-input input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-input input[type=color]::-webkit-color-swatch{border:0;border-radius:2px}.color-input input[type=color]::-moz-color-swatch{border:0;border-radius:2px}.color-input input[type=color]:hover{border-color:var(--c-border-strong)}.color-input__value{font-family:var(--font-mono);font-size:.6875rem;color:var(--c-text-dim);text-transform:uppercase;min-width:58px}.panel{border-bottom:1px solid var(--c-border)}.panel__header{display:flex;align-items:center;gap:8px;width:100%;padding:11px 14px;font-size:.8125rem;font-weight:600;color:var(--c-text);text-align:start;transition:background 120ms ease}.panel__header:hover{background:var(--c-surface-2)}.panel__chevron{width:14px;height:14px;flex-shrink:0;color:var(--c-text-dim);transition:transform 200ms ease}.panel__title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel__summary{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;color:var(--c-text-dim);flex-shrink:0}.panel__body{padding-bottom:8px}.panel[data-open=false] .panel__chevron{transform:rotate(-90deg)}.panel[data-open=false] .panel__body{display:none}.panel__group{margin:4px 14px 8px;padding:4px 0 2px;border-top:1px dashed var(--c-border)}.panel__group>.field{padding-inline:0}.panel__group-title{padding:6px 0 2px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-text-dim)}.tabs{display:flex;flex-shrink:0;padding:0 6px;background:var(--c-surface);border-bottom:1px solid var(--c-border)}.tabs__btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;font-size:.6875rem;font-weight:500;color:var(--c-text-dim);transition:color 120ms ease}.tabs__btn .icon{width:18px;height:18px}.tabs__btn:hover{color:var(--c-text-muted)}.tabs__btn[aria-selected=true]{color:var(--c-accent-text)}.tabs__btn[aria-selected=true]::after{content:"";position:absolute;inset-inline:8px;bottom:-1px;height:2px;background:var(--c-accent-text);border-radius:2px 2px 0 0}.tabpanel[hidden]{display:none}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;font-size:.6875rem;font-weight:500;line-height:1.5;color:var(--c-text-muted);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:999px;white-space:nowrap}.badge--accent{color:var(--c-accent-text);background:var(--c-accent-soft);border-color:rgba(0,0,0,0)}.badge--warning{color:var(--c-warning);background:color-mix(in srgb, var(--c-warning) 14%, transparent);border-color:rgba(0,0,0,0)}.badge--button{cursor:pointer;transition:background 120ms ease,border-color 120ms ease,color 120ms ease}.badge--button:hover{color:var(--c-accent-text);border-color:var(--c-accent)}.badge--button:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:2px}.modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:20px;transition:opacity 200ms ease,visibility 200ms ease}.modal.is-hidden{opacity:0;visibility:hidden}.modal.is-hidden .modal__box{transform:translateY(8px) scale(0.98)}.modal__scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}.modal__box{position:relative;width:min(100%,440px);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;background:var(--c-surface);border:1px solid var(--c-border);border-radius:10px;box-shadow:var(--shadow-lg);transition:transform 200ms ease;overflow:hidden}.modal__head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--c-border)}.modal__head>.icon{color:var(--c-accent-text)}.modal__title{flex:1 1 auto;font-size:.9375rem;font-weight:600}.modal__body{padding:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--c-border-strong) rgba(0,0,0,0)}.modal__body::-webkit-scrollbar{width:10px;height:10px}.modal__body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.modal__body::-webkit-scrollbar-thumb{background:var(--c-border-strong);border:3px solid rgba(0,0,0,0);background-clip:content-box;border-radius:999px}.modal__body::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-dim);background-clip:content-box}.modal__tabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--c-border)}.modal__tab{position:relative;padding:10px 14px;font-size:.8125rem;font-weight:500;color:var(--c-text-dim);transition:color 120ms ease}.modal__tab:hover{color:var(--c-text-muted)}.modal__tab[aria-selected=true]{color:var(--c-accent-text)}.modal__tab[aria-selected=true]::after{content:"";position:absolute;inset-inline:4px;bottom:-1px;height:2px;background:var(--c-accent-text);border-radius:2px 2px 0 0}.modal__panel[hidden]{display:none}.export-summary{display:grid;gap:6px;margin-bottom:16px;padding:12px;font-size:.75rem;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px}.export-summary__row{display:flex;justify-content:space-between;gap:12px}.export-summary__row dt{color:var(--c-text-dim)}.export-summary__row dd{margin:0;font-family:var(--font-mono);color:var(--c-text);text-align:end;overflow-wrap:anywhere}.export-options{margin-bottom:16px;padding:4px 0;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px}.export-options .field+.field{border-top:1px solid var(--c-border)}.export-note{font-size:.75rem;line-height:1.5;color:var(--c-text-muted);margin-bottom:16px}.modal__box--wide{width:min(100%,560px)}.help__section+.help__section{margin-top:20px;padding-top:18px;border-top:1px solid var(--c-border)}.help__title{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:.8125rem;font-weight:600;color:var(--c-text)}.help__title .icon{width:16px;height:16px;color:var(--c-accent-text)}.help__list{display:grid;gap:7px}.help__row{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.2fr);gap:14px;align-items:baseline;font-size:.75rem}.help__row dt{color:var(--c-text-muted)}.help__row dd{margin:0;color:var(--c-text)}kbd{display:inline-block;padding:1px 6px;font-family:var(--font-mono);font-size:.6875rem;line-height:1.5;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border-strong);border-bottom-width:2px;border-radius:4px;white-space:nowrap}.help__row a,.help__note a{color:var(--c-accent-text);text-decoration:underline;text-underline-offset:2px}.help__row a:hover,.help__note a:hover{color:var(--c-accent-hover)}.help__note{margin-top:10px;font-size:.75rem;line-height:1.5;color:var(--c-text-muted)}.help__bullets{display:grid;gap:7px;font-size:.75rem;line-height:1.5;color:var(--c-text-muted)}.help__bullets li{position:relative;padding-inline-start:14px}.help__bullets li::before{content:"";position:absolute;inset-inline-start:2px;top:.5em;width:4px;height:4px;border-radius:50%;background:var(--c-accent-text)}.release+.release{margin-top:20px;padding-top:18px;border-top:1px solid var(--c-border)}.release__head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.release__version{font-size:.9375rem;font-weight:650;color:var(--c-accent-text)}.release__date{font-size:.75rem;color:var(--c-text-dim)}.release__list{display:grid;gap:8px}.release__item{display:grid;grid-template-columns:auto minmax(0, 1fr);gap:10px;align-items:baseline;font-size:.8125rem;line-height:1.5;color:var(--c-text-muted)}.release__tag{justify-self:start;padding:1px 7px;font-size:.625rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;white-space:nowrap}.release__tag--new{color:var(--c-success);background:color-mix(in srgb, var(--c-success) 16%, transparent)}.release__tag--fix{color:var(--c-accent-text);background:var(--c-accent-soft)}.release__tag--tweak{color:var(--c-text-muted);background:var(--c-surface-3)}@media(pointer: coarse){.help__section--keyboard{display:none}}@media not (pointer: coarse){.help__section--touch{display:none}}.help__row dt .icon{display:inline-block;width:16px;height:16px;vertical-align:-3px}.toasts{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;max-width:380px;padding:9px 13px;font-size:.8125rem;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border-strong);border-inline-start:3px solid var(--c-accent);border-radius:6px;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in 200ms ease}.toast--success{border-inline-start-color:var(--c-success)}.toast--warning{border-inline-start-color:var(--c-warning)}.toast--error{border-inline-start-color:var(--c-danger)}.toast.is-leaving{animation:toast-out 180ms ease forwards}@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(12px)}}.drawing{position:relative;display:flex;flex-direction:column;min-height:0;padding:64px 16px 30px;background:var(--c-surface)}@media(max-width: 640px){.drawing{padding:64px 8px 16px}}.drawing{overflow:auto;scrollbar-width:thin;scrollbar-color:var(--c-border-strong) rgba(0,0,0,0)}.drawing::-webkit-scrollbar{width:10px;height:10px}.drawing::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.drawing::-webkit-scrollbar-thumb{background:var(--c-border-strong);border:3px solid rgba(0,0,0,0);background-clip:content-box;border-radius:999px}.drawing::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-dim);background-clip:content-box}.drawing__svg{display:block;flex:1 1 auto;width:100%;height:100%;min-width:640px;min-height:0;user-select:none;touch-action:none;overflow:visible}@media(max-width: 640px){.drawing__svg{min-width:0}}@media(pointer: coarse){.drawing__hint{display:none}}.drawing__hint{margin-top:6px;text-align:center;font-size:.6875rem;color:var(--c-text-dim)}.drawing__svg *{vector-effect:non-scaling-stroke}.ed-panel,.ed-section{fill:var(--c-surface-3);stroke:var(--c-border-strong)}.ed-floor{fill:var(--c-surface-2);stroke:var(--c-border-strong)}.ed-zone{fill:url(#ed-hatch)}.ed-floor--area{fill:none;stroke-dasharray:4 3}.ed-shelf{fill:var(--c-surface-3)}.ed-hatch-line{stroke:var(--c-border-strong);stroke-width:1}.ed-seam{stroke:var(--c-accent-text);stroke-dasharray:5 4;stroke-width:1}.ed-flange{fill:var(--c-accent-soft);stroke:var(--c-accent-text)}.ed-flange--wall{fill:var(--c-border);stroke:var(--c-border-strong)}.ed-hole{fill:var(--c-viewport);stroke:var(--c-text-muted);stroke-width:1}.ed-hole--fixed{stroke:var(--c-text-dim)}.ed-item{cursor:grab}.ed-item:active{cursor:grabbing}.ed-hit{fill:rgba(0,0,0,0);stroke:rgba(0,0,0,0)}.ed-item:hover .ed-hit{stroke:var(--c-border-strong);stroke-dasharray:3 3}.ed-item.is-selected .ed-hit{stroke:var(--c-accent-text);stroke-dasharray:4 3;stroke-width:1.5}.ed-item--linked .ed-hole{stroke-dasharray:4 3}.ed-device{fill:color-mix(in srgb, #4f8cc9 18%, transparent);stroke:#4f8cc9;stroke-width:1}.ed-cell{fill:none;stroke:#4f8cc9;stroke-width:1}.ed-device--accessory{fill:color-mix(in srgb, #4f8cc9 6%, transparent);stroke-dasharray:3 2}.ed-object.is-selected .ed-device{stroke:var(--c-accent-text);stroke-width:2;fill:color-mix(in srgb, #4f8cc9 28%, transparent)}.ed-stop{fill:var(--c-text-dim)}.ed-grid{fill:none;stroke:var(--c-text-dim);stroke-width:1;pointer-events:none}.ed-grid--minor{opacity:.14}.ed-grid--major{opacity:.32}.ed-guide{stroke:var(--c-accent-text);stroke-width:1;stroke-dasharray:5 3;pointer-events:none}.ed-guide-label{fill:var(--c-accent-text);font-family:var(--font-sans);font-weight:600;pointer-events:none}.ed-text{stroke:none}.ed-text--inlay,.ed-text--emboss{fill:var(--c-text)}.ed-text--engrave{fill:var(--c-viewport)}.ed-item.is-error .ed-text{fill:var(--c-danger)}.ed-dim{stroke:var(--c-accent-text);stroke-width:1;pointer-events:none}.ed-dim-label{fill:var(--c-accent-text);font-family:var(--font-mono);font-weight:600;paint-order:stroke;stroke:var(--c-surface);stroke-width:3px;vector-effect:none;pointer-events:none}.ed-marquee{fill:var(--c-accent-soft);stroke:var(--c-accent-text);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.drawing__svg.is-pannable{cursor:grab}.drawing__svg.is-panning,.drawing__svg.is-pannable .ed-item{cursor:grabbing}.ed-vent{fill:var(--c-viewport);stroke:var(--c-text-dim);stroke-width:.75;opacity:.7;pointer-events:none}.ed-loop{fill:var(--c-text-dim);stroke:var(--c-text-muted)}.ed-loop-tunnel{stroke:var(--c-surface);stroke-width:2;pointer-events:none}.ed-pocket{fill:none;stroke:var(--c-text-dim);stroke-dasharray:3 2}.ed-port{fill:var(--c-surface-3);stroke:var(--c-text-dim)}.ed-port--front{fill:var(--c-accent-soft);stroke:var(--c-accent-text)}.ed-standoff{fill:var(--c-surface);stroke:var(--c-text-muted)}.ed-label{font-size:calc(var(--px, 0.5)*11px);font-weight:500;fill:var(--c-text);pointer-events:none}.ed-labels text{fill:var(--c-text-dim);font-family:var(--font-sans)}.ed-labels .ed-orient{fill:var(--c-text-muted);font-weight:700}.ed-divider{stroke:#4f8cc9;stroke-width:1;stroke-dasharray:3 2}.ed-item.is-error .ed-hole,.ed-item.is-error .ed-device{fill:color-mix(in srgb, var(--c-danger) 22%, transparent);stroke:var(--c-danger)}.ed-item.is-warn .ed-hole,.ed-item.is-warn .ed-device{fill:color-mix(in srgb, var(--c-warning) 22%, transparent);stroke:var(--c-warning)}.ed-grip{fill:none;stroke:#4f8cc9;stroke-width:1}.library{display:grid;gap:10px;padding:4px 14px 8px}.library__title{padding:4px 0 6px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-text-dim)}.library__grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:6px}.library__item{hyphens:auto;overflow-wrap:anywhere;display:grid;justify-items:center;gap:4px;padding:9px 4px 7px;font-size:.6875rem;line-height:1.25;text-align:center;color:var(--c-text-muted);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px;cursor:grab;transition:background 120ms ease,border-color 120ms ease,color 120ms ease}.library__item .icon{width:20px;height:20px;color:var(--c-text)}.library__item:hover:not(:disabled){background:var(--c-surface-3);border-color:var(--c-border-strong);color:var(--c-text)}.library__item:disabled{opacity:.4;cursor:not-allowed}.library__group[hidden]{display:none}.inspector__empty{padding:4px 14px 10px;font-size:.75rem;line-height:1.5;color:var(--c-text-dim)}.inspector__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 14px 2px}.inspector__name{font-size:.875rem;font-weight:600}.inspector__kind{font-size:.6875rem;color:var(--c-text-dim)}.inspector__issue{margin:6px 14px 2px;padding:7px 9px;font-size:.75rem;line-height:1.4;border-radius:6px;color:var(--c-danger);background:color-mix(in srgb, var(--c-danger) 12%, transparent)}.inspector__issue[data-level=warn]{color:var(--c-warning);background:color-mix(in srgb, var(--c-warning) 12%, transparent)}.inspector .input-unit{width:108px}.inspector__actions{display:flex;gap:8px;padding:8px 14px 4px}.inspector__actions .btn{flex:1 1 0;justify-content:center}.btn--danger{color:var(--c-danger)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--c-danger) 12%, transparent);border-color:var(--c-danger)}.partlist{list-style:none;margin:0;padding:2px 8px 6px}.partlist__item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:.75rem;text-align:start;border-radius:4px;color:var(--c-text-muted)}.partlist__item:hover{background:var(--c-surface-2);color:var(--c-text)}.partlist__item[aria-pressed=true]{background:var(--c-accent-soft);color:var(--c-text)}.partlist__dot{width:7px;height:7px;border-radius:50%;background:var(--c-success);flex-shrink:0}.partlist__dot--error{background:var(--c-danger)}.partlist__dot--warn{background:var(--c-warning)}.partlist__name{flex:1 1 auto}.partlist__pos{font-family:var(--font-mono);font-size:.6875rem;color:var(--c-text-dim)}.inspector__hint{padding:2px 14px 6px}.inspector__text{width:100%}.inspector__group{padding:2px 14px 6px}.inspector__tools{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:4px;padding-top:4px}.inspector__tool{justify-content:center;padding:6px 0}.inspector__tool .icon{width:16px;height:16px}.export-parts{display:grid;gap:6px;margin:12px 0}.export-part{display:flex;align-items:center;gap:12px;padding:9px 12px;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:6px}.export-part__text{display:grid;gap:2px;flex:1 1 auto;min-width:0}.export-part__name{font-size:.8125rem;font-weight:600}.export-part__meta{font-family:var(--font-mono);font-size:.6875rem;color:var(--c-text-dim)}.export-warning{margin-top:10px;padding:8px 10px;font-size:.75rem;line-height:1.45;color:var(--c-danger);background:color-mix(in srgb, var(--c-danger) 12%, transparent);border-radius:6px}.export-options{margin:4px 0 12px;border:1px solid var(--c-border);border-radius:6px}.setting-tabs{flex:1 1 auto;min-width:0;display:flex;justify-content:center;gap:6px;overflow-x:auto;scrollbar-width:none}.setting-tabs::-webkit-scrollbar{display:none}.setting-tab{display:flex;align-items:center;gap:9px;height:40px;padding:0 12px 0 5px;min-width:0;max-width:210px;flex:0 1 auto;color:var(--c-text);background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:6px;transition:background 120ms ease,border-color 120ms ease,box-shadow 120ms ease}.setting-tab:hover{background:var(--c-surface-2);border-color:var(--c-border)}.setting-tab:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:1px}.setting-tab[aria-expanded=true]{background:var(--c-surface-2);border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.setting-tab[aria-expanded=true] .setting-tab__icon{color:var(--c-on-accent);background:var(--c-accent)}.setting-tab__icon{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;color:var(--c-accent-text);background:var(--c-accent-soft);border-radius:7px;transition:background 120ms ease,color 120ms ease}.setting-tab__icon .icon{width:16px;height:16px}.setting-tab__text{display:grid;min-width:0;text-align:left;line-height:1.15}.setting-tab__label{font-size:.625rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-dim);white-space:nowrap}.setting-tab__value{font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width: 1600px){.topbar__title{display:none}.setting-tab{max-width:175px;padding-right:9px}.setting-tabs{gap:2px}}@media(max-width: 1250px){.setting-tab{padding:0 5px}.setting-tab__text{display:none}}@media(max-width: 1000px){.topbar__slicer span{display:none}}@media(max-width: 640px){.topbar{gap:6px;padding:0 8px}.topbar__divider,.topbar__brand{display:none}.setting-tabs{gap:2px;justify-content:flex-start}.topbar__actions{gap:4px}.topbar__actions .btn--primary span{display:none}}.segmented--compact{display:inline-flex;gap:2px;padding:2px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:6px}.segmented__btn{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;font-size:.75rem;font-weight:500;color:var(--c-text-muted);border-radius:4px;white-space:nowrap;transition:background 120ms ease,color 120ms ease}.segmented__btn:hover{color:var(--c-text)}.segmented__btn[aria-pressed=true]{color:var(--c-text);background:var(--c-surface-3);box-shadow:var(--shadow-sm)}.segmented__btn:focus-visible{outline:2px solid var(--c-accent-text);outline-offset:-1px}.segmented__btn .icon{width:14px;height:14px}.topbar__lang .segmented__btn{padding:5px 9px;font-weight:600;letter-spacing:.02em}.templates{position:fixed;inset:0;z-index:60;overflow-y:auto;padding:32px 16px 64px;background:var(--c-bg);transition:opacity 200ms ease}.templates.is-hidden{opacity:0;pointer-events:none}@media(min-width: 640px){.templates{padding-inline:24px}}.templates__head{max-width:1200px;margin:0 auto 28px;text-align:center}@media(max-width: 640px){.templates__head{margin-top:40px}}.templates__back{position:absolute;inset-inline-start:16px;inset-block-start:24px}@media(min-width: 640px){.templates__back{inset-inline-start:24px}}.templates__back-icon{transform:rotate(90deg)}.templates__title-main{margin:0 0 6px;font-size:1.5rem;font-weight:650;color:var(--c-text)}.templates__subtitle{margin:0;font-size:.875rem;color:var(--c-text-dim)}.templates__grid{display:grid;gap:20px;max-width:1200px;margin:0 auto;grid-template-columns:1fr}@media(min-width: 640px){.templates__grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 900px){.templates__grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}.templates__card{display:grid;grid-template-rows:auto 1fr;gap:12px;text-align:start;color:var(--c-text);transition:transform 120ms ease}.templates__card:hover{transform:translateY(-3px)}.templates__card:hover .templates__figure{border-color:var(--c-accent)}.templates__card:focus-visible{outline:none}.templates__card:focus-visible .templates__figure{outline:2px solid var(--c-accent-text);outline-offset:2px}.templates__figure{display:grid;place-items:center;overflow:hidden;aspect-ratio:16/10;background:var(--c-viewport);border:1px solid var(--c-border);border-radius:10px;transition:border-color 120ms ease}.templates__thumb{width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 200ms ease}.templates__thumb.is-ready{opacity:1}.templates__body{display:grid;gap:4px;align-content:start;min-width:0}.templates__title{font-size:.875rem;font-weight:600;line-height:1.35}.templates__meta{font-family:var(--font-mono);font-size:.6875rem;color:var(--c-accent-text)}.templates__text{font-size:.75rem;line-height:1.5;color:var(--c-text-muted)}
