.workspace{grid-template-rows:minmax(0,1fr) 44px}.workspace>.tool-rail{grid-column:1;grid-row:1 / 3}.workspace>.plan-viewport{grid-column:2;grid-row:1}.workspace>.inspector{grid-column:3;grid-row:1 / 3}.workspace.is-schedule-settling{transition:grid-template-rows .16s cubic-bezier(.23,1,.32,1)}.electrical-schedule{position:relative;z-index:25;grid-column:2;grid-row:2;display:flex;min-width:0;min-height:0;flex-direction:column;overflow:visible;color:var(--ink);background:var(--gray-25);border-top:1px solid var(--gray-300);box-shadow:0 -5px 18px #161a2012}.electrical-schedule.is-closed{box-shadow:0 -2px 10px #161a200f}.electrical-schedule__resize{position:absolute;top:-9px;right:0;left:0;z-index:1;display:grid;height:18px;place-items:center;color:var(--gray-500);cursor:ns-resize;touch-action:none;outline:none}.electrical-schedule__resize:before{position:absolute;top:7px;width:42px;height:3px;content:"";background:var(--gray-300);border-radius:999px}.electrical-schedule__resize svg{display:none}.electrical-schedule__resize:focus-visible:before,.electrical-schedule__resize:hover:before{height:4px;background:var(--blue);box-shadow:0 0 0 3px #2142b821}.electrical-schedule__closed-bar{display:flex;width:100%;height:43px;min-width:0;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 0 14px;color:var(--gray-700);background:var(--gray-25)}.electrical-schedule__closed-main{display:flex;min-width:0;height:43px;flex:1 1 auto;align-items:center;gap:8px;padding:0;color:var(--gray-700);background:transparent;border:0;font:inherit;text-align:left;cursor:pointer}.electrical-schedule__closed-main>span,.electrical-schedule__closed-actions{display:flex;align-items:center}.electrical-schedule__closed-main>span{gap:8px;white-space:nowrap}.electrical-schedule__closed-actions{min-width:0;flex:0 0 auto;gap:2px}.electrical-schedule__closed-count{max-width:min(180px,22vw);overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.electrical-schedule__closed-issues{max-width:min(220px,26vw);overflow:hidden;padding:3px 4px;color:var(--todo-700);background:transparent;border:0;border-radius:4px;font:inherit;font-size:11px;text-decoration:underline;text-decoration-color:#8a52056b;text-decoration-thickness:1px;text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.electrical-schedule__closed-issues:hover,.electrical-schedule__closed-issues:focus-visible{color:var(--todo-700);background:var(--gray-100);text-decoration-color:currentColor}.electrical-schedule__closed-issues--empty{color:var(--muted);text-decoration:none;cursor:default}.electrical-schedule__header{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:10px;padding:0 10px 0 13px;border-bottom:1px solid var(--gray-200)}.electrical-schedule__title,.electrical-schedule__header-actions{display:flex;min-width:0;align-items:center;gap:7px}.electrical-schedule__title strong{font-size:var(--text-sm);letter-spacing:-.01em}.electrical-schedule__title span{color:var(--muted);font-size:var(--text-2xs)}.schedule-icon-button,.schedule-control-button,.schedule-menu>summary{display:inline-flex;min-height:28px;align-items:center;justify-content:center;gap:5px;padding:0 8px;color:var(--gray-600);background:#fff;border:1px solid var(--gray-200);border-radius:5px;font:inherit;font-size:var(--text-2xs);cursor:pointer}.schedule-icon-button{width:28px;padding:0;background:transparent;border-color:transparent}.schedule-icon-button:hover,.schedule-control-button:hover,.schedule-menu>summary:hover{color:var(--blue-dark);background:var(--gray-100)}.schedule-menu[open]>summary{color:var(--blue-dark);background:var(--gray-150);border-color:var(--gray-400);box-shadow:inset 0 0 0 1px #2142b814}.schedule-menu:not([open])>summary,.schedule-menu:not([open])>summary:hover{color:var(--gray-600);background:#fff;border-color:var(--gray-200);box-shadow:none}.schedule-icon-button:active,.schedule-control-button:active,.schedule-menu>summary:active{transform:scale(.98)}.electrical-schedule__controls{position:relative;z-index:4;display:flex;min-width:0;min-height:42px;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 9px;background:var(--gray-75);border-bottom:1px solid var(--gray-200)}.schedule-tabs{display:flex;height:29px;align-items:center;gap:2px;padding:2px;background:var(--gray-150);border-radius:6px}.schedule-tabs button{display:flex;height:25px;align-items:center;gap:4px;padding:0 8px;color:var(--gray-600);background:transparent;border:0;border-radius:4px;font-size:var(--text-2xs);font-weight:650;cursor:pointer}.schedule-tabs button[aria-selected=true]{color:var(--accent-800);background:#fff;box-shadow:0 1px 4px #161a201f}.schedule-tabs button span,.schedule-menu>summary span{min-width:15px;padding:1px 4px;color:var(--warn-700);background:var(--gray-150);border-radius:999px;font-size:8px;text-align:center}.schedule-search{display:flex;min-width:148px;max-width:260px;height:29px;flex:1 1 200px;align-items:center;gap:5px;padding:0 7px;color:var(--gray-500);background:#fff;border:1px solid var(--gray-200);border-radius:5px}.schedule-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #2142b81a}.schedule-search input{min-width:0;flex:1;padding:0;font:inherit;font-size:11px;background:transparent;border:0;outline:0}.schedule-search button{display:grid;padding:2px;color:var(--gray-500);background:transparent;border:0;place-items:center}.schedule-select,.schedule-group select,.schedule-filter-panel select{height:29px;padding:0 24px 0 7px;color:var(--gray-600);background:#fff;border:1px solid var(--gray-200);border-radius:5px;font:inherit;font-size:var(--text-2xs)}.schedule-group{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--text-2xs)}.schedule-menu{position:relative}.schedule-menu[open]{z-index:40}.schedule-menu>summary{list-style:none;white-space:nowrap}.schedule-menu>summary::-webkit-details-marker{display:none}.schedule-menu__panel{position:absolute;top:auto;right:0;bottom:calc(100% + 6px);z-index:100;width:250px;max-height:min(420px,65vh);overflow:auto;padding:24px 8px 8px;background:var(--gray-25);border:1px solid var(--gray-300);border-radius:7px;box-shadow:0 12px 34px #161a2033;transform-origin:top right}.schedule-menu__close{position:absolute;top:4px;right:4px;display:grid;width:16px;height:16px;padding:0;color:var(--gray-400);background:transparent;border:0;border-radius:4px;place-items:center}.schedule-menu__close:hover,.schedule-menu__close:focus-visible{color:var(--gray-600);background:var(--gray-100)}.schedule-menu__close svg{width:11px;height:11px}.schedule-menu__panel .schedule-menu__close,.schedule-menu__panel .schedule-menu__close:hover,.schedule-menu__panel .schedule-menu__close:focus-visible{min-height:0;width:16px;height:16px;padding:0;color:var(--gray-400);background:transparent;border:0;box-shadow:none}.schedule-menu__panel .schedule-menu__close:hover,.schedule-menu__panel .schedule-menu__close:focus-visible{color:var(--gray-600);background:var(--gray-100)}.schedule-layout-menu .schedule-menu__panel{right:auto;left:0;width:min(250px,calc(100vw - 16px));transform-origin:top left}.electrical-schedule.is-maximized .schedule-menu__panel{top:calc(100% + 6px);bottom:auto}.schedule-filter-panel{display:grid;box-sizing:border-box;grid-template-columns:1fr 1fr;gap:8px;width:min(420px,calc(100vw - 24px));min-width:0;overflow-x:hidden}.schedule-filter-panel label{display:grid;min-width:0;gap:3px;color:var(--muted);font-size:var(--text-2xs)}.schedule-filter-panel select{width:100%;min-width:0}.schedule-filter-panel button,.schedule-columns-panel>button{min-height:28px;color:var(--blue-dark);background:var(--gray-100);border:0;border-radius:5px;font:inherit;font-size:var(--text-2xs)}.schedule-layout-panel p{margin:4px 6px 10px;color:var(--muted);font-size:10px}.schedule-layout-row,.schedule-column-row,.schedule-layout-panel form{display:flex;min-height:30px;align-items:center;gap:5px}.schedule-layout-row>button:first-child,.schedule-column-row label{min-width:0;flex:1;overflow:hidden;color:var(--gray-700);background:transparent;border:0;font:inherit;font-size:10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.schedule-layout-row>button:last-child,.schedule-column-row button{display:grid;width:25px;height:25px;padding:0;color:var(--gray-500);background:transparent;border:0;border-radius:4px;place-items:center}.schedule-layout-row button:hover,.schedule-column-row button:hover:not(:disabled){background:var(--gray-100)}.schedule-layout-panel form{padding-top:7px;border-top:1px solid var(--gray-150)}.schedule-layout-panel input{min-width:0;height:29px;flex:1;padding:0 7px;border:1px solid var(--gray-200);border-radius:5px;font:inherit;font-size:10px}.schedule-layout-panel form button{height:29px;color:#fff;background:var(--blue);border:0;border-radius:5px}.schedule-columns-panel{width:280px;padding:0 8px 8px}.schedule-columns-menu .schedule-menu__panel{right:auto;left:0}.schedule-column-row input{margin:0 7px 0 2px;accent-color:var(--blue)}.schedule-columns-panel__header{position:sticky;top:0;z-index:2;margin:0 -8px 4px;padding:8px 28px 8px 8px;background:var(--gray-25);border-bottom:1px solid var(--gray-200);box-shadow:0 3px 7px #161a200d}.schedule-column-search{display:flex;height:29px;min-width:0;align-items:center;gap:5px;padding:0 7px;color:var(--gray-500);background:#fff;border:1px solid var(--gray-300);border-radius:5px}.schedule-column-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #2142b821}.schedule-column-search svg{flex:none}.schedule-column-search input{width:100%;min-width:0;padding:0;color:var(--gray-700);background:transparent;border:0;outline:0;font:inherit;font-size:10px}.schedule-column-search>button{display:grid;width:20px;height:20px;flex:none;padding:0;color:var(--gray-500);background:transparent;border:0;border-radius:4px;place-items:center}.schedule-column-search>button:hover,.schedule-column-search>button:focus-visible{color:var(--gray-700);background:var(--gray-100)}.schedule-columns-panel__empty{margin:18px 4px;color:var(--muted);font-size:10px;text-align:center}.schedule-filter-summary{display:flex;min-height:27px;align-items:center;gap:8px;padding:3px 10px;color:var(--gray-600);background:var(--gray-100);border-bottom:1px solid var(--gray-200);font-size:var(--text-2xs)}.schedule-filter-summary button{color:var(--blue-dark);background:transparent;border:0;font:inherit;font-weight:700}.schedule-grid{position:relative;display:flex;min-width:0;min-height:0;flex:1;flex-direction:column;overflow:hidden;background:var(--gray-25)}.schedule-grid:before,.schedule-grid:after{position:absolute;top:0;bottom:14px;z-index:5;width:16px;content:"";opacity:0;pointer-events:none;transition:opacity .12s ease}.schedule-grid:before{left:0;background:linear-gradient(90deg,rgb(37 42 50 / .2),transparent)}.schedule-grid:after{right:0;background:linear-gradient(270deg,rgb(37 42 50 / .2),transparent)}.schedule-grid[data-can-scroll-left=true]:before,.schedule-grid[data-can-scroll-right=true]:after{opacity:1}.schedule-grid__surface{min-width:100%;min-height:100%}.schedule-grid__header{position:sticky;top:0;z-index:2;display:grid;width:100%;height:32px;flex:none;color:var(--gray-600);background:var(--gray-100);border-bottom:1px solid var(--gray-300)}.schedule-grid__header [role=columnheader]{position:relative;min-width:0;border-right:1px solid var(--gray-200)}.schedule-grid__header [role=columnheader]>button{display:flex;width:100%;height:100%;min-width:0;align-items:center;justify-content:space-between;gap:5px;overflow:hidden;padding:0 9px;color:inherit;background:transparent;border:0;font:inherit;font-size:9px;font-weight:750;letter-spacing:.025em;text-overflow:ellipsis;white-space:nowrap}.schedule-grid__header [role=columnheader]>button span{color:var(--blue-dark);font-size:8px}.schedule-column-resizer{position:absolute;top:0;right:-6px;z-index:3;width:12px;height:100%;cursor:col-resize;touch-action:none;outline:none}.schedule-column-resizer:after{position:absolute;top:0;left:5px;width:2px;height:100%;content:"";opacity:0;background:var(--blue);pointer-events:none}@media(hover:hover)and (pointer:fine){.schedule-column-resizer:hover:after{opacity:1}}.schedule-column-resizer:focus-visible:after{opacity:1;box-shadow:0 0 0 3px #2142b829}.schedule-column-resizer.is-active:after{height:100vh;opacity:1;box-shadow:0 0 0 1px #2142b81a}body.is-schedule-column-resizing,body.is-schedule-column-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.schedule-grid__scroll{position:relative;width:100%;min-width:100%;min-height:0;flex:1;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain}.schedule-grid__scroll::-webkit-scrollbar:horizontal{height:0}.schedule-grid__body{position:relative;width:100%;min-width:100%}.schedule-grid__row{position:absolute;top:0;left:0;display:grid;width:100%;height:34px;align-items:center;background:var(--gray-25);border-bottom:1px solid var(--gray-150);cursor:default}.schedule-grid__row:nth-child(2n){background:var(--gray-50)}.schedule-grid__row:hover,.schedule-grid__row:focus-visible{z-index:1;background:var(--gray-100);outline:1px solid rgb(33 66 184 / .28);outline-offset:-1px}.schedule-grid__row[aria-selected=true]{z-index:1;background:var(--gray-150);outline:1px solid rgb(33 66 184 / .42);outline-offset:-1px}.schedule-grid__row [role=gridcell]{min-width:0;overflow:hidden;padding:0 9px;color:var(--gray-700);border-right:1px solid var(--gray-100);font-size:10px;line-height:34px;text-overflow:ellipsis;white-space:nowrap}.schedule-grid__row [role=gridcell]>span:not(.schedule-status){display:block;overflow:hidden;text-overflow:ellipsis}.schedule-status{display:inline-flex;min-height:20px;align-items:center;gap:4px;padding:0 6px;line-height:1;background:var(--gray-150);border-radius:999px;font-size:8px;font-weight:700}.schedule-status svg{flex:none}.schedule-status--pass{color:var(--pass-600);background:var(--gray-150)}.schedule-status--warning,.schedule-status--incomplete{color:var(--todo-700);background:var(--todo-100)}.schedule-status--error{color:var(--warn-700);background:var(--gray-150)}.schedule-group-row{position:absolute;top:0;left:0;display:flex;width:100%;height:34px;align-items:center;padding:0 10px;color:var(--gray-700);background:var(--gray-100);border:0;border-bottom:1px solid var(--gray-200);font:inherit;font-size:10px;font-weight:750;text-align:left}.schedule-grid.is-column-resizing .schedule-grid__body{pointer-events:none}.schedule-horizontal-scroll{position:relative;z-index:6;width:100%;height:14px;flex:none;padding:3px 4px;background:var(--gray-100);border-top:1px solid var(--gray-200);cursor:pointer;touch-action:none;outline:none}.schedule-horizontal-scroll[hidden]{display:none}.schedule-horizontal-scroll:before{position:absolute;top:6px;right:4px;left:4px;height:2px;content:"";background:var(--gray-300);border-radius:999px}.schedule-horizontal-scroll__thumb{position:relative;z-index:1;height:8px;min-width:48px;background:var(--gray-500);border:1px solid var(--gray-500);border-radius:999px;box-shadow:0 1px 2px #161a202e;cursor:grab;will-change:transform}.schedule-horizontal-scroll[data-dragging=true] .schedule-horizontal-scroll__thumb{cursor:grabbing;background:var(--blue-dark)}.schedule-horizontal-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--blue)}.schedule-group-row span{display:flex;align-items:center;gap:6px}.schedule-group-row svg.is-collapsed{transform:rotate(-90deg)}.schedule-group-row small{color:var(--muted);font-weight:600}.schedule-grid__empty{display:grid;min-width:min(560px,100%);min-height:130px;align-content:center;justify-items:center;gap:5px;color:var(--muted);font-size:10px}.schedule-grid__empty strong{color:var(--gray-700);font-size:12px}@media(max-width:1100px){.electrical-schedule__controls{flex-wrap:wrap}.schedule-search{order:2;max-width:none}.schedule-control-button{font-size:0}}@media(min-width:801px)and (max-width:1100px){.schedule-layout-menu .schedule-menu__panel{right:auto;left:0;transform-origin:top left}}@media(max-width:800px){.workspace>.inspector{z-index:30;grid-column:2;grid-row:1 / 3}.electrical-schedule__header{padding-left:10px}.electrical-schedule__controls{gap:4px;padding:5px 6px}.schedule-tabs{max-width:100%;overflow-x:auto}.schedule-tabs button{padding-right:7px;padding-left:7px}.schedule-group{display:none}.schedule-menu__panel{position:fixed;top:auto;right:8px;bottom:48px;left:66px;width:auto;max-height:56vh}.schedule-filter-panel{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.workspace.is-schedule-settling{transition:none}.schedule-icon-button:active,.schedule-control-button:active,.schedule-menu>summary:active,.electrical-schedule__closed-main:active{transform:none}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.top-bar-menu{position:relative;flex:0 1 auto;min-width:0}.top-bar-menu__compact-icon{display:none}.top-bar-menu__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:90;width:min(290px,calc(100vw - 20px));max-height:calc(100vh - 76px);padding:5px;overflow-y:auto;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform-origin:top left;animation:pop-in var(--dur-base) var(--ease-out) both}.top-bar-menu__group{display:grid;gap:1px;margin:0;padding:4px 0;border:0}.top-bar-menu__group+.top-bar-menu__group{border-top:1px solid var(--border)}.top-bar-menu__group-label{padding:4px 9px 3px;color:var(--text-muted);font-size:var(--text-2xs);font-weight:600}.top-bar-menu__group>[role=menuitem]{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:34px;padding:0 8px 0 9px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:500;text-align:left;text-decoration:none}.top-bar-menu__group>[role=menuitem]>svg{color:var(--text-muted)}.top-bar-menu__group>[role=menuitem]:hover,.top-bar-menu__group>[role=menuitem]:focus-visible{background:var(--surface-hover);outline:none}.top-bar-menu__group>[role=menuitem]:hover>svg,.top-bar-menu__group>[role=menuitem]:focus-visible>svg{color:var(--text)}.top-bar-menu__group>[role=menuitem]:disabled{cursor:not-allowed;opacity:.45}.top-bar-menu__item-copy{display:grid;min-width:0}.top-bar-menu__item-copy strong{font-weight:500}.top-bar-menu__item-copy small{color:var(--text-muted);font-size:var(--text-2xs)}.top-bar-menu__group kbd{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 4px;color:var(--text-muted);background:var(--gray-50);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-xs);font-family:var(--font-sans);font-size:10px;font-weight:600}.billing-status{display:inline-flex;align-items:center;gap:6px;flex:none;height:30px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;white-space:nowrap}button.billing-status{cursor:pointer;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}button.billing-status:active{transform:scale(.97)}.billing-status--free{color:#7a5200;background:linear-gradient(180deg,#fffaeb,#fff3cf);border-color:#fde3a1}.billing-status--free svg{color:var(--spark-500)}.billing-status--free:hover{background:linear-gradient(180deg,#fff6d9,#ffecb5)}.billing-status--pro{color:var(--pass-700);background:var(--pass-50);border-color:var(--pass-100)}.billing-status--inactive{color:var(--todo-700);background:var(--todo-50);border-color:var(--todo-100)}.sheet-switcher{position:relative;min-width:0}.sheet-switcher__trigger{display:flex;align-items:center;gap:6px;min-width:0;max-width:240px;height:32px;padding:0 6px 0 8px;color:var(--text-secondary);text-align:left;background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.sheet-switcher__trigger>svg:first-child{display:none}.sheet-switcher__trigger:hover,.sheet-switcher__trigger[aria-expanded=true]{color:var(--text);background:var(--surface-hover)}.sheet-switcher__trigger:active{transform:scale(.985)}.sheet-switcher__trigger-copy{display:flex;flex:1 1 auto;align-items:baseline;gap:6px;min-width:0}.sheet-switcher__trigger-copy strong{overflow:hidden;font-size:var(--text-md);font-weight:500;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.sheet-switcher__position{flex:none;color:var(--text-muted);font-size:var(--text-2xs);font-weight:550}.sheet-switcher__chevron{flex:none;color:var(--text-muted);transition:transform var(--dur-base) var(--ease-out)}.sheet-switcher__trigger[aria-expanded=true] .sheet-switcher__chevron{transform:rotate(180deg)}.sheet-switcher__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:80;width:min(360px,calc(100vw - 24px));overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform-origin:top left;animation:pop-in var(--dur-base) var(--ease-out) both}.sheet-switcher__list{display:grid;gap:1px;max-height:min(380px,calc(100vh - 140px));padding:5px;overflow-y:auto;overscroll-behavior:contain}.sheet-switcher__option{display:grid;grid-template-columns:64px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:46px;padding:6px 8px;color:var(--text);text-align:left;background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer}.sheet-switcher__option:hover,.sheet-switcher__option:focus-visible{background:var(--surface-hover);outline:none}.sheet-switcher__option[aria-selected=true]{background:var(--accent-50)}.sheet-switcher__thumb{position:relative;display:block}.sheet-switcher__thumb .sheet-thumb{border-radius:var(--radius-sm)}.sheet-switcher__option[aria-selected=true] .sheet-thumb{box-shadow:0 0 0 2px var(--accent-500)}.sheet-switcher__ordinal{position:absolute;bottom:3px;left:3px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;color:var(--text-secondary);background:var(--gray-100);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;font-weight:650}.sheet-switcher__option[aria-selected=true] .sheet-switcher__ordinal{color:#fff;background:var(--accent-600)}.sheet-switcher__option-copy{display:grid;gap:1px;min-width:0}.sheet-switcher__option-copy strong,.sheet-switcher__option-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-switcher__option-copy strong{font-size:var(--text-sm);font-weight:600}.sheet-switcher__option-copy span{color:var(--text-muted);font-size:var(--text-2xs)}.sheet-switcher__check{color:var(--accent-600);opacity:0}.sheet-switcher__option[aria-selected=true] .sheet-switcher__check{opacity:1}.sheet-switcher__footer{padding:5px;background:var(--surface-sunken);border-top:1px solid var(--border)}.sheet-switcher__footer button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;width:100%;min-height:36px;padding:0 9px;color:var(--text);text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:550}.sheet-switcher__footer button svg{color:var(--text-muted)}.sheet-switcher__footer button:hover{background:var(--surface-hover)}.sheet-switcher__footer small{display:grid;place-items:center;min-width:22px;height:20px;padding:0 6px;color:var(--text-secondary);background:var(--gray-100);border-radius:var(--radius-full);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;font-weight:600}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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}:root{--gray-0: #ffffff;--gray-25: #fbfbfc;--gray-50: #f6f7f9;--gray-75: #f1f3f6;--gray-100: #eceff3;--gray-150: #e3e7ec;--gray-200: #d6dbe2;--gray-300: #bcc3cd;--gray-400: #949dab;--gray-500: #6b7482;--gray-600: #515965;--gray-700: #3a414b;--gray-800: #252a32;--gray-900: #161a20;--accent-25: #f5f8ff;--accent-50: #edf2ff;--accent-100: #dce6ff;--accent-200: #bccfff;--accent-300: #8eacff;--accent-400: #5f86ff;--accent-500: #3b66f5;--accent-600: #2a52e0;--accent-700: #2142b8;--accent-800: #1e3891;--spark-300: #ffd95c;--spark-400: #ffc928;--spark-500: #f5b400;--pass-50: #ecf8f1;--pass-100: #d3f0df;--pass-500: #1f9d55;--pass-600: #178048;--pass-700: #136339;--warn-50: #fdf0f0;--warn-100: #fadcdc;--warn-500: #d93a3a;--warn-600: #bf2c2c;--warn-700: #9a2323;--todo-50: #fff6e8;--todo-100: #ffe9c7;--todo-500: #e08a0b;--todo-600: #b86e05;--todo-700: #8a5205;--markup-panel: #1b2433;--markup-junction: var(--accent-500);--markup-endpoint: #e8870c;--markup-raceway: var(--accent-500);--markup-paper: var(--gray-0);--markup-label: var(--gray-900);--markup-label-halo: var(--gray-0);--markup-leader: var(--gray-500);--markup-selection: var(--accent-600);--markup-hover: var(--accent-400);--bg-app: var(--gray-75);--bg-canvas: #e7eaef;--surface: var(--gray-0);--surface-raised: var(--gray-0);--surface-sunken: var(--gray-50);--surface-hover: var(--gray-75);--surface-pressed: var(--gray-100);--border: var(--gray-150);--border-strong: var(--gray-200);--border-input: var(--gray-200);--text: var(--gray-900);--text-secondary: var(--gray-600);--text-muted: var(--gray-500);--text-faint: var(--gray-400);--focus-ring: 0 0 0 3px rgb(59 102 245 / .28);--font-sans: "Inter Variable", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgb(22 26 32 / .06);--shadow-sm: 0 1px 2px rgb(22 26 32 / .06), 0 2px 6px rgb(22 26 32 / .05);--shadow-md: 0 2px 4px rgb(22 26 32 / .05), 0 8px 20px rgb(22 26 32 / .08);--shadow-lg: 0 4px 10px rgb(22 26 32 / .06), 0 18px 44px rgb(22 26 32 / .14);--shadow-xl: 0 10px 24px rgb(22 26 32 / .1), 0 32px 80px rgb(22 26 32 / .22);--shadow-drawer: -24px 0 60px rgb(22 26 32 / .16);--scrim: rgb(22 26 32 / .22);--paper-shadow: rgb(22 26 32 / .08);--overlay-strong: rgb(22 26 32 / .68);--surface-translucent: rgb(255 255 255 / .92);--shadow-float: 0 0 0 1px rgb(22 26 32 / .06), 0 2px 4px rgb(22 26 32 / .04), 0 10px 28px rgb(22 26 32 / .1);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.36, .64, 1);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .26s;--canvas-text-scale: 1.2;--canvas-label-size: 8px;--canvas-label-major-size: 8.75px;--canvas-raceway-label-size: 7px;--topbar-height: 52px;--rail-expanded: 176px;--rail-collapsed: 56px;--inspector-width: 340px;--sheets-rail-width: 200px}@media(max-width:1100px){:root{--inspector-width: 300px;--sheets-rail-width: 168px}}:root{font-family:var(--font-sans);color:var(--text);background:var(--bg-app);font-synthesis:none;text-rendering:optimizeLegibility;--ink: var(--text);--muted: var(--text-muted);--paper: var(--surface);--cream: var(--surface-sunken);--line: var(--border-strong);--blue: var(--accent-600);--blue-dark: var(--accent-700);--blue-soft: var(--accent-50);--green: var(--pass-600);--green-soft: var(--pass-50);--amber: var(--todo-500);--amber-soft: var(--todo-50);--red: var(--warn-600);--red-soft: var(--warn-50);--shadow: var(--shadow-lg)}*{box-sizing:border-box}button,input,select{font:inherit}.app-shell{display:grid;grid-template-rows:62px minmax(0,1fr);width:100%;height:100%;background:var(--gray-150)}.button,.icon-button{border:0;cursor:pointer}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 12px;border-radius:7px;font-size:var(--text-sm);font-weight:600}.button--ghost{background:transparent}.button--ghost:hover{background:var(--gray-100)}.button--primary{color:#fff;background:var(--blue-dark);box-shadow:0 3px 8px #2142b838}.button--primary:hover{background:var(--accent-800)}.button--compact{min-height:30px;padding:0 9px;background:#fff;border:1px solid var(--line)}.button:disabled{cursor:not-allowed;opacity:.38}.workspace{--tool-rail-width: 148px;--validation-summary-inset: 14px;--inspector-width: 320px;position:relative;display:grid;grid-template-columns:var(--tool-rail-width) minmax(0,1fr) var(--inspector-width);grid-template-rows:minmax(0,1fr);min-height:0}.workspace.is-tool-rail-collapsed{--tool-rail-width: 68px}.workspace:is(.is-rail-expanding,.is-rail-collapsing){transition:grid-template-columns .18s cubic-bezier(.77,0,.175,1)}.alert-dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#161a2085;opacity:1;transition:opacity .16s cubic-bezier(.23,1,.32,1)}.alert-dialog__viewport{position:fixed;top:0;right:0;bottom:0;left:0;z-index:111;display:grid;place-items:center;padding:20px;pointer-events:none}.alert-dialog__content{width:min(440px,100%);padding:24px;border:1px solid var(--gray-300);border-radius:14px;background:var(--paper);box-shadow:0 26px 74px #161a2047,0 3px 10px #161a2014;opacity:1;transform:scale(1);pointer-events:auto;transition:opacity .16s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1)}.alert-dialog__backdrop[data-starting-style],.alert-dialog__backdrop[data-ending-style]{opacity:0}.alert-dialog__content[data-starting-style],.alert-dialog__content[data-ending-style]{opacity:0;transform:scale(.97)}.alert-dialog__header{display:grid;gap:8px}.warning-alert-dialog__header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:13px}.warning-alert-dialog__icon{display:grid;place-items:center;width:38px;height:38px;color:var(--todo-700);background:var(--amber-soft);border:1px solid rgb(224 138 11 / .28);border-radius:11px}.warning-alert-dialog__copy{min-width:0}.alert-dialog__title{margin:0;color:var(--ink);font-size:var(--text-xl);letter-spacing:-.015em;line-height:1.25}.alert-dialog__description{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.55}.alert-dialog__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.warning-alert-dialog .button--danger{box-shadow:0 3px 8px #9a232333}@media(max-width:480px){.alert-dialog__content{padding:20px}.alert-dialog__footer{flex-direction:column-reverse}.alert-dialog__footer .button{width:100%}}@media(prefers-reduced-motion:reduce){.alert-dialog__backdrop,.alert-dialog__content{transition-duration:1ms}.alert-dialog__content[data-starting-style],.alert-dialog__content[data-ending-style]{transform:none}}@media(prefers-contrast:more){.alert-dialog__content{border:2px solid var(--ink)}}.button--danger{color:#fff;background:var(--warn-700);border-color:var(--warn-700)}.button--danger:hover{background:var(--warn-700)}.button-link{color:var(--blue-dark);font:inherit;text-decoration:underline;text-underline-offset:2px}.button-link{padding:0;border:0;background:transparent;cursor:pointer}.form-error{margin:0;color:var(--red);font-size:var(--text-sm);font-weight:600}.plan-viewport{position:relative;min-width:0;min-height:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background-color:var(--gray-300);background-image:linear-gradient(rgb(255 255 255 / .22) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .22) 1px,transparent 1px);background-size:24px 24px}.plan-viewport.is-panning{cursor:grab}.plan-viewport.is-panning:active{cursor:grabbing}.plan-viewport.is-crosshair{cursor:crosshair}.plan-viewport.is-selecting{cursor:grab}.page-surface{position:absolute;top:0;left:0;transform-origin:0 0;background:#fff;box-shadow:0 0 0 1px #161a201f,0 20px 60px #161a203d}.pdf-layer,.blank-plan-grid,.drafting-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.pdf-layer{pointer-events:none}.pdf-layer.is-hidden{visibility:hidden}.blank-plan-grid{pointer-events:none;background-color:var(--gray-25);background-image:linear-gradient(var(--gray-100) 1px,transparent 1px),linear-gradient(90deg,var(--gray-100) 1px,transparent 1px);background-size:18px 18px}.drafting-layer{overflow:visible}.inspector{position:relative;z-index:20;width:100%;min-width:0;overflow:auto;background:var(--paper);border-left:1px solid var(--gray-300);transition:opacity .15s ease-out,visibility .15s ease-out}.inspector.is-closed{width:0;overflow:hidden;visibility:hidden;pointer-events:none;border-left-color:transparent;opacity:0}.inspector-resize-handle{position:absolute;z-index:2;top:0;bottom:0;left:-9px;display:grid;width:18px;place-items:center;color:var(--gray-400);cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.inspector-resize-handle:before{position:absolute;top:0;right:7px;bottom:0;left:7px;border-radius:999px;content:"";transition:background-color .12s ease-out}.inspector-resize-handle:hover:before,.inspector-resize-handle:focus-visible:before{background:#2a52e024}.inspector-resize-handle:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}.inspector-resize-handle svg{position:relative;opacity:.7}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid var(--gray-150)}.panel-heading h2{margin:4px 0 0;font-family:var(--font-sans);font-size:var(--text-xl);letter-spacing:-.03em}.eyebrow{color:var(--blue-dark);font-size:var(--text-2xs);font-weight:700}.icon-button{display:inline-grid;place-items:center;width:31px;height:31px;flex:none;color:var(--gray-600);background:transparent;border-radius:6px}.icon-button:hover{background:var(--gray-100)}.icon-button--danger:hover{color:var(--red);background:var(--red-soft)}.empty-panel{display:grid;justify-items:center;gap:16px;padding:48px 28px;color:var(--muted);font-size:var(--text-sm);line-height:1.6;text-align:center}.mixed-selection-summary{align-content:start}.mixed-selection-summary strong{color:var(--ink);font-size:var(--text-md)}.mixed-selection-summary span{color:var(--blue-dark);font-size:11px;font-weight:700}.mixed-selection-summary p{margin:0}.inspector-body{padding-bottom:30px}.inspector-accordion{display:grid;min-width:0;padding-bottom:30px}.display-settings{display:flex;flex-direction:column;min-height:100%}.display-settings__heading{align-items:center}.display-settings__heading-actions{display:flex;align-items:center;gap:5px}.display-settings__heading-actions .text-button{white-space:nowrap}.display-settings__intro{margin:0;padding:14px 18px 4px;color:var(--muted);font-size:11px;line-height:1.45}.display-settings__body{flex:1}.visibility-section{padding:16px 18px;border-bottom:1px solid var(--gray-150)}.visibility-section h3{margin:0 0 9px;color:var(--ink);font-size:11px}.visibility-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:38px;padding:6px 8px;color:var(--ink);border:1px solid transparent;border-radius:7px;background:transparent;font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;transition:background-color .12s ease,transform .12s cubic-bezier(.23,1,.32,1)}.visibility-row:hover,.visibility-row:focus-visible{background:var(--gray-100)}.visibility-row:active{transform:scale(.985)}.visibility-row__label{display:flex;align-items:center;gap:8px;min-width:0}.visibility-row__label>svg{flex:none;color:var(--blue-dark)}.visibility-switch{position:relative;display:inline-flex;align-items:center;width:32px;height:18px;flex:none;padding:2px;border:0;border-radius:999px;background:var(--gray-300);cursor:pointer;transition:background-color .14s ease,transform .12s cubic-bezier(.23,1,.32,1)}.visibility-switch>span{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #161a2047;transform:translate(0);transition:transform .14s cubic-bezier(.23,1,.32,1)}.visibility-switch[aria-checked=true],.visibility-row[aria-checked=true] .visibility-switch{background:var(--blue)}.visibility-switch[aria-checked=true]>span,.visibility-row[aria-checked=true] .visibility-switch>span{transform:translate(14px)}.visibility-switch:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.visibility-switch:active{transform:scale(.95)}.equipment-grid{display:grid;grid-template-columns:minmax(0,1fr) 54px 46px;align-items:center;min-height:38px;padding:6px 8px;color:var(--ink);font-size:var(--text-xs)}.equipment-grid .visibility-switch{justify-self:center}.equipment-grid--header{min-height:auto;padding-top:0}.equipment-grid--header h3{margin:0}.equipment-grid--header>span{color:var(--muted);font-size:var(--text-2xs);font-weight:700;text-align:center}.visibility-section__note{margin:7px 8px 0;color:var(--muted);font-size:var(--text-2xs);line-height:1.45}.display-settings__footer{position:sticky;bottom:0;padding:12px 18px 16px;background:linear-gradient(to bottom,rgb(251 251 252 / 0),var(--paper) 12px)}.display-settings__footer .button{width:100%}.property-section{min-width:0;border-bottom:1px solid var(--gray-150)}.property-section__header{min-width:0}.property-section__trigger{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:10px 16px;color:var(--ink);text-align:left;background:transparent;border:0;cursor:pointer;transition:background-color .12s ease-out,transform .12s cubic-bezier(.23,1,.32,1)}.property-section__trigger:hover,.property-section__trigger:focus-visible{background:var(--gray-75);outline:none}.property-section__trigger:active{transform:scale(.995)}.property-section__heading{display:grid;min-width:0;gap:2px}.property-section__trigger h3{margin:0;font-size:var(--text-xs)}.property-section__summary{overflow:hidden;color:var(--muted);font-size:var(--text-2xs);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.property-section__trigger-meta{display:inline-flex;align-items:center;gap:8px;flex:none}.property-section__issue-count{display:inline-grid;min-width:18px;height:18px;place-items:center;padding:0 4px;color:var(--todo-700);background:var(--amber-soft);border-radius:999px;font-size:var(--text-2xs);font-weight:800}.property-section__chevron{color:var(--muted);transition:transform .18s cubic-bezier(.23,1,.32,1)}.property-section[data-open] .property-section__chevron{transform:rotate(180deg)}.property-section__panel{min-width:0;overflow:hidden}.property-section__body{display:grid;min-width:0;gap:12px;padding:2px 16px 17px}.property-section__panel[data-starting-style],.property-section__panel[data-ending-style]{opacity:0}.property-row{display:grid;grid-template-columns:minmax(86px,.72fr) minmax(0,1.28fr);align-items:center;gap:8px 12px;min-width:0}.property-row__label{min-width:0;color:var(--muted);font-size:11px;font-weight:600;line-height:1.25}.property-row__control{display:flex;min-width:0;align-items:center}.property-row__control>input,.property-row__control>select{width:100%;min-width:0;min-height:32px;padding:5px 8px;color:var(--ink);background:#fff;border:1px solid var(--gray-300);border-radius:6px}.property-row__control>input:focus,.property-row__control>select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f;outline:none}.property-row__helper{grid-column:1 / -1;margin-top:-3px;color:var(--muted);font-size:var(--text-2xs);line-height:1.4}.appearance-number-control{display:flex;width:100%;min-width:0;align-items:center;gap:6px}.appearance-number-control>input{min-width:0;flex:1 1 auto}.appearance-number-control__inheritance,.appearance-number-control__reset{display:inline-grid;width:30px;height:30px;flex:none;place-items:center;color:var(--muted)}.appearance-number-control__reset{padding:0}.device-color-control{display:flex;width:100%;min-width:0;align-items:center;gap:7px}.device-color-control__input{width:34px;height:30px;flex:none;padding:3px;background:#fff;border:1px solid var(--gray-300);border-radius:6px;cursor:pointer}.device-color-control__input:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f;outline:none}.device-color-control__value{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.device-color-control__inheritance,.device-color-control__reset{display:inline-grid;width:24px;height:24px;margin-left:auto;flex:none;place-items:center;color:var(--muted)}.device-color-control__reset{padding:0;color:var(--blue-dark);border:0;border-radius:5px;cursor:pointer;transition:color .14s ease,background-color .14s ease,transform .14s cubic-bezier(.23,1,.32,1)}.device-color-control__reset:hover,.device-color-control__reset:focus-visible{color:var(--blue);background:var(--blue-soft);outline:none}.device-color-control__reset:active{transform:scale(.94)}.symbol-source-control{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;padding:2px;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:6px}.symbol-source-control__option{min-width:0;min-height:27px;padding:3px 6px;overflow:hidden;color:var(--muted);background:transparent;border:0;border-radius:4px;font-size:var(--text-2xs);font-weight:700;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .12s ease-out,background-color .12s ease-out,transform .12s cubic-bezier(.23,1,.32,1)}.symbol-source-control__option[aria-pressed=true]{color:var(--blue-dark);background:#fff;box-shadow:0 1px 2px #161a201a}.symbol-source-control__option:hover,.symbol-source-control__option:focus-visible{color:var(--blue-dark);outline:none}.symbol-source-control__option:active{transform:scale(.97)}.symbol-source-control[data-mixed] .symbol-source-control__option,.symbol-source-control[data-inherited] .symbol-source-control__option{opacity:.68}.symbol-source-control__state{position:absolute;top:50%;left:50%;padding:1px 5px;color:var(--muted);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:999px;font-size:var(--text-2xs);font-weight:700;pointer-events:none;transform:translate(-50%,-50%)}.symbol-source-control__native{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.device-placement-actions{display:flex;justify-content:flex-end}.device-placement-actions .text-button:disabled{cursor:default;opacity:.45}.property-note,.field-error{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.field-error{color:var(--red)}.distance-input{display:flex;flex-direction:column;gap:5px}.distance-input__control{display:flex;align-items:center;gap:7px}.distance-input__control input{min-width:0;flex:1}.distance-input__unit{color:var(--text-muted, var(--gray-500));font-size:.82rem;white-space:nowrap}.distance-input__label{color:var(--text-muted, var(--gray-500));font-size:.78rem}.distance-input__error{display:block}.length-summary{display:grid;gap:3px;padding:10px;background:var(--gray-100);border-radius:6px}.length-summary strong{font-size:var(--text-xs)}.length-summary span{color:var(--muted);font-size:11px}.length-summary__action{justify-self:start}.text-button{border:0;cursor:pointer}.status-dot{width:8px;height:8px;flex:none;background:var(--amber);border-radius:50%}.status-dot--pass{background:var(--green)}.status-dot--warning{background:var(--red)}.text-button{padding:3px 0;color:var(--blue-dark);background:transparent;font-size:var(--text-2xs);font-weight:700}.text-button:hover,.text-button:focus-visible{text-decoration:underline;outline:none}.circuit-inspection__title{display:flex;align-items:center;gap:9px}.circuit-inspection__title>div{display:grid;gap:2px}.circuit-inspection__title strong{font-size:var(--text-sm)}.circuit-inspection__title span{color:var(--muted);font-size:var(--text-2xs)}.field{display:grid;gap:5px}.field>span{color:var(--muted);font-size:11px;font-weight:600}.field-warning-icon{color:var(--amber);cursor:help;flex:none}.field input,.field select{width:100%;min-height:34px;padding:6px 9px;color:var(--ink);background:#fff;border:1px solid var(--gray-300);border-radius:6px}.device-symbol-slider{display:grid;grid-template-columns:54px minmax(54px,1fr) 52px 24px;align-items:center;gap:8px;min-height:32px}.device-symbol-slider__label{color:var(--muted);font-size:11px;font-weight:600}.device-symbol-slider__control{display:flex;height:28px;align-items:center;touch-action:none;-webkit-user-select:none;user-select:none}.device-symbol-slider__track{position:relative;width:100%;height:4px;background:var(--gray-200);border-radius:999px}.device-symbol-slider__indicator{border-radius:inherit;background:var(--blue)}.device-symbol-slider__thumb{width:14px;height:14px;background:#fff;border:1.5px solid var(--blue);border-radius:50%;box-shadow:0 1px 2px #161a202e;cursor:grab;transition:border-color .14s cubic-bezier(.23,1,.32,1),box-shadow .14s cubic-bezier(.23,1,.32,1),transform .14s cubic-bezier(.23,1,.32,1)}.device-symbol-slider__thumb:active{cursor:grabbing;transform:scale(.94)}.device-symbol-slider__thumb:has(input:focus-visible){box-shadow:0 0 0 3px #2a52e024,0 1px 2px #161a202e}.device-symbol-slider[data-mixed] .device-symbol-slider__indicator,.device-symbol-slider[data-mixed] .device-symbol-slider__thumb{opacity:0}.device-symbol-slider[data-mixed] .device-symbol-slider__track{background:repeating-linear-gradient(135deg,var(--gray-200) 0,var(--gray-200) 3px,var(--gray-100) 3px,var(--gray-100) 6px)}.device-symbol-percent-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;height:28px;padding:0 6px;color:var(--ink);background:#fff;border:1px solid var(--gray-300);border-radius:5px}.device-symbol-percent-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f}.device-symbol-percent-input input{width:100%;min-width:0;padding:0;text-align:right;background:transparent;border:0;outline:0;font:inherit;font-size:11px;font-variant-numeric:tabular-nums}.device-symbol-percent-input>span:not(.sr-only){color:var(--muted);font-size:var(--text-2xs);font-weight:700}.device-symbol-percent-input[data-mixed]{grid-template-columns:1fr;background:var(--gray-50)}.device-symbol-percent-input[data-mixed] input{text-align:center}.device-symbol-percent-input input::placeholder{color:var(--muted);opacity:1}.device-symbol-slider__trailing{display:grid;width:24px;height:24px;place-items:center}.device-symbol-slider__inheritance,.device-symbol-slider__reset{display:grid;width:24px;height:24px;padding:0;place-items:center;color:var(--gray-400);background:transparent;border:0;border-radius:5px}.device-symbol-slider__reset{color:var(--blue-dark);cursor:pointer;transition:color .14s ease,background-color .14s ease,transform .14s cubic-bezier(.23,1,.32,1)}.device-symbol-slider__reset:hover,.device-symbol-slider__reset:focus-visible{color:var(--blue);background:var(--blue-soft);outline:none}.device-symbol-slider__reset:active{transform:scale(.94)}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f;outline:none}.field select:disabled{color:var(--muted);cursor:not-allowed;background:var(--gray-75)}.inspector .field{grid-template-columns:minmax(86px,.72fr) minmax(0,1.28fr);align-items:center;gap:8px 12px}.inspector .field>span{line-height:1.25}.inspector .field>input,.inspector .field>select,.inspector .field>.device-type-combobox__closed-trigger{min-width:0}.device-type-combobox__closed-trigger{display:flex;width:100%;min-height:38px;align-items:center;gap:8px;padding:6px 8px;overflow:hidden;color:var(--ink);background:#fff;border:1px solid var(--gray-300);border-radius:6px;cursor:pointer;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease,transform .14s cubic-bezier(.23,1,.32,1)}@media(hover:hover)and (pointer:fine){.device-type-combobox__closed-trigger:hover{background:var(--gray-25);border-color:var(--gray-300)}}.device-type-combobox__closed-trigger:focus-visible,.device-type-combobox__closed-trigger[data-popup-open]{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f;outline:none}.device-type-combobox__closed-trigger:active{transform:scale(.985)}.device-type-combobox__icon{display:grid;width:22px;height:22px;flex:none;place-items:center}.device-type-combobox__icon svg{width:22px;height:22px}.device-type-combobox__value{min-width:0;overflow:hidden;flex:1;color:var(--ink);font-weight:550;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.device-type-combobox__closed-chevron{flex:none;margin-left:auto;color:var(--muted);transition:transform .16s cubic-bezier(.23,1,.32,1)}.device-type-combobox__closed-trigger[data-popup-open] .device-type-combobox__closed-chevron{transform:rotate(180deg)}.device-type-combobox__popup{overflow:hidden;padding:5px;color:var(--ink);background:#fff;border:1px solid var(--gray-300);border-radius:8px;box-shadow:0 12px 32px #161a202e;transform-origin:var(--transform-origin)}.device-type-combobox__input-group{display:flex;width:100%;min-height:36px;align-items:center;gap:7px;padding:3px 8px;color:var(--ink);background:var(--gray-25);border:1px solid var(--gray-300);border-radius:6px;transition:border-color .14s ease,box-shadow .14s ease}.device-type-combobox__input-group:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f;outline:none}.device-type-combobox__input{min-width:0;flex:1;height:28px;padding:0;color:var(--ink);background:transparent;border:0;outline:none;font:inherit}.device-type-combobox__input::placeholder{color:var(--muted);opacity:1}.device-type-select__mixed-icon{display:grid;width:22px;height:22px;place-items:center;color:var(--muted);border:1px dashed var(--gray-300);border-radius:50%}.device-type-combobox__positioner{z-index:80;width:var(--anchor-width);min-width:min(220px,calc(100vw - 32px))}.device-type-combobox__empty{color:var(--muted);font-size:var(--text-xs)}.device-type-combobox__empty:not(:empty){padding:12px 10px}.device-type-combobox__list{display:grid;gap:2px;max-height:min(280px,var(--available-height));overflow-y:auto;padding:5px;outline:none}.device-type-combobox__item{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:9px;min-height:38px;padding:5px 7px;border-radius:5px;cursor:pointer;outline:none}.device-type-combobox__item svg{width:22px;height:22px}.device-type-combobox__item[data-highlighted]{background:#2a52e01a}.device-type-combobox__check{display:grid;color:var(--blue);place-items:center}.result-card{display:grid;gap:4px;padding:11px;background:var(--gray-100);border-left:3px solid var(--gray-400);border-radius:5px}.result-card--pass{background:var(--gray-150);border-left-color:var(--green)}.result-card--warning{background:var(--red-soft);border-left-color:var(--red)}.result-card__title{display:flex;align-items:center;gap:7px;font-size:var(--text-sm)}.result-card>span{padding-left:23px;color:var(--muted);font-size:11px}.issue{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;padding:9px;font-size:11px;line-height:1.45;border-radius:5px}.issue>span{flex:1 1 180px}.issue__actions{display:flex;flex:1 0 100%;justify-content:flex-end;gap:6px}.issue--warning,.issue--error{color:var(--warn-700);background:var(--red-soft)}.issue--incomplete{color:var(--todo-700);background:var(--amber-soft)}.issue-dot{width:6px;height:6px;flex:none;border-radius:50%;background:var(--amber)}.issue-dot--incomplete{background:var(--amber)}.issue-dot--warning,.issue-dot--error{background:var(--red)}.issues-panel{min-height:0}.issues-panel__filters{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:5px;padding:11px 12px;background:var(--paper);border-bottom:1px solid var(--gray-150)}.issues-panel__filters button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 8px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:var(--text-2xs);font-weight:700}.issues-panel__filters button span{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;background:var(--gray-100);border-radius:999px;color:var(--gray-600);font-size:9px;font-variant-numeric:tabular-nums}.issues-panel__filters button.is-active{color:#fff;background:var(--blue);border-color:var(--blue)}.issues-panel__filters button.is-active span{color:var(--blue-dark);background:#ffffffe6}.issues-panel__list{display:grid}.issues-panel__list .validation-item{display:flex;align-items:center;gap:9px;width:100%;padding:11px 13px;color:var(--gray-600);background:transparent;border:0;border-bottom:1px solid var(--gray-100);cursor:pointer;font-size:11px;text-align:left}.issues-panel__list button.validation-item:hover{background:var(--gray-100)}.issues-panel__list .validation-item:not(button){cursor:default}.issues-panel__empty{display:grid;justify-items:center;gap:5px;padding:44px 24px;color:var(--muted);text-align:center}.issues-panel__empty strong{color:var(--ink)}.issues-panel__empty p{margin:0;font-size:var(--text-xs);line-height:1.5}.issues-panel__empty--clear{min-height:260px;align-content:center;gap:8px;padding-inline:32px}.issues-panel__empty--clear strong{font-size:var(--text-lg)}.issues-panel__clear-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:5px;color:var(--green);background:var(--green-soft);border:1px solid rgb(31 157 85 / .2);border-radius:50%}.status-pill{padding:4px 7px;color:var(--todo-700);background:var(--amber-soft);border-radius:999px;font-size:var(--text-2xs);font-weight:700}.status-pill--pass{color:var(--pass-600);background:var(--gray-150)}.status-pill--warning{color:var(--warn-700);background:var(--red-soft)}.checkbox-field{display:flex!important;grid-column:span 2;align-items:center;align-self:end;min-height:34px;padding:0 8px;background:var(--gray-100);border-radius:6px}.checkbox-field input{width:auto;min-height:auto}.input-suffix{position:relative}.input-suffix span{position:absolute;top:50%;right:8px;color:var(--muted);font-size:11px;transform:translateY(-50%)}.error-toast{position:fixed;right:18px;bottom:18px;z-index:100;display:flex;align-items:center;gap:14px;padding:12px 14px;color:var(--warn-700);background:var(--gray-25);border:1px solid var(--warn-100);border-radius:8px;box-shadow:var(--shadow);font-size:var(--text-xs)}.error-toast button{padding:4px 7px;background:transparent;border:0;color:inherit;cursor:pointer;font-weight:700}.app-loading{display:grid;place-content:center;justify-items:center;gap:16px;width:100%;height:100%;color:var(--ink);background:var(--cream)}.app-loading strong{font-family:var(--font-sans);font-size:15px}.settings-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:clamp(12px,4vw,48px);background:#161a207a;animation:settings-backdrop-in .16s ease-out both}.settings-modal{display:flex;flex-direction:column;width:min(980px,100%);height:min(720px,calc(100vh - 48px));min-height:520px;overflow:hidden;color:var(--ink);background:var(--paper);border:1px solid var(--gray-300);border-radius:14px;box-shadow:0 30px 90px #161a204d;animation:settings-modal-in .18s cubic-bezier(.16,1,.3,1) both}.settings-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 28px 20px;background:var(--gray-0);border-bottom:1px solid var(--line)}.settings-modal__header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}.settings-modal__header p,.settings-modal__lede{max-width:620px;margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.settings-modal__body{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:0;flex:1}.settings-modal__nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;padding:16px 12px;background:var(--gray-50);border-right:1px solid var(--line)}.settings-modal__nav-title{margin:5px 9px 7px;color:var(--muted);font-size:11px;font-weight:800}.settings-modal__nav-title--muted{margin-top:18px}.settings-nav-item{display:grid;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:9px;width:100%;min-height:44px;padding:7px 9px;color:var(--ink);line-height:1.2;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out}.settings-nav-item>svg{place-self:center}.settings-nav-item__copy{align-self:center;display:grid;gap:2px;min-width:0}.settings-nav-item:hover:not(.is-disabled){background:var(--gray-100)}.settings-nav-item.is-active{color:var(--blue-dark);background:var(--gray-100);border-color:var(--accent-200)}.settings-nav-item.is-disabled{color:var(--gray-400);cursor:default}.settings-nav-item strong{overflow:hidden;font-size:var(--text-sm);font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.settings-nav-item small{color:var(--muted);font-size:11px;line-height:1.25}.settings-nav-item.is-disabled small{color:var(--gray-400)}.settings-modal__content{min-width:0;overflow-y:auto;padding:30px 36px;background:var(--paper)}.settings-modal__content h3{margin:5px 0 7px;font-size:20px;letter-spacing:-.01em}.settings-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:26px}.settings-summary-grid>div{display:grid;gap:5px;min-width:0;padding:13px;background:var(--gray-50);border:1px solid var(--line);border-radius:8px}.settings-summary-grid span,.settings-field__hint{color:var(--muted);font-size:11px}.settings-summary-grid strong{overflow:hidden;font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.settings-callout{display:flex;align-items:flex-start;gap:10px;margin-top:24px;padding:13px 14px;color:var(--blue-dark);background:var(--gray-75);border:1px solid var(--gray-200);border-radius:8px}.settings-callout svg{flex:0 0 auto;margin-top:1px}.settings-callout p{margin:0;color:var(--accent-600);font-size:var(--text-xs);line-height:1.45}.settings-callout--subtle{color:var(--muted);background:var(--gray-50);border-color:var(--line)}.settings-callout--subtle p{color:var(--muted)}.settings-form-grid{display:grid;gap:0;margin-top:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.settings-form-grid--preferences,.settings-form-grid--project{margin-top:24px}.settings-field{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:54px;padding:8px 10px 8px 4px;background:transparent;border-bottom:1px solid var(--line);transition:background-color .12s ease-out}.settings-field:last-child{border-bottom:0}.settings-field:hover{background:var(--gray-50)}.settings-field--toggle{cursor:pointer}.settings-field--toggle .settings-field__label small{overflow:visible;white-space:normal}.settings-checkbox{width:16px;height:16px;margin:0 5px 0 0;accent-color:var(--blue);cursor:pointer}.settings-field__icon{display:grid;place-items:center;width:24px;height:24px;color:var(--blue-dark);opacity:.78}.settings-field__icon>svg{display:block;width:20px;height:20px}.settings-field__icon>img{display:block;width:20px;height:20px}.settings-field__label{display:grid;min-width:0;gap:2px}.settings-field__label strong{overflow:hidden;font-size:var(--text-sm);font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.settings-field__label small{overflow:hidden;color:var(--muted);font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.settings-field__control{display:flex;align-items:center;width:122px;gap:7px}.settings-field__control--name{width:clamp(180px,30vw,300px)}.settings-field__control--name input{font-variant-numeric:normal}.settings-field__control input{width:100%;min-height:32px;padding:0 9px;color:var(--ink);font:inherit;font-size:var(--text-md);font-variant-numeric:tabular-nums;background:var(--gray-0);border:1px solid var(--gray-300);border-radius:6px}.settings-field__control input:focus{outline:2px solid rgb(42 82 224 / .2);border-color:var(--blue)}.settings-field__control>span{color:var(--muted);font-size:var(--text-sm);font-weight:700}.settings-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 28px;color:var(--muted);font-size:11px;background:var(--gray-0);border-top:1px solid var(--line)}.settings-modal__footer>div{display:flex;gap:8px}@keyframes settings-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes settings-modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.settings-modal-backdrop{padding:10px}.settings-modal{width:100%;height:calc(100vh - 20px);min-height:0;border-radius:10px}.settings-modal__header{padding:18px 18px 15px}.settings-modal__body{grid-template-columns:148px minmax(0,1fr)}.settings-modal__nav{padding:13px 8px}.settings-nav-item{grid-template-columns:17px minmax(0,1fr);gap:7px;min-height:40px;padding:6px}.settings-nav-item>svg:last-child{display:none}.settings-nav-item small,.settings-modal__nav-title--muted,.settings-modal__nav-title~.settings-nav-item.is-disabled{display:none}.settings-modal__content{padding:22px 18px}.settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form-grid{grid-template-columns:1fr;gap:0}.settings-field{grid-template-columns:22px minmax(0,1fr) auto;gap:8px;padding-inline:2px 6px}.settings-field__control{width:104px}.settings-field--name{grid-template-columns:22px minmax(0,1fr)}.settings-field__control--name{grid-column:2;width:100%;margin-bottom:4px}.settings-modal__footer{align-items:flex-end;flex-direction:column;gap:10px;padding:12px 18px}}@media(max-height:620px)and (min-width:721px){.settings-modal-backdrop{padding:12px;align-items:stretch}.settings-modal{height:calc(100vh - 24px);min-height:0}}@media(prefers-reduced-motion:reduce){.settings-modal-backdrop,.settings-modal{animation:none}}@media(max-width:1100px){.workspace{grid-template-columns:var(--tool-rail-width) minmax(0,1fr) var(--inspector-width)}}@media(max-width:800px){.workspace{grid-template-columns:var(--tool-rail-width) minmax(0,1fr)}.workspace.is-tool-rail-collapsed{--tool-rail-width: 58px}.inspector{position:absolute;top:0;right:0;bottom:0;width:min(var(--inspector-width),82vw);box-shadow:-8px 0 28px #161a2026;transform:translate(100%);transition:transform .18s cubic-bezier(.32,.72,0,1),opacity .15s ease-out}.inspector.is-open{transform:translate(0);visibility:visible;pointer-events:auto;opacity:1}.inspector-resize-handle{left:-5px;width:10px}}@media(prefers-reduced-motion:reduce){.workspace:is(.is-rail-expanding,.is-rail-collapsing){animation:none;transition:none}.device-plan-marker{transition:none}.inspector,.inspector-resize-handle:before,.property-section__trigger,.property-section__chevron,.property-section__panel,.symbol-source-control__option{animation:none;transition:none}}.circuit-inspection__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.route-editor-panel{background:var(--gray-50)}.route-editor-panel .field-hint{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.route-editor-list{display:grid;gap:5px;max-height:220px;overflow:auto;padding:2px}.route-editor-option{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border:1px solid var(--gray-200);border-radius:7px;background:#fff;cursor:pointer}.route-editor-option:hover{border-color:var(--gray-400);background:var(--gray-25)}.route-editor-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:700}.route-editor-option small{color:var(--muted);font-size:var(--text-2xs);white-space:nowrap}.route-editor-status{padding:7px 9px;border-radius:6px;color:var(--todo-700);background:var(--todo-50);font-size:var(--text-2xs);font-weight:700}.route-editor-status.is-valid{color:var(--pass-700);background:var(--gray-100)}.route-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}@media(max-width:680px){.circuit-inspection__actions{width:100%;margin-left:0}.circuit-inspection__actions .button{flex:1}.route-editor-option small{display:none}}.route-editor-alert{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;color:var(--todo-700);background:var(--todo-50);border:1px solid var(--todo-100);border-radius:7px}.route-editor-alert svg{flex:none;margin-top:1px}.route-editor-alert div{display:grid;gap:2px}.route-editor-alert strong{font-size:11px}.route-editor-alert span{font-size:var(--text-2xs);line-height:1.4}.route-editor-panel{min-width:0;overflow-x:hidden;background:var(--gray-50)}.route-editor-search-wrap{position:relative;display:grid;gap:4px}.route-editor-search{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 9px;color:var(--muted);background:#fff;border:1px solid var(--gray-300);border-radius:6px}.route-editor-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2a52e01f}.route-editor-search input{min-width:0;width:100%;border:0;outline:0;color:var(--ink);background:transparent;font:inherit;font-size:11px}.route-editor-search-results{display:grid;gap:3px;max-height:190px;overflow:auto;padding:4px;background:#fff;border:1px solid var(--gray-200);border-radius:7px;box-shadow:0 8px 20px #161a201f}.route-editor-candidate{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;padding:7px 8px;color:var(--ink);text-align:left;background:transparent;border:0;border-radius:5px;cursor:pointer}.route-editor-candidate:hover:not(:disabled),.route-editor-candidate:focus-visible:not(:disabled){background:var(--blue-soft);outline:0}.route-editor-candidate:disabled{color:var(--gray-400);cursor:not-allowed}.route-editor-candidate>span{display:grid;min-width:0;gap:2px}.route-editor-candidate strong,.route-editor-candidate small,.route-editor-candidate em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-editor-candidate strong{font-size:11px}.route-editor-candidate small,.route-editor-candidate em{color:var(--muted);font-size:var(--text-2xs);font-style:normal}.route-editor-candidate em{max-width:118px;text-align:right}.route-editor-count{color:var(--muted);font-size:var(--text-2xs);font-weight:700}.route-editor-list{display:grid;gap:4px;max-height:min(42vh,360px);overflow:auto;padding:1px 0}.route-editor-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:stretch;gap:7px;min-width:0;padding:6px 4px 6px 0;border-radius:6px}.route-editor-row.is-hovered{background:var(--gray-100)}.route-editor-row.is-removal-impact{background:var(--gray-50)}.route-editor-row__body{display:grid;min-width:0;gap:2px}.route-editor-row__top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.route-editor-row__top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.route-editor-row__top small,.route-editor-row__body>span,.route-editor-row__body>em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--text-2xs)}.route-editor-row__body>em{font-style:normal;color:var(--blue-dark);font-weight:700}.route-editor-row__body>.route-editor-row__warning{color:var(--todo-700)}.route-editor-row__actions{display:flex;align-items:center;gap:2px}.route-editor-row__actions .icon-button{width:26px;height:26px}.route-editor-rail{position:relative;display:flex;justify-content:center;min-height:36px}.route-editor-rail:before{content:"";position:absolute;top:0;bottom:0;width:2px;background:var(--gray-300)}.route-editor-rail i{position:relative;z-index:1;width:9px;height:9px;margin-top:8px;background:var(--green);border:2px solid var(--gray-50);border-radius:50%}.route-editor-rail b{position:absolute;top:12px;right:0;width:8px;height:8px;border-bottom:2px solid var(--gray-300);border-left:2px solid var(--gray-300);border-radius:0 0 0 4px}.route-editor-row.is-disconnected .route-editor-rail:before,.route-editor-row.is-disconnected .route-editor-rail b{border-color:var(--todo-500);background:var(--todo-500)}.route-editor-row.is-disconnected .route-editor-rail i{background:var(--todo-500)}.route-editor-exit,.route-editor-removal{display:grid;gap:6px;padding:10px;color:var(--todo-700);background:var(--todo-50);border:1px solid var(--todo-100);border-radius:7px}.route-editor-exit span,.route-editor-removal span{font-size:var(--text-2xs);line-height:1.4}.route-editor-exit>div,.route-editor-removal>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.route-editor-removal{color:var(--warn-700);background:var(--gray-50);border-color:var(--todo-100)}.route-editor-actions{align-items:center}.route-editor-actions .button{display:inline-flex;align-items:center;gap:5px}@media(max-width:680px){.route-editor-row__top small{display:none}.route-editor-candidate em{max-width:92px}.route-editor-actions{justify-content:stretch}.route-editor-actions .button{flex:1 1 auto;justify-content:center}}*,*:before,*:after{box-sizing:border-box}:root{color:var(--text);background:var(--bg-app);font-family:var(--font-sans);font-size:var(--text-sm);line-height:1.45;font-feature-settings:"cv11","ss01";font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg-app)}button,input,select,textarea{font:inherit;letter-spacing:inherit}button{color:inherit}h1,h2,h3,h4{margin:0;letter-spacing:-.011em}p{margin:0}kbd{font-family:var(--font-sans)}:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}::selection{background:var(--accent-100)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tabular{font-variant-numeric:tabular-nums}.eyebrow{display:block;margin:0;color:var(--text-muted);font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em}.button,.icon-button,.tool-button{border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 12px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);font-size:var(--text-sm);font-weight:550;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.button svg{flex:none}.button:hover{background:var(--surface-hover);border-color:var(--gray-300)}.button:active:not(:disabled){transform:scale(.98)}.button--primary{color:#fff;background:var(--accent-600);border-color:var(--accent-700);box-shadow:inset 0 1px #ffffff24,0 1px 2px #2142b84d}.button--primary:hover{background:var(--accent-700);border-color:var(--accent-800)}.button--dark{color:#fff;background:var(--gray-900);border-color:var(--gray-900)}.button--dark:hover{background:var(--gray-800);border-color:var(--gray-800)}.button--ghost{background:transparent;border-color:transparent;box-shadow:none}.button--ghost:hover{background:var(--surface-hover);border-color:transparent}.button--danger{color:#fff;background:var(--warn-600);border-color:var(--warn-700);box-shadow:0 1px 2px #9a232340}.button--danger:hover{background:var(--warn-700);border-color:var(--warn-700)}.button--compact{min-height:28px;padding:0 9px;font-size:var(--text-xs);border-radius:var(--radius-sm)}.button--large{min-height:42px;padding:0 18px;font-size:var(--text-md);border-radius:var(--radius-md)}.button:disabled,.tool-button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.4;transform:none}.icon-button{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;padding:0;color:var(--text-secondary);background:transparent;border-radius:var(--radius-sm);transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.icon-button:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.icon-button:active:not(:disabled){background:var(--surface-pressed);transform:scale(.94)}.icon-button--danger:hover:not(:disabled){color:var(--warn-600);background:var(--warn-50)}.text-button,.button-link{padding:2px 0;color:var(--accent-600);background:transparent;border:0;cursor:pointer;font-size:var(--text-xs);font-weight:600;text-decoration:none}.text-button:hover,.button-link:hover{color:var(--accent-700);text-decoration:underline;text-underline-offset:3px}.kbd,.tool-button kbd,.menu kbd,.project-menu__popover kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;color:var(--text-muted);background:var(--gray-50);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-xs);font-size:10px;font-weight:600;line-height:1}.field{display:grid;gap:6px;min-width:0}.field>span{color:var(--text-secondary);font-size:var(--text-xs);font-weight:550}.field input,.field select,.input{width:100%;min-height:34px;padding:0 10px;color:var(--text);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);font-size:var(--text-sm);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}select{cursor:pointer}.field select,select.input,.circuit-endpoint{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7482' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:15px}.field input:hover,.field select:hover,.input:hover{border-color:var(--gray-300)}.field input:focus,.field select:focus,.input:focus{border-color:var(--accent-500);box-shadow:var(--focus-ring);outline:none}.field input:disabled,.field select:disabled{color:var(--text-muted);background:var(--surface-sunken);cursor:not-allowed}input[type=number]{font-variant-numeric:tabular-nums}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent-600)}.field-error,.form-error{margin:0;color:var(--warn-600);font-size:var(--text-xs);font-weight:550;line-height:1.45}.field-label-with-warning{display:inline-flex;align-items:center;gap:4px;width:fit-content}.field-warning-icon{flex:none;color:var(--todo-500);cursor:help}.status-dot{flex:none;width:8px;height:8px;background:var(--todo-500);border-radius:50%;box-shadow:0 0 0 3px #e08a0b24}.status-dot--pass{background:var(--pass-500);box-shadow:0 0 0 3px #1f9d5524}.status-dot--warning,.status-dot--error{background:var(--warn-500);box-shadow:0 0 0 3px #d93a3a24}.status-pill{display:inline-flex;align-items:center;gap:5px;width:fit-content;height:22px;padding:0 8px;color:var(--todo-700);background:var(--todo-50);border:1px solid var(--todo-100);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600;line-height:1;text-transform:capitalize;white-space:nowrap}.status-pill:before{width:6px;height:6px;background:currentColor;border-radius:50%;content:"";opacity:.85}.status-pill--pass{color:var(--pass-700);background:var(--pass-50);border-color:var(--pass-100)}.status-pill--warning{color:var(--warn-700);background:var(--warn-50);border-color:var(--warn-100)}.count-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:var(--text-secondary);background:var(--gray-100);border-radius:var(--radius-full);font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:650;line-height:1}.menu,.project-menu__popover,.getting-started__menu-popover,.canvas-context-menu{display:grid;gap:1px;min-width:180px;padding:5px;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform-origin:top right;animation:pop-in var(--dur-base) var(--ease-out) both}.menu>button,.menu>a,.project-menu__popover>button,.project-menu__popover>a,.getting-started__menu-popover button,.canvas-context-menu button{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:34px;padding:0 8px 0 9px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:500;text-align:left;text-decoration:none;white-space:nowrap}.menu>button svg,.menu>a svg,.project-menu__popover>button svg,.project-menu__popover>a svg,.getting-started__menu-popover button svg{color:var(--text-muted)}.menu>button:hover,.menu>button:focus-visible,.menu>a:hover,.menu>a:focus-visible,.project-menu__popover>button:hover,.project-menu__popover>button:focus-visible,.project-menu__popover>a:hover,.project-menu__popover>a:focus-visible,.getting-started__menu-popover button:hover,.getting-started__menu-popover button:focus-visible,.canvas-context-menu button:hover,.canvas-context-menu button:focus-visible{background:var(--surface-hover);outline:none}.menu>button:hover svg,.project-menu__popover>button:hover svg,.project-menu__popover>a:hover svg{color:var(--text)}.menu>button:disabled,.project-menu__popover>button:disabled{cursor:not-allowed;opacity:.45}.menu__label,.project-menu__label{padding:8px 9px 4px;color:var(--text-muted);font-size:var(--text-2xs);font-weight:600}.menu__divider,.project-menu__divider{height:1px;margin:4px 6px;background:var(--border)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}}@keyframes pop-up{0%{opacity:0;transform:translateY(4px) scale(.97)}}@keyframes fade-in{0%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.tooltip{position:fixed;z-index:200;display:inline-flex;align-items:center;gap:8px;max-width:280px;padding:5px 8px;color:#fff;background:var(--gray-900);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:var(--text-xs);font-weight:550;line-height:1.25;pointer-events:none;white-space:nowrap;animation:tooltip-in .14s var(--ease-out) both}.tooltip--bottom{transform:translate(-50%);--tip-from: translate(-50%, -3px)}.tooltip--top{transform:translate(-50%,-100%);--tip-from: translate(-50%, calc(-100% + 3px) )}.tooltip--right{transform:translateY(-50%);--tip-from: translate(-3px, -50%)}.tooltip__keys{display:inline-flex;gap:3px}.tooltip kbd{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;color:#ffffffd1;background:#ffffff1f;border-radius:3px;font-size:10.5px;font-weight:600}@keyframes tooltip-in{0%{opacity:0;transform:var(--tip-from)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.app-shell{grid-template-rows:var(--topbar-height) minmax(0,1fr);background:var(--bg-app)}.project-bar{position:relative;z-index:30;display:flex;align-items:center;gap:8px;min-width:0;height:var(--topbar-height);padding:0 10px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar__lead,.topbar__trail{display:flex;align-items:center;gap:6px;min-width:0}.topbar__lead{flex:1 1 auto}.topbar__trail{flex:0 0 auto;justify-content:flex-end}.topbar__brand{display:grid;place-items:center;flex:none;width:32px;height:32px}.topbar__divider{flex:none;width:1px;height:20px;margin:0 2px;background:var(--border)}.topbar__billing{display:flex;flex:none}.topbar-crumb{display:flex;align-items:center;gap:2px;min-width:0}.topbar-crumb__item{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:280px;height:32px;padding:0 6px 0 8px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;font:inherit;white-space:nowrap;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.topbar-crumb__item:hover,.topbar-crumb__item[aria-expanded=true]{background:var(--surface-hover)}.topbar-crumb__item:active{transform:scale(.985)}.topbar-crumb__text{overflow:hidden;font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;text-overflow:ellipsis}.topbar-crumb__chevron{flex:none;color:var(--text-muted);transition:transform var(--dur-base) var(--ease-out)}.topbar-crumb__item[aria-expanded=true] .topbar-crumb__chevron{transform:rotate(180deg)}.topbar-crumb__slash{flex:none;color:var(--gray-300);font-size:var(--text-lg);-webkit-user-select:none;user-select:none}.topbar-crumb__sheet{display:flex;min-width:0}.topbar-crumb__input{width:auto;min-width:120px;max-width:280px;height:30px;padding:0 8px;color:var(--text);background:var(--surface);border:1px solid var(--accent-500);border-radius:var(--radius-md);box-shadow:var(--focus-ring);font:inherit;font-size:var(--text-md);font-weight:600;outline:none}.topbar-chip{display:inline-flex;align-items:center;gap:6px;flex:none;height:30px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;font:inherit;font-size:var(--text-xs);font-weight:600;white-space:nowrap;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.topbar-chip:active{transform:scale(.97)}.topbar-chip--todo{color:var(--todo-700);background:var(--todo-50);border-color:var(--todo-100)}.topbar-chip--todo:hover{background:var(--todo-100)}.topbar-chip--warn{color:var(--warn-700);background:var(--warn-50);border-color:var(--warn-100)}.topbar-chip--warn:hover{background:var(--warn-100)}.topbar-chip--pass{color:var(--pass-700);background:var(--pass-50);border-color:var(--pass-100)}.topbar-chip--pass:hover{background:var(--pass-100)}.topbar-issues__count{display:none}.storage-chip{position:relative;display:inline-flex;flex:none}.storage-chip__status{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px 0 10px;color:var(--text-secondary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;white-space:nowrap;pointer-events:none;transition:background-color var(--dur-fast) ease}.storage-chip__dot{flex:none;width:6px;height:6px;background:var(--pass-500);border-radius:50%}.storage-chip--todo .storage-chip__dot{background:var(--todo-500)}.storage-chip--warn .storage-chip__status{color:var(--warn-600)}.storage-chip--warn .storage-chip__dot{background:var(--warn-500)}.storage-chip__hint{margin-left:-4px;color:var(--text-muted)}.storage-chip__chevron{flex:none;color:var(--text-muted)}.storage-chip__trigger{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;background:transparent;border:0;border-radius:var(--radius-full);cursor:pointer}.storage-chip:hover .storage-chip__status,.storage-chip:has(.storage-chip__trigger[aria-expanded=true]) .storage-chip__status{background:var(--surface-hover)}.topbar-panels{display:inline-flex;flex:none;gap:1px;padding:2px;background:var(--gray-100);border-radius:var(--radius-md)}.topbar-panels__button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;padding:0 10px 0 8px;font-size:var(--text-sm);font-weight:550;white-space:nowrap;height:30px;color:var(--text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.topbar-panels__button:hover{color:var(--text)}.topbar-panels__button:active{transform:scale(.95)}.topbar-panels__button[aria-pressed=true]{color:var(--accent-700);background:var(--surface);box-shadow:0 1px 2px #161a2024}.topbar-panels-menu{position:relative;display:none}.export-split{position:relative;display:inline-flex;flex:none}.export-split__main{padding:0 10px 0 12px;border-radius:var(--radius-md) 0 0 var(--radius-md)}.export-split__caret{min-width:0;padding:0 7px;border-left-color:#ffffff47;border-radius:0 var(--radius-md) var(--radius-md) 0}.export-split__caret[aria-expanded=true] svg{transform:rotate(180deg)}.export-split__caret svg{transition:transform var(--dur-base) var(--ease-out)}.project-history{display:flex;align-items:center;gap:2px}.topbar-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:90;min-width:230px;max-width:calc(100vw - 16px);padding:5px;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform-origin:top right;animation:pop-in var(--dur-base) var(--ease-out) both}.topbar-menu{display:grid;gap:1px}.export-menu{width:290px}.topbar-menu__label{padding:7px 9px 3px;color:var(--text-muted);font-size:var(--text-2xs);font-weight:600}.topbar-menu__divider{height:1px;margin:4px 6px;background:var(--border)}.topbar-menu__item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:34px;padding:4px 8px 4px 9px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:500;text-align:left}.topbar-menu__item>svg{color:var(--text-muted)}.topbar-menu__item:hover,.topbar-menu__item:focus-visible{background:var(--surface-hover);outline:none}.topbar-menu__copy{display:grid;min-width:0}.topbar-menu__copy strong{font-weight:500}.topbar-menu__copy small{color:var(--text-muted);font-size:var(--text-2xs)}.topbar-menu__check{color:var(--accent-600);opacity:0}.topbar-menu__item[aria-checked=true] .topbar-menu__check{opacity:1}.topbar-menu__item--pro>svg{color:var(--spark-500)}.topbar-menu__item--pro strong{font-weight:600}.storage-popover{display:grid;gap:10px;width:300px;padding:14px}.storage-popover__row{display:flex;align-items:center;gap:10px}.storage-popover__row strong{display:block;font-size:var(--text-sm);font-weight:600}.storage-popover__row span{color:var(--text-muted);font-size:var(--text-xs)}.storage-popover__icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:var(--radius-md)}.storage-popover__icon--pass{color:var(--pass-600);background:var(--pass-50)}.storage-popover__icon--todo{color:var(--todo-600);background:var(--todo-50)}.storage-popover__icon--warn{color:var(--warn-600);background:var(--warn-50)}.storage-popover p{margin:0;color:var(--text-secondary);font-size:var(--text-xs);line-height:1.5}.storage-popover__actions{display:grid;gap:6px}.storage-popover__actions .button{width:100%}@media(max-width:1279px){.topbar-panels__label{display:none}.topbar-panels__button{padding:0}}@media(max-width:1360px){.storage-chip__hint{display:none}}@media(max-width:1180px){.billing-status__label{display:none}.billing-status--free{justify-content:center;width:30px;padding:0}.topbar-crumb__item{max-width:220px}}@media(max-width:1040px){.topbar-issues__label,.storage-chip__label{display:none}.topbar-issues__count{display:inline}.topbar-crumb__item,.sheet-switcher__trigger{max-width:180px}}@media(max-width:860px){.export-split__label,.topbar__brand{display:none}.export-split__main{padding:0 9px}.sheet-switcher__position{display:none}}@media(max-width:640px){.project-bar{gap:4px;padding:0 6px}.topbar__lead,.topbar__trail{gap:4px}.topbar__trail{gap:2px}.topbar__divider,.topbar-crumb__slash,.topbar-panels,.storage-chip__status,.storage-chip__trigger,.topbar-crumb__text{display:none}.top-bar-menu__compact-icon{display:block}.topbar-crumb__item{padding:0 3px}.topbar-crumb,.topbar-crumb__sheet,.sheet-switcher{flex:1 1 auto}.sheet-switcher{position:static}.sheet-switcher__trigger{width:100%;max-width:150px;padding:0 4px 0 6px;color:var(--text)}.sheet-switcher__trigger-copy strong{font-size:var(--text-sm);font-weight:600}.topbar-chip{padding:0 8px}.topbar-panels-menu{display:block}.project-history .icon-button{width:30px}.storage-chip{position:static}.sheet-switcher__popover,.top-bar-menu__popover,.topbar-popover{position:fixed;top:calc(var(--topbar-height) + 4px);right:8px;left:8px;width:auto;transform:none;transform-origin:top center;animation-name:pop-in}}@media(max-width:520px){.topbar__billing{display:none}}.workspace{--tool-rail-width: var(--rail-expanded);background:var(--bg-canvas)}.workspace.is-tool-rail-collapsed{--tool-rail-width: var(--rail-collapsed)}.workspace:is(.is-rail-expanding,.is-rail-collapsing){transition:grid-template-columns .2s var(--ease-in-out)}.tool-rail{position:relative;z-index:20;display:flex;flex-direction:column;min-width:0;padding:8px;background:var(--surface);border-right:1px solid var(--border);overflow-x:clip}.tool-rail__content{display:flex;flex:1 1 auto;flex-direction:column;gap:4px;min-height:0;overflow-x:clip;overflow-y:auto;scrollbar-width:none}.tool-group{display:grid;gap:2px;padding-bottom:6px}.tool-group+.tool-group{padding-top:6px;border-top:1px solid var(--border)}.tool-group__label{overflow:hidden;height:22px;padding:5px 10px 0;color:var(--text-faint);font-size:var(--text-2xs);font-weight:600;white-space:nowrap;transition:opacity var(--dur-fast) ease}.tool-button{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:36px;padding:0 8px 0 10px;color:var(--text-secondary);background:transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;text-align:left;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.tool-button>svg{justify-self:center}.tool-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-button:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.tool-button:active:not(:disabled){transform:scale(.97)}.tool-button.is-active{--icon-inverse: var(--accent-50);color:var(--accent-700);background:var(--accent-50);box-shadow:inset 0 0 0 1px var(--accent-100);font-weight:600}.tool-button.is-active:before{position:absolute;top:9px;bottom:9px;left:-8px;width:3px;background:var(--accent-500);border-radius:0 3px 3px 0;content:"";animation:fade-in var(--dur-base) var(--ease-out)}.tool-button kbd{opacity:.85}.tool-button.is-active kbd{color:var(--accent-600);background:var(--surface);border-color:var(--accent-100)}.tool-rail__toggle{flex:none;margin-top:6px;color:var(--text-muted)}.workspace:is(.is-rail-expanding,.is-rail-collapsing) .tool-button>span,.workspace:is(.is-rail-expanding,.is-rail-collapsing) .tool-button>kbd,.workspace:is(.is-rail-expanding,.is-rail-collapsing) .tool-group__label{transition:opacity .12s ease,transform .2s var(--ease-out)}.workspace.is-tool-rail-collapsed .tool-rail{padding-inline:8px}.workspace.is-tool-rail-collapsed .tool-button{grid-template-columns:1fr;justify-items:center;padding:0}.workspace.is-tool-rail-collapsed .tool-button>span,.workspace.is-tool-rail-collapsed .tool-button>kbd{position:absolute;width:0;overflow:hidden;opacity:0;transform:translate(-4px);pointer-events:none}.workspace.is-tool-rail-collapsed .tool-group__label{height:0;padding:0;opacity:0}.workspace.is-tool-rail-collapsed .tool-group+.tool-group{padding-top:6px}.app-loading{display:grid;place-content:center;justify-items:center;gap:14px;width:100%;height:100%;color:var(--text-secondary);background:var(--bg-app);font-size:var(--text-sm)}.app-loading strong{font-weight:550}.app-loading__mark{animation:loading-breathe 1.4s var(--ease-in-out) infinite alternate}.app-loading__bar{position:relative;width:120px;height:3px;overflow:hidden;background:var(--gray-150);border-radius:var(--radius-full)}.app-loading__bar:after{position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:var(--accent-500);border-radius:inherit;content:"";animation:loading-slide 1.1s var(--ease-in-out) infinite}@keyframes loading-breathe{to{transform:scale(.94);opacity:.8}}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}.error-toast{position:fixed;bottom:20px;left:50%;z-index:140;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,calc(100vw - 24px));padding:10px 10px 10px 12px;color:#fff;background:var(--gray-900);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);font-size:var(--text-sm);line-height:1.4;transform:translate(-50%);animation:toast-in var(--dur-slow) var(--ease-spring) both}.error-toast__icon{display:grid;place-items:center;flex:none;width:22px;height:22px;color:var(--gray-900);background:var(--spark-400);border-radius:50%;font-size:13px;font-weight:800}.error-toast button{flex:none;height:28px;padding:0 10px;color:#fff;background:#ffffff1a;border:0;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);font-weight:600}.error-toast button:hover{background:#ffffff2e}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px) scale(.96)}}@media(max-width:800px){.workspace.is-tool-rail-collapsed{--tool-rail-width: var(--rail-collapsed)}}.plan-viewport{position:relative;min-width:0;min-height:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background-color:var(--bg-canvas);background-image:radial-gradient(circle at 1px 1px,rgb(22 26 32 / .11) 1px,transparent 1.4px);background-size:20px 20px}.page-surface{position:absolute;top:0;left:0;transform-origin:0 0;background:#fff;box-shadow:0 0 0 1px #161a2012,0 2px 6px #161a200d,0 18px 48px #161a201f}.canvas-hud{position:absolute;top:12px;left:50%;z-index:12;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);min-height:44px;padding:6px 6px 6px 7px;color:var(--text);background:#fffffff5;border-radius:var(--radius-lg);box-shadow:var(--shadow-float);transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:hud-in .22s var(--ease-out) both}@keyframes hud-in{0%{opacity:0;transform:translate(-50%,-6px)}}.canvas-hud__icon{display:grid;place-items:center;flex:none;width:30px;height:30px;color:var(--accent-600);background:var(--accent-50);border-radius:var(--radius-md)}.canvas-hud__icon--done{color:var(--pass-600);background:var(--pass-50)}.canvas-hud__icon--live{color:#fff;background:var(--accent-600)}.canvas-hud__text{display:flex;align-items:baseline;gap:8px;min-width:0;padding-right:4px;font-size:var(--text-sm);white-space:nowrap}.canvas-hud__text strong{flex:none;font-weight:600}.canvas-hud__text span{min-width:0;overflow:hidden;color:var(--text-secondary);text-overflow:ellipsis}.canvas-hud__actions{display:flex;align-items:center;gap:4px;padding-left:6px;border-left:1px solid var(--border)}.canvas-hud__esc{display:grid;place-items:center;flex:none;height:30px;padding:0 6px;background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer}button.canvas-hud__esc:hover{background:var(--surface-hover)}.canvas-message,.canvas-notice{position:absolute;top:66px;left:50%;z-index:13;display:flex;align-items:center;gap:8px;padding:8px 12px;color:var(--text);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-float);font-size:var(--text-sm);transform:translate(-50%);white-space:nowrap;animation:hud-in .22s var(--ease-out) both}.canvas-message{top:12px}.canvas-message--error,.canvas-notice{color:#fff;background:var(--gray-900)}.canvas-stack-hint{position:absolute;z-index:13;display:flex;align-items:center;gap:5px;padding:4px 8px;color:var(--gray-0);background:color-mix(in srgb,var(--gray-900) 88%,transparent);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-size:var(--text-2xs);font-weight:500;white-space:nowrap;pointer-events:none;transform:translate(14px,18px);animation:stack-hint-in var(--dur-base) var(--ease-out) both}.canvas-stack-hint .kbd{color:inherit;background:color-mix(in srgb,var(--gray-0) 14%,transparent);border-color:color-mix(in srgb,var(--gray-0) 22%,transparent)}@keyframes stack-hint-in{0%{opacity:0;transform:translate(14px,14px)}}@media(prefers-reduced-motion:reduce){.canvas-stack-hint{animation:none}}.calibration-dialog{position:absolute;top:50%;left:50%;z-index:16;display:grid;gap:14px;width:min(380px,calc(100% - 32px));padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);transform:translate(-50%,-50%);animation:dialog-center-in .22s var(--ease-out) both}@keyframes dialog-center-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}}.calibration-dialog__heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}.calibration-dialog__icon{display:grid;place-items:center;width:36px;height:36px;color:var(--accent-600);background:var(--accent-50);border-radius:var(--radius-md)}.calibration-dialog__heading h2{font-size:var(--text-lg);font-weight:650}.calibration-dialog__heading p,.calibration-dialog__hint{margin-top:3px;color:var(--text-secondary);font-size:var(--text-xs);line-height:1.45}.calibration-dialog .field input{min-height:40px;font-size:var(--text-md)}.calibration-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.canvas-context-menu{position:fixed;z-index:80;min-width:190px;transform-origin:top left}.canvas-context-menu button{grid-template-columns:minmax(0,1fr)}.canvas-context-menu__title{padding:7px 9px 5px;overflow:hidden;color:var(--text-muted);font-size:var(--text-2xs);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.canvas-context-menu .canvas-context-menu__danger{color:var(--warn-600)}.canvas-context-menu .canvas-context-menu__danger:hover{background:var(--warn-50)}.canvas-status{position:absolute;right:12px;bottom:12px;z-index:14;display:flex;align-items:center;gap:2px;padding:3px;background:#fffffff5;border-radius:var(--radius-lg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.canvas-status__group{display:flex;align-items:center;gap:1px}.canvas-status__divider{width:1px;height:18px;margin:0 3px;background:var(--border)}.canvas-status__button{display:grid;place-items:center;width:30px;height:30px;padding:0;color:var(--text-secondary);background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;transition:color var(--dur-fast) ease,background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.canvas-status__button:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.canvas-status__button:active:not(:disabled){transform:scale(.92)}.canvas-status__button:disabled{cursor:default;opacity:.35}.canvas-zoom{position:relative}.canvas-zoom__trigger{min-width:52px;height:30px;padding:0 6px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xs);font-weight:600;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.canvas-zoom__trigger:hover,.canvas-zoom__trigger[aria-expanded=true]{background:var(--surface-hover)}.canvas-zoom__trigger:active{transform:scale(.96)}.canvas-zoom__popover{position:absolute;right:-34px;bottom:calc(100% + 10px);z-index:80;display:grid;gap:10px;width:220px;padding:12px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform-origin:bottom right;animation:pop-up var(--dur-base) var(--ease-out) both}.canvas-zoom__popover input[type=range]{width:100%;margin:0;cursor:pointer}.canvas-zoom__presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.canvas-zoom__presets button{height:28px;padding:0;color:var(--text-secondary);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-2xs);font-variant-numeric:tabular-nums;font-weight:600}.canvas-zoom__presets button:hover{color:var(--text);background:var(--surface-hover)}.canvas-zoom__presets button.is-active{color:var(--accent-700);background:var(--accent-50);border-color:var(--accent-200)}.onboarding-card{position:absolute;top:50%;left:50%;z-index:6;display:grid;justify-items:center;gap:10px;width:min(420px,calc(100% - 48px));padding:26px 28px 22px;text-align:center;background:#fffffff7;border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transform:translate(-50%,-50%);pointer-events:none;animation:dialog-center-in .32s var(--ease-out) both}.onboarding-card button{pointer-events:auto}.onboarding-card__art{margin-bottom:6px}.onboarding-card__art svg{display:block}.onboarding-card__run{fill:none;stroke:var(--markup-raceway);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220;animation:draw-run 1.2s .2s var(--ease-out) forwards}.onboarding-card__run--branch{animation-delay:.65s}@keyframes draw-run{to{stroke-dashoffset:0}}.onboarding-card h2{font-size:var(--text-xl);font-weight:650;letter-spacing:-.02em}.onboarding-card p{max-width:340px;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.onboarding-card__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}.onboarding-card__actions .kbd{margin-left:2px}.onboarding-card__demo{margin-top:2px}@keyframes ring-in{0%{opacity:0;transform:scale(.7)}}@media(min-width:1200px){.workspace:has(.getting-started) .onboarding-card{left:calc(50% - 150px)}.workspace:has(.getting-started) .canvas-hud{left:calc(50% - 156px);max-width:calc(100% - 360px)}}@media(max-width:900px){.tool-hint .canvas-hud__text span,.draft-actions .canvas-hud__text span,.scale-actions .canvas-hud__text strong{display:none}}@media(max-width:640px){.canvas-hud{top:8px;min-height:40px}.canvas-hud__actions .button{padding:0 7px}.canvas-status{right:8px;bottom:8px}.canvas-status>.canvas-status__group:first-child,.canvas-status__divider{display:none}.canvas-zoom__popover{right:-3px}.onboarding-card{padding:20px 18px 18px}.onboarding-card__art svg{width:180px;height:auto}}.plan-viewport *,.drafting-layer text{user-select:none;-webkit-user-select:none}.plan-viewport.is-selecting.is-hover-move .drafting-layer{cursor:move}.plan-viewport.is-selecting.is-hover-pick .drafting-layer{cursor:pointer}.plan-viewport.is-crosshair.is-hover-pick .drafting-layer,.plan-viewport.is-crosshair.is-hover-move .drafting-layer{cursor:copy}.plan-symbol__shape{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.plan-symbol__shape[data-paint=knockout]{fill:var(--markup-paper)}.plan-symbol__shape[data-paint=fill]{fill:currentColor;stroke:none}.plan-symbol__shape[data-paint=paper]{fill:var(--markup-paper);stroke:none}.plan-symbol__shape[data-weight=heavy]{stroke-width:var(--plan-stroke-heavy, 1.5px)}.plan-symbol__shape[data-weight=medium]{stroke-width:var(--plan-stroke-medium, 1.25px)}.plan-symbol__shape[data-weight=fine]{stroke-width:var(--plan-stroke-fine, .8px)}.plan-symbol-icon{display:block;overflow:visible}.junction-box-symbol{display:block;overflow:visible;color:var(--markup-junction)}.plan-node{color:var(--markup-junction)}.plan-node--panel{color:var(--markup-panel)}.plan-node--junction{color:var(--markup-junction)}.plan-node--device{color:var(--accent-600)}.node-hit-target{fill:transparent;stroke:none;pointer-events:all}.device-plan-marker{color:var(--accent-600);opacity:.3;transition:opacity var(--dur-fast) ease}.device-plan-marker__ring{fill:none;stroke:currentColor;stroke-width:1.4px}.device-plan-marker__dot{fill:currentColor}.plan-node--device:hover .device-plan-marker,.plan-node--device.is-hovered .device-plan-marker,.plan-node--device.is-selected .device-plan-marker{opacity:.8}.plan-node.is-route-active .device-plan-marker{color:var(--pass-600);opacity:.8}.node-label{fill:var(--markup-label);paint-order:stroke;stroke:var(--markup-label-halo);stroke-width:3px;stroke-linejoin:round;font-family:var(--font-sans);font-size:calc(var(--canvas-label-size) * var(--canvas-text-scale));font-weight:600;letter-spacing:.005em;pointer-events:none}.node-label--major{font-size:calc(var(--canvas-label-major-size) * var(--canvas-text-scale));font-weight:700}.node-label-backing{fill:var(--markup-paper);opacity:.92;pointer-events:none}.plan-node.is-route-muted .node-label-backing{opacity:.6}.node-label-leader{stroke:var(--markup-leader);stroke-width:.75px}.drafting-layer [data-label-hidden]{visibility:hidden;pointer-events:none}.raceway-label-bg{fill:var(--markup-paper);stroke:var(--markup-label-border, var(--gray-300));stroke-width:.75px;pointer-events:all}.raceway-label-hit.is-hovered .raceway-label-bg{stroke:var(--markup-hover)}.raceway-label-hit.is-selected .raceway-label-bg{fill:var(--accent-25);stroke:var(--markup-selection);stroke-width:1.25px}.raceway-label{fill:var(--markup-label);font-family:var(--font-sans);font-size:calc(var(--canvas-raceway-label-size) * var(--canvas-text-scale));font-variant-numeric:tabular-nums;font-weight:650;pointer-events:none}.selection-ring{fill:color-mix(in srgb,var(--markup-selection) 10%,transparent);stroke:var(--markup-selection);stroke-width:2px;pointer-events:none}.selection-ring-halo{fill:none;stroke:var(--markup-paper);stroke-width:5px;pointer-events:none}.hover-outline{fill:color-mix(in srgb,var(--markup-hover) 7%,transparent);stroke:var(--markup-hover);stroke-width:1.25px;pointer-events:none}.selection-marquee{fill:color-mix(in srgb,var(--accent-600) 10%,transparent);stroke:var(--accent-600);stroke-width:1.25px;stroke-dasharray:5 4}.relationship-node-highlight{fill:color-mix(in srgb,var(--accent-600) 4%,transparent);stroke:color-mix(in srgb,var(--accent-600) 26%,transparent);stroke-width:4px;pointer-events:none}.plan-node.is-selected .relationship-node-highlight{opacity:.35}.route-editor-node-focus{fill:color-mix(in srgb,var(--pass-500) 14%,transparent);stroke:var(--pass-600);stroke-width:4px;pointer-events:none}.plan-node.is-route-muted{opacity:.28}.plan-node.is-route-muted .node-label{fill:var(--gray-500)}.plan-node.is-route-active.plan-node--device{color:var(--pass-600)}.plan-node.is-route-active.plan-node--panel .plan-symbol__shape[data-paint=knockout]{fill:var(--accent-50)}.node-issue-marker__shape,.raceway-issue-marker__shape{fill:var(--warn-600);stroke:var(--markup-paper);stroke-width:1.2px;stroke-linejoin:round}.node-issue-marker--warning .node-issue-marker__shape,.node-issue-marker--incomplete .node-issue-marker__shape,.raceway-issue-marker--warning .raceway-issue-marker__shape,.raceway-issue-marker--incomplete .raceway-issue-marker__shape{fill:var(--todo-500)}.node-issue-marker__glyph,.raceway-issue-marker__glyph{fill:none;stroke:var(--markup-paper);stroke-width:1.4px;stroke-linecap:round}.raceway-line,.conduit-preview{fill:none;stroke:var(--raceway-ink, var(--markup-raceway));stroke-width:calc(2.2px * var(--raceway-visual-weight, 1));opacity:var(--raceway-visual-opacity, 1);stroke-linejoin:round;stroke-linecap:round}.raceway-line{pointer-events:none}.raceway--warning .raceway-line{stroke:var(--raceway-ink, var(--warn-600))}.raceway--incomplete .raceway-line{stroke:var(--raceway-ink, var(--todo-500));stroke-dasharray:6 4}.raceway.is-selected .raceway-line{stroke:var(--raceway-ink, var(--accent-700));stroke-width:calc(3px * var(--raceway-visual-weight, 1));stroke-dasharray:none}.raceway-homerun-arrow{fill:var(--raceway-ink, var(--markup-raceway));opacity:var(--raceway-visual-opacity, 1)}.raceway--warning .raceway-homerun-arrow{fill:var(--raceway-ink, var(--warn-600))}.raceway--incomplete .raceway-homerun-arrow{fill:var(--raceway-ink, var(--todo-500))}.raceway-selection-casing,.raceway-hover-casing{fill:none;stroke-linecap:round;stroke-linejoin:round}.raceway-selection-casing{stroke:var(--markup-paper);stroke-width:7px}.raceway-selection-outline{fill:none;stroke:var(--markup-selection);stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;opacity:.45;pointer-events:none}.raceway-hover-casing{stroke:color-mix(in srgb,var(--markup-hover) 18%,transparent);stroke-width:9px}.relationship-raceway-highlight{fill:none;stroke:color-mix(in srgb,var(--accent-600) 34%,transparent);stroke-width:12px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.raceway-hit{fill:none;stroke:transparent;stroke-width:14px;pointer-events:stroke}.raceway.is-route-editing .raceway-line{stroke:var(--gray-400);stroke-width:2px;opacity:.72}.raceway.is-route-editing.is-route-selected .raceway-line{stroke:var(--accent-700);stroke-width:3.2px;opacity:1}.raceway.is-route-hovered .raceway-line{stroke:var(--accent-600);stroke-width:3.6px;opacity:1}.raceway.is-route-removal-impact .raceway-line{stroke:var(--warn-600);stroke-width:3.8px;opacity:1}.route-editor-raceway-highlight,.route-editor-raceway-hover,.route-editor-raceway-removal{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.route-editor-raceway-highlight{stroke:color-mix(in srgb,var(--pass-500) 34%,transparent);stroke-width:11px}.route-editor-raceway-hover{stroke:color-mix(in srgb,var(--accent-600) 24%,transparent);stroke-width:13px}.route-editor-raceway-removal{stroke:color-mix(in srgb,var(--warn-600) 38%,transparent);stroke-width:14px}.placement-ghost{opacity:.55}.plan-ghost--panel{color:var(--markup-panel)}.plan-ghost--junction{color:var(--markup-junction)}.conduit-preview{stroke:var(--accent-700);stroke-dasharray:8 5;pointer-events:none}.conduit-approach-marker{fill:none;stroke:var(--accent-700);stroke-width:3px;stroke-linecap:round;opacity:.9}.calibration-markup line{stroke:var(--accent-700);stroke-width:2px;stroke-dasharray:6 4}.calibration-markup circle{fill:var(--markup-paper);stroke:var(--accent-700);stroke-width:1.5px}.calibration-markup rect{fill:color-mix(in srgb,var(--markup-paper) 96%,transparent);stroke:var(--accent-700);stroke-width:.75px}.calibration-markup text{fill:var(--accent-700);font-family:var(--font-sans);font-size:calc(var(--canvas-raceway-label-size) * var(--canvas-text-scale));font-weight:700}.vertex-handle,.segment-handle{vector-effect:non-scaling-stroke}.vertex-handle.is-control{fill:var(--markup-paper);stroke:var(--accent-700);stroke-width:1.5px;cursor:move}.segment-handle{fill:var(--accent-600);stroke:var(--markup-paper);stroke-width:1.25px;cursor:move}.segment-handle[data-segment-axis=horizontal]{cursor:ns-resize}.segment-handle[data-segment-axis=vertical]{cursor:ew-resize}.canvas-legend{position:absolute;top:12px;left:12px;z-index:11;display:grid;gap:2px;max-width:min(260px,calc(100% - 24px));max-height:calc(100% - 140px);margin:0;padding:8px 10px;overflow:auto;list-style:none;color:var(--text);background:color-mix(in srgb,var(--surface) 96%,transparent);border-radius:var(--radius-md);box-shadow:var(--shadow-float);font-size:var(--text-2xs);pointer-events:auto}.canvas-legend__title{color:var(--text-secondary);font-weight:600}.canvas-legend li{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}.canvas-legend li span:last-child{overflow:hidden;text-overflow:ellipsis}.canvas-legend__swatch{flex:none;width:16px;height:3px;border-radius:2px;background:var(--legend-ink)}.validation-summary{position:absolute;bottom:58px;left:calc(var(--tool-rail-width) + 14px);z-index:15;width:min(360px,calc(100% - var(--tool-rail-width) - var(--inspector-width) - 230px));min-width:272px;overflow:hidden;background:#fffffff7;border:0;border-radius:var(--radius-lg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:float-up .26s var(--ease-out) both}@keyframes float-up{0%{opacity:0;transform:translateY(8px)}}.workspace:is(.is-rail-expanding,.is-rail-collapsing) .validation-summary{transition:left .2s var(--ease-in-out)}.validation-summary__headline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:8px 8px 8px 10px}.validation-summary__icon{display:grid;place-items:center;width:32px;height:32px;color:var(--warn-600);background:var(--warn-50);border-radius:var(--radius-md)}.validation-summary.is-todo .validation-summary__icon{color:var(--todo-600);background:var(--todo-50)}.validation-summary--ready .validation-summary__icon{color:var(--pass-600);background:var(--pass-50)}.validation-summary__headline-copy{display:grid;gap:1px;min-width:0}.validation-summary__headline-copy strong{font-size:var(--text-sm);font-weight:650}.validation-summary__headline-copy>span{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.validation-summary__actions{display:flex;align-items:center;gap:2px}.validation-summary__view-issues{gap:4px;white-space:nowrap}.validation-summary__view-issues svg{color:var(--text-muted)}.validation-summary__close{width:28px;height:28px}.validation-summary__preference{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 12px 10px 52px;border-top:1px solid var(--border);cursor:pointer;animation:list-reveal .2s var(--ease-out) both}.validation-summary__preference input{flex:none;width:14px;height:14px;margin:2px 0 0}.validation-summary__preference-copy{display:grid;gap:1px;font-size:var(--text-xs)}.validation-summary__preference-copy span{color:var(--text-secondary)}.validation-summary__preference-copy small{color:var(--text-muted);font-size:var(--text-2xs)}@keyframes list-reveal{0%{opacity:0;transform:translateY(-4px)}}.getting-started,.help-chip{position:absolute;top:12px;right:calc(var(--inspector-width) + 12px);z-index:24}.getting-started-enter{animation:getting-started-enter .26s var(--ease-out) both}@keyframes getting-started-enter{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.help-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 8px;color:var(--text);background:#fffffff7;border:0;border-radius:var(--radius-full);box-shadow:var(--shadow-float);cursor:pointer;font-size:var(--text-sm);font-weight:600;transform-origin:top right;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) ease}.help-chip:hover{box-shadow:var(--shadow-lg)}.help-chip:active{transform:scale(.97)}.help-chip__ring{width:20px;height:20px;background:radial-gradient(closest-side,white 66%,transparent 68% 100%),conic-gradient(var(--accent-500) var(--progress, 0%),var(--gray-150) 0);border-radius:50%}.help-chip__count{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.getting-started{display:grid;gap:10px;width:min(300px,calc(100vw - 32px));padding:14px 12px 12px;background:#fffffffa;border-radius:var(--radius-lg);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-origin:top right}.getting-started__header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-left:4px}.getting-started__header>div:first-child{display:grid;gap:1px}.getting-started__header strong{font-size:var(--text-md);font-weight:650}.getting-started__header span{color:var(--text-muted);font-size:var(--text-xs)}.getting-started__header-actions{display:flex;gap:2px;margin:-6px -4px 0 0}.getting-started__header-actions .icon-button{width:28px;height:28px}.getting-started__menu{position:relative}.getting-started__menu-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:2;min-width:190px}.getting-started__progress{height:4px;margin:0 4px;overflow:hidden;background:var(--gray-100);border-radius:var(--radius-full)}.getting-started__progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-500),var(--accent-400));border-radius:inherit;transition:width .42s var(--ease-out)}.getting-started__steps{display:grid;gap:1px;margin:0;padding:0;list-style:none;counter-reset:none}.getting-started__steps li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;column-gap:10px;min-height:32px;padding:2px 2px 2px 6px;color:var(--text);border-radius:var(--radius-md);font-size:var(--text-sm);transition:background-color var(--dur-fast) ease}.getting-started__steps li:hover{background:var(--surface-hover)}.getting-started__marker{display:grid;place-items:center;width:20px;height:20px;color:var(--text-muted);border:1.5px solid var(--gray-200);border-radius:50%;font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:650}.getting-started__steps li.is-complete{min-height:26px;color:var(--text-muted);font-size:var(--text-xs)}.getting-started__steps li.is-complete .getting-started__marker{width:16px;height:16px;justify-self:center}.getting-started__steps li.is-complete .getting-started__label{text-decoration:line-through;text-decoration-color:var(--gray-300)}.getting-started__steps li.is-complete .getting-started__marker{color:#fff;background:var(--pass-500);border-color:var(--pass-500);animation:ring-in .26s var(--ease-spring) both}.getting-started__steps li.is-next{padding-top:7px;padding-bottom:8px;background:var(--accent-25);box-shadow:inset 0 0 0 1px var(--accent-100)}.getting-started__steps li.is-next .getting-started__marker{color:#fff;background:var(--accent-600);border-color:var(--accent-600)}.getting-started__steps li.is-next .getting-started__label{font-weight:600}.getting-started__hint{grid-column:2 / -1;margin-top:1px;padding-right:8px;color:var(--text-secondary);font-size:var(--text-xs);line-height:1.45}.getting-started__show{display:grid;place-items:center;width:28px;height:28px;padding:0;color:var(--text-faint);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) ease,color var(--dur-fast) ease,background-color var(--dur-fast) ease}.getting-started__steps li:hover .getting-started__show,.getting-started__steps li.is-next .getting-started__show,.getting-started__show:focus-visible{opacity:1}.getting-started__show:hover{color:var(--accent-600);background:var(--accent-50)}@media(hover:none){.getting-started__show{opacity:1}}.getting-started__actions{display:flex;gap:6px;padding:2px 2px 0}.guided-tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none}.control-hint{animation:fade-in .18s var(--ease-out) both}.guided-tour__spotlight{position:fixed;max-width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:var(--radius-lg);outline:2px solid var(--accent-500);outline-offset:0;box-shadow:0 0 0 200vmax #161a2057;pointer-events:none;transition:top .28s var(--ease-out),left .28s var(--ease-out),width .28s var(--ease-out),height .28s var(--ease-out)}.guided-tour__card{position:fixed;display:grid;gap:8px;width:min(320px,calc(100vw - 32px));padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);pointer-events:auto;animation:pop-in var(--dur-base) var(--ease-out) both}.guided-tour__card.is-locating{visibility:hidden}.guided-tour__card .eyebrow{color:var(--accent-600)}.guided-tour__card h2{font-size:var(--text-lg);font-weight:650}.guided-tour__card p{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.guided-tour__missing{padding:8px 10px;color:var(--todo-700)!important;background:var(--todo-50);border-radius:var(--radius-md);font-size:var(--text-xs)!important}.guided-tour__progress{display:flex;gap:4px;margin:2px 0 4px}.guided-tour__progress span{flex:1;height:3px;background:var(--gray-150);border-radius:var(--radius-full);transition:background-color var(--dur-base) ease}.guided-tour__progress span.is-done{background:var(--accent-500)}.guided-tour__actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px}.guided-tour__actions>:first-child{margin-right:auto}@media(max-width:800px){.getting-started,.help-chip{right:12px}.workspace:has(.inspector.is-open) .help-chip,.workspace:has(.inspector.is-open) .getting-started{display:none}.validation-summary{width:min(340px,calc(100% - var(--tool-rail-width) - 140px))}}@media(max-width:640px){.validation-summary{bottom:100px;left:calc(var(--tool-rail-width) + 8px);right:8px;width:auto;min-width:0}.validation-summary__preference{padding-left:12px}.getting-started{top:8px;right:8px;width:min(300px,calc(100vw - var(--tool-rail-width) - 16px));max-height:calc(100% - 140px);overflow-y:auto}.help-chip{top:8px;right:8px}}.markup-style-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.markup-style-option{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;font:inherit;font-size:var(--text-xs);font-weight:550;text-align:left;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.markup-style-option:hover{border-color:var(--gray-300)}.markup-style-option[aria-checked=true]{border-color:var(--accent-500);box-shadow:var(--focus-ring)}.markup-style-option__swatch{flex:none;width:18px;height:18px;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:linear-gradient(135deg,var(--markup-panel) 0 50%,var(--markup-raceway) 50% 100%)}.markup-style-option__swatch[data-preset=markup-red]{background:var(--warn-500)}.markup-style-option__swatch[data-preset=circuit-color]{background:conic-gradient(var(--accent-500) 0 25%,var(--todo-500) 0 50%,var(--pass-500) 0 75%,var(--warn-500) 0)}.markup-style-option__swatch[data-preset=light-background]{background:linear-gradient(135deg,var(--gray-150) 0 50%,var(--markup-raceway) 50% 100%)}.markup-style-ink{display:flex;align-items:center;gap:10px;min-height:34px;font-size:var(--text-sm)}.markup-style-ink>span:first-child{flex:1}.markup-style-ink input[type=color]{width:34px;height:26px;padding:0 2px;background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);cursor:pointer}.markup-style-ink__hint{color:var(--text-muted);font-size:var(--text-xs)}.markup-style-settings .device-symbol-slider{grid-template-columns:96px minmax(54px,1fr) 52px 24px}.inspector .panel-heading{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:60px;padding:12px 12px 12px 16px;background:#fffffff0;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-heading__icon{display:grid;place-items:center;width:34px;height:34px;color:var(--text-secondary);background:var(--gray-75);border-radius:var(--radius-md)}.panel-heading__icon--panel{--icon-inverse: var(--gray-100);color:var(--markup-panel);background:var(--gray-100)}.panel-heading__icon--junction,.panel-heading__icon--raceway,.panel-heading__icon--circuit{color:var(--accent-600);background:var(--accent-50)}.panel-heading__icon--device{color:var(--markup-endpoint);background:var(--todo-50)}.panel-heading__copy{display:grid;gap:1px;min-width:0}.inspector .panel-heading .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector .panel-heading h2{margin:0;overflow:hidden;font-size:var(--text-lg);font-weight:650;letter-spacing:-.015em;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.inspector-empty{display:grid;gap:4px;padding:16px 16px 24px;animation:inspector-swap .2s var(--ease-out) both}@keyframes inspector-swap{0%{opacity:0;transform:translateY(4px)}}.inspector-empty__lead{padding:2px 2px 12px;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.inspector-empty__section{display:grid;gap:10px;padding:14px 0;border-top:1px solid var(--border)}.inspector-empty__section h3{overflow:hidden;font-size:var(--text-sm);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.sheet-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.sheet-stats div{display:grid;gap:1px;padding:8px 10px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}.sheet-stats dt{color:var(--text-muted);font-size:var(--text-2xs);font-weight:550}.sheet-stats dd{margin:0;font-size:var(--text-lg);font-weight:650;letter-spacing:-.02em}.sheet-stats .has-issues{background:var(--todo-50);border-color:var(--todo-100)}.sheet-stats .has-issues dd{color:var(--todo-700)}.inspector-tips{display:grid;gap:2px;margin:0;padding:0;list-style:none}.inspector-tips li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;color:var(--text-secondary);font-size:var(--text-xs)}.inspector-tips li span:last-child{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);text-align:right}:where(.inspector) :where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(.inspector) :where(select),.distance-input__control input{min-height:34px;padding:0 10px;color:var(--text);background-color:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);font-size:var(--text-sm);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}:where(.inspector) :where(input:not([type=checkbox]):not([type=radio]):not([type=range])):hover,:where(.inspector) :where(select):hover,.distance-input__control input:hover{border-color:var(--gray-300)}:where(.inspector) :where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus,:where(.inspector) :where(select):focus,.distance-input__control input:focus{border-color:var(--accent-500);box-shadow:var(--focus-ring);outline:none}:where(.inspector) :where(select){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7482' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:15px}.distance-input__unit{color:var(--text-muted);font-size:var(--text-xs)}.distance-input__label{color:var(--text-secondary);font-size:var(--text-xs);font-weight:550}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading-row h3{margin:0}.detail-grid>div:last-child:nth-child(odd){grid-column:span 2}.panel-heading__subtitle{overflow:hidden;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.inspector-summary{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:var(--space-2) var(--space-4) var(--space-3);list-style:none;background:var(--gray-25);border-bottom:1px solid var(--border)}.inspector-summary__chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 var(--space-2);color:var(--text-secondary);background:var(--gray-100);border-radius:var(--radius-full);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.inspector-summary__chip:not(.inspector-summary__chip--neutral):before{width:6px;height:6px;background:currentColor;border-radius:50%;content:""}.inspector-summary__chip--pass{color:var(--pass-700);background:var(--pass-50)}.inspector-summary__chip--warning{color:var(--warn-700);background:var(--warn-50)}.inspector-summary__chip--incomplete{color:var(--todo-700);background:var(--todo-50)}.electrical-section .property-section__body{gap:var(--space-3)}.relationship-group{display:grid;gap:6px}.relationship-group__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.relationship-group h4{margin:0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.relationship-group__head .text-button{font-size:var(--text-xs)}.relationship-list{display:grid;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.relationship-list>*+*{border-top:1px solid var(--border)}.relationship-link{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:7px var(--space-2) 7px var(--space-3);color:var(--text);text-align:left;background:var(--surface);border:0;cursor:pointer;transition:background-color var(--dur-fast) ease}.property-section__body>.relationship-link{border:1px solid var(--border);border-radius:var(--radius-md)}.relationship-link:hover,.relationship-link:focus-visible{background:var(--accent-25);outline:none}.relationship-link:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-500)}.relationship-link>svg{flex:none;color:var(--text-faint)}.relationship-link__body{display:grid;flex:1;gap:1px;min-width:0}.relationship-link__body strong{overflow:hidden;font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.relationship-link__body small{color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;line-height:1.4}.relationship-badge{display:inline-grid;flex:none;place-items:center;width:24px;height:22px}.relationship-badge--circuit{color:var(--text);background:var(--gray-100);border-radius:var(--radius-xs);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;font-weight:700}.relationship-badge--panel:after,.relationship-badge--junction:after,.relationship-badge--device:after,.relationship-badge--raceway:after{content:""}.relationship-badge--panel:after{width:11px;height:11px;background:var(--markup-panel);border-radius:2px}.relationship-badge--junction:after{width:11px;height:11px;border:2px solid var(--markup-junction);border-radius:2px}.relationship-badge--device:after{width:11px;height:11px;border:2.5px solid var(--markup-endpoint);border-radius:50%}.relationship-badge--raceway:after{width:14px;height:3px;background:var(--markup-raceway);border-radius:var(--radius-full);transform:rotate(-35deg)}.relationship-link .status-dot{width:7px;height:7px}.status-dot--warning{background:var(--warn-500)}.status-dot--incomplete{background:var(--todo-500)}.relationship-note,.relationship-empty{margin:0;padding:var(--space-2) var(--space-3);color:var(--text-muted);background:var(--gray-50);border-radius:var(--radius-md);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;line-height:1.5}.relationship-empty{background:transparent;border:1px dashed var(--border-strong)}.relationship-pair{display:flex;flex-wrap:wrap;gap:6px}.compact-link{display:grid;flex:1 1 120px;gap:1px;min-width:0;min-height:40px;padding:6px var(--space-3);color:var(--text);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.compact-link:hover,.compact-link:focus-visible{background:var(--accent-25);outline:none}.compact-link strong{overflow:hidden;font-size:var(--text-xs);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.compact-link span{color:var(--text-muted);font-size:var(--text-2xs)}.inspector-kpis,.inspector-result,.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md)}.inspector-result{grid-template-columns:repeat(3,minmax(0,1fr))}.inspector-kpis>div,.inspector-result>div,.detail-grid>div{display:grid;align-content:start;gap:1px;min-width:0;padding:var(--space-2) var(--space-3);background:var(--surface)}.inspector-kpis dt,.inspector-result dt,.detail-grid dt{color:var(--text-muted);font-size:var(--text-2xs);font-weight:550}.inspector-kpis dd,.inspector-result dd{margin:0;font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.detail-grid dd{margin:0;overflow-wrap:anywhere;font-size:var(--text-xs);line-height:1.35}.inspector-kpis dd.is-todo{color:var(--todo-700)}.inspector-result small{color:var(--text-muted);font-size:var(--text-2xs)}.inspector-result .is-warn dd{color:var(--warn-700)}.route-trail{position:relative;display:grid;margin:0;padding:var(--space-1) 0;list-style:none}.route-trail:before{position:absolute;top:18px;bottom:18px;left:11px;width:2px;background:var(--accent-200);border-radius:var(--radius-full);content:""}.route-trail__step{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:var(--space-2)}.route-trail__mark{position:relative;z-index:1;justify-self:center;width:12px;height:12px;background:var(--surface)}.route-trail__step--panel .route-trail__mark{background:var(--markup-panel);border-radius:2px}.route-trail__step--junction .route-trail__mark{border:2px solid var(--markup-junction);border-radius:2px}.route-trail__step--device .route-trail__mark{border:2.5px solid var(--markup-endpoint);border-radius:50%}.route-trail__step--raceway .route-trail__mark{width:4px;height:18px;background:var(--markup-raceway);border-radius:var(--radius-full)}.route-trail__step>button,.route-trail__static{display:flex;align-items:baseline;gap:var(--space-2);min-width:0;min-height:34px;padding:6px var(--space-2);color:var(--text);text-align:left;background:transparent;border:0;border-radius:var(--radius-sm)}.route-trail__step>button{cursor:pointer}.route-trail__step>button:hover,.route-trail__step>button:focus-visible{background:var(--accent-25);outline:none}.route-trail__step>button:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-500)}.route-trail__step strong{overflow:hidden;font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.route-trail__step small{flex:1;color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;white-space:nowrap}.route-trail__step--raceway strong{color:var(--accent-700);font-size:var(--text-xs)}.route-trail__step>button svg{flex:none;align-self:center;color:var(--text-faint)}.route-links{display:flex;flex-wrap:wrap;gap:var(--space-1)}.route-link{position:relative;display:grid;min-width:58px;padding:6px 18px 6px var(--space-2);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.route-link:hover,.route-link:focus-visible{background:var(--accent-25);outline:none}.route-link span{color:var(--accent-700);font-size:var(--text-xs);font-weight:650}.route-link small{color:var(--text-muted);font-size:var(--text-2xs)}.route-link svg{position:absolute;top:50%;right:3px;color:var(--text-faint);transform:translateY(-50%)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#161a206b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .2s var(--ease-out) both}.modal{position:relative;display:grid;gap:18px;width:min(460px,100%);max-height:calc(100vh - 40px);padding:24px;overflow-y:auto;color:var(--text);background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px #161a200f;animation:modal-in .28s var(--ease-spring) both}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.97)}}.modal-close{position:absolute;top:12px;right:12px;z-index:2}.modal h2{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.025em;line-height:1.2}.modal .eyebrow{margin-bottom:6px;color:var(--accent-600)}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal__intro{display:grid;gap:8px;padding-right:28px}.modal-copy{margin:6px 0 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.modal__intro .modal-copy{margin-top:0}.modal-icon{display:grid;place-items:center;width:40px;height:40px;color:var(--accent-600);background:var(--accent-50);border-radius:var(--radius-md)}.modal-icon--todo{color:var(--todo-600);background:var(--todo-50)}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.modal-actions--quiet{margin-top:-6px}.field-stack{display:grid;gap:6px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:550}.field-stack input{min-height:40px;padding:0 12px;color:var(--text);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);font-size:var(--text-md)}.field-stack input:focus{border-color:var(--accent-500);box-shadow:var(--focus-ring);outline:none}.field-stack input:disabled{color:var(--text-muted);background:var(--surface-sunken)}.field-stack small{color:var(--text-muted);font-size:var(--text-2xs);font-weight:450;line-height:1.4}.welcome-modal{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0;width:min(840px,100%);padding:0;overflow:hidden}.welcome-modal__hero{position:relative;display:grid;align-content:start;gap:14px;padding:32px 30px;overflow:hidden;color:#fff;background:radial-gradient(120% 80% at 0% 0%,rgb(95 134 255 / .32),transparent 60%),radial-gradient(90% 70% at 100% 100%,rgb(255 201 40 / .14),transparent 60%),var(--gray-900)}.welcome-modal__hero:after{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgb(255 255 255 / .05) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .05) 1px,transparent 1px);background-size:22px 22px;content:"";-webkit-mask-image:linear-gradient(160deg,black,transparent 75%);mask-image:linear-gradient(160deg,black,transparent 75%);pointer-events:none}.welcome-modal__hero>*{position:relative;z-index:1}.welcome-modal__hero .brand-mark rect{fill:#ffffff14}.welcome-modal__hero h2{margin-top:8px;font-size:28px;letter-spacing:-.03em;line-height:1.15}.welcome-modal__hero .modal-copy{margin:0;color:#ffffffb8}.welcome-modal__highlights{display:grid;gap:10px;margin:10px 0 0;padding:0;list-style:none}.welcome-modal__highlights li{position:relative;padding-left:26px;color:#ffffffe6;font-size:var(--text-sm);line-height:1.45}.welcome-modal__highlights li:before{position:absolute;top:1px;left:0;width:17px;height:17px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161a20' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat,var(--spark-400);border-radius:50%;content:""}.welcome-modal__choices{display:grid;align-content:center;gap:8px;padding:32px 28px 24px}.welcome-modal__choices-label{margin-bottom:4px;color:var(--text-secondary);font-size:var(--text-sm);font-weight:600}.welcome-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:68px;padding:12px 14px;color:var(--text);text-align:left;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.welcome-choice:hover,.welcome-choice:focus-visible{border-color:var(--accent-300);box-shadow:0 0 0 3px #3b66f51a;outline:none}.welcome-choice:active{transform:scale(.99)}.welcome-choice--primary{background:var(--accent-25);border-color:var(--accent-200)}.welcome-choice__icon,.welcome-choice__art{display:grid;place-items:center;width:44px;height:44px;color:var(--text-secondary);background:var(--gray-75);border-radius:var(--radius-md)}.welcome-choice__art{width:64px;height:48px;background:#fff;box-shadow:inset 0 0 0 1px var(--accent-100)}.welcome-choice__copy{display:grid;gap:2px;min-width:0}.welcome-choice__copy strong{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--text-md);font-weight:650}.welcome-choice__copy strong em{padding:2px 7px;color:var(--accent-700);background:var(--accent-100);border-radius:var(--radius-full);font-size:var(--text-2xs);font-style:normal;font-weight:650}.welcome-choice__copy>span{color:var(--text-secondary);font-size:var(--text-xs);line-height:1.45}.welcome-choice__arrow{color:var(--text-faint);transition:transform var(--dur-fast) var(--ease-out),color var(--dur-fast) ease}.welcome-choice:hover .welcome-choice__arrow{color:var(--accent-600);transform:translate(3px)}.welcome-modal__privacy{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--text-muted);font-size:var(--text-xs)}.replace-workspace-modal{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:14px;width:min(500px,100%)}.replace-workspace-modal h2{font-size:var(--text-xl)}.replace-workspace-modal p{margin-top:6px;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.replace-workspace-modal .modal-actions{grid-column:1 / -1}.billing-modal:not(.upgrade-modal) h2{font-size:var(--text-xl)}.shortcuts-dialog{width:min(720px,100%)}.shortcuts-dialog h2{font-size:var(--text-xl)}.shortcuts-dialog__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}.shortcuts-dialog__grid h3{margin-bottom:6px;color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.shortcuts-dialog__grid dl{display:grid;margin:0}.shortcuts-dialog__grid dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;border-bottom:1px solid var(--border)}.shortcuts-dialog__grid dt{font-size:var(--text-sm)}.shortcuts-dialog__grid dd{display:flex;align-items:center;gap:4px;margin:0}.shortcut-gesture{color:var(--text-muted);font-size:var(--text-xs)}.billing-page{display:grid;place-items:center;align-content:center;gap:16px;width:100%;min-height:100%;padding:24px;text-align:center;background:radial-gradient(60% 50% at 50% 0%,var(--accent-50),transparent 70%),var(--bg-app)}.billing-page h1{font-size:var(--text-3xl);font-weight:700;letter-spacing:-.03em}.billing-page p{max-width:520px;color:var(--text-secondary);font-size:var(--text-md);line-height:1.55}@media(max-width:760px){.welcome-modal{grid-template-columns:1fr;width:min(480px,100%)}.welcome-modal__hero{gap:10px;padding:24px 22px 22px}.welcome-modal__hero h2{font-size:22px}.welcome-modal__highlights{display:none}.welcome-modal__choices{padding:18px}.welcome-modal .modal-close{color:#fffc}.welcome-modal .modal-close:hover{color:#fff;background:#ffffff1f}}@media(max-width:560px){.modal-backdrop{align-items:end;padding:8px}.modal{max-height:calc(100vh - 16px);padding:20px 18px 18px;border-radius:var(--radius-xl)}.welcome-modal{padding:0}.shortcuts-dialog__grid{grid-template-columns:1fr}.welcome-choice__art{display:none}}@media(max-width:520px){.electrical-schedule__closed-count{display:none}.electrical-schedule__closed-main{min-width:0}.electrical-schedule__closed-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.drawer-backdrop{position:fixed;inset:var(--topbar-height) 0 0;z-index:60;isolation:isolate;animation:drawer-backdrop-in var(--dur-base) var(--ease-out) both}.drawer-backdrop:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--scrim);content:""}.drawer-backdrop.is-closing{pointer-events:none;animation:drawer-backdrop-out .14s var(--ease-out) both}@keyframes drawer-backdrop-in{0%{opacity:0}}@keyframes drawer-backdrop-out{to{opacity:0}}.schedule-drawer{position:absolute;top:0;right:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);width:min(1240px,100%);height:100%;color:var(--text);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-drawer);animation:schedule-drawer-in .3s var(--ease-spring) both}.drawer-backdrop.is-closing .schedule-drawer{animation:schedule-drawer-out .14s var(--ease-out) both}@keyframes schedule-drawer-in{0%{transform:translate(36px);opacity:.4}}@keyframes schedule-drawer-out{to{transform:translate(24px);opacity:0}}.schedule-header{display:flex;align-items:center;gap:var(--space-4);min-width:0;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}.schedule-header__title{display:grid;gap:1px;flex:none}.schedule-header__title .eyebrow{color:var(--text-muted)}.schedule-header h2{margin:0;font-size:var(--text-lg);font-weight:700;letter-spacing:-.015em}.schedule-panel-selector{flex:1 1 auto;min-width:0}.schedule-panel-selector__empty{color:var(--text-muted);font-size:var(--text-xs)}.panel-tabs{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.panel-tabs button{display:inline-flex;flex:none;align-items:center;gap:var(--space-2);height:34px;padding:0 var(--space-3) 0 var(--space-2);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.panel-tabs button:hover{border-color:var(--gray-300)}.panel-tabs button strong{font-size:var(--text-sm);font-weight:650}.panel-tabs button span:not(.panel-tabs__glyph){color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.panel-tabs button.is-active{background:var(--accent-25);border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-100)}.panel-tabs button.is-active strong{color:var(--accent-800)}.panel-tabs__glyph{width:14px;height:14px;background:var(--markup-panel);border-radius:3px}.schedule-header__close{flex:none}.segmented{display:inline-flex;gap:2px;padding:2px;background:var(--gray-100);border-radius:var(--radius-md)}.segmented>button,.segmented>label{position:relative;display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;gap:6px;min-width:36px;height:28px;padding:0 var(--space-3);color:var(--text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.segmented svg{flex:none}.segmented>button:hover,.segmented>label:hover{color:var(--text)}.segmented>.is-active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.segmented>label>input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.segmented>label:has(input:focus-visible){box-shadow:var(--focus-ring)}.schedule-view-switch{flex:none}.circuit-register-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-5);background:var(--gray-25);border-bottom:1px solid var(--border)}.circuit-search{display:flex;flex:1 1 200px;align-items:center;gap:6px;max-width:300px;height:32px;padding:0 var(--space-3);color:var(--text-muted);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.circuit-search:focus-within{border-color:var(--accent-500);box-shadow:var(--focus-ring)}.circuit-search input{flex:1;min-width:0;color:var(--text);background:transparent;border:0;outline:none;font-size:var(--text-sm)}.circuit-filters{display:inline-flex;gap:2px;padding:2px;background:var(--gray-100);border-radius:var(--radius-md)}.circuit-filters button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--space-3);color:var(--text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:550;white-space:nowrap;cursor:pointer}.circuit-filters button:hover{color:var(--text)}.circuit-filters button.is-active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:650}.circuit-filter-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:var(--text-secondary);background:var(--gray-150);border-radius:var(--radius-full);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.circuit-filters button.is-active .circuit-filter-count{color:var(--accent-700);background:var(--accent-50)}.add-circuit{margin-left:auto}.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);min-height:49px;padding:var(--space-2) var(--space-5);color:var(--gray-0);background:var(--gray-900);animation:bulk-bar-in var(--dur-base) var(--ease-out) both}@keyframes bulk-bar-in{0%{opacity:0;transform:translateY(-4px)}}.bulk-bar__count{margin-right:var(--space-1);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.bulk-bar__field{display:inline-flex;align-items:center;gap:6px;color:var(--gray-300);font-size:var(--text-xs)}.bulk-bar__field select{max-width:140px;height:28px;padding:0 var(--space-2);color:var(--gray-0);background:var(--gray-800);border:1px solid var(--gray-700);border-radius:var(--radius-sm);font-size:var(--text-xs)}.bulk-bar__field select:focus-visible{border-color:var(--accent-400);outline:none;box-shadow:var(--focus-ring)}.bulk-bar__spacer{flex:1}.bulk-bar .bulk-bar__delete{color:var(--gray-0);background:transparent;border-color:var(--gray-600)}.bulk-bar .bulk-bar__delete:hover{color:var(--gray-0);background:var(--warn-600);border-color:var(--warn-600)}.bulk-bar .bulk-bar__clear{color:var(--gray-300)}.bulk-bar .bulk-bar__clear:hover:not(:disabled){color:var(--gray-0);background:var(--gray-800)}.schedule-body{display:grid;grid-template-columns:minmax(0,1fr);min-height:0}.schedule-drawer.is-split .schedule-body{grid-template-columns:minmax(0,1fr) clamp(320px,34%,380px)}.schedule-main{display:grid;min-width:0;min-height:0}.schedule-detail{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--surface)}.schedule-drawer.is-split .schedule-detail{border-left:1px solid var(--border)}.schedule-drawer.is-stacked .schedule-detail,.schedule-body.is-detail-only .schedule-main{display:none}.schedule-drawer.is-stacked .schedule-body.is-detail-only .schedule-detail{display:block;animation:detail-in var(--dur-base) var(--ease-out) both}@keyframes detail-in{0%{opacity:0;transform:translate(12px)}}.circuit-list{--circuit-columns: 22px 54px minmax(140px, 1fr) 50px 54px 54px 76px 64px 92px 104px 30px;container-type:inline-size;align-content:start;min-height:0;overflow:auto;overscroll-behavior:contain}.circuit-table-head,.circuit-row{display:grid;grid-template-columns:var(--circuit-columns);align-items:center;column-gap:6px;min-width:0;padding:0 var(--space-2) 0 var(--space-4)}.circuit-table-head{position:sticky;top:0;z-index:2;height:32px;color:var(--text-muted);background:var(--gray-50);border-bottom:1px solid var(--border-strong);font-size:var(--text-2xs);font-weight:600;white-space:nowrap}.circuit-table-head .circuit-col-num{padding-right:var(--space-2);text-align:right}.circuit-table-head>:nth-child(3),.circuit-table-head .circuit-col-poles{padding-left:var(--space-2)}.circuit-table-head .circuit-col-vd{padding-left:36px}.circuit-row{position:relative;min-height:42px;background:var(--surface);border-bottom:1px solid var(--border);transition:background-color var(--dur-fast) ease}.circuit-row:hover{background:var(--gray-25)}.circuit-row.is-selected{background:var(--accent-25);box-shadow:inset 3px 0 0 var(--accent-500)}.circuit-row.is-checked{background:var(--accent-50)}.circuit-row.is-focused{animation:circuit-row-focus 1.2s var(--ease-out) both}@keyframes circuit-row-focus{0%{background:var(--accent-100)}}.circuit-row.is-dragging{opacity:.45}.circuit-row.is-drop-target{box-shadow:inset 0 2px 0 var(--accent-500)}.circuit-row>[role=cell]{min-width:0}.circuit-check{width:15px;height:15px;margin:0;accent-color:var(--accent-500);cursor:pointer}.circuit-order{display:flex;align-items:center;gap:2px;min-width:0}.circuit-order__drag,.circuit-order__arrows button{display:grid;place-items:center;padding:0;color:var(--text-faint);background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer}.circuit-order__drag{width:16px;height:24px;cursor:grab;opacity:0;transition:opacity var(--dur-fast) ease}.circuit-order__number{min-width:22px;color:var(--text-secondary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.circuit-order__arrows{display:grid;opacity:0;transition:opacity var(--dur-fast) ease}.circuit-order__arrows button{width:16px;height:13px}.circuit-order__drag:hover,.circuit-order__arrows button:hover:not(:disabled){color:var(--text);background:var(--surface-pressed)}.circuit-order__arrows button:disabled{opacity:.35;cursor:default}.circuit-row:hover .circuit-order__drag,.circuit-row:hover .circuit-order__arrows,.circuit-order:focus-within .circuit-order__drag,.circuit-order:focus-within .circuit-order__arrows{opacity:1}.circuit-cell{width:100%;min-width:0;height:30px;padding:0 var(--space-2);color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.circuit-cell:hover:not(:disabled){background:var(--surface);border-color:var(--border-strong)}.circuit-cell:focus{background:var(--surface);border-color:var(--accent-500);outline:none;box-shadow:var(--focus-ring)}.circuit-cell--number{text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.circuit-cell--number::-webkit-inner-spin-button,.circuit-cell--number::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.circuit-cell--select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--space-1);background-image:none;font-variant-numeric:tabular-nums;cursor:pointer}.circuit-cell--select:disabled{color:var(--text-muted);cursor:not-allowed}.circuit-name{font-weight:550;text-overflow:ellipsis}.circuit-row__summary{display:none;padding:0 var(--space-2);color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.circuit-col-num{text-align:right}.circuit-col-wire,.circuit-col-vd,.circuit-route{font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.circuit-col-wire small{color:var(--text-muted);font-size:var(--text-2xs)}.circuit-muted{color:var(--text-faint)}.circuit-col-vd{display:flex;align-items:center;gap:6px}.circuit-vd-meter{flex:none;width:30px;height:4px;overflow:hidden;background:var(--gray-150);border-radius:var(--radius-full)}.circuit-vd-meter i{display:block;height:100%;background:var(--pass-500);border-radius:inherit}.circuit-vd-meter.is-near i{background:var(--todo-500)}.circuit-vd-meter.is-over i{background:var(--warn-500)}.circuit-col-status{display:flex;align-items:center;gap:4px;overflow:hidden}.status-pill--incomplete{color:var(--todo-700);background:var(--todo-50);border-color:var(--todo-100)}.circuit-conflict-mark{display:inline-grid;place-items:center;color:var(--warn-600)}.circuit-col-open .icon-button{width:30px;height:30px;color:var(--text-muted)}.circuit-row.is-expanded .circuit-col-open .icon-button{color:var(--accent-600);background:var(--accent-50)}@container (max-width: 840px){.circuit-table-head,.circuit-row{--circuit-columns: 22px 54px minmax(140px, 1fr) 50px 54px 54px 76px 92px 104px 30px}.circuit-col-route{display:none}}@container (max-width: 760px){.circuit-table-head,.circuit-row{--circuit-columns: 22px 54px minmax(140px, 1fr) 50px 54px 54px 92px 104px 30px}.circuit-col-wire{display:none}}@container (max-width: 660px){.circuit-table-head,.circuit-row{--circuit-columns: 22px 54px minmax(0, 1fr) 54px 88px 104px 30px}.circuit-col-poles,.circuit-col-load{display:none}.circuit-row{min-height:52px}.circuit-row__summary{display:block}}@container (max-width: 520px){.circuit-table-head,.circuit-row{--circuit-columns: 22px 50px minmax(0, 1fr) 54px 26px 30px}.circuit-table-head,.circuit-row{padding:0 var(--space-2) 0 var(--space-3)}.circuit-col-vd{display:none}.circuit-col-status .status-pill{width:10px;height:10px;padding:0;overflow:hidden;border:0;font-size:0}.circuit-col-status .status-pill:before{flex:none;width:10px;height:10px;opacity:1}.circuit-conflict-mark{display:none}}@container (max-width: 380px){.circuit-table-head,.circuit-row{--circuit-columns: 20px 40px minmax(0, 1fr) 50px 22px 30px}.circuit-order__drag{display:none}}.empty-schedule{padding:var(--space-8) var(--space-5);color:var(--text-muted);font-size:var(--text-sm);text-align:center}.empty-schedule p{max-width:360px;margin:0 auto}.circuit-detail{display:grid;align-content:start}.circuit-detail__head{display:grid;gap:6px;padding:var(--space-4) var(--space-5) var(--space-3)}.circuit-detail__toolbar{display:flex;align-items:center;gap:var(--space-1);min-width:0}.circuit-detail__toolbar .icon-button{width:30px;height:30px}.circuit-detail__back{margin-right:var(--space-1)}.circuit-detail__number{display:inline-grid;place-items:center;min-width:32px;height:26px;margin-right:var(--space-1);padding:0 var(--space-2);color:var(--text);background:var(--gray-100);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;font-weight:700}.circuit-detail__spacer{flex:1}.circuit-detail__name{width:calc(100% + var(--space-4));min-width:0;margin:2px calc(var(--space-2) * -1) 0;padding:3px var(--space-2);color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-lg);font-weight:650;letter-spacing:-.01em}.circuit-detail__name:hover{border-color:var(--border-strong)}.circuit-detail__name:focus{background:var(--surface);border-color:var(--accent-500);outline:none;box-shadow:var(--focus-ring)}.circuit-detail__meta{margin:0;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.circuit-detail__conflict{margin:var(--space-1) 0 0}.circuit-result{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;background:var(--border);border-block:1px solid var(--border)}.circuit-result>div{display:grid;align-content:start;gap:2px;min-width:0;padding:var(--space-3) var(--space-4);background:var(--surface-sunken)}.circuit-result dt{color:var(--text-muted);font-size:var(--text-2xs);font-weight:550}.circuit-result dd{margin:0;color:var(--text);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.circuit-result small{color:var(--text-muted);font-size:var(--text-2xs);line-height:1.35}.circuit-result .is-warn dd{color:var(--warn-700)}.circuit-detail__section{display:grid;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.circuit-detail__section>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.circuit-detail__section h3{margin:0;font-size:var(--text-sm);font-weight:650}.circuit-detail__count{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.circuit-detail__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.circuit-field{min-width:0}.circuit-field input,.circuit-field select{min-height:32px}fieldset.circuit-field{display:grid;gap:6px;margin:0;padding:0;border:0}fieldset.circuit-field legend{float:left;width:100%;margin-bottom:6px;padding:0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:550}fieldset.circuit-field legend+*{clear:both}.circuit-poles .segmented{display:flex;height:32px}.circuit-poles .segmented>label{height:28px}.circuit-poles:disabled .segmented{opacity:.55}.circuit-poles:disabled .segmented>label{cursor:not-allowed}.input-unit{position:relative;display:block}.input-unit input{padding-right:34px}.input-unit em{position:absolute;top:50%;right:10px;color:var(--text-muted);font-size:var(--text-xs);font-style:normal;pointer-events:none;transform:translateY(-50%)}.circuit-switch{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.circuit-switch input{position:absolute;width:32px;height:18px;margin:0;opacity:0;cursor:pointer}.circuit-switch__track{position:relative;flex:none;width:32px;height:18px;margin-top:1px;background:var(--gray-300);border-radius:var(--radius-full);transition:background-color var(--dur-fast) ease}.circuit-switch__track:after{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--gray-0);border-radius:50%;box-shadow:var(--shadow-xs);content:"";transition:transform var(--dur-base) var(--ease-spring)}.circuit-switch input:checked+.circuit-switch__track{background:var(--accent-500)}.circuit-switch input:checked+.circuit-switch__track:after{transform:translate(14px)}.circuit-switch input:focus-visible+.circuit-switch__track{box-shadow:var(--focus-ring)}.circuit-switch__copy{display:grid;gap:1px}.circuit-switch__copy strong{font-size:var(--text-sm);font-weight:550}.circuit-switch__copy small{color:var(--text-muted);font-size:var(--text-xs)}.circuit-detail__note{margin:0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.45}.circuit-detail__subhead{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.circuit-detail__trace{padding:var(--space-3) var(--space-5) var(--space-6)}.circuit-detail__trace summary{color:var(--accent-700);font-size:var(--text-xs);font-weight:550;cursor:pointer}.circuit-detail__trace ol{display:grid;gap:4px;margin:var(--space-3) 0 0;padding-left:var(--space-5);color:var(--text-secondary);font-size:var(--text-2xs);line-height:1.45}.circuit-devices{display:grid;gap:var(--space-2)}.circuit-devices__hint{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.circuit-devices__list{display:grid;margin:0;padding:0;list-style:none;border:1px solid var(--border);border-radius:var(--radius-md)}.circuit-devices__list li{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3)}.circuit-devices__list li+li{border-top:1px solid var(--border)}.circuit-devices__glyph{flex:none;width:12px;height:12px;border:2.5px solid var(--markup-endpoint);border-radius:50%}.circuit-devices__copy{display:grid;flex:1;min-width:0}.circuit-devices__copy strong{overflow:hidden;font-size:var(--text-sm);font-weight:550;text-overflow:ellipsis;white-space:nowrap}.circuit-devices__copy small{color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.circuit-devices__list li.is-unreached small{color:var(--warn-700)}.circuit-devices__list .icon-button{width:28px;height:28px;color:var(--text-muted)}.device-picker{position:relative}.device-picker__field{display:flex;align-items:center;gap:var(--space-2);height:34px;padding:0 var(--space-1) 0 var(--space-3);color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md);cursor:text;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.device-picker__field:hover{border-color:var(--gray-300)}.device-picker.is-open .device-picker__field,.device-picker__field:focus-within{border-style:solid;border-color:var(--accent-500);box-shadow:var(--focus-ring)}.device-picker__field input{flex:1;min-width:0;color:var(--text);background:transparent;border:0;outline:none;font-size:var(--text-sm)}.device-picker__chevron{display:grid;place-items:center;width:28px;height:28px;color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer}.device-picker__chevron:hover{color:var(--text);background:var(--surface-hover)}.device-picker__chevron svg{transition:transform var(--dur-fast) ease}.device-picker.is-open .device-picker__chevron svg{transform:rotate(180deg)}.device-picker__popover{position:absolute;top:calc(100% + 6px);right:0;left:0;z-index:10;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:device-picker-in var(--dur-fast) var(--ease-out) both}@keyframes device-picker-in{0%{opacity:0;transform:translateY(-4px)}}.device-picker__popover-heading,.device-picker__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);color:var(--text-muted);font-size:var(--text-xs)}.device-picker__popover-heading{border-bottom:1px solid var(--border)}.device-picker__footer{border-top:1px solid var(--border);font-size:var(--text-2xs)}.device-picker__filter{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);cursor:pointer}.device-picker__filter input{margin:0;accent-color:var(--accent-500)}.device-picker__list{display:grid;max-height:240px;overflow-y:auto;padding:var(--space-1)}.device-picker__option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:7px var(--space-2);color:var(--text);text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer}.device-picker__option:hover,.device-picker__option.is-highlighted,.device-picker__option:focus-visible{background:var(--accent-25)}.device-picker__check{display:grid;flex:none;place-items:center;width:16px;height:16px;color:var(--gray-0);border:1.5px solid var(--border-strong);border-radius:var(--radius-xs)}.device-picker__check.is-selected{background:var(--accent-500);border-color:var(--accent-500)}.device-picker__option-copy{display:grid;min-width:0}.device-picker__option-copy strong{overflow:hidden;font-size:var(--text-sm);font-weight:550;text-overflow:ellipsis;white-space:nowrap}.device-picker__option-copy small{color:var(--text-muted);font-size:var(--text-2xs)}.device-picker__option-copy small.is-elsewhere{color:var(--todo-700)}.device-picker__empty{padding:var(--space-4) var(--space-3);color:var(--text-muted);font-size:var(--text-xs);text-align:center}.circuit-callout{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.45}.circuit-callout svg{margin-top:1px}.circuit-callout--todo{color:var(--todo-700);background:var(--todo-50);border-color:var(--todo-100)}.circuit-callout--warn{color:var(--warn-700);background:var(--warn-50);border-color:var(--warn-100)}.circuit-callout__actions{display:flex;flex-wrap:wrap;grid-column:2;gap:6px;margin-top:var(--space-1)}.circuit-route-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);color:var(--accent-600);background:var(--surface-sunken);border-radius:var(--radius-md)}.circuit-route-card__copy{display:grid;gap:2px;min-width:0;color:var(--text)}.circuit-route-card__copy strong{font-size:var(--text-sm);font-weight:600}.circuit-route-card__copy small{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1.45}.circuit-route-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.panel-overview{display:grid;gap:var(--space-5);padding:var(--space-5)}.panel-overview__head{display:flex;align-items:center;gap:var(--space-3)}.panel-overview__glyph{flex:none;width:28px;height:28px;background:var(--markup-panel);border-radius:var(--radius-sm)}.panel-overview__head h3{margin:0;font-size:var(--text-lg);font-weight:700}.panel-overview__head p{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.panel-overview__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md)}.panel-overview__stats>div{padding:var(--space-3);background:var(--surface)}.panel-overview__stats dt{color:var(--text-muted);font-size:var(--text-2xs)}.panel-overview__stats dd{margin:2px 0 0;font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:650}.panel-overview__stats dd.is-warn{color:var(--warn-700)}.panel-overview__section h4{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:650}.panel-overview__issues,.panel-overview__review{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.panel-overview__issues li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--space-2);color:var(--warn-700);font-size:var(--text-xs);line-height:1.45}.panel-overview__review button{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);color:var(--text);text-align:left;background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer}.panel-overview__review button:hover{background:var(--surface-hover)}.panel-overview__number{display:inline-grid;flex:none;place-items:center;min-width:28px;height:24px;background:var(--gray-100);border-radius:var(--radius-sm);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:700}.panel-overview__name{display:grid;min-width:0}.panel-overview__name strong{font-size:var(--text-sm);font-weight:550}.panel-overview__name small{color:var(--text-muted);font-size:var(--text-2xs)}.panel-overview__hint{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.phase-balance__bars{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.phase-balance__bars li{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:var(--space-3)}.phase-balance__phase{color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.phase-balance__track{height:8px;overflow:hidden;background:var(--gray-100);border-radius:var(--radius-full)}.phase-balance__track i{display:block;height:100%;background:var(--accent-500);border-radius:inherit;transition:width var(--dur-slow) var(--ease-out)}.phase-balance__value{min-width:112px;font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.phase-balance__value small{margin-left:6px;color:var(--text-muted);font-weight:500}.phase-balance__note{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-2xs);line-height:1.45}.schedule-panelboard{container-type:inline-size;display:grid;align-content:start;gap:var(--space-3);min-height:0;padding:var(--space-4) var(--space-5) var(--space-5);overflow:auto;overscroll-behavior:contain}.schedule-panelboard__conflicts{margin:0}.panelboard{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);overflow:hidden;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md)}.panelboard__head,.panelboard-slot{display:grid;grid-template-columns:26px minmax(0,1fr) 62px 46px;grid-template-areas:"num name brkr load";align-items:center;column-gap:var(--space-2);padding:0 var(--space-3)}.panelboard__head--right,.panelboard-slot--right{grid-template-columns:46px 62px minmax(0,1fr) 26px;grid-template-areas:"load brkr name num";text-align:right}.panelboard__head{grid-row:1;height:30px;color:var(--text-muted);background:var(--gray-50);border-bottom:1px solid var(--border-strong);font-size:var(--text-2xs);font-weight:600}.panelboard__head--left{grid-column:1}.panelboard__head--right{grid-column:3}.panelboard__head--phase{display:grid;grid-column:2;place-items:center;padding:0;border-inline:1px solid var(--border-strong)}.panelboard__head--left>:nth-child(1),.panelboard__head--right>:nth-child(4){grid-area:num}.panelboard__head--left>:nth-child(2),.panelboard__head--right>:nth-child(3){grid-area:name}.panelboard__head--left>:nth-child(3),.panelboard__head--right>:nth-child(2){grid-area:brkr}.panelboard__head--left>:nth-child(4),.panelboard__head--right>:nth-child(1){grid-area:load}.panelboard__phase{display:grid;place-items:center;color:var(--text-muted);background:var(--gray-50);border-inline:1px solid var(--border-strong);border-bottom:1px solid var(--border);font-size:var(--text-2xs);font-weight:700}.panelboard-slot{position:relative;width:100%;padding-right:var(--space-4);min-width:0;min-height:40px;color:var(--text);text-align:left;background:var(--surface);border:0;border-bottom:1px solid var(--border);font:inherit;cursor:pointer;transition:background-color var(--dur-fast) ease}.panelboard-slot--right{padding-right:var(--space-3);padding-left:var(--space-4);text-align:right}.panelboard-slot:hover:not(:disabled){background:var(--accent-25)}.panelboard-slot:focus-visible{z-index:1;outline:none;box-shadow:inset 0 0 0 2px var(--accent-500)}.panelboard-slot__number{grid-area:num;color:var(--text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:700}.panelboard-slot__name{display:grid;grid-area:name;min-width:0}.panelboard-slot__name strong{overflow:hidden;font-size:var(--text-sm);font-weight:550;text-overflow:ellipsis;white-space:nowrap}.panelboard-slot__name small{color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.panelboard-slot__breaker,.panelboard-slot__load{color:var(--text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.panelboard-slot__breaker{grid-area:brkr}.panelboard-slot__load{grid-area:load}.panelboard-slot__status{position:absolute;top:50%;width:6px;height:6px;background:var(--todo-500);border-radius:50%;transform:translateY(-50%)}.panelboard-slot--left .panelboard-slot__status{right:4px}.panelboard-slot--right .panelboard-slot__status{left:4px}.panelboard-slot--pass .panelboard-slot__status{background:var(--pass-500)}.panelboard-slot--warning .panelboard-slot__status{background:var(--warn-500)}.panelboard-slot__conflict{position:absolute;top:4px;color:var(--warn-600)}.panelboard-slot--left .panelboard-slot__conflict{right:14px}.panelboard-slot--right .panelboard-slot__conflict{left:14px}.panelboard-slot.is-selected{background:var(--accent-50)}.panelboard-slot--left.is-selected{box-shadow:inset 3px 0 0 var(--accent-500)}.panelboard-slot--right.is-selected{box-shadow:inset -3px 0 0 var(--accent-500)}.panelboard-slot.is-conflict{background:var(--warn-50)}.panelboard-slot.is-dimmed{opacity:.4}.panelboard-slot--space .panelboard-slot__number{color:var(--text-faint)}.panelboard-slot__space-label{color:var(--text-faint);font-size:var(--text-sm)}.panelboard-slot__add{display:none;align-items:center;gap:4px;color:var(--accent-600);font-size:var(--text-xs);font-weight:600}.panelboard-slot--right .panelboard-slot__add{justify-content:flex-end}.panelboard-slot--space:hover:not(:disabled) .panelboard-slot__space-label,.panelboard-slot--space:focus-visible .panelboard-slot__space-label{display:none}.panelboard-slot--space:hover:not(:disabled) .panelboard-slot__add,.panelboard-slot--space:focus-visible .panelboard-slot__add{display:inline-flex}.panelboard-slot--space:disabled{cursor:default}.panelboard-unplaced{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warn-50);border:1px solid var(--warn-100);border-radius:var(--radius-md)}.panelboard-unplaced h4{margin:0;color:var(--warn-700);font-size:var(--text-sm);font-weight:650}.panelboard-unplaced p{margin:2px 0 var(--space-2);color:var(--warn-700);font-size:var(--text-xs)}.panelboard-unplaced ul{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.panelboard-unplaced button{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);color:var(--text);background:var(--surface);border:1px solid var(--warn-100);border-radius:var(--radius-md);cursor:pointer}.panelboard-unplaced button:hover,.panelboard-unplaced button.is-selected{border-color:var(--warn-500)}.panelboard-unplaced strong{font-size:var(--text-sm);font-weight:550}.panelboard-unplaced small{color:var(--text-muted);font-size:var(--text-xs)}.schedule-panelboard__balance{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md)}.schedule-panelboard__balance h3{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:650}@container (max-width: 560px){.schedule-panelboard{padding:var(--space-3)}.panelboard{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.panelboard__head,.panelboard-slot{grid-template-columns:20px minmax(0,1fr) 40px;grid-template-areas:"num name brkr";column-gap:4px;padding:0 var(--space-2)}.panelboard__head--right,.panelboard-slot--right{grid-template-columns:40px minmax(0,1fr) 20px;grid-template-areas:"brkr name num"}.panelboard-slot__load,.panelboard__head--left>:nth-child(4),.panelboard__head--right>:nth-child(1){display:none}.panelboard-slot__name strong,.panelboard-slot__space-label{font-size:var(--text-xs)}.panelboard-slot__breaker{font-size:var(--text-2xs)}}.schedule-footer{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-5);color:var(--text-secondary);background:var(--gray-25);border-top:1px solid var(--border);font-size:var(--text-xs)}.schedule-footer>svg{flex:none;color:var(--todo-500)}.schedule-footer__keys{display:inline-flex;align-items:center;gap:3px;margin-left:auto;color:var(--text-muted);font-size:var(--text-2xs);white-space:nowrap}.schedule-drawer.is-stacked .schedule-header{flex-wrap:wrap;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4)}.schedule-drawer.is-stacked .schedule-header__title{flex:1 1 calc(100% - 56px)}.schedule-drawer.is-stacked .schedule-header__close{order:1}.schedule-drawer.is-stacked .schedule-panel-selector{order:2;flex:1 1 160px}.schedule-drawer.is-stacked .schedule-view-switch{order:3}.schedule-drawer.is-stacked .circuit-register-tools,.schedule-drawer.is-stacked .bulk-bar,.schedule-drawer.is-stacked .schedule-footer{padding-inline:var(--space-4)}.schedule-drawer.is-stacked .schedule-footer__keys{display:none}@media(min-width:1100px){.schedule-drawer{width:min(1240px,calc(100% - 120px))}}@media(max-width:640px){.schedule-drawer{width:100%;border-left:0}.circuit-register-tools{gap:var(--space-2)}.circuit-search{flex-basis:100%;max-width:none}.schedule-view-switch>button{padding:0 var(--space-2)}.circuit-filters{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.circuit-filters button{flex:1 0 auto;padding:0 var(--space-2)}.panel-tabs button span:not(.panel-tabs__glyph){display:none}.circuit-detail__head,.circuit-detail__section{padding-inline:var(--space-4)}.circuit-result>div{padding-inline:var(--space-3)}}@media(prefers-reduced-motion:reduce){.drawer-backdrop,.schedule-drawer,.drawer-backdrop.is-closing .schedule-drawer,.bulk-bar,.circuit-row.is-focused,.device-picker__popover,.schedule-drawer.is-stacked .schedule-body.is-detail-only .schedule-detail{animation:none}}.sheet-manager-backdrop{display:grid;place-items:center;padding:var(--space-6)}.sheet-manager{display:flex;flex-direction:column;width:min(1120px,calc(100vw - 48px));height:min(780px,calc(100% - 32px));min-width:min(640px,calc(100vw - 48px));min-height:min(420px,calc(100% - 32px));max-width:calc(100vw - 48px);max-height:calc(100% - 32px);overflow:hidden;color:var(--text);background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px var(--border);resize:both;scrollbar-gutter:auto;animation:modal-in .28s var(--ease-spring) both}.sheet-manager--compact{height:auto}.sheet-manager__header{display:flex;flex:none;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-4) var(--space-6);border-bottom:1px solid var(--border)}.sheet-manager__title{display:grid;gap:2px;min-width:0}.sheet-manager__title .eyebrow{color:var(--text-muted)}.sheet-manager__title h2{margin:0;overflow:hidden;font-size:var(--text-xl);font-weight:700;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}.sheet-manager__summary{margin-left:auto;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.sheet-manager__header .icon-button{flex:none;margin-left:auto}.sheet-manager__summary+.icon-button{margin-left:0}.sheet-manager__body{flex:1 1 auto;min-height:0;padding:var(--space-5) var(--space-6);overflow:auto;overscroll-behavior:contain}.sheet-manager__actions{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-3) var(--space-6);background:var(--gray-25);border-top:1px solid var(--border)}.sheet-manager__hint{flex:1 1 240px;margin:0;color:var(--text-muted);font-size:var(--text-xs)}.sheet-thumb{position:relative;display:block;width:100%;aspect-ratio:4 / 3;overflow:hidden;background:var(--gray-50);border-radius:var(--radius-md)}.sheet-thumb__svg{position:absolute;top:8%;right:8%;bottom:8%;left:8%;width:84%;height:84%;overflow:visible;filter:drop-shadow(0 1px 1px var(--paper-shadow)) drop-shadow(0 3px 8px var(--paper-shadow))}.sheet-thumb__paper{fill:var(--gray-0)}.sheet-thumb__grid{fill:none;stroke:var(--gray-150)}.sheet-thumb.is-loading .sheet-thumb__paper{animation:sheet-thumb-pulse 1.2s ease-in-out infinite alternate}@keyframes sheet-thumb-pulse{to{fill:var(--gray-75)}}.sheet-thumb__raceway{fill:none;stroke:var(--markup-raceway);stroke-linecap:round;stroke-linejoin:round;opacity:.9}.sheet-thumb__panel{fill:var(--markup-panel)}.sheet-thumb__junction{fill:var(--gray-0);stroke:var(--markup-junction)}.sheet-thumb__device{fill:var(--gray-0);stroke:var(--markup-endpoint)}.sheet-thumb__badge{position:absolute;bottom:6px;left:6px;padding:2px 6px;color:var(--gray-0);background:var(--overlay-strong);border-radius:var(--radius-xs);font-size:var(--text-2xs);font-weight:600;line-height:1.4}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.sheet-card{position:relative;display:grid;align-content:start;gap:6px;min-width:0;padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-lg);transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,opacity var(--dur-fast) ease,transform var(--dur-base) var(--ease-out)}.sheet-card[draggable=true]{cursor:grab}.sheet-card:hover,.sheet-card:focus-within{background:var(--gray-25);border-color:var(--border)}.sheet-card.is-dragging{opacity:.4}.sheet-card.is-drop-before:before,.sheet-card.is-drop-after:after{position:absolute;top:8px;bottom:8px;width:3px;background:var(--accent-500);border-radius:var(--radius-full);content:""}.sheet-card.is-drop-before:before{left:calc(var(--space-2) * -1 - 2px)}.sheet-card.is-drop-after:after{right:calc(var(--space-2) * -1 - 2px)}.sheet-list__open{position:relative;display:block;width:100%;padding:0;background:none;border:0;border-radius:var(--radius-md);cursor:pointer}.sheet-list__open:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sheet-list__open .sheet-thumb{transition:box-shadow var(--dur-fast) ease}.sheet-list__open:hover .sheet-thumb{box-shadow:inset 0 0 0 1px var(--border-strong)}.sheet-card.is-active .sheet-thumb{box-shadow:0 0 0 2px var(--accent-500)}.sheet-card__current{position:absolute;top:6px;left:6px;padding:2px 7px;color:var(--accent-800);background:var(--accent-50);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:650}.sheet-card__actions{position:absolute;top:calc(var(--space-2) + 6px);right:calc(var(--space-2) + 6px);display:flex;gap:1px;padding:2px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);opacity:0;transition:opacity var(--dur-fast) ease}.sheet-card__actions .icon-button{width:26px;height:26px}.sheet-card:hover .sheet-card__actions,.sheet-card:focus-within .sheet-card__actions{opacity:1}@media(hover:none){.sheet-card__actions{opacity:1}}.sheet-card__meta{display:flex;align-items:center;gap:6px;min-width:0}.sheet-card__ordinal{flex:none;min-width:14px;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:650}.sheet-card__name{flex:1;min-width:0;margin-left:-4px;padding:3px var(--space-1);overflow:hidden;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;cursor:text;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease}.sheet-card__name:hover{border-color:var(--border-strong)}.sheet-card__name:focus{background:var(--surface);border-color:var(--accent-500);outline:none;box-shadow:var(--focus-ring)}.sheet-card__detail{margin:0 0 0 20px;color:var(--text-muted);font-size:var(--text-xs);line-height:1.4}.sheet-card--add{padding:var(--space-2)}.sheet-card--add:hover,.sheet-card--add:focus-within{background:transparent;border-color:transparent}.sheet-card__add{display:grid;align-content:center;justify-items:center;gap:4px;width:100%;aspect-ratio:4 / 3;padding:var(--space-3);color:var(--text-secondary);text-align:center;background:transparent;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,color var(--dur-fast) ease}.sheet-card__add:hover,.sheet-card__add:focus-visible{color:var(--accent-700);background:var(--accent-25);border-color:var(--accent-400);outline:none}.sheet-card__add-icon{display:grid;place-items:center;width:32px;height:32px;margin-bottom:4px;color:var(--accent-600);background:var(--accent-50);border-radius:50%}.sheet-card__add strong{font-size:var(--text-sm);font-weight:650}.sheet-card__add small{color:var(--text-muted);font-size:var(--text-2xs)}.sheet-import{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr);min-height:0}.sheet-import.has-remap{grid-template-columns:minmax(0,1fr) minmax(300px,340px)}.sheet-import__pages{min-height:0;padding:var(--space-5) var(--space-6);overflow:auto;overscroll-behavior:contain}.sheet-import__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.sheet-import__toolbar h3{margin:0;font-size:var(--text-md);font-weight:650}.sheet-import__toolbar p{margin:2px 0 0;color:var(--text-muted);font-size:var(--text-xs)}.sheet-import__bulk{display:flex;gap:var(--space-1)}.pdf-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--space-4) var(--space-3)}.pdf-page-card{display:grid;align-content:start;gap:6px;min-width:0;padding:6px;border:1px solid transparent;border-radius:var(--radius-lg);transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease}.pdf-page-card:hover{background:var(--gray-25)}.pdf-page-card.is-selected{background:var(--accent-25);border-color:var(--accent-200)}.pdf-page-preview{position:relative;display:grid;gap:6px;width:100%;padding:0;color:var(--text);text-align:left;background:none;border:0;border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none}.pdf-page-preview:focus-visible{outline:none;box-shadow:var(--focus-ring)}.pdf-page-preview__image{display:grid;place-items:center;aspect-ratio:4 / 3;padding:8%;background:var(--gray-50);border-radius:var(--radius-md);transition:box-shadow var(--dur-fast) ease}.pdf-page-preview__image img{display:block;max-width:100%;max-height:100%;background:var(--gray-0);box-shadow:0 1px 1px var(--paper-shadow),0 3px 8px var(--paper-shadow)}.pdf-page-card.is-selected .pdf-page-preview__image{box-shadow:0 0 0 2px var(--accent-500)}.pdf-page-preview__check{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:22px;height:22px;color:var(--gray-0);background:var(--surface-translucent);border:1.5px solid var(--gray-300);border-radius:50%;transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease}.pdf-page-preview:hover .pdf-page-preview__check{border-color:var(--accent-400)}.pdf-page-card.is-selected .pdf-page-preview__check{background:var(--accent-500);border-color:var(--accent-500);animation:page-check-in var(--dur-base) var(--ease-spring) both}@keyframes page-check-in{0%{transform:scale(.6)}}.pdf-page-preview__used{position:absolute;top:8px;left:8px;max-width:calc(100% - 48px);padding:2px 7px;overflow:hidden;color:var(--accent-800);background:var(--accent-50);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.pdf-page-preview__label{font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:650}.pdf-page-card>input{width:100%;min-width:0;height:30px;padding:0 var(--space-2);color:var(--text);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--text-xs);animation:page-name-in var(--dur-base) var(--ease-out) both}.pdf-page-card>input:focus{border-color:var(--accent-500);outline:none;box-shadow:var(--focus-ring)}@keyframes page-name-in{0%{opacity:0;transform:translateY(-3px)}}.sheet-remap{min-height:0;padding:var(--space-4) var(--space-5);overflow:auto;background:var(--gray-25);border-left:1px solid var(--border)}.sheet-remap__toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-1) 0;color:var(--text);text-align:left;background:none;border:0;cursor:pointer}.sheet-remap__toggle h3{margin:0;font-size:var(--text-sm);font-weight:650}.sheet-remap__toggle small{color:var(--text-muted);font-size:var(--text-2xs)}.sheet-remap__toggle svg{flex:none;color:var(--text-muted);transition:transform var(--dur-fast) ease}.sheet-remap__toggle[aria-expanded=true] svg{transform:rotate(90deg)}.sheet-remap__rows{display:grid;gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.sheet-remap__rows li{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:start;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.sheet-remap__rows li.is-changed{background:var(--accent-25);border-color:var(--accent-200)}.sheet-remap__thumbs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:2px;padding-top:18px;color:var(--text-faint)}.sheet-remap__field{gap:4px}.sheet-remap__field select{min-height:30px;font-size:var(--text-xs)}.sheet-remap__thumbs .sheet-thumb{border-radius:var(--radius-xs)}.sheet-remap__field>span{color:var(--text);font-size:var(--text-sm);font-weight:600}.sheet-remap__field small{color:var(--text-muted);font-size:var(--text-2xs)}.sheet-remap__rows li.is-changed .sheet-remap__field small{color:var(--accent-800)}@media(max-width:760px){.sheet-import.has-remap{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.sheet-remap{max-height:40vh;border-top:1px solid var(--border);border-left:0}}@media(max-width:640px){.sheet-manager-backdrop{place-items:end stretch;padding:0}.sheet-manager{width:100%;min-width:0;max-width:none;height:calc(100% - var(--space-3));max-height:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;resize:none;animation:sheet-up var(--dur-slow) var(--ease-out) both}.sheet-manager--compact{height:auto;max-height:calc(100% - var(--space-3))}.sheet-manager__header,.sheet-manager__body,.sheet-import__pages,.sheet-manager__actions{padding-inline:var(--space-4)}.sheet-manager__summary{display:none}.sheet-grid,.pdf-page-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.sheet-manager__hint{display:none}.sheet-manager__actions .button--primary{flex:1}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.6}}@media(prefers-reduced-motion:reduce){.sheet-manager,.pdf-page-card.is-selected .pdf-page-preview__check,.pdf-page-card>input,.sheet-thumb.is-loading .sheet-thumb__paper{animation:none}}.workspace.has-sheets-rail{grid-template-columns:var(--tool-rail-width) var(--sheets-rail-width) minmax(0,1fr) var(--inspector-width)}.workspace.has-sheets-rail>.sheets-rail{grid-column:2;grid-row:1}.workspace.has-sheets-rail>.plan-viewport{grid-column:3}.workspace.has-sheets-rail>.electrical-schedule{grid-column:2 / 4}.workspace.has-sheets-rail>.inspector{grid-column:4}.workspace.has-sheets-rail .validation-summary{left:calc(var(--tool-rail-width) + var(--sheets-rail-width) + 14px);width:min(360px,calc(100% - var(--tool-rail-width) - var(--sheets-rail-width) - var(--inspector-width) - 230px))}.workspace.has-sheets-rail.is-canvas-narrow .validation-summary{bottom:100px;left:calc(var(--tool-rail-width) + var(--sheets-rail-width) + 8px);width:min(360px,calc(100% - var(--tool-rail-width) - var(--sheets-rail-width) - var(--inspector-width) - 16px));min-width:0}@media(max-width:800px){.workspace.has-sheets-rail{grid-template-columns:var(--tool-rail-width) var(--sheets-rail-width) minmax(0,1fr)}.workspace.has-sheets-rail>.inspector{grid-column:3}.workspace.has-sheets-rail .validation-summary{width:min(340px,calc(100% - var(--tool-rail-width) - var(--sheets-rail-width) - 140px))}.workspace.has-sheets-rail.is-canvas-narrow .validation-summary{width:min(360px,calc(100% - var(--tool-rail-width) - var(--sheets-rail-width) - 16px))}}@media(max-width:639px){.workspace.has-sheets-rail{grid-template-columns:var(--tool-rail-width) minmax(0,1fr)}.workspace>.sheets-rail{display:none}}.tool-rail__sheets{flex:none;margin-top:6px}.tool-rail__sheets[aria-expanded=true]{color:var(--accent-700);background:var(--accent-25)}.tool-rail__sheets[aria-expanded=true]:hover:not(:disabled){color:var(--accent-700);background:var(--accent-50)}.tool-rail__sheets+.tool-rail__toggle{margin-top:2px}.sheets-rail{position:relative;z-index:19;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surface);border-right:1px solid var(--border);animation:sheets-rail-in var(--dur-base) var(--ease-out)}@keyframes sheets-rail-in{0%{opacity:0;transform:translate(-8px)}}.sheets-rail__header{display:flex;flex:none;align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-1) 0 var(--space-3);border-bottom:1px solid var(--border)}.sheets-rail__header .icon-button{width:28px;height:28px}.sheets-rail__title{margin:0;color:var(--text);font-size:var(--text-sm);font-weight:650}.sheets-rail__count{min-width:20px;padding:1px 6px;color:var(--text-secondary);background:var(--surface-sunken);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600;text-align:center}.sheets-rail__spacer{flex:1}.sheets-rail__list{display:grid;flex:1 1 auto;align-content:start;gap:var(--space-1);min-height:0;margin:0;padding:var(--space-2);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;list-style:none;scrollbar-width:thin}.sheets-rail__item{position:relative;min-width:0;border-radius:var(--radius-md);content-visibility:auto;contain-intrinsic-size:auto 180px}.sheets-rail__item[draggable=true]{cursor:grab}.sheets-rail__item.is-dragging{opacity:.4}.sheets-rail__item.is-drop-before:before,.sheets-rail__item.is-drop-after:after{position:absolute;right:var(--space-2);left:var(--space-2);z-index:1;height:3px;background:var(--accent-500);border-radius:var(--radius-full);content:""}.sheets-rail__item.is-drop-before:before{top:-3px}.sheets-rail__item.is-drop-after:after{bottom:-3px}.sheets-rail__open{display:grid;gap:4px;width:100%;min-width:0;padding:6px;color:inherit;background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background-color var(--dur-fast) ease}.sheets-rail__item[draggable=true] .sheets-rail__open{cursor:inherit}.sheets-rail__open:hover{background:var(--surface-hover)}.sheets-rail__open:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sheets-rail__item.is-active .sheets-rail__open{background:var(--accent-50)}.sheets-rail__open .sheet-thumb{transition:box-shadow var(--dur-fast) ease}.sheets-rail__item.is-active .sheet-thumb{box-shadow:0 0 0 2px var(--accent-500)}.sheet-thumb.is-placeholder{background:var(--surface-sunken)}.sheets-rail__meta{display:flex;align-items:center;gap:6px;min-width:0;margin-top:2px}.sheets-rail__ordinal{flex:none;min-width:14px;color:var(--text-muted);font-size:var(--text-xs);font-weight:650}.sheets-rail__name{flex:1;min-width:0;overflow:hidden;color:var(--text);font-size:var(--text-xs);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sheets-rail__item.is-active .sheets-rail__name{color:var(--accent-800)}.sheets-rail__item.is-renaming .sheets-rail__name{visibility:hidden}.sheets-rail__dot{flex:none;width:8px;height:8px;background:var(--todo-500);border-radius:50%;box-shadow:0 0 0 2px var(--surface)}.sheets-rail__dot.is-error,.sheets-rail__dot.is-warning{background:var(--warn-500)}.sheets-rail__detail{min-width:0;margin-left:20px;overflow:hidden;color:var(--text-muted);font-size:var(--text-2xs);line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.sheets-rail__rename{position:absolute;bottom:calc(6px + var(--text-2xs) * 1.4 + 4px - 4px);right:4px;left:22px;height:26px;padding:0 6px;color:var(--text);background:var(--surface);border:1px solid var(--accent-500);border-radius:var(--radius-sm);outline:none;box-shadow:var(--focus-ring);font-size:var(--text-xs);font-weight:600}.sheets-rail__hint{flex:none;margin:0;padding:var(--space-2) var(--space-3);color:var(--text-faint);border-top:1px solid var(--border);font-size:var(--text-2xs);line-height:1.4}@media(max-height:700px){.sheets-rail__hint{display:none}}@media(prefers-reduced-motion:reduce){.sheets-rail{animation:none}}.pro-mark{display:inline-grid;flex:none;place-items:center;width:20px;height:20px;color:var(--gray-900);background:linear-gradient(135deg,var(--spark-300),var(--spark-500));border-radius:var(--radius-sm)}.export-modal{gap:0;width:min(820px,100%);padding:0}.export-modal__header{display:grid;gap:4px;padding:var(--space-6) var(--space-6) var(--space-2);padding-right:56px}.export-modal__context{margin:0;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.modal .export-modal__context{margin-bottom:0;color:var(--text-muted)}.export-modal__header h2{margin:0;font-size:var(--text-xl);letter-spacing:-.015em}.export-modal__header .modal-copy{margin:2px 0 0}.export-warning{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-3) var(--space-6) 0;padding:var(--space-2) var(--space-3);color:var(--todo-700);background:var(--todo-50);border:1px solid var(--todo-100);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.45}.export-warning svg{flex:none;margin-top:1px}.export-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-5)}.export-option{display:grid;grid-template-rows:auto auto 1fr auto;gap:var(--space-3);min-width:0;padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.export-option--pro{border-color:var(--gray-900);box-shadow:0 0 0 1px var(--gray-900)}.export-option__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px var(--space-2)}.export-option__head strong{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:700}.export-option__head>span{color:var(--text-muted);font-size:var(--text-xs)}.export-policy-list{display:grid;align-content:start;gap:6px;margin:0;padding:0;list-style:none}.export-policy-list li{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-xs);line-height:1.4}.export-policy-list svg{flex:none;margin-top:1px;color:var(--pass-500)}.export-policy-list li.is-limited svg{color:var(--text-faint)}.export-option .button{width:100%;min-height:38px}.export-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-6);color:var(--text-muted);background:var(--gray-25);border-top:1px solid var(--border);font-size:var(--text-xs)}.export-modal__footer>span{display:inline-flex;align-items:center;gap:6px}.export-modal__footer svg{flex:none;color:var(--pass-600)}.export-preview{position:relative;display:block;overflow:hidden;border-radius:var(--radius-md);container-type:inline-size}.export-preview .sheet-thumb{border-radius:var(--radius-md)}.export-preview__watermark{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.export-preview__watermark span{color:var(--warn-500);font-size:min(7cqi,var(--text-xl));font-weight:800;letter-spacing:.06em;white-space:nowrap;opacity:.32;transform:rotate(-28deg)}.export-preview__report{position:absolute;right:11%;bottom:12%;display:grid;gap:3px;width:30%;padding:5px;background:var(--surface);border:1px solid var(--border-strong);border-radius:3px}.export-preview__report i{display:block;height:4px;background:var(--gray-300);border-radius:2px}.export-preview__report i:first-child{width:60%;background:var(--gray-500)}.export-preview--free .export-preview__report i:not(:first-child){background:repeating-linear-gradient(45deg,var(--gray-300) 0 3px,var(--gray-100) 3px 6px)}@container (max-width: 180px){.export-preview__report{display:none}}.export-preview__tag{position:absolute;top:8px;left:8px;padding:2px 8px;color:var(--text-secondary);background:var(--surface);border-radius:var(--radius-full);box-shadow:var(--shadow-xs);font-size:var(--text-2xs);font-weight:650}.export-preview--pro .export-preview__tag{color:var(--gray-0);background:var(--gray-900)}.upgrade-modal{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch;gap:0;width:min(900px,100%);padding:0}.upgrade-modal__story{display:grid;align-content:start;gap:var(--space-5);padding:var(--space-8) var(--space-6) var(--space-6) var(--space-8);background:linear-gradient(180deg,var(--gray-50),var(--surface))}.upgrade-modal__header{display:grid;gap:var(--space-2)}.upgrade-modal__brand{display:inline-flex;align-items:center;gap:var(--space-2);margin:0}.modal .upgrade-modal__brand{margin-bottom:var(--space-1);color:var(--text-secondary)}.upgrade-modal__header h2{margin:0;font-size:var(--text-2xl);letter-spacing:-.025em;line-height:1.2}.upgrade-modal__header .modal-copy{margin:0}.upgrade-feature-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.upgrade-feature-list li{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:var(--space-3)}.upgrade-feature-list__icon{display:grid;place-items:center;width:30px;height:30px;color:var(--accent-700);background:var(--accent-50);border-radius:var(--radius-md)}.upgrade-feature-list li>span:last-child{display:grid;gap:1px}.upgrade-feature-list strong{font-size:var(--text-sm);font-weight:650}.upgrade-feature-list small{color:var(--text-muted);font-size:var(--text-xs)}.upgrade-modal__free{margin:0;padding:var(--space-3);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.5}.upgrade-modal__free strong{color:var(--text)}.upgrade-modal__form{display:grid;align-content:start;gap:var(--space-4);padding:var(--space-8) var(--space-6) var(--space-5);border-left:1px solid var(--border)}.upgrade-current-plan{display:flex;gap:var(--space-3);padding:var(--space-3);color:var(--pass-700);background:var(--pass-50);border:1px solid var(--pass-100);border-radius:var(--radius-md)}.upgrade-current-plan svg{flex:none}.upgrade-current-plan strong{color:var(--text);font-size:var(--text-sm)}.upgrade-current-plan p{margin:2px 0 0;color:var(--text-secondary);font-size:var(--text-xs);line-height:1.45}.upgrade-plan-picker{display:grid;gap:var(--space-2);margin:0;padding:0;border:0}.upgrade-plan-picker legend{margin-bottom:var(--space-2);padding:0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.upgrade-plan{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.upgrade-plan:hover{border-color:var(--gray-300)}.upgrade-plan.is-selected{background:var(--accent-25);border-color:var(--accent-500);box-shadow:0 0 0 1px var(--accent-500)}.upgrade-plan>input{width:16px;height:16px;margin:0;accent-color:var(--accent-500)}.upgrade-plan:has(input:focus-visible){box-shadow:0 0 0 1px var(--accent-500),var(--focus-ring)}.upgrade-plan__copy{display:grid;gap:2px;min-width:0}.upgrade-plan__copy strong{font-size:var(--text-md);font-weight:650}.upgrade-plan__copy small,.upgrade-plan__price small{color:var(--text-muted);font-size:var(--text-xs)}.upgrade-plan__title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.upgrade-plan__title em{padding:2px 7px;color:var(--pass-700);background:var(--pass-50);border-radius:var(--radius-full);font-size:var(--text-2xs);font-style:normal;font-weight:700}.upgrade-plan__price{display:flex;align-items:baseline;gap:1px;text-align:right}.upgrade-plan__price strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.upgrade-modal__checkout{width:100%;min-height:44px;font-size:var(--text-md)}.upgrade-modal__secure{display:flex;align-items:center;justify-content:center;gap:6px;margin:calc(var(--space-2) * -1) 0 0;color:var(--text-muted);font-size:var(--text-2xs);text-align:center}.upgrade-modal__paid-actions{display:flex;gap:var(--space-2)}.upgrade-modal__paid-actions .button{flex:1}.upgrade-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-xs)}.upgrade-modal__footer a{color:var(--accent-700);font-weight:550;text-decoration:none}.upgrade-modal__footer a:hover{text-decoration:underline}.upgrade-modal__footer .button-link{color:var(--text-secondary)}@media(max-width:760px){.upgrade-modal{grid-template-columns:minmax(0,1fr)}.upgrade-modal__story{display:contents}.upgrade-modal__header{order:-2;padding:var(--space-6) var(--space-5) var(--space-2);padding-right:52px;background:var(--gray-50)}.upgrade-modal__form{order:-1;padding:var(--space-4) var(--space-5) var(--space-5);background:var(--gray-50);border-left:0}.upgrade-feature-list{padding:var(--space-5) var(--space-5) 0;border-top:1px solid var(--border)}.upgrade-modal__free{margin:var(--space-4) var(--space-5) var(--space-5)}}@media(max-width:600px){.export-compare{grid-template-columns:minmax(0,1fr);padding-inline:var(--space-4)}.export-modal__header,.export-modal__footer{padding-inline:var(--space-4)}.export-modal__header{padding-right:52px}.export-warning{margin-inline:var(--space-4)}.export-option{grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:var(--space-3)}.export-option .export-preview{grid-row:1 / span 2}.export-option .export-policy-list,.export-option .button{grid-column:1 / -1}.export-modal__footer>span{display:none}}.calculator-page{height:100%;min-height:100%;overflow:auto;color:var(--text);background:radial-gradient(70% 40% at 50% 0%,var(--accent-50),transparent 70%),var(--bg-app)}.calculator-header{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);align-items:center;gap:20px;min-height:64px;padding:10px clamp(16px,3vw,40px);background:#ffffffe6;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.calculator-brand{display:inline-flex;align-items:center;gap:10px;width:fit-content;color:inherit;text-decoration:none}.calculator-brand>span:last-child{display:grid;line-height:1.2}.calculator-brand strong{font-size:var(--text-md);font-weight:700}.calculator-brand small{color:var(--text-muted);font-size:var(--text-xs)}.calculator-title{text-align:center}.calculator-title .eyebrow{color:var(--accent-600)}.calculator-title h1{margin-top:1px;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.calculator-header>.button{justify-self:end}.calculator-layout{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(420px,1.18fr);align-items:start;gap:20px;width:min(1320px,calc(100% - 32px));margin:24px auto}.calculator-controls,.calculator-results{display:grid;gap:14px;min-width:0}.calculator-controls{position:sticky;top:88px}.calculator-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:4px;background:var(--gray-150);border-radius:var(--radius-lg)}.calculator-mode-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 8px;color:var(--text-secondary);background:transparent;border:0;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:550;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}.calculator-mode-tabs button:hover{color:var(--text)}.calculator-mode-tabs button.is-active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:650}.calculator-mode-tabs button.is-active svg{color:var(--accent-600)}.calculator-panel,.calculator-result-card,.calculator-visualization,.coverage-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.calculator-panel{display:grid;gap:20px;padding:20px}.calculator-section{display:grid;gap:14px}.calculator-section+.calculator-section{padding-top:18px;border-top:1px solid var(--border)}.section-heading,.coverage-heading{display:flex;align-items:center;gap:9px}.section-heading svg,.coverage-heading>svg{color:var(--accent-600)}.section-heading h2,.coverage-heading h2,.calculator-visualization h2{font-size:var(--text-md);font-weight:650}.calculator-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calculator-field-grid label{display:grid;gap:6px;min-width:0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:550}.calculator-field-grid input,.calculator-field-grid select{width:100%;min-height:38px;padding:0 11px;color:var(--text);background-color:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);font-size:var(--text-sm)}.calculator-field-grid select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7482' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:15px}.calculator-field-grid input:focus,.calculator-field-grid select:focus{border-color:var(--accent-500);box-shadow:var(--focus-ring);outline:none}.calculator-field-grid input:disabled,.calculator-field-grid select:disabled{color:var(--text-muted);background-color:var(--surface-sunken);box-shadow:none;cursor:not-allowed}.calculator-suffix-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;background:var(--surface);border:1px solid var(--border-input);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.calculator-suffix-input:focus-within{border-color:var(--accent-500);box-shadow:var(--focus-ring)}.calculator-field-grid .calculator-suffix-input input{border:0;border-radius:0;box-shadow:none}.calculator-field-grid .calculator-suffix-input input:focus{box-shadow:none}.calculator-suffix-input span{padding:0 11px;color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.calculator-result-card{display:grid;gap:16px;padding:24px}.calculator-result-card--pass{border-color:var(--pass-100)}.calculator-result-card--warning,.calculator-result-card--incomplete{border-color:var(--todo-100)}.result-status{display:inline-flex;align-items:center;gap:6px;width:fit-content;height:26px;padding:0 10px;color:var(--pass-700);background:var(--pass-50);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:650;text-transform:capitalize}.calculator-result-card--warning .result-status,.calculator-result-card--incomplete .result-status{color:var(--todo-700);background:var(--todo-50)}.result-primary{display:grid;gap:2px}.result-primary>span{color:var(--text-secondary);font-size:var(--text-sm);font-weight:600}.result-primary strong{display:flex;align-items:baseline;gap:8px;font-size:60px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.04em;line-height:1}.result-primary small{color:var(--accent-600);font-size:26px;letter-spacing:-.02em}.calculator-result-card p,.coverage-panel p{margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.result-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.result-metrics div{min-width:0;padding:10px 12px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}.result-metrics span{display:block;color:var(--text-muted);font-size:var(--text-2xs);font-weight:550}.result-metrics strong{display:block;margin-top:3px;overflow-wrap:anywhere;font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:650}.result-trace{padding-top:14px;border-top:1px solid var(--border)}.result-trace h3{margin-bottom:8px;font-size:var(--text-sm);font-weight:650}.result-trace ul{display:grid;gap:6px;margin:0;padding-left:18px;color:var(--text-secondary);font-size:var(--text-sm)}.result-trace li::marker{color:var(--gray-300)}.calculator-visualization{display:grid;gap:12px;padding:20px}.calculator-table-wrap{max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.calculator-table{width:100%;min-width:520px;border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.calculator-table th,.calculator-table td{padding:9px 12px;text-align:right;border-bottom:1px solid var(--border)}.calculator-table tbody tr:last-child td{border-bottom:0}.calculator-table tbody tr:hover td{background:var(--surface-sunken)}.calculator-table th:first-child,.calculator-table td:first-child{position:sticky;left:0;z-index:1;text-align:left;background:var(--surface)}.calculator-table thead th{position:sticky;top:0;z-index:2;color:var(--text-muted);background:var(--surface-sunken);font-size:var(--text-xs);font-weight:600}.calculator-table thead th:first-child{z-index:3;background:var(--surface-sunken)}.calculator-table tbody tr.is-selected td{color:var(--accent-800);background:var(--accent-50);font-weight:650}.coverage-panel{display:grid;gap:14px;width:min(1320px,calc(100% - 32px));margin:0 auto 36px;padding:20px}.coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.coverage-grid h3{margin:0 0 10px;font-size:var(--text-sm);font-weight:650}.coverage-grid>div{display:grid;align-content:start;gap:8px}.coverage-grid article{display:grid;gap:4px;padding:10px 12px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}.coverage-grid article span{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.45}@media(max-width:1000px){.calculator-header,.calculator-layout,.coverage-grid{grid-template-columns:1fr}.calculator-header{gap:8px}.calculator-title{text-align:left}.calculator-header>.button{justify-self:start}.calculator-controls{position:static}.calculator-layout,.coverage-panel{width:min(720px,calc(100% - 24px))}}@media(max-width:640px){.calculator-header{position:static}.calculator-mode-tabs{grid-template-columns:1fr}.calculator-field-grid,.result-metrics{grid-template-columns:1fr 1fr}.result-primary strong{font-size:46px}}@media(max-width:420px){.calculator-field-grid,.result-metrics{grid-template-columns:1fr}}
