.tooltip-trigger{cursor:inherit;background:0 0;border:none;padding:0;display:inline-flex}.tooltip-content{z-index:var(--z-tooltip,1000);padding:var(--space-1) var(--space-2);background-color:var(--colour-surface-overlay);color:var(--colour-text-inverse);font-size:var(--font-size-xs);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md);align-items:center;gap:var(--space-2);animation:svelte-11extwn-tooltip-fade-in var(--duration-fast,.1s) var(--ease-out,ease-out);display:flex}@keyframes svelte-11extwn-tooltip-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tooltip-text{color:inherit}.tooltip-shortcut{background-color:var(--colour-shortcut-bg);font-size:var(--font-size-xs);font-family:var(--font-mono,monospace);color:var(--colour-text-muted-inverse);border-radius:2px;padding:1px 4px}@media (prefers-reduced-motion:reduce){.tooltip-content{animation:none}}.column-rack-icon.svelte-u8jmpd{display:block}.rack-frame.svelte-u8jmpd{stroke:var(--colour-border);stroke-width:1px;fill:none}.rack-rail.svelte-u8jmpd{fill:var(--colour-border);opacity:.3}.rack-interior.svelte-u8jmpd{fill:var(--colour-selection);opacity:.1}.u-line.svelte-u8jmpd{stroke:var(--colour-border);stroke-width:.5px;opacity:.5}.selected.svelte-u8jmpd .rack-frame:where(.svelte-u8jmpd){stroke:var(--colour-selection);stroke-width:1.5px}.selected.svelte-u8jmpd .u-line:where(.svelte-u8jmpd){stroke:var(--colour-selection);opacity:.4}.selected.svelte-u8jmpd .rack-rail:where(.svelte-u8jmpd){fill:var(--colour-selection);opacity:.2}.bayed-rack-icon.svelte-1gi3b6a{display:block}.rack-frame.svelte-1gi3b6a{stroke:var(--colour-border);stroke-width:1px;fill:none}.rack-rail.svelte-1gi3b6a{fill:var(--colour-border);opacity:.3}.rack-interior.svelte-1gi3b6a{fill:var(--colour-selection);opacity:.1}.u-line.svelte-1gi3b6a{stroke:var(--colour-border);stroke-width:.5px;opacity:.5}.selected.svelte-1gi3b6a .rack-frame:where(.svelte-1gi3b6a){stroke:var(--colour-selection);stroke-width:1.5px}.selected.svelte-1gi3b6a .u-line:where(.svelte-1gi3b6a){stroke:var(--colour-selection);opacity:.4}.selected.svelte-1gi3b6a .rack-rail:where(.svelte-1gi3b6a){fill:var(--colour-selection);opacity:.2}.menu-content{z-index:var(--z-dropdown);min-width:160px;padding:var(--space-2);background-color:var(--colour-surface-overlay);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:menu-fade-in var(--duration-fast) var(--ease-out)}@keyframes menu-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2);border-radius:var(--radius-sm);color:var(--colour-text-inverse);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);outline:none;display:flex}.menu-item:hover,.menu-item[data-highlighted]{background-color:var(--colour-overlay-hover)}.menu-item[data-disabled]{opacity:.4;cursor:not-allowed}.menu-label{flex:1}.menu-label-header{padding:var(--space-2) var(--space-2) var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--colour-text-muted-inverse);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.menu-shortcut{background-color:var(--colour-overlay-hover);font-size:var(--font-size-xs);font-family:var(--font-mono,monospace);color:var(--colour-text-muted-inverse);border-radius:3px;padding:2px 6px}.menu-icon,.menu-checkbox{width:16px;color:var(--colour-text-inverse);flex-shrink:0;justify-content:center;align-items:center;display:flex}.menu-inline{box-shadow:none;border:1px solid var(--colour-border)}@media (prefers-reduced-motion:reduce){.menu-content{animation:none}}.santa-hat.svelte-i2yyuu{pointer-events:none;filter:drop-shadow(0 1px 2px #0003)}.logo-lockup.svelte-1i1ldj{align-items:flex-end;gap:var(--space-2);display:flex}.logo-mark-container.svelte-1i1ldj{flex-shrink:0;position:relative}.logo-hat.svelte-1i1ldj{z-index:1;position:absolute;top:-9px;right:0}.logo-mark.svelte-1i1ldj{fill:var(--dracula-purple,#bd93f9);filter:drop-shadow(0 0 6px #bd93f933);flex-shrink:0;margin-bottom:-2px;transition:fill .3s}.logo-title.svelte-1i1ldj text:where(.svelte-1i1ldj){fill:var(--dracula-foreground,#f8f8f2);transition:fill .3s}.logo-title.svelte-1i1ldj{filter:drop-shadow(0 0 6px #f8f8f226);width:auto}.logo-title.svelte-1i1ldj text:where(.svelte-1i1ldj){font-family:"Space Grotesk", var(--font-family,system-ui, sans-serif);font-size:38px;font-weight:500}.logo-title.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj),.logo-title--hover.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj),.logo-title--celebrate.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj),.logo-title--party.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj),.logo-title--showcase.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj){fill:var(--dracula-red,#f55)!important}.logo-mark--celebrate.svelte-1i1ldj,.logo-title--celebrate.svelte-1i1ldj{filter:drop-shadow(0 0 20px #bd93f966)}.logo-mark--party.svelte-1i1ldj,.logo-title--party.svelte-1i1ldj{filter:drop-shadow(0 0 24px #bd93f980);animation:svelte-1i1ldj-wobble var(--anim-party,.5s) ease-in-out infinite}.logo-mark--showcase.svelte-1i1ldj,.logo-title--showcase.svelte-1i1ldj{filter:drop-shadow(0 0 16px #bd93f966)}.logo-mark--hover.svelte-1i1ldj,.logo-title--hover.svelte-1i1ldj{filter:drop-shadow(0 0 12px #bd93f966)}@media (prefers-reduced-motion:reduce){.logo-mark.svelte-1i1ldj{fill:var(--dracula-purple,#bd93f9);filter:drop-shadow(0 0 6px #bd93f933)}.logo-title.svelte-1i1ldj text:where(.svelte-1i1ldj){fill:var(--dracula-foreground,#f8f8f2)}.logo-title.svelte-1i1ldj{filter:drop-shadow(0 0 6px #f8f8f226)}.logo-mark--hover.svelte-1i1ldj path:where(.svelte-1i1ldj){filter:drop-shadow(0 0 8px #bd93f94d);fill:var(--dracula-purple)!important}.logo-title--hover.svelte-1i1ldj text:where(.svelte-1i1ldj){fill:var(--dracula-purple)!important}.logo-title--hover.svelte-1i1ldj{filter:drop-shadow(0 0 8px #bd93f933)}.logo-mark--celebrate.svelte-1i1ldj path:where(.svelte-1i1ldj),.logo-mark--party.svelte-1i1ldj path:where(.svelte-1i1ldj),.logo-mark--showcase.svelte-1i1ldj path:where(.svelte-1i1ldj),.logo-title--celebrate.svelte-1i1ldj text:where(.svelte-1i1ldj),.logo-title--party.svelte-1i1ldj text:where(.svelte-1i1ldj),.logo-title--showcase.svelte-1i1ldj text:where(.svelte-1i1ldj){fill:var(--dracula-purple)!important}.logo-mark--party.svelte-1i1ldj,.logo-title--party.svelte-1i1ldj{animation:none}.logo-title.svelte-1i1ldj text:where(.svelte-1i1ldj) .env-prefix:where(.svelte-1i1ldj){fill:var(--dracula-red,#f55)!important}}@media (width<=600px){.logo-title.svelte-1i1ldj{display:none}.logo-title--always-visible.svelte-1i1ldj{display:block!important}}.toolbar-brand .logo-title.svelte-1i1ldj,.toolbar-brand.hamburger-mode .logo-title.svelte-1i1ldj{display:block!important}@keyframes svelte-1i1ldj-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.sr-only.svelte-inyyap{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.save-status.svelte-inyyap{align-items:center;gap:var(--space-2);color:var(--colour-text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--colour-surface);font-size:.75rem;display:flex}.status-text.svelte-inyyap{white-space:nowrap}.status-text.error.svelte-inyyap{color:var(--colour-error)}.status-text.warning.svelte-inyyap{color:var(--colour-warning)}.icon-success{color:var(--colour-success)}.progress-root{background:var(--colour-border);border-radius:2px;width:40px;height:3px;overflow:hidden}.progress-indicator{background:var(--colour-primary);border-radius:2px;width:30%;height:100%;animation:1.5s ease-in-out infinite svelte-inyyap-indeterminate}@keyframes svelte-inyyap-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(200%)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.progress-indicator{opacity:.5;width:100%;animation:none}}.toolbar.svelte-1ld6r3r{height:var(--toolbar-height);padding:0 var(--space-4);background:var(--colour-toolbar-bg,var(--toolbar-bg));border-bottom:1px solid var(--colour-toolbar-border,var(--toolbar-border));z-index:var(--z-toolbar);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.toolbar-section.svelte-1ld6r3r{align-items:center;gap:var(--space-2);display:flex}.toolbar-left.svelte-1ld6r3r{flex:none}.toolbar-name.svelte-1ld6r3r{min-width:0;padding:0 var(--space-3);flex:auto;justify-content:flex-start;overflow:hidden}.toolbar-name-display.svelte-1ld6r3r{align-items:center;gap:var(--space-1);max-width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.toolbar-name-display.svelte-1ld6r3r:hover{border-color:var(--colour-border);background:var(--colour-surface-hover)}.toolbar-name-display.svelte-1ld6r3r:focus-visible{box-shadow:0 0 0 2px var(--colour-bg), 0 0 0 4px var(--colour-focus-ring);outline:none}.toolbar-name-text.svelte-1ld6r3r{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toolbar-name-pencil.svelte-1ld6r3r{opacity:0;transition:opacity var(--duration-fast) var(--ease-out);flex-shrink:0}.toolbar-name-display.svelte-1ld6r3r:hover .toolbar-name-pencil:where(.svelte-1ld6r3r){opacity:.6}.toolbar-name-input.svelte-1ld6r3r{width:100%;max-width:300px;padding:var(--space-1) var(--space-2);border:1px solid var(--dracula-cyan);border-radius:var(--radius-md);background:var(--colour-surface);color:var(--colour-text);font-size:var(--font-size-sm);outline:none;font-family:inherit;font-weight:500}.toolbar-center.svelte-1ld6r3r,.toolbar-right.svelte-1ld6r3r{gap:var(--space-2);flex:none}.toolbar-right-mobile.svelte-1ld6r3r{gap:var(--space-1)}.toolbar-brand.svelte-1ld6r3r{padding:var(--space-1);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;display:flex}.toolbar-brand.svelte-1ld6r3r:hover{background:var(--colour-surface-hover)}.toolbar-brand.svelte-1ld6r3r:active{transform:scale(.98)}.toolbar-brand.svelte-1ld6r3r:focus-visible{box-shadow:0 0 0 2px var(--colour-bg), 0 0 0 4px var(--colour-focus-ring);outline:none}.toolbar-icon-btn.svelte-1ld6r3r,.toolbar-icon-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--colour-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.toolbar-icon-btn.svelte-1ld6r3r svg,.toolbar-icon-btn svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}.toolbar-icon-btn.svelte-1ld6r3r:hover:not(:disabled),.toolbar-icon-btn:hover:not(:disabled){color:var(--dracula-cyan);filter:brightness(1.1);box-shadow:inset 0 -2px}.toolbar-icon-btn.svelte-1ld6r3r:focus-visible,.toolbar-icon-btn:focus-visible{color:var(--dracula-cyan);box-shadow:inset 0 -2px 0 currentColor, 0 0 0 2px var(--colour-focus-ring);outline:none}.toolbar-icon-btn.svelte-1ld6r3r:disabled,.toolbar-icon-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-icon-btn[data-state=open]{color:var(--dracula-cyan);box-shadow:inset 0 -2px}.toolbar-mobile-action-btn.svelte-1ld6r3r{min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-xs);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;font-weight:600}@media (hover:hover) and (pointer:fine){.toolbar-mobile-action-btn.svelte-1ld6r3r:hover:not(:disabled){color:var(--dracula-cyan);background:var(--colour-surface-hover)}}.toolbar-mobile-action-btn.svelte-1ld6r3r:focus-visible{color:var(--dracula-cyan);box-shadow:0 0 0 2px var(--colour-focus-ring);outline:none}.toolbar-mobile-action-btn.svelte-1ld6r3r:disabled{opacity:.4;cursor:not-allowed}@media (width<=600px){.toolbar-center.svelte-1ld6r3r{gap:0}}.port-indicators.svelte-n9m97{pointer-events:none}.port-circle.svelte-n9m97{stroke:var(--colour-port-stroke);transition:r .15s ease-out}.port-mgmt-indicator.svelte-n9m97{fill:var(--colour-port-indicator);pointer-events:none}.port-poe-indicator.svelte-n9m97{pointer-events:none;font-size:6px}.port-hit-target.svelte-n9m97{pointer-events:auto;cursor:pointer}.port-hit-target.svelte-n9m97:hover{fill:var(--colour-port-hover)}.port-hit-target.svelte-n9m97:focus{outline:2px solid var(--colour-selection);outline-offset:1px}.port-count-text.svelte-n9m97{fill:var(--colour-port-indicator);font-size:6px;font-weight:600;font-family:var(--font-mono,monospace);text-shadow:var(--shadow-port-text)}.port-group-badge.svelte-n9m97 rect:where(.svelte-n9m97){stroke:var(--colour-port-stroke);transition:transform .15s ease-out}@media (prefers-reduced-motion:reduce){.port-circle.svelte-n9m97,.port-group-badge.svelte-n9m97 rect:where(.svelte-n9m97){transition:none}}.container-slots.svelte-ca8d2g{pointer-events:none}.container-slot.svelte-ca8d2g{fill:#0000;stroke:var(--neutral-500);stroke-width:1px;stroke-dasharray:4 2;cursor:pointer;pointer-events:auto;transition:stroke var(--duration-fast,.15s) ease-out, stroke-dasharray var(--duration-fast,.15s) ease-out, fill var(--duration-fast,.15s) ease-out}.container-slot.svelte-ca8d2g:hover{stroke:var(--colour-selection);stroke-dasharray:none}.container-slot.svelte-ca8d2g:focus{stroke:var(--colour-focus-ring);stroke-width:2px;stroke-dasharray:none;outline:none}.container-slot.selected.svelte-ca8d2g{stroke:var(--colour-selection);stroke-width:2px;stroke-dasharray:none}.container-slot.valid-drop-target.svelte-ca8d2g{stroke:var(--colour-dnd-valid);stroke-width:2px;stroke-dasharray:none;fill:var(--colour-dnd-valid-bg)}.container-slot.invalid-drop-target.svelte-ca8d2g{stroke:var(--colour-dnd-invalid);stroke-width:2px;stroke-dasharray:4 2;fill:var(--colour-dnd-invalid-bg)}.shelf-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g){stroke:var(--neutral-400);stroke-width:.5px;stroke-dasharray:2 4;opacity:.7}.shelf-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g):hover{stroke:var(--colour-selection);stroke-dasharray:none;opacity:1}.shelf-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g):focus{stroke:var(--colour-focus-ring);stroke-width:2px;stroke-dasharray:none;opacity:1}.shelf-style.svelte-ca8d2g .container-slot.selected:where(.svelte-ca8d2g){stroke:var(--colour-selection);stroke-width:1.5px;stroke-dasharray:none;opacity:1}.chassis-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g){stroke:var(--neutral-600);stroke-width:1.5px;stroke-dasharray:none;fill:#00000014}.chassis-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g):hover{stroke:var(--colour-selection);stroke-width:2px;fill:rgba(var(--colour-selection-rgb,74, 122, 138), .15)}.chassis-style.svelte-ca8d2g .container-slot:where(.svelte-ca8d2g):focus{stroke:var(--colour-focus-ring);stroke-width:2.5px;fill:rgba(var(--colour-selection-rgb,74, 122, 138), .1)}.chassis-style.svelte-ca8d2g .container-slot.selected:where(.svelte-ca8d2g){stroke:var(--colour-selection);stroke-width:2.5px;fill:rgba(var(--colour-selection-rgb,74, 122, 138), .12)}.chassis-style.svelte-ca8d2g .container-slot.valid-drop-target:where(.svelte-ca8d2g){stroke:var(--colour-dnd-valid);stroke-width:2.5px;fill:var(--colour-dnd-valid-bg)}.chassis-style.svelte-ca8d2g .container-slot.invalid-drop-target:where(.svelte-ca8d2g){stroke:var(--colour-dnd-invalid);stroke-width:2px;fill:var(--colour-dnd-invalid-bg)}.bay-label.svelte-ca8d2g{fill:var(--neutral-500);font-family:var(--font-family,system-ui, sans-serif);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.8;font-weight:500}.chassis-style.svelte-ca8d2g:hover .bay-label:where(.svelte-ca8d2g){opacity:1}@media (prefers-reduced-motion:reduce){.container-slot.svelte-ca8d2g{transition:none}}.category-icon-svg.svelte-2h7j0l{color:#fffc;filter:drop-shadow(0 1px 1px #00000080);overflow:visible}.category-icon-svg.svelte-2h7j0l svg{display:block}.label-overlay-svg.svelte-1hm2rag{pointer-events:none;overflow:visible}.gradient-bg.svelte-1hm2rag{pointer-events:none}.label-text.svelte-1hm2rag{font-family:var(--font-family,system-ui, sans-serif);fill:var(--neutral-50,#f8f8f2);font-weight:500}.rack-device.svelte-isdosf{will-change:filter;transition:filter var(--anim-drag-settle,.15s) ease-out}.rack-device.dragging.svelte-isdosf{opacity:.7;filter:drop-shadow(0 4px 8px #0006)}.rack-device.svelte-isdosf:hover:not(.dragging){filter:drop-shadow(0 2px 4px #0003)}.rack-device.svelte-isdosf{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.rack-device.svelte-isdosf:focus{outline:none}.rack-device.svelte-isdosf:focus .device-rect:where(.svelte-isdosf),.rack-device.svelte-isdosf:focus-within .device-rect:where(.svelte-isdosf),.rack-device.svelte-isdosf:focus-visible .device-rect:where(.svelte-isdosf){stroke:var(--colour-selection);stroke-width:2px}.device-rect.svelte-isdosf{stroke:#0003;stroke-width:1px;cursor:grab}.rack-device.svelte-isdosf:active .device-rect:where(.svelte-isdosf),.rack-device.dragging.svelte-isdosf .device-rect:where(.svelte-isdosf){cursor:grabbing}.device-selection.svelte-isdosf{fill:none;stroke:var(--colour-selection);stroke-width:2px;pointer-events:none}.device-name.svelte-isdosf{fill:var(--neutral-50);font-size:var(--font-size-device,13px);font-family:var(--font-family,system-ui, sans-serif);text-shadow:0 1px 2px #00000080;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:500}.device-image.svelte-isdosf{pointer-events:none}@media (prefers-reduced-motion:reduce){.rack-device.svelte-isdosf{transition:none}.rack-device.dragging.svelte-isdosf{transform:none}}.container-children.svelte-isdosf{pointer-events:none}.container-child.svelte-isdosf{pointer-events:auto}.child-device-rect.svelte-isdosf{stroke:var(--neutral-600);stroke-width:.5px;transition:filter var(--duration-fast,.15s) ease-out}.container-child.svelte-isdosf:hover .child-device-rect:where(.svelte-isdosf){filter:brightness(1.1)}.container-child.selected.svelte-isdosf .child-device-rect:where(.svelte-isdosf){filter:brightness(1.05)}.child-selection-highlight.svelte-isdosf{pointer-events:none}.child-device-label.svelte-isdosf{font-family:var(--font-family,system-ui, sans-serif);pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px 1px #0000004d;font-weight:500}.rack-interior.svelte-zt9li4{fill:var(--rack-interior)}.u-slot.svelte-zt9li4{fill:var(--rack-slot);transition:fill var(--duration-fast) var(--ease-out)}.u-slot.u-slot-even.svelte-zt9li4{fill:var(--rack-slot-alt)}.u-slot.drop-target.svelte-zt9li4{transition:fill var(--duration-fast) var(--ease-out)}.u-slot.drop-target.drop-valid.svelte-zt9li4{fill:var(--colour-dnd-valid-bg)}.u-slot.drop-target.drop-invalid.svelte-zt9li4{fill:var(--colour-dnd-invalid-bg)}.rack-rail.svelte-zt9li4{fill:var(--rack-rail)}.rack-grid-line.svelte-zt9li4{stroke:var(--rack-grid);stroke-width:1px}.rack-grid-line-half.svelte-zt9li4{stroke:var(--colour-selection);stroke-width:1px;stroke-dasharray:4 2;opacity:.6}.u-label.svelte-zt9li4{fill:var(--rack-text);font-size:var(--font-size-2xs);text-anchor:middle;font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.u-label-highlight.svelte-zt9li4{font-weight:var(--font-weight-semibold,600);fill:var(--rack-text-highlight)}.rack-hole.svelte-zt9li4{fill:var(--rack-grid)}.rack-name.svelte-zt9li4{fill:var(--colour-text);font-size:var(--font-size-base);text-anchor:middle;font-weight:500;font-family:var(--font-family,system-ui, sans-serif)}.rack-view-label.svelte-zt9li4{fill:var(--colour-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;text-anchor:middle;font-weight:500;font-family:var(--font-family,system-ui, sans-serif)}.u-slot.placement-valid.svelte-zt9li4{fill:#ff79c626;animation:2s ease-in-out infinite svelte-zt9li4-placement-pulse}@keyframes svelte-zt9li4-placement-pulse{0%,to{fill:#ff79c61a}50%{fill:#ff79c640}}.blocked-crosshatch-line.svelte-zt9li4{stroke:var(--colour-blocked-stroke,#ef444473)}.blocked-slot-bg.svelte-zt9li4{fill:var(--colour-blocked-bg,#ef44441f)}.blocked-slot-pattern.svelte-zt9li4{pointer-events:none;opacity:.9}@media (prefers-reduced-motion:reduce){.u-slot.placement-valid.svelte-zt9li4{fill:#ff79c633;animation:none}}.drop-preview.svelte-qdmpho{pointer-events:none;stroke-dasharray:4 2;opacity:.8}.drop-valid.svelte-qdmpho{fill:var(--colour-dnd-valid-bg);stroke:var(--colour-dnd-valid);stroke-width:2px}.drop-invalid.svelte-qdmpho,.drop-blocked.svelte-qdmpho{fill:var(--colour-dnd-invalid-bg);stroke:var(--colour-dnd-invalid);stroke-width:2px}.slot-divider.svelte-qdmpho{stroke:var(--colour-selection);stroke-width:1px;opacity:.7;pointer-events:none}.placement-header-container.svelte-18orbz3{overflow:visible}.placement-header.svelte-18orbz3{border-bottom:1px solid var(--dracula-pink,#ff79c6);height:24px;font-family:var(--font-family,system-ui, sans-serif);color:var(--dracula-foreground,#f8f8f2);box-sizing:border-box;background:#282a36f2;justify-content:space-between;align-items:center;gap:4px;padding:0 6px;font-size:11px;display:flex}.placement-text.svelte-18orbz3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.placement-text.svelte-18orbz3 strong:where(.svelte-18orbz3){color:var(--dracula-pink,#ff79c6);font-weight:600}.placement-cancel.svelte-18orbz3{width:20px;height:20px;color:var(--dracula-foreground,#f8f8f2);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:flex;position:relative}.placement-cancel.svelte-18orbz3:before{content:"";position:absolute;inset:-14px -10px}.placement-cancel.svelte-18orbz3:hover{background:#ffffff1a}.placement-cancel.svelte-18orbz3:active{background:#fff3}.context-menu-content{z-index:var(--z-dropdown,100);min-width:160px;padding:var(--space-2);background-color:var(--colour-surface-overlay);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:context-menu-fade-in var(--duration-fast) var(--ease-out)}@keyframes context-menu-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);color:var(--colour-text-inverse);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);outline:none;display:flex}.context-menu-item:hover,.context-menu-item[data-highlighted],.context-menu-item:focus-visible{background-color:var(--colour-overlay-hover)}.context-menu-item[data-disabled]{opacity:.4;cursor:not-allowed}.context-menu-item--destructive{color:var(--colour-error)}.context-menu-item--destructive:hover,.context-menu-item--destructive[data-highlighted]{background-color:color-mix(in srgb, var(--colour-error) 15%, transparent)}.context-menu-label{flex:1}.context-menu-shortcut{padding:var(--space-1) var(--space-2);background-color:var(--colour-overlay-hover);border-radius:var(--radius-xs);font-size:var(--font-size-xs);font-family:var(--font-mono,monospace);color:var(--colour-text-muted-inverse)}.context-menu-separator{height:1px;margin:var(--space-2) 0;background-color:var(--colour-overlay-border)}@media (prefers-reduced-motion:reduce){.context-menu-content{animation:none}}.rack-container.svelte-18fpxw1{cursor:inherit;touch-action:inherit;display:inline-block;position:relative}.rack-container.svelte-18fpxw1:focus{outline:2px solid var(--colour-selection);outline-offset:2px}.rack-container[aria-selected=true].svelte-18fpxw1,.rack-container.selected.svelte-18fpxw1{outline:2px solid var(--colour-selection);outline-offset:4px}svg.svelte-18fpxw1{pointer-events:auto;touch-action:inherit}@keyframes svelte-18fpxw1-party-glow{0%{filter:drop-shadow(0 0 8px red)}25%{filter:drop-shadow(0 0 8px #80ff00)}50%{filter:drop-shadow(0 0 8px #0ff)}75%{filter:drop-shadow(0 0 8px #8000ff)}to{filter:drop-shadow(0 0 8px red)}}.rack-container.party-mode.svelte-18fpxw1 .rack-svg:where(.svelte-18fpxw1){animation:3s linear infinite svelte-18fpxw1-party-glow}@media (prefers-reduced-motion:reduce){.rack-container.party-mode.svelte-18fpxw1 .rack-svg:where(.svelte-18fpxw1){filter:drop-shadow(0 0 8px #f0f);animation:none}}.rack-container.placement-mode.svelte-18fpxw1{outline:2px solid var(--dracula-pink,#ff79c6);outline-offset:4px;border-radius:var(--radius-md,6px);transition:outline var(--duration-fast,.15s) var(--ease-out), box-shadow var(--duration-fast,.15s) var(--ease-out);box-shadow:0 0 20px #ff79c64d}@media (prefers-reduced-motion:reduce){.rack-container.placement-mode.svelte-18fpxw1{transition:none}}.annotation-column.svelte-1tg4c81{flex-shrink:0;display:flex}.annotation-svg.svelte-1tg4c81{display:block}.annotation-text.svelte-1tg4c81{font-family:var(--font-family-mono,"SF Mono", "Monaco", "Consolas", monospace);font-size:var(--font-size-2xs,10px);fill:var(--colour-text);-webkit-user-select:none;user-select:none}.annotation-text.empty.svelte-1tg4c81{fill:var(--colour-text-muted);opacity:.5}.banana-for-scale.svelte-19p8c9i{pointer-events:none;filter:drop-shadow(1px 2px 2px #0000004d)}.rack-dual-view.svelte-pzaauc{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);cursor:inherit;background:0 0;flex-direction:column;display:inline-flex;position:relative}.rack-dual-view.svelte-pzaauc:focus{outline:2px solid var(--colour-selection);outline-offset:2px}.rack-dual-view[aria-selected=true].svelte-pzaauc,.rack-dual-view.selected.svelte-pzaauc{outline:2px solid var(--colour-selection);outline-offset:4px}.rack-dual-view.active.svelte-pzaauc .rack-dual-view-name:where(.svelte-pzaauc){color:var(--colour-selection)}.rack-dual-view.long-press-active.svelte-pzaauc{outline:3px solid var(--dracula-pink,#ff79c6);outline-offset:2px;box-shadow:inset 0 0 0 calc(var(--long-press-progress,0) * 4px) #ff79c626}@media (prefers-reduced-motion:reduce){.rack-dual-view.long-press-active.svelte-pzaauc{box-shadow:none;outline-width:3px}}.rack-dual-view-name.svelte-pzaauc{font-size:var(--font-size-xl);color:var(--colour-text);font-weight:500;font-family:var(--font-family,system-ui, sans-serif);text-align:center;margin-bottom:var(--spacing-xs,4px)}.rack-dual-view-container.svelte-pzaauc{gap:var(--spacing-lg,24px);align-items:flex-start;display:flex}.rack-front.svelte-pzaauc,.rack-rear.svelte-pzaauc{flex-direction:column;align-items:center;display:flex;position:relative}.rack-front.svelte-pzaauc .rack-container,.rack-rear.svelte-pzaauc .rack-container,.rack-front.svelte-pzaauc .rack-container:focus,.rack-rear.svelte-pzaauc .rack-container:focus{outline:none!important}.annotation-spacer.svelte-pzaauc{flex-shrink:0;width:100px}.banana-container.svelte-pzaauc{pointer-events:none;position:absolute;bottom:-10px;right:-75px}.u-labels-svg.svelte-1tad9a4{display:block}.u-column-bg.svelte-1tad9a4{fill:var(--rack-interior)}.u-column-rail.svelte-1tad9a4{fill:var(--rack-rail)}.u-label.svelte-1tad9a4{fill:var(--rack-text);font-size:var(--font-size-2xs);font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.u-label-highlight.svelte-1tad9a4{font-weight:var(--font-weight-semibold,600);fill:var(--rack-text-highlight)}.bayed-rack-view.svelte-mhcx27{--bay-label-block-height:calc(var(--font-size-xs) + var(--space-1) * 2);align-self:flex-start;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:0 0;flex-direction:column;display:flex;position:relative}.bayed-rack-view.svelte-mhcx27:focus{outline:2px solid var(--colour-selection);outline-offset:2px}.bayed-rack-view.active.svelte-mhcx27:not(.selected){box-shadow:0 0 0 2px var(--colour-selection)}.bayed-rack-view.selected.svelte-mhcx27{outline:2px solid var(--colour-selection);outline-offset:4px}.bayed-rack-view.long-press-active.svelte-mhcx27{outline:3px solid var(--dracula-pink,#ff79c6);outline-offset:2px;box-shadow:inset 0 0 0 calc(var(--long-press-progress,0) * 4px) #ff79c626}@media (prefers-reduced-motion:reduce){.bayed-rack-view.long-press-active.svelte-mhcx27{box-shadow:none;outline-width:3px}}.bayed-group-name.svelte-mhcx27{font-size:var(--font-size-xl);color:var(--colour-text);font-weight:600;font-family:var(--font-family,system-ui, sans-serif);text-align:center;margin-bottom:var(--space-2)}.row-label.svelte-mhcx27{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold,600);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.1em;text-align:center;padding:var(--space-1) 0}.bayed-row.svelte-mhcx27{flex-direction:row;align-items:flex-start;gap:0;display:flex}.bay-container.svelte-mhcx27{border-radius:var(--radius-sm);flex-direction:column;align-items:center;display:flex}.bay-label.svelte-mhcx27{font-size:var(--font-size-xs);color:var(--colour-text-muted);text-align:center;padding:var(--space-1) var(--space-2);white-space:nowrap;font-weight:500;line-height:1}.bay-container.svelte-mhcx27 .rack-container,.bay-container.svelte-mhcx27 .rack-container:focus,.bay-container.svelte-mhcx27 .rack-container.selected,.bay-container.svelte-mhcx27 .rack-container[aria-selected=true]{outline:none!important}.u-labels-column.svelte-mhcx27,.annotation-wrapper.svelte-mhcx27{padding-top:var(--bay-label-block-height);flex-direction:column;justify-content:flex-start;align-items:center;display:flex}.welcome-screen.svelte-vrf9as{background:var(--canvas-bg);cursor:pointer;justify-content:center;align-items:center;min-height:100%;display:flex;position:relative;overflow:hidden}.welcome-screen.svelte-vrf9as:focus{outline:none}.welcome-screen.svelte-vrf9as:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:-2px}.ghost-rack.svelte-vrf9as{opacity:.15;height:90%;max-height:976px}.rack-interior.svelte-vrf9as{fill:var(--rack-interior)}.rack-line.svelte-vrf9as{stroke:var(--rack-grid);stroke-width:1px}.rack-rail.svelte-vrf9as{fill:var(--rack-rail)}.rack-unit-num.svelte-vrf9as{fill:var(--rack-text);font-size:var(--font-size-2xs);text-anchor:middle;font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.main-pane>div:has(>.canvas){flex:1 1 0;height:100%;min-height:0;display:flex}.canvas.svelte-o4ydsk{background-color:var(--canvas-bg);flex:1;min-height:0;position:relative;overflow:hidden}.panzoom-container.svelte-o4ydsk{transform-origin:0 0;touch-action:none;cursor:grab;min-width:100%;min-height:100%}.panzoom-container.svelte-o4ydsk:active{cursor:grabbing}.racks-wrapper.svelte-o4ydsk{align-items:flex-start;gap:var(--space-6);padding:var(--space-4);flex-direction:row;display:flex}.racks-wrapper.swipe-next.svelte-o4ydsk{animation:svelte-o4ydsk-rack-swipe-next .2s var(--ease-out,ease-out)}.racks-wrapper.swipe-previous.svelte-o4ydsk{animation:svelte-o4ydsk-rack-swipe-previous .2s var(--ease-out,ease-out)}@keyframes svelte-o4ydsk-rack-swipe-next{0%{opacity:1;transform:translate(0)}50%{opacity:.9;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes svelte-o4ydsk-rack-swipe-previous{0%{opacity:1;transform:translate(0)}50%{opacity:.9;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.rack-wrapper.svelte-o4ydsk{border-radius:var(--radius-lg);display:inline-block}.rack-group.svelte-o4ydsk{gap:var(--space-2);padding:var(--space-3);border:2px dashed var(--colour-border);border-radius:var(--radius-lg);background:var(--colour-surface-overlay,#282a364d);flex-direction:column;display:flex}.group-label.svelte-o4ydsk{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold,600);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:0 var(--space-1)}.group-racks.svelte-o4ydsk{align-items:flex-start;gap:var(--space-4);flex-direction:row;display:flex}@keyframes svelte-o4ydsk-party-bg{0%{background-color:#281515}33%{background-color:#152815}66%{background-color:#151528}to{background-color:#281515}}.canvas.party-mode.svelte-o4ydsk{animation:4s linear infinite svelte-o4ydsk-party-bg}@media (prefers-reduced-motion:reduce){.canvas.party-mode.svelte-o4ydsk,.racks-wrapper.swipe-next.svelte-o4ydsk,.racks-wrapper.swipe-previous.svelte-o4ydsk{animation:none}}.category-icon.svelte-4m7k1j{vertical-align:middle;color:currentColor;justify-content:center;align-items:center;display:inline-flex}.category-icon.svelte-4m7k1j svg{display:block}.image-indicator.svelte-t7kldy{color:var(--colour-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.device-palette-item.svelte-g5u9ju{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);min-height:var(--touch-target-min);border-radius:var(--radius-sm);cursor:grab;-webkit-user-select:none;user-select:none;transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);display:flex}.device-palette-item.svelte-g5u9ju:hover{background-color:var(--colour-surface-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.device-palette-item.svelte-g5u9ju:active,.device-palette-item.dragging.svelte-g5u9ju{cursor:grabbing;box-shadow:var(--shadow-lg);z-index:100;transform:translateY(-2px)scale(1.02)}.device-palette-item.svelte-g5u9ju:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:var(--space-1)}.device-palette-item.library-selected.svelte-g5u9ju{background-color:color-mix(in srgb, var(--colour-selection) 15%, transparent);border:1px solid var(--colour-selection)}.device-palette-item.incompatible.svelte-g5u9ju{opacity:.5;cursor:not-allowed}.device-palette-item.incompatible.svelte-g5u9ju:hover{box-shadow:none;background-color:#0000;transform:none}.device-palette-item.incompatible.svelte-g5u9ju .device-name:where(.svelte-g5u9ju){text-decoration:line-through;-webkit-text-decoration-color:var(--colour-text-muted);text-decoration-color:var(--colour-text-muted)}.device-palette-item.incompatible.svelte-g5u9ju .drag-handle:where(.svelte-g5u9ju){opacity:.3}.drag-handle.svelte-g5u9ju{color:var(--colour-text-muted);opacity:.5;transition:opacity var(--duration-fast) var(--ease-out);flex-shrink:0;align-items:center;display:flex}.device-palette-item.svelte-g5u9ju:hover .drag-handle:where(.svelte-g5u9ju){opacity:1}.category-icon-indicator.svelte-g5u9ju{flex-shrink:0;justify-content:center;align-items:center;display:flex}.device-name.svelte-g5u9ju{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--colour-text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.device-height.svelte-g5u9ju{background-color:var(--colour-surface-active);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--colour-text);flex-shrink:0}.depth-indicator.svelte-g5u9ju,.width-indicator.svelte-g5u9ju{background-color:var(--colour-surface-hover);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--colour-text-muted);cursor:help;flex-shrink:0}.delete-btn.svelte-g5u9ju{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-sm);cursor:pointer;color:var(--colour-text-muted);opacity:0;transition:opacity var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.device-palette-item.svelte-g5u9ju:hover .delete-btn:where(.svelte-g5u9ju),.device-palette-item.svelte-g5u9ju:focus-within .delete-btn:where(.svelte-g5u9ju){opacity:1}.delete-btn.svelte-g5u9ju:hover{color:var(--colour-error);background-color:var(--colour-surface-active)}.delete-btn.svelte-g5u9ju:focus-visible{opacity:1;outline:2px solid var(--colour-focus-ring);outline-offset:1px}.brand-icon.svelte-11wiekg{vertical-align:middle;color:currentColor;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-icon.svelte-11wiekg svg{display:block}.brand-icon-fallback.svelte-11wiekg{opacity:.7}.segmented-control.svelte-nuytdb{gap:0;width:100%;display:flex}.segmented-control.small.svelte-nuytdb{width:auto}.segmented-control.small.svelte-nuytdb .segment:where(.svelte-nuytdb){padding:var(--space-1) var(--space-2);flex:none;min-width:28px}.segment.svelte-nuytdb{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);border:1px solid var(--colour-border);color:var(--colour-text-muted);cursor:pointer;transition:background-color var(--duration-fast), color var(--duration-fast);background:0 0;flex:1;margin-left:-1px;font-family:inherit;position:relative}.segment.first.svelte-nuytdb{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.segment.last.svelte-nuytdb{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.segment.svelte-nuytdb:not(.first):not(.last){border-radius:0}.segment.svelte-nuytdb:hover:not(.selected){background:var(--colour-surface-hover);color:var(--colour-text)}.segment.selected.svelte-nuytdb{background:color-mix(in srgb, var(--colour-selection) 20%, transparent);border-color:var(--colour-selection);color:var(--colour-text);z-index:1;position:relative}.segment.svelte-nuytdb:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px;z-index:2}.device-palette.svelte-1qbgdcd{flex-direction:column;height:100%;display:flex;overflow:hidden}.search-container.svelte-1qbgdcd{gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-3);flex-direction:column;display:flex}.search-row.svelte-1qbgdcd{gap:var(--space-2);align-items:center;display:flex}.search-input.svelte-1qbgdcd{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--colour-text);background-color:var(--input-bg);border:1px solid var(--colour-border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;outline:none;flex:1}.create-device-btn.svelte-1qbgdcd{width:var(--space-8);height:var(--space-8);font-size:var(--font-size-lg);color:var(--colour-text-muted);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;justify-content:center;align-items:center;padding:0;font-weight:400;line-height:1;display:flex}.create-device-btn.svelte-1qbgdcd:hover{color:var(--colour-text);background:var(--colour-surface-hover);border-color:var(--colour-border-hover)}.create-device-btn.svelte-1qbgdcd:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.create-device-btn.svelte-1qbgdcd:active{background:var(--colour-surface-active)}.search-input.svelte-1qbgdcd::placeholder{color:var(--colour-text-muted)}.search-input.svelte-1qbgdcd:focus{border-color:var(--colour-selection);box-shadow:var(--glow-pink-sm)}.device-list.svelte-1qbgdcd{padding:var(--space-2) 0;flex:1;overflow-y:auto}.accordion-trigger{width:calc(100% - var(--space-4));padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);text-align:left;background:var(--colour-surface-secondary);border-radius:var(--radius-sm);margin:var(--space-1) var(--space-2);cursor:pointer;color:var(--colour-text);border:none;justify-content:space-between;align-items:center;font-weight:600;transition:background-color .15s,color .15s;display:flex}.accordion-trigger:hover{background:var(--colour-surface-hover)}.accordion-trigger:focus-visible{outline:2px solid var(--colour-selection);outline-offset:-2px}.accordion-trigger[data-state=open]{background:var(--colour-surface-active)}.accordion-trigger.has-no-matches{opacity:.5;color:var(--colour-text-muted)}.section-header.svelte-1qbgdcd{align-items:center;gap:var(--space-2);flex:1;display:flex}.section-title.svelte-1qbgdcd{flex:1}.section-count.svelte-1qbgdcd{margin-left:var(--space-2);color:var(--colour-text-muted);font-weight:400}.match-info.svelte-1qbgdcd{align-items:center;gap:var(--space-1);margin-left:var(--space-2);display:flex}.match-count.svelte-1qbgdcd{color:var(--colour-text-muted);font-weight:400}.match-preview.svelte-1qbgdcd{color:var(--colour-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-style:italic;font-weight:400;overflow:hidden}.accordion-content{grid-template-rows:0fr;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.accordion-content[data-state=open]{grid-template-rows:1fr}.accordion-content[data-state=closed]{grid-template-rows:0fr}.accordion-content-inner{min-height:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.accordion-content{transition:none}}.category-group.svelte-1qbgdcd{margin-bottom:var(--space-2)}.category-header.svelte-1qbgdcd{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--colour-text-muted);margin:0;font-weight:600}.category-devices.svelte-1qbgdcd,.section-devices.svelte-1qbgdcd{flex-direction:column;display:flex}.empty-state.svelte-1qbgdcd{padding:var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-message.svelte-1qbgdcd{font-size:var(--font-size-base);color:var(--colour-text);margin:0}.empty-hint.svelte-1qbgdcd{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--colour-text-muted)}.drawer-header.svelte-v4comw{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--colour-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-v4comw{font-size:var(--font-size-md);color:var(--colour-text);margin:0;font-weight:600}.close-button.svelte-v4comw{border-radius:var(--radius-md);width:32px;height:32px;color:var(--colour-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.close-button.svelte-v4comw:hover{background:var(--colour-surface-hover);color:var(--colour-text)}.close-button.svelte-v4comw:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.drawer.svelte-uoov0r{top:var(--toolbar-height);width:var(--drawer-width);background:var(--drawer-bg);border:1px solid var(--colour-border);transition:transform var(--transition-normal);z-index:var(--z-drawer);flex-direction:column;display:flex;position:fixed;bottom:0}.drawer-left.svelte-uoov0r{border-left:none;left:0;transform:translate(-100%)}.drawer-right.svelte-uoov0r{border-right:none;right:0;transform:translate(100%)}.drawer-left.open.svelte-uoov0r,.drawer-right.open.svelte-uoov0r{transform:translate(0)}.drawer-content.svelte-uoov0r{padding:var(--space-4);flex:1;overflow-y:auto}.colour-swatch.svelte-1m5lsuc{border:1px solid var(--colour-border);border-radius:2px;flex-shrink:0;display:inline-block}.colour-picker.svelte-1htnrzi{gap:var(--space-3);padding:var(--space-3);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.presets-grid.svelte-1htnrzi{gap:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}.preset-btn.svelte-1htnrzi{padding:var(--space-1);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--duration-fast), transform var(--duration-fast);background:0 0;border:2px solid #0000;justify-content:center;align-items:center;display:flex}.preset-btn.svelte-1htnrzi:hover{border-color:var(--colour-border);transform:scale(1.1)}.preset-btn.selected.svelte-1htnrzi{border-color:var(--colour-text)}.preset-btn.svelte-1htnrzi:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.custom-input.svelte-1htnrzi{align-items:center;gap:var(--space-2);display:flex}.custom-input.svelte-1htnrzi label:where(.svelte-1htnrzi){font-size:var(--font-size-sm);color:var(--colour-text-muted);min-width:60px}.hex-input.svelte-1htnrzi{padding:var(--space-1-5) var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--input-bg);border:1px solid var(--colour-border);border-radius:var(--radius-sm);color:var(--colour-text);text-transform:uppercase;flex:1}.hex-input.svelte-1htnrzi:focus{outline:2px solid var(--colour-selection);outline-offset:1px}.reset-btn.svelte-1htnrzi{padding:var(--space-1-5) var(--space-3);font-size:var(--font-size-sm);border:1px solid var(--colour-border);border-radius:var(--radius-sm);color:var(--colour-text-muted);cursor:pointer;transition:background-color var(--duration-fast);background:0 0}.reset-btn.svelte-1htnrzi:hover{background:var(--colour-surface-hover);color:var(--colour-text)}.reset-btn.svelte-1htnrzi:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.image-upload.svelte-3xfzto{gap:var(--space-2);flex-direction:column;display:flex}.image-upload-label.svelte-3xfzto{color:var(--colour-text);font-weight:500;font-size:var(--font-size-base)}.sr-only.svelte-3xfzto{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.image-preview.svelte-3xfzto{align-items:center;gap:var(--space-3);display:flex}.preview-image.svelte-3xfzto{object-fit:contain;border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--colour-bg-secondary);width:80px;height:60px}.btn.svelte-3xfzto{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:none;font-weight:500}.btn-choose.svelte-3xfzto{background:var(--button-bg);color:var(--colour-text)}.btn-choose.svelte-3xfzto:hover{background:var(--button-bg-hover)}.btn-remove.svelte-3xfzto{color:var(--colour-error);border:1px solid var(--colour-error);background:0 0}.btn-remove.svelte-3xfzto:hover{background:#e74c3c1a}.btn.svelte-3xfzto:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.error-message.svelte-3xfzto{font-size:var(--font-size-sm);color:var(--colour-error)}.dialog-header.svelte-jby388{padding:var(--space-4) var(--space-5);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.dialog-header-actions.svelte-jby388{align-items:center;gap:var(--space-3);display:flex}@media (width<=430px){.dialog-header.svelte-jby388{padding:var(--space-3) var(--space-4)}.dialog-header-actions.svelte-jby388{gap:var(--space-2)}}.confirm-dialog.svelte-7e0w24{gap:var(--space-5);flex-direction:column;display:flex}.message.svelte-7e0w24{font-size:var(--font-size-base);color:var(--colour-text);margin:0;line-height:1.5}.actions.svelte-7e0w24{justify-content:flex-end;gap:var(--space-3);display:flex}.btn.svelte-7e0w24{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn-secondary.svelte-7e0w24{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-7e0w24:hover{background:var(--colour-button-hover)}.btn-primary.svelte-7e0w24{background:var(--colour-selection);color:#fff}.btn-primary.svelte-7e0w24:hover{background:var(--colour-selection-hover)}.btn-destructive.svelte-7e0w24{background:var(--colour-error);color:#fff}.btn-destructive.svelte-7e0w24:hover{background:var(--colour-error-hover)}.btn.svelte-7e0w24:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.markdown-preview.svelte-1v3t8zz{font-size:var(--font-size-sm);color:var(--colour-text);word-break:break-word;line-height:1.5}.markdown-preview.svelte-1v3t8zz strong{font-weight:600}.markdown-preview.svelte-1v3t8zz em{font-style:italic}.markdown-preview.svelte-1v3t8zz code{font-family:var(--font-mono,monospace);background:var(--colour-surface-secondary);border-radius:var(--radius-xs);padding:.125em .375em;font-size:.875em}.markdown-preview.svelte-1v3t8zz a{color:var(--dracula-cyan);text-decoration:none}.markdown-preview.svelte-1v3t8zz a:hover{text-decoration:underline}.markdown-preview.svelte-1v3t8zz ul,.markdown-preview.svelte-1v3t8zz ol{margin:.5em 0;padding-left:1.5em}.markdown-preview.svelte-1v3t8zz li{margin:.25em 0}.markdown-preview.svelte-1v3t8zz ul{list-style-type:disc}.markdown-preview.svelte-1v3t8zz ol{list-style-type:decimal}.markdown-preview.svelte-1v3t8zz ul ul,.markdown-preview.svelte-1v3t8zz ol ol,.markdown-preview.svelte-1v3t8zz ul ol,.markdown-preview.svelte-1v3t8zz ol ul{margin:.25em 0}.markdown-preview.svelte-1v3t8zz p{margin:.5em 0}.markdown-preview.svelte-1v3t8zz p:first-child{margin-top:0}.markdown-preview.svelte-1v3t8zz p:last-child{margin-bottom:0}.edit-form.svelte-11ma2jy,.device-view.svelte-11ma2jy{gap:var(--space-4);flex-direction:column;display:flex}.form-group.svelte-11ma2jy{gap:var(--space-1-5);flex-direction:column;display:flex}.form-group.svelte-11ma2jy label:where(.svelte-11ma2jy){font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--colour-text);align-items:center;gap:var(--space-1);display:flex}.saved-indicator.svelte-11ma2jy{color:var(--colour-success);font-size:var(--font-size-sm);animation:svelte-11ma2jy-fade-in var(--duration-fast) ease-out}@keyframes svelte-11ma2jy-fade-in{0%{opacity:0}to{opacity:1}}.form-group.svelte-11ma2jy input:where(.svelte-11ma2jy){padding:var(--space-2) var(--space-3);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--colour-text);font-size:var(--font-size-base)}.form-group.svelte-11ma2jy input:where(.svelte-11ma2jy):focus{border-color:var(--colour-selection);outline:none}.form-group.svelte-11ma2jy input:where(.svelte-11ma2jy):disabled{opacity:.6;cursor:not-allowed}.form-group.svelte-11ma2jy select:where(.svelte-11ma2jy){padding:var(--space-2) var(--space-3);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--colour-text);font-size:var(--font-size-base);cursor:pointer}.form-group.svelte-11ma2jy select:where(.svelte-11ma2jy):focus{border-color:var(--colour-selection);outline:none}.form-group.svelte-11ma2jy select:where(.svelte-11ma2jy):disabled{opacity:.6;cursor:not-allowed;background:var(--colour-surface)}.form-group.svelte-11ma2jy textarea:where(.svelte-11ma2jy){padding:var(--space-2) var(--space-3);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--colour-text);font-size:var(--font-size-base);resize:vertical;min-height:80px;font-family:inherit}.form-group.svelte-11ma2jy textarea:where(.svelte-11ma2jy):focus{border-color:var(--colour-selection);outline:none}.helper-text.svelte-11ma2jy{font-size:var(--font-size-sm);color:var(--colour-text-muted);margin:0}.helper-text.error.svelte-11ma2jy{color:var(--colour-error)}.input-field.error.svelte-11ma2jy{border-color:var(--colour-error)}.height-presets.svelte-11ma2jy{gap:var(--space-2);margin-top:var(--space-1);display:flex}.preset-btn.svelte-11ma2jy{padding:var(--space-1) var(--space-2);background:var(--button-bg);border:1px solid var(--colour-border);border-radius:var(--radius-sm);color:var(--colour-text);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--duration-fast)}.preset-btn.svelte-11ma2jy:hover{background:var(--button-bg-hover)}.preset-btn.active.svelte-11ma2jy{background:var(--colour-selection);border-color:var(--colour-selection);color:#fff}.info-section.svelte-11ma2jy{gap:var(--space-2);flex-direction:column;display:flex}.info-row.svelte-11ma2jy{justify-content:space-between;align-items:center;display:flex}.info-label.svelte-11ma2jy{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.info-value.svelte-11ma2jy{font-size:var(--font-size-base);color:var(--colour-text)}.colour-info.svelte-11ma2jy{align-items:center;gap:var(--space-2);font-family:monospace;display:flex}.colour-row-btn.svelte-11ma2jy{cursor:pointer;text-align:left;width:100%;padding:var(--space-1) 0;border-radius:var(--radius-sm);transition:background-color var(--duration-fast);background:0 0;border:none}.colour-row-btn.svelte-11ma2jy:hover{background:var(--colour-surface-hover)}.colour-row-btn.svelte-11ma2jy:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.colour-badge.svelte-11ma2jy{font-size:var(--font-size-xs);padding:0 var(--space-1);background:var(--dracula-purple);color:var(--dracula-bg);border-radius:var(--radius-xs);text-transform:uppercase;font-weight:var(--font-weight-medium)}.colour-picker-container.svelte-11ma2jy{margin-top:var(--space-2);margin-bottom:var(--space-2)}.device-type.svelte-11ma2jy,.brand-info.svelte-11ma2jy{align-items:center;gap:var(--space-2);display:flex}.display-name-display.svelte-11ma2jy{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--colour-text);font-size:var(--font-size-base);transition:border-color .15s;display:flex}.display-name-display.svelte-11ma2jy:hover{border-color:var(--colour-selection)}.display-name-display.svelte-11ma2jy:focus{outline:2px solid var(--colour-selection);outline-offset:2px}.display-name-text.svelte-11ma2jy{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.edit-icon-wrapper.svelte-11ma2jy{opacity:.6;flex-shrink:0;align-items:center;display:flex}.edit-icon-wrapper.svelte-11ma2jy svg{width:var(--icon-size-xs);height:var(--icon-size-xs)}.display-name-display.svelte-11ma2jy:hover .edit-icon-wrapper:where(.svelte-11ma2jy){opacity:1}.notes-section.svelte-11ma2jy{gap:var(--space-1-5);flex-direction:column;display:flex}.notes-text.svelte-11ma2jy{font-size:var(--font-size-base);color:var(--colour-text-muted);white-space:pre-wrap;margin:0;line-height:1.5}.actions.svelte-11ma2jy{margin-top:var(--space-6)}.btn-danger.svelte-11ma2jy{width:100%;padding:var(--space-3) var(--space-4);background:var(--colour-error);border-radius:var(--radius-sm);color:#fff;font-size:var(--font-size-base);cursor:pointer;transition:background-color var(--duration-fast);border:none;font-weight:500}.btn-danger.svelte-11ma2jy:hover{background:var(--colour-error-hover)}.btn-delete-type.svelte-11ma2jy{margin-top:var(--space-2)}.position-row.svelte-11ma2jy{align-items:flex-start}.position-controls.svelte-11ma2jy{align-items:center;gap:var(--space-2);display:flex}.position-value.svelte-11ma2jy{font-variant-numeric:tabular-nums;min-width:2.5em}.position-buttons.svelte-11ma2jy{align-items:center;gap:var(--space-1);display:flex}.position-btn.svelte-11ma2jy{background:var(--button-bg);border:1px solid var(--colour-border);border-radius:var(--radius-sm);width:24px;height:24px;color:var(--colour-text);cursor:pointer;transition:background-color var(--duration-fast), border-color var(--duration-fast);justify-content:center;align-items:center;padding:0;display:flex}.position-btn.svelte-11ma2jy svg{width:var(--icon-size-xs);height:var(--icon-size-xs)}.position-btn.svelte-11ma2jy:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--colour-selection)}.position-btn.svelte-11ma2jy:disabled{opacity:.4;cursor:not-allowed}.position-btn.svelte-11ma2jy:focus-visible{outline:2px solid var(--colour-selection);outline-offset:1px}.position-btn-fine.svelte-11ma2jy{background:var(--colour-surface)}.position-btn-fine.svelte-11ma2jy:hover:not(:disabled){background:var(--colour-selection);color:#fff;border-color:var(--colour-selection)}.fine-label.svelte-11ma2jy{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.arrow-label.svelte-11ma2jy{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1}.position-divider.svelte-11ma2jy{background:var(--colour-border);width:1px;height:16px;margin:0 var(--space-1)}.position-hint.svelte-11ma2jy{margin-top:var(--space-1)}.notes-preview.svelte-11ma2jy{margin-top:var(--space-2);padding:var(--space-2);background:var(--colour-surface-secondary);border-radius:var(--radius-md);border:1px solid var(--colour-border)}.preview-label.svelte-11ma2jy{font-size:var(--font-size-xs);color:var(--colour-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em;font-weight:500;display:block}.container-context.svelte-11ma2jy{background:var(--colour-surface-secondary);border-radius:var(--radius-md);padding:var(--space-3)}.context-header.svelte-11ma2jy{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold);color:var(--dracula-purple);display:flex}.context-icon.svelte-11ma2jy{flex-shrink:0}.context-label.svelte-11ma2jy{font-size:var(--font-size-sm)}.context-details.svelte-11ma2jy{gap:var(--space-1);flex-direction:column;display:flex}.context-row.svelte-11ma2jy{font-size:var(--font-size-sm);justify-content:space-between;display:flex}.context-key.svelte-11ma2jy{color:var(--colour-text-muted)}.context-value.svelte-11ma2jy{color:var(--colour-text)}.toast.svelte-1cpok13{border-radius:var(--radius-md);background:var(--toast-bg);border:1px solid var(--toast-border);box-shadow:var(--shadow-md);align-items:center;gap:.75rem;min-width:280px;max-width:420px;padding:.75rem 1rem;animation:.2s ease-out svelte-1cpok13-slideIn;display:flex}@keyframes svelte-1cpok13-slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes svelte-1cpok13-slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes svelte-1cpok13-success-glow{0%{box-shadow:var(--shadow-md), 0 0 0 0 #50fa7b66}to{box-shadow:var(--shadow-md), 0 0 0 8px transparent}}.toast--exiting.svelte-1cpok13{animation:svelte-1cpok13-slideOut var(--anim-toast-exit,.3s) ease-in forwards}.toast--success-glow.svelte-1cpok13{animation:svelte-1cpok13-slideIn .2s ease-out, svelte-1cpok13-success-glow var(--anim-success-glow,.5s) ease-out}.toast--success.svelte-1cpok13{border-left:4px solid var(--colour-success)}.toast--error.svelte-1cpok13{border-left:4px solid var(--colour-error)}.toast--warning.svelte-1cpok13{border-left:4px solid var(--colour-warning)}.toast--info.svelte-1cpok13{border-left:4px solid var(--colour-info)}.toast__icon.svelte-1cpok13{flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.875rem;font-weight:700;display:flex}.toast--success.svelte-1cpok13 .toast__icon:where(.svelte-1cpok13){color:var(--colour-success)}.toast--error.svelte-1cpok13 .toast__icon:where(.svelte-1cpok13){color:var(--colour-error)}.toast--warning.svelte-1cpok13 .toast__icon:where(.svelte-1cpok13){color:var(--colour-warning)}.toast--info.svelte-1cpok13 .toast__icon:where(.svelte-1cpok13){color:var(--colour-info)}.toast__message.svelte-1cpok13{color:var(--colour-text);word-break:break-word;flex:1;font-size:.875rem}.toast__action.svelte-1cpok13{color:var(--colour-selection);border:1px solid var(--colour-selection);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;padding:.25rem .75rem;font-size:.75rem;font-weight:600;transition:all .15s}.toast__action.svelte-1cpok13:hover{background:var(--colour-selection);color:var(--colour-text-on-selection,var(--colour-bg))}.toast__action.svelte-1cpok13:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.toast__dismiss.svelte-1cpok13{border-radius:var(--radius-sm);cursor:pointer;width:1.5rem;height:1.5rem;color:var(--colour-text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;transition:all .15s;display:flex}.toast__dismiss.svelte-1cpok13:hover{background:var(--colour-hover);color:var(--colour-text)}.toast__dismiss.svelte-1cpok13:focus-visible{outline:2px solid var(--colour-selection);outline-offset:1px}.toast-container.svelte-cqwvc2{bottom:calc(1.5rem + var(--safe-area-bottom,0px) + var(--keyboard-height,0px));z-index:9999;pointer-events:none;flex-direction:column-reverse;gap:.75rem;display:flex;position:fixed;right:1.5rem}.toast-container.svelte-cqwvc2 .toast{pointer-events:auto}@media (width<=480px){.toast-container.svelte-cqwvc2{left:1rem;right:1rem;bottom:calc(1rem + var(--safe-area-bottom,0px) + var(--keyboard-height,0px))}.toast-container.svelte-cqwvc2 .toast{min-width:0;max-width:none}}.port-tooltip.svelte-1lfkf0u{z-index:var(--z-tooltip);padding:var(--space-2);background-color:var(--colour-surface-overlay);color:var(--colour-text-inverse);font-size:var(--font-size-xs);border-radius:var(--radius-sm);pointer-events:none;box-shadow:var(--shadow-md);gap:var(--space-1);min-width:120px;max-width:200px;transform:translate(-50%, -100%) translateY(calc(-1 * var(--space-2)));animation:svelte-1lfkf0u-tooltip-fade-in var(--duration-fast,.1s) var(--ease-out,ease-out);flex-direction:column;display:flex;position:fixed}@keyframes svelte-1lfkf0u-tooltip-fade-in{0%{opacity:0;transform:translate(-50%, -100%) translateY(calc(-1 * var(--space-1)))}to{opacity:1;transform:translate(-50%, -100%) translateY(calc(-1 * var(--space-2)))}}.port-tooltip-name.svelte-1lfkf0u{font-weight:600;font-family:var(--font-mono,monospace);color:var(--colour-text-inverse);word-break:break-word}.port-tooltip-type.svelte-1lfkf0u{color:var(--colour-text-muted-inverse,#ffffffb3);font-size:var(--font-size-xs)}.port-tooltip-badge.svelte-1lfkf0u{align-items:center;gap:var(--space-1);padding:var(--space-0-5) var(--space-1-5);border-radius:var(--radius-xs,2px);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);display:inline-flex}.port-tooltip-badge.mgmt.svelte-1lfkf0u{color:var(--colour-text-inverse);background-color:#ffffff26}.port-tooltip-badge.poe.svelte-1lfkf0u{color:var(--colour-warning,#fbbf24);background-color:#fbbf2433}@media (prefers-reduced-motion:reduce){.port-tooltip.svelte-1lfkf0u{animation:none}}.drag-tooltip.svelte-6mhsel{z-index:var(--z-tooltip,1000);width:var(--drag-tooltip-width,160px);padding:var(--space-1) var(--space-3);background-color:var(--colour-surface-overlay,#000000e6);color:var(--colour-text-inverse,white);font-size:var(--font-size-sm);border-radius:var(--radius-sm);border-left:var(--drag-tooltip-border-width,var(--space-1)) solid var(--colour-primary);pointer-events:none;box-shadow:var(--shadow-lg);animation:svelte-6mhsel-drag-tooltip-fade-in var(--duration-fast,.1s) var(--ease-out,ease-out);justify-content:center;align-items:center;display:flex;position:fixed}@keyframes svelte-6mhsel-drag-tooltip-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.device-name.svelte-6mhsel{font-weight:var(--font-weight-medium,500);max-width:var(--drag-tooltip-max-width,140px);text-overflow:ellipsis;white-space:nowrap;text-align:center;overflow:hidden}@media (prefers-reduced-motion:reduce){.drag-tooltip.svelte-6mhsel{animation:none}}.mobile-history-controls.svelte-11yiss3{top:var(--space-2);right:max(var(--space-3), env(safe-area-inset-right,0px));z-index:calc(var(--z-toolbar) + 1);align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-full);border:1px solid var(--bottom-nav-border);background:var(--bottom-nav-bg);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);display:inline-flex;position:absolute}.history-button.svelte-11yiss3{min-width:var(--touch-target-min);min-height:var(--touch-target-min);width:var(--touch-target-min);height:var(--touch-target-min);border-radius:var(--radius-full);color:var(--colour-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.history-button.svelte-11yiss3:hover:not(:disabled){background:var(--colour-overlay-hover);color:var(--colour-primary)}.history-button.svelte-11yiss3:active:not(:disabled){transform:scale(.97)}.history-button.svelte-11yiss3:focus-visible{box-shadow:var(--focus-ring-glow);color:var(--colour-primary);outline:none}.history-button.svelte-11yiss3:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.history-button.svelte-11yiss3{transition:none}}.rack-indicator.svelte-qr0mo7{padding:var(--space-1) var(--space-4);background:var(--colour-toolbar-bg);border-bottom:1px solid var(--colour-border);flex-direction:column;flex-shrink:0;align-items:center;display:flex}.rack-name.svelte-qr0mo7{font-size:var(--font-size-sm);color:var(--colour-text);font-weight:500}.rack-nav.svelte-qr0mo7{align-items:center;gap:var(--space-0-5);display:flex}.dot.svelte-qr0mo7{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:flex}.dot.svelte-qr0mo7:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:-2px;border-radius:var(--radius-md)}.dot-indicator.svelte-qr0mo7{border:1.5px solid var(--colour-text-muted);width:8px;height:8px;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;border-radius:50%}.dot.active.svelte-qr0mo7 .dot-indicator:where(.svelte-qr0mo7){background:var(--colour-primary);border-color:var(--colour-primary)}.rack-counter.svelte-qr0mo7{font-size:var(--font-size-sm);color:var(--colour-text-muted);font-variant-numeric:tabular-nums}.sidebar-tabs{display:contents}.tabs-list{gap:var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--colour-border);background:var(--colour-sidebar-bg);display:flex}.tab-btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--colour-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;flex:1;display:flex}.tab-btn:hover{background:var(--colour-surface-hover);color:var(--colour-text)}.tab-btn[data-state=active]{background:var(--colour-surface-active);border-color:var(--colour-border);color:var(--colour-text)}.tab-btn:focus-visible{outline:2px solid var(--colour-selection);outline-offset:-2px}.tab-icon.svelte-bn0mgk{font-size:var(--font-size-base)}@media (width<=280px){.tab-label.svelte-bn0mgk{display:none}}.rack-list.svelte-1vk96f9{flex-direction:column;height:100%;display:flex}.rack-list-header.svelte-1vk96f9{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--colour-border);justify-content:space-between;align-items:center;display:flex}.rack-count.svelte-1vk96f9{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.new-rack-btn.svelte-1vk96f9{width:var(--space-8);height:var(--space-8);font-size:var(--font-size-lg);color:var(--colour-text-muted);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;justify-content:center;align-items:center;padding:0;font-weight:400;line-height:1;display:flex}.new-rack-btn.svelte-1vk96f9:hover{color:var(--colour-text);background:var(--colour-surface-hover);border-color:var(--colour-border-hover)}.new-rack-btn.svelte-1vk96f9:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.new-rack-btn.svelte-1vk96f9:active{background:var(--colour-surface-active)}.rack-items.svelte-1vk96f9{padding:var(--space-2);flex:1;overflow-y:auto}.rack-item.svelte-1vk96f9{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;display:flex}.rack-item.svelte-1vk96f9:hover{background:var(--colour-surface-hover)}.rack-item.active.svelte-1vk96f9{background:var(--colour-surface-active);border-color:var(--colour-selection)}.rack-item.svelte-1vk96f9:focus-visible{outline:2px solid var(--colour-selection);outline-offset:-2px}.rack-indicator.svelte-1vk96f9{color:var(--colour-selection);flex-shrink:0}.rack-info.svelte-1vk96f9{gap:var(--space-0-5,2px);flex-direction:column;flex:1;min-width:0;display:flex}.rack-name.svelte-1vk96f9{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--colour-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rack-meta.svelte-1vk96f9{font-size:var(--font-size-xs);color:var(--colour-text-muted)}.rack-delete.svelte-1vk96f9{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--colour-text-muted);font-size:var(--font-size-sm);cursor:pointer;opacity:0;transition:all var(--duration-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rack-item.svelte-1vk96f9:hover .rack-delete:where(.svelte-1vk96f9),.rack-item.svelte-1vk96f9:focus-within .rack-delete:where(.svelte-1vk96f9){opacity:1}.rack-delete.svelte-1vk96f9:hover{background:var(--colour-error);color:var(--colour-text-on-error,#fff)}.rack-delete.svelte-1vk96f9:focus-visible{opacity:1;outline:2px solid var(--colour-selection);outline-offset:1px}.empty-state.svelte-1vk96f9{padding:var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-message.svelte-1vk96f9{font-size:var(--font-size-base);color:var(--colour-text);margin:0}.empty-hint.svelte-1vk96f9{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--colour-text-muted)}.layout-card.svelte-16wf9jk{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--colour-button-bg);border:2px solid var(--colour-border);border-radius:var(--radius-lg,8px);cursor:pointer;min-width:140px;transition:all var(--transition-fast);text-align:center;flex-direction:column;display:flex}.layout-card.svelte-16wf9jk:hover:not(.disabled){background:var(--colour-button-hover);border-color:var(--colour-text-muted)}.layout-card.svelte-16wf9jk:focus-visible{box-shadow:var(--focus-ring-glow);outline:none}.layout-card.selected.svelte-16wf9jk{border-color:var(--colour-selection);background:color-mix(in srgb, var(--colour-selection) 10%, transparent)}.layout-card.selected.svelte-16wf9jk:hover{background:color-mix(in srgb, var(--colour-selection) 15%, transparent)}.layout-card.disabled.svelte-16wf9jk{opacity:.5;cursor:not-allowed}.icon-container.svelte-16wf9jk{justify-content:center;align-items:center;min-height:80px;display:flex}.card-text.svelte-16wf9jk{gap:var(--space-1);flex-direction:column;display:flex}.card-title.svelte-16wf9jk{font-weight:var(--font-weight-semibold,600);font-size:var(--font-size-base);color:var(--colour-text)}.card-subtitle.svelte-16wf9jk{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.card-description.svelte-16wf9jk{font-size:var(--font-size-xs,.75rem);color:var(--colour-text-muted);opacity:.8}.disabled-message.svelte-16wf9jk{font-size:var(--font-size-xs,.75rem);color:var(--colour-warning);margin-top:var(--space-1)}.wizard-form.svelte-rtas6a{gap:var(--space-5);flex-direction:column;display:flex}.step-indicator.svelte-rtas6a{display:flex}.step-text.svelte-rtas6a{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.step-content.svelte-rtas6a{gap:var(--space-5);flex-direction:column;min-height:180px;display:flex}.form-group.svelte-rtas6a{gap:var(--space-2);flex-direction:column;display:flex}.form-group.svelte-rtas6a label:where(.svelte-rtas6a),.form-group.svelte-rtas6a .form-label:where(.svelte-rtas6a){font-weight:var(--font-weight-medium);color:var(--colour-text)}.form-group.svelte-rtas6a input[type=text]:where(.svelte-rtas6a),.form-group.svelte-rtas6a input[type=number]:where(.svelte-rtas6a){padding:var(--space-2) var(--space-3);background:var(--colour-input-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base)}.form-group.svelte-rtas6a input:where(.svelte-rtas6a):focus{border-color:var(--colour-selection);box-shadow:var(--glow-pink-sm);outline:none}.form-group.svelte-rtas6a input.error:where(.svelte-rtas6a){border-color:var(--colour-error)}.error-message.svelte-rtas6a{font-size:var(--font-size-sm);color:var(--colour-error)}.width-options-vertical.svelte-rtas6a{gap:var(--space-2);flex-direction:column;display:flex}.width-card.svelte-rtas6a{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--colour-button-bg);border:2px solid var(--colour-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.width-card.svelte-rtas6a:hover{background:var(--colour-button-hover);border-color:var(--colour-border-hover,var(--colour-border))}.width-card.selected.svelte-rtas6a{background:color-mix(in srgb, var(--colour-selection) 15%, transparent);border-color:var(--colour-selection)}.width-card.svelte-rtas6a input[type=radio]:where(.svelte-rtas6a){width:18px;height:18px;accent-color:var(--colour-selection);cursor:pointer;flex-shrink:0}.width-card-content.svelte-rtas6a{gap:var(--space-1);flex-direction:column;display:flex}.width-card-header.svelte-rtas6a{align-items:baseline;gap:var(--space-2);display:flex}.width-card-label.svelte-rtas6a{font-weight:var(--font-weight-medium);color:var(--colour-text);font-size:var(--font-size-base)}.width-card-size.svelte-rtas6a,.width-card-description.svelte-rtas6a{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.height-section.svelte-rtas6a{animation:.3s ease-out svelte-rtas6a-fadeSlideIn}@keyframes svelte-rtas6a-fadeSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.layout-cards.svelte-rtas6a{gap:var(--space-4);justify-content:center;display:flex}.bay-buttons.svelte-rtas6a{gap:var(--space-2);display:flex}.bay-btn.svelte-rtas6a{padding:var(--space-2) var(--space-4);background:var(--colour-button-bg);border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast)}.bay-btn.svelte-rtas6a:hover{background:var(--colour-button-hover)}.bay-btn.selected.svelte-rtas6a{background:var(--colour-selection);border-color:var(--colour-selection);color:var(--colour-text-on-primary)}.height-buttons.svelte-rtas6a{gap:var(--space-2);flex-wrap:wrap;display:flex}.height-btn.svelte-rtas6a{padding:var(--space-2) var(--space-4);background:var(--colour-button-bg);border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast)}.height-btn.svelte-rtas6a:hover{background:var(--colour-button-hover)}.height-btn.selected.svelte-rtas6a{background:var(--colour-selection);border-color:var(--colour-selection);color:var(--colour-text-on-primary)}.custom-height-input.svelte-rtas6a{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.custom-height-input.svelte-rtas6a input:where(.svelte-rtas6a){width:var(--input-width-custom,100px);padding:var(--space-2) var(--space-3);background:var(--colour-input-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base)}.custom-height-input.svelte-rtas6a .unit:where(.svelte-rtas6a){color:var(--colour-text-muted);font-size:var(--font-size-base)}.sr-only.svelte-rtas6a{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-actions.svelte-rtas6a{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.btn.svelte-rtas6a{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn.svelte-rtas6a:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-rtas6a{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-rtas6a:hover:not(:disabled){background:var(--colour-button-hover)}.btn-primary.svelte-rtas6a{background:var(--colour-button-primary);color:var(--colour-text-on-primary)}.btn-primary.svelte-rtas6a:hover:not(:disabled){background:var(--colour-button-primary-hover)}.switch-group.svelte-1eq0goo{gap:var(--space-1);flex-direction:column;display:flex}.switch-row.svelte-1eq0goo{align-items:center;gap:var(--space-2);display:flex}.switch-group.svelte-1eq0goo .switch-root{background:var(--colour-surface-active);border-radius:var(--radius-full);cursor:pointer;width:40px;height:22px;transition:background var(--duration-fast) var(--ease-out);border:none;flex-shrink:0;padding:0;position:relative}.switch-group.svelte-1eq0goo .switch-root:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.switch-group.svelte-1eq0goo .switch-root[data-disabled]{opacity:.5;cursor:not-allowed}.switch-group.svelte-1eq0goo .switch-root[data-state=checked]{background:var(--colour-selection)}.switch-group.svelte-1eq0goo .switch-thumb{background:var(--colour-text-muted);width:18px;height:18px;transition:all var(--duration-fast) var(--ease-out);border-radius:50%;display:block;position:absolute;top:2px;left:2px}.switch-group.svelte-1eq0goo .switch-root[data-state=checked] .switch-thumb{background:var(--colour-text-inverse);transform:translate(18px)}.switch-label.svelte-1eq0goo{font-weight:var(--font-weight-medium);color:var(--colour-text);font-size:var(--font-size-base);cursor:pointer;-webkit-user-select:none;user-select:none}.switch-label.disabled.svelte-1eq0goo{opacity:.5;cursor:not-allowed}.helper-text.svelte-1eq0goo{font-size:var(--font-size-sm);color:var(--colour-text-muted);margin-left:calc(40px + var(--space-2))}.add-device-form.svelte-1547zar{gap:var(--space-4);flex-direction:column;display:flex}.form-group.svelte-1547zar{gap:var(--space-1-5);flex-direction:column;display:flex}.form-group.svelte-1547zar label:where(.svelte-1547zar){font-weight:var(--font-weight-medium);color:var(--colour-text);font-size:var(--font-size-base)}.form-row.svelte-1547zar{gap:var(--space-4);grid-template-columns:1fr 2fr;display:grid}.form-row-symmetric.svelte-1547zar{grid-template-columns:1fr 1fr}.form-group.svelte-1547zar input[type=text]:where(.svelte-1547zar),.form-group.svelte-1547zar input[type=number]:where(.svelte-1547zar),.form-group.svelte-1547zar select:where(.svelte-1547zar),.form-group.svelte-1547zar textarea:where(.svelte-1547zar){padding:var(--space-2) var(--space-3);background:var(--colour-input-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base);font-family:inherit}.form-group.svelte-1547zar textarea:where(.svelte-1547zar){resize:vertical;min-height:60px}.form-group.svelte-1547zar input:where(.svelte-1547zar):focus,.form-group.svelte-1547zar select:where(.svelte-1547zar):focus,.form-group.svelte-1547zar textarea:where(.svelte-1547zar):focus{border-color:var(--colour-selection);box-shadow:var(--glow-pink-sm);outline:none}.form-group.svelte-1547zar input.error:where(.svelte-1547zar){border-color:var(--colour-error)}.error-message.svelte-1547zar{font-size:var(--font-size-sm);color:var(--colour-error)}.colour-input-wrapper.svelte-1547zar{align-items:center;gap:var(--space-3);display:flex}.colour-input.svelte-1547zar{border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:50px;height:36px;padding:2px}.colour-input.svelte-1547zar::-webkit-color-swatch{border:none;border-radius:2px}.colour-hex.svelte-1547zar{font-family:monospace;font-size:var(--font-size-base);color:var(--colour-text-muted)}.colour-presets.svelte-1547zar{gap:var(--space-1-5);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.colour-preset.svelte-1547zar{border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;transition:transform var(--transition-fast);padding:0}.colour-preset.svelte-1547zar:hover{transform:scale(1.1)}.colour-preset.svelte-1547zar:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.form-actions.svelte-1547zar{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.btn.svelte-1547zar{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn-secondary.svelte-1547zar{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-1547zar:hover{background:var(--colour-button-hover)}.btn-primary.svelte-1547zar{background:var(--colour-selection);color:#fff}.btn-primary.svelte-1547zar:hover{background:var(--colour-selection-hover)}.import-dialog.svelte-r0h9nb{gap:var(--space-4);flex-direction:column;display:flex}.input-tabs-root{display:contents}.input-tabs{gap:var(--space-1);border-bottom:1px solid var(--colour-border);padding-bottom:var(--space-2);display:flex}.tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--colour-text-muted);cursor:pointer;font-size:var(--font-size-base);transition:all var(--transition-fast);background:0 0;border:none}.tab:hover{color:var(--colour-text);background:var(--colour-surface-hover)}.tab[data-state=active]{color:var(--colour-selection);border-bottom:2px solid var(--colour-selection);margin-bottom:-1px}.tab:focus-visible{outline:2px solid var(--colour-selection);outline-offset:-2px}.input-area{min-height:200px}.yaml-input.svelte-r0h9nb{width:100%;min-height:200px;padding:var(--space-3);background:var(--colour-input-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.yaml-input.svelte-r0h9nb:focus{border-color:var(--colour-selection);box-shadow:var(--glow-pink-sm);outline:none}.file-upload.svelte-r0h9nb{border:2px dashed var(--colour-border);border-radius:var(--radius-md);min-height:200px;padding:var(--space-6);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.file-input.svelte-r0h9nb{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-label.svelte-r0h9nb{align-items:center;gap:var(--space-2);color:var(--colour-text-muted);cursor:pointer;transition:color var(--transition-fast);flex-direction:column;display:flex}.file-label.svelte-r0h9nb:hover{color:var(--colour-selection)}.file-label.svelte-r0h9nb svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}.file-loaded.svelte-r0h9nb{color:var(--colour-success);font-size:var(--font-size-sm);margin:0}.parse-btn.svelte-r0h9nb{align-self:flex-start}.error-message.svelte-r0h9nb{padding:var(--space-3);background:var(--colour-error-bg,#ff55551a);border:1px solid var(--colour-error);border-radius:var(--radius-md);color:var(--colour-error);font-size:var(--font-size-sm)}.preview-section.svelte-r0h9nb{gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--colour-border);flex-direction:column;display:flex}.preview-title.svelte-r0h9nb{font-size:var(--font-size-base);color:var(--colour-text);margin:0;font-weight:600}.preview-card.svelte-r0h9nb{padding:var(--space-4);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);border-left-width:4px}.preview-header.svelte-r0h9nb{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.preview-manufacturer.svelte-r0h9nb{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.preview-model.svelte-r0h9nb{font-size:var(--font-size-lg);color:var(--colour-text);font-weight:600}.preview-details.svelte-r0h9nb{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.detail-item.svelte-r0h9nb{gap:var(--space-0-5);flex-direction:column;display:flex}.detail-label.svelte-r0h9nb{font-size:var(--font-size-xs);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-value.svelte-r0h9nb{font-size:var(--font-size-sm);color:var(--colour-text)}code.detail-value.svelte-r0h9nb{font-family:var(--font-mono);background:var(--colour-surface-hover);padding:var(--space-0-5) var(--space-1);border-radius:var(--radius-sm)}.override-row.svelte-r0h9nb{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.override-group.svelte-r0h9nb{gap:var(--space-1-5);flex-direction:column;display:flex}.override-group.svelte-r0h9nb label:where(.svelte-r0h9nb),.override-group.svelte-r0h9nb .group-label:where(.svelte-r0h9nb){font-weight:var(--font-weight-medium);color:var(--colour-text);font-size:var(--font-size-sm)}.input-field.svelte-r0h9nb{padding:var(--space-2) var(--space-3);background:var(--colour-input-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);font-size:var(--font-size-base)}.input-field.svelte-r0h9nb:focus{border-color:var(--colour-selection);box-shadow:var(--glow-pink-sm);outline:none}.colour-input-wrapper.svelte-r0h9nb{align-items:center;gap:var(--space-2);display:flex}.colour-input.svelte-r0h9nb{border:1px solid var(--colour-border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:40px;height:32px;padding:2px}.colour-input.svelte-r0h9nb::-webkit-color-swatch{border:none;border-radius:2px}.colour-hex.svelte-r0h9nb{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--colour-text-muted)}.rack-width-selector.svelte-r0h9nb{gap:var(--space-1);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-1);display:flex}.rack-width-btn.svelte-r0h9nb{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--colour-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1}.rack-width-btn.svelte-r0h9nb:hover{color:var(--colour-text);background:var(--colour-surface-hover)}.rack-width-btn.selected.svelte-r0h9nb{background:var(--colour-selection);color:var(--colour-text-on-primary)}.rack-width-btn.svelte-r0h9nb:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.reset-btn.svelte-r0h9nb{align-self:flex-start}.form-actions.svelte-r0h9nb{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--colour-border);display:flex}.btn.svelte-r0h9nb{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn.svelte-r0h9nb:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-r0h9nb{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-r0h9nb:hover:not(:disabled){background:var(--colour-button-hover)}.btn-primary.svelte-r0h9nb{background:var(--colour-selection);color:var(--colour-text-on-primary)}.btn-primary.svelte-r0h9nb:hover:not(:disabled){background:var(--colour-selection-hover)}.dialog{padding:var(--space-5)}.dialog-title{margin-bottom:var(--space-3)}.message{margin:0 0 var(--space-5) 0;color:var(--colour-text-muted);line-height:1.5}.actions.svelte-2301vw{gap:var(--space-3);justify-content:flex-end;display:flex}.btn.svelte-2301vw{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;border:none;font-size:.875rem;font-weight:500;transition:opacity .15s}.btn.svelte-2301vw:hover{opacity:.9}.btn.svelte-2301vw:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.btn-primary.svelte-2301vw{background:var(--colour-button-primary);color:var(--colour-text-on-primary)}.btn-primary.svelte-2301vw:hover{background:var(--colour-button-primary-hover)}.btn-destructive.svelte-2301vw{background:var(--colour-button-destructive);color:var(--colour-text-on-primary)}.btn-destructive.svelte-2301vw:hover{background:var(--colour-button-destructive-hover)}.btn-secondary.svelte-2301vw{border:1px solid var(--colour-border);color:var(--colour-text);background:0 0}.btn-secondary.svelte-2301vw:hover{background:var(--colour-surface-hover)}.cleanup-dialog.svelte-2v7yc{gap:var(--space-4);flex-direction:column;display:flex}.summary.svelte-2v7yc{font-size:var(--font-size-base);color:var(--colour-text-secondary);margin:0}.select-buttons.svelte-2v7yc{gap:var(--space-3);display:flex}.btn-text.svelte-2v7yc{color:var(--colour-selection);font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none}.btn-text.svelte-2v7yc:hover:not(:disabled){background:var(--colour-button-bg)}.btn-text.svelte-2v7yc:disabled{color:var(--colour-text-muted);cursor:not-allowed}.device-list.svelte-2v7yc{gap:var(--space-2);max-height:300px;padding:var(--space-2);background:var(--colour-panel-bg);border-radius:var(--radius-md);border:1px solid var(--colour-border);flex-direction:column;display:flex;overflow-y:auto}.device-item.svelte-2v7yc{align-items:center;gap:var(--space-3);padding:var(--space-2);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);display:flex}.device-item.svelte-2v7yc:hover{background:var(--colour-hover)}.device-item.svelte-2v7yc input[type=checkbox]:where(.svelte-2v7yc){cursor:pointer;width:16px;height:16px;accent-color:var(--colour-selection)}.device-name.svelte-2v7yc{color:var(--colour-text);font-size:var(--font-size-base);flex:1}.device-category.svelte-2v7yc{color:var(--colour-text-muted);font-size:var(--font-size-sm)}.actions.svelte-2v7yc{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--colour-border);display:flex}.actions-centered.svelte-2v7yc{justify-content:center}.empty-state.svelte-2v7yc{text-align:center;color:var(--colour-text-secondary);font-size:var(--font-size-base);padding:var(--space-6) 0;margin:0}.btn.svelte-2v7yc{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn.svelte-2v7yc:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-2v7yc{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-2v7yc:hover:not(:disabled){background:var(--colour-button-hover)}.btn-destructive.svelte-2v7yc{background:var(--colour-error);color:var(--colour-text-inverse)}.btn-destructive.svelte-2v7yc:hover:not(:disabled){background:var(--colour-error-hover)}.btn.svelte-2v7yc:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.cleanup-prompt-dialog.svelte-bi9iim{gap:var(--space-5);flex-direction:column;display:flex}.message.svelte-bi9iim{font-size:var(--font-size-base);color:var(--colour-text);margin:0;line-height:1.5}.hint.svelte-bi9iim{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.dont-ask-again.svelte-bi9iim{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--colour-text-muted);display:flex}.dont-ask-again.svelte-bi9iim label:where(.svelte-bi9iim){cursor:pointer}.dont-ask-again.svelte-bi9iim input[type=checkbox]:where(.svelte-bi9iim){cursor:pointer;width:16px;height:16px;accent-color:var(--colour-selection);margin:0}.actions.svelte-bi9iim{justify-content:flex-end;gap:var(--space-3);display:flex}.btn.svelte-bi9iim{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn-secondary.svelte-bi9iim{background:var(--colour-button-bg);color:var(--colour-text)}.btn-secondary.svelte-bi9iim:hover{background:var(--colour-button-hover)}.btn-primary.svelte-bi9iim{background:var(--colour-selection);color:var(--colour-text-on-primary)}.btn-primary.svelte-bi9iim:hover{background:var(--colour-selection-hover)}.btn.svelte-bi9iim:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.logo-loader.svelte-m1h1m0{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.logo-mark.svelte-m1h1m0{color:var(--dracula-purple);filter:drop-shadow(0 0 8px #bd93f94d)}.frame.svelte-m1h1m0{stroke:var(--dracula-purple)}.slot.svelte-m1h1m0{fill:var(--dracula-purple);transform-origin:0;animation:slot-fill var(--anim-loading,2s) ease-in-out infinite}.slot-1.svelte-m1h1m0{animation-delay:0s}.slot-2.svelte-m1h1m0{animation-delay:.3s}.slot-3.svelte-m1h1m0{animation-delay:.6s}.loader-message.svelte-m1h1m0{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--colour-text-muted);text-align:center}@media (prefers-reduced-motion:reduce){.slot.svelte-m1h1m0{opacity:.6;animation:none}.slot-1.svelte-m1h1m0{opacity:1}.slot-2.svelte-m1h1m0{opacity:.8}.slot-3.svelte-m1h1m0{opacity:.6}}.shimmer-container.svelte-j4afnf{position:relative;overflow:hidden}.shimmer-overlay.svelte-j4afnf{animation:shimmer var(--anim-shimmer,2s) infinite;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff14 50%,#0000 100%) 0 0/200% 100%;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.shimmer-overlay.svelte-j4afnf{background:#ffffff08;animation:none}}.checkbox-wrapper.svelte-136uhkj{align-items:center;gap:var(--space-2);display:flex}.checkbox-wrapper.svelte-136uhkj button{cursor:pointer;color:var(--colour-text);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.checkbox-wrapper.svelte-136uhkj button:hover:not([data-disabled]){color:var(--colour-selection)}.checkbox-wrapper.svelte-136uhkj button:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.checkbox-wrapper.svelte-136uhkj button[data-disabled]{opacity:.5;cursor:not-allowed}.checkbox-wrapper.svelte-136uhkj button[data-state=checked],.checkbox-wrapper.svelte-136uhkj button[data-state=indeterminate]{color:var(--colour-selection)}.checkbox-indicator.svelte-136uhkj{justify-content:center;align-items:center;display:flex}.checkbox-label.svelte-136uhkj{font-size:var(--font-size-base);color:var(--colour-text);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label.disabled.svelte-136uhkj{opacity:.5;cursor:not-allowed}.export-form.svelte-19mnd4u{gap:var(--space-4);padding:var(--space-2) 0;flex-direction:column;width:100%;min-width:0;display:flex}.form-group.svelte-19mnd4u{gap:var(--space-1-5);flex-direction:column;display:flex}.form-group.svelte-19mnd4u label:where(.svelte-19mnd4u){font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--colour-text)}.form-group.svelte-19mnd4u select:where(.svelte-19mnd4u){padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--colour-text);font-size:var(--font-size-base);cursor:pointer}.form-group.svelte-19mnd4u select:where(.svelte-19mnd4u):focus{outline:2px solid var(--colour-selection);outline-offset:1px}.form-group.svelte-19mnd4u select:where(.svelte-19mnd4u) option:where(.svelte-19mnd4u):disabled{color:var(--colour-text-muted)}.csv-info.svelte-19mnd4u{color:var(--colour-text-muted);font-size:var(--font-size-sm);padding:var(--space-2) 0;margin:0;line-height:1.5}.rack-selection.svelte-19mnd4u{gap:var(--space-2)}.rack-selection-header.svelte-19mnd4u{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.section-label.svelte-19mnd4u{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--colour-text)}.rack-selection-actions.svelte-19mnd4u{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.btn-link.svelte-19mnd4u{color:var(--colour-selection);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;padding:0}.btn-link.svelte-19mnd4u:hover:not(:disabled){text-decoration:underline}.btn-link.svelte-19mnd4u:disabled{color:var(--colour-text-muted);cursor:not-allowed}.separator.svelte-19mnd4u{color:var(--colour-text-muted)}.rack-checklist.svelte-19mnd4u{gap:var(--space-1);border:1px solid var(--colour-border);border-radius:var(--radius-sm);max-height:120px;padding:var(--space-2);flex-direction:column;display:flex;overflow-y:auto}.rack-item.svelte-19mnd4u{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);font-weight:var(--font-weight-normal);display:flex}.rack-item.svelte-19mnd4u:hover{background:var(--colour-surface-hover)}.rack-item.svelte-19mnd4u input[type=checkbox]:where(.svelte-19mnd4u){width:var(--space-4);height:var(--space-4);accent-color:var(--colour-selection);cursor:pointer;flex-shrink:0}.rack-name.svelte-19mnd4u{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rack-height.svelte-19mnd4u{font-size:var(--font-size-xs);color:var(--colour-text-muted);flex-shrink:0}.rack-item.bayed-group.svelte-19mnd4u .rack-name:where(.svelte-19mnd4u):before{content:"";width:var(--space-1-5);height:var(--space-1-5);background:var(--colour-selection);margin-right:var(--space-1-5);vertical-align:middle;border-radius:50%;display:inline-block}.info-message.svelte-19mnd4u{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--colour-surface-hover);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--colour-text);display:flex}.info-icon.svelte-19mnd4u{flex-shrink:0}.preview-section.svelte-19mnd4u{--preview-max-width:280px;gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;width:100%;display:flex}.preview-label.svelte-19mnd4u{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--colour-text-muted)}.preview-container.svelte-19mnd4u{width:100%;max-width:var(--preview-max-width);border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--colour-surface);overflow:clip}.preview-container.transparent-bg.svelte-19mnd4u{background-image:linear-gradient(45deg,gray 25%,#0000 25%),linear-gradient(-45deg,gray 25%,#0000 25%),linear-gradient(45deg,#0000 75%,gray 75%),linear-gradient(-45deg,#0000 75%,gray 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px}.preview-container.svelte-19mnd4u svg{width:100%;height:auto;display:block}.preview-placeholder.svelte-19mnd4u{width:100%;max-width:var(--preview-max-width);border:1px dashed var(--colour-border);border-radius:var(--radius-sm);height:100px;color:var(--colour-text-muted);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.preview-loading.svelte-19mnd4u{width:100%;max-width:var(--preview-max-width);border:1px solid var(--colour-border);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:var(--space-3);background:var(--colour-surface);min-height:120px;padding:var(--space-4);flex-direction:column;display:flex}.progress-bar.svelte-19mnd4u{background:var(--colour-border);border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-fill.svelte-19mnd4u{background:var(--colour-selection);height:100%;transition:width .2s}.preview-pagination.svelte-19mnd4u{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.btn-icon.svelte-19mnd4u{background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);cursor:pointer;color:var(--colour-text);font-size:var(--font-size-sm)}.btn-icon.svelte-19mnd4u:hover:not(:disabled){background:var(--colour-surface-hover)}.btn-icon.svelte-19mnd4u:disabled{opacity:.5;cursor:not-allowed}.pagination-info.svelte-19mnd4u{font-size:var(--font-size-sm);color:var(--colour-text-muted)}.preview-rack-name.svelte-19mnd4u{text-align:center;font-size:var(--font-size-sm);color:var(--colour-text);margin-top:var(--space-1)}.checkbox-group.svelte-19mnd4u{flex-direction:row;align-items:center}.form-group.svelte-19mnd4u select:where(.svelte-19mnd4u):disabled{opacity:.6;cursor:not-allowed}.filename-preview.svelte-19mnd4u{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;margin-top:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.filename-label.svelte-19mnd4u{font-size:var(--font-size-sm);color:var(--colour-text-muted);flex-shrink:0}.filename-value.svelte-19mnd4u{min-width:0;font-size:var(--font-size-sm);color:var(--colour-text);background:var(--colour-surface-hover);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;overflow:hidden}.dialog-actions.svelte-19mnd4u{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--colour-border);flex-wrap:wrap;display:flex}.btn-secondary.svelte-19mnd4u,.btn-primary.svelte-19mnd4u{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--duration-fast) ease, opacity var(--duration-fast) ease}.btn-secondary.svelte-19mnd4u{border:1px solid var(--colour-border);color:var(--colour-text);background:0 0}.btn-secondary.svelte-19mnd4u:hover:not(:disabled){background:var(--colour-surface-hover)}.btn-secondary.svelte-19mnd4u:disabled{opacity:.5;cursor:not-allowed}.btn-primary.svelte-19mnd4u{background:var(--colour-selection);color:var(--neutral-50);border:none}.btn-primary.svelte-19mnd4u:hover:not(:disabled){background:var(--colour-selection-hover)}.btn-primary.svelte-19mnd4u:disabled{opacity:.5;cursor:not-allowed}.preview-error.svelte-19mnd4u{width:100%;max-width:var(--preview-max-width);border:1px solid var(--colour-error);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:var(--space-2);min-height:100px;padding:var(--space-4);background:var(--colour-surface);flex-direction:column;display:flex}.preview-error__icon.svelte-19mnd4u{font-size:var(--font-size-xl);color:var(--colour-error)}.preview-error__message.svelte-19mnd4u{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--colour-error);text-align:center}.preview-error__hint.svelte-19mnd4u{font-size:var(--font-size-xs);color:var(--colour-text-muted);text-align:center}@media (width<=480px){.btn-secondary.svelte-19mnd4u,.btn-primary.svelte-19mnd4u{flex:100%}}.share-dialog.svelte-1athwxr{gap:var(--space-5);flex-direction:column;width:100%;min-width:0;display:flex}.share-section.svelte-1athwxr{gap:var(--space-2);flex-direction:column;display:flex}.share-label.svelte-1athwxr{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--colour-text-muted)}.url-container.svelte-1athwxr{gap:var(--space-2);display:flex}.url-input.svelte-1athwxr{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--colour-text);font-size:var(--font-size-sm);font-family:var(--font-mono);flex:1}.url-input.svelte-1athwxr:focus{outline:2px solid var(--colour-selection);outline-offset:1px}.icon-btn.svelte-1athwxr{padding:var(--space-2);border:1px solid var(--colour-border);border-radius:var(--radius-sm);color:var(--colour-text);cursor:pointer;transition:background-color var(--duration-fast) ease;background:0 0;justify-content:center;align-items:center;display:flex}.icon-btn.svelte-1athwxr:hover{background:var(--colour-surface-hover)}.icon-btn.svelte-1athwxr:focus-visible{outline:2px solid var(--colour-selection);outline-offset:1px}.url-info.svelte-1athwxr{font-size:var(--font-size-xs);color:var(--colour-text-muted);margin:0}.url-info.svelte-1athwxr .warning:where(.svelte-1athwxr){color:var(--colour-warning,#f59e0b)}.qr-container.svelte-1athwxr{align-items:center;gap:var(--space-2);width:100%;max-width:100%;padding:var(--space-4);box-sizing:border-box;border-radius:var(--radius-md);background:#fff;flex-direction:column;display:flex}.qr-image.svelte-1athwxr{width:min(280px,100%);max-width:100%;height:auto;image-rendering:pixelated}.qr-scan-label.svelte-1athwxr{font-size:var(--font-size-sm);color:#333;margin:0}.qr-scan-label.svelte-1athwxr .brand:where(.svelte-1athwxr){color:var(--dracula-purple);font-weight:var(--font-weight-semibold)}.qr-message.svelte-1athwxr{padding:var(--space-4);text-align:center;color:var(--colour-text-muted);font-size:var(--font-size-sm)}.qr-error.svelte-1athwxr{color:var(--colour-error,#ef4444)}.qr-error.svelte-1athwxr .hint:where(.svelte-1athwxr){color:var(--colour-text-muted);margin-top:var(--space-1)}.share-info.svelte-1athwxr{padding:var(--space-3);background:var(--colour-surface);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--colour-text-muted)}.share-info.svelte-1athwxr p:where(.svelte-1athwxr){margin:0}.actions.svelte-1athwxr{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.btn.svelte-1athwxr{align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--duration-fast);border:none;font-weight:500;display:flex}.btn-primary.svelte-1athwxr{background:var(--colour-button-primary);color:var(--colour-text-on-primary)}.btn-primary.svelte-1athwxr:hover{background:var(--colour-button-primary-hover)}.btn-secondary.svelte-1athwxr{border:1px solid var(--colour-border);color:var(--colour-text);background:0 0}.btn-secondary.svelte-1athwxr:hover{background:var(--colour-surface-hover)}@media (width<=480px){.btn.svelte-1athwxr{flex:140px;justify-content:center}}.yaml-panel.svelte-wv3n6p{gap:var(--space-3);flex-direction:column;width:100%;min-height:min(68vh,700px);display:flex}.yaml-panel-header.svelte-wv3n6p{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.mode-label.svelte-wv3n6p{font-size:var(--font-size-xs);color:var(--colour-text-muted);margin:0}.panel-actions.svelte-wv3n6p{align-items:center;gap:var(--space-2);display:flex}.icon-btn.svelte-wv3n6p{border:1px solid var(--colour-border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--colour-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn.svelte-wv3n6p:hover{background:var(--colour-surface-hover)}.icon-btn.svelte-wv3n6p:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:1px}.conflict-box.svelte-wv3n6p{border:1px solid var(--colour-warning-border,#f59e0b);background:color-mix(in oklab, var(--colour-warning-bg,#f59e0b) 12%, var(--colour-bg));border-radius:var(--radius-sm);padding:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.conflict-title.svelte-wv3n6p{font-weight:var(--font-weight-semibold);color:var(--colour-text);margin:0}.conflict-copy.svelte-wv3n6p{color:var(--colour-text-muted);font-size:var(--font-size-sm);margin:0}.conflict-actions.svelte-wv3n6p{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.validation-message.svelte-wv3n6p{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);border:1px solid #0000;margin:0}.validation-message.info.svelte-wv3n6p{border-color:var(--colour-border);background:var(--colour-surface);color:var(--colour-text-muted)}.validation-message.success.svelte-wv3n6p{border-color:var(--colour-success-border,#16a34a);background:color-mix(in oklab, var(--colour-success-bg,#16a34a) 12%, var(--colour-bg));color:var(--colour-text)}.validation-message.error.svelte-wv3n6p{border-color:var(--colour-error-border,#ef4444);background:color-mix(in oklab, var(--colour-error-bg,#ef4444) 12%, var(--colour-bg));color:var(--colour-text)}.yaml-textarea.svelte-wv3n6p{resize:vertical;border:1px solid var(--colour-border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;min-height:420px;color:var(--colour-text);padding:var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-sm);tab-size:2;flex:1;line-height:1.45}.yaml-textarea.svelte-wv3n6p:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:1px}.yaml-textarea.svelte-wv3n6p:read-only{opacity:.92;cursor:default}.footer-actions.svelte-wv3n6p{justify-content:flex-end;gap:var(--space-2);display:flex}.btn.svelte-wv3n6p{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:1px solid #0000;display:inline-flex}.btn.svelte-wv3n6p:disabled{opacity:.6;cursor:not-allowed}.btn-secondary.svelte-wv3n6p{border-color:var(--colour-border);color:var(--colour-text);background:0 0}.btn-secondary.svelte-wv3n6p:hover:not(:disabled){background:var(--colour-surface-hover)}.btn-primary.svelte-wv3n6p{background:var(--colour-button-primary);color:var(--colour-text-on-primary)}.btn-primary.svelte-wv3n6p:hover:not(:disabled){background:var(--colour-button-primary-hover)}.btn-danger.svelte-wv3n6p{border-color:var(--colour-error-border,#ef4444);color:var(--colour-error-text,#ef4444);background:0 0}.btn-danger.svelte-wv3n6p:hover:not(:disabled){background:color-mix(in oklab, var(--colour-error-bg,#ef4444) 12%, var(--colour-bg))}@media (width<=680px){.yaml-panel.svelte-wv3n6p{min-height:min(74vh,780px)}.yaml-textarea.svelte-wv3n6p{min-height:360px}.panel-actions.svelte-wv3n6p{justify-content:flex-end;width:100%}}.dialog-content.svelte-1ty53ib{--dialog-content-padding:var(--space-4);--dialog-content-mobile-padding:var(--space-4);--dialog-content-mobile-padding-bottom-min:var(--space-4);--dialog-content-mobile-safe-area-offset:var(--space-2)}.help-dialog .sr-only,.help-dialog-description{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.about-content.svelte-1ty53ib{gap:var(--space-2);flex-direction:column;display:flex}.about-header.svelte-1ty53ib{padding-bottom:var(--space-1);border-bottom:1px solid var(--colour-border);align-items:center;display:flex}.brand-row.svelte-1ty53ib{justify-content:center;align-items:center;display:flex}.build-info-section.svelte-1ty53ib{gap:var(--space-3);padding:var(--space-2);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.build-info-grid.svelte-1ty53ib{gap:var(--space-2) var(--space-2);grid-template-columns:auto 1fr;display:grid}.info-row.svelte-1ty53ib{display:contents}.info-label.svelte-1ty53ib{font-family:var(--font-mono,monospace);font-size:var(--font-size-xs);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.05em}.info-value.svelte-1ty53ib{font-family:var(--font-mono,monospace);font-size:var(--font-size-sm);color:var(--colour-text)}.info-value.user-agent.svelte-1ty53ib{font-size:var(--font-size-xs);color:var(--colour-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.commit-link.svelte-1ty53ib{color:var(--dracula-cyan,#8be9fd);text-decoration:none}.commit-link.svelte-1ty53ib:hover{text-decoration:underline}.dirty-badge.svelte-1ty53ib{color:var(--dracula-orange,#ffb86c);margin-left:2px}.copy-info-btn.svelte-1ty53ib{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px dashed var(--colour-border);border-radius:var(--radius-sm);color:var(--colour-text-muted);font-size:var(--font-size-sm);cursor:pointer;background:0 0;transition:all .15s;display:flex}.copy-info-btn.svelte-1ty53ib:hover{border-color:var(--colour-text-muted);color:var(--colour-text)}.copy-info-btn.copied.svelte-1ty53ib{border-color:var(--dracula-green,#50fa7b);color:var(--dracula-green,#50fa7b);border-style:solid}.copy-info-btn.svelte-1ty53ib svg{width:var(--icon-size-xs);height:var(--icon-size-xs)}.shortcut-group.svelte-1ty53ib{gap:var(--space-2);flex-direction:column;display:flex}.shortcut-group.svelte-1ty53ib h4:where(.svelte-1ty53ib){font-size:var(--font-size-sm);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0;font-weight:500}.shortcuts-list.svelte-1ty53ib{gap:var(--space-1);flex-direction:column;display:flex}.shortcut-row.svelte-1ty53ib{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);display:flex}.key-cell.svelte-1ty53ib{min-width:140px;font-family:var(--font-mono,monospace);font-size:var(--font-size-xs);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-sm);padding:2px var(--space-2);color:var(--colour-text)}.action.svelte-1ty53ib{color:var(--colour-text-muted)}.quick-links.svelte-1ty53ib{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--colour-border);justify-content:center;display:flex}.quick-link.svelte-1ty53ib{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--colour-text-muted);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-sm);flex:1;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.quick-link.svelte-1ty53ib:hover{color:var(--colour-text);border-color:var(--colour-selection);background:var(--colour-surface-hover)}.quick-link.svelte-1ty53ib:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}.quick-link.svelte-1ty53ib svg{width:var(--icon-size-sm);height:var(--icon-size-sm)}.made-in.svelte-1ty53ib{padding-top:var(--space-3);font-size:var(--font-size-sm);color:var(--colour-text-muted);text-align:center;margin:0}.bottom-sheet-container.svelte-1xhvrmi{z-index:var(--z-bottom-sheet,200);pointer-events:all;align-items:flex-end;display:flex;position:fixed;inset:0}.backdrop.svelte-1xhvrmi{background:var(--colour-backdrop);opacity:0;transition:opacity .3s;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.backdrop.svelte-1xhvrmi{transition:none}}.backdrop.visible.svelte-1xhvrmi{opacity:1}.bottom-sheet.svelte-1xhvrmi{width:100%;max-height:calc(100vh - var(--toolbar-height,56px) - var(--keyboard-height,0px));max-height:calc(100dvh - var(--toolbar-height,56px) - var(--keyboard-height,0px));background:var(--colour-bg);box-shadow:var(--shadow-sheet);touch-action:pan-y;padding-bottom:var(--safe-area-bottom,0px);border-top-left-radius:.75rem;border-top-right-radius:.75rem;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;transform:translateY(100%)}@media (prefers-reduced-motion:reduce){.bottom-sheet.svelte-1xhvrmi{transition:none}}.bottom-sheet.open.svelte-1xhvrmi{transform:translateY(0)}.bottom-sheet.dragging.svelte-1xhvrmi{transition:none}.sheet-header.svelte-1xhvrmi{padding:var(--space-2) var(--space-4) 0;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}.drag-handle-bar.svelte-1xhvrmi{width:2.5rem;height:.25rem;margin:0 auto var(--space-1);background:var(--colour-text-secondary);opacity:.4;border-radius:.125rem}.header-row.svelte-1xhvrmi{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.sheet-title.svelte-1xhvrmi{font-size:var(--font-size-lg);color:var(--colour-text);margin:0;font-weight:600}.close-button.svelte-1xhvrmi{width:var(--touch-target-min);height:var(--touch-target-min);border-radius:var(--radius-md);color:var(--colour-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s;display:flex}.close-button.svelte-1xhvrmi:hover,.close-button.svelte-1xhvrmi:focus-visible{background:var(--colour-surface-secondary);color:var(--colour-text)}.close-button.svelte-1xhvrmi:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.sheet-content.svelte-1xhvrmi{padding:0 var(--space-4) var(--space-4);flex-direction:column;flex:1;display:flex;overflow:hidden}.sheet-content.svelte-1xhvrmi::-webkit-scrollbar{width:.5rem}.sheet-content.svelte-1xhvrmi::-webkit-scrollbar-track{background:0 0}.sheet-content.svelte-1xhvrmi::-webkit-scrollbar-thumb{background:var(--color-text-secondary);opacity:.3;border-radius:.25rem}.device-details.svelte-y5wouk{flex-direction:column;gap:1rem;font-size:.875rem;display:flex}.detail-section.svelte-y5wouk{flex-direction:column;gap:.5rem;display:flex}.name-section.svelte-y5wouk{border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.device-name.svelte-y5wouk{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600}.info-section.svelte-y5wouk,.optional-section.svelte-y5wouk{flex-direction:column;gap:.75rem;display:flex}.info-row.svelte-y5wouk{justify-content:space-between;align-items:center;gap:1rem;display:flex}.info-label.svelte-y5wouk{color:var(--color-text-secondary);flex-shrink:0;font-weight:500}.info-value.svelte-y5wouk{text-align:right;color:var(--color-text);flex-grow:1}.category-value.svelte-y5wouk{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.notes-section.svelte-y5wouk{border-top:1px solid var(--color-border);padding-top:.5rem}.notes-text.svelte-y5wouk{color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:0}.actions-section.svelte-y5wouk{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.move-buttons.svelte-y5wouk{gap:var(--space-2);display:flex}.btn.svelte-y5wouk{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;border:none;font-weight:500;transition:background-color .15s,opacity .15s;display:flex}.btn.svelte-y5wouk:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-y5wouk{background:var(--colour-surface-secondary);color:var(--colour-text);flex:1}.btn-secondary.svelte-y5wouk svg{width:var(--icon-size-sm);height:var(--icon-size-sm)}.btn-secondary.svelte-y5wouk:hover:not(:disabled){background:var(--colour-bg-light)}.btn-danger.svelte-y5wouk{background:var(--dracula-red);color:var(--dracula-fg)}.btn-danger.svelte-y5wouk:hover:not(:disabled){background:color-mix(in srgb, var(--dracula-red), black 15%)}.file-sheet-actions.svelte-1bqze6b{width:100%;padding:var(--space-1) 0 var(--space-4);flex-direction:column;display:flex}.file-action.svelte-1bqze6b{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--colour-border);color:var(--colour-text);text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;display:flex}.file-action.svelte-1bqze6b:first-child{border-top:1px solid var(--colour-border)}.file-action.svelte-1bqze6b:hover:not(:disabled){background:var(--colour-surface-hover);color:var(--colour-primary)}.file-action.svelte-1bqze6b:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:-2px}.file-action.svelte-1bqze6b:disabled{opacity:.4;cursor:not-allowed}.file-action.svelte-1bqze6b:active:not(:disabled){background:var(--colour-surface-active)}.action-icon.svelte-1bqze6b{color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.action-label.svelte-1bqze6b{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.bottom-nav.svelte-13fgiud{bottom:var(--keyboard-height,0px);z-index:var(--z-bottom-nav,100);height:var(--bottom-nav-height);padding-bottom:var(--safe-area-bottom,0px);background:var(--bottom-nav-bg);-webkit-backdrop-filter:blur(var(--bottom-nav-blur));border-top:.5px solid var(--bottom-nav-border);transition:transform var(--bottom-nav-transition) var(--ease-in-out);will-change:transform;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:space-around;align-items:stretch;display:flex;position:fixed;left:0;right:0;transform:translateY(0)}.bottom-nav.hidden.svelte-13fgiud{transform:translateY(100%)}.nav-tab.svelte-13fgiud{min-height:var(--touch-target-min);justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2);cursor:pointer;color:var(--bottom-nav-inactive-colour);transition:color var(--duration-normal) var(--ease-out);background:0 0;border:none;flex-direction:column;flex:1;display:flex;position:relative}.nav-tab.svelte-13fgiud:before{content:"";border-radius:var(--bottom-nav-pill-radius);background:var(--bottom-nav-active-pill-bg);opacity:0;width:64px;height:32px;transition:transform var(--duration-normal) var(--ease-spring), opacity var(--duration-normal) var(--ease-out);z-index:-1;position:absolute;top:50%;left:50%;transform:translate(-50%,-65%)scaleX(0)}.nav-tab.active.svelte-13fgiud:before{opacity:1;transform:translate(-50%,-65%)scaleX(1)}.nav-tab.active.svelte-13fgiud{color:var(--bottom-nav-active-colour)}.nav-tab.svelte-13fgiud:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:-2px;border-radius:var(--radius-md)}.nav-label.svelte-13fgiud{font-size:var(--bottom-nav-label-size);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;line-height:1}@media (prefers-reduced-motion:reduce){.bottom-nav.svelte-13fgiud,.nav-tab.svelte-13fgiud:before{transition:none}}.rack-edit-sheet.svelte-uhw6tq{gap:var(--space-4);padding-top:var(--space-2);flex-direction:column;display:flex;overflow-y:auto}.edit-form.svelte-uhw6tq{gap:var(--space-4);flex-direction:column;display:flex}.form-group.svelte-uhw6tq{gap:var(--space-1);flex-direction:column;display:flex}.form-group.svelte-uhw6tq label:where(.svelte-uhw6tq),.form-group.svelte-uhw6tq .form-label:where(.svelte-uhw6tq){font-size:var(--font-size-sm);color:var(--colour-text-secondary);font-weight:500}.input-field.svelte-uhw6tq{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--colour-text);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-md);min-height:var(--touch-target-min);transition:border-color .15s,box-shadow .15s}.input-field.svelte-uhw6tq:focus{border-color:var(--colour-focus-ring);box-shadow:0 0 0 2px var(--colour-focus-ring-alpha);outline:none}.input-field.error.svelte-uhw6tq{border-color:var(--colour-error)}.input-field.textarea.svelte-uhw6tq{resize:vertical;min-height:calc(var(--touch-target-min) * 2)}.helper-text.svelte-uhw6tq{font-size:var(--font-size-xs);margin:0}.helper-text.error.svelte-uhw6tq{color:var(--colour-error)}.read-only-value.svelte-uhw6tq{padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--colour-text-secondary);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-md);min-height:var(--touch-target-min);align-items:center;display:flex}.height-presets.svelte-uhw6tq{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.bay-count-controls.svelte-uhw6tq{align-items:center;gap:var(--space-3);display:flex}.bay-btn.svelte-uhw6tq{width:var(--touch-target-min);height:var(--touch-target-min);font-size:var(--font-size-xl);color:var(--colour-text);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;font-weight:500;transition:all .15s;display:flex}.bay-btn.svelte-uhw6tq:hover:not(:disabled){background:var(--colour-surface-hover);border-color:var(--colour-selection)}.bay-btn.svelte-uhw6tq:disabled{opacity:.5;cursor:not-allowed}.bay-btn.svelte-uhw6tq:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.bay-count-display.svelte-uhw6tq{font-size:var(--font-size-xl);text-align:center;min-width:2ch;font-weight:600}.preset-btn.svelte-uhw6tq{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--colour-text-secondary);background:var(--colour-surface-secondary);border:1px solid var(--colour-border);border-radius:var(--radius-md);cursor:pointer;min-height:var(--touch-target-min);min-width:var(--touch-target-min);font-weight:500;transition:background-color .15s,border-color .15s,color .15s}.preset-btn.svelte-uhw6tq:hover,.preset-btn.svelte-uhw6tq:focus-visible{background:var(--colour-surface-hover);border-color:var(--colour-border-hover)}.preset-btn.active.svelte-uhw6tq{background:var(--colour-selection);border-color:var(--colour-selection);color:var(--colour-text-on-selection)}.preset-btn.svelte-uhw6tq:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.actions.svelte-uhw6tq{gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--colour-border);flex-direction:column;display:flex}.btn-danger.svelte-uhw6tq{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);color:var(--colour-error);border:1px solid var(--colour-error);border-radius:var(--radius-md);cursor:pointer;min-height:var(--touch-target-min);background:0 0;font-weight:500;transition:background-color .15s,color .15s}.btn-danger.svelte-uhw6tq:hover:not(:disabled),.btn-danger.svelte-uhw6tq:focus-visible:not(:disabled){background:var(--colour-error);color:var(--colour-text-on-primary)}.btn-danger.svelte-uhw6tq:disabled{opacity:.5;cursor:not-allowed}.btn-danger.svelte-uhw6tq:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.mobile-view-sheet.svelte-1acnv51{gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-4);flex-direction:column;display:flex}.section.svelte-1acnv51{gap:var(--space-2);flex-direction:column;display:flex}.section-title.svelte-1acnv51{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--colour-text);margin:0}.divider.svelte-1acnv51{background:var(--colour-border);height:1px}.actions.svelte-1acnv51{gap:var(--space-2);flex-direction:column;display:flex}.action-button.svelte-1acnv51{width:100%;min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius-md);background:var(--colour-surface);color:var(--colour-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.action-button.svelte-1acnv51:hover{background:var(--colour-surface-hover);border-color:var(--colour-text-muted)}.action-button.svelte-1acnv51:active{background:var(--colour-surface-hover);scale:.98}.action-button.svelte-1acnv51:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.load-dialog-content.svelte-2w3aw0{gap:var(--space-6);padding:var(--space-1);flex-direction:column;display:flex}.import-file-btn.svelte-2w3aw0{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-4);background:var(--colour-surface);border:2px dashed var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text);cursor:pointer;font-size:1rem;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.import-file-btn.svelte-2w3aw0:hover{border-color:var(--colour-primary);background:var(--colour-surface-hover)}.saved-layouts.svelte-2w3aw0 h3:where(.svelte-2w3aw0){align-items:center;gap:var(--space-2);color:var(--colour-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4);font-size:.875rem;font-weight:600;display:flex}.status-box.svelte-2w3aw0{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);color:var(--colour-text-muted);text-align:center;flex-direction:column;display:flex}.spinner-loader.svelte-2w3aw0{width:var(--icon-size-lg);height:var(--icon-size-lg);border:2px solid var(--colour-border);border-radius:var(--radius-full);border-top-color:var(--colour-primary);animation:1s linear infinite svelte-2w3aw0-spin}.status-box.error.svelte-2w3aw0{color:var(--colour-error);background:var(--colour-error-bg);border-color:var(--colour-error)}.retry-link.svelte-2w3aw0{color:var(--colour-primary);cursor:pointer;background:0 0;border:none;font-size:.875rem;text-decoration:underline}.layout-list.svelte-2w3aw0{max-height:320px;padding-right:var(--space-1);flex-direction:column;display:flex;overflow-y:auto}.layout-item.svelte-2w3aw0{background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);align-items:center;transition:border-color .15s,background-color .15s;display:flex}.layout-item.svelte-2w3aw0:hover{border-color:var(--colour-primary);background:var(--colour-surface-hover)}.layout-row.svelte-2w3aw0{min-width:0;padding:var(--space-4);cursor:pointer;flex:1}.layout-item.deleting.svelte-2w3aw0{opacity:.5;cursor:not-allowed;pointer-events:none}.layout-item.invalid.svelte-2w3aw0{border-color:var(--colour-error);background:var(--colour-error-bg)}.layout-info.svelte-2w3aw0{flex-direction:column;gap:2px;display:flex}.layout-name.svelte-2w3aw0{color:var(--colour-text);font-weight:500}.layout-meta.svelte-2w3aw0{color:var(--colour-text-muted);font-size:.75rem}.error-badge.svelte-2w3aw0{background:var(--colour-error);color:#fff;width:14px;height:14px;margin-left:var(--space-2);border-radius:50%;justify-content:center;align-items:center;font-size:.625rem;font-weight:700;display:inline-flex}.error-text.svelte-2w3aw0{color:var(--colour-error)}.delete-btn.svelte-2w3aw0{padding:var(--space-2);margin-right:var(--space-2);color:var(--colour-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;transition:color .15s,background-color .15s}.delete-btn.svelte-2w3aw0:hover{color:var(--colour-error);background:var(--colour-error-bg)}@keyframes svelte-2w3aw0-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.start-screen.svelte-1e0693s{background:var(--colour-bg);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.start-screen-content.svelte-1e0693s{width:100%;max-width:520px;padding:var(--space-6)}.start-header.svelte-1e0693s{margin-bottom:var(--space-8);flex-direction:column;align-items:center;display:flex}.version.svelte-1e0693s{font-size:var(--font-size-sm);color:var(--colour-text-muted);margin-top:var(--space-2)}.subtitle.svelte-1e0693s{color:var(--colour-text-muted);margin-top:var(--space-1);text-align:center}.actions.svelte-1e0693s{justify-content:center;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.action-btn.svelte-1e0693s{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);cursor:pointer;border:none;font-size:1rem;font-weight:500;transition:background-color .15s;display:flex}.action-btn.primary.svelte-1e0693s{background:var(--colour-button-primary);color:var(--colour-text-on-primary)}.action-btn.primary.svelte-1e0693s:hover{background:var(--colour-button-primary-hover)}.action-btn.secondary.svelte-1e0693s{background:var(--colour-surface);color:var(--colour-text);border:1px solid var(--colour-border)}.action-btn.secondary.svelte-1e0693s:hover{background:var(--colour-surface-hover)}.offline-warning.svelte-1e0693s{align-items:flex-start;gap:var(--space-4);padding:var(--space-4);background:var(--colour-warning-bg);border:1px solid var(--colour-warning);border-radius:var(--radius-md);margin-bottom:var(--space-8);color:var(--colour-warning);display:flex}.offline-text.svelte-1e0693s p:where(.svelte-1e0693s){margin:var(--space-2) 0 0;color:var(--colour-text-muted);font-size:.875rem}.continue-btn.svelte-1e0693s{padding:var(--space-2) var(--space-4);background:var(--colour-warning);color:var(--colour-bg);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;margin-left:auto;font-weight:500}.continue-btn.svelte-1e0693s:hover{filter:brightness(1.1)}.saved-layouts.svelte-1e0693s h2:where(.svelte-1e0693s){align-items:center;gap:var(--space-2);color:var(--colour-text-muted);margin-bottom:var(--space-4);font-size:1rem;display:flex}.layout-list.svelte-1e0693s{flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.layout-item.svelte-1e0693s{width:100%;padding:var(--space-4);background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;transition:border-color .15s;display:flex}.layout-item.svelte-1e0693s:hover{border-color:var(--colour-primary)}.layout-item.deleting.svelte-1e0693s{opacity:.5;cursor:not-allowed;pointer-events:none}.layout-item.invalid.svelte-1e0693s{border-color:var(--colour-error);background:var(--colour-error-bg)}.layout-item.invalid.svelte-1e0693s:hover{border-color:var(--colour-error);cursor:not-allowed}.error-badge.svelte-1e0693s{background:var(--colour-error);color:#fff;border-radius:var(--radius-full);width:16px;height:16px;margin-left:var(--space-2);vertical-align:middle;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.error-text.svelte-1e0693s{color:var(--colour-error)}.layout-info.svelte-1e0693s{flex-direction:column;gap:2px;display:flex}.layout-name.svelte-1e0693s{color:var(--colour-text);font-weight:500}.layout-meta.svelte-1e0693s{color:var(--colour-text-muted);font-size:.8rem}.delete-btn.svelte-1e0693s{padding:var(--space-2);color:var(--colour-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;transition:color .15s,background-color .15s}.delete-btn.svelte-1e0693s:hover{color:var(--colour-error);background:var(--colour-error-bg)}.loading.svelte-1e0693s,.error-message.svelte-1e0693s,.empty.svelte-1e0693s{text-align:center;padding:var(--space-8);color:var(--colour-text-muted)}.error-message.svelte-1e0693s{color:var(--colour-error)}.app-layout.svelte-1n46o8q{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-main.svelte-1n46o8q{flex:1;display:flex;position:relative;overflow:hidden}.app-main.mobile.svelte-1n46o8q{overscroll-behavior:none;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom,0px) + var(--keyboard-height,0px))}.pane-group{flex:1;overflow:hidden}.sidebar-pane{background:var(--colour-sidebar-bg);border-right:1px solid var(--colour-border);min-width:var(--sidebar-width-min);flex-direction:column;display:flex;overflow:hidden}.resize-handle{background:var(--colour-border);cursor:col-resize;width:4px;transition:background var(--duration-fast) var(--ease-out);position:relative}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:var(--colour-selection)}.main-pane{background-color:var(--canvas-bg);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--space-0:0;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--neutral-50:#fafafa;--neutral-100:#f4f4f5;--neutral-200:#e4e4e7;--neutral-300:#d4d4d8;--neutral-400:#a1a1aa;--neutral-500:#71717a;--neutral-600:#52525b;--neutral-700:#3f3f46;--neutral-800:#27272a;--neutral-900:#18181b;--neutral-950:#09090b;--dracula-bg-darkest:#191a21;--dracula-bg-darker:#21222c;--dracula-bg:#282a36;--dracula-bg-light:#343746;--dracula-bg-lighter:#424450;--dracula-selection:#44475a;--dracula-foreground:#f8f8f2;--dracula-comment:#6272a4;--dracula-purple:#bd93f9;--dracula-pink:#ff79c6;--dracula-pink-muted:#c45b9a;--dracula-cyan:#8be9fd;--dracula-green:#50fa7b;--dracula-orange:#ffb86c;--dracula-red:#f55;--dracula-yellow:#f1fa8c;--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-300:#93c5fd;--blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--blue-900:#1e3a8a;--red-50:#fef2f2;--red-400:#f87171;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--green-50:#f0fdf4;--green-500:#22c55e;--green-600:#16a34a;--amber-50:#fffbeb;--amber-500:#f59e0b;--amber-600:#d97706;--emerald-500:#10b981;--purple-500:#8b5cf6;--pink-500:#ec4899;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-family:var(--font-sans);--font-family-mono:var(--font-mono);--font-size-2xs:.625rem;--font-size-xs:.6875rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.05em;--icon-size-xs:14px;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--icon-size-xl:28px;--icon-size-2xl:48px;--line-height-tight:1.25;--line-height-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--duration-fast:.1s;--duration-normal:.2s;--duration-slow:.3s;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--breakpoint-mobile:1024px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root{--colour-bg:var(--dracula-bg);--colour-bg-darker:var(--dracula-bg-darker);--colour-surface:var(--dracula-bg-light);--colour-surface-raised:var(--dracula-bg-lighter);--colour-surface-hover:var(--dracula-bg-lighter);--colour-surface-active:var(--dracula-selection);--colour-backdrop:#00000080;--colour-dialog-bg:var(--dracula-bg-darker);--colour-surface-overlay:var(--dracula-bg-darker);--colour-text-inverse:#fff;--colour-text-muted-inverse:#fff9;--colour-overlay-hover:#ffffff1a;--colour-overlay-border:#ffffff1a;--colour-shortcut-bg:#ffffff26;--colour-text:var(--dracula-foreground);--colour-text-muted:#9a9a9a;--colour-text-disabled:var(--dracula-comment);--colour-border:var(--dracula-selection);--colour-border-hover:var(--dracula-comment);--colour-border-focus:var(--dracula-pink);--colour-primary:var(--dracula-cyan);--colour-selection:var(--dracula-pink);--colour-selection-hover:var(--dracula-pink);--colour-focus-ring:var(--dracula-pink);--colour-button-bg:var(--dracula-bg-light);--colour-button-hover:var(--dracula-bg-lighter);--colour-button-primary:var(--dracula-pink-muted);--colour-button-primary-hover:var(--dracula-pink);--colour-button-destructive:#a84a4a;--colour-button-destructive-hover:var(--dracula-red);--colour-text-on-primary:#fff;--colour-success:var(--dracula-green);--colour-warning:var(--dracula-orange);--colour-error:var(--dracula-red);--colour-info:var(--dracula-cyan);--colour-warning-bg:#ffb86c1a;--colour-error-bg:#ff55551a;--colour-dnd-valid:var(--dracula-green);--colour-dnd-valid-bg:#50fa7b1a;--colour-dnd-invalid:var(--dracula-red);--colour-dnd-invalid-bg:#ff55551a;--colour-dnd-dragging:var(--dracula-cyan);--colour-airflow-intake:var(--dracula-cyan);--colour-airflow-exhaust:var(--dracula-red);--colour-airflow-passive:var(--dracula-comment);--colour-airflow-conflict:var(--dracula-orange);--colour-port-1gbe:var(--emerald-500);--colour-port-10gbe:var(--blue-500);--colour-port-sfpp:var(--purple-500);--colour-port-sfp28:var(--amber-500);--colour-port-qsfpp:var(--red-500);--colour-port-qsfp28:var(--pink-500);--colour-port-default:var(--neutral-500);--colour-port-stroke:#0000004d;--colour-port-indicator:white;--colour-port-hover:#fff3;--shadow-port-text:0 .5px 1px #00000080;--glow-cyan-sm:0 0 12px #8be9fd4d;--glow-cyan-md:0 0 20px #8be9fd4d;--glow-cyan-lg:0 0 30px #8be9fd4d;--glow-purple-sm:0 0 12px #bd93f94d;--glow-purple-md:0 0 20px #bd93f94d;--glow-purple-lg:0 0 30px #bd93f94d;--glow-pink-sm:0 0 12px #ff79c64d;--glow-pink-md:0 0 20px #ff79c64d;--glow-green-sm:0 0 12px #2ecc714d;--focus-ring-glow:0 0 0 2px var(--colour-bg), 0 0 0 4px var(--colour-focus-ring), var(--glow-pink-sm);--canvas-bg:var(--dracula-bg-darkest);--rack-u-height:17.78px;--rack-width:482.6px;--rack-rail-width:30px;--rack-padding:16px;--rack-bg:var(--dracula-bg-darker);--rack-rail:var(--dracula-bg-lighter);--rack-interior:var(--dracula-bg);--rack-slot:#ffffff05;--rack-slot-alt:#ffffff0a;--rack-grid:var(--dracula-bg-light);--rack-text:var(--dracula-comment);--rack-text-highlight:var(--dracula-foreground);--colour-blocked-stroke:#ef444473;--colour-blocked-bg:#ef44441f;--colour-blocked-icon:#ef4444b3;--toolbar-height:40px;--toolbar-bg:var(--dracula-bg-darker);--toolbar-border:var(--dracula-bg-light);--drawer-width:320px;--drawer-bg:var(--dracula-bg-darker);--sidebar-width:280px;--sidebar-width-min:200px;--sidebar-collapsed-width:120px;--colour-sidebar-bg:var(--dracula-bg-darker);--colour-surface-secondary:var(--dracula-bg-light);--z-toolbar:20;--z-sidebar:10;--z-placement-indicator:50;--z-drawer-backdrop:99;--z-drawer:100;--z-fab:100;--z-bottom-nav:100;--z-dropdown:250;--z-bottom-sheet:200;--z-modal:200;--z-toast:300;--z-tooltip:400;--touch-target-min:48px;--touch-target-comfortable:56px;--bottom-nav-height:64px;--bottom-nav-icon-size:28px;--bottom-nav-label-size:var(--font-size-2xs);--bottom-nav-bg:#21222cd9;--bottom-nav-border:#34374699;--bottom-nav-blur:20px;--bottom-nav-active-pill-bg:#8be9fd1f;--bottom-nav-active-colour:var(--colour-primary);--bottom-nav-inactive-colour:var(--colour-text-muted);--bottom-nav-transition:.4s;--bottom-nav-pill-radius:16px;--shadow-sheet:0 -4px 20px #00000026;--shadow-indicator:0 2px 8px #0003;--shadow-fab:0 4px 12px #0000004d, 0 2px 4px #0003;--shadow-fab-hover:0 6px 16px #00000059, 0 3px 6px #00000040;--colour-button-overlay:#0000001a;--colour-button-overlay-hover:#0003;--dialog-width-default:400px;--dialog-width-md:460px;--input-bg:var(--dracula-bg-light);--input-border:var(--dracula-selection);--input-placeholder:var(--dracula-comment);--input-width-custom:80px;--button-bg:var(--dracula-bg-light);--button-bg-hover:var(--dracula-bg-lighter);--button-border:var(--dracula-selection);--device-font-size:var(--font-size-xs);--device-padding:var(--space-2);--device-radius:var(--radius-sm);--device-ghost-opacity:.5;--toast-bg:var(--dracula-bg-light);--toast-border:var(--dracula-selection);--toast-radius:var(--radius-md);--logo-frame:var(--dracula-selection);--logo-interior:var(--dracula-bg-light);--logo-device-1:var(--dracula-cyan);--logo-device-2:var(--dracula-green);--logo-device-3:var(--dracula-purple);--colour-error-hover:#c44;--drag-tooltip-width:160px;--drag-tooltip-max-width:140px;--drag-tooltip-border-width:var(--space-1);--drag-tooltip-base-height:var(--space-6);--drag-tooltip-height-per-u:.875rem;--env-badge-bg:#ff55551a;--env-badge-text:var(--dracula-red);--env-badge-gradient-highlight:var(--dracula-pink);--anim-env-cylon:6s}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--alucard-bg-darkest:#bcbab3;--alucard-bg-darker:#ceccc0;--alucard-bg:#fffbeb;--alucard-bg-light:#dedccf;--alucard-bg-lighter:#ece9df;--alucard-selection:#cfcfde;--alucard-floating:#efeddc;--alucard-foreground:#1f1f1f;--alucard-comment:#6c664b;--alucard-purple:#644ac9;--alucard-pink:#a3144d;--alucard-pink-muted:#8a4a60;--alucard-cyan:#036a96;--alucard-green:#14710a;--alucard-orange:#a34d14;--alucard-red:#cb3a2a;--alucard-yellow:#846e15;--colour-bg:var(--alucard-bg);--colour-bg-darker:var(--alucard-bg-darker);--colour-surface:var(--alucard-bg-light);--colour-surface-raised:var(--alucard-bg-lighter);--colour-surface-hover:var(--alucard-bg-lighter);--colour-surface-active:var(--alucard-selection);--colour-backdrop:#0006;--colour-dialog-bg:var(--alucard-floating);--colour-surface-overlay:var(--dracula-bg-darker);--colour-text-inverse:#fff;--colour-text-muted-inverse:#fff9;--colour-overlay-hover:#ffffff1a;--colour-overlay-border:#ffffff1a;--colour-text:var(--alucard-foreground);--colour-text-muted:var(--alucard-comment);--colour-text-disabled:var(--alucard-comment);--colour-border:var(--alucard-bg-light);--colour-border-hover:var(--alucard-comment);--colour-border-focus:var(--alucard-pink);--colour-primary:var(--alucard-cyan);--colour-selection:var(--alucard-pink);--colour-selection-hover:var(--alucard-pink);--colour-focus-ring:var(--alucard-pink);--colour-button-bg:var(--alucard-bg-lighter);--colour-button-hover:var(--alucard-bg-light);--colour-button-primary:var(--alucard-pink-muted);--colour-button-primary-hover:var(--alucard-pink);--colour-button-destructive:#b85a5a;--colour-button-destructive-hover:var(--alucard-red);--colour-text-on-primary:#fff;--colour-success:var(--alucard-green);--colour-warning:var(--alucard-orange);--colour-error:var(--alucard-red);--colour-info:var(--alucard-cyan);--colour-warning-bg:#a34d141a;--colour-error-bg:#cb3a2a1a;--colour-dnd-valid:var(--alucard-green);--colour-dnd-valid-bg:#14710a1a;--colour-dnd-invalid:var(--alucard-red);--colour-dnd-invalid-bg:#cb3a2a1a;--colour-dnd-dragging:var(--alucard-cyan);--colour-airflow-intake:var(--alucard-cyan);--colour-airflow-exhaust:var(--alucard-red);--colour-airflow-passive:var(--alucard-comment);--colour-airflow-conflict:var(--alucard-orange);--glow-cyan-sm:0 0 8px #036a9633;--glow-cyan-md:0 0 16px #036a9633;--glow-cyan-lg:0 0 24px #036a9633;--glow-purple-sm:0 0 8px #644ac933;--glow-purple-md:0 0 16px #644ac933;--glow-purple-lg:0 0 24px #644ac933;--glow-pink-sm:0 0 8px #a3144d33;--glow-pink-md:0 0 16px #a3144d33;--glow-green-sm:0 0 8px #14710a33;--colour-blocked-stroke:#cb3a2a66;--colour-blocked-bg:#cb3a2a1a;--colour-blocked-icon:#cb3a2aa6;--toolbar-bg:var(--alucard-floating);--toolbar-border:var(--alucard-bg-light);--drawer-bg:var(--alucard-floating);--colour-sidebar-bg:var(--alucard-floating);--colour-surface-secondary:var(--alucard-bg-light);--toast-bg:var(--alucard-floating);--toast-border:var(--alucard-bg-light);--bottom-nav-bg:#efeddcd9;--bottom-nav-border:#dedccf99;--bottom-nav-active-pill-bg:#036a961a;--colour-error-hover:#b33030;--canvas-bg:var(--alucard-bg-lighter);--input-bg:var(--alucard-floating);--input-border:var(--alucard-bg-light);--input-placeholder:var(--alucard-comment);--button-bg:var(--alucard-bg-lighter);--button-bg-hover:var(--alucard-bg-light);--button-border:var(--alucard-bg-light);--shadow-sm:0 1px 2px #00000014;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--env-badge-bg:#cb3a2a1a;--env-badge-text:var(--alucard-red);--env-badge-gradient-highlight:var(--alucard-pink)}:root{--sidebar-width-max:400px}@media (width<=1000px){:root{--sidebar-width:200px;--sidebar-width-max:200px}}:root{--anim-breathe:4s;--anim-rainbow:6s;--anim-party:.5s;--anim-party-duration:5s;--anim-loading:2s;--anim-shimmer:2s;--anim-success-glow:.5s;--anim-toast-exit:.3s;--anim-drag-settle:.15s}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.6}}@keyframes breathe-glow{0%,to{filter:drop-shadow(0 0 8px #bd93f933)}50%{filter:drop-shadow(0 0 16px #bd93f966)}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes success-glow{0%{box-shadow:0 0 #50fa7b66}to{box-shadow:0 0 0 8px #0000}}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes slot-fill{0%,to{transform-origin:0;transform:scaleX(0)}50%{transform-origin:0;transform:scaleX(1)}}@keyframes slot-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes rainbow-border{0%{border-color:#bd93f9}14%{border-color:#ff79c6}28%{border-color:#8be9fd}42%{border-color:#50fa7b}57%{border-color:#ffb86c}71%{border-color:#f55}85%{border-color:#f1fa8c}to{border-color:#bd93f9}}@keyframes pulse-border{0%{box-shadow:0 0 #50fa7b66}50%{box-shadow:0 0 0 4px #50fa7b33}to{box-shadow:0 0 #50fa7b00}}@keyframes flash-invalid{0%,to{border-color:var(--colour-border)}50%{border-color:var(--colour-error)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dialog-backdrop{background:var(--colour-backdrop,#0009);z-index:var(--z-modal,200);position:fixed;inset:0}.dialog{width:var(--dialog-width,400px);background:var(--colour-dialog-bg,var(--colour-bg));border:1px solid var(--colour-border);border-radius:var(--radius-lg);max-width:90vw;max-height:min(90vh,90dvh);box-shadow:var(--shadow-lg);z-index:calc(var(--z-modal,200) + 1);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.dialog-title{font-size:var(--font-size-lg);color:var(--colour-text);margin:0;font-weight:600}.dialog .dialog-content{min-height:0;padding:var(--dialog-content-padding,var(--space-5));flex:auto;overflow-y:auto}.dialog-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--colour-text-muted);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dialog-close:hover{background:var(--colour-surface-hover);color:var(--colour-text)}.dialog-close:focus-visible{outline:2px solid var(--colour-selection);outline-offset:2px}@media (width<=430px){.dialog{max-height:calc(100dvh - env(safe-area-inset-top,0px));border-radius:var(--radius-lg) var(--radius-lg) 0 0;inset:auto 0 0;transform:none;width:100vw!important;max-width:100vw!important}.dialog-close{width:44px;height:44px}.dialog .dialog-content{padding:var(--dialog-content-mobile-padding,var(--space-4));padding-bottom:max(var(--dialog-content-mobile-padding-bottom-min,var(--space-5)), calc(env(safe-area-inset-bottom,0px) + var(--dialog-content-mobile-safe-area-offset,var(--space-3))))}.dialog :is(.actions,.form-actions,.dialog-actions,.file-sheet-actions,.rack-selection-actions){flex-direction:column;align-items:stretch}.dialog :is(.actions,.form-actions,.dialog-actions,.file-sheet-actions,.rack-selection-actions)>button{width:100%;min-height:44px}}:root{--keyboard-height:0px;--safe-area-bottom:env(safe-area-inset-bottom,0px)}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family);background:var(--colour-bg);color:var(--colour-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}#app{height:100%}:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:var(--space-1);box-shadow:var(--glow-pink-sm)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:var(--space-2);height:var(--space-2)}::-webkit-scrollbar-track{background:var(--colour-surface)}::-webkit-scrollbar-thumb{background:var(--colour-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--colour-text-muted)}.input-field{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius-md);background-color:var(--colour-surface);color:var(--colour-text);font-size:var(--font-size-base);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.input-field:hover:not(:disabled):not(:focus){border-color:var(--colour-border-hover)}.input-field:focus{border-color:var(--colour-border-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--colour-selection) 25%, transparent);outline:none}.input-field:invalid,.input-field.error{border-color:var(--colour-error)}.input-field:invalid:focus,.input-field.error:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--colour-error) 25%, transparent)}.input-field:disabled{opacity:.5;cursor:not-allowed;background-color:var(--colour-surface-muted,#ffffff05)}.input-error{color:var(--colour-error);font-size:var(--font-size-xs);margin-top:var(--space-1)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-high-contrast{color:var(--colour-text)}.text-medium-contrast{color:var(--colour-text-muted)}.text-low-contrast{color:var(--colour-text-disabled)}@keyframes device-settle{0%{opacity:.8;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.device-just-dropped{animation:device-settle var(--duration-normal) var(--ease-spring)}@keyframes drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-left{animation:drawer-slide-in-left var(--duration-normal) var(--ease-out)}.drawer-right{animation:drawer-slide-in-right var(--duration-normal) var(--ease-out)}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.toast-enter{animation:toast-slide-up var(--duration-normal) var(--ease-out)}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes dialog-sheet-in{0%{opacity:0;transform:translateY(12%)}to{opacity:1;transform:translateY(0)}}.dialog-backdrop{animation:dialog-fade-in var(--duration-fast) var(--ease-out)}.dialog{animation:dialog-scale-in var(--duration-normal) var(--ease-out)}@media (width<=430px){.dialog{animation:dialog-sheet-in var(--duration-normal) var(--ease-out)}}@keyframes selection-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.error-shake{animation:shake var(--duration-normal) var(--ease-out)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
