@font-face{font-family:Onest Voltaula;font-style:normal;font-weight:100 900;font-display:block;src:url(/fonts/onest/onest-latin-wght-normal.woff2) format("woff2-variations"),url(/fonts/onest/onest-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Voltaula;font-style:normal;font-weight:100 900;font-display:block;src:url(/fonts/onest/onest-latin-ext-wght-normal.woff2) format("woff2-variations"),url(/fonts/onest/onest-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Voltaula;font-style:normal;font-weight:100 900;font-display:block;src:url(/fonts/onest/onest-cyrillic-wght-normal.woff2) format("woff2-variations"),url(/fonts/onest/onest-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Voltaula;font-style:normal;font-weight:100 900;font-display:block;src:url(/fonts/onest/onest-cyrillic-ext-wght-normal.woff2) format("woff2-variations"),url(/fonts/onest/onest-cyrillic-ext-wght-normal.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}.lg{--font: "Onest Voltaula", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--lg-yellow: #FFC21A;--lg-ink: #121212;--lg-page: #FAFAF7;--lg-card: #FFFFFF;--lg-line: rgba(18, 18, 18, .1);--accent: #8A6100;--accent-solid: #FFC21A;--accent-hover: #F5B400;--accent-text: #121212;--accent-soft: rgba(255, 194, 26, .18);--accent-soft-text: #6B4B00;--focus: 0 0 0 3px rgba(255, 194, 26, .55);position:relative;min-height:100%;display:flex;flex-direction:column;background:radial-gradient(900px 520px at 50% -140px,#ffc21a33,#ffc21a00 70%),var(--lg-page);color:var(--text);font:15px/1.5 var(--font);letter-spacing:-.005em}:root[data-theme=dark] .lg{--lg-page: #101112;--lg-card: #17191C;--lg-line: rgba(255, 255, 255, .1);--accent: #FFC21A;--accent-soft-text: #FFD666;--accent-hover: #FFCF4A;--focus: 0 0 0 3px rgba(255, 194, 26, .45);background:radial-gradient(900px 520px at 50% -140px,#ffc21a1f,#ffc21a00 70%),var(--lg-page)}.lg :where(button,input,select,textarea){font-family:var(--font)}.lg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1200px;width:100%;margin:0 auto;padding:16px 24px}.lg-brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;min-width:0}.lg-mark{flex:none;width:34px;height:34px;display:block}.lg-name{font-size:20px;font-weight:700;letter-spacing:-.03em}.lg-ed{padding:2px 8px;border-radius:999px;border:1px solid var(--lg-line);font-size:12px;font-weight:600;color:var(--muted)}.lg-tools{display:flex;align-items:center;gap:8px;flex:none}.lg-tools .ui-select{min-width:132px}.lg-main{flex:1;display:flex;flex-direction:column;align-items:center;padding:clamp(24px,8vh,88px) 16px 40px}.lg-card{width:min(420px,100%);display:flex;flex-direction:column;gap:14px;padding:32px 30px 26px;border-radius:20px;background:var(--lg-card);border:1px solid var(--lg-line);box-shadow:0 1px 2px #1212120d,0 24px 48px -20px #12121238}:root[data-theme=dark] .lg-card{box-shadow:0 1px 2px #00000080,0 24px 48px -20px #000000b3}.lg-card h1{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.035em}.lg-card p{margin:0}.lg-sub{color:var(--text-2);font-size:15px;line-height:1.5}.lg-intro{color:var(--muted);font-size:14px}.lg-card .ui-btn,.lg-card .ui-input,.lg-card input:not([type=checkbox]):not([type=radio]){min-height:44px;border-radius:12px;font-size:15px}.lg-card .ui-btn.primary{font-weight:600;box-shadow:0 6px 18px -8px #ffa600b3}.lg-card .ui-btn.primary:disabled{box-shadow:none}.lg-card .ui-btn.ghost{min-height:40px;color:var(--text-2)}.lg-card label,.lg-card .ui-field-label{font-size:13px}.lg-err{color:var(--danger);background:var(--danger-soft);border-radius:10px;padding:9px 12px;font-size:13.5px}.lg-note{padding-top:12px;border-top:1px solid var(--lg-line);color:var(--muted);font-size:13.5px;line-height:1.5}.lg-sent{display:flex;flex-direction:column;gap:10px}.lg-dev{padding:8px 10px;border:1px dashed var(--line-strong);border-radius:10px;font-size:13px}.lg-link{display:inline;min-height:0;padding:0;border:0;border-radius:4px;background:none;box-shadow:none;cursor:pointer;color:var(--text);font:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--lg-yellow);text-decoration-thickness:2px;text-underline-offset:3px;white-space:normal}.lg-link:where(:hover:not(:disabled)){background:none;border:0;text-decoration-color:currentColor}.lg-link:where(:active:not(:disabled)){background:none;transform:none}.lg-foot{width:min(420px,100%);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:18px;padding:0 4px;color:var(--muted);font-size:14px}.lg-back{color:var(--muted);text-decoration:none;font-weight:500}.lg-back:hover{color:var(--text)}.lg .login-sso{display:flex;flex-direction:column;gap:8px}.lg .login-provider{justify-content:center;gap:10px;text-decoration:none}.lg .login-or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:12px}.lg .login-or:before,.lg .login-or:after{content:"";flex:1;height:1px;background:var(--lg-line)}@media (max-width: 520px){.lg-top{padding:12px 16px}.lg-name{font-size:18px}.lg-mark{width:30px;height:30px}.lg-tools .ui-select{min-width:0}.lg-main{padding-top:12px}.lg-card{padding:24px 18px 20px;border-radius:18px}.lg-card h1{font-size:24px}.lg-foot{flex-direction:column;align-items:flex-start}}:root{--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, monospace;--r-xs: 4px;--r-sm: 6px;--r: 8px;--r-lg: 12px;--r-xl: 16px;--h-sm: 26px;--h: 32px;--h-lg: 38px;--ease: cubic-bezier(.2, .7, .3, 1);--dur: .14s;--bg: #f1f2f4;--surface: #ffffff;--surface-2: #f7f8fa;--surface-3: #eceef2;--overlay: rgba(15, 18, 24, .42);--text: #15181d;--text-2: #3b414b;--muted: #677080;--faint: #98a0ab;--line: #e3e6eb;--line-strong: #d0d5dd;--accent: #2563eb;--accent-solid: #2563eb;--accent-hover: #1d4fd6;--accent-text: #ffffff;--accent-soft: #e9f0fe;--accent-soft-text: #1c4ccc;--ok: #157a3b;--ok-soft: #e6f5eb;--warn: #a65a00;--warn-soft: #fff3d6;--danger: #cf2d2d;--danger-soft: #fdeceb;--focus: 0 0 0 3px rgba(37, 99, 235, .3);--shadow-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .05);--shadow-2: 0 8px 20px rgba(16, 24, 40, .1), 0 2px 5px rgba(16, 24, 40, .06);--shadow-3: 0 24px 64px rgba(16, 24, 40, .24), 0 6px 16px rgba(16, 24, 40, .08);color-scheme:light}:root[data-theme=dark]{--bg: #0c0e11;--surface: #15181d;--surface-2: #1a1e24;--surface-3: #232830;--overlay: rgba(0, 0, 0, .58);--text: #e8eaee;--text-2: #c4c9d1;--muted: #949dab;--faint: #6a7280;--line: #262b33;--line-strong: #343b46;--accent: #74a2ff;--accent-solid: #2f6ae6;--accent-hover: #4580f2;--accent-text: #ffffff;--accent-soft: #172440;--accent-soft-text: #a3c0ff;--ok: #4cc47f;--ok-soft: #12271b;--warn: #eaaa4a;--warn-soft: #2d2311;--danger: #f3625f;--danger-soft: #351718;--focus: 0 0 0 3px rgba(116, 162, 255, .36);--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 10px 24px rgba(0, 0, 0, .5), 0 2px 5px rgba(0, 0, 0, .35);--shadow-3: 0 28px 72px rgba(0, 0, 0, .65), 0 6px 16px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,select,input,textarea{font:inherit;color:inherit;letter-spacing:inherit}h1,h2,h3,h4{letter-spacing:-.01em}a{color:var(--accent);text-underline-offset:2px}code,kbd,pre{font-family:var(--mono)}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--h);padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font-weight:500;line-height:1.2;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-1);-webkit-user-select:none;user-select:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform .06s}button:where(:hover:not(:disabled)){background:var(--surface-2);border-color:color-mix(in srgb,var(--text) 18%,var(--line-strong))}button:where(:active:not(:disabled)){background:var(--surface-3);transform:translateY(.5px)}button:disabled{opacity:.45;cursor:default;box-shadow:none}button.primary{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--accent-text)}button.primary:where(:hover:not(:disabled)){background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:where(:active:not(:disabled)){background:var(--accent-solid)}button.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-2)}button.ghost:where(:hover:not(:disabled)){background:var(--surface-3);border-color:transparent;color:var(--text)}button.danger{color:var(--danger)}button.danger:where(:hover:not(:disabled)){background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 40%,var(--line-strong))}button.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}button.danger-solid:where(:hover:not(:disabled)){background:color-mix(in srgb,var(--danger) 88%,#000)}button.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-soft-text)}button.sm{min-height:var(--h-sm);padding:0 9px;font-size:12px;border-radius:var(--r-sm);gap:4px}button.lg{min-height:var(--h-lg);padding:0 16px;font-size:14px}button.icon{width:var(--h);padding:0}button.icon.sm{width:var(--h-sm)}button.icon.lg{width:var(--h-lg)}button.block{width:100%}.ui-spin{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}input:where(:not([type=checkbox],[type=radio],[type=range],[type=color])),textarea,select{min-height:var(--h);padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}textarea{padding:7px 10px;line-height:1.45}:where(input).sm,.ui-input.sm{min-height:var(--h-sm);padding:0 8px;font-size:12px;border-radius:var(--r-sm)}.ui-input.block{width:100%}:where(input,textarea,select):where(:hover:not(:disabled):not(:focus)){border-color:color-mix(in srgb,var(--text) 22%,var(--line-strong))}:where(input,textarea,select):focus{border-color:var(--accent);box-shadow:var(--focus)}:where(input,textarea,select):disabled{opacity:.55}input::placeholder,textarea::placeholder{color:var(--faint)}input[type=search]::-webkit-search-cancel-button{display:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%238a929e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;margin:0;flex:none;display:inline-grid;place-content:center;cursor:pointer;border:1.5px solid var(--line-strong);border-radius:4px;background:var(--surface);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}input[type=checkbox]:before{content:"";width:10px;height:10px;background:var(--accent-text);transform:scale(0);transition:transform .1s var(--ease);clip-path:polygon(12% 50%,0 64%,40% 100%,100% 22%,87% 9%,39% 72%)}input[type=checkbox]:checked{background:var(--accent-solid);border-color:var(--accent-solid)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:where(:hover:not(:checked):not(:disabled)){border-color:var(--accent)}input[type=checkbox]:focus-visible{box-shadow:var(--focus)}input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;margin:0;flex:none;display:inline-grid;place-content:center;cursor:pointer;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--surface);transition:border-color var(--dur) var(--ease)}input[type=radio]:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-solid);transform:scale(0);transition:transform .1s var(--ease)}input[type=radio]:checked{border-color:var(--accent-solid)}input[type=radio]:checked:before{transform:scale(1)}input[type=radio]:where(:hover:not(:checked)){border-color:var(--accent)}input[type=radio]:focus-visible{box-shadow:var(--focus)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;background:transparent;cursor:pointer;margin:0}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent-solid) var(--fill, 0%),var(--surface-3) var(--fill, 0%))}input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--surface-3)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--surface);border:2px solid var(--accent-solid);box-shadow:var(--shadow-1);transition:transform .1s}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--accent-solid)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:focus-visible{box-shadow:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus)}.ui-field{display:flex;flex-direction:column;gap:5px;min-width:0}.ui-field.inline{flex-direction:row;align-items:center;gap:8px}.ui-field-label{font-size:12px;font-weight:600;color:var(--text-2)}.ui-field-hint{font-size:12px;color:var(--muted)}.ui-field-error{font-size:12px;color:var(--danger)}.ui-search{position:relative;display:inline-flex;align-items:center;min-width:180px}.ui-search .mag{position:absolute;left:10px;color:var(--muted);pointer-events:none}.ui-search input{width:100%;padding-left:30px!important;padding-right:30px!important}.ui-search .clear{position:absolute;right:3px;min-height:22px;width:22px;color:var(--muted)}.ui-search.sm .mag{left:8px}.ui-select{justify-content:space-between;text-align:left;font-weight:400;min-width:0;padding:0 9px 0 11px}.ui-select.block{width:100%}.ui-select .ui-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ui-select .ui-select-value.placeholder{color:var(--faint)}.ui-select .chev{flex:none;color:var(--muted);transition:transform var(--dur) var(--ease)}.ui-select[aria-expanded=true]{border-color:var(--accent);box-shadow:var(--focus)}.ui-select[aria-expanded=true] .chev{transform:rotate(180deg)}.ui-pop{position:fixed;z-index:1000;overflow:auto;padding:4px;max-width:min(520px,calc(100vw - 16px));background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);animation:ui-pop-in .12s var(--ease);font-size:13px}.ui-pop.up{animation-name:ui-pop-up}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes ui-pop-up{0%{opacity:0;transform:translateY(4px)}}.ui-option{display:flex;gap:8px;align-items:flex-start;padding:7px 10px 7px 7px;border-radius:var(--r-sm);cursor:pointer}.ui-option .tick{flex:none;margin-top:1px;color:var(--accent)}.ui-option.active{background:var(--surface-3)}.ui-option[aria-selected=true]{font-weight:600}.ui-option[aria-disabled=true]{opacity:.45;cursor:default}.ui-option-text{display:flex;flex-direction:column;gap:1px;min-width:0}.ui-option-hint{color:var(--muted);font-size:12px;font-weight:400}.ui-seg{display:inline-flex;gap:2px;padding:3px;background:var(--surface-3);border-radius:calc(var(--r) + 1px);max-width:100%}.ui-seg button{min-height:26px;padding:0 11px;border:none;border-radius:var(--r-sm);background:transparent;box-shadow:none;color:var(--muted);font-weight:500;white-space:nowrap}.ui-seg button:where(:hover:not(:disabled)){background:color-mix(in srgb,var(--surface) 50%,transparent);color:var(--text)}.ui-seg button[aria-checked=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}:root[data-theme=dark] .ui-seg button[aria-checked=true]{background:var(--line-strong)}.ui-seg.sm button{min-height:22px;padding:0 8px;font-size:12px}.ui-seg.block{display:flex}.ui-seg.block button{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ui-tabs{display:flex;flex-wrap:wrap;gap:4px}.ui-tabs button{gap:6px;box-shadow:none}.ui-tabs--pill button{min-height:28px;padding:0 11px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted)}.ui-tabs--pill button:where(:hover:not(:disabled)){background:var(--surface-3);border-color:transparent;color:var(--text)}.ui-tabs--pill button[aria-selected=true]{background:var(--accent-soft);color:var(--accent-soft-text)}.ui-tabs--underline{gap:0;border-bottom:1px solid var(--line)}.ui-tabs--underline button{position:relative;min-height:38px;padding:0 12px;border:none;border-radius:0;background:transparent;color:var(--muted)}.ui-tabs--underline button:where(:hover:not(:disabled)){background:transparent;color:var(--text)}.ui-tabs--underline button[aria-selected=true]{color:var(--text)}.ui-tabs--underline button[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.ui-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:1}.ui-count.neutral{background:var(--surface-3);color:var(--text-2)}.ui-dialog-back{--dlg-top: min(8vh, 64px);position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:var(--dlg-top) 16px 16px;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ui-fade .16s ease}.ui-dialog{display:flex;flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - var(--dlg-top) - 16px);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-3);animation:ui-rise .2s var(--ease)}.ui-dialog:focus-visible{box-shadow:var(--shadow-3)}.ui-dialog.sm{width:min(420px,100%)}.ui-dialog.lg{width:min(820px,100%)}.ui-dialog.xl{width:min(1100px,100%)}.ui-dialog-head{display:flex;align-items:center;gap:10px;padding:16px 16px 6px 22px}.ui-dialog-head h3{margin:0;flex:1;font-size:17px;font-weight:650}.ui-dialog-x{color:var(--muted)}.ui-dialog-body{padding:8px 22px 18px;overflow:auto;min-height:0}.ui-dialog-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 22px;border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-xl) var(--r-xl)}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-rise{0%{opacity:0;transform:translateY(8px) scale(.985)}}.ui-check,.ui-switch{position:relative;display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.4}.ui-check.disabled,.ui-switch.disabled{opacity:.5;cursor:default}.ui-check input{margin-top:1px}.ui-check-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ui-check-desc{color:var(--muted);font-size:12px}.ui-switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.ui-switch-track{position:relative;flex:none;width:32px;height:18px;margin-top:1px;border-radius:999px;background:var(--line-strong);transition:background var(--dur) var(--ease)}.ui-switch-track:after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:transform var(--dur) var(--ease)}.ui-switch input:checked+.ui-switch-track{background:var(--accent-solid)}.ui-switch input:checked+.ui-switch-track:after{transform:translate(14px)}.ui-switch input:focus-visible+.ui-switch-track{box-shadow:var(--focus)}.ui-badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;white-space:nowrap;background:var(--surface-3);color:var(--text-2);font-size:11.5px;font-weight:600;line-height:1}.ui-badge--sm{height:17px;padding:0 6px;font-size:10.5px}.ui-badge--accent{background:var(--accent-soft);color:var(--accent-soft-text)}.ui-badge--ok{background:var(--ok-soft);color:var(--ok)}.ui-badge--warn{background:var(--warn-soft);color:var(--warn)}.ui-badge--danger{background:var(--danger-soft);color:var(--danger)}.ui-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ui-table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.ui-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.ui-table th{position:sticky;top:0;z-index:1;padding:8px 12px;text-align:left;white-space:nowrap;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600;border-bottom:1px solid var(--line)}.ui-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-table th.sortable:hover,.ui-table th.sorted{color:var(--text)}.ui-table .sort-mark{margin-left:5px;vertical-align:-1px}.ui-table td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr:hover td{background:var(--surface-2)}.ui-table tr.clickable{cursor:pointer}.ui-table tr.clickable:focus-visible{box-shadow:inset var(--focus)}.ui-table.dense th{padding:6px 10px}.ui-table.dense td{padding:5px 10px}.ui-table .num,.num{text-align:right;font-variant-numeric:tabular-nums}.ui-empty{padding:28px 16px;text-align:center;color:var(--muted)}.ui-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.ui-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ui-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.ui-kv dt{color:var(--muted)}.ui-kv dd{margin:0}.ui-kv>.ui-badge,.ui-kv>span>.ui-badge{justify-self:start}.muted{color:var(--muted)}.theme-toggle svg{transition:transform .3s var(--ease)}.theme-toggle:hover svg{transform:rotate(-18deg)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--canvas: #eceef1;--grid: #e0e3e8;--plate: #fafafa;--wall: #f3f1ec;--device: #ffffff;--device-line: #4b525c;--mech: #fdfdfd;--tube: #c9d1da;--tube-line: #9aa5b1;--lamp: #ffd43b;--term: #ffffff;--term-line: #2c3138;--leve: #b86e00;--grave: #d9480f;--muy_grave: #cf2d2d;--hl: #2563eb;--plan-bg: #ebe9e4;--plan-wall: #2e3035;--plan-window: #eef6fb;--plan-glass: #7aa9c7;--plan-door: #8a8c92;--plan-label: #55575d;--plan-halo: rgba(255, 255, 255, .78);--plan-route: #8a8d95;--floor-wood: #ead9bd;--floor-wood-line: #d8c29f;--floor-tile: #e9e7e2;--floor-tile-line: #cfccc5;--floor-bath: #dfe8ee;--floor-bath-line: #c3d0d9;--floor-other: #eeeeee;--furn: #f3f1ec;--counter: #e3b98d;--chase: #6b665e;--chase-patched: #f3efe4;--bench-wood: #c9a57c;--bench-plank: #d9b48a;--bench-plank-edge: #b98f62;--bench-grain: #cfa77b;--bench-frame: #7a5534;--bench-text: #5b4026;--label-ink: #3d4048;--label-halo: rgba(255, 255, 255, .85)}:root[data-theme=dark]{--canvas: #101317;--grid: #191d23;--plate: #20242b;--wall: #262a31;--device: #2a2f36;--device-line: #aab2bd;--mech: #262b31;--tube: #3a424c;--tube-line: #69737f;--term: #1d2126;--term-line: #d6dbe1;--leve: #eaaa4a;--grave: #ff8a4c;--muy_grave: #f3625f;--hl: #74a2ff;--plan-bg: #0f1215;--plan-wall: #c3c8d0;--plan-window: #1f2d37;--plan-glass: #6f9fbf;--plan-door: #7d838d;--plan-label: #d3d7de;--plan-halo: rgba(10, 12, 15, .8);--plan-route: #8f96a1;--floor-wood: #3f372c;--floor-wood-line: #4a4135;--floor-tile: #2e3034;--floor-tile-line: #383a3f;--floor-bath: #263139;--floor-bath-line: #2f3c45;--floor-other: #2b2d31;--furn: #3a3d42;--counter: #6b5541;--chase: #8a857c;--chase-patched: #4a4740;--bench-wood: #4e3c2b;--bench-plank: #5a4532;--bench-plank-edge: #413122;--bench-grain: #634c37;--bench-frame: #22180f;--bench-text: #e0c8a6}.danger-text{color:var(--danger);font-weight:600}.fatal{padding:40px;font-size:16px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;gap:12px;align-items:center;padding:8px 12px 8px 14px;height:56px;flex:none;flex-wrap:nowrap;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:8}.brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:300px;flex:0 1 auto}.brand-mark{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#1b1500;background:linear-gradient(140deg,#ffd84a,#f2a20c);box-shadow:inset 0 0 0 1px #00000014,var(--shadow-1)}.brand-text{display:flex;flex-direction:column;min-width:0}.brand strong{font-size:14px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-label{color:var(--muted);font-size:12px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.controls{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;flex:1 1 auto;min-width:0;overflow:hidden}.tools{display:flex;gap:4px;align-items:center}.sep{width:1px;height:22px;background:var(--line);margin:0 2px}.langs{display:flex;gap:6px;align-items:center;margin-left:auto;flex:none}.langs .ui-select{max-width:230px}.sel-cap{color:var(--muted);font-size:11.5px;margin-right:6px}.sel-ico{color:var(--muted);margin-right:6px;vertical-align:-2px}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-3);color:var(--text-2);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.pill.clock:before{display:none}.pill.on{background:var(--warn-soft);color:var(--warn)}.pill.off{color:var(--muted)}.pill.locked{background:var(--danger-soft);color:var(--danger)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.clock{font-variant-numeric:tabular-nums}.pill.clock.over{background:var(--danger-soft);color:var(--danger)}.banner{font-size:11.5px;padding:3px 14px;color:var(--warn);background:var(--warn-soft);border-bottom:1px solid color-mix(in srgb,var(--warn) 22%,transparent)}.swatches{display:inline-flex;gap:3px}.swatch{width:20px;min-height:20px;height:20px;padding:0;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong)}.swatch:where(:hover:not(:disabled)){border-color:var(--surface)}.swatch.active{box-shadow:0 0 0 2px var(--accent)}.sw-brown{background:#8a4b20}.sw-black{background:#1d1d1f}.sw-grey{background:#8d939a}.sw-blue{background:#1f63c6}.sw-yellow_green{background:repeating-linear-gradient(90deg,#2f9e44 0,#2f9e44 5px,#f2c80f 5px,#f2c80f 10px)}.sw-brown:where(:hover:not(:disabled)){background:#8a4b20}.sw-black:where(:hover:not(:disabled)){background:#1d1d1f}.sw-grey:where(:hover:not(:disabled)){background:#8d939a}.sw-blue:where(:hover:not(:disabled)){background:#1f63c6}.sw-yellow_green:where(:hover:not(:disabled)){background:repeating-linear-gradient(90deg,#2f9e44 0,#2f9e44 5px,#f2c80f 5px,#f2c80f 10px)}.workspace{flex:1;display:flex;min-height:0}.board-pane{flex:1;position:relative;min-width:0;--dock-h: 108px;background:var(--canvas)}.sidebar{width:390px;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--surface);min-height:0}.empty{padding:40px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.float-card,.tool-hint,.crumbs,.scene-tabs,.meter-panel,.tape-panel,.detector-reading,.probe-chip,.hover-tip,.action-menu{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-2)}.board-wrap{position:absolute;inset:0 0 var(--dock-h) 0}.board{width:100%;height:100%;display:block;background:var(--canvas);touch-action:none;-webkit-user-select:none;user-select:none}.board-plate{fill:var(--plate);stroke:var(--line-strong)}.tool-wire .terminal,.tool-detector .terminal{cursor:crosshair}.tool-place .container{cursor:copy}.zoom-buttons{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:2px;padding:3px;z-index:4;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}.zoom-buttons button{width:30px;min-height:30px;padding:0;border:none;box-shadow:none;background:transparent;color:var(--text-2);border-radius:var(--r-sm)}.zoom-buttons button:where(:hover:not(:disabled)){background:var(--surface-3);color:var(--text)}.board-hint{position:absolute;left:12px;bottom:8px;max-width:calc(50% - 110px);font-size:11px;line-height:1.35;color:var(--faint);pointer-events:none}.container rect:first-child{fill:transparent;stroke:none}.container.box rect:first-child{fill:var(--wall);stroke:var(--line-strong);stroke-width:1}.container.hl rect:first-child{stroke:var(--danger);stroke-width:3}.container image{pointer-events:none}.rail-tick{stroke:#8e97a2;stroke-width:.6}.container-label{font-size:10px;font-weight:700;fill:var(--muted);paint-order:stroke;stroke:var(--plate);stroke-width:3px;stroke-linejoin:round}.container.panel .container-label{fill:#6a6e78;stroke:#dcdde2}.container.jbox .container-label{fill:#4f535c;stroke:#d6d8dd;font-size:8px}.container-expect{font-size:8px;fill:var(--muted);text-anchor:middle}.panel-spot{fill:#786e5f0f;stroke:color-mix(in srgb,var(--text) 35%,transparent);stroke-width:1;stroke-dasharray:3 6}.panel-niche{fill:#8f8a82;stroke:#040404;stroke-width:1.5}.route{cursor:pointer}.route-hit{stroke:transparent;stroke-width:14;fill:none}.route-body{fill:none;stroke-linecap:round;stroke-linejoin:round}.route.no-tube .route-body{stroke:var(--tube-line);stroke-dasharray:4 4}.route.selected .route-body{stroke:var(--accent)}.tube-outline,.tube-body,.tube-ribs,.tube-crest{fill:none;stroke-linejoin:round}.tube-outline{stroke:#18191b;stroke-linecap:round}.tube-body{stroke:#9a9da4;stroke-linecap:round}.tube-crest{stroke:#cdd0d6}.tube-ribs{stroke:#565a62}.route.selected .tube-outline{stroke:var(--accent)}.route-label{font-size:8px;fill:var(--muted);text-anchor:middle;paint-order:stroke;stroke:var(--plate);stroke-width:2.5px}.instance{cursor:pointer}.instance image{pointer-events:auto}.instance .body{fill:var(--device);stroke:var(--device-line);stroke-width:1}.sel-frame{fill:none;stroke:var(--accent);stroke-width:1.4;pointer-events:none}.instance.hl .sel-frame{stroke:var(--danger);stroke-width:2}.inst-label{font-size:8px;fill:var(--text);text-anchor:middle;pointer-events:none}.inst-label.small{font-size:6px}.inst-label.left{text-anchor:start}.inst-label.right{text-anchor:end}.din-label{font-size:34px;font-weight:700;fill:#4d4d4f;text-anchor:middle;pointer-events:none;font-family:Arial,Helvetica,sans-serif}.din-sub{font-size:25px;font-weight:700;fill:#646466;text-anchor:middle;pointer-events:none;font-family:Arial,Helvetica,sans-serif}.din-window{font-size:2.8px;font-weight:700;fill:#fff;text-anchor:middle;pointer-events:none}.padlock path{fill:none;stroke:#c62f2f;stroke-width:1.4}.padlock rect{fill:#c62f2f}.led{fill:#868e96;stroke:#495057;stroke-width:.5}.led.on{fill:#51cf66}.control{cursor:pointer}.control:hover image,.control:hover rect{filter:brightness(1.04)}.rocker-pressed{fill:#000;opacity:.13;pointer-events:none}.rocker-split{stroke:#8b8d94;stroke-width:.35;pointer-events:none}.lamp-glow{fill:var(--lamp);pointer-events:none}.lamp-lit{fill:#ffe066;mix-blend-mode:multiply;pointer-events:none}.appliance-heat{fill:#ff8a3d;opacity:.55;pointer-events:none}.wire{cursor:pointer}.wire-hit{stroke:transparent;stroke-width:7;fill:none}.wire-halo{stroke:#18191b;fill:none;stroke-linecap:butt;stroke-linejoin:round}.wire.selected .wire-halo{stroke:var(--accent);opacity:1}.wire.hl .wire-halo{stroke:var(--danger);opacity:1}.wire-free-end{fill:var(--surface);stroke:var(--danger);stroke-width:1;cursor:pointer}.wire-exposed{fill:#e8590c}.wire-loose{fill:#fab005}.wire-over{fill:#c92a2a}.terminal{cursor:pointer}.terminal-hit{fill:transparent;stroke:transparent;stroke-width:2}.terminal-dot{fill:transparent;stroke:color-mix(in srgb,var(--hl) 70%,transparent);stroke-width:.55}.terminal.used .terminal-dot{stroke:transparent}.terminal:hover .terminal-dot,.terminal.active .terminal-dot{fill:color-mix(in srgb,var(--hl) 30%,transparent);stroke:var(--hl);stroke-width:.8;r:3.3}.terminal-label{font-size:4.2px;font-weight:700;fill:#3d4048;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#ffffffd9;stroke-width:1.2px}.rubber{stroke-width:1.6;stroke-dasharray:4 3;pointer-events:none}.rubber.detector{stroke:#e03131}.tool-hint{position:absolute;left:12px;bottom:calc(var(--dock-h) + 52px);z-index:5;max-width:46%;pointer-events:none;opacity:.94;display:flex;gap:10px;align-items:center;padding:4px 4px 4px 12px;border-radius:999px;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.tool-hint button{min-height:26px;padding:0 10px;border-radius:999px;font-size:12px}.detector-reading{position:absolute;right:56px;top:12px;z-index:6;border-width:2px;border-radius:var(--r-lg);padding:8px 12px 8px 6px;cursor:pointer;display:flex;gap:8px;align-items:flex-start}.detector-reading.present{border-color:var(--danger)}.detector-reading.absent{border-color:var(--ok)}.detector-art{display:block;flex:none}.det-led-label{font-size:9.5px;font-weight:700;fill:#f2f2f2;font-family:Arial,sans-serif}.det-text{display:flex;flex-direction:column;gap:4px;max-width:150px;padding-top:4px}.det-verdict{font-size:15px;font-weight:700}.detector-reading.present .det-verdict{color:var(--danger)}.detector-reading.absent .det-verdict{color:var(--ok)}.toasts{position:absolute;left:12px;top:12px;z-index:9;display:flex;flex-direction:column;gap:8px;max-width:46%;pointer-events:none}.toast{position:relative;padding:8px 12px 8px 14px;border-radius:var(--r);font-size:13px;line-height:1.4;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-2);overflow:hidden;animation:toast-in .2s var(--ease);pointer-events:auto}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.toast.error:before{background:var(--warn)}.toast.ok:before{background:var(--ok)}.toast.danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);font-weight:600;animation:toast-in .2s var(--ease),flash .4s 3}.toast.danger:before{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes flash{50%{background:color-mix(in srgb,var(--danger) 45%,var(--surface))}}.busy{position:fixed;right:12px;bottom:10px;width:16px;height:16px;border-radius:50%;border:2px solid var(--accent);border-right-color:transparent;animation:ui-spin .7s linear infinite;z-index:30}.side-main{flex:1;display:flex;flex-direction:column;min-height:0}.side-tabs{padding:10px 10px 9px;border-bottom:1px solid var(--line)}.badge{background:var(--danger);color:#fff;border-radius:999px;padding:0 6px;margin-left:4px;font-size:11px;font-weight:700;line-height:16px}.tab-body{flex:1;overflow:auto;padding:14px 16px}.tab-body h4{margin:14px 0 8px;font-size:12px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.tab-body h4:first-child{margin-top:0}.brief p{margin:0 0 10px;line-height:1.55;white-space:pre-line}.brief p.table-row{margin:0 0 4px 12px;font-family:var(--mono);font-size:12px;color:var(--text-2)}.brief p.safety{background:var(--warn-soft);border-left:3px solid var(--warn);padding:6px 10px;border-radius:0 var(--r-sm) var(--r-sm) 0}.store-group h4{margin:12px 0 6px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.store-item{display:flex;justify-content:space-between;width:100%;text-align:left;margin-bottom:4px;white-space:normal;gap:8px}.store-item .price{color:var(--muted);white-space:nowrap}.store-item.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.store-item.active .price{color:inherit}.steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.steps li{display:flex;gap:8px;padding:6px 8px;border-radius:var(--r)}.steps li.done{color:var(--muted)}.steps li.current{background:var(--accent-soft);color:var(--accent-soft-text);font-weight:600}.steps .mark{width:16px;flex:none}.violations{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.violations li{border:1px solid var(--line);border-left:3px solid var(--line-strong);padding:7px 10px;background:var(--surface-2);border-radius:var(--r-sm)}.violations li.sev-leve{border-left-color:var(--leve)}.violations li.sev-grave{border-left-color:var(--grave)}.violations li.sev-muy_grave{border-left-color:var(--muy_grave)}.v-head{display:flex;gap:8px;align-items:center;font-size:11px;margin-bottom:3px}.sev{font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.04em}.sev-leve{color:var(--leve)}.sev-grave{color:var(--grave)}.sev-muy_grave{color:var(--muy_grave)}.itc{font-family:var(--mono);color:var(--muted);font-size:11px}.draft{font-size:10px;border:1px dashed var(--faint);border-radius:var(--r-xs);padding:0 5px;color:var(--muted)}.objectives{list-style:none;padding:0;margin:0}.objectives li{padding:4px 0;display:flex;gap:6px}.objectives li.met .mark{color:var(--ok)}.objectives li.unmet .mark{color:var(--danger)}.diagram ul{list-style:none;padding-left:16px;margin:4px 0;border-left:1px solid var(--line-strong)}.diagram li{margin:5px 0}.node{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-2);font-weight:600;margin-right:6px}.node.feed{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.node.missing{color:var(--danger);border-color:var(--danger)}.node-info{color:var(--muted);margin-right:6px}.log{padding-left:18px;margin:0;font-size:12px}.log li{margin-bottom:4px}.log li.err{color:var(--warn)}.log .time{color:var(--muted);font-family:var(--mono)}.norms section{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.norms h4{margin:6px 0 2px}.norms a{color:var(--accent)}.rule-list{font-size:11px;padding-left:16px}.circuit-table,.protocol table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;margin:6px 0 12px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.circuit-table th,.circuit-table td,.protocol th,.protocol td{border-bottom:1px solid var(--line);padding:5px 7px;text-align:left}.circuit-table th,.protocol th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:11.5px}.circuit-table tr:last-child td,.protocol tr:last-child td{border-bottom:none}.selection{border-top:1px solid var(--line);padding:10px 16px 12px;min-height:110px;max-height:42%;overflow:auto;background:var(--surface-2)}.selection.muted{color:var(--faint)}.selection h4{margin:0 0 3px;font-size:13.5px}.sel-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.wire-end{margin:6px 0}.end-controls{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin-top:3px}.end-controls label{display:flex;flex-direction:column;font-size:11px;color:var(--muted)}.end-controls input{width:64px}.setup .ui-dialog-body{display:flex;flex-direction:column;gap:14px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.setup-grid .wide{grid-column:1 / -1}.setup-code{display:inline-block;min-width:28px;margin-right:6px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted)}.setup-adv{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2)}.setup-adv summary{cursor:pointer;font-weight:600;padding:10px 14px;list-style:none;display:flex;align-items:center;gap:8px;border-radius:var(--r-lg)}.setup-adv summary::-webkit-details-marker{display:none}.setup-adv summary:before{content:"";width:7px;height:7px;border-right:1.7px solid var(--muted);border-bottom:1.7px solid var(--muted);transform:rotate(-45deg);transition:transform var(--dur) var(--ease);margin:0 3px 0 1px}.setup-adv[open] summary:before{transform:rotate(45deg)}.setup-adv summary:hover{background:var(--surface-3)}.setup-adv-body{display:flex;flex-direction:column;gap:14px;padding:6px 14px 14px}.setup-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.setup-row>.ui-field-label{flex:none}.setup-material{display:flex;flex-direction:column;gap:4px}.setup-material-head{display:flex;justify-content:space-between;align-items:baseline}.setup-material-head strong{font-variant-numeric:tabular-nums}.setup-ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--faint);padding:0 2px}.setup-faults{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;max-height:190px;overflow:auto;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:12.5px}.setup-faults legend{padding:0 4px;font-size:12px;font-weight:600;color:var(--text-2)}.setup-presets{display:flex;gap:8px;flex-wrap:wrap}.preset-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.preset-list li{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:0 2px 0 4px;background:var(--surface)}.preset-list .link{min-height:24px;background:none;border:none;box-shadow:none;color:var(--accent);padding:0 6px}.preset-list .x{min-height:22px;width:22px;padding:0;background:none;border:none;box-shadow:none;color:var(--muted);border-radius:50%}.preset-list .x:where(:hover:not(:disabled)){background:var(--surface-3);color:var(--danger)}.setup-from-link{margin:0;background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:var(--r);padding:8px 10px;font-size:12.5px}.report .ui-dialog-body h4{margin:18px 0 8px;font-size:12px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.report-sub{color:var(--muted);margin-bottom:12px}.report-hero{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line)}.report-hero.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.report-hero.bad{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.report .score{font-size:30px;font-weight:750;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.report .score.ok,.report-hero.ok .verdict{color:var(--ok)}.report .score.bad,.report-hero.bad .verdict{color:var(--danger)}.report-hero .verdict{font-weight:650;font-size:15px}.report .score small{font-size:14px;font-weight:600;opacity:.6;margin-left:2px}.report-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;color:var(--text-2)}.report-meta p{margin:0}.report .note{background:var(--surface-2);padding:8px 12px;border-radius:var(--r)}.report .events{padding-left:18px;margin:0}.kit-lcd{font:700 74px DejaVu Sans Mono,Consolas,monospace;fill:#23281f;text-anchor:end}.kit-lcd-small{font:700 30px Arial,sans-serif;fill:#23281f}.kit-dial{font:700 22px Arial,sans-serif;fill:#f2f2f2;text-anchor:middle}.kit-jack{font:700 20px Arial,sans-serif;fill:#f2f2f2;text-anchor:middle}.inventory{position:absolute;left:0;right:0;bottom:0;height:var(--dock-h);display:flex;z-index:3;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -4px 14px #1018280a}.inv-groups{display:grid;grid-template-columns:repeat(4,max-content);grid-auto-rows:1fr;gap:4px;padding:8px;border-right:1px solid var(--line);align-content:center;flex:none}.inv-group{justify-content:flex-start;gap:6px;min-height:0;padding:2px 9px 2px 5px;font-size:12px;font-weight:500;background:transparent;border-color:transparent;box-shadow:none;color:var(--text-2);border-radius:var(--r)}.inv-group:where(:hover:not(:disabled)){background:var(--surface-3);border-color:transparent;color:var(--text)}.inv-group.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent-soft-text)}.inv-group>span:not(.inv-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.inv-group-ico{width:26px;height:26px;flex:none}.inv-group{position:relative}.inv-count{position:absolute;top:1px;left:22px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent-solid);color:#fff;font-size:10px;display:grid;place-items:center;pointer-events:none}.inv-empty{align-self:center;color:var(--muted);font-size:12px;padding:0 12px;max-width:420px}.swatch.picked{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.inv-items{display:flex;gap:6px;padding:8px 10px 4px;overflow-x:scroll;overflow-y:hidden;scrollbar-width:thin;align-items:stretch;flex:1;min-width:0}.inv-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;width:92px;flex:none;min-height:0;padding:4px 4px 3px;background:var(--surface-2);border-color:var(--line);border-radius:var(--r);box-shadow:none;font-weight:400;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform .12s var(--ease),box-shadow var(--dur) var(--ease)}.inv-card:where(:hover:not(:disabled)){background:var(--surface);border-color:color-mix(in srgb,var(--accent) 40%,var(--line-strong));transform:translateY(-1px);box-shadow:var(--shadow-1)}.inv-card.held{border:2px solid var(--accent);padding:3px 3px 2px;background:var(--accent-soft)}.inv-card{width:116px;position:relative}.inv-card>svg:first-child{width:36px;height:36px;flex:none}.inv-card .inv-price{position:absolute;top:2px;right:4px;font-size:9.5px;line-height:1.2}.inv-name{font-size:11px;line-height:1.12;text-align:center;white-space:normal;overflow:hidden;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.inv-name.long{font-size:10px;line-height:1.1;-webkit-line-clamp:4}.inv-name.xlong{font-size:9.2px;line-height:1.08;-webkit-line-clamp:5}.inv-term{color:var(--muted)}.inv-price{font-size:10px;color:var(--muted)}.inv-price.stock{color:var(--warn);font-weight:600}.inv-colors{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 8px;font-size:11px}.inv-colors>div{display:flex;gap:5px}.inv-tag{font:700 15px Arial,sans-serif;fill:#18191b;text-anchor:middle}.inv-notebook{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 10px;margin:6px 0 6px 6px;font-size:11px}:root[data-theme=dark] .inv-card svg,:root[data-theme=dark] .inv-group svg,:root[data-theme=dark] .inst-panel img,:root[data-theme=dark] .board-cursor svg{filter:drop-shadow(0 0 .6px rgba(255,255,255,.55)) drop-shadow(0 0 .6px rgba(255,255,255,.35))}.board-cursor{position:absolute;left:0;top:0;pointer-events:none;z-index:6;display:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.28))}.custom-cursor svg.board,.custom-cursor svg.board *{cursor:none!important}.hover-tip{position:absolute;left:0;top:0;z-index:7;pointer-events:none;max-width:340px;border-radius:var(--r);padding:7px 10px;font-size:12px;line-height:1.4}.hover-tip.hidden{display:none}.hover-tip-title{font-weight:650;margin-bottom:2px}.hover-tip-line{color:var(--muted);white-space:pre-wrap}.hov>.instance,.hov.isolator,.hov>g,.hov.plan-furn,.hov>.plan-symbol{filter:drop-shadow(0 0 1.6px var(--hl)) drop-shadow(0 0 1.6px var(--hl))}.wire.hov .wire-halo,.route.hov .tube-outline,.route.hov .plan-tube-out,.route.hov .route-body,.route.hov .plan-route-empty{stroke:var(--hl)}.terminal.hov .terminal-dot{fill:color-mix(in srgb,var(--hl) 30%,transparent);stroke:var(--hl);stroke-width:.8}.plan-room.hov rect{filter:brightness(1.04)}.labels-toggle{position:absolute;right:12px;top:164px;width:38px;min-height:30px;padding:0;font-weight:700;z-index:4;background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-2);border-radius:var(--r)}.labels-toggle.on{background:var(--accent-solid);color:var(--accent-text);border-color:var(--accent-solid)}.labels-toggle.on:where(:hover:not(:disabled)){background:var(--accent-hover)}.action-menu{position:absolute;z-index:10;min-width:200px;max-width:320px;border-radius:var(--r-lg);padding:4px;display:flex;flex-direction:column;gap:1px;transform:translate(8px,8px);animation:ui-pop-in .1s var(--ease)}.action-menu-title{font-size:11.5px;font-weight:600;color:var(--muted);padding:5px 8px 6px;border-bottom:1px solid var(--line);margin-bottom:3px}.action-menu button{justify-content:flex-start;text-align:left;min-height:30px;border:none;background:transparent;box-shadow:none;padding:4px 8px;border-radius:var(--r-sm);white-space:normal;font-weight:400}.action-menu button:where(:hover:not(:disabled)){background:var(--surface-3)}.action-menu button:disabled{opacity:.6;color:var(--muted)}.action-menu button.current{font-weight:600}.action-menu button.danger{color:var(--danger)}.action-menu button.danger:where(:hover:not(:disabled)){background:var(--danger-soft)}.action-menu kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-right:4px;padding:0 4px;flex:none;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--r-xs);font-size:10.5px;color:var(--muted);background:var(--surface-2)}.action-menu .menu-input{display:flex;gap:6px;align-items:flex-end;padding:4px 6px 6px}.action-menu .menu-input label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}.action-menu .menu-input input{width:150px}.action-menu .menu-input button{justify-content:center}.control:hover{filter:drop-shadow(0 0 1.2px var(--hl)) drop-shadow(0 0 1.2px var(--hl))}.control.isolator{cursor:pointer}.plan{background:var(--plan-bg)}.room-label{font:600 17px var(--font);fill:var(--plan-label);text-anchor:start;pointer-events:none;paint-order:stroke;stroke:var(--plan-halo);stroke-width:5px}.plan-symbol{cursor:pointer}.plan-symbol:hover circle,.plan-symbol:hover rect{filter:drop-shadow(0 0 3px var(--hl))}.plan-symbol.hl circle,.plan-symbol.hl rect{stroke:var(--danger)}.plan-symbol-label{font:700 15px var(--font);fill:#2e3035;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:4px}.plan-route .route-hit{stroke:transparent;fill:none}.plan-route-empty{fill:none;stroke:var(--plan-route);stroke-width:3;stroke-dasharray:10 8}.plan-tube-out{fill:none;stroke:#040404;stroke-width:9;stroke-linejoin:round;stroke-linecap:round}.plan-tube{fill:none;stroke:#a9acb4;stroke-width:6;stroke-linejoin:round;stroke-linecap:round}.plan-wires{fill:none;stroke:#8a4b20;stroke-width:1.6;stroke-dasharray:6 4;pointer-events:none}.plan-route.selected .plan-tube-out,.plan-route.selected .plan-route-empty{stroke:var(--accent)}.plan-route.hl .plan-tube-out,.plan-route.hl .plan-route-empty{stroke:var(--danger)}.plan-chase{fill:none;stroke:var(--chase);stroke-width:14;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.plan-chase-patched{fill:none;stroke:var(--chase-patched);stroke-width:14;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.wire-stub-label{font:700 7px var(--font);fill:var(--label-ink);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--label-halo);stroke-width:2px}:root[data-theme=dark] .wire-stub-label{fill:#e3e6eb;stroke:#101317d9}.wire-stub-label.side-l{text-anchor:end}.wire-stub-label.side-r{text-anchor:start}.route-slot{cursor:pointer}.crumbs{position:absolute;left:12px;top:12px;display:flex;gap:10px;align-items:center;z-index:4;border-radius:var(--r-lg);padding:3px 12px 3px 3px}.crumbs button{min-height:28px;border:none;box-shadow:none;background:transparent;color:var(--text-2)}.crumbs button:where(:hover:not(:disabled)){background:var(--surface-3)}.rail-slot{fill:color-mix(in srgb,var(--hl) 8%,transparent);stroke:color-mix(in srgb,var(--hl) 55%,transparent);stroke-width:.6;stroke-dasharray:2 2;pointer-events:none}.tool-wire svg.board,.tool-wire svg.board *,.tool-end svg.board,.tool-end svg.board *{cursor:crosshair!important}.wire-tag-text{font:700 3.6px Arial,sans-serif;fill:#18191b;text-anchor:middle}.meter-panel{position:absolute;right:56px;top:12px;z-index:6;display:flex;gap:10px;border-radius:var(--r-lg);padding:10px}.meter-side{display:flex;flex-direction:column;gap:6px;max-width:180px;font-size:12px}.meter-modes{display:flex;flex-direction:column;gap:4px}.meter-modes button{min-height:28px;justify-content:flex-start;font-size:12px}.meter-modes button.on{background:var(--accent-soft);color:var(--accent-soft-text);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.inst-panel img{align-self:center}.inst-lcd{font:700 26px/1.2 var(--mono);background:#c9d6b8;color:#23281f;border:2px solid #2b2c30;border-radius:var(--r-sm);padding:4px 10px;margin:4px 0;box-shadow:inset 0 2px 4px #0000002e}.inst-lcd small{font-size:14px}.scene-tabs{position:absolute;left:50%;bottom:calc(var(--dock-h) + 10px);transform:translate(-50%);z-index:5;display:flex;gap:2px;border-radius:calc(var(--r) + 3px);padding:3px}.scene-tabs button{min-height:28px;border:none;background:transparent;box-shadow:none;padding:0 14px;color:var(--muted);border-radius:var(--r)}.scene-tabs button:where(:hover:not(:disabled)){background:var(--surface-3);color:var(--text)}.scene-tabs button.on{background:var(--accent-solid);color:var(--accent-text)}.scene-tabs button.on:where(:hover:not(:disabled)){background:var(--accent-hover);color:var(--accent-text)}.scene-tabs .badge{background:var(--surface-3);color:var(--text-2)}.scene-tabs button.on .badge{background:#ffffff40;color:#fff}.bench{background:var(--bench-wood)}.bench-empty{font:600 18px var(--font);fill:var(--bench-text);text-anchor:middle}.bench-tag{font:700 6px Arial,sans-serif;fill:#18191b;text-anchor:middle}.bench-item.hov .tube-outline{stroke:var(--hl)}.bench-tube,.bench-wire{cursor:pointer}.bench-item.held{opacity:.55}.bench-item.hov .bench-wire path:nth-child(2){stroke:var(--hl)}.bench-tip{right:12px;top:12px;left:auto;transform:none}.len-prompt{position:absolute;left:50%;top:140px;transform:translate(-50%);z-index:9;display:flex;flex-direction:column;gap:8px;border-radius:var(--r-lg);padding:12px 14px;min-width:300px}.len-prompt .len-row{display:flex;gap:8px;align-items:center}.len-prompt input{width:90px;font-variant-numeric:tabular-nums}.len-prompt .link{align-self:flex-start}.tape-panel{position:absolute;right:56px;top:12px;z-index:6;display:flex;flex-direction:column;gap:6px;border-radius:var(--r-lg);padding:10px 12px}.tape-label{font-weight:700;fill:#040404;paint-order:stroke;stroke:#fff;pointer-events:none}.notebook{width:100%;height:100%;resize:none;font:14px/1.6 Segoe Print,Comic Sans MS,system-ui,sans-serif;color:#1c2b4a;background:repeating-linear-gradient(#fffef6,#fffef6 23px,#c9d8ee 24px);border:1px solid #d8d2b8;border-radius:var(--r-sm);padding:4px 10px;line-height:24px}.notebook:focus{border-color:#d8d2b8;box-shadow:none}.notebook-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);z-index:20;width:min(560px,90%);height:min(520px,75%);display:flex;flex-direction:column;background:#2f5fa3;border:3px solid #040404;border-radius:var(--r-lg);padding:10px 12px 12px 26px;box-shadow:0 18px 50px #00000059}.notebook-head{display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:6px}.notebook-head button{background:transparent;color:#fff;border-color:#fff6;box-shadow:none;min-height:26px;width:28px;padding:0}.notebook-head button:where(:hover:not(:disabled)){background:#ffffff1f;border-color:#fff9}.probe-chip{position:absolute;left:12px;bottom:calc(var(--dock-h) + 92px);pointer-events:none;opacity:.94;display:flex;align-items:center;gap:8px;z-index:6;font-size:13px;background:var(--danger-soft);color:var(--text);border:1.5px solid #d23a2f;border-radius:var(--r-lg);padding:4px 4px 4px 10px}.probe-chip button{font-size:12px;min-height:26px;padding:0 10px;pointer-events:auto}.tool-hint button{pointer-events:auto}.probe-clip{width:12px;height:12px;border-radius:50%;background:#d23a2f;border:2px solid #040404;animation:probe-pulse 1.4s infinite;flex:none}@keyframes probe-pulse{50%{box-shadow:0 0 0 4px #d23a2f40}}.probe-mark{pointer-events:none}.protocol td input:not([type]){width:64px;min-height:26px;padding:0 6px}.protocol .verdict{border:1px solid var(--line);border-radius:var(--r);margin:8px 0;padding:8px 12px;display:flex;flex-direction:column;gap:6px}.protocol .verdict legend{padding:0 4px;font-weight:600;font-size:12px;color:var(--text-2)}.protocol .verdict label{display:inline-flex;gap:6px;align-items:center}.protocol textarea{width:100%}.protocol>label{display:flex;flex-direction:column;gap:4px;margin:8px 0 10px;font-size:12px;color:var(--text-2)}.protocol .check{display:inline-flex;gap:8px;align-items:center;cursor:pointer}.project td input{width:46px;min-height:26px;padding:0 6px}.project td select{max-width:150px;min-height:26px}.project .x{min-height:22px;width:22px;padding:0;background:none;border:none;box-shadow:none;color:var(--muted);border-radius:50%}.project .x:where(:hover:not(:disabled)){background:var(--surface-3);color:var(--danger)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:12px 0}.project-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2)}.project-grid input{width:90px}.level-panel{align-items:center}.level-panel>svg{width:220px!important;height:76px!important;flex:none}.langs,.langs .ui-select{flex:none}.controls{flex:1 0 auto}.status-slots{display:inline-flex;gap:4px;width:56px;flex:none}.pill.icon{width:26px;padding:0;justify-content:center}.pill.icon:before{display:none}.live-chip{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1500px){.langs .btn-text,.user-name{display:none}}@media (max-width: 1300px){.langs .ui-select:nth-child(2) .sel-cap{display:none}}@media (max-width: 1250px){.langs .ui-select:nth-child(2){display:none}}.sidebar .tabs{min-height:66px;align-content:flex-start;flex:none}.sidebar{scrollbar-gutter:stable}.controls .pill.on,.controls .pill.off{min-width:118px;justify-content:center}.level-mark line,.level-mark path{stroke:#3d5a8a;stroke-width:1.4;stroke-dasharray:6 4;fill:none}.level-mark path{stroke-dasharray:none}.protocol-earth{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:13px}.protocol-earth input{width:90px}.app-cord-out{fill:none;stroke:#18191b;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.app-cord{fill:none;stroke:#ececee;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.app-spec{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0;font-size:13px}.app-spec dt{color:var(--muted, #6b7280)}.app-spec dd{margin:0;min-width:0}.app-power{display:flex;align-items:center;gap:8px}.app-power input{flex:1;min-width:0}.app-power b{font-variant-numeric:tabular-nums;min-width:4.5em;text-align:right}.app-classes{display:inline-flex;gap:4px}.app-classes button{padding:1px 8px;border:1px solid var(--line, #d0d4da);border-radius:4px;background:transparent;cursor:pointer}.app-classes button.on{background:var(--accent, #2f6fd0);border-color:var(--accent, #2f6fd0);color:#fff}.plan-app{cursor:pointer}.plan-app.unplugged{opacity:.72}.plan-app.hov image{filter:drop-shadow(0 0 3px var(--accent, #2f6fd0))}.note-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:3px;font-size:12.5px}.note-text{font-style:italic;color:var(--fg, #1b1d21);overflow-wrap:anywhere}.note-btn{border:0;background:none;padding:0;color:var(--accent, #2f6fd0);cursor:pointer;font-size:12px;text-decoration:underline dotted}.note-form{display:grid;gap:6px;margin-top:6px}.note-form textarea{width:100%;min-width:0;resize:vertical;font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line, #d0d4da);border-radius:6px;background:var(--bg, #fff);color:inherit}.note-actions{display:flex;gap:6px;align-items:center}.note-verdict{font-size:11.5px;padding:0 6px;border-radius:4px}.note-verdict.accept{background:#e3f4ea;color:#1f6b3e}.note-verdict.reject{background:#fbe7e5;color:#9c2f22}.waived{opacity:.7}.waived .sev{text-decoration:line-through}.inv-filter{display:flex;flex-direction:column;justify-content:center;gap:5px;flex:none;width:150px;padding:0 6px;font-size:12px}.inv-filter select,.inv-filter input{width:100%;min-width:0;font:inherit;font-size:12px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:inherit}.inv-finishes{display:flex;gap:5px;flex-wrap:wrap}.inv-series{font-size:10px;color:var(--muted, #6b7280);line-height:1.1;text-align:center}.swatch.fin-white{background:#fff}.swatch.fin-ivory{background:#f2ead8}.swatch.fin-aluminium{background:#c6cacf}.swatch.fin-anthracite{background:#5b5e64}.swatch.fin-black{background:#34363a}.swatch.fin-champagne{background:#e3d3b4}.swatch.fin-silver{background:#cfd2d6}.bell-waves{fill:none;stroke:#f0a020;stroke-width:.8;stroke-linecap:round;pointer-events:none}.dimmer-on{fill:#ffd27a;pointer-events:none}.pilot-glow{fill:#ff8a1c;pointer-events:none}.din-nmark{font:700 34px Arial,sans-serif;fill:#3a3b3f;text-anchor:middle;pointer-events:none}.din-face-mark{font:700 30px Arial,Helvetica,sans-serif;fill:#3a3b3f;text-anchor:middle;pointer-events:none}.din-face-big{font:800 50px Arial,Helvetica,sans-serif;fill:#fff;text-anchor:middle;pointer-events:none}.din-lcd{font:700 62px DejaVu Sans Mono,Consolas,ui-monospace,monospace;fill:#1f2a18;text-anchor:middle;pointer-events:none}.din-lcd-sub{font:700 22px Arial,Helvetica,sans-serif;fill:#1f2a18;text-anchor:middle;pointer-events:none}.clock-panel{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px}.clock-panel label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.clock-panel input{width:5.5em;font:inherit;text-align:center;font-variant-numeric:tabular-nums}.clock-panel input.bad{border-color:var(--danger, #c0392b)}.fb-form{display:grid;gap:12px}.fb-shot{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.fb-shot-prev{display:inline-flex;align-items:center;gap:6px}.fb-shot-prev img{max-height:64px;max-width:160px;border-radius:4px;border:1px solid var(--line, #d0d4da)}.fb-ctx-list{overflow-wrap:anywhere}.fb-done{font-size:14px}.fb-list{display:grid;gap:12px;margin-top:12px}.fb-card{display:grid;gap:8px;padding:14px 16px}.fb-card.open{outline:2px solid var(--accent, #2f6fd0)}.fb-card-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fb-card-head .grow{flex:1}.fb-text{white-space:pre-wrap;margin:0;overflow-wrap:anywhere}.fb-thumb{max-height:160px;max-width:100%;border-radius:6px;border:1px solid var(--line, #d0d4da)}.fb-reply{border-left:3px solid var(--line, #d0d4da);padding-left:10px}.fb-reply p{margin:2px 0 0;white-space:pre-wrap}.fb-answer{display:grid;gap:6px}.fb-answer-actions{display:flex;gap:8px;align-items:center}.relay-ch{font:700 6px Arial,sans-serif;fill:#6b6f76;text-anchor:middle;pointer-events:none}.relay-ch.on{fill:#39d353}.thermo-lcd{font:700 5.5px DejaVu Sans Mono,Consolas,monospace;fill:#1f2a18;text-anchor:middle;pointer-events:none}.mcp-consent{min-height:calc(100vh - 120px);display:grid;place-items:start center;padding:32px 16px}.mcp-card{width:min(560px,100%);padding:24px;display:grid;gap:12px}.mcp-card h1{font-size:20px;margin:0}.mcp-who{margin:0;font-size:15px}.mcp-scopes{list-style:none;margin:4px 0;padding:0;display:grid;gap:10px}.mcp-never{font-size:13px;padding:10px 12px;border-radius:6px;background:var(--chip, #f2f3f5)}.mcp-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.mcp-intro{max-width:70ch}.mcp-address,.mcp-school{padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.mcp-address code{font-size:13px;overflow-wrap:anywhere}.mcp-grants{display:grid;gap:10px}.mcp-grant{padding:12px 16px;display:grid;gap:6px}.mcp-grant-head{display:flex;align-items:center;gap:8px}.mcp-grant-head .grow{flex:1}.mcp-grant-scopes{display:flex;flex-wrap:wrap;gap:4px}.lamp-glow.flicker{animation:lamp-flicker .23s steps(2,jump-none) infinite}@keyframes lamp-flicker{0%{opacity:.55}50%{opacity:.12}to{opacity:.45}}@media (prefers-reduced-motion: reduce){.lamp-glow.flicker{animation:none;opacity:.25!important}}.prov{margin-top:10px;font-size:12.5px}.prov summary{cursor:pointer;font-weight:600}.prov ul{margin:6px 0 0;padding-left:16px;display:grid;gap:3px}.prov-doc{margin-top:4px;overflow-wrap:anywhere}.prov-src{padding:0 5px;border-radius:4px;font-size:11px}.prov-src.manufacturer{background:#e3f2e8;color:#1e6b3c}.prov-src.standard{background:#e6eefb;color:#2350a0}.prov-src.simulation{background:#fbf0dc;color:#8a5a0c}.log-event{margin-top:4px;font-size:.92em}.why{margin-top:2px}.why>summary{cursor:pointer;color:var(--hl);font-size:.92em}.why ul{margin:4px 0 2px 1.1em;padding:0}.why li{margin:2px 0;line-height:1.35}.login-page{min-height:100%;display:grid;place-items:center;padding:48px 16px;background:radial-gradient(1200px 600px at 20% -10%,var(--accent-soft),transparent 60%),var(--bg);position:relative}.login-top{position:absolute;top:14px;right:16px;display:flex;gap:8px;align-items:center}.login-card{width:min(400px,100%);padding:32px 28px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-2)}.login-card h1{margin:0;font-size:20px;letter-spacing:-.01em}.login-card p{margin:0}.login-logo{margin-bottom:2px}.login-err,.cab-err{color:var(--danger);background:var(--danger-soft);border-radius:var(--r-sm);padding:8px 10px;font-size:13px}.cab-ok{color:var(--ok);background:var(--ok-soft);border-radius:var(--r-sm);padding:8px 10px;font-size:13px}.login-sent{display:flex;flex-direction:column;gap:10px}.login-dev{padding:8px 10px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);font-size:13px}.small{font-size:12px}.user-chip{display:inline-flex;align-items:center;gap:2px;padding-left:2px}.user-open{display:inline-flex;align-items:center;gap:6px;background:none;border:0;box-shadow:none;padding:2px 6px;border-radius:var(--r);cursor:pointer;color:inherit}.user-open:hover{background:var(--surface-3)}.user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text-2)}.cab-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:650;flex:none;background:var(--accent-soft);color:var(--accent-soft-text);font-size:16px}.cab-avatar.sm{width:24px;height:24px;font-size:11px}.live-bar{display:flex;align-items:center;gap:4px;padding:0 8px;margin:0 4px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.live-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-2);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none;box-shadow:0 0 0 3px var(--danger-soft);animation:live-pulse 2s infinite}.live-dot.off{background:var(--faint);box-shadow:none;animation:none}@keyframes live-pulse{50%{box-shadow:0 0 0 5px transparent}}.live-chat-btn{position:relative}.live-unread{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center;padding:0 4px;pointer-events:none}.live-chat-pop{position:fixed;right:16px;bottom:16px;width:340px;height:min(480px,calc(100% - 160px));z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-3);display:flex;overflow:hidden}.live-freeze{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:var(--overlay);color:#fff;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-size:18px;text-align:center;padding:24px}.live-control{position:absolute;top:56px;left:12px;z-index:30;padding:6px 12px;border-radius:999px;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center;box-shadow:var(--shadow-2);pointer-events:none}.board-pane.mirror-host{overflow:hidden}.fit{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.fit-inner{position:absolute;transform-origin:0 0}.board-pane.mirror-pane{position:relative;width:100%;height:100%;flex:none}.workspace.mirrored .board-pane.mirror-pane{pointer-events:none}.mirror-cursor{position:absolute;z-index:50;color:var(--accent-solid);pointer-events:none;transform:translate(-3px,-2px);filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));transition:left .09s linear,top .09s linear}.mirror-cursor.teacher{color:var(--warn)}.workspace.readonly .scene-tabs,.workspace.readonly .labels-toggle{opacity:.9}.cab{flex:1;display:flex;min-height:0;background:var(--bg)}.cab-nav{width:220px;flex:none;display:flex;flex-direction:column;gap:2px;padding:14px 10px;border-right:1px solid var(--line);background:var(--surface)}.cab-nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border-radius:var(--r);border:0;background:none;box-shadow:none;justify-content:flex-start;color:var(--text-2);font-size:14px;cursor:pointer;min-height:0}.cab-nav-item:hover{background:var(--surface-3);color:var(--text)}.cab-nav-item.on{background:var(--accent-soft);color:var(--accent-soft-text);font-weight:600}.cab-nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cab-nav-sep{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:14px 10px 4px}.cab-nav-me{padding:8px 10px}.grow{flex:1}.cab-body{flex:1;min-width:0;overflow:auto}.cab-page{padding:20px 28px 40px;max-width:none;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:14px}.cab-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cab-head h1{margin:0;font-size:21px;letter-spacing:-.01em}.cab-head-actions{display:flex;gap:8px;margin-left:auto;align-items:center;flex-wrap:wrap}.cab-sub{font-size:16px;margin:10px 0 0}.cab-person{display:flex;flex-direction:column;line-height:1.25;min-width:0}.cab-person .muted{font-size:12px}.cab-flags{display:inline-flex;gap:4px}.cab-period{display:inline-flex;gap:6px;align-items:center}.indent{padding-left:14px}.cab-more{display:flex;justify-content:center;padding:8px}.cab-form{display:flex;flex-direction:column;gap:12px}.cab-form-sub{margin:6px 0 0;font-size:14px}.cab-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cab-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--surface-3);font-size:13px}.cab-chip button{border:0;background:none;color:var(--muted);cursor:pointer;width:20px;height:20px;border-radius:50%;padding:0;min-height:0}.cab-chip button:hover{background:var(--line-strong);color:var(--text)}.cab-invite-results{display:flex;flex-direction:column;gap:10px}.cab-invite-results td{vertical-align:middle}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cab-user{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:14px;align-items:start}.cab-user-card,.cab-user-settings{padding:18px;display:flex;flex-direction:column;gap:14px}.cab-user-title{display:flex;align-items:center;gap:12px}.cab-user-title h1{margin:0;font-size:18px}.cab-user-settings h2,.cab-attempt-side h2{margin:0;font-size:15px;display:flex;gap:8px;align-items:center}.cab-user-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--line)}.cab-mistakes{display:flex;flex-direction:column;gap:12px;padding:6px 0}.cab-mistake{display:flex;flex-direction:column;gap:4px}.cab-mistake-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cab-bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.cab-bar span{display:block;height:100%;background:var(--accent-solid);border-radius:3px}.cab-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cab-group{padding:16px;display:flex;flex-direction:column;gap:8px}.cab-group.archived{opacity:.65}.cab-group-head{display:flex;align-items:center;gap:8px}.cab-group-name{border:0;background:none;box-shadow:none;padding:0;font-size:16px;font-weight:650;color:var(--text);cursor:pointer;text-align:left;min-height:0}.cab-group-name:hover{color:var(--accent)}.cab-group-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.cab-attempt{max-width:none;height:100%}.cab-attempt-grid{display:grid;grid-template-columns:1fr 360px;gap:14px;flex:1;min-height:520px}.cab-replay{display:flex;flex-direction:column;overflow:hidden;padding:0}.cab-replay-stage{flex:1;min-height:420px;position:relative;display:flex}.cab-replay-stage .workspace{flex:1}.cab-replay-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--line)}.cab-replay-range{flex:1;accent-color:var(--accent-solid)}.cab-replay-entry{padding:8px 12px 10px;border-top:1px solid var(--line);min-height:40px}.cab-entry{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.cab-attempt-side{display:flex;flex-direction:column;gap:12px;min-width:0}.cab-attempt-side>section{padding:16px;display:flex;flex-direction:column;gap:10px}.cab-viol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px}.cab-viol li{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.cab-review{align-items:flex-start}.cab-review .ui-field,.cab-review textarea{width:100%}.cab-live-mode .cab-nav{width:64px;padding:14px 6px}.cab-live-mode .cab-nav-item span:not(.live-dot),.cab-live-mode .cab-nav-sep,.cab-live-mode .cab-nav-me{display:none}.cab-live-mode .cab-nav-item{justify-content:center}.cab-live-mode .cab-body{overflow:hidden;display:flex}.live-page{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.live-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}.live-head h1{margin:0;font-size:17px}.live-main{flex:1;display:flex;min-height:0}.live-grid{flex:1;display:grid;gap:10px;padding:10px;min-width:0;min-height:0;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(0,1fr)}.live-grid.n1,.live-grid.full{grid-template-columns:1fr}.live-grid.n1,.live-grid.n2{grid-template-rows:1fr}.live-grid.n3,.live-grid.n4{grid-template-rows:1fr 1fr}.live-tile{display:flex;flex-direction:column;min-height:0;min-width:0;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-1)}.live-tile.hand{border-color:var(--warn);box-shadow:0 0 0 2px var(--warn-soft),var(--shadow-1)}.live-tile.controlled{border-color:var(--accent-solid)}.live-tile.offline .live-tile-body{opacity:.5}.live-tile-head{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);min-width:0}.live-tile-head strong{white-space:nowrap}.live-tile-body{flex:1;position:relative;display:flex;min-height:0;background:var(--canvas)}.live-tile-body>.workspace{flex:1;min-width:0}.live-tile-empty{margin:auto;padding:20px;text-align:center}.live-side{width:320px;flex:none;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--surface);min-height:0}.live-pager{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;border-bottom:1px solid var(--line)}.live-people{max-height:34%;overflow:auto;padding:6px;border-bottom:1px solid var(--line);flex:none}.live-person{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;background:none;box-shadow:none;justify-content:flex-start;border-radius:var(--r-sm);color:var(--text-2);font-size:13px;cursor:pointer;text-align:left;min-height:0}.live-person:hover{background:var(--surface-3)}.live-person.on{background:var(--accent-soft);color:var(--accent-soft-text)}.live-person.kicked{cursor:default;justify-content:space-between;color:var(--muted)}.live-side .chat{flex:1;min-height:0}.chat{display:flex;flex-direction:column;min-height:0;width:100%}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.chat-list{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-height:0}.chat-empty{margin:auto;text-align:center;font-size:13px}.chat-msg{max-width:88%;padding:6px 10px 7px;border-radius:12px;background:var(--surface-3);align-self:flex-start}.chat-msg.mine{align-self:flex-end;background:var(--accent-soft)}.chat-msg.private{outline:1px dashed var(--warn);outline-offset:-1px}.chat-msg.teacher:not(.mine){background:var(--warn-soft)}.chat-meta{display:flex;gap:6px;align-items:center;font-size:11.5px;margin-bottom:2px;flex-wrap:wrap}.chat-to{display:inline-flex;gap:3px;align-items:center;color:var(--warn)}.chat-text{font-size:13.5px;white-space:pre-wrap;word-break:break-word}.chat-form{display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px;border-top:1px solid var(--line)}.chat-input{display:flex;gap:6px}.chat-input input{flex:1;min-width:0}.chat-err{color:var(--danger);font-size:12px}@media (max-width: 1100px){.cab-user,.cab-attempt-grid{grid-template-columns:1fr}.cab-nav{width:64px;padding:14px 6px}.cab-nav-item span:not(.live-dot),.cab-nav-sep,.cab-nav-me{display:none}.cab-nav-item{justify-content:center}.live-side{width:270px}.cab-page{padding:16px}}.login-sso{display:flex;flex-direction:column;gap:8px}.login-provider{justify-content:center;gap:10px;text-decoration:none}.login-or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:12px}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--line)}.cab-asg{display:flex;flex-direction:column;gap:10px;margin-top:8px}.cab-asg-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.cab-asg-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;padding:14px;text-align:left;height:auto;border:1px solid var(--line);cursor:pointer;background:var(--surface);color:var(--text);font:inherit;min-height:0;box-shadow:var(--shadow-1)}.cab-asg-item.static{cursor:default}.cab-asg-item:not(.static):hover{border-color:var(--accent)}.cab-asg-item.archived{opacity:.6}.cab-asg-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cab-asg-bottom{display:flex;gap:10px;align-items:center;margin-top:4px;align-self:stretch}.cab-asg-setup{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px dashed var(--line-strong);border-radius:var(--r)}.cab-code{padding:14px 16px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.cab-code-show{display:flex;gap:10px;align-items:center}.cab-code-value{font-family:var(--mono);font-size:20px;letter-spacing:.12em;padding:2px 10px;border-radius:var(--r);background:var(--surface-3)}.cab-code-value.sm{font-size:14px;letter-spacing:.06em}.scn-editor{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.scn-head{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface);flex:none}.scn-title{font:650 16px var(--font);border:1px solid transparent;background:transparent;color:var(--text);padding:4px 8px;border-radius:var(--r-sm);min-width:220px;max-width:420px}.scn-title:hover,.scn-title:focus{border-color:var(--line-strong);background:var(--surface-2);outline:none}.scn-saved{width:90px}.scn-body{flex:1;min-height:0;display:flex;overflow:auto}.scn-body>.cab-page{max-width:900px}.scn-fill{flex:1;display:flex;flex-direction:column;min-height:0}.scn-fill-bar{display:flex;align-items:center;gap:10px;padding:6px 14px;border-bottom:1px solid var(--line);background:var(--surface-2);flex:none}.scn-fill-game{flex:1;display:flex;min-height:0;position:relative}.scn-fill-game>.workspace{flex:1}.scn-faults{padding:12px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;flex:none;max-height:42%;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain}.scn-faults h3{margin:0;font-size:13px;display:flex;gap:6px;align-items:center;color:var(--danger)}.scn-fault-actions{display:flex;flex-wrap:wrap;gap:6px}.scn-fault-short{display:flex;gap:6px;width:100%}.scn-fault-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.scn-task{gap:16px}.scn-task textarea{width:100%}.scn-pub{padding:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.scn-link{display:flex;gap:8px;width:min(720px,100%)}.pe{flex:1;display:flex;min-height:0;min-width:0;position:relative}.pe-tools{width:150px;flex:none;display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-right:1px solid var(--line);background:var(--surface);overflow:auto}.pe-tool{display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;border-radius:var(--r);background:none;box-shadow:none;color:var(--text-2);font-size:13px;cursor:pointer;justify-content:flex-start;min-height:0}.pe-tool:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.pe-tool.on{background:var(--accent-soft);color:var(--accent-soft-text)}.pe-canvas{flex:1;min-width:0;position:relative;background:var(--canvas)}.pe-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-user-select:none;user-select:none;touch-action:none}.pe-svg.tool-room,.pe-svg.tool-socket,.pe-svg.tool-switch,.pe-svg.tool-switch_2way,.pe-svg.tool-lamp,.pe-svg.tool-jbox,.pe-svg.tool-door,.pe-svg.tool-window,.pe-svg.tool-entrance{cursor:crosshair}.pe-gridline{stroke:var(--line);stroke-width:.6}.pe-room rect:first-child{fill:color-mix(in srgb,var(--surface) 85%,var(--accent-soft));stroke:none;cursor:move}.pe-room.sel rect:first-child{fill:var(--accent-soft)}.pe-room-label{font:600 18px var(--font);fill:var(--text-2);text-anchor:middle;pointer-events:none}.pe-room-size{font:13px var(--font);fill:var(--muted);text-anchor:middle;pointer-events:none}.pe-handle{fill:var(--accent-solid);cursor:nwse-resize}.pe-wall{stroke:var(--text-2);stroke-linecap:square;pointer-events:none}.pe-door rect{fill:var(--surface);stroke:#b07a3a;stroke-width:3}.pe-window rect{fill:#cfe6ff;stroke:#4a7fb5;stroke-width:2.5}.pe-door.sel rect,.pe-window.sel rect{stroke:var(--accent-solid);stroke-width:4}.pe-entrance rect{fill:var(--warn);opacity:.8}.pe-preview{fill:var(--accent-soft);stroke:var(--accent-solid);stroke-width:2;stroke-dasharray:8 6}.pe-route-hit{fill:none;stroke:transparent;stroke-width:18;cursor:pointer}.pe-route-line{fill:none;stroke:var(--muted);stroke-width:3;stroke-dasharray:10 6;pointer-events:none}.pe-route.wall .pe-route-line{stroke:#b07a3a}.pe-route.sel .pe-route-line{stroke:var(--accent-solid);stroke-width:4}.pe-rubber{stroke:var(--accent-solid);stroke-width:2;stroke-dasharray:6 4;pointer-events:none}.pe-c{cursor:pointer}.pe-g{fill:var(--surface);stroke:var(--text);stroke-width:2}.pe-g.jbox{stroke-dasharray:4 2}.pe-g.panel{fill:var(--surface-3)}.pe-g-t{font:700 12px var(--font);text-anchor:middle;fill:var(--text);pointer-events:none}.pe-g-x{stroke:var(--text);stroke-width:2;fill:none}.pe-g-dot{fill:var(--text)}.pe-c-label{font:600 13px var(--font);fill:var(--text-2);text-anchor:middle;pointer-events:none}.pe-c.sel .pe-g{stroke:var(--accent-solid);stroke-width:3;fill:var(--accent-soft)}.pe-c.stand rect{fill:var(--surface);stroke:var(--text-2);stroke-width:2}.pe-c.stand.jbox rect{stroke-dasharray:6 3}.pe-c.stand.panel rect,.pe-c.stand.isobox rect{fill:var(--surface-3)}.pe-c.stand.sel rect{stroke:var(--accent-solid);stroke-width:3;fill:var(--accent-soft)}.pe-c.stand .pe-c-label{font-size:16px}.pe-c-kind{font:12px var(--font);fill:var(--muted);text-anchor:middle;pointer-events:none}.pe-hint{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px;max-width:420px;text-align:center;color:var(--text-2);box-shadow:var(--shadow-2);pointer-events:none}.pe-props{width:270px;flex:none;border-left:1px solid var(--line);background:var(--surface);padding:14px;overflow:auto}.pe-props-empty{line-height:1.5}.pe-form{display:flex;flex-direction:column;gap:12px;align-items:stretch}.pe-form h3{margin:0;font-size:15px}.pe-form>button{align-self:flex-start}.pe-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.pe-checks{display:flex;flex-direction:column;gap:6px}.pe-check{display:flex;gap:8px;align-items:center;font-size:13px}.prj-an h3{color:var(--accent);cursor:pointer}.prj-table{font-size:12px}.prj-table td,.prj-table th{padding:4px 6px}.prj-table td.ok{color:var(--ok)}.prj-table td.bad{color:var(--danger);font-weight:600}.ok-text{color:var(--ok)}.cab-period{position:relative}.cab-period-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;gap:6px;align-items:center;padding:8px;border-radius:var(--r-lg)}.cab-link-slot{display:inline-flex;min-width:170px;align-items:center}.scn-fill-bar{flex-wrap:nowrap}.scn-fill-note{display:inline-flex;max-width:40%;min-width:0;overflow:hidden}.scn-fill-note .ui-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.cab-asg-edit{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:4px 0 12px}.cab-asg-edit .ui-field{margin:0}.pe-warn:empty{display:none}.pe-warn{position:absolute;left:50%;top:56px;transform:translate(-50%);z-index:10;padding:6px 12px;border-radius:var(--r);background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);font-size:13px;pointer-events:none}.cab-note{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;margin-top:2px;font-size:12.5px}.cab-note-actions{display:inline-flex;gap:4px}
