@layer{:not([calcite-hydrated]):is(calcite-accordion,calcite-accordion-item,calcite-action,calcite-action-bar,calcite-action-group,calcite-action-menu,calcite-action-pad,calcite-alert,calcite-autocomplete,calcite-autocomplete-item,calcite-autocomplete-item-group,calcite-avatar,calcite-block,calcite-block-group,calcite-block-section,calcite-button,calcite-card,calcite-card-group,calcite-carousel,calcite-carousel-item,calcite-checkbox,calcite-chip,calcite-chip-group,calcite-color-picker,calcite-color-picker-hex-input,calcite-color-picker-swatch,calcite-combobox,calcite-combobox-item,calcite-combobox-item-group,calcite-date-picker,calcite-date-picker-day,calcite-date-picker-month,calcite-dialog,calcite-dropdown,calcite-dropdown-group,calcite-dropdown-item,calcite-fab,calcite-filter,calcite-flow,calcite-flow-item,calcite-focus-trap,calcite-graph,calcite-handle,calcite-icon,calcite-inline-editable,calcite-input,calcite-input-date-picker,calcite-input-message,calcite-input-number,calcite-input-text,calcite-input-time-picker,calcite-input-time-zone,calcite-label,calcite-link,calcite-list,calcite-list-item,calcite-list-item-group,calcite-loader,calcite-menu,calcite-menu-item,calcite-meter,calcite-navigation,calcite-navigation-logo,calcite-navigation-user,calcite-notice,calcite-option,calcite-option-group,calcite-pagination,calcite-panel,calcite-popover,calcite-progress,calcite-radio-button,calcite-radio-button-group,calcite-rating,calcite-scrim,calcite-segmented-control,calcite-segmented-control-item,calcite-select,calcite-sheet,calcite-shell,calcite-shell-panel,calcite-slider,calcite-sort-handle,calcite-sortable-list,calcite-split-button,calcite-stack,calcite-stepper,calcite-stepper-item,calcite-swatch,calcite-swatch-group,calcite-switch,calcite-tab,calcite-tab-nav,calcite-tab-title,calcite-table,calcite-table-cell,calcite-table-header,calcite-table-row,calcite-tabs,calcite-text-area,calcite-tile,calcite-tile-group,calcite-time-picker,calcite-tooltip,calcite-tree,calcite-tree-item){visibility:hidden}:root{--calcite-border-width-none:0;--calcite-border-width-sm:1px;--calcite-border-width-md:2px;--calcite-border-width-lg:4px;--calcite-container-size-margin:24px;--calcite-container-size-gutter:16px;--calcite-container-size-content-fluid:100%;--calcite-container-size-content-fixed:1440px;--calcite-corner-radius-sharp:0;--calcite-corner-radius-none:0;--calcite-corner-radius-xs:2px;--calcite-corner-radius-sm:4px;--calcite-corner-radius-round:4px;--calcite-corner-radius-pill:9999px;--calcite-font-family:"Avenir Next", Avenir, "Helvetica Neue", sans-serif;--calcite-font-family-code:Monaco, Consolas, "Andale Mono", "Lucida Console", monospace;--calcite-font-weight-light:300;--calcite-font-weight-regular:400;--calcite-font-weight-normal:400;--calcite-font-weight-medium:500;--calcite-font-weight-semibold:600;--calcite-font-weight-bold:600;--calcite-font-size-xs:10px;--calcite-font-size-sm:12px;--calcite-font-size:14px;--calcite-font-size-md:16px;--calcite-font-size-lg:18px;--calcite-font-size-xl:20px;--calcite-font-size-xxl:24px;--calcite-font-size-2xl:24px;--calcite-font-size-relative-xs:.625rem;--calcite-font-size-relative-sm:.75rem;--calcite-font-size-relative-base:.875rem;--calcite-font-size-relative-md:1rem;--calcite-font-size-relative-lg:1.125rem;--calcite-font-size-relative-xl:1.25rem;--calcite-font-size-relative-2xl:1.625rem;--calcite-font-size-relative-3xl:2rem;--calcite-font-size-relative-4xl:2.5rem;--calcite-font-size-relative-5xl:3rem;--calcite-font-size-relative-6xl:3.5rem;--calcite-font-size-relative-7xl:4rem;--calcite-font-style-emphasis:italic;--calcite-font-line-height-fixed-sm:12px;--calcite-font-line-height-fixed-base:16px;--calcite-font-line-height-fixed-lg:20px;--calcite-font-line-height-fixed-xl:24px;--calcite-font-line-height-fixed-2xl:32px;--calcite-font-line-height-fixed-3xl:40px;--calcite-font-line-height-fixed-4xl:48px;--calcite-font-line-height-fixed-5xl:64px;--calcite-font-line-height-fixed-6xl:80px;--calcite-font-line-height-relative:normal;--calcite-font-line-height-relative-base:1;--calcite-font-line-height-relative-tight:1.25;--calcite-font-line-height-relative-snug:1.375;--calcite-font-line-height-relative-normal:1.5;--calcite-font-line-height-relative-relaxed:1.625;--calcite-font-line-height-relative-loose:2;--calcite-font-line-height-xs:.75rem;--calcite-font-line-height-sm:1rem;--calcite-font-line-height-base:1rem;--calcite-font-line-height-md:1.25rem;--calcite-font-line-height-lg:1.5rem;--calcite-font-line-height-xl:1.5rem;--calcite-font-line-height-2xl:2rem;--calcite-font-line-height-3xl:2.5rem;--calcite-font-line-height-4xl:3rem;--calcite-font-line-height-5xl:4rem;--calcite-font-line-height-6xl:4rem;--calcite-font-line-height-7xl:5rem;--calcite-font-letter-spacing-tight:-.4px;--calcite-font-letter-spacing-normal:0;--calcite-font-letter-spacing-wide:.4px;--calcite-font-paragraph-spacing-normal:4px;--calcite-font-text-decoration-none:none;--calcite-font-text-decoration-underline:underline;--calcite-font-text-case-none:none;--calcite-font-text-case-uppercase:uppercase;--calcite-font-text-case-lowercase:lowercase;--calcite-font-text-case-capitalize:capitalize;--calcite-opacity-disabled:.5;--calcite-opacity-light:.4;--calcite-opacity-half:.5;--calcite-opacity-dark:.85;--calcite-opacity-full:1;--calcite-shadow-none:0 0 0 0 #0000;--calcite-shadow-sm:0 2px 8px 0 #0000001a, 0 2px 8px 0 #0000000a;--calcite-shadow-md:0 6px 20px -4px #0000001a, 0 4px 12px -2px #00000014;--calcite-size-fixed-xxxs:2px;--calcite-size-fixed-xxs:4px;--calcite-size-fixed-xs:6px;--calcite-size-fixed-sm:8px;--calcite-size-fixed-sm-plus:10px;--calcite-size-fixed-md:12px;--calcite-size-fixed-md-plus:14px;--calcite-size-fixed-lg:16px;--calcite-size-fixed-xl:20px;--calcite-size-fixed-xxl:24px;--calcite-size-fixed-xxxl:32px;--calcite-size-px:1px;--calcite-size-4xs:.625rem;--calcite-size-xxxs:.75rem;--calcite-size-3xs:.75rem;--calcite-size-xxs:.875rem;--calcite-size-2xs:.875rem;--calcite-size-xs:1rem;--calcite-size-sm:1.5rem;--calcite-size-md:2rem;--calcite-size-lg:2.75rem;--calcite-size-xl:3rem;--calcite-size-xxl:4rem;--calcite-size-2xl:4rem;--calcite-size-xxxl:6rem;--calcite-size-3xl:6rem;--calcite-spacing-fixed-xxs:4px;--calcite-spacing-fixed-xs:6px;--calcite-spacing-fixed-sm:8px;--calcite-spacing-fixed-md:12px;--calcite-spacing-fixed-lg:14px;--calcite-spacing-fixed-xl:16px;--calcite-spacing-fixed-xxl:20px;--calcite-spacing-fixed-xxxl:32px;--calcite-spacing-none:0;--calcite-spacing-px:1px;--calcite-spacing-base:2px;--calcite-spacing-xxs:.25rem;--calcite-spacing-xs:.375rem;--calcite-spacing-sm:.5rem;--calcite-spacing-sm-plus:.625rem;--calcite-spacing-md:.75rem;--calcite-spacing-md-plus:.875rem;--calcite-spacing-lg:1rem;--calcite-spacing-xl:1.25rem;--calcite-spacing-xxl:1.5rem;--calcite-spacing-xxxl:2rem;--calcite-space-none:0;--calcite-space-px:1px;--calcite-space-base:2px;--calcite-space-2xs:.25rem;--calcite-space-xs:.375rem;--calcite-space-sm:.5rem;--calcite-space-sm-plus:.625rem;--calcite-space-md:.75rem;--calcite-space-md-plus:.875rem;--calcite-space-lg:1rem;--calcite-space-xl:1.25rem;--calcite-space-2xl:1.5rem;--calcite-space-3xl:2rem;--calcite-space-4xl:2.75rem;--calcite-z-index-deep:-999999;--calcite-z-index:1;--calcite-z-index-sticky:300;--calcite-z-index-header:400;--calcite-z-index-toast:500;--calcite-z-index-dropdown:600;--calcite-z-index-overlay:700;--calcite-z-index-modal:800;--calcite-z-index-popup:900;--calcite-z-index-tooltip:901;--calcite-corner-radius:var(--calcite-corner-radius-none)}.calcite-typography{font-family:var(--calcite-font-family);font-size:var(--calcite-font-size);font-weight:var(--calcite-font-weight-regular);line-height:var(--calcite-font-line-height-fixed-base);letter-spacing:var(--calcite-font-letter-spacing-normal);paragraph-spacing:var(--calcite-font-paragraph-spacing-normal);text-case:var(--calcite-font-text-case-none);-webkit-text-decoration:var(--calcite-font-text-decoration-none);text-decoration:var(--calcite-font-text-decoration-none)}.calcite-typography-light-minus-3h{font-size:var(--calcite-font-size-xs);font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-fixed-sm)}.calcite-typography-light-minus-2h{font-size:var(--calcite-font-size-sm);font-weight:var(--calcite-font-weight-light)}.calcite-typography-light-minus-1h{font-weight:var(--calcite-font-weight-light)}.calcite-typography-light-0h{font-size:var(--calcite-font-size-md);font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-fixed-lg)}.calcite-typography-light-1h{font-size:var(--calcite-font-size-lg);font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-fixed-xl)}.calcite-typography-regular-minus-3h{line-height:var(--calcite-font-line-height-fixed-sm);font-size:var(--calcite-font-size-xs)}.calcite-typography-regular-minus-2h{font-size:var(--calcite-font-size-sm)}.calcite-typography-regular-minus-1h{font-family:Avenir Next,Avenir,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;line-height:16px;letter-spacing:0;paragraph-spacing:4px;text-case:none;text-decoration:none}.calcite-typography-regular-0h{line-height:var(--calcite-font-line-height-fixed-lg);font-size:var(--calcite-font-size-md)}.calcite-typography-regular-1h{line-height:var(--calcite-font-line-height-fixed-xl);font-size:var(--calcite-font-size-lg)}.calcite-typography-medium-minus-3h{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-fixed-sm);font-size:var(--calcite-font-size-xs)}.calcite-typography-medium-minus-2h{font-weight:var(--calcite-font-weight-medium);font-size:var(--calcite-font-size-sm)}.calcite-typography-medium-minus-1h{font-weight:var(--calcite-font-weight-medium)}.calcite-typography-medium-0h{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-fixed-lg);font-size:var(--calcite-font-size-md)}.calcite-typography-medium-1h{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-fixed-xl);font-size:var(--calcite-font-size-lg)}.calcite-typography-bold-minus-3h{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-fixed-sm);font-size:var(--calcite-font-size-xs)}.calcite-typography-bold-minus-2h{font-weight:var(--calcite-font-weight-semibold);font-size:var(--calcite-font-size-sm)}.calcite-typography-bold-minus-1h{font-weight:var(--calcite-font-weight-semibold)}.calcite-typography-bold-0h{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-fixed-lg);font-size:var(--calcite-font-size-md)}.calcite-typography-bold-1h{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-fixed-xl);font-size:var(--calcite-font-size-lg)}.calcite-typography-wrap-light-0{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-md)}.calcite-typography-wrap-light-1{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-lg)}.calcite-typography-wrap-light-2{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xl)}.calcite-typography-wrap-light-3{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-tight);font-size:var(--calcite-font-size-xxl)}.calcite-typography-wrap-light-minus-2{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-sm)}.calcite-typography-wrap-light-minus-1{font-weight:var(--calcite-font-weight-light);line-height:var(--calcite-font-line-height-relative-snug)}.calcite-typography-wrap-regular-0{line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-md)}.calcite-typography-wrap-regular-1{line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-lg)}.calcite-typography-wrap-regular-2{line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xl)}.calcite-typography-wrap-regular-3{line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xxl)}.calcite-typography-wrap-regular-minus-2{line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-sm)}.calcite-typography-wrap-regular-minus-1{line-height:var(--calcite-font-line-height-relative-snug)}.calcite-typography-wrap-medium-0{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-md)}.calcite-typography-wrap-medium-1{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-lg)}.calcite-typography-wrap-medium-2{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xl)}.calcite-typography-wrap-medium-3{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xxl)}.calcite-typography-wrap-medium-minus-2{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-sm)}.calcite-typography-wrap-medium-minus-1{font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-snug)}.calcite-typography-wrap-bold-0{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-md)}.calcite-typography-wrap-bold-1{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-lg)}.calcite-typography-wrap-bold-2{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xl)}.calcite-typography-wrap-bold-3{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-xxl)}.calcite-typography-wrap-bold-minus-2{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug);font-size:var(--calcite-font-size-sm)}.calcite-typography-wrap-bold-minus-1{font-weight:var(--calcite-font-weight-semibold);line-height:var(--calcite-font-line-height-relative-snug)}.calcite-typography-hierarchy-display-1{font-weight:600;line-height:1.375;font-size:24px}.calcite-typography-hierarchy-display-2{font-weight:600;line-height:1.375;font-size:20px}.calcite-typography-hierarchy-heading-1{font-weight:500;line-height:1.375;font-size:24px}.calcite-typography-hierarchy-heading-2{font-weight:500;line-height:1.375;font-size:20px}.calcite-typography-hierarchy-heading-3{font-weight:500;line-height:1.375;font-size:18px}.calcite-typography-hierarchy-heading-4{font-weight:500;line-height:1.375;font-size:16px}.calcite-typography-hierarchy-heading-5{font-weight:500;line-height:1.375}.calcite-typography-hierarchy-body-snug{line-height:1.375}.calcite-typography-hierarchy-body{font-family:Avenir Next,Avenir,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;line-height:16px;letter-spacing:0;paragraph-spacing:4px;text-case:none;text-decoration:none}.calcite-typography-hierarchy-overline{line-height:var(--calcite-font-line-height-fixed-sm);text-case:var(--calcite-font-text-case-uppercase);font-weight:var(--calcite-font-weight-bold)}.calcite-typography-hierarchy-caption{line-height:1.375;font-size:12px}:root{--calcite-color-transparent-inverse-press:#ffffff29;--calcite-color-transparent-inverse-hover:#ffffff1f;--calcite-color-transparent-tint:#fffc;--calcite-color-transparent-scrim:#ffffffd9;--calcite-color-transparent-press:#00000014;--calcite-color-transparent-hover:#0000000a;--calcite-color-transparent:#0000;--calcite-color-status-danger-press:#7c1d13;--calcite-color-status-danger-hover:#a82b1e;--calcite-color-status-danger:#d83020;--calcite-color-status-warning-press:#9a5b10;--calcite-color-status-warning-hover:#c26b00;--calcite-color-status-warning:#da7c0b;--calcite-color-status-success-press:#0d3f14;--calcite-color-status-success-hover:#1a6324;--calcite-color-status-success:#288835;--calcite-color-status-info-press:#00304d;--calcite-color-status-info-hover:#004874;--calcite-color-status-info:#00619b;--calcite-color-inverse-press:#212121;--calcite-color-inverse-hover:#2b2b2b;--calcite-color-inverse:#363636;--calcite-color-brand-underline:#00619b66;--calcite-color-brand-press:#004874;--calcite-color-brand-hover:#00619b;--calcite-color-brand:#007ac2;--calcite-color-border-white:#fff;--calcite-color-border-ghost:#0000004d;--calcite-color-border-input:#949494;--calcite-color-border-3:#ebebeb;--calcite-color-border-2:#dedede;--calcite-color-border-1:#d4d4d4;--calcite-color-text-highlight:#004874;--calcite-color-text-link:#00619b;--calcite-color-text-inverse:#fff;--calcite-color-text-3:#6b6b6b;--calcite-color-text-2:#4a4a4a;--calcite-color-text-1:#141414;--calcite-color-foreground-current:#d6efff;--calcite-color-foreground-3:#ebebeb;--calcite-color-foreground-2:#f2f2f2;--calcite-color-foreground-1:#fff;--calcite-color-background-none:#fff0;--calcite-color-background:#f7f7f7;--calcite-color-surface-highlight:#d6efff;--calcite-color-surface-4:#ebebeb;--calcite-color-surface-3:#f2f2f2;--calcite-color-surface-2:#fff;--calcite-color-surface-1:#f7f7f7;--calcite-color-focus:var(--calcite-color-brand)}.calcite-mode-light{--calcite-color-transparent-inverse-press:#ffffff29;--calcite-color-transparent-inverse-hover:#ffffff1f;--calcite-color-transparent-tint:#fffc;--calcite-color-transparent-scrim:#ffffffd9;--calcite-color-transparent-press:#00000014;--calcite-color-transparent-hover:#0000000a;--calcite-color-transparent:#0000;--calcite-color-status-danger-press:#7c1d13;--calcite-color-status-danger-hover:#a82b1e;--calcite-color-status-danger:#d83020;--calcite-color-status-warning-press:#9a5b10;--calcite-color-status-warning-hover:#c26b00;--calcite-color-status-warning:#da7c0b;--calcite-color-status-success-press:#0d3f14;--calcite-color-status-success-hover:#1a6324;--calcite-color-status-success:#288835;--calcite-color-status-info-press:#00304d;--calcite-color-status-info-hover:#004874;--calcite-color-status-info:#00619b;--calcite-color-inverse-press:#212121;--calcite-color-inverse-hover:#2b2b2b;--calcite-color-inverse:#363636;--calcite-color-brand-underline:#00619b66;--calcite-color-brand-press:#004874;--calcite-color-brand-hover:#00619b;--calcite-color-brand:#007ac2;--calcite-color-border-white:#fff;--calcite-color-border-ghost:#0000004d;--calcite-color-border-input:#949494;--calcite-color-border-3:#ebebeb;--calcite-color-border-2:#dedede;--calcite-color-border-1:#d4d4d4;--calcite-color-text-highlight:#004874;--calcite-color-text-link:#00619b;--calcite-color-text-inverse:#fff;--calcite-color-text-3:#6b6b6b;--calcite-color-text-2:#4a4a4a;--calcite-color-text-1:#141414;--calcite-color-foreground-current:#d6efff;--calcite-color-foreground-3:#ebebeb;--calcite-color-foreground-2:#f2f2f2;--calcite-color-foreground-1:#fff;--calcite-color-background-none:#fff0;--calcite-color-background:#f7f7f7;--calcite-color-surface-highlight:#d6efff;--calcite-color-surface-4:#ebebeb;--calcite-color-surface-3:#f2f2f2;--calcite-color-surface-2:#fff;--calcite-color-surface-1:#f7f7f7;--calcite-color-focus:var(--calcite-color-brand)}.calcite-mode-dark{--calcite-color-transparent-inverse-press:#00000014;--calcite-color-transparent-inverse-hover:#0000000a;--calcite-color-transparent-tint:#2b2b2bcc;--calcite-color-transparent-scrim:#000000d9;--calcite-color-transparent-press:#ffffff29;--calcite-color-transparent-hover:#ffffff1f;--calcite-color-transparent:#fff0;--calcite-color-status-danger-press:#fe9989;--calcite-color-status-danger-hover:#fe7863;--calcite-color-status-danger:#fe583e;--calcite-color-status-warning-press:#ffc47d;--calcite-color-status-warning-hover:#ffaf4f;--calcite-color-status-warning:#f89927;--calcite-color-status-success-press:#9df2a3;--calcite-color-status-success-hover:#6df278;--calcite-color-status-success:#36da43;--calcite-color-status-info-press:#80d1ff;--calcite-color-status-info-hover:#40b9ff;--calcite-color-status-info:#00a0ff;--calcite-color-inverse-press:#ebebeb;--calcite-color-inverse-hover:#f2f2f2;--calcite-color-inverse:#f7f7f7;--calcite-color-brand-underline:#00a0ff66;--calcite-color-brand-press:#80d1ff;--calcite-color-brand-hover:#40b9ff;--calcite-color-brand:#009af2;--calcite-color-border-white:#f7f7f7;--calcite-color-border-ghost:#7575754d;--calcite-color-border-input:#757575;--calcite-color-border-3:#404040;--calcite-color-border-2:#4a4a4a;--calcite-color-border-1:#545454;--calcite-color-text-highlight:#d6efff;--calcite-color-text-link:#00a0ff;--calcite-color-text-inverse:#141414;--calcite-color-text-3:#9e9e9e;--calcite-color-text-2:#bfbfbf;--calcite-color-text-1:#fff;--calcite-color-foreground-current:#2b465f;--calcite-color-foreground-3:#404040;--calcite-color-foreground-2:#363636;--calcite-color-foreground-1:#2b2b2b;--calcite-color-background-none:#fff0;--calcite-color-background:#212121;--calcite-color-surface-highlight:#2b465f;--calcite-color-surface-4:#404040;--calcite-color-surface-3:#363636;--calcite-color-surface-2:#2b2b2b;--calcite-color-surface-1:#212121;--calcite-color-focus:var(--calcite-color-brand)}:root{--calcite-code-family:"Consolas", "Andale Mono", "Lucida Console", "Monaco", monospace;--calcite-sans-family:"Avenir Next", "Avenir", "Helvetica Neue", sans-serif;--calcite-font-size--3:.625rem;--calcite-font-size--2:.75rem;--calcite-font-size--1:.875rem;--calcite-font-size-0:1rem;--calcite-font-size-1:1.125rem;--calcite-font-size-2:1.25rem;--calcite-font-size-3:1.625rem;--calcite-font-size-4:2rem;--calcite-font-size-5:2.5rem;--calcite-font-size-6:3rem;--calcite-font-size-7:3.5rem;--calcite-font-size-8:4rem;--calcite-font-weight-light:300;--calcite-font-weight-normal:400;--calcite-font-weight-medium:500;--calcite-font-weight-bold:600;--calcite-floating-ui-transition:var(--calcite-animation-timing);--calcite-animation-timing:calc(.15s * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor,1);--calcite-internal-animation-timing-fast:calc(.1s * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(.2s * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(.3s * var(--calcite-internal-duration-factor));--calcite-border-radius:var(--calcite-border-radius-round,4px);--calcite-border-radius-base:0;--calcite-offset-invert-focus:0;--calcite-panel-width-multiplier:1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--calcite-font-family)}@media (prefers-color-scheme:dark){.calcite-mode-auto{--calcite-color-transparent-inverse-press:#00000014;--calcite-color-transparent-inverse-hover:#0000000a;--calcite-color-transparent-tint:#2b2b2bcc;--calcite-color-transparent-scrim:#000000d9;--calcite-color-transparent-press:#ffffff29;--calcite-color-transparent-hover:#ffffff1f;--calcite-color-transparent:#fff0;--calcite-color-status-danger-press:#fe9989;--calcite-color-status-danger-hover:#fe7863;--calcite-color-status-danger:#fe583e;--calcite-color-status-warning-press:#ffc47d;--calcite-color-status-warning-hover:#ffaf4f;--calcite-color-status-warning:#f89927;--calcite-color-status-success-press:#9df2a3;--calcite-color-status-success-hover:#6df278;--calcite-color-status-success:#36da43;--calcite-color-status-info-press:#80d1ff;--calcite-color-status-info-hover:#40b9ff;--calcite-color-status-info:#00a0ff;--calcite-color-inverse-press:#ebebeb;--calcite-color-inverse-hover:#f2f2f2;--calcite-color-inverse:#f7f7f7;--calcite-color-brand-underline:#00a0ff66;--calcite-color-brand-press:#80d1ff;--calcite-color-brand-hover:#40b9ff;--calcite-color-brand:#009af2;--calcite-color-border-white:#f7f7f7;--calcite-color-border-ghost:#7575754d;--calcite-color-border-input:#757575;--calcite-color-border-3:#404040;--calcite-color-border-2:#4a4a4a;--calcite-color-border-1:#545454;--calcite-color-text-highlight:#d6efff;--calcite-color-text-link:#00a0ff;--calcite-color-text-inverse:#141414;--calcite-color-text-3:#9e9e9e;--calcite-color-text-2:#bfbfbf;--calcite-color-text-1:#fff;--calcite-color-foreground-current:#2b465f;--calcite-color-foreground-3:#404040;--calcite-color-foreground-2:#363636;--calcite-color-foreground-1:#2b2b2b;--calcite-color-background-none:#fff0;--calcite-color-background:#212121;--calcite-color-surface-highlight:#2b465f;--calcite-color-surface-4:#404040;--calcite-color-surface-3:#363636;--calcite-color-surface-2:#2b2b2b;--calcite-color-surface-1:#212121;--calcite-color-focus:var(--calcite-color-brand)}}@media (prefers-color-scheme:light){.calcite-mode-auto{--calcite-color-transparent-inverse-press:#ffffff29;--calcite-color-transparent-inverse-hover:#ffffff1f;--calcite-color-transparent-tint:#fffc;--calcite-color-transparent-scrim:#ffffffd9;--calcite-color-transparent-press:#00000014;--calcite-color-transparent-hover:#0000000a;--calcite-color-transparent:#0000;--calcite-color-status-danger-press:#7c1d13;--calcite-color-status-danger-hover:#a82b1e;--calcite-color-status-danger:#d83020;--calcite-color-status-warning-press:#9a5b10;--calcite-color-status-warning-hover:#c26b00;--calcite-color-status-warning:#da7c0b;--calcite-color-status-success-press:#0d3f14;--calcite-color-status-success-hover:#1a6324;--calcite-color-status-success:#288835;--calcite-color-status-info-press:#00304d;--calcite-color-status-info-hover:#004874;--calcite-color-status-info:#00619b;--calcite-color-inverse-press:#212121;--calcite-color-inverse-hover:#2b2b2b;--calcite-color-inverse:#363636;--calcite-color-brand-underline:#00619b66;--calcite-color-brand-press:#004874;--calcite-color-brand-hover:#00619b;--calcite-color-brand:#007ac2;--calcite-color-border-white:#fff;--calcite-color-border-ghost:#0000004d;--calcite-color-border-input:#949494;--calcite-color-border-3:#ebebeb;--calcite-color-border-2:#dedede;--calcite-color-border-1:#d4d4d4;--calcite-color-text-highlight:#004874;--calcite-color-text-link:#00619b;--calcite-color-text-inverse:#fff;--calcite-color-text-3:#6b6b6b;--calcite-color-text-2:#4a4a4a;--calcite-color-text-1:#141414;--calcite-color-foreground-current:#d6efff;--calcite-color-foreground-3:#ebebeb;--calcite-color-foreground-2:#f2f2f2;--calcite-color-foreground-1:#fff;--calcite-color-background-none:#fff0;--calcite-color-background:#f7f7f7;--calcite-color-surface-highlight:#d6efff;--calcite-color-surface-4:#ebebeb;--calcite-color-surface-3:#f2f2f2;--calcite-color-surface-2:#fff;--calcite-color-surface-1:#f7f7f7;--calcite-color-focus:var(--calcite-color-brand)}}@media (prefers-reduced-motion:reduce){:root{--calcite-internal-duration-factor:0}}}:root{--bg:#f1f5f9;--panel:#fff;--panel-2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--accent:#0284c7;--accent-soft:#e0f2fe;--danger:#dc2626;--danger-soft:#fee2e2;--ok:#16a34a;--header:#0b1220;--header-text:#e2e8f0;--shadow:0 10px 30px #0f172a24;--radius:8px;--diagram-bg:#f8fafc;--diagram-grid:#e2e8f0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}:root[data-theme=dark]{--bg:#0b1220;--panel:#111a2e;--panel-2:#16213a;--border:#24324d;--text:#e2e8f0;--muted:#94a3b8;--accent:#38bdf8;--accent-soft:#0c2a42;--danger:#f87171;--danger-soft:#3b1111;--ok:#4ade80;--header:#060b16;--shadow:0 10px 30px #00000080;--diagram-bg:#0d1526;--diagram-grid:#1c2840;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}.app{grid-template-rows:48px 1fr;height:100%;display:grid}.topbar{background:var(--header);color:var(--header-text);align-items:center;gap:12px;padding:0 12px;display:flex}.brand{letter-spacing:.2px;align-items:center;gap:8px;font-weight:700;display:flex}.brand small{color:#94a3b8;font-weight:400}.topbar .spacer{flex:1}.topbar .tenant{color:#94a3b8;font-size:13px}.topbar .btn{color:var(--header-text);background:0 0;border-color:#334155}.topbar .btn:hover{background:#1e293b}.topbar .btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.seg{border:1px solid #334155;border-radius:6px;display:inline-flex;overflow:hidden}.seg button{color:var(--header-text);cursor:pointer;background:0 0;border:0;padding:5px 12px}.seg button.active{background:var(--accent);color:#fff}.workspace{grid-template-columns:var(--sidebar-w,330px) 1fr;min-height:0;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.sidebar-head{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:10px;display:flex}.sidebar-head h2{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);justify-content:space-between;align-items:center;margin:0;font-size:13px;display:flex}.sidebar-body{flex:1;padding:6px 0 24px;overflow:auto}.map-area{min-width:0;min-height:0;position:relative}.map-view{position:absolute;inset:0}.btn{border:1px solid var(--border);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;line-height:1.3;display:inline-flex}.btn:hover{background:var(--panel-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.small{padding:3px 7px;font-size:12px}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:3px;display:inline-flex}.icon-btn:hover{background:var(--panel-2);color:var(--text)}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--panel);border-radius:6px;width:100%;padding:6px 8px}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--muted);font-size:12px;font-weight:500}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.stack{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.error-text{color:var(--danger);font-size:13px}.badge{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.swatch{border:1px solid #00000040;border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.checkbox{align-items:center;gap:6px;display:flex}.tree-row{padding:3px 8px 3px calc(8px + var(--depth,0) * 16px);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;min-height:26px;display:flex;position:relative}.tree-row:hover{background:var(--panel-2)}.tree-row.selected{background:var(--accent-soft)}.tree-row.drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.tree-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-row .count{color:var(--muted);font-size:11px}.tree-row .actions{gap:2px;display:none}.tree-row:hover .actions{display:inline-flex}.tree-row .caret{width:16px;color:var(--muted);justify-content:center;transition:transform .12s;display:inline-flex}.tree-row .caret.open{transform:rotate(90deg)}.level-chip{color:#fff;border-radius:4px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px}.group-label{color:var(--muted);font-size:12px;font-weight:600}.map-toolbar{z-index:5;background:var(--panel);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:10px;gap:6px;padding:6px;display:flex;position:absolute;top:12px;left:64px}.map-toolbar .btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.map-toolbar:has(.site-preset){flex-wrap:wrap;max-width:min(760px,100vw - 120px)}.site-preset{border-top:1px solid var(--border);flex-wrap:wrap;flex-basis:100%;align-items:flex-end;gap:8px 10px;padding:8px 4px 2px;display:flex}.site-preset-field{color:var(--muted);flex-direction:column;gap:3px;min-width:0;font-size:11px;display:flex}.site-preset-field .input{min-width:170px;max-width:240px}.site-preset-field.narrow .input{min-width:0}.site-preset-seq{align-self:center;font-size:13px}.site-preset-hint{color:var(--muted);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;margin:0;display:flex}.tool-hint{z-index:5;background:var(--header);color:#fff;min-width:240px;max-width:calc(100% - 430px);box-shadow:var(--shadow);border-radius:6px;padding:6px 12px;font-size:13px;position:absolute;top:64px;left:64px}.float-panel{z-index:6;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;max-height:calc(100% - 24px);display:flex;position:absolute}.details{width:340px;max-height:calc(100% - 76px);top:12px;right:12px}.map-top-left{z-index:5;pointer-events:none;flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:64px;right:12px}.map-top-left>*{pointer-events:auto}.map-top-left .map-toolbar{position:static}.address-search{width:320px;min-width:200px;max-width:100%;position:relative}.address-box{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--muted);border-radius:10px;align-items:center;gap:6px;padding:6px 8px;display:flex}.address-box .input{box-shadow:none;background:0 0;border:0;flex:1;min-width:0;padding:4px 2px}.address-box .input:focus{outline:none}.address-suggestions{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.address-suggestions button{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;padding:7px 10px;font-size:13px}.address-suggestions button:hover,.address-suggestions button.active{background:var(--accent-soft)}.address-error{color:#991b1b;background:#fee2e2;border-radius:6px;margin-top:4px;padding:3px 8px;font-size:12px}.map-corner{z-index:5;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:28px;right:12px}.map-corner .btn{box-shadow:var(--shadow)}.map-mode{background:var(--panel);box-shadow:var(--shadow)}.map-mode button{padding:6px 12px;font-weight:600}.basemap-menu{position:relative}.basemap-list{background:var(--panel);border:1px solid var(--border);min-width:230px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0}.basemap-list button{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:13px;display:flex}.basemap-list button:hover{background:var(--panel-2)}.basemap-list button.active{font-weight:600}.basemap-list .check{width:14px;color:var(--accent)}.tree-row.flash{animation:1.6s ease-out tree-flash}@keyframes tree-flash{0%,40%{background:color-mix(in srgb, var(--accent) 35%, transparent)}to{background:0 0}}.trace-panel{width:400px;max-height:45%;bottom:28px;left:12px}.float-panel header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;display:flex}.float-panel header h3{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:15px;overflow:hidden}.float-panel .body{flex-direction:column;gap:10px;padding:12px;display:flex;overflow:auto}.kv{grid-template-columns:110px 1fr;gap:4px 8px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0}.list{border:1px solid var(--border);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.list>*{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 8px;display:flex}.list>:last-child{border-bottom:0}.list .link{cursor:pointer}.list .link:hover{background:var(--panel-2)}.trace-step{font-size:13px}.trace-step .depth{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;width:22px}.toast-stack{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--header);color:#fff;box-shadow:var(--shadow);border-radius:8px;max-width:520px;padding:8px 14px;font-size:13px}.toast.error{background:var(--danger)}.modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;width:min(520px,100%);max-height:calc(100vh - 32px);display:flex}.modal.wide{width:min(1080px,100%);height:min(760px,100vh - 32px)}.modal>header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:14px 16px;display:flex}.modal>header h2{flex:1;margin:0;font-size:16px}.modal>.content{flex:1;padding:16px;overflow:auto}.modal>footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.modal{position:relative}.modal.sized>.content,.modal.maximized>.content{min-height:0}.modal.maximized{max-height:none;width:calc(100vw - 16px)!important;height:calc(100vh - 16px)!important}.modal>header{-webkit-user-select:none;user-select:none}.modal-size-btn{opacity:.7}.modal-size-btn:hover{opacity:1}.modal-resize{z-index:2;touch-action:none;position:absolute}.modal-resize.e{cursor:ew-resize;width:8px;top:12px;bottom:12px;right:-4px}.modal-resize.s{cursor:ns-resize;height:8px;bottom:-4px;left:12px;right:12px}.modal-resize.se{cursor:nwse-resize;background:linear-gradient(135deg, transparent 50%, var(--border) 50%, var(--border) 60%, transparent 60%, transparent 72%, var(--border) 72%, var(--border) 82%, transparent 82%);border-bottom-right-radius:12px;width:16px;height:16px;bottom:-2px;right:-2px}.config-layout{grid-template-columns:var(--config-nav-w,200px) 1fr;height:100%;min-height:0;display:grid;position:relative}.config-nav-resizer{cursor:col-resize;z-index:3;touch-action:none;width:8px;position:absolute;top:0;bottom:0}.config-nav-resizer:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:3px}.config-nav-resizer:hover:after,.config-nav-resizer:focus-visible:after,body.resizing-config-nav .config-nav-resizer:after{background:var(--accent)}.config-nav-resizer:focus-visible{outline:none}body.resizing-config-nav{cursor:col-resize;-webkit-user-select:none;user-select:none}.config-nav{border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:8px;display:flex}.config-nav button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 10px}.config-nav button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.config-nav{overflow-y:auto}.config-nav-group{flex-direction:column;gap:2px;display:flex}.config-nav-group+.config-nav-group{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.config-nav .config-nav-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:flex}.config-nav .config-nav-title:hover{color:var(--text);background:var(--panel-2)}.config-nav .config-nav-title.has-active{color:var(--accent)}.config-nav .config-nav-title svg{flex-shrink:0;transition:transform .15s;transform:rotate(90deg)}.config-nav-group.collapsed .config-nav-title svg{transform:none}.config-nav .config-nav-title .muted{text-transform:none;margin-left:auto;font-weight:600}.config-main{padding:16px;overflow:auto}.config-main h3{margin:0 0 4px}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}table.data th{color:var(--muted);font-size:12px;font-weight:600}table.data tr.editing td{background:var(--panel-2)}.tube-preview{flex-wrap:wrap;gap:6px;display:flex}.tube-preview .tube{border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:4px;display:flex}.tube-preview .tube .head{border:1px solid #0003;border-radius:3px;width:100%;height:8px}.tube-preview .fibers{grid-template-columns:repeat(6,10px);gap:2px;display:grid}.tube-preview .fibers i{border:1px solid #0000004d;border-radius:50%;width:10px;height:10px}.login-wrap{background:radial-gradient(1200px 600px at 20% 10%,#0c4a6e 0%,#0000 60%),#0b1220;justify-content:center;align-items:center;gap:clamp(24px,6vw,96px);min-height:100%;padding:16px;display:flex}.login-hero{flex-direction:column;flex-shrink:0;align-items:center;gap:12px;display:flex;position:relative}.login-hero-glow{pointer-events:none;background:radial-gradient(circle,#38bdf86b 0%,#4f46e533 45%,#0000 72%);border-radius:50%;position:absolute;inset:6% -8% 14%}.login-hero-img{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 18px 40px #00000073);width:auto;height:min(68vh,520px);animation:.7s ease-out both login-bud-in;position:relative}.login-hero-caption{text-align:center;color:#c7d2e2;max-width:340px;margin:0;font-size:14px;line-height:1.4;position:relative}@keyframes login-bud-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.login-hero-img{animation:none}}@media (width<=760px),(height<=520px){.login-wrap{flex-direction:column;justify-content:flex-start;gap:8px;padding-top:24px}.login-hero-img{height:min(30vh,220px)}.login-hero-caption{display:none}}.login-card{background:var(--panel);width:min(400px,100%);box-shadow:var(--shadow);border-radius:14px;padding:28px}.login-card h1{margin:0 0 4px;font-size:22px}.splice-overlay{z-index:8;background:var(--panel);flex-direction:column;display:flex;position:absolute;inset:0}.splice-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.splice-toolbar h3{margin:0;font-size:15px}.splice-canvas{background:var(--diagram-bg);background-image:radial-gradient(var(--diagram-grid) 1px, transparent 1px);background-size:16px 16px;flex:1;overflow:auto}.splice-canvas svg{margin:0 auto;display:block}.splice-canvas text{font-family:inherit}.splice-status{border-top:1px solid var(--border);color:var(--muted);align-items:center;gap:12px;min-height:36px;padding:6px 12px;font-size:13px;display:flex}.port{cursor:pointer}.port:hover circle.dot{stroke-width:3px}.conn-path{cursor:pointer}@media (width<=760px){.workspace{grid-template-rows:40% 60%;grid-template-columns:1fr}.details,.trace-panel{width:calc(100% - 24px)}.topbar .tenant,.brand small{display:none}.config-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}.config-nav-resizer{display:none}.config-nav{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.config-nav-group{flex-direction:row;flex-shrink:0;align-items:center}.config-nav-group+.config-nav-group{border-top:0;border-left:1px solid var(--border);margin:0 0 0 8px;padding:0 0 0 8px}.config-nav-group button{white-space:nowrap}}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.interior-layout{flex:1;grid-template-columns:280px 1fr;min-height:0;display:grid}.interior-tree{border-right:1px solid var(--border);padding:6px 0;overflow:auto}.interior-main{background:var(--diagram-bg);padding:16px;overflow:auto}.rack-row{align-items:flex-start;gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.rack-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex:none;padding:10px}.rack-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.u-slot{fill:#ffffff0f;stroke:#ffffff14}.port:hover .u-slot{fill:#38bdf859}.device-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;max-width:640px;margin-bottom:14px;padding:12px;display:flex}@media (width<=760px){.interior-layout{grid-template-rows:35% 1fr;grid-template-columns:1fr}}.rack-row .device-card{flex:0 380px;min-width:300px}.type-chip{color:#fff;text-align:center;border-radius:3px;flex:none;min-width:24px;padding:0 4px;font-size:9px;font-weight:700;line-height:15px}.context-menu{z-index:200;background:var(--panel);border:1px solid var(--border);min-width:220px;max-width:320px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:fixed}.context-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.context-menu button:hover:not(:disabled){background:var(--accent-soft)}.context-menu button:disabled{opacity:.45;cursor:default}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover{background:var(--danger-soft)}.context-icon{width:16px;color:var(--muted);display:inline-flex}.context-menu .danger .context-icon{color:inherit}.context-title{color:var(--muted);border-bottom:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;padding:4px 8px 6px;font-size:11px;font-weight:600;overflow:hidden}.context-sep{background:var(--border);height:1px;margin:4px 0}.tree-row .more-btn{opacity:0}.tree-row:hover .more-btn,.tree-row.selected .more-btn{opacity:1}.attr-defs td{padding:4px}.attr-defs .input{padding:4px 6px}.details-modal{flex-direction:column;height:100%;margin:-16px;display:flex}.breadcrumb{color:var(--muted);border-bottom:1px solid var(--border);padding:8px 16px;font-size:12px}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:0 12px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 12px;font-weight:500;display:inline-flex}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{background:var(--accent-soft);color:var(--accent);border-radius:9px;padding:0 6px;font-size:11px}.project-design-tabs{flex-wrap:wrap;margin-bottom:4px;padding:0}.project-design-tabs button{padding:6px 10px;font-size:13px}.tab-body{flex:1;padding:16px;overflow:auto}.tab-body h4{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 8px;font-size:13px}.details-general{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;display:grid}.details-faceplate{border-top:1px solid var(--border);grid-column:1/-1;padding-top:12px}.kv.wide{grid-template-columns:180px 1fr}.dropzone{border:2px dashed var(--border);cursor:pointer;color:var(--muted);text-align:center;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:18px;display:flex}.dropzone.active,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.gallery{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.gallery figure{border:1px solid var(--border);background:var(--panel);border-radius:8px;margin:0;overflow:hidden}.thumb{object-fit:cover;cursor:zoom-in;background:var(--panel-2);width:100%;height:130px;display:block}.img-loading{background:linear-gradient(90deg, var(--panel-2), var(--border), var(--panel-2))}.gallery figcaption{flex-direction:column;gap:4px;padding:6px;display:flex}.input.caption{padding:3px 6px;font-size:12px}.lightbox{z-index:120;background:#020617e0;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:6px;max-width:100%;max-height:calc(100% - 60px)}.lightbox-bar{color:#e2e8f0;align-items:center;gap:8px;width:min(900px,100%);font-size:13px;display:flex}@media (width<=760px){.details-general{grid-template-columns:1fr}.kv.wide{grid-template-columns:120px 1fr}}.seg.light{border-color:var(--border)}.seg.light button{color:var(--text);align-items:center;gap:4px;padding:4px 10px;font-size:13px;display:inline-flex}.seg.light button.active{background:var(--accent);color:#fff}.plan-layout{flex-direction:column;gap:8px;height:calc(100% - 64px);min-height:420px;display:flex}.plan-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.small-text{font-size:12px}.plan-body{flex-wrap:wrap;flex:1;align-items:stretch;gap:12px;min-height:0;display:flex}.plan-canvas{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;flex:420px;min-width:0;min-height:380px;position:relative;overflow:auto}.plan-canvas svg{-webkit-user-select:none;user-select:none;display:block}.plan-grid{stroke:var(--diagram-grid);stroke-width:1px}.plan-ruler{fill:var(--muted);font-size:10px}.plan-wall{stroke:var(--text);stroke-width:3px}.plan-item{cursor:grab}.plan-item:active{cursor:grabbing}.plan-hint{z-index:2;background:var(--header);color:#fff;border-radius:6px;margin:8px;padding:4px 10px;font-size:12px;display:inline-block;position:sticky;top:8px;left:8px}.plan-side{flex-direction:column;flex:240px;gap:10px;max-width:340px;display:flex;overflow:auto}.plan-side h4{text-transform:uppercase;color:var(--muted);letter-spacing:.4px;margin:4px 0 0;font-size:12px}.plan-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.selected-row{background:var(--accent-soft)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--panel-2)}.pill{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.pill.ok{color:#166534;background:#dcfce7}.pill.warning{color:#92400e;background:#fef3c7}.pill.fail{color:#991b1b;background:#fee2e2}.pill.unknown,.pill.info{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.endpoint-picker{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0;padding:8px 10px 10px}.endpoint-picker legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:600}.endpoint-picker .grid3{grid-template-columns:1fr;gap:6px}.section-title{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:6px 0 0;font-size:12px}.route-header{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.route-header .kv{flex:360px;grid-template-columns:120px 1fr}.route-schematic{border:1px solid var(--border);background:var(--diagram-bg);border-radius:8px;overflow-x:auto}.schematic-cable{fill:var(--text);font-size:11px;font-weight:600}.schematic-len{fill:var(--muted);font-size:11px}.schematic-site{fill:var(--text);font-size:12px;font-weight:600}.schematic-event{fill:var(--muted);font-size:10px}.loss-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;height:10px;position:relative;overflow:visible}.loss-fill{background:#0ea5e9;border-radius:5px;height:100%}.loss-fill.ok{background:#16a34a}.loss-fill.warning{background:#f59e0b}.loss-fill.fail{background:#dc2626}.loss-budget{background:var(--text);width:2px;position:absolute;top:-4px;bottom:-4px}.fiber-chip{border:1px solid #00000040;border-radius:3px;justify-content:center;align-items:center;min-width:20px;height:16px;padding:0 3px;font-size:10px;font-weight:700;display:inline-flex}.fiber-chip.round{border-radius:8px;min-width:16px}.route-steps td{vertical-align:middle}.route-chip{z-index:6;background:var(--panel);box-shadow:var(--shadow);border:2px solid #facc15;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex;position:absolute;top:64px;left:12px}.draft-chip{z-index:60;background:var(--header);color:#fff;box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex;position:fixed;bottom:16px;right:16px}.status-dot{vertical-align:middle;border:1px solid #00000040;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.status-row{gap:8px;margin-bottom:10px}.otdr-box{border:1px solid var(--border);background:var(--panel);border-left:4px solid #dc2626;border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.otdr-result{justify-content:space-between;font-size:13px}.fault-chip{border-color:#dc2626!important}.media-badge{white-space:nowrap;border-radius:4px;align-items:center;gap:2px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.media-badge.optical{color:#0f766e;background:#ccfbf1}.media-badge.copper{color:#92400e;background:#fef3c7}.cm-body{background:var(--diagram-bg);flex:1;padding:16px;overflow:auto}.cm-grid{grid-template-columns:minmax(280px,1fr) 120px minmax(280px,1fr);align-items:start;max-width:1100px;margin:0 auto;display:grid}.cm-grid+.cm-grid{margin-top:20px}.cm-grid>.cm-col:last-of-type .cm-conn{text-align:left}.cm-col{background:var(--panel);border:1px solid var(--border);border-radius:10px;min-height:260px;overflow:hidden}.cm-col.empty{border:2px dashed var(--border);display:flex}.cm-drop{text-align:center;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;font-size:13px;display:flex}.cm-col.empty:hover{border-color:var(--accent)}.cm-col:has(.cm-drop):hover{border-color:var(--accent)}.cm-head{border-bottom:1px solid var(--border);box-sizing:border-box;align-items:center;gap:8px;padding:8px 10px;display:flex}.cm-group{background:var(--panel-2);color:var(--muted);box-sizing:border-box;align-items:center;padding:0 10px;font-size:11px;font-weight:700;display:flex}.cm-port{border-bottom:1px solid var(--border);cursor:pointer;box-sizing:border-box;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.cm-port:hover{background:var(--accent-soft)}.cm-port.pending{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.cm-port.disabled{opacity:.35}.cm-port.connected .cm-label{font-weight:700}.cm-label{min-width:56px}.cm-conn{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;text-align:right;flex:1;overflow:hidden}.cm-col:last-child .cm-conn{text-align:left}.cm-dot{background:var(--panel);border:2px solid;border-radius:50%;flex:none;width:10px;height:10px}.cm-dot.optical{border-color:#0d9488}.cm-dot.copper{border-color:#d97706;border-radius:2px}.cm-port.connected .cm-dot.optical{background:#0d9488}.cm-port.connected .cm-dot.copper{background:#d97706}.cm-links{display:block}.main-nav{gap:2px;margin-left:12px;display:flex;overflow-x:auto}.main-nav button{color:#cbd5e1;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:600}.main-nav button:hover{color:#fff;background:#1e293b}.main-nav button.active{color:#fff;box-shadow:inset 0 -2px 0 var(--accent);background:#1e293b}.main-nav .soon{color:#64748b;margin-left:4px;font-size:10px}.page-area{background:var(--bg);min-height:0;overflow:auto}.page{box-sizing:border-box;flex-direction:column;gap:12px;min-height:100%;padding:20px 24px;display:flex}.page-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-head h1{margin:0;font-size:20px}.page>.page-head{z-index:5;background:var(--bg);margin:-20px -24px 0;padding:20px 24px 10px;position:sticky;top:0}.page-tabs{padding:0}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters>select.input{flex:0 200px;width:auto;min-width:150px}.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex:1;min-height:200px;overflow:auto}.table-wrap>p{margin:0;padding:12px}table.sticky-head thead th{background:var(--panel);z-index:1;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}.pager{justify-content:flex-end;align-items:center;gap:10px;display:flex}.split{flex:1;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:start;gap:16px;min-height:0;display:grid}.split:has(>:only-child){grid-template-columns:1fr}.detail-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex;overflow:auto}.progress{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;height:8px;overflow:hidden}.progress>div{background:var(--accent);height:100%}.status-select{width:auto;padding:3px 6px;font-size:12px}.pill.prio-low{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.pill.prio-medium{color:#075985;background:#e0f2fe}.pill.prio-high{color:#92400e;background:#fef3c7}.pill.prio-urgent{color:#991b1b;background:#fee2e2}.pill.proj-planning{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.pill.proj-in_progress{color:#075985;background:#e0f2fe}.pill.proj-on_hold{color:#92400e;background:#fef3c7}.pill.proj-done{color:#166534;background:#dcfce7}.pill.proj-cancelled{color:#991b1b;background:#fee2e2}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.kpi-label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.kpi-value{font-variant-numeric:tabular-nums;margin:2px 0;font-size:28px;font-weight:700}.kpi-sub{color:var(--muted);font-size:12px}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.dash-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;min-width:0;padding:14px}.dash-card.wide{grid-column:1/-1}.dash-card h3{margin:0 0 10px;font-size:14px}.bars{flex-direction:column;gap:6px;display:flex}.bar-row{grid-template-columns:minmax(90px,40%) 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.bar-row:hover .bar-fill{filter:brightness(1.15)}.bar-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text);overflow:hidden}.bar-track{height:14px;display:block}.bar-fill{background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.bar-value{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;min-width:40px}.usage{flex-direction:column;gap:4px;display:flex}.usage-track{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;height:14px;overflow:hidden}.usage-used{background:var(--accent);border-right:2px solid var(--panel);height:100%;display:block}.route-health{grid-template-columns:1fr 1fr;gap:8px;display:grid}.health-row{border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.placeholder{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:60px 20px;display:flex}@media (width<=1280px){.split{grid-template-columns:1fr}}.app>*{min-width:0}.page-area{min-width:0;overflow-x:hidden}.topbar{min-width:0}.main-nav{scrollbar-width:none;flex:0 auto;min-width:0}.topbar .btn .btn-text{display:inline}@media (width<=1280px){.topbar .tenant{display:none}}@media (width<=1100px){.topbar .btn .btn-text{display:none}.main-nav button{padding:6px 7px}.main-nav .soon{display:none}}.proj-tag{color:#fff;background:var(--project-color,#d946ef);border-radius:3px;flex:none;padding:0 4px;font-size:9px;font-weight:700;line-height:14px}.active-project{background:color-mix(in srgb, var(--project-color,#d946ef) 45%, #0f172a);color:#fdf4ff;border:1px solid var(--project-color,#d946ef);white-space:nowrap;border-radius:6px;align-items:center;gap:8px;max-width:380px;padding:3px 4px 3px 10px;font-size:12px;display:flex}.active-project b{text-overflow:ellipsis;overflow:hidden}.active-project .btn{color:#fdf4ff;border-color:var(--project-color,#d946ef);background:0 0;padding:2px 8px;font-size:12px}.project-banner{z-index:5;background:color-mix(in srgb, var(--project-color,#d946ef) 45%, #0f172a);color:#fdf4ff;box-shadow:var(--shadow);text-align:center;border-radius:8px;max-width:calc(100% - 24px);padding:6px 12px;font-size:12px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.diff-group summary{cursor:pointer;font-size:12px;font-weight:600}.diff-list{flex-direction:column;gap:2px;margin:2px 0 6px;padding-left:22px;font-size:12px;display:flex}.diff-mark{text-align:center;width:14px;margin-right:4px;font-weight:700;display:inline-block}.diff-mark.add{color:#16a34a}.diff-mark.mod{color:#d97706}.diff-mark.del{color:#dc2626}.diff-mark.res{color:var(--project-color,#d946ef)}.color-dot{border:2px solid var(--panel);width:22px;height:22px;box-shadow:0 0 0 1px var(--border);cursor:pointer;border-radius:50%;padding:0}.color-dot.on{box-shadow:0 0 0 2px var(--text)}.proj-reserved-tag{color:#fff;white-space:nowrap;border-radius:3px;align-items:center;gap:4px;padding:0 5px;font-size:10px;font-weight:600;line-height:16px;display:inline-flex}.link-btn{color:var(--accent,#2563eb);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.link-btn:hover{text-decoration:underline}.project-design{border:1px solid var(--project-color,#d946ef);background:color-mix(in srgb, var(--project-color,#d946ef) 6%, var(--panel));border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.active-project{flex:0 auto;min-width:0;max-width:320px}@media (width<=1280px){.active-project{max-width:220px}}.conn-side{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}td.nowrap{white-space:nowrap}.license-warning{color:#78350f;white-space:nowrap;background:#fde68a;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600}.admin-badge{letter-spacing:.5px;text-transform:uppercase;color:#1f2937;vertical-align:middle;background:#f59e0b;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700}.admin-stats{flex-wrap:wrap;gap:12px;display:flex}.admin-stat{background:var(--panel);border:1px solid var(--border);cursor:default;border-radius:10px;flex-direction:column;min-width:140px;padding:10px 14px;display:flex}.admin-stat b{font-size:22px}.admin-stat span{color:var(--muted);font-size:12px}.admin-stat.ok b{color:#15803d}.admin-stat.warn{cursor:pointer}.admin-stat.warn b{color:#b45309}.admin-stat.fail{cursor:pointer}.admin-stat.fail b{color:#b91c1c}.admin-detail{max-height:calc(100vh - 150px)}.module-grid{flex-wrap:wrap;gap:6px;display:flex}.module-chip{border:1px solid var(--border);cursor:pointer;background:var(--panel);border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;display:inline-flex}.module-chip.on{border-color:var(--accent);background:var(--accent-soft)}.module-groups{flex-direction:column;gap:12px;display:flex}.module-core{border:1px dashed var(--border);color:var(--muted);border-radius:8px;padding:8px 10px;line-height:1.5}.module-core b{color:var(--text);margin-right:6px}.module-group{flex-direction:column;gap:6px;display:flex}.module-group-head{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.module-group .module-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.module-group .module-chip{align-items:flex-start}.module-group .module-chip input{margin-top:3px}.module-chip-text{flex-direction:column;gap:2px;min-width:0;display:flex}.module-chip-text .muted{font-size:12px;line-height:1.35}.language-options{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;max-width:640px;display:grid}.language-option{border:1px solid var(--border);cursor:pointer;background:var(--panel);border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:12px 14px;display:grid}.language-option input{grid-row:span 2;margin:0}.language-option.on{border-color:var(--accent);background:var(--accent-soft)}.audit-filters .input{width:auto}.audit-table td{vertical-align:top}.audit-detail td{background:var(--panel-2)}.audit-detail .kv{margin:0}.audit-action{font-weight:600}.audit-action.insert{color:#15803d}.audit-action.delete,.audit-action.login_failed,.audit-action.admin-login_failed{color:#b91c1c}.audit-action.update{color:#b45309}.main-nav button{align-items:center;gap:4px;display:inline-flex}.main-nav button.open{color:#fff;background:#1e293b}.nav-caret{opacity:.7;transition:transform .15s;display:inline-flex;transform:rotate(90deg)}.main-nav button.open .nav-caret{transform:rotate(-90deg)}.nav-dropdown{z-index:50;background:var(--panel);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:fixed}.nav-dropdown button{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;font-size:13px;display:flex}.nav-dropdown button:hover{background:var(--panel-2)}.nav-dropdown button.active{background:var(--accent-soft);font-weight:600}.nav-hint{color:var(--muted);font-size:11px;font-weight:400}.tree-row .cable-end{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;max-width:45%;font-size:11px;overflow:hidden}.sidebar{position:relative}.sidebar-resizer{cursor:col-resize;z-index:6;touch-action:none;width:8px;height:100%;position:absolute;top:0;right:-4px}.sidebar-resizer:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:3px}.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after,body.resizing-sidebar .sidebar-resizer:after{background:var(--accent)}.sidebar-resizer:focus-visible{outline:none}body.resizing-sidebar{cursor:col-resize;-webkit-user-select:none;user-select:none}body.resizing-sidebar .map-view{pointer-events:none}@media (width<=760px){.sidebar-resizer{display:none}}.dialog-body{flex-direction:column;gap:10px;min-width:min(420px,80vw);max-width:560px;display:flex}.dialog-message{white-space:pre-line;font-size:14px;line-height:1.45}.dialog-warning{color:#78350f;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:13px;line-height:1.4;display:flex}.dialog-warning svg{color:#b45309;flex:none;margin-top:1px}.dialog-list{max-height:160px;margin:0;padding-left:18px;font-size:13px;overflow:auto}.dialog-list li{margin:2px 0}.btn.danger-solid{color:#fff;background:#dc2626;border-color:#dc2626}.btn.danger-solid:hover:not(:disabled){background:#b91c1c}.map-tools{z-index:5;background:var(--panel);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:8px;flex-direction:column;display:flex;position:absolute;top:96px;left:15px;overflow:hidden}.map-tools button{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.map-tools button:hover:not(:disabled){background:var(--panel-2)}.map-tools button.active{background:var(--accent);color:#fff}.map-tools button:disabled{opacity:.35;cursor:default}.map-tools-sep{background:var(--border);height:1px;margin:2px 4px}.map-tool-panel{z-index:5;background:var(--panel);border:1px solid var(--border);width:280px;max-height:45%;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:13px;display:flex;position:absolute;bottom:28px;left:60px}.map-measure{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.map-measure b{font-size:18px}.map-pick-list{flex-direction:column;align-items:flex-start;gap:2px;min-height:0;max-height:160px;font-size:12px;display:flex;overflow:auto}.kmz-drop{border:2px dashed var(--border);cursor:pointer;color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:14px;display:flex}.kmz-drop:hover{border-color:var(--accent)}.kmz-drop>span:first-of-type{color:var(--text);flex:1}.kmz-summary{flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.layer-toggle{align-items:center;gap:4px;padding:2px 4px 2px 8px;display:flex}.layer-toggle label{cursor:pointer;flex:1;align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.layer-toggle label span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.color-dot{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:22px;height:22px;padding:0}.interior3d{border:1px solid var(--border);background:#e2e8f0;border-radius:10px;flex:1;height:calc(100% - 60px);min-height:420px;position:relative;overflow:hidden}.interior3d-canvas{position:absolute;inset:0}.interior3d-canvas canvas{cursor:grab;width:100%;height:100%;display:block}.interior3d-bar{pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.interior3d-bar>*{pointer-events:auto}.interior3d-bar .seg,.interior3d-bar select,.interior3d-bar label{background:var(--panel);box-shadow:var(--shadow);border-radius:6px}.interior3d-bar select{width:auto}.interior3d-bar label{padding:4px 8px}.interior3d-legend{pointer-events:none;text-shadow:0 1px #fff;flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:absolute;bottom:8px;left:10px;right:10px}.interior3d-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin:0 4px 0 6px;display:inline-block}.interior3d-tip{pointer-events:none;color:#fff;z-index:2;background:#0f172aeb;border-radius:6px;max-width:260px;padding:6px 9px;font-size:12px;line-height:1.45;display:none;position:absolute}.interior3d-tip .tip-title{font-weight:700;font-family:var(--mono,monospace)}.conn-routes{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.conn-route-chip{color:#5b21b6;cursor:pointer;white-space:nowrap;background:#f5f3ff;border:1px solid #c4b5fd;border-radius:10px;align-items:center;gap:3px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.conn-route-chip:hover{background:#ede9fe}.kpi-warn .kpi-value{color:#b45309}.usage-used.high{background:#dc2626}td.overdue{color:#b91c1c;font-weight:600}.rack-usage{grid-template-columns:minmax(80px,34%) 1fr auto;align-items:center;gap:8px;display:grid}.rack-usage-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.months-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.months-title{justify-content:space-between;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.months-plot{grid-template-columns:repeat(12,1fr);align-items:end;gap:2px;height:130px;display:grid}.month-col{flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.month-col:hover .month-bar{background:color-mix(in srgb, var(--accent) 75%, #000)}.month-area{flex:1;justify-content:center;align-items:flex-end;width:100%;min-height:0;display:flex}.month-bar{background:var(--accent);border-radius:4px 4px 0 0;width:72%;min-height:1px}.month-value{color:var(--text);font-variant-numeric:tabular-nums;min-height:13px;font-size:10px}.month-label{color:var(--muted);white-space:nowrap;margin-top:3px;font-size:9px}.sales-page{height:100%;min-height:480px;position:relative}.sales-map{position:absolute;inset:0}.sales-search{z-index:5;flex-direction:column;gap:6px;width:min(440px,100% - 80px);display:flex;position:absolute;top:12px;left:64px}.sales-search .address-search{width:100%}.sales-hint{background:var(--panel);border:1px solid var(--border);color:var(--muted);box-shadow:var(--shadow);border-radius:8px;padding:6px 10px;font-size:12px}.sales-panel{z-index:6;background:var(--panel);border:1px solid var(--border);width:360px;max-width:calc(100% - 24px);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:12px;bottom:28px;right:12px;overflow:auto}.sales-verdict{border-radius:8px;align-items:flex-start;gap:10px;padding:10px;display:flex}.sales-verdict.ok{color:#14532d;background:#dcfce7}.sales-verdict.no{color:#7f1d1d;background:#fee2e2}.sales-candidates{flex-direction:column;gap:6px;display:flex}.sales-candidate{border:1px solid var(--border);border-radius:8px;overflow:hidden}.sales-candidate.out{opacity:.7}.sales-candidate-head{background:var(--panel);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;border:0;align-items:center;gap:6px;padding:7px 9px;display:flex}.sales-candidate-head:hover{background:var(--panel-2)}.sales-components{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:6px 9px 9px;display:flex}.port-grid{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.port-chip{border:1px solid var(--border);background:var(--panel-2);min-width:34px;font:inherit;cursor:default;color:var(--muted);border-radius:6px;padding:3px 5px;font-size:11px;font-weight:600}.port-chip.free{color:#14532d;cursor:pointer;background:#dcfce7;border-color:#86efac}.port-chip.free:hover:not(:disabled){background:#bbf7d0}.port-chip.free:disabled{cursor:not-allowed}.port-chip.reserved{color:#78350f;background:#fef3c7;border-color:#fcd34d}.port-chip.used{text-decoration:line-through}.sidebar-tree{flex-direction:column;flex:1;min-height:120px;display:flex;overflow:hidden}.sidebar-assistant{border-top:1px solid var(--border);background:var(--panel);flex-direction:column;flex:none;min-height:0;display:flex}.assistant-splitter{cursor:row-resize;z-index:2;flex:none;height:6px;margin-top:-3px;margin-bottom:-3px;position:relative}.assistant-splitter:after{content:"";background:0 0;height:2px;transition:background .15s;position:absolute;top:2px;left:0;right:0}.assistant-splitter:hover:after,.assistant-splitter:focus-visible:after,body.resizing-assistant .assistant-splitter:after{background:var(--accent)}.assistant-splitter:focus-visible{outline:none}body.resizing-assistant{cursor:row-resize;-webkit-user-select:none;user-select:none}.assistant{flex-direction:column;height:100%;min-height:0;display:flex}.assistant-head{background:color-mix(in srgb, var(--accent) 7%, var(--panel));cursor:pointer;font:inherit;color:var(--text);text-align:left;border:0;flex:none;align-items:center;gap:6px;padding:8px 10px;display:flex}.assistant-head svg{color:var(--accent)}.assistant-caret{color:var(--muted);transition:transform .15s;display:inline-flex;transform:rotate(-90deg)}.assistant-caret.open{transform:rotate(90deg)}.assistant-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:8px 10px;display:flex;overflow:auto}.assistant-list>*{flex-shrink:0}.assistant-msg{min-width:0}.assistant-bubble{overflow-wrap:anywhere}.assistant-empty{flex-direction:column;gap:6px;display:flex}.assistant-empty p{margin:0 0 2px}.assistant-suggestion{text-align:left;border:1px dashed var(--border);background:var(--panel);font:inherit;color:var(--text);cursor:pointer;border-radius:8px;padding:6px 8px;font-size:12px}.assistant-suggestion:hover{border-color:var(--accent)}.assistant-msg{flex-direction:column;gap:4px;max-width:92%;display:flex}.assistant-msg.user{align-self:flex-end;align-items:flex-end}.assistant-bubble{white-space:pre-wrap;border-radius:10px;padding:7px 10px;font-size:13px;line-height:1.4}.assistant-msg.user .assistant-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:3px}.assistant-msg.assistant .assistant-bubble{background:var(--panel-2);border:1px solid var(--border);border-bottom-left-radius:3px}.assistant-actions{flex-wrap:wrap;gap:4px;display:flex}.assistant-actions .btn{font-size:12px}.assistant-source{color:var(--muted);font-size:10px}.assistant-input{border-top:1px solid var(--border);flex:none;gap:6px;padding:8px 10px;display:flex}.assistant-input .input{flex:1;min-width:0}.logo{align-items:center;gap:9px;line-height:1;display:inline-flex}.logo-text{flex-direction:column;gap:3px;display:flex}.logo-word{letter-spacing:-.02em;font-weight:800}.logo-dark .logo-word{color:#f8fafc}.logo-word b{color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.logo-dark .logo-word b{background-image:linear-gradient(135deg,#38bdf8,#818cf8)}.logo-light .logo-word{color:#0f172a}.logo-light .logo-word b{background-image:linear-gradient(135deg,#0ea5e9,#4f46e5)}.logo-tagline{letter-spacing:0;color:var(--muted);font-size:13px;font-weight:400;line-height:1.3}.login-brand{flex-direction:column;gap:8px;margin-bottom:4px;display:flex}.gantt{border:1px solid var(--border);background:var(--panel);border-radius:8px;flex:1;min-height:200px;overflow:auto}.gantt-row{border-bottom:1px solid var(--border);min-width:max-content;display:flex}.gantt-row.project{background:var(--panel-2)}.gantt-label{z-index:2;background:inherit;border-right:1px solid var(--border);flex:none;align-items:center;gap:6px;width:300px;min-height:30px;padding:0 8px;display:flex;position:sticky;left:0;overflow:hidden}.gantt-row.project .gantt-label{min-height:34px}.gantt-row.wo .gantt-label{background:var(--panel);padding-left:34px;font-size:12px}.gantt-name{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.gantt-head{z-index:3;background:var(--panel);position:sticky;top:0}.gantt-head .gantt-label{color:var(--muted);background:var(--panel);font-size:12px;font-weight:600}.gantt-track{flex:none;min-height:30px;position:relative}.gantt-row.project .gantt-track{min-height:34px}.gantt-head .gantt-track{height:30px}.gantt-month{color:var(--muted);border-left:1px solid var(--border);white-space:nowrap;text-transform:capitalize;padding:7px 6px;font-size:12px;font-weight:600;position:absolute;top:0;bottom:0;overflow:hidden}.gantt-line{border-left:1px solid var(--border);width:0;position:absolute;top:0;bottom:0}.gantt-line.week{opacity:.6;border-left-style:dotted}.gantt-today{z-index:1;pointer-events:none;border-left:2px solid #ef4444;width:0;position:absolute;top:0;bottom:0}.gantt-bar{color:#fff;cursor:pointer;border-radius:5px;align-items:center;height:20px;padding:0 6px;font-size:11px;font-weight:600;display:flex;position:absolute;top:7px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.gantt-bar span{white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 1px #00000059;overflow:hidden}.gantt-bar.thin{border-radius:6px;height:12px;top:9px}.gantt-bar.thin span{display:none}.gantt-bar.open{-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.gantt-bar.faded{opacity:.45}.gantt-bar.late{background:repeating-linear-gradient(135deg,#ef4444 0 5px,#fca5a5 5px 10px)}.gantt-due{background:var(--panel);z-index:1;border:2px solid #0f172a;width:9px;height:9px;margin:-4px 0 0 -4px;position:absolute;top:50%;transform:rotate(45deg)}.gantt-due.late{border-color:#dc2626}.gantt-legend{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.gantt-legend span{align-items:center;gap:5px;display:inline-flex}.gantt-swatch{border-radius:3px;flex:none;width:16px;height:10px;display:inline-block}.gantt-swatch.thin{height:6px}.gantt-swatch.late{background:repeating-linear-gradient(135deg,#ef4444 0 3px,#fca5a5 3px 6px)}.gantt-due-mark{border:2px solid #0f172a;width:8px;height:8px;display:inline-block;transform:rotate(45deg)}.gantt-today-mark{background:#ef4444;width:2px;height:12px;display:inline-block}.gantt-name .gantt-swatch{border-radius:50%;width:10px;height:10px}.eye-btn{width:22px;height:22px;color:var(--muted);flex:none;padding:0}.eye-btn:hover{color:var(--text)}.tree-row.rack-hidden .name,.tree-row.rack-hidden .swatch,.tree-row.rack-hidden .count{opacity:.45}.tree-row.rack-hidden .eye-btn{color:var(--muted);opacity:.8}.rack-hidden-note{white-space:nowrap;color:var(--muted);border:1px dashed var(--border);border-radius:8px;flex:none;align-self:flex-start;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.basemap-list.splice-elements{z-index:20;min-width:280px;max-height:60vh;top:calc(100% + 6px);bottom:auto;overflow:auto}.splice-elements .layer-toggle{cursor:pointer;border-radius:6px;gap:6px;padding:4px 8px;font-size:13px}.splice-elements .layer-toggle:hover{background:var(--panel-2)}.splice-elements .layer-toggle span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subduct-chip{border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 8px 1px 3px;font-size:12px;display:inline-flex}.subduct-chip i{border-radius:50%;width:12px;height:12px;display:inline-block;box-shadow:inset 0 0 0 1px #0003}.subduct-row{gap:6px}.subduct-row .input{flex:1;min-width:0;padding:3px 6px}.segment-menu{position:relative}.segment-menu .basemap-list{z-index:30;min-width:180px;inset:calc(100% + 4px) auto auto 0}.rack-device.movable{cursor:grab}.rack-device.dragging{opacity:.4}body.dragging-device,body.dragging-device *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.main-nav .nav-icon{opacity:.85;display:inline-flex}.main-nav button.active .nav-icon,.main-nav button:hover .nav-icon{opacity:1;color:#7dd3fc}:root[data-theme=dark]{--on-accent:#04121f}[data-theme=dark] .topbar .btn.active,[data-theme=dark] .seg button.active,[data-theme=dark] .map-toolbar .btn.active,[data-theme=dark] .map-tools button.active,[data-theme=dark] .seg.light button.active,[data-theme=dark] .assistant-msg.user .assistant-bubble{color:var(--on-accent)}[data-theme=dark] .pill.ok,[data-theme=dark] .pill.proj-done,[data-theme=dark] .sales-verdict.ok,[data-theme=dark] .port-chip.free{color:#86efac;background:#0f2e1c;border-color:#166534}[data-theme=dark] .port-chip.free:hover:not(:disabled){background:#14532d}[data-theme=dark] .pill.warning,[data-theme=dark] .pill.prio-high,[data-theme=dark] .pill.proj-on_hold,[data-theme=dark] .media-badge.copper,[data-theme=dark] .port-chip.reserved{color:#fcd34d;background:#3a2a07;border-color:#78350f}[data-theme=dark] .pill.fail,[data-theme=dark] .pill.prio-urgent,[data-theme=dark] .pill.proj-cancelled,[data-theme=dark] .sales-verdict.no,[data-theme=dark] .address-error{color:#fca5a5;background:#3b1111}[data-theme=dark] .pill.prio-medium,[data-theme=dark] .pill.proj-in_progress{color:#7dd3fc;background:#0c2a42}[data-theme=dark] .media-badge.optical{color:#5eead4;background:#082f2c}[data-theme=dark] .dialog-warning{color:#fde68a;background:#2e2206;border-color:#78350f}[data-theme=dark] .dialog-warning svg{color:#fbbf24}[data-theme=dark] .conn-route-chip{color:#c4b5fd;background:#1e1a3d;border-color:#4c1d95}[data-theme=dark] .conn-route-chip:hover{background:#2a2357}[data-theme=dark] .admin-stat.ok b,[data-theme=dark] .audit-action.insert,[data-theme=dark] .diff-mark.add{color:#4ade80}[data-theme=dark] .admin-stat.warn b,[data-theme=dark] .audit-action.update,[data-theme=dark] .kpi-warn .kpi-value,[data-theme=dark] .diff-mark.mod{color:#fbbf24}[data-theme=dark] .admin-stat.fail b,[data-theme=dark] .audit-action.delete,[data-theme=dark] .audit-action.login_failed,[data-theme=dark] .audit-action.admin-login_failed,[data-theme=dark] td.overdue,[data-theme=dark] .diff-mark.del{color:#f87171}[data-theme=dark] .interior3d{background:#0d1526}[data-theme=dark] .interior3d-legend{text-shadow:0 1px #000}[data-theme=dark] .gantt-due,[data-theme=dark] .gantt-due-mark{border-color:var(--text)}[data-theme=dark] .logo-light .logo-word{color:#f8fafc}[data-theme=dark] .logo-light .logo-word b{background-image:linear-gradient(135deg,#38bdf8,#818cf8)}[data-theme=dark] .swatch,[data-theme=dark] .status-dot,[data-theme=dark] .fiber-chip{border-color:#ffffff47}[data-theme=dark] .modal-backdrop{background:#0009}.theme-preview{border:1px solid var(--border);border-radius:6px;grid-template-rows:14px 1fr;width:100%;height:64px;display:grid;overflow:hidden}.theme-preview i{display:block}.theme-preview .tp-body{grid-template-columns:30% 1fr;gap:4px;padding:4px;display:grid}.theme-preview .tp-body i{border-radius:3px}.language-option .theme-preview{grid-column:1/-1;margin-top:8px}.desktop-hint{background:var(--accent-soft);color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.desktop-hint>span{flex:1}.modal>.content>.desktop-hint{margin:-16px -16px 16px}.modal>.content>.desktop-hint+.config-layout{height:calc(100% - 22px)!important;margin-top:0!important}.sales-search-row{align-items:flex-start;gap:6px;display:flex}.sales-search-row .address-search{flex:1}.upload-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.upload-actions .btn{flex:140px;justify-content:center;min-height:48px}@media (width<=767px){.app{grid-template-rows:calc(48px + env(safe-area-inset-top)) 1fr;padding-bottom:calc(58px + env(safe-area-inset-bottom))}.topbar{padding:env(safe-area-inset-top) 8px 0;gap:6px}.topbar .btn{justify-content:center;min-width:40px;min-height:40px;padding:6px 8px}.topbar .logo-text{display:none}.license-warning{text-overflow:ellipsis;max-width:110px;padding:2px 6px;font-size:11px;overflow:hidden}.active-project{gap:4px;max-width:150px;padding:2px 3px 2px 6px}.active-project-label{display:none}.active-project .btn{min-width:0;min-height:30px}.main-nav{z-index:40;height:calc(58px + env(safe-area-inset-bottom));padding:0 2px env(safe-area-inset-bottom);background:var(--header);border-top:1px solid #1e293b;gap:0;margin:0;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.main-nav button{border-radius:0;flex-direction:column;flex:1 0 58px;justify-content:center;gap:2px;max-width:96px;min-height:56px;padding:4px 2px;font-size:10px;font-weight:600}.main-nav button.active{box-shadow:inset 0 3px 0 var(--accent);color:#fff;background:0 0}.main-nav .nav-icon svg{width:20px;height:20px}.main-nav .nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.main-nav .nav-caret,.main-nav .soon{display:none}.nav-dropdown{min-width:220px;max-width:calc(100vw - 16px)}.nav-dropdown button{justify-content:center;min-height:44px;font-size:14px}.workspace{grid-template-rows:1fr;grid-template-columns:1fr;position:relative}.sidebar{z-index:30;width:min(88vw,360px);box-shadow:var(--shadow);transition:transform .2s;position:absolute;top:0;bottom:0;left:0;transform:translate(-102%)}.sidebar.open{transform:none}.drawer-backdrop{z-index:29;background:#0f172a73;position:absolute;inset:0}.map-area{grid-area:1/1}.tree-row{min-height:40px}.tree-row .more-btn{opacity:1}.tree-row .icon-btn,.tree-row .more-btn{justify-content:center;align-items:center;min-width:32px;min-height:32px}.assistant-head{min-height:44px}.sidebar-assistant{max-height:45%}.map-top-left{gap:6px;top:8px;left:8px;right:8px}.map-top-left .address-search{flex:100%;order:-1;width:100%}.address-box{min-height:44px;padding:4px 8px}.address-box .icon-btn{justify-content:center;align-items:center;min-width:36px;min-height:36px}.address-suggestions button{min-height:44px}.map-toolbar{flex-wrap:wrap;gap:4px;padding:4px}.map-toolbar .btn{min-height:44px}.map-toolbar .basemap-list{inset:calc(100% + 6px) auto auto 0}.map-tools{border-radius:10px;top:120px;left:8px}.map-tools button{width:44px;height:44px}.map-corner{bottom:24px;right:8px}.map-corner .btn,.map-mode button{justify-content:center;min-width:44px;min-height:44px}.map-corner .btn-text{display:none}.map-tool-panel{width:auto;bottom:24px;left:8px;right:8px}.tool-hint{min-width:0;max-width:none;inset:auto 8px 80px}.route-chip{flex-wrap:wrap;inset:auto 8px 80px}.project-banner{bottom:80px}.draft-chip{left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));flex-wrap:wrap}.float-panel.details,.float-panel.trace-panel{border-bottom:0;border-radius:16px 16px 0 0;width:auto;max-height:62%;inset:auto 0 0}.float-panel.details:before,.float-panel.trace-panel:before{content:"";background:var(--border);border-radius:2px;flex:none;width:40px;height:4px;margin:8px auto 0;display:block}.float-panel header{padding:8px 12px}.float-panel header .icon-btn{justify-content:center;align-items:center;min-width:40px;min-height:40px}.float-panel .body .btn{min-height:40px}.modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;max-height:calc(100% - 24px - env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0}.modal.wide{width:100%;height:100%;max-height:100%;padding-top:env(safe-area-inset-top);border-radius:0}.modal-resize,.modal-size-btn{display:none}.modal.sized{width:100%!important;height:auto!important}.modal>header{padding:10px 12px 10px 16px}.modal>header .icon-btn{justify-content:center;align-items:center;min-width:44px;min-height:44px}.modal>footer{padding:10px 12px}.modal>footer .btn{flex:1;justify-content:center;min-height:44px}.dialog-body{min-width:0}.grid2,.grid3{grid-template-columns:1fr}.input,select.input,textarea.input{min-height:42px;font-size:16px}.input.caption,.status-select{min-height:36px}.btn{min-height:40px}.btn.small{min-height:34px}.tabs{scrollbar-width:none;padding:0 4px;overflow-x:auto}.tabs button{white-space:nowrap;min-height:44px}.tab-body{padding:12px}.gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.thumb{height:120px}.context-menu{min-width:0;max-width:none;padding:6px 6px calc(8px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:70%;bottom:0;right:0;overflow:auto;top:auto!important;left:0!important}.context-menu button{min-height:46px;font-size:15px}.context-title{padding:8px;font-size:12px}.page{gap:10px;padding:12px}.page-head h1{font-size:17px}.page>.page-head{margin:-12px -12px 0;padding:12px 12px 8px}.filters>*{flex:100%;width:100%}.filters>select.input{flex:40%;width:auto;min-width:0}.table-wrap{min-height:0}.toast-stack{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100% - 24px)}.toast{max-width:none}.wo-table thead{display:none}.wo-table,.wo-table tbody{display:block}.wo-table tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"code prio""title status""target due""proj assignee";gap:4px 10px;padding:10px 12px;display:grid}table.data.wo-table td{border:0;min-width:0;padding:0;display:block}.wo-table .wo-code{grid-area:code}.wo-table .wo-prio{grid-area:prio;justify-self:end}.wo-table .wo-title{grid-area:title;font-weight:600}.wo-table .wo-status{grid-area:status;justify-self:end}.wo-table .wo-target{grid-area:target}.wo-table .wo-due{grid-area:due;justify-self:end;font-size:12px}.wo-table .wo-proj{grid-area:proj}.wo-table .wo-assignee{color:var(--muted);grid-area:assignee;justify-self:end;font-size:12px}.wo-table .wo-title .small-text{font-weight:400}.sales-page{min-height:0}.sales-search{width:auto;top:8px;left:8px;right:8px}.sales-page .esri-zoom{display:none}.locate-btn{min-width:44px;min-height:44px;box-shadow:var(--shadow);border-radius:10px;justify-content:center}.sales-panel{border-radius:16px 16px 0 0;width:auto;max-width:none;max-height:60%;inset:auto 0 0}.port-chip{min-width:40px;min-height:34px}.sales-candidate-head{min-height:44px}.splice-toolbar{flex-wrap:nowrap;gap:6px;padding:6px 8px;overflow-x:auto}.cm-grid{grid-template-columns:1fr;gap:12px}}.heat-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.heat-toolbar .seg{flex-wrap:wrap}.seg-count{opacity:.75;font-variant-numeric:tabular-nums;margin-left:2px;font-size:11px}.heat-legend{align-items:center;gap:10px;font-size:12px;display:flex}.heat-legend .dot{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.heat-ramp{border:1px solid var(--border);border-radius:5px;width:140px;height:10px;display:inline-block}.heatmap-wrap{border:1px solid var(--border);border-radius:8px;height:440px;position:relative;overflow:hidden}.heatmap-view{position:absolute;inset:0}.heatmap-empty{pointer-events:none;color:var(--muted);background:color-mix(in srgb, var(--panel) 55%, transparent);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}@media (width<=760px){.heatmap-wrap{height:320px}}.assistant-mic{padding:4px 8px}.assistant-voice.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.assistant-source{align-items:center;gap:8px;display:flex}.assistant-listen{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:0;display:inline-flex}.assistant-listen:hover{text-decoration:underline}.assistant-mic.listening{color:#fff;background:#dc2626;border-color:#dc2626;animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #dc262673}50%{box-shadow:0 0 0 6px #dc262600}}@media (prefers-reduced-motion:reduce){.assistant-mic.listening{animation:none}}.assistant-mic-error{background:var(--danger-soft);color:var(--danger);border-radius:6px;align-items:flex-start;gap:6px;margin:0 10px;padding:6px 8px;font-size:12px;display:flex}.assistant-mic-error span{flex:1}.project-search{flex:0 340px;min-width:200px}.projects-layout{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.projects-list{flex:none;max-height:calc(100vh - 190px);overflow-y:auto}.projects-list.compact{min-height:0;max-height:clamp(150px,30vh,300px)}.project-detail{flex:auto;min-height:280px;overflow:auto}.project-detail-head{align-items:center;gap:8px}.project-detail-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:20px;display:grid}.project-detail-col{flex-direction:column;gap:10px;min-width:0;display:flex}.project-detail-col .section-title{margin-top:0}.project-wo{overflow-x:auto}@media (width<=1000px){.project-detail-grid{grid-template-columns:1fr}}.wo-auto{flex-direction:column;gap:4px;display:flex}.wo-components{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;min-width:0;margin:0;padding:8px 10px 10px;display:flex}.wo-components legend{padding:0 4px;font-size:12px;font-weight:600}.wo-component-list{flex-direction:column;gap:6px;max-height:240px;display:flex;overflow-y:auto}.wo-component-group{align-items:center;gap:6px;margin-bottom:2px;font-size:12px;font-weight:600;display:flex}.wo-component{padding:1px 0 1px 18px}.wo-component.taken{opacity:.6}.wo-component.merged{padding-left:20px}.btn.success{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, var(--border))}.btn.success:hover{background:color-mix(in srgb, var(--ok) 12%, transparent)}.project-ready-note{background:color-mix(in srgb, var(--ok) 10%, transparent);border:1px solid color-mix(in srgb, var(--ok) 35%, var(--border));color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.project-ready-note>svg{color:var(--ok);flex:none}.warning-text{color:#b45309}:root[data-theme=dark] .warning-text{color:#fbbf24}.success-text{color:#15803d}:root[data-theme=dark] .success-text{color:#4ade80}.attr-targets{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;max-height:340px;padding:6px 10px;display:flex;overflow:auto}.attr-target summary{cursor:pointer;align-items:center;gap:6px;padding:4px 0;font-size:13px;font-weight:600;display:flex}.attr-target-types{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 12px;padding:4px 0 8px 18px;display:grid}.attr-target-group{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);grid-column:1/-1;margin-top:4px;font-size:11px}.chip-check{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.chip-check.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.required-mark{color:var(--danger);font-weight:700}.attr-field{flex-direction:column;gap:2px;min-width:0;display:flex}.attr-field.wide{grid-column:1/-1}.attr-field.invalid .input{border-color:var(--danger)}.attr-missing{background:#f59e0b1f;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex}.attr-missing.error{background:var(--danger-soft);color:var(--danger)}.tab-count.warn{color:#fff;background:#f59e0b}.input.invalid{border-color:var(--danger)}.route-summary{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.route-summary>div{border:1px solid var(--border);background:var(--panel);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.route-summary b{font-variant-numeric:tabular-nums;font-size:18px}.route-summary .pill{align-self:flex-start}.att-chart{flex-direction:column;gap:6px;display:flex;position:relative}.att-svg{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;height:auto;display:block}.att-grid{stroke:var(--border);stroke-width:1px}.att-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.att-site{stroke:var(--border);stroke-dasharray:2 4}.att-site-label{fill:var(--muted);font-size:10px}.att-end-label{fill:var(--text);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.att-threshold{stroke:var(--danger);stroke-width:1.5px;stroke-dasharray:6 4}.att-threshold-label{fill:var(--danger);font-size:11px}.att-event{fill:var(--panel);stroke:var(--text);stroke-width:2px}.att-event.splitter{stroke:#9333ea}.att-event.connector{stroke:#0891b2}.att-fault{stroke:#dc2626;stroke-width:2px}.att-fault-label{fill:#dc2626;font-size:11px;font-weight:700}.att-crosshair{stroke:var(--muted);stroke-width:1px}.att-hover-dot{stroke:var(--panel);stroke-width:2px}.att-legend-line{border-radius:2px;width:16px;height:2px;display:inline-block}.att-legend-line.dashed{background:repeating-linear-gradient(90deg, var(--danger) 0 5px, transparent 5px 8px);height:2px}.att-tooltip{pointer-events:none;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;min-width:150px;padding:6px 8px;font-size:12px;position:absolute;top:34px;transform:translate(10px);box-shadow:0 4px 14px #00000026}.att-table summary{cursor:pointer;color:var(--muted)}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{color:var(--text);cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:12px}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--accent);color:#fff}.proposal{border:1px solid var(--accent);background:var(--panel);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:6px;width:100%;padding:8px;display:flex}.proposal.done{border-color:color-mix(in srgb, var(--ok) 55%, var(--border))}.proposal.cancelled{border-color:var(--border);opacity:.7}.proposal-head{align-items:center;gap:6px;font-size:13px;display:flex}.proposal-head .pill{margin-left:auto}.proposal-fields{border:0;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;display:flex}.proposal-row{color:var(--muted);flex-direction:column;gap:2px;min-width:0;font-size:11px;display:flex}.proposal-row .input{color:var(--text);padding:4px 6px;font-size:12px}.proposal-geo{color:var(--ok);align-items:flex-start;gap:4px;display:flex}.proposal-notes{color:#b45309;margin:0;padding-left:16px;font-size:11px}[data-theme=dark] .proposal-notes{color:#fbbf24}.assistant-msg.assistant:has(.proposal){max-width:100%}.dwdm-preview{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.dwdm-strip{gap:1px;height:14px;display:flex}.dwdm-strip span{opacity:.85;border-radius:1px;flex:1;min-width:1px}.dwdm-ends{grid-template-columns:1fr 80px 1fr;align-items:center;gap:8px;display:grid}.dwdm-end{border:1px solid var(--border);background:var(--panel);border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:10px;display:flex}.dwdm-end b{overflow-wrap:anywhere}.dwdm-link span{border-radius:2px;height:4px;display:block}.dwdm-spectrum{border:1px solid var(--border);background:var(--panel);border-radius:6px;gap:1px;height:34px;padding:3px;display:flex}.dwdm-cell{cursor:pointer;background:color-mix(in srgb, var(--muted) 22%, transparent);border:0;border-radius:2px;flex:1;min-width:2px;padding:0}.dwdm-cell:hover:not(:disabled){outline:2px solid var(--accent);outline-offset:1px;z-index:1;position:relative}.dwdm-cell:disabled{cursor:default}.dwdm-cell.used.reserved,.dwdm-key.reserved{background:#f59e0b}.dwdm-cell.used.planned,.dwdm-key.planned{background:repeating-linear-gradient(135deg,#60a5fa 0 3px,#0000 3px 6px);border:1px solid #60a5fa}.dwdm-key{border-radius:2px;width:12px;height:12px;display:inline-block}.dwdm-key.free{background:color-mix(in srgb, var(--muted) 22%, transparent);border:1px solid var(--border)}@media (width<=700px){.dwdm-ends{grid-template-columns:1fr}.dwdm-link{display:none}}.dwdm-route-preview{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:13px;display:flex}.dwdm-route-preview>svg{color:var(--accent);flex:none;margin-top:2px}.dwdm-route-preview.existing,.dwdm-route-preview.new{border-color:color-mix(in srgb, var(--ok) 45%, var(--border))}.dwdm-route-preview.existing>svg,.dwdm-route-preview.new>svg{color:var(--ok)}.dwdm-route-preview.no_path,.dwdm-route-preview.same_port{border-color:color-mix(in srgb, var(--danger) 50%, var(--border));background:var(--danger-soft)}.dwdm-route-preview.no_path>svg,.dwdm-route-preview.same_port>svg{color:var(--danger)}.layer-row{border:1px solid var(--border);background:var(--panel);border-radius:8px;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:flex}.layer-main{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13px}.layer-list{flex-direction:column;gap:6px;margin:0;padding-left:0;list-style:none;display:flex}.layer-list li{flex-direction:column;gap:2px;display:flex}.layer-path{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 10px;font-size:13px;display:flex}.layer-hop{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text);border-radius:999px;align-items:center;gap:2px;padding:1px 8px;font-family:ui-monospace,monospace;font-size:11px;display:inline-flex}.layer-hop:before{content:"─";color:var(--muted);margin-right:2px}.layer-hop:after{content:"→";color:var(--muted);margin-left:2px}.layer-results{flex-direction:column;gap:4px;max-height:260px;display:flex;overflow:auto}.dwdm-spectrum.labeled{height:96px}.dwdm-cell{position:relative;overflow:hidden}.dwdm-cell-text{color:#fff;text-align:left;text-shadow:0 1px 2px #00000073;pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:1px;font-size:10px;line-height:1.2;display:flex;position:absolute;inset:3px;overflow:hidden}.dwdm-cell-text>*{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dwdm-cell-client{background:#00000047;border-radius:3px;padding:0 3px;font-family:ui-monospace,monospace}.dwdm-spectrum.dense .dwdm-cell-text{writing-mode:vertical-rl;flex-direction:row-reverse;justify-content:flex-start;align-items:center;transform:rotate(180deg)}.dwdm-spectrum.dense .dwdm-cell-text>*{max-width:none;max-height:100%}.dwdm-cell.used.reserved .dwdm-cell-text,.dwdm-cell.used.planned .dwdm-cell-text{color:var(--text);text-shadow:none}.dwdm-spectrum.labeled.dense{height:34px}.dwdm-spectrum.dense .dwdm-cell-text{display:none}.dwdm-labels{margin-top:2px;position:relative}.dwdm-leader{background:var(--muted);opacity:.6;width:1px;position:absolute;top:0}.dwdm-label{text-align:left;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-left-width:3px;border-radius:4px;flex-direction:column;align-items:flex-start;gap:0;padding:2px 6px;font-size:10.5px;line-height:1.25;display:flex;position:absolute;overflow:hidden}.dwdm-label:disabled{cursor:default}.dwdm-label>*{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dwdm-label.reserved{border-left-color:#f59e0b}.dwdm-label.planned{border-left-color:#60a5fa}.splice-conn-label{cursor:pointer}.splice-conn-label rect{fill:var(--panel);stroke:#0ea5e9;stroke-width:1px;opacity:.95}.splice-conn-route{fill:#0ea5e9;font-family:ui-monospace,monospace;font-size:10.5px;font-weight:700}.splice-conn-service{fill:var(--text);font-family:ui-monospace,monospace;font-size:10px}.splice-drag{cursor:grab}.splice-drag:active{cursor:grabbing}.link-el{cursor:pointer;-webkit-text-decoration:underline dotted color-mix(in srgb, var(--accent) 60%, transparent);text-decoration:underline dotted color-mix(in srgb, var(--accent) 60%, transparent);text-underline-offset:3px;border-radius:3px}.link-el:hover,.link-el:focus-visible{color:var(--accent);outline:none;text-decoration-style:solid}.conn-route-chip.service{color:#0f766e;background:#f0fdfa;border-color:#99f6e4}.conn-route-chip.service:hover{background:#ccfbf1}[data-theme=dark] .conn-route-chip.service{color:#5eead4;background:#0b2a29;border-color:#115e59}[data-theme=dark] .conn-route-chip.service:hover{background:#123b39}.form-grid{flex-direction:column;gap:10px;display:flex}.copy-box{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;min-width:0;padding:3px 4px 3px 8px;display:flex}.copy-box code{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.copy-box .btn{padding:3px 6px}.json-view{background:var(--panel-2);border:1px solid var(--border);white-space:pre;border-radius:8px;max-height:60vh;margin:0;padding:10px;font-size:12px;overflow:auto}.json-view.small{white-space:pre-wrap;max-height:none;font-size:11px}.tmf-card h3{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tmf-resource{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.tmf-resource code{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.kpi-btn{text-align:left;cursor:pointer;font:inherit;color:inherit}.kpi-btn:hover{border-color:var(--accent)}.kpi-btn.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.kpi-label .sev-dot{margin-right:6px}.sev-dot{vertical-align:-1px;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #00000026}.sev-tag{white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.alarm-layout{flex:1;grid-template-columns:minmax(320px,2fr) minmax(0,3fr);gap:12px;min-height:0;display:grid}.alarm-map-card{flex-direction:column;min-height:420px;display:flex}.alarm-map{border:1px solid var(--border);border-radius:8px;flex:1;min-height:340px;overflow:hidden}.alarm-legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:12px;display:flex}.alarm-legend>span{align-items:center;gap:5px;display:inline-flex}.alarm-list{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}tr.alarm-unack td:first-child{box-shadow:inset 3px 0 0 var(--accent)}@media (width<=1100px){.alarm-layout{grid-template-columns:1fr}}.import-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.import-layout .dash-card{flex-direction:column;display:flex}.import-input textarea{resize:vertical;flex:1;min-height:140px;font-size:12px}.import-summary{color:#166534;background:#dcfce7;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600}.import-summary.has-errors{color:#92400e;background:#fef3c7}tr.import-error td{background:#ef444412}@media (width<=900px){.import-layout{grid-template-columns:1fr}}[data-theme=dark] .import-summary{color:#86efac;background:#0f2e1c}[data-theme=dark] .import-summary.has-errors{color:#fcd34d;background:#3a2a07}.layer-toggle.out-of-scale label{opacity:.6}.basemap-list{max-height:min(70vh,560px);overflow-y:auto}.layer-members-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.layer-members{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;max-height:260px;margin:0;padding:6px 10px 8px;display:flex;overflow-y:auto}.layer-members legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:600}.layer-members .checkbox{align-items:center;gap:6px;font-size:13px;display:flex}.assistant-context{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--muted);border-radius:6px;align-items:center;gap:6px;min-width:0;margin:0 8px 4px;padding:3px 4px 3px 8px;font-size:11.5px;display:flex}.assistant-context-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.assistant-context b{color:var(--text);font-weight:600}.dash-filters{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.bar-row.pickable{cursor:pointer;border-radius:4px}.bar-row.pickable:hover{background:var(--panel-2)}.bar-row.picked .bar-label{font-weight:700}.bar-row.picked .bar-fill{box-shadow:0 0 0 2px var(--panel), 0 0 0 3px var(--accent)}.dash-section{flex-wrap:wrap;align-items:baseline;gap:8px;margin:8px 0 0;font-size:15px;display:flex}select option,select optgroup{background:var(--panel);color:var(--text)}@supports (appearance:base-select){select:not([multiple]){appearance:base-select}select:not([multiple])::picker(select){appearance:base-select}:where(select:not([multiple])){cursor:pointer;border:1px solid var(--border);background:var(--panel);min-width:0;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:6px 8px;line-height:1.25;display:inline-flex}select:not([multiple]):hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}select:not([multiple]):focus-visible{outline:2px solid var(--accent-soft);border-color:var(--accent)}select:not([multiple]):disabled{opacity:.55;cursor:not-allowed}select:not([multiple])>button{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}select:not([multiple])::picker-icon{content:"";background:var(--muted);flex:none;width:10px;height:10px;margin-left:auto;transition:rotate .15s;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}select:not([multiple]):open::picker-icon{rotate:180deg}select:not([multiple])::picker(select){background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);max-height:min(60vh,420px);min-width:anchor-size(width);border-radius:8px;margin-block:4px;padding:4px;overflow-y:auto}select:not([multiple]) option{cursor:pointer;color:var(--text);white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 10px 6px 6px;font-size:13px;display:flex}select:not([multiple]) option::checkmark{content:"✓";width:14px;color:var(--accent);font-weight:700}select:not([multiple]) option:not(:checked)::checkmark{visibility:hidden}select:not([multiple]) option:hover,select:not([multiple]) option:focus-visible{background:var(--panel-2);outline:none}select:not([multiple]) option:checked{background:var(--accent-soft);color:var(--text);font-weight:600}select:not([multiple]) option:disabled{opacity:.5;cursor:default}select:not([multiple]) optgroup{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;background:0 0;padding:4px 0;font-size:11px;font-weight:700}select:not([multiple]) optgroup option{text-transform:none;letter-spacing:0;color:var(--text);font-weight:400}select:not([multiple]) optgroup option:checked{font-weight:600}}.automation-layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:12px;display:grid}.automation-side{flex-direction:column;gap:12px;display:flex}.automation-side .dash-card h3{margin-bottom:8px}.automation-main{flex-direction:column;gap:12px;min-width:0;display:flex}.automation-map-wrap{position:relative}.route-calc-layers{z-index:2;position:absolute;top:10px;right:10px}.route-calc-layers .basemap-list{z-index:3;top:calc(100% + 6px);bottom:auto}.automation-map{border:1px solid var(--border);border-radius:10px;height:min(62vh,620px);min-height:380px;overflow:hidden}.automation-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;padding:6px 2px 0;font-size:12px;display:flex}.automation-legend>span{align-items:center;gap:5px;display:inline-flex}.automation-legend .lg{border-radius:50%;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #0003}.automation-legend .lg.sq{border-radius:2px}.automation-legend .lg.dm{border-radius:1px;width:9px;height:9px;transform:rotate(45deg)}.automation-legend .lg.tri{width:0;height:0;box-shadow:none;border-bottom:10px solid #16a34a;border-left:6px solid #0000;border-right:6px solid #0000;border-radius:0}.automation-legend .ln{width:18px;display:inline-block}.automation-points{border:1px solid var(--border);border-radius:8px;max-height:240px;margin-top:8px;overflow:auto}.automation-detail{flex-direction:column;gap:10px;margin-top:10px;display:flex}tr.selected-row td{background:var(--accent-soft)}@media (width<=1100px){.automation-layout{grid-template-columns:1fr}}.party-toggle.on{color:#f0abfc;text-shadow:0 0 8px #ec4899b3}.interior3d-bar select.party-music{width:auto}.port-legend{width:100%;color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.port-legend>span{align-items:center;gap:5px;display:inline-flex}.port-legend i{border-radius:2px;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #00000040}.device-ports rect{pointer-events:visiblePainted}.rack-toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:8px;display:flex}.rack-toolbar .port-legend{flex:auto;width:auto}.rack-zoom button:nth-child(2){font-variant-numeric:tabular-nums;min-width:52px}.rack-row{position:relative}.port-links{pointer-events:none;z-index:2;position:absolute;top:0;left:0;overflow:visible}.port-links path:nth-child(2){pointer-events:stroke}.rack-row.connecting .port-pickable{cursor:crosshair}.rack-row.connecting .port-pickable:hover{stroke:#fff;stroke-width:1.4px}.rack-row.connecting .rack-device{cursor:default}.connect-hint{background:var(--accent-soft);color:var(--text);border-radius:8px;align-items:center;gap:6px;margin-bottom:8px;padding:6px 10px;display:flex}.route-calc-ends{flex-direction:column;gap:8px;margin-top:8px;display:flex}.route-calc-end,.route-calc-item{align-items:center;gap:6px;display:flex}.route-calc-end .input,.route-calc-list .input{min-width:0}.route-calc-badge{color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-grid}.route-calc-badge.small{width:18px;height:18px;font-size:10px}.route-calc-dot{vertical-align:0;border-radius:50%;flex:none;width:9px;height:9px;margin-right:6px;display:inline-block}.route-calc-list{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 0;display:flex}.route-calc-item .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.route-calc-sim{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.route-calc-search{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.icon-btn.active{color:var(--accent);background:var(--accent-soft)}.route-calc-pick{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 20px);padding:6px 8px;display:flex;position:absolute;bottom:10px;left:10px;box-shadow:0 6px 18px #00000026}.route-calc-result{flex-direction:column;gap:10px;display:flex}.route-calc-result .tabs{padding:0}.route-calc-alts{flex-wrap:wrap;gap:8px;display:flex}.route-calc-alt{text-align:left;border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;min-width:180px;max-width:100%;padding:8px 12px;font-size:13px;display:flex}.route-calc-alt b{align-items:center;display:inline-flex}.route-diagram{flex-direction:column;gap:10px;display:flex}.route-diagram-canvas{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.route-diagram-canvas svg{max-width:none;margin:0 auto;display:block}.route-calc-alt.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.route-calc-alt>span{overflow-wrap:anywhere}.topology-toolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px;display:flex}.topology-toolbar select.input{max-width:280px}.topology-layers{flex-wrap:wrap;gap:4px 14px;display:flex}.topology-layers .checkbox{align-items:center;gap:6px;display:inline-flex}.topology-swatch{vertical-align:-1px;border-radius:3px;flex:none;width:10px;height:10px;margin-right:6px;display:inline-block}.topology-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:12px;display:grid}.topology-canvas{border:1px solid var(--border);background:var(--panel);border-radius:10px;position:relative;overflow:hidden}.topology-canvas svg{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:min(70vh,720px);display:block}.topology-canvas svg:active{cursor:grabbing}.topology-label{fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round;pointer-events:none;font-weight:600}.topology-edge-label{fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:3px;pointer-events:none;font-weight:600}.topology-empty{place-items:center;margin:0;display:grid;position:absolute;inset:0}.topology-legend{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:6px 14px;padding:6px 10px;display:flex}.topology-legend>span{align-items:center;gap:6px;display:inline-flex}.topology-line{border-top:3px solid;width:22px;display:inline-block}.topology-line.fibers{border-top-style:dashed}.topology-line.ducts{opacity:.6;border-top-width:5px}.topology-node.ext{border:2px solid var(--muted);background:var(--panel);border-radius:50%;width:10px;height:10px;display:inline-block}.topology-side{flex-direction:column;gap:8px;max-height:min(78vh,800px);display:flex;overflow:auto}.topology-side h3{align-items:center;display:flex}.topology-facts{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}.topology-facts dt{color:var(--muted)}.topology-facts dd{margin:0}.topology-routes,.topology-neighbors{flex-direction:column;gap:4px;display:flex}.topology-route{align-items:center;gap:6px;font-size:13px;display:flex}.topology-neighbor{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;font-size:13px;display:flex}.topology-neighbor:hover{border-color:var(--accent)}.topology-neighbor .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.topology-path{flex-direction:column;gap:2px;margin:0;padding-left:20px;font-size:13px;display:flex}@media (width<=1100px){.topology-layout{grid-template-columns:minmax(0,1fr)}}.bud-bubble{z-index:4;color:#0f172a;pointer-events:none;transform-origin:50% 100%;opacity:0;visibility:hidden;background:#fff;border:1px solid #cbd5e1;border-radius:14px;max-width:260px;padding:8px 12px;font-size:13px;font-weight:500;line-height:1.35;transition:opacity .2s,transform .2s;position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 14px))scale(.9);box-shadow:0 8px 24px #00000040}.bud-bubble.show{opacity:1;transform:translate(-50%,calc(-100% - 14px))scale(1)}.bud-bubble:after{content:"";background:inherit;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;width:14px;height:14px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}[data-theme=dark] .bud-bubble,[data-theme=dark] .bud-bubble:after{background:#f8fafc}@media (prefers-reduced-motion:reduce){.bud-bubble{transition:none}}.avatar-icon{border-radius:50%;flex:none}.avatar-picker{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:16px;display:grid}.avatar-preview{border:1px solid var(--border);background:radial-gradient(circle at 50% 30%, var(--accent-soft), var(--panel));border-radius:12px;width:220px;height:280px}.avatar-options{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.avatar-option{border:1px solid var(--border);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:10px;font-size:13px;display:flex}.avatar-option input{opacity:0;pointer-events:none;position:absolute}.avatar-option.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.avatar-option:hover{border-color:var(--accent)}.event-invitees{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 12px;max-height:200px;margin-top:6px;padding:6px;display:grid;overflow:auto}.event-invitees .checkbox{align-items:center;gap:6px;display:inline-flex}@media (width<=720px){.avatar-picker{grid-template-columns:minmax(0,1fr)}.avatar-preview{width:100%;height:220px}}.nav-count{color:#fff;background:#dc2626;border-radius:9px;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.messages-layout{grid-template-columns:320px minmax(0,1fr);align-items:stretch;gap:12px;min-height:min(72vh,760px);display:grid}.messages-list{flex-direction:column;gap:6px;max-height:min(78vh,820px);display:flex;overflow:auto}.messages-conv{text-align:left;width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.messages-conv:hover{background:var(--panel-2)}.messages-conv.active{border-color:var(--accent);background:var(--accent-soft)}.messages-conv.unread b{color:var(--accent)}.messages-conv .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.messages-preview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.messages-people{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;max-height:240px;padding:4px;display:flex;overflow:auto}.messages-person{color:var(--text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;display:flex}.messages-person:hover{background:var(--panel-2)}.messages-thread{flex-direction:column;gap:10px;min-height:0;display:flex}.messages-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.messages-bubbles{flex-direction:column;flex:1;gap:10px;min-height:240px;max-height:min(60vh,640px);padding:4px;display:flex;overflow:auto}.message{flex-direction:column;align-items:flex-start;gap:2px;max-width:75%;display:flex}.message.mine{align-self:flex-end;align-items:flex-end}.message-bubble{background:var(--panel-2);border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px 14px 14px 4px;padding:8px 12px;font-size:14px}.message.mine .message-bubble{background:var(--accent);color:#fff;border-color:var(--accent);border-radius:14px 14px 4px}.message-event{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:3px;margin-top:8px;padding:8px 10px;font-size:13px;display:flex}.message-event .btn{align-self:flex-start;margin-top:4px}.message-room-link{color:var(--accent,#0ea5e9);text-underline-offset:2px;font-weight:600;text-decoration:underline}.message.mine .message-room-link{color:inherit}.messages-compose{align-items:flex-end;gap:8px;display:flex}.messages-compose textarea{resize:vertical;flex:1}@media (width<=900px){.messages-layout{grid-template-columns:minmax(0,1fr)}.message{max-width:90%}}.room-event-banner{z-index:3;color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#0f172adb;border-radius:999px;max-width:calc(100% - 24px);padding:6px 14px;font-size:13px;position:absolute;top:52px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.room-event-banner .muted{color:#cbd5e1}.room-event-banner{white-space:normal;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.room-event-actions{border-left:1px solid #fff3;align-items:center;gap:10px;margin-left:10px;padding-left:10px;display:inline-flex}.room-event-actions label{cursor:pointer;color:#e2e8f0;align-items:center;gap:4px;display:inline-flex}.room-event-cancel{color:#fecaca;cursor:pointer;background:#dc262640;border:1px solid #f8717199;border-radius:999px;padding:2px 10px;font-size:12px}.room-event-cancel:hover{color:#fff;background:#dc262680}.chat-bubble{background:#e0f2fe;border-color:#7dd3fc;max-width:220px;font-size:12px}.chat-bubble:after{border-color:#7dd3fc}[data-theme=dark] .chat-bubble,[data-theme=dark] .chat-bubble:after{background:#e0f2fe}.room-chat{z-index:3;color:#f8fafc;background:#0f172ae0;border-radius:12px;width:min(320px,100% - 24px);font-size:13px;position:absolute;bottom:64px;right:12px;overflow:hidden;box-shadow:0 8px 24px #0000004d}.room-chat-head{width:100%;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:8px 10px;font-weight:600;display:flex}.room-chat-head>svg:last-child{margin-left:auto}.room-chat .muted{color:#cbd5e1;font-weight:400}.room-chat-list{flex-direction:column;gap:4px;max-height:170px;padding:0 10px 6px;display:flex;overflow-y:auto}.room-chat-line b{color:#7dd3fc}.room-chat-line.mine b{color:#fde68a}.room-chat-form{border-top:1px solid #ffffff1f;gap:6px;padding:8px 10px;display:flex}.room-chat-form .input{color:#f8fafc;background:#ffffff14;border-color:#fff3;flex:1;min-width:0}.tour{z-index:2000;position:fixed;inset:0}.tour-dim{background:#0f172a9e;position:absolute;inset:0}.tour-spot{pointer-events:none;border-radius:10px;transition:all .25s;position:absolute;box-shadow:0 0 0 9999px #0f172a9e,0 0 0 3px #38bdf8}.tour-card{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:14px 16px 12px;transition:left .25s,top .25s;position:absolute;box-shadow:0 18px 50px #00000059}.tour-body{align-items:flex-start;gap:10px;display:flex}.tour-bud{flex:none;width:110px;height:150px}.tour-bubble{background:var(--panel-2,#f1f5f9);border-radius:12px;flex:1;padding:10px 12px;font-size:14px;line-height:1.45;position:relative}.tour-bubble:before{content:"";background:inherit;width:14px;height:14px;position:absolute;top:24px;left:-7px;transform:rotate(45deg)}.tour-bubble b{margin-bottom:4px;font-size:15px;display:block}.tour-bubble p{margin:0}.tour-foot{align-items:center;gap:6px;margin-top:10px;display:flex}.tour-dots{gap:5px;margin-right:auto;display:flex}.tour-dots span{background:var(--border);border-radius:50%;width:7px;height:7px}.tour-dots span.on{background:var(--accent,#0ea5e9)}@media (prefers-reduced-motion:reduce){.tour-spot,.tour-card{transition:none}}@media (width<=520px){.tour-bud{width:76px;height:110px}}.label-size{align-items:center;gap:8px;padding:4px 10px 8px;font-size:13px;display:flex}.label-size input[type=range]{flex:1;min-width:0}.bulk-check{text-align:center;width:34px}.bulk-check input{cursor:pointer}.bulk-bar{background:var(--accent-soft,#0ea5e91f);border:1px solid var(--accent,#0ea5e9);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;padding:8px 12px;display:flex}.btn.link{color:var(--accent,#0ea5e9);background:0 0;border:none;padding:0 4px;text-decoration:underline}.page.page-query{height:100%;min-height:0}.page-query>.table-wrap{min-height:120px}.pager{flex-wrap:wrap}.pager-size,.pager-jump{align-items:center;gap:6px;display:inline-flex}.pager-size select{width:auto;height:28px;padding:2px 6px}.pager-jump input{text-align:center;width:56px;height:28px;padding:2px 6px}@media (width<=700px){.page.page-query{height:auto;min-height:100%}.page-query>.page-head,.page-query>.filters{z-index:3;background:var(--bg);position:sticky}.page-query>.page-head{padding-top:6px;top:0}.page-query>.filters{padding-bottom:6px;top:40px}}.label-auto-note{margin:0;padding:0 10px 8px}.manual{flex:1;grid-template-columns:300px minmax(0,1fr);gap:12px;min-height:0;display:grid}.manual-toc{flex-direction:column;gap:10px;display:flex;overflow:auto}.manual-chapter{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.manual-chapter>b{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0 2px;font-size:12px}.manual-chapter button{text-align:left;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;padding:5px 8px;font-size:13px}.manual-chapter button:hover{background:var(--panel-2,#94a3b81f)}.manual-chapter button.active{background:var(--accent-soft,#0ea5e926);color:var(--accent,#0ea5e9);font-weight:600}.manual-body{padding:20px 28px;line-height:1.6;overflow:auto}.manual-body h2{margin:2px 0 12px}.manual-crumb{margin:0}.manual-note{align-items:center;gap:6px;margin:0 0 8px;display:flex}.manual-note.warn{color:#b45309}.manual-nav{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:24px;padding-top:12px;display:flex}.md p,.md ul,.md ol{margin:0 0 10px}.md ul,.md ol{padding-left:22px}.md li{margin:3px 0}.md h3{margin:18px 0 8px;font-size:16px}.md h4{margin:14px 0 6px;font-size:14px}.md code{font-family:var(--mono,monospace);background:var(--panel-2,#94a3b826);border-radius:4px;padding:0 4px;font-size:.9em}.md-pre{background:var(--panel-2,#94a3b81f);border-radius:8px;padding:10px;font-size:12px;overflow:auto}.md-table{margin:0 0 12px;overflow-x:auto}.license{flex-direction:column;gap:12px;display:flex}.license-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.license-cards .dash-card{flex-direction:column;gap:6px;display:flex}.license-big{font-size:20px}.license-bar{background:var(--panel-2,#94a3b833);border-radius:999px;height:8px;overflow:hidden}.license-bar span{background:var(--accent,#0ea5e9);height:100%;display:block}.license-modules{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.license-modules>div{flex-direction:column;gap:4px;display:flex}.license-module{align-items:center;gap:6px;display:flex}.license-module svg{color:#16a34a}.license-module.off{opacity:.6}.license-module.off svg{color:var(--muted)}.support{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:640px;margin:40px auto;display:flex}@media (width<=900px){.manual{grid-template-columns:minmax(0,1fr)}.manual-toc{max-height:220px}}.temp-stale{color:#b45309;white-space:nowrap;font-weight:600}.temp-chart{flex-direction:column;gap:4px;display:flex}.temp-chart .row{align-items:baseline;gap:8px}.interior3d-tip .tip-warn{color:#fbbf24;font-weight:600}.power-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:12px;display:grid}@media (width<=1100px){.power-layout{grid-template-columns:minmax(0,1fr)}}.power-canvas{background:var(--panel);border:1px solid var(--border);border-radius:10px;min-height:260px;max-height:calc(100vh - 330px);overflow:auto}.power-diagram{margin:0 auto;display:block}.power-node:hover rect:first-child{stroke:var(--accent)}.power-legend{border-top:1px solid var(--border);flex-wrap:wrap;gap:14px;padding:8px 12px;display:flex;position:sticky;left:0}.power-legend i{vertical-align:middle;border-radius:2px;width:18px;height:3px;margin-right:4px;display:inline-block}.power-legend i.dash{background:repeating-linear-gradient(90deg,#d97706 0 6px,#0000 6px 10px)}.power-legend i.dot{background:repeating-linear-gradient(90deg,#4d7c0f 0 2px,#0000 2px 6px)}.power-side{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-height:calc(100vh - 330px);padding:14px;overflow:auto}.power-figures{grid-template-columns:1fr 1fr;gap:8px;display:grid}.power-figures>div{background:var(--bg,#7f7f7f0f);border-radius:8px;flex-direction:column;padding:6px 8px;display:flex}.power-figures span{color:var(--muted);font-size:11px}.power-figures b{font-variant-numeric:tabular-nums;font-size:15px}.power-specs{grid-template-columns:1fr 1fr;gap:4px 10px;margin:0;font-size:12px;display:grid}.power-specs dt{color:var(--muted)}.power-specs dd{margin:0;font-weight:600}.power-links,.power-warnings{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.power-link-row{border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr auto;gap:0 6px;padding:5px 6px;font-size:12.5px;display:grid}.power-link-row>.muted{grid-column:1}.power-link-row>.row{grid-area:1/2/span 2;align-self:center}.power-warnings li{font-size:12.5px}.power-table{overflow:auto}.power-canvas{position:relative}.power-zoom{z-index:2;background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:4px;margin:8px 0 0 8px;padding:3px 6px;display:inline-flex;position:sticky;top:8px;left:8px;box-shadow:0 2px 6px #0000001f}.power-zoom select{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:5px;padding:1px 2px;font-size:12px}.power-zoom .icon-btn{width:24px;height:24px;font-size:16px;font-weight:700;line-height:1}:root{--infra-s1:#2a78d6;--infra-s2:#eb6834;--infra-s3:#1baf7a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--infra-s1:#3987e5;--infra-s2:#d95926;--infra-s3:#199e70}}:root[data-theme=dark]{--infra-s1:#3987e5;--infra-s2:#d95926;--infra-s3:#199e70}.infra-legend{color:var(--muted);gap:14px;margin-bottom:8px;display:flex}.infra-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;display:inline-block}.infra-s1{background:var(--infra-s1)}.infra-s2{background:var(--infra-s2)}.infra-s3{background:var(--infra-s3)}.infra-stack{gap:2px;min-width:4px;height:12px;display:flex}.infra-seg{min-width:2px;height:100%}.infra-seg:first-child{border-radius:4px 0 0 4px}.infra-seg:last-child{border-radius:0 4px 4px 0}.infra-seg:only-child{border-radius:4px}.infra-stack:hover .infra-seg{filter:brightness(1.1)}.bar-fill.infra-util.warning{background:#d97706}.bar-fill.infra-util.overload{background:#dc2626}.faceplate-designer{outline:none;flex-direction:column;gap:8px;display:flex}.faceplate-canvas{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);padding:8px;overflow-x:auto}.faceplate-canvas svg{-webkit-user-select:none;user-select:none;touch-action:none}.faceplate-form{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);gap:8px;padding:8px 10px}.faceplate-form .input{width:auto;min-width:0;max-width:190px}.equipment-modules{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.equipment-modules tr.selected td{background:var(--accent-soft)}.support-portal{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:14px;display:grid}.support-chat{flex-direction:column;gap:10px;height:calc(100vh - 190px);min-height:520px;display:flex}.support-messages{flex-direction:column;flex:1;gap:10px;padding:4px 2px;display:flex;overflow-y:auto}.support-empty{margin:auto 0}.support-turn{flex:none;align-items:flex-start;gap:8px;display:flex}.support-turn>.avatar-icon{flex:none;margin-top:2px}.support-turn .support-bubble{min-width:0}.support-turn.user{justify-content:flex-end}.support-bubble{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;max-width:82%;padding:8px 12px;line-height:1.45}.support-turn.user .support-bubble{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, transparent);white-space:pre-wrap}.support-bubble p:first-child{margin-top:0}.support-bubble p:last-child{margin-bottom:0}.support-suggest{background:#f59e0b24;border:1px solid #f59e0b66;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.support-input{align-items:flex-end;gap:8px;display:flex}.support-input textarea{resize:vertical;flex:1;min-height:44px}.support-tickets{flex-direction:column;gap:10px;max-height:calc(100vh - 190px);display:flex;overflow-y:auto}.support-ticket-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.support-ticket-row{text-align:left;border:1px solid var(--border);background:var(--panel);width:100%;color:inherit;cursor:pointer;font:inherit;border-radius:8px;flex-direction:column;gap:3px;padding:8px 10px;display:flex}.support-ticket-row:hover{border-color:var(--accent,#0284c7)}.support-ticket-row.unread{border-color:var(--accent,#0284c7);background:color-mix(in srgb, var(--accent,#0284c7) 8%, var(--panel))}.support-dot{background:var(--accent,#0284c7);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.support-thread{flex-direction:column;gap:8px;max-height:46vh;padding:2px;display:flex;overflow-y:auto}.support-system{text-align:center}.support-bud-log{border:1px dashed var(--border);border-radius:8px;padding:6px 10px}.support-bud-log>div{margin-top:4px}@media (width<=900px){.support-portal{grid-template-columns:1fr}.support-chat{height:auto;min-height:60vh}.support-tickets{max-height:none}}
