@import '_content/TraneTechnologies.Platform.Core.App.Blazor.Components/TraneTechnologies.Platform.Core.App.Blazor.Components.f3vrb7npsh.bundle.scp.css';

/* /Common/Babylon/Component/BabylonCanvas.razor.rz.scp.css */
.babylon-canvas[b-xb6uvl38cf] {
    width: 100%;
    height: 100%;
    touch-action: none;
}
/* /Common/Card/Card.razor.rz.scp.css */
/* Collapsible card - header interaction */
.card-collapsible .card-header[b-5j7pne88rr] {
    transition: background-color 0.15s ease, color 0.15s ease;
    cursor: pointer;
}

.card-collapsible .card-header:hover[b-5j7pne88rr] {
    background-color: var(--rz-panel-menu-hover-background-color);
    color: white;
}

/* Collapsed: round all corners so hover fill matches the card shape */
.card-collapsed .card-header[b-5j7pne88rr] {
    border-radius: var(--bs-card-inner-border-radius);
}

/* Collapse icon sizing */
.collapse-icon-box[b-5j7pne88rr] {
    display: flex;
    align-items: center;
    font-size: 1.25rem;
    margin-right: 0.5rem;
    color: var(--rz-text-secondary-color);
    transition: color 0.15s ease;
}

.card-collapsible .card-header:hover .collapse-icon-box[b-5j7pne88rr] {
    color: white;
}
/* /Common/GridLayout/ContentWithHelpPanel.razor.rz.scp.css */
.tt-article[b-qidln5seap] {
    padding-left: 1rem;
    padding-right: 1rem;
    width: 100%;
    grid-area: content;
    overflow-y: auto;
    overflow-x: hidden;
    height: 100%;
    will-change: scroll-position;
}

.tt-article.help-open[b-qidln5seap] {
    padding-right: 0.25rem;
}

.splitter[b-qidln5seap] {
    grid-area: splitter;
    width: 12px;
    cursor: col-resize;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease;
    touch-action: none;
    user-select: none;
}

.splitter-handle[b-qidln5seap] {
    width: 5px;
    height: 40px;
    background-color: var(--rz-base-400, #ccc);
    border-radius: 2px;
    transition: background-color 0.15s ease;
}

.splitter:hover .splitter-handle[b-qidln5seap],
.splitter:focus .splitter-handle[b-qidln5seap] {
    background-color: var(--rz-primary, #007bff);
}

.splitter-overlay[b-qidln5seap] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    cursor: col-resize;
    touch-action: none;
}

@media (max-width: 768px) {
    .tt-article.help-open[b-qidln5seap] {
        padding-right: 1rem;
    }

    .splitter[b-qidln5seap] {
        width: 100%;
        height: 16px;
        cursor: row-resize;
    }

    .splitter-handle[b-qidln5seap] {
        width: 40px;
        height: 4px;
    }

    .splitter-overlay[b-qidln5seap] {
        cursor: row-resize;
    }
}
/* /Common/GridLayout/GridLayout.razor.rz.scp.css */
.grid-container[b-xynpupo0x1] {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "content";
    overflow: hidden;
    --help-panel-width: 300px;
    --help-panel-height: 300px;
}

.grid-container.help-open[b-xynpupo0x1] {
    grid-template-columns: 1fr auto var(--help-panel-width);
    grid-template-areas: "content splitter help";
}

/* Grid layout with side menu */
.grid-container.has-side-menu[b-xynpupo0x1] {
    grid-template-columns: auto 1fr;
    grid-template-areas: "sideMenu content";
}

.grid-container.has-side-menu.help-open[b-xynpupo0x1] {
    grid-template-columns: auto 1fr auto var(--help-panel-width);
    grid-template-areas: "sideMenu content splitter help";
}

@media (max-width: 768px) {
    .grid-container.help-open[b-xynpupo0x1] {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr auto var(--help-panel-height);
        grid-template-areas:
            "content"
            "splitter"
            "help";
    }

    .grid-container.has-side-menu.help-open[b-xynpupo0x1] {
        grid-template-columns: auto 1fr;
        grid-template-rows: 1fr auto var(--help-panel-height);
        grid-template-areas:
            "sideMenu content"
            "sideMenu splitter"
            "sideMenu help";
    }
}
/* /Common/Help/HelpPanel.razor.rz.scp.css */
.tt-help[b-kasf95q1eh] {
    padding: 0 0.25rem 1rem;
    width: 100%;
    grid-area: help;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.tt-help .card[b-kasf95q1eh] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.tt-help .card-body[b-kasf95q1eh] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

@media (max-width: 768px) {
    .tt-help[b-kasf95q1eh] {
        padding-bottom: 0.1rem;
    }
}

/* /Common/Loaders/CardSpinner.razor.rz.scp.css */
.spinner-overlay[b-ocf03krn0u] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    background-color: rgba(var(--bs-body-bg-rgb), 0.7);
    text-align: center;
    z-index: 1000;
    border-radius: var(--rz-card-border-radius);
    cursor: wait;
}
/* /Common/Loaders/PlantBusyOverlay.razor.rz.scp.css */
.plant-busy-overlay[b-xcyif0k2wl] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--bs-body-bg-rgb), 0.6);
    backdrop-filter: blur(2px);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    border-radius: var(--rz-card-border-radius);
    cursor: wait;
}

.plant-busy-content[b-xcyif0k2wl] {
    position: sticky;
    top: 50vh;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.plant-busy-text[b-xcyif0k2wl] {
    text-align: center;
    font-weight: bold;
}
/* /Common/Loaders/Spinner.razor.rz.scp.css */
.spinner[b-rc6ul8c77t] {
    width: 48px;
    height: 48px;
    border: 5px solid var(--trane-primary);
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation-b-rc6ul8c77t 1s linear infinite;
}

@keyframes rotation-b-rc6ul8c77t {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
} 
/* /Common/Loaders/SpinnerOverlay.razor.rz.scp.css */
.spinnerOverlay[b-gy2db24nee] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
}

.spinner[b-gy2db24nee] {
    width: 7rem;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 8px solid #dfdfdf;
    border-right-color: var(--trane-primary);
    animation: rotation-b-gy2db24nee 1s infinite linear;
}

.spinner-text[b-gy2db24nee] {
    text-align: center;
    font-weight: bold;
}

@keyframes rotation-b-gy2db24nee {
    to {
        transform: rotate(1turn)
    }
}
/* /Common/Loaders/SystemBusyOverlay.razor.rz.scp.css */
.system-busy-overlay[b-9x8cbuexuk] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--bs-body-bg-rgb), 0.6);
    backdrop-filter: blur(2px);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    border-radius: var(--rz-card-border-radius);
    cursor: wait;
}

.system-busy-content[b-9x8cbuexuk] {
    position: sticky;
    top: 50vh;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.system-busy-text[b-9x8cbuexuk] {
    text-align: center;
    font-weight: bold;
}
/* /Common/Menu/TraceContextMenu.razor.rz.scp.css */
.tt-icon[b-mreloztlaq] {
    transition: all 0.25s ease;
    border: none;
    opacity: 0.75;
}

.tt-icon:hover[b-mreloztlaq] {
    opacity: 1;
    transform: scale(1.25);
}

.btnMenu[b-mreloztlaq] {
    opacity: 1;
}

.btnMenu:hover[b-mreloztlaq] {
    transform: scale(1.25);
}

.btnMenu.show[b-mreloztlaq] {
    transform: scale(1.25);
    border-color: transparent;
    background-color: transparent;
}

[b-mreloztlaq] .dropdown-menu.show {
    z-index: 1050;
}

[b-mreloztlaq] .dropdown-menu .material-symbols-outlined {
    margin-right: 0.75rem;
}

[b-mreloztlaq] .dropdown-menu .dropdown-item .icon-text {
    display: flex;
    align-items: center;
    padding-right: 0.5rem;
}

[b-mreloztlaq] .dropdown-menu .dropdown-item {
    cursor: pointer;
    display: flex;
    align-items: center;
}

.tcm-hover-target:hover .btnMenu[b-mreloztlaq] {
    transform: scale(1.25);
}

/* ══════════════════════════════════════════════
        ManagedOpen mode (Razor-managed)
   Backdrop catches outside-click for close;
   menu list is fixed-positioned to escape ancestor
   overflow clipping (mirrors deleted bespoke pattern).
   These rules only render when ManagedOpen=true.
   ══════════════════════════════════════════════ */

.tcm-backdrop[b-mreloztlaq] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

[b-mreloztlaq] .tcm-managed-menu {
    z-index: 1050;
    min-width: 220px;
}

/* Expandable header item + nested submenu (ManagedOpen consumers only).
   Bootstrap-mode consumers may also use these but typically don't need expandable behavior. */

[b-mreloztlaq] .tcm-expandable-header > .dropdown-item {
    font-weight: 500;
}

[b-mreloztlaq] .tcm-submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--bs-secondary-bg);
    border-top: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-border-color);
}

[b-mreloztlaq] .tcm-submenu .dropdown-item {
    padding-left: 2.25rem;
    font-size: 0.8125rem;
}
/* /Common/Menu/TraceMenu.razor.rz.scp.css */
.side-menu-wrap[b-ugwhbkyrrv] {
  z-index: 800;
  padding-bottom: 1rem;
  padding-left: 1rem;
  width: var(--side-menu-width, 17rem);
  position: relative;
  grid-area: sideMenu;
}

.side-menu-resize-handle[b-ugwhbkyrrv] {
  position: absolute;
  top: 0;
  bottom: 1rem;
  right: -3px;
  width: 8px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: col-resize;
  z-index: 810;
  touch-action: none;
}

.side-menu-resize-handle[b-ugwhbkyrrv]::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  border-radius: 1px;
  background-color: transparent;
  transition: background-color 0.15s ease;
}

.side-menu-resize-handle:hover[b-ugwhbkyrrv]::after,
.side-menu-resize-handle:focus-visible[b-ugwhbkyrrv]::after {
  background-color: var(--rz-primary, #0d6efd);
}

.side-menu-resize-handle:focus-visible[b-ugwhbkyrrv] {
  outline: none;
}

.side-menu-resize-overlay[b-ugwhbkyrrv] {
  position: fixed;
  inset: 0;
  z-index: 2000;
  cursor: col-resize;
}

.side-menu-mobile-trigger[b-ugwhbkyrrv] {
  display: none;
  position: fixed;
  bottom: calc(4.5rem + 1rem); /* above AppBar (min-height 4.5rem) + gap */
  left: 1rem;
  z-index: 900;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--rz-base-background-color);
  box-shadow: var(--elevation-2);
  color: var(--rz-base-color);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.side-menu-mobile-trigger:hover[b-ugwhbkyrrv] {
  background-color: var(--rz-base-hover-color, rgba(0, 0, 0, 0.04));
}

.side-menu-mobile-trigger .material-symbols-outlined[b-ugwhbkyrrv] {
  font-size: 1.5rem;
}

.side-menu-offcanvas-body[b-ugwhbkyrrv] {
  padding: 0;
  overflow-y: auto;
}

.side-menu-offcanvas-body .side-menu-content[b-ugwhbkyrrv] {
  height: auto;
  padding: 0 1rem 1rem;
}

.side-menu[b-ugwhbkyrrv] {
  z-index: 800;
  background-color: var(--rz-base-background-color);
  border: 2px solid transparent;
  box-shadow: var(--elevation-2);
  border-radius: var(--bs-border-radius);
  justify-content: center;
  overflow-y: auto;
  overflow-x: hidden;
  flex-direction: column;
  width: 100%;
  height: calc(100vh - 6rem);
  display: flex;
  position: sticky;
}

.side-menu-content[b-ugwhbkyrrv] {
  flex-direction: column;
  width: 100%;
  height: 100%;
  display: flex;
}

.side-menu-group[b-ugwhbkyrrv] {
  flex-direction: column;
  width: 100%;
  display: flex;
}

.side-menu-search[b-ugwhbkyrrv] {
  padding: 0.5rem 0 0.25rem;
  margin: 10px;
}

.side-menu-search input[b-ugwhbkyrrv] {
  width: 100%;
}

.dashboard[b-ugwhbkyrrv]  .nav-item-content {
  border-radius: 8px 8px 0px 0px;
  height: auto;
  line-height: 1.75rem;
  min-height: 2rem;
  text-align: center;
}

.dashboard[b-ugwhbkyrrv]  .nav-link:hover {
  border-radius: 8px 8px 0px 0px;
}

.dashboard[b-ugwhbkyrrv]  nav-link:active,
.dashboard[b-ugwhbkyrrv]  nav-link:focus {
  border-radius: 8px 8px 0px 0px;
}

@media (max-width: 768px) {
  .side-menu-desktop[b-ugwhbkyrrv] {
    width: 0;
    min-width: 0;
    padding: 0;
    overflow: hidden;
  }

  .side-menu-resize-handle[b-ugwhbkyrrv] {
    display: none;
  }

  .side-menu-desktop .side-menu[b-ugwhbkyrrv] {
    display: none;
  }

  .side-menu-mobile-trigger[b-ugwhbkyrrv] {
    display: flex;
  }

  .side-menu-desktop .nav-item-text[b-ugwhbkyrrv] {
    display: none;
  }

  /* In the offcanvas menu, show full nav-item content (icon + text) */
  .side-menu-offcanvas-body[b-ugwhbkyrrv]  .nav-item-text {
    display: block;
  }
}
/* /Common/Menu/TraceMenuItem.razor.rz.scp.css */
[b-he1bimmwkh] .nav-link {
    width: 100%;
}

.nav-item[b-he1bimmwkh] {
    text-decoration: none;
    color: var(--rz-text-color);
    position: relative;
}

.nav-item:hover[b-he1bimmwkh] {
    color: white;
    background-color: var(--rz-panel-menu-hover-background-color);
}

/* Leaf highlight is driven by the NavLink's routing `active` class; tree highlight is driven by
   the component's own `.active` class, so scope the NavLink-based fill to leaf rows. */
.nav-item:not(.tree):has(a.active)[b-he1bimmwkh],
.nav-item:not(.tree):has(a.focus)[b-he1bimmwkh],
.nav-item.active[b-he1bimmwkh] {
    color: white;
    background-color: var(--rz-panel-menu-item-active-background-color);
}

/* ── Leaf indicator: the left bar lives on the inner .nav-item-border (the NavLink) ── */
.nav-item.active[b-he1bimmwkh]  .nav-item-border::before {
    background-color: var(--rz-panel-menu-item-active-indicator);
}

[b-he1bimmwkh] .nav-item-border {
    position: relative;
}

    [b-he1bimmwkh] .nav-item-border::before {
        position: absolute;
        content: "";
        top: 0.5rem;
        bottom: 0.5rem;
        left: 0.125rem;
        width: 0.1875rem;
        border-radius: var(--rz-border-radius);
    }

    [b-he1bimmwkh] .nav-item-border:hover::before {
        background-color: var(--rz-base-200);
    }

    [b-he1bimmwkh] .nav-item-border.active::before {
        background-color: var(--rz-panel-menu-item-active-indicator);
    }

/* ── Tree indicator: the left bar lives on the outer .nav-item::before (branch rows only) ── */
.nav-item.tree[b-he1bimmwkh]::before {
    position: absolute;
    content: "";
    top: 0.5rem;
    bottom: 0.5rem;
    left: 0.125rem;
    width: 0.1875rem;
    border-radius: var(--rz-border-radius);
}

.nav-item.tree:hover[b-he1bimmwkh]::before {
    background-color: var(--rz-base-200);
}

.nav-item.tree.active[b-he1bimmwkh]::before,
.nav-item.tree.parent-active[b-he1bimmwkh]::before {
    background-color: var(--rz-panel-menu-item-active-indicator);
}

.nav-item-content[b-he1bimmwkh] {
    display: flex;
    width: 100%;
    align-items: center;
    padding: .5rem;
    cursor: pointer;
}

.nav-item-text[b-he1bimmwkh] {
    flex: auto;
}

.nav-item-primary[b-he1bimmwkh] {
    display: block;
}

.nav-item-secondary[b-he1bimmwkh] {
    display: flex;
    gap: 0.25rem;
    margin-top: 0.125rem;
    color: var(--rz-text-secondary-color);
    font-size: 0.75rem;
    line-height: 1rem;
}

.icon-text[b-he1bimmwkh] {
    display: flex;
    align-items: center;
    margin-inline: var(--rz-panel-menu-icon-margin-inline);
    font-size: var(--rz-panel-menu-icon-font-size);
}

.after-bttn[b-he1bimmwkh] {
    display: flex;
    align-items: center;
}

.nav-item-checkbox[b-he1bimmwkh] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.375rem 0 0.5rem;
    cursor: pointer;
    flex-shrink: 0;
}

.nav-item-checkbox input[type="checkbox"][b-he1bimmwkh] {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
    accent-color: var(--rz-panel-menu-item-active-indicator, var(--rz-primary));
    margin: 0;
}

/* ── Tree row layout ── */
.tree-menu-row[b-he1bimmwkh] {
    display: flex;
    align-items: stretch;
    width: 100%;
}

[b-he1bimmwkh] .tree-menu-link {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
}

.tree-toggle-btn[b-he1bimmwkh] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: none;
    border: none;
    padding: 0 0.5rem;
    cursor: pointer;
    color: inherit;
}

    .tree-toggle-btn:hover[b-he1bimmwkh] {
        background-color: var(--rz-panel-menu-hover-background-color);
        color: white;
    }

.tree-menu-child-count[b-he1bimmwkh] {
    flex-shrink: 0;
    font-size: 0.8rem;
    opacity: 0.7;
    margin-left: 0.25rem;
}

@media (max-width: 768px) {
    #afterBttn[b-he1bimmwkh],
    .nav-item-text[b-he1bimmwkh] {
        display: none;
    }

    .tree-toggle-btn[b-he1bimmwkh] {
        display: none;
    }
}
/* /Common/Toggle/TraceToggle.razor.rz.scp.css */
.toggle[b-ei44qyv28e] {
    display: inline-flex;
    border-radius: 1.5rem;
    border: 1px solid var(--trane-primary);
    overflow: hidden;
}

.toggle-option[b-ei44qyv28e] {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    padding: 0.1875rem 0.625rem;
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: var(--rz-input-font-size);
    line-height: 1.5;
    cursor: pointer;
    color: var(--trane-primary);
    user-select: none;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}

    .toggle-option:focus-visible[b-ei44qyv28e] {
        outline: 2px solid var(--trane-primary);
        outline-offset: -2px;
    }

    .toggle-option:focus:not(:focus-visible)[b-ei44qyv28e] {
        outline: none;
    }

.toggle-option--active[b-ei44qyv28e] {
    background-color: var(--trane-primary);
    color: white;
    font-weight: 600;
}

.toggle--sm .toggle-option[b-ei44qyv28e] {
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
}

.toggle--sm[b-ei44qyv28e] {
    border-radius: 1rem;
}

.toggle--disabled[b-ei44qyv28e] {
    border-color: var(--rz-text-disabled-color);
}

.toggle-option:disabled[b-ei44qyv28e] {
    cursor: not-allowed;
    color: var(--rz-text-disabled-color);
}

.toggle-option--active:disabled[b-ei44qyv28e] {
    background-color: var(--rz-input-disabled-background-color);
    color: var(--rz-text-disabled-color);
}

@media (forced-colors: active) {
    .toggle-option:disabled[b-ei44qyv28e] {
        color: GrayText;
    }

    .toggle--disabled[b-ei44qyv28e] {
        border-color: GrayText;
    }
}
/* /Common/TraceBanner/TraceBanner.razor.rz.scp.css */
.trace-banner[b-tq7fw586gm] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid transparent;
    border-radius: var(--bs-border-radius, 0.375rem);
    margin-bottom: 1rem;
}

.trace-banner-icon[b-tq7fw586gm] {
    font-size: 1.5rem;
    line-height: 1.5rem;
    flex-shrink: 0;
}

.trace-banner-content[b-tq7fw586gm] {
    flex-grow: 1;
    line-height: 1.4;
}

.trace-banner-dismiss[b-tq7fw586gm] {
    flex-shrink: 0;
    padding: 0 0.25rem;
    border: 0;
    background: transparent;
    color: inherit;
    line-height: 1;
}

.trace-banner-dismiss .material-symbols-outlined[b-tq7fw586gm] {
    font-size: 1.25rem;
}

.trace-banner-info[b-tq7fw586gm] {
    background-color: var(--bs-info-bg-subtle, #cff4fc);
    border-color: var(--bs-info-border-subtle, #9eeaf9);
    color: var(--bs-info-text-emphasis, #055160);
}

.trace-banner-warning[b-tq7fw586gm] {
    background-color: var(--bs-warning-bg-subtle, #fff3cd);
    border-color: var(--bs-warning-border-subtle, #ffe69c);
    color: var(--bs-warning-text-emphasis, #664d03);
}

.trace-banner-error[b-tq7fw586gm] {
    background-color: var(--bs-danger-bg-subtle, #f8d7da);
    border-color: var(--bs-danger-border-subtle, #f1aeb5);
    color: var(--bs-danger-text-emphasis, #58151c);
    font-weight: 500;
}

.trace-banner-success[b-tq7fw586gm] {
    background-color: var(--bs-success-bg-subtle, #d1e7dd);
    border-color: var(--bs-success-border-subtle, #a3cfbb);
    color: var(--bs-success-text-emphasis, #0a3622);
}
/* /Common/TraceDataGrid/ColumnEdit.razor.rz.scp.css */
.grid-row[b-ap49luko02] {
    cursor: pointer;
}
/* /Common/TraceDataGrid/TraceDataGrid.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────
   Edit-mode alignment for every TraceDataGrid.
   When a cell swaps its read-only display for an outlined editor
   (TraceTextBox / TraceQuantity), the field's insets pushed the
   text right and painted over the reserved edit-icon slot. These
   rules keep the editor aligned with the display text and preserve
   the (invisible) edit-icon space.
   Per-grid overrides:
     --grid-edit-icon-space : width reserved for the edit icon (0 to remove).
     --grid-edit-text-inset : tiny left gap so text doesn't touch the border.
   ───────────────────────────────────────────────────────────── */

/* Reserve the (invisible) edit-icon slot: shrink the editor so it
   stops before the icon zone instead of stretching under it. */
#TraceDataGrid[b-vy6ex4t20m]  td .rz-form-field {
    width: calc(100% - var(--grid-edit-icon-space, 0)) !important;
    margin: 0 !important;
}

/* Kill the outlined field's inner wrapper inset so editor text starts
   at the same x as the read-only text. */
#TraceDataGrid[b-vy6ex4t20m]  td .rz-form-field-content {
    padding-inline: 0 !important;
    margin: 0 !important;
}

/* Tiny left-only padding so the value doesn't sit on the border line,
   while staying small enough not to reintroduce the edit-mode shift. */
#TraceDataGrid[b-vy6ex4t20m]  td .rz-textbox,
#TraceDataGrid[b-vy6ex4t20m]  td .rz-numeric input,
#TraceDataGrid[b-vy6ex4t20m]  td input.rz-inputtext {
    padding-left: var(--grid-edit-text-inset, 2px) !important;
    padding-right: 0 !important;
}

/* /Common/TraceFormField/TraceAutosizeQuantityDisplay.razor.rz.scp.css */
.trace-autosized-indicator[b-pkeykdqmov] {
    font-style: italic;
}
/* /Common/TraceFormField/TraceQuantity.razor.rz.scp.css */
.trace-quantity-option-row[b-7r5vh58qjj] {
    display: grid;
    grid-template-columns: minmax(max-content, 1fr) auto;
    align-items: center;
    column-gap: 1rem;
    width: 100%;
}

.trace-quantity-option-value[b-7r5vh58qjj] {
    text-align: right;
    white-space: nowrap;
}
/* /Common/TraceImage/TraceImageComponent.razor.rz.scp.css */
/* Ensure the image area behaves as a bounded container */
.trace-image-container[b-gy9nrlx7us] {
  position: relative;          /* anchor for the absolute edit icon */
  display: inline-block;       /* shrink-wrap to image while respecting max-width */
  max-width: 100%;             /* never exceed the width of its Bootstrap column */
  overflow: hidden;            /* prevent any child from visually overflowing */
  box-sizing: border-box;
}

.trace-image-container:hover > .trace-image-edit-icon[b-gy9nrlx7us] {
  visibility: visible;
}

.trace-image-edit-icon[b-gy9nrlx7us] {
  cursor: pointer;
  position: absolute;
  visibility: hidden;
}

.trace-image-edit-icon .btn[b-gy9nrlx7us] {
  position: absolute;
  left: 0.25rem;
  bottom: 0.25rem;
}

/* Make the image responsive within its parent column */
.trace-image-container > img.trace-image[b-gy9nrlx7us] {
  display: block;
  max-width: 100%;   /* cap width to container even if inline width is larger */
  height: auto;      /* keep aspect ratio when width is constrained */
}

.trace-image-container .trace-image-clickable img.trace-image[b-gy9nrlx7us] {
  display: block;
  max-width: 100%;
  height: auto;
}

.trace-image[b-gy9nrlx7us] {
    object-fit: cover;
    border-radius: var(--bs-border-radius);
    border: 2px solid #e0e0e0;
}

/* Keep circular images a perfect circle on all viewports (e.g. User Information, dropdown) */
.trace-image-container.trace-image-circle[b-gy9nrlx7us] {
  width: var(--trace-image-size);
  max-width: 100%;
  aspect-ratio: 1;
  box-sizing: border-box;
}

.trace-image-container.trace-image-circle > .trace-image[b-gy9nrlx7us],
.trace-image-container.trace-image-circle > .trace-image-clickable[b-gy9nrlx7us] {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

.trace-image-container.trace-image-circle img.trace-image[b-gy9nrlx7us] {
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
}

/* Zoom modal container */
.trace-image-zoom-container[b-gy9nrlx7us] {
  position: relative;
  overflow: hidden;
  line-height: 0; /* collapse whitespace gap below inline img */
  display: flex;
  justify-content: center; /* center portrait/narrow images horizontally */
  align-items: flex-start;
}

.trace-image-zoom-container img[b-gy9nrlx7us] {
  transform-origin: 0 0;
}

/* Modal zoom image — single class replaces repeated inline styles */
.trace-image-zoom-img[b-gy9nrlx7us] {
  width: 100%;
  max-height: 80vh;
  object-fit: contain;
  display: block;
}

/* Hint overlay — auto-fades after ~3.5s, re-animates each time modal opens */
.trace-image-zoom-hint[b-gy9nrlx7us] {
  position: absolute;
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  max-width: calc(100% - 1.5rem);
  white-space: normal;
  text-align: center;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border-radius: 0.3rem;
  padding: 0.2rem 0.8rem;
  font-size: 0.7rem;
  line-height: 1.6;
  pointer-events: none;
  z-index: 1;
  animation: trace-zoom-hint-b-gy9nrlx7us 3.5s ease forwards;
}

@keyframes trace-zoom-hint-b-gy9nrlx7us {
  0%   { opacity: 0; }
  15%  { opacity: 1; }
  70%  { opacity: 1; }
  100% { opacity: 0; }
}
/* /Common/TraceScheduleGraph/TraceScheduleGraph.razor.rz.scp.css */
.trace-schedule-status[b-5u9whnb9sm] {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.trace-schedule-toolbar-controls[b-5u9whnb9sm] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.trace-schedule-control[b-5u9whnb9sm] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
}

.trace-schedule-control .form-select[b-5u9whnb9sm] {
    min-width: 7.5rem;
}

.trace-schedule-workspace[b-5u9whnb9sm] {
    display: grid;
    grid-template-columns: minmax(17rem, 20rem) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    --trace-schedule-editor-height: 35.5rem;
    --trace-schedule-active-height: var(--trace-schedule-editor-height);
}

.trace-schedule-definitions[b-5u9whnb9sm],
.trace-schedule-main[b-5u9whnb9sm],
.trace-schedule-panel[b-5u9whnb9sm] {
    min-width: 0;
}

.trace-schedule-definitions[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    align-self: start;
    box-sizing: border-box;
    height: var(--trace-schedule-active-height);
    max-height: var(--trace-schedule-active-height);
    min-height: var(--trace-schedule-editor-height);
    overflow: hidden;
    padding: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
}

.trace-schedule-definitions-header[b-5u9whnb9sm] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
}

.trace-schedule-pattern-toolbar[b-5u9whnb9sm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.trace-schedule-definitions-header h3[b-5u9whnb9sm],
.trace-schedule-panel-header h4[b-5u9whnb9sm] {
    margin: 0;
    color: var(--bs-emphasis-color);
    font-size: 1rem;
    font-weight: 700;
}

.trace-schedule-definitions-header p[b-5u9whnb9sm],
.trace-schedule-panel-header p[b-5u9whnb9sm] {
    margin: 0.2rem 0 0;
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
}

.trace-schedule-definition-list[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 0.75rem;
    min-height: 0;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.trace-schedule-definition-card[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.8rem;
    border: 1px solid color-mix(in srgb, var(--definition-color) 35%, var(--bs-border-color));
    border-left: 0.35rem solid var(--definition-color);
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--definition-color) 8%, var(--bs-body-bg));
    cursor: grab;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.trace-schedule-definition-card:hover[b-5u9whnb9sm],
.trace-schedule-definition-card.active[b-5u9whnb9sm] {
    border-color: var(--definition-color);
    box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.08);
}

.trace-schedule-definition-card.active[b-5u9whnb9sm] {
    background: color-mix(in srgb, var(--definition-color) 14%, var(--bs-body-bg));
}

.trace-schedule-definition-card.dragging[b-5u9whnb9sm] {
    opacity: 0.72;
    transform: scale(0.99);
    cursor: grabbing;
}

.trace-schedule-definition-card-top[b-5u9whnb9sm] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.trace-schedule-definition-name[b-5u9whnb9sm] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    align-items: flex-start;
}

.trace-schedule-definition-badge[b-5u9whnb9sm] {
    max-width: 100%;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: var(--definition-color);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.trace-schedule-definition-name-text[b-5u9whnb9sm] {
    color: var(--bs-emphasis-color);
    font-weight: 600;
    line-height: 1.25;
}

.trace-schedule-definition-actions[b-5u9whnb9sm] {
    display: flex;
    gap: 0.25rem;
    align-items: center;
    flex-shrink: 0;
}

.trace-schedule-definition-actions .btn-icon[b-5u9whnb9sm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    color: var(--bs-body-color);
    background: transparent;
    border: none;
}

.trace-schedule-definition-actions .btn-icon .material-symbols-outlined[b-5u9whnb9sm] {
    font-size: 18px;
}

.trace-schedule-definition-actions .btn-icon:hover:not(:disabled)[b-5u9whnb9sm],
.trace-schedule-definition-actions .btn-icon:focus-visible:not(:disabled)[b-5u9whnb9sm] {
    color: var(--bs-body-color);
    background: color-mix(in srgb, var(--definition-color) 18%, transparent);
}

.trace-schedule-definition-actions .btn-icon:focus-visible[b-5u9whnb9sm] {
    outline: 2px solid var(--definition-color);
    outline-offset: 1px;
}

.trace-schedule-definition-actions .btn-icon:disabled[b-5u9whnb9sm] {
    opacity: 0.35;
    cursor: not-allowed;
}

.trace-schedule-active-tag[b-5u9whnb9sm] {
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: var(--definition-color);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.trace-schedule-definition-card p[b-5u9whnb9sm] {
    margin: 0;
    color: var(--bs-secondary-color);
    font-size: 0.78rem;
    line-height: 1.35;
}

.trace-schedule-definition-footer[b-5u9whnb9sm] {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--bs-border-color);
    color: var(--bs-secondary-color);
    font-size: 0.78rem;
    line-height: 1.4;
}

.trace-schedule-main[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    min-height: var(--trace-schedule-editor-height);
    overflow: visible;
}

.trace-schedule-main[b-5u9whnb9sm]  .rz-tabview,
.trace-schedule-main[b-5u9whnb9sm]  .rz-tabview-panels,
.trace-schedule-main[b-5u9whnb9sm]  .rz-tabview-panel {
    min-width: 0;
    overflow: visible;
}

.trace-schedule-value-layout[b-5u9whnb9sm] {
    display: grid;
    grid-template-columns: minmax(18rem, 28rem) minmax(24rem, 1fr);
    gap: 1rem;
    padding-top: 1rem;
    min-height: var(--trace-schedule-editor-height);
}

.trace-schedule-value-controls[b-5u9whnb9sm] {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 0.875rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-tertiary-bg);
}

.trace-schedule-value-controls h4[b-5u9whnb9sm] {
    margin: 0;
    color: var(--bs-emphasis-color);
    font-size: 1rem;
    font-weight: 700;
}

.trace-schedule-value-controls p[b-5u9whnb9sm] {
    margin: 0.2rem 0 0;
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
}

.trace-schedule-timestep[b-5u9whnb9sm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    white-space: nowrap;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
}

.trace-schedule-timestep select[b-5u9whnb9sm] {
    width: auto;
}

.trace-schedule-panel[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
}

.trace-schedule-panel-header[b-5u9whnb9sm] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
}

.trace-schedule-assignment-layout[b-5u9whnb9sm] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    padding-top: 1rem;
}

.trace-schedule-assignment-toolbar[b-5u9whnb9sm] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}

.trace-schedule-weekdays-target[b-5u9whnb9sm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.85rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    background: transparent;
    font-size: 0.8rem;
    font-weight: 600;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.trace-schedule-weekdays-sub[b-5u9whnb9sm] {
    opacity: 0.75;
    font-weight: 500;
}

.trace-schedule-bulk-apply-row[b-5u9whnb9sm] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.trace-schedule-bulk-apply-label[b-5u9whnb9sm] {
    color: var(--bs-secondary-color);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.trace-schedule-assignment-hint[b-5u9whnb9sm] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    margin: 0 0 0.75rem;
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
    line-height: 1.35;
}

.trace-schedule-assignment-hint > i[b-5u9whnb9sm] {
    position: relative;
    top: 0.05rem;
    color: var(--rz-primary);
}

.trace-schedule-assignment-hint strong[b-5u9whnb9sm] {
    color: var(--bs-emphasis-color);
    font-weight: 650;
}

.trace-schedule-grid-wrap[b-5u9whnb9sm] {
    max-width: 100%;
    overflow: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
}

.trace-schedule-grid[b-5u9whnb9sm] {
    display: grid;
    min-width: 54rem;
}

.trace-schedule-grid-corner[b-5u9whnb9sm],
.trace-schedule-grid-header[b-5u9whnb9sm],
.trace-schedule-month-header[b-5u9whnb9sm],
.trace-schedule-cell[b-5u9whnb9sm] {
    min-height: 3.25rem;
    border-right: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-border-color);
}

.trace-schedule-grid-corner[b-5u9whnb9sm],
.trace-schedule-grid-header[b-5u9whnb9sm],
.trace-schedule-month-header[b-5u9whnb9sm] {
    display: flex;
    align-items: center;
    background: var(--bs-tertiary-bg);
    color: var(--bs-emphasis-color);
    font-weight: 700;
    transition: box-shadow 0.18s ease;
}

.trace-schedule-grid-corner[b-5u9whnb9sm],
.trace-schedule-grid-header[b-5u9whnb9sm] {
    justify-content: center;
    padding: 0.75rem;
    text-align: center;
}

.trace-schedule-month-header[b-5u9whnb9sm] {
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
}

.trace-schedule-month-expand[b-5u9whnb9sm] {
    padding: 0;
    color: var(--bs-secondary-color);
    text-decoration: none;
}

.trace-schedule-cell[b-5u9whnb9sm] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    border-top: 0;
    border-left: 0;
    background: color-mix(in srgb, var(--definition-color) 26%, var(--bs-body-bg));
    color: var(--bs-emphasis-color);
    font-size: 0.78rem;
    font-weight: 650;
    text-align: center;
    transition: background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.trace-schedule-cell span[b-5u9whnb9sm] {
    display: -webkit-box;
    overflow: hidden;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.trace-schedule-drop-target:hover[b-5u9whnb9sm] {
    box-shadow: inset 0 0 12px color-mix(in srgb, var(--rz-primary) 16%, transparent);
}

/* During a definition drag the grid stays calm — only the cursor signals droppability.
   The target under the pointer gets a feathered inner glow plus a crisp inner edge so
   exactly one box reads as "drop here". Inset shadows hug the box edges and fade inward. */
body.trace-schedule-definition-drag-active [data-trace-schedule-drop-target][b-5u9whnb9sm] {
    cursor: copy;
}

body.trace-schedule-definition-drag-active [data-trace-schedule-drop-active="true"][b-5u9whnb9sm] {
    box-shadow: inset 0 0 18px 2px color-mix(in srgb, var(--rz-primary) 42%, transparent),
                inset 0 0 0 1.5px color-mix(in srgb, var(--rz-primary) 65%, transparent);
}

/* Hovering a day-column or month-row header previews the fill scope: every cell in
   that column/row gets a crisp accent outline while the header itself keeps the
   stronger focused glow above. Cells are tagged by the drag JS (data-...-scope-active). */
body.trace-schedule-definition-drag-active .trace-schedule-cell[data-trace-schedule-scope-active="true"][b-5u9whnb9sm] {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--rz-primary) 35%, transparent);
}

body.trace-schedule-definition-drag-active .trace-schedule-weekdays-target[b-5u9whnb9sm] {
    border-color: var(--rz-primary);
    border-style: solid;
    color: var(--rz-primary);
    background: color-mix(in srgb, var(--rz-primary) 10%, transparent);
}

.trace-schedule-cell:hover[b-5u9whnb9sm] {
    background: color-mix(in srgb, var(--definition-color) 38%, var(--bs-body-bg));
}

.trace-schedule-context-backdrop[b-5u9whnb9sm] {
    position: fixed;
    inset: 0;
    z-index: 1050;
}

.trace-schedule-context-menu[b-5u9whnb9sm] {
    position: fixed;
    z-index: 1051;
    min-width: 13rem;
    padding: 0.5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.65rem;
    background: var(--bs-body-bg);
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.18);
}

.trace-schedule-context-title[b-5u9whnb9sm] {
    padding: 0.35rem 0.5rem 0.5rem;
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.trace-schedule-context-option[b-5u9whnb9sm] {
    display: flex;
    width: 100%;
    gap: 0.5rem;
    align-items: center;
    padding: 0.45rem 0.5rem;
    border: 0;
    border-radius: 0.45rem;
    background: transparent;
    color: var(--bs-body-color);
    text-align: left;
}

.trace-schedule-context-option:hover[b-5u9whnb9sm] {
    background: var(--bs-tertiary-bg);
}

.trace-schedule-context-option span[b-5u9whnb9sm] {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 999px;
    background: var(--definition-color);
}

@media (max-width: 1200px) {
    .trace-schedule-workspace[b-5u9whnb9sm],
    .trace-schedule-value-layout[b-5u9whnb9sm] {
        grid-template-columns: 1fr;
    }

    .trace-schedule-definitions[b-5u9whnb9sm] {
        height: auto;
        max-height: none;
        min-height: auto;
        overflow: visible;
    }
}

@media (max-width: 768px) {
    .trace-schedule-value-controls[b-5u9whnb9sm],
    .trace-schedule-assignment-toolbar[b-5u9whnb9sm] {
        align-items: stretch;
        flex-direction: column;
    }

    .trace-schedule-toolbar-controls[b-5u9whnb9sm] {
        align-items: stretch;
        flex-direction: column;
    }
}
/* /Common/TraceScheduleGraph/TraceScheduleSlotEditor.razor.rz.scp.css */
.trace-schedule-matrix-scroll[b-igdrrttgiw] {
    max-height: 31rem;
    overflow: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
}

.trace-schedule-matrix-table[b-igdrrttgiw] {
    margin: 0;
}

.trace-schedule-matrix-table thead th[b-igdrrttgiw] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    text-transform: uppercase;
}

.trace-schedule-matrix-table td[b-igdrrttgiw],
.trace-schedule-matrix-table th[b-igdrrttgiw] {
    vertical-align: middle;
}

.trace-schedule-value-input[b-igdrrttgiw] {
    min-width: 6rem;
}
/* /Common/TraceTitle/TraceTitle.razor.rz.scp.css */
.tt-header-title-icon[b-hgh10xzyft] {
  font-weight: 600;
  display: flex;
  padding: 0.25rem;
  vertical-align: middle;
}

.custom-icon-container[b-hgh10xzyft] {
  padding: 0 0.3rem;
  border-radius: 5px;
}

/* Style for content inside the title */
.tt-header-title-icon[b-hgh10xzyft]  * {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 2px;
  color: var(--rz-text-color, #333);
}

.tt-header-title-text[b-hgh10xzyft] {
  font-size: 1.2rem;
  margin: 0 0.5rem 0 0.8rem;
  vertical-align: middle;
  padding: 0.3rem 0;
}

/* Style the title and the input field on mobile */
@media (max-width: 768px) {
  .tt-header-title-icon[b-hgh10xzyft]  * {
    font-size: 1rem;
    font-weight: 500;
    gap: 0.1rem !important;
  }

  .tt-header-title-text[b-hgh10xzyft] {
    margin: 0 0.1rem 0 0.1rem;
    padding: 0.1rem 0;
  }
}

/* /Layout/AppBar.razor.rz.scp.css */
span[b-8zo2h92hfl] {
  display: block;
  justify-content: center;
}

.sidebar-wrap[b-8zo2h92hfl] {
  z-index: 900;
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 1rem;
  position: relative;
  grid-area: sideBar;
}

.sidebar[b-8zo2h92hfl] {
  border: 2px solid transparent;
  box-shadow: var(--elevation-2);
  border-radius: var(--bs-border-radius);
  justify-content: center;
  background-color: var(--rz-base-background-color);
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 800;
  flex-direction: column;
  width: 4.5rem;
  height: calc(100vh - 2rem);
  display: flex;
  position: sticky;
}

.sidebar-content[b-8zo2h92hfl] {
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  height: 100%;
  display: flex;
}

.appbar-custom-icon-container[b-8zo2h92hfl] {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar-group[b-8zo2h92hfl] {
  flex: 1;
  padding-top: 0.75rem;
  align-items: center;
  flex-direction: column;
  width: 100%;
  display: flex;
}

.sidebar-bottom-links[b-8zo2h92hfl] {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin-top: auto;
}

.sidebar-link[b-8zo2h92hfl] {
  padding: 0.25rem;
  cursor: pointer;
  align-items: center;
  display: flex;
  position: relative;
}

.sidebar-link[b-8zo2h92hfl]  a {
  color: var(--rz-text-color);
  padding: 0.5rem 0.75rem;
  text-decoration: none;
  border-radius: var(--bs-border-radius);
}

.sidebar-link[b-8zo2h92hfl]  a:hover,
.sidebar-link[b-8zo2h92hfl]  a.active,
.sidebar-link[b-8zo2h92hfl]  a.focus {
  color: white;
}

.sidebar-link[b-8zo2h92hfl]  a:hover {
  background-color: var(--rz-panel-menu-hover-background-color) !important;
}

.sidebar-link[b-8zo2h92hfl]  a.active {
  background-color: var(
    --rz-panel-menu-item-active-background-color
  ) !important;
}

.sidebar-footer[b-8zo2h92hfl] {
  padding-bottom: 1rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--theme--t_border-primary);
  flex-flow: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
}

.sidebar-footer-bttn[b-8zo2h92hfl] {
  cursor: pointer;
  flex: 1;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

/* Mobile styles - makes the sidebar horizontal at the bottom of the screen */
@media (max-width: 768px) {
  .sidebar-wrap[b-8zo2h92hfl] {
    padding: 0 !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 900;
    grid-area: unset;
  }

  .sidebar[b-8zo2h92hfl] {
    width: 100% !important;
    height: auto !important;
    min-height: calc(4.5rem + env(safe-area-inset-bottom, 0px)) !important;
    flex-direction: row !important;
    overflow: visible !important;
    position: relative !important;
    border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0;
    padding: 0.25rem 0.25rem max(0.25rem, env(safe-area-inset-bottom, 0px)) !important;
  }

  .sidebar-content[b-8zo2h92hfl] {
    flex-direction: row !important;
    width: 100% !important;
    height: auto !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  .sidebar-group[b-8zo2h92hfl] {
    flex-direction: row !important;
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  @supports not selector(::-webkit-scrollbar) {
    .sidebar-group[b-8zo2h92hfl] {
      scrollbar-width: thin;
    }
  }

  .sidebar-group[b-8zo2h92hfl]::-webkit-scrollbar {
    height: 4px;
  }

  .sidebar-group[b-8zo2h92hfl]::-webkit-scrollbar-track {
    background: transparent;
  }

  .sidebar-group[b-8zo2h92hfl]::-webkit-scrollbar-thumb {
    background: var(--rz-border-color);
    border-radius: 2px;
  }

  .sidebar-footer[b-8zo2h92hfl] {
    flex-direction: row !important;
    height: auto !important;
    width: auto !important;
    min-width: max-content !important;
    border-top: none !important;
    border-left: 1px solid var(--theme--t_border-primary) !important;
    padding-left: 0.5rem !important;
    margin-top: 0 !important;
    padding-bottom: 0.25rem !important;
    padding-top: 0.25rem !important;
    flex-wrap: nowrap !important;
    flex-flow: row nowrap !important;
    gap: 0 !important;
    justify-content: flex-start !important;
  }

  .sidebar-link[b-8zo2h92hfl] {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }

  .navbar-brand[b-8zo2h92hfl] {
    display: none !important;
  }

  .sidebar-bottom-links[b-8zo2h92hfl] {
    display: contents !important;
  }

  .sidebar-group > *[b-8zo2h92hfl] {
    flex-shrink: 0 !important;
  }

  .sidebar-footer > *[b-8zo2h92hfl] {
    flex-shrink: 0 !important;
  }

  .sidebar-footer-bttn[b-8zo2h92hfl] {
    flex: 0 0 auto !important;
  }

  .navbar-brand .d-flex[b-8zo2h92hfl] {
    flex-direction: row !important;
  }

  .navbar-brand .badge[b-8zo2h92hfl] {
    margin-left: 0.25rem !important;
    margin-top: 0 !important;
  }

  .navbar-brand.pb-2[b-8zo2h92hfl] {
    padding-bottom: 0 !important;
  }
}
/* /Layout/Footer.razor.rz.scp.css */
.tt-footer[b-94xppqqd5w] {
    position:absolute;
    bottom: 0px;
    height: 3.5625rem; /*matches the appbars last item*/
    width: 100%;
    background-color: var(--rz-layout-background-color);
}
/* /Layout/Header.razor.rz.scp.css */
.tt-header[b-bjxqmw2edn] {
  background-color: var(--rz-layout-background-color);
  z-index: 900;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  position: absolute;
  padding: 0.75rem 1rem 0 6.5rem;
  width: 100%;
  grid-area: header;
}

.header-menu-section[b-bjxqmw2edn] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.tt-header-item[b-bjxqmw2edn] {
  margin-top: -0.50rem;
}

.tt-header-border[b-bjxqmw2edn] {
  box-shadow: var(--elevation-2);
  border-radius: var(--bs-border-radius);
  background: var(--rz-base-background-color);
  padding: 0.25rem 0.5rem;
  display: inline-flex;
  align-items: center;
  min-height: var(--rz-input-height);
}

.tt-header-alt[b-bjxqmw2edn] {
  border-left: 2px solid var(--rz-base);
  padding-left: 0.8rem;
  display: flex;
  align-items: center;
}

.mobile-logo-container[b-bjxqmw2edn] {
  display: none;
}

.alternative-dropdown-in-header[b-bjxqmw2edn] {
  display: none;
}

.project-name-in-header[b-bjxqmw2edn],
.project-type-in-header[b-bjxqmw2edn] {
  display: none;
}

.tt-header-project-name + .tt-header-alt:not(.tt-header-project-type)[b-bjxqmw2edn] {
  border-left: none;
  padding-left: 0.5rem;
  padding-right: 0.8rem;
}

.tt-project-name[b-bjxqmw2edn],
.tt-project-type[b-bjxqmw2edn] {
  font-weight: 600;
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
  padding-right: 0.3rem;
}

.navbar-nav li.nav-item[b-bjxqmw2edn] {
  margin-left: 0.5rem;
}

@media (max-width: 768px) {
  .tt-header[b-bjxqmw2edn] {
    padding: max(0.75rem, env(safe-area-inset-top, 0.75rem)) 1rem 0.5rem;
    flex-wrap: nowrap;
    gap: 0.5rem;
    height: max(4.5rem, calc(3.5rem + env(safe-area-inset-top, 0px)));
  }

  .header-title-section[b-bjxqmw2edn] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .header-menu-section[b-bjxqmw2edn] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
  }

  .tt-header-border-responsive[b-bjxqmw2edn] {
    display: flex;
    flex-direction: column;
    border: none;
    text-align: center;
  }

  .mobile-logo-container[b-bjxqmw2edn] {
    display: inline-block;
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 0;
  }

  .mobile-logo[b-bjxqmw2edn] {
    background-color: var(--rz-base-background-color);
  }

  /* Ensure title container doesn't overflow */
  .header-title-section .tt-header-border[b-bjxqmw2edn] {
    max-width: 100%;
    overflow: hidden;
  }

  /* Menu items in collapse should be full width */
  #collapsibleNavbar[b-bjxqmw2edn] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    background-color: var(--rz-layout-background-color);
    padding: 0.5rem 1rem;
    box-shadow: var(--elevation-2);
  }

  #collapsibleNavbar .navbar-nav[b-bjxqmw2edn] {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
  }

  .alternative-dropdown-in-header[b-bjxqmw2edn] {
    display: flex;
    width: 100%;
    justify-content: center;
  }

  .project-name-in-header[b-bjxqmw2edn],
  .project-type-in-header[b-bjxqmw2edn] {
    display: flex;
    width: 100%;
    align-items: center;
  }

  .project-name-in-header .tt-header-border[b-bjxqmw2edn],
  .project-type-in-header .tt-header-border[b-bjxqmw2edn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--rz-input-height);
    width: 100%;
  }

  .project-name-in-header .tt-project-name[b-bjxqmw2edn],
  .project-type-in-header .tt-project-type[b-bjxqmw2edn] {
    max-width: 100%;
  }

  .tt-header-alt[b-bjxqmw2edn] {
    display: none;
  }
}
/* /Layout/Landing.razor.rz.scp.css */
/* Landing Page Styles */
.landing-page[b-v6eqnks6lc] {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.landing-nav[b-v6eqnks6lc] {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border-bottom: 1px solid #d3d3d3;
}

[data-bs-theme="dark"] .landing-nav[b-v6eqnks6lc] {
  background-color: rgba(31, 31, 31, 0.85);
  border-bottom-color: #3d3d3d;
}

.navbar-container[b-v6eqnks6lc] {
  padding: 0 4rem 0 4rem;
}

.landing-logo-text[b-v6eqnks6lc] {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--bs-body-color);
}

.navbar-brand-text[b-v6eqnks6lc] {
  font-size: 1.75rem;
  font-weight: 700;
  margin-right: 0.75rem;
}

.badge-text[b-v6eqnks6lc] {
  margin-right: 0.75rem;
}

.hero-text-container[b-v6eqnks6lc] {
  padding: 1rem 4rem 0 4rem !important;
}

.hero-text-title[b-v6eqnks6lc] {
  margin-bottom: 26rem !important;
  text-shadow: 2px 2px 2px rgba(142, 94, 94, 0.8);
}

.hero-text-subtitle[b-v6eqnks6lc] {
  color: white;
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 2rem;
  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
  max-width: 40rem;
}

.hero-CTA-container[b-v6eqnks6lc] {
  margin-bottom: 10rem;
}

.landing-hero[b-v6eqnks6lc] {
  flex: 1;
  padding: 0;
  /* make hero background go edge-to-edge */
  position: relative;
  /* for the absolute animation layer */
  overflow: hidden;
  /* prevents 100vw overflow scroll issues */
}

/* Soft gradient merge from hero into features (theme-aware) */
.landing-hero[b-v6eqnks6lc]::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28vh;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    color-mix(in srgb, var(--rz-layout-background-color) 15%, transparent) 25%,
    color-mix(in srgb, var(--rz-layout-background-color) 40%, transparent) 50%,
    color-mix(in srgb, var(--rz-layout-background-color) 70%, transparent) 75%,
    var(--rz-layout-background-color) 100%
  );
  pointer-events: none;
  z-index: 0;
}

.full-bleed[b-v6eqnks6lc] {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

.animation-container[b-v6eqnks6lc] {
  padding-top: 2rem;
  min-height: 100vh;
  display: flex;
}

.animation-wrapper[b-v6eqnks6lc] {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  height: 100%;
  width: 100%;
  padding: 0;
}

.animation[b-v6eqnks6lc] {
  height: 100%;
  width: 100%;
  object-fit: cover;
  mask-image: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.2));
  -webkit-mask-image: linear-gradient(
    to top,
    rgba(0, 0, 0, 1),
    rgba(0, 0, 0, 1),
    rgba(0, 0, 0, 1),
    rgba(0, 0, 0, 0.8),
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0.3),
    rgba(0, 0, 0, 0)
  );
}

/* Show the complete animation on mobile screens */
@media (max-width: 768px) {
  .animation[b-v6eqnks6lc] {
    object-fit: contain;
  }
}

/* Features section */
.landing-features-inner[b-v6eqnks6lc] {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.landing-features-header[b-v6eqnks6lc] {
  margin-bottom: 3rem;
}

.landing-features-title[b-v6eqnks6lc] {
  margin-bottom: 0.75rem;
  color: var(--bs-body-color);
}

.landing-features-subtitle[b-v6eqnks6lc] {
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.1rem;
}

.landing-feature-cards[b-v6eqnks6lc] {
  margin-top: 0.5rem;
}

.landing-feature-card[b-v6eqnks6lc] {
  padding: 2rem 1.75rem;
  border-radius: 16px;
  background: var(--rz-panel-background-color);
  border: 1px solid var(--rz-border-color);
  transition: transform 0.25s ease, box-shadow 0.25s ease,
    border-color 0.25s ease;
  height: 100%;
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.landing-feature-card[b-v6eqnks6lc]::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--bs-primary),
    color-mix(in srgb, var(--bs-primary) 70%, transparent)
  );
  opacity: 0;
  transition: opacity 0.25s ease;
}

.landing-feature-card:hover[b-v6eqnks6lc] {
  transform: translateY(-6px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04);
  border-color: color-mix(
    in srgb,
    var(--bs-primary) 25%,
    var(--rz-border-color)
  );
}

.landing-feature-card:hover[b-v6eqnks6lc]::before {
  opacity: 1;
}

.feature-icon[b-v6eqnks6lc] {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    var(--bs-primary),
    color-mix(in srgb, var(--bs-primary) 85%, black)
  );
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--bs-primary) 35%, transparent);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.landing-feature-card:hover .feature-icon[b-v6eqnks6lc] {
  transform: scale(1.05);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--bs-primary) 45%, transparent);
}

.feature-icon .material-symbols-outlined[b-v6eqnks6lc] {
  font-size: 28px;
  color: white;
  font-variation-settings: "FILL" 0, "wght" 400;
}

.feature-icon .feature-icon-custom[b-v6eqnks6lc],
.feature-icon svg[b-v6eqnks6lc] {
  display: block;
  flex-shrink: 0;
}

.landing-feature-card h3[b-v6eqnks6lc] {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--bs-body-color);
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.landing-feature-card p[b-v6eqnks6lc] {
  color: var(--bs-body-color);
  opacity: 0.85;
  margin-bottom: 0;
  font-size: 0.95rem;
  line-height: 1.6;
}

[data-bs-theme="dark"] .landing-feature-card[b-v6eqnks6lc] {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

[data-bs-theme="dark"] .landing-feature-card:hover[b-v6eqnks6lc] {
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25), 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* CTA section */
.landing-cta[b-v6eqnks6lc] {
  padding: 4.5rem 1.5rem;
  background: linear-gradient(
    145deg,
    var(--bs-primary) 0%,
    color-mix(in srgb, var(--bs-primary) 92%, black) 45%,
    color-mix(in srgb, var(--bs-primary) 88%, black) 100%
  );
  color: white;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.landing-cta[b-v6eqnks6lc]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 20% 50%,
    rgba(255, 255, 255, 0.06) 0%,
    transparent 50%
  );
  pointer-events: none;
}

.landing-cta-inner[b-v6eqnks6lc] {
  max-width: 520px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.landing-cta-title[b-v6eqnks6lc] {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.landing-cta-text[b-v6eqnks6lc] {
  font-size: 1.1rem;
  opacity: 0.95;
  margin-bottom: 1.75rem;
  line-height: 1.55;
}

.landing-cta-btn[b-v6eqnks6lc] {
  display: inline-block;
  padding: 0.75rem 1.75rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bs-primary);
  background: white;
  border-color: transparent;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease,
    background 0.2s ease;
}

.landing-cta-btn:hover[b-v6eqnks6lc] {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
  background: color-mix(in srgb, var(--bs-primary) 10%, white);
  border-color: var(--bs-primary);
}

/* Footer */
.landing-footer[b-v6eqnks6lc] {
  padding: 1.5rem 1.5rem;
  margin-top: auto;
  background: color-mix(
    in srgb,
    var(--rz-layout-background-color) 98%,
    var(--rz-border-color)
  );
  border-top: 1px solid var(--rz-border-color);
}

.landing-footer-inner[b-v6eqnks6lc] {
  max-width: 1500px;
  margin: 0 auto;
}

.landing-footer-content[b-v6eqnks6lc] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.landing-footer-copy[b-v6eqnks6lc] {
  margin: 0;
  font-size: 0.9rem;
  color: var(--bs-body-color);
  opacity: 0.85;
}

.landing-footer-link[b-v6eqnks6lc] {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--bs-body-color);
  opacity: 0.85;
  text-decoration: none;
  padding: 0.35rem 0.6rem;
  border-radius: 6px;
  transition: opacity 0.2s ease, background 0.2s ease;
}

.landing-footer-link:hover[b-v6eqnks6lc] {
  opacity: 1;
  background: color-mix(in srgb, var(--rz-border-color) 40%, transparent);
}

/* Responsive adjustments */
@media (max-width: 1000px) {
  .navbar-container[b-v6eqnks6lc] {
    padding: 0 1rem 0 1rem;
  }

  .navbar-brand-text[b-v6eqnks6lc],
  .badge-text[b-v6eqnks6lc] {
    font-size: 1rem;
    margin-right: 0.2rem;
  }

  .badge-text[b-v6eqnks6lc] {
    margin-top: 0.2rem;
  }

  .animation-wrapper[b-v6eqnks6lc] {
    position: absolute;
    /* keep it full-bleed */
    inset: 0;
    padding: 0;
    /* remove the mobile padding */
  }

  .animation[b-v6eqnks6lc] {
    border-radius: 0;
    /* optional: keep edges flush */
  }

  .hero-text-container[b-v6eqnks6lc] {
    padding: 2rem !important;
  }

  .hero-text-title[b-v6eqnks6lc] {
    font-size: 3rem;
    margin-bottom: 20rem !important;
  }

  .hero-text-subtitle[b-v6eqnks6lc] {
    font-size: 1rem;
  }

  .hero-CTA-container[b-v6eqnks6lc] {
    margin-bottom: 2rem;
  }

  .hero-CTA-button[b-v6eqnks6lc] {
    font-size: 1rem;
  }

  .landing-features-inner[b-v6eqnks6lc] {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .landing-features-header[b-v6eqnks6lc] {
    margin-bottom: 2rem;
  }

  .landing-feature-card[b-v6eqnks6lc] {
    padding: 1.5rem 1.25rem;
  }

  .landing-cta[b-v6eqnks6lc] {
    padding: 3rem 1rem;
  }

  .landing-footer-content[b-v6eqnks6lc] {
    flex-direction: column;
    text-align: center;
  }
}
/* /Layout/Main.razor.rz.scp.css */
window[b-k29t5abbpz] {
    display: grid;
    grid-template-rows: 5rem calc(100vh - 5rem);
    grid-template-columns: 5.5rem auto;
    grid-template-areas:
        "sideBar header"
        "sideBar main";
}

article[b-k29t5abbpz] {
    position: relative;
    display: flex;
    overflow: auto;
    width: 100%;
    grid-area: main;
}

/* Mobile styles - adjust grid layout for horizontal AppBar */
@media (max-width: 768px) {
    window[b-k29t5abbpz] {
        grid-template-rows: max(4.5rem, calc(3.5rem + env(safe-area-inset-top, 0px))) calc(100vh - max(4.5rem, calc(3.5rem + env(safe-area-inset-top, 0px))) - 4.5rem - env(safe-area-inset-bottom, 0px));
        grid-template-rows: max(4.5rem, calc(3.5rem + env(safe-area-inset-top, 0px))) calc(100dvh - max(4.5rem, calc(3.5rem + env(safe-area-inset-top, 0px))) - 4.5rem - env(safe-area-inset-bottom, 0px));
        grid-template-columns: 1fr;
        grid-template-areas:
            "header"
            "main";
    }

    article[b-k29t5abbpz] {
        padding-bottom: 0;
    }
}
/* /Modules/Admin/Pages/AdminTools.razor.rz.scp.css */
.access-denied-container[b-yderla05fl] {
    padding: 3rem;
}

.access-denied-icon[b-yderla05fl] {
    font-size: 64px;
    color: var(--bs-danger);
    margin-bottom: 1rem;
}

.tool-icon-container[b-yderla05fl] {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tool-icon-container i[b-yderla05fl] {
    font-size: 22px;
}

.tool-icon-primary[b-yderla05fl] {
    background-color: rgba(13, 110, 253, 0.1);
}

.tool-icon-primary i[b-yderla05fl] {
    color: var(--bs-primary);
}

.tool-icon-success[b-yderla05fl] {
    background-color: rgba(25, 135, 84, 0.1);
}

.tool-icon-success i[b-yderla05fl] {
    color: var(--bs-success);
}

.tool-icon-warning[b-yderla05fl] {
    background-color: rgba(255, 193, 7, 0.1);
}

.tool-icon-warning i[b-yderla05fl] {
    color: var(--bs-warning);
}

.tool-icon-info[b-yderla05fl] {
    background-color: rgba(13, 202, 240, 0.1);
}

.tool-icon-info i[b-yderla05fl] {
    color: var(--bs-info);
}

.tool-title[b-yderla05fl] {
    font-weight: 500;
}

.tool-description[b-yderla05fl] {
    margin-bottom: 1rem;
}





/* /Modules/Admin/Pages/StyleGuide.razor.rz.scp.css */
/* ── Colour Swatches ──────────────────────────────────────── */
.sg-swatch[b-dsvgbjgxtt] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 6.5rem;
    height: 5rem;
    border-radius: var(--bs-border-radius);
    padding: 0.25rem 0.375rem;
    color: white;
    font-size: 0.7rem;
    font-weight: 600;
    text-align: center;
    box-shadow: var(--elevation-2);
}

/* ── Grid Demo Cells ──────────────────────────────────────── */
.sg-grid-cell[b-dsvgbjgxtt] {
    background: var(--rz-primary);
    color: var(--rz-white);
    border-radius: var(--bs-border-radius);
    padding: 0.5rem;
    text-align: center;
    font-size: 0.8rem;
    font-weight: 500;
    opacity: 0.85;
}

/* ── Code Blocks ──────────────────────────────────────────── */
.sg-code-block[b-dsvgbjgxtt] {
    background: var(--rz-base-background-color);
    border: 1px solid var(--rz-border-color);
    border-radius: var(--bs-border-radius);
    padding: 0.75rem 1rem;
    overflow-x: auto;
}

.sg-code-block pre[b-dsvgbjgxtt] {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.5;
    white-space: pre;
    color: var(--rz-text-color);
}

/* /Modules/Admin/Tools/GoJS/GoJSDevTool.razor.rz.scp.css */
/* ───── Layout ───── */
.devtool-page[b-5yofkmmols] {
    padding: 20px;
    width: 100%;
    box-sizing: border-box;
}

.devtool-sample[b-5yofkmmols] {
    width: 100%;
}

.devtool-row[b-5yofkmmols] {
    width: 100%;
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

/* ───── Diagram & Palette (always light) ───── */
.devtool-palette[b-5yofkmmols] {
    width: 200px;
    background-color: #f5f5f5;
    border: solid 1px #333;
    border-radius: 4px;
}

.devtool-diagram[b-5yofkmmols] {
    flex-grow: 1;
    height: 620px;
    background-color: #fff;
    border: solid 1px #333;
    border-radius: 4px;
}

/* ───── Panel base (cards that adapt to theme) ───── */
.devtool-panel[b-5yofkmmols] {
    background-color: var(--bs-tertiary-bg);
    border: solid 1px var(--bs-border-color);
    border-radius: 4px;
    padding: 15px;
}

.devtool-panel-title[b-5yofkmmols] {
    margin-top: 0;
    margin-bottom: 15px;
    color: var(--bs-body-color);
}

/* ───── Inspector ───── */
.devtool-inspector-wrapper[b-5yofkmmols] {
    width: 350px;
}

.devtool-inspector[b-5yofkmmols] {
    background-color: var(--bs-body-bg);
    padding: 10px;
    border-radius: 4px;
    border: solid 1px var(--bs-border-color);
    max-height: 580px;
    overflow-y: auto;
}

/* ───── Quick tools ───── */
.devtool-quicktools[b-5yofkmmols] {
    display: none;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
    padding: 10px;
    background-color: var(--bs-tertiary-bg);
    border-radius: 4px;
    border: solid 1px var(--bs-border-color);
    align-items: center;
}

/* ───── Toolbar (Undo / Redo / Save / Load + textarea) ───── */
.devtool-toolbar[b-5yofkmmols] {
    margin-bottom: 20px;
}

.devtool-toolbar-actions[b-5yofkmmols] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

.devtool-btn[b-5yofkmmols] {
    padding: 8px 16px;
    border-radius: 4px;
    border: 1px solid var(--bs-border-color);
    cursor: pointer;
    color: white;
}

.devtool-btn-secondary[b-5yofkmmols] {
    background-color: var(--bs-secondary);
}

.devtool-btn-success[b-5yofkmmols] {
    background-color: forestgreen;
}

.devtool-btn-danger[b-5yofkmmols] {
    background-color: darkred;
}

.devtool-btn-primary[b-5yofkmmols] {
    background-color: #0d6efd;
    font-size: 13px;
}

.devtool-separator[b-5yofkmmols] {
    border-left: 2px solid var(--bs-border-color);
    height: 24px;
}

.devtool-toolbar-label[b-5yofkmmols] {
    color: var(--bs-body-color);
    font-weight: 500;
    margin-left: auto;
}

.devtool-textarea[b-5yofkmmols] {
    width: 100%;
    height: 300px;
    padding: 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 12px;
    resize: vertical;
    box-sizing: border-box;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

/* ───── Plant Schematic Manager ───── */
.devtool-schematic-manager[b-5yofkmmols] {
    background-color: var(--bs-info-bg-subtle);
    border: solid 1px var(--bs-info-border-subtle);
    margin-bottom: 20px;
}

.devtool-schematic-title[b-5yofkmmols] {
    margin-top: 0;
    margin-bottom: 15px;
    color: var(--bs-info-text-emphasis);
}

.devtool-form-row[b-5yofkmmols] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 15px;
    margin-bottom: 15px;
}

.devtool-form-group[b-5yofkmmols] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.devtool-label[b-5yofkmmols] {
    font-size: 12px;
    font-weight: 600;
    color: var(--bs-body-color);
}

.devtool-hint[b-5yofkmmols] {
    color: var(--bs-secondary-color);
    font-weight: 400;
    margin-left: 6px;
}

.devtool-hint strong[b-5yofkmmols] {
    color: var(--bs-info-text-emphasis);
}

.devtool-select[b-5yofkmmols],
.devtool-input[b-5yofkmmols] {
    padding: 6px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 4px;
    font-size: 13px;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.devtool-select-category[b-5yofkmmols] {
    min-width: 320px;
}

.devtool-select-version[b-5yofkmmols] {
    min-width: 280px;
}

.devtool-input-enum[b-5yofkmmols] {
    width: 160px;
}

.devtool-input-description[b-5yofkmmols] {
    width: 100%;
    box-sizing: border-box;
}

.devtool-form-group-grow[b-5yofkmmols] {
    flex: 1;
    min-width: 300px;
}

.devtool-action-row[b-5yofkmmols] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.devtool-loading-text[b-5yofkmmols] {
    color: var(--bs-secondary-color);
    font-size: 13px;
}

.devtool-btn-icon[b-5yofkmmols] {
    font-size: 16px;
    vertical-align: middle;
    margin-right: 4px;
}

/* ───── Tip box ───── */
.devtool-tip[b-5yofkmmols] {
    background-color: var(--bs-warning-bg-subtle);
    padding: 15px;
    border-radius: 4px;
    border: solid 1px var(--bs-warning-border-subtle);
}

.devtool-tip p[b-5yofkmmols] {
    margin: 0;
    color: var(--bs-warning-text-emphasis);
    font-size: 14px;
}

/* ───── Property Checkboxes ───── */
.devtool-property-flags-row[b-5yofkmmols] {
    flex-wrap: wrap;
    gap: 10px 20px;
}

.devtool-label-full[b-5yofkmmols] {
    width: 100%;
    margin-bottom: -4px;
}

.devtool-checkbox-label[b-5yofkmmols] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--bs-body-color);
    cursor: pointer;
    user-select: none;
}

.devtool-checkbox-readonly[b-5yofkmmols] {
    cursor: default;
}

.devtool-check-icon[b-5yofkmmols] {
    font-size: 20px;
}

.devtool-check-on[b-5yofkmmols] {
    color: #0d6efd;
}

.devtool-check-off[b-5yofkmmols] {
    color: var(--bs-secondary);
}

/* ───── Notices ───── */
.devtool-collision-notice[b-5yofkmmols] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background-color: var(--bs-warning-bg-subtle);
    border: 1px solid var(--bs-warning-border-subtle);
    border-radius: 4px;
    font-size: 13px;
    color: var(--bs-warning-text-emphasis);
    margin-bottom: 10px;
}

.devtool-btn-link[b-5yofkmmols] {
    background: none;
    border: none;
    color: #0d6efd;
    cursor: pointer;
    font-size: 13px;
    text-decoration: underline;
    padding: 0;
    margin-left: auto;
    white-space: nowrap;
}

.devtool-btn-link:hover[b-5yofkmmols] {
    color: #0a58ca;
}

.devtool-new-property-notice[b-5yofkmmols] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background-color: var(--bs-success-bg-subtle);
    border: 1px solid var(--bs-success-border-subtle);
    border-radius: 4px;
    font-size: 13px;
    color: var(--bs-success-text-emphasis);
    margin-bottom: 10px;
}

.devtool-columns-note[b-5yofkmmols] {
    font-size: 12px;
    color: var(--bs-secondary-color);
    margin: 0 0 10px 0;
}

/* ───── Preview Modal ───── */
.devtool-modal-overlay[b-5yofkmmols] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
}

.devtool-modal[b-5yofkmmols] {
    background-color: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.devtool-modal-header[b-5yofkmmols] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--bs-border-color);
}

.devtool-modal-title[b-5yofkmmols] {
    margin: 0;
    font-size: 16px;
    color: var(--bs-body-color);
}

.devtool-modal-close[b-5yofkmmols] {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: var(--bs-body-color);
    cursor: pointer;
    padding: 0 4px;
}

.devtool-modal-close:hover[b-5yofkmmols] {
    color: var(--bs-danger);
}

.devtool-modal-body[b-5yofkmmols] {
    padding: 16px;
    overflow: auto;
    min-width: 300px;
    min-height: 200px;
}
/* /Modules/Admin/Tools/RunEngine/RunEngine.razor.rz.scp.css */
.log-container[b-o96tzatxsr] {
    width: 100%;
}

/* Size the console to its contents, capping growth (no fixed minimum height). */
[b-o96tzatxsr] .log-container .rz-listbox {
    height: auto;
    max-height: 300px;
}

/* Radzen applies a column's CssClass to the header cell too; scope wrapping to
   data cells (td) only so long values wrap without wrapping the column headers. */
[b-o96tzatxsr] td.wrap-cell,
[b-o96tzatxsr] td.wrap-cell .rz-cell-data {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
}

/* Simulation Id rendered in monospace so the GUID is easy to scan. */
[b-o96tzatxsr] .sim-id {
    font-family: var(--rz-code-font-family, monospace);
}
/* /Modules/Admin/Tools/RunEngine/WeatherStationTreePicker.razor.rz.scp.css */
.weatherStation-tree-picker[b-zqrh1siz3u] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    position: relative;
}

.weatherStation-tree-picker__label[b-zqrh1siz3u] {
    margin-bottom: 0;
    font-size: 0.875rem;
}

.weatherStation-tree-picker__toggle[b-zqrh1siz3u] {
    gap: 0.5rem;
    text-align: left;
}

.weatherStation-tree-picker__panel[b-zqrh1siz3u] {
    max-height: 20rem;
    overflow-y: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 0.25rem;
    background-color: var(--bs-body-bg);
}

.weatherStation-tree-picker__loading[b-zqrh1siz3u] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.weatherStation-tree-picker__loading-icon[b-zqrh1siz3u] {
    animation: weatherStation-tree-picker-spin-b-zqrh1siz3u 1s linear infinite;
    font-size: 1.1rem;
}

@keyframes weatherStation-tree-picker-spin-b-zqrh1siz3u {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .weatherStation-tree-picker__loading-icon[b-zqrh1siz3u] {
        animation: none;
    }
}
/* /Modules/AdminUser/Pages/CompanyAdmin.razor.rz.scp.css */
.access-denied-container[b-rjr77fi69o] {
    padding: 3rem;
}

.access-denied-icon[b-rjr77fi69o] {
    font-size: 64px;
    color: var(--bs-danger);
    margin-bottom: 1rem;
}

.tool-icon-container[b-rjr77fi69o] {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tool-icon-container i[b-rjr77fi69o] {
    font-size: 22px;
}

.tool-icon-primary[b-rjr77fi69o] {
    background-color: rgba(13, 110, 253, 0.1);
}

.tool-icon-primary i[b-rjr77fi69o] {
    color: var(--bs-primary);
}

.tool-icon-success[b-rjr77fi69o] {
    background-color: rgba(25, 135, 84, 0.1);
}

.tool-icon-success i[b-rjr77fi69o] {
    color: var(--bs-success);
}

.tool-icon-warning[b-rjr77fi69o] {
    background-color: rgba(255, 193, 7, 0.1);
}

.tool-icon-warning i[b-rjr77fi69o] {
    color: var(--bs-warning);
}

.tool-icon-info[b-rjr77fi69o] {
    background-color: rgba(13, 202, 240, 0.1);
}

.tool-icon-info i[b-rjr77fi69o] {
    color: var(--bs-info);
}

.tool-title[b-rjr77fi69o] {
    font-weight: 500;
}

.tool-description[b-rjr77fi69o] {
    margin-bottom: 1rem;
}





/* /Modules/AdminUser/Pages/Components/CompaniesCard.razor.rz.scp.css */
/* RadzenDataGrid row pointer affordance — Companies grid drives master-detail drill-down via "View Users" button.
   Scoped to this component so Users grid (UsersCard) does not inherit pointer cursor.
   N=21 fix: Radzen 6.1.2 renders rows as .rz-selectable tbody tr.rz-data-row; match that selector with !important to override
   Radzen own default cursor styles (.rz-selectable tbody tr.rz-data-row td has higher specificity than bare .rz-data-row). */
[b-o54wrmuhpz] .rz-selectable tbody tr.rz-data-row,
[b-o54wrmuhpz] .rz-selectable tbody tr.rz-data-row td {
    cursor: pointer !important;
}
/* /Modules/Buildings/Pages/Dashboard.razor.rz.scp.css */
.icon-text[b-gx1r7jzvhd] {
    display: flex;
    align-items: center;
    font-size: 60px;
}

.title-content[b-gx1r7jzvhd] {
    display: flex;
    align-items: center;
    font-weight: bold;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
    min-width: 0;
    max-width: 100%;
}

[b-gx1r7jzvhd] .card:hover {
    cursor: pointer;
}
/* /Modules/Buildings/Pages/_Layout.razor.rz.scp.css */

[b-reehuohk3t] .sidebar-kebab {
    display: inline-flex;
    padding: 0;
}

.icon-text[b-reehuohk3t] {
    display: flex;
    padding-right: .5rem;
    align-items: center;
}

span[b-reehuohk3t] {
    display: flex;
}

/* /Modules/Buildings/Revit/Pages/Component/RevitSyncDiffTable.razor.rz.scp.css */
.revit-sync-diff-table[b-zy3mpzrwdx] {
    width: 100%;
    border-collapse: collapse;
}

.revit-sync-diff-table th[b-zy3mpzrwdx],
.revit-sync-diff-table td[b-zy3mpzrwdx] {
    padding: 0.35rem 0.6rem;
    text-align: left;
    border-bottom: 1px solid var(--rz-base-300, var(--bs-border-color));
}

.revit-sync-diff-table thead th[b-zy3mpzrwdx] {
    font-weight: 600;
}

.revit-sync-diff-table tbody th[b-zy3mpzrwdx] {
    font-weight: 500;
    white-space: nowrap;
}
/* /Modules/Buildings/Revit/Pages/Component/RevitSyncStatusDot.razor.rz.scp.css */
.revit-sync-status[b-fdtnneursm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: default;
}

.revit-sync-dot[b-fdtnneursm] {
    width: 8px;
    height: 8px;
    min-width: 8px;
    border-radius: 50%;
    display: inline-block;
}

/* --rz-success / --rz-warning / --rz-danger are the theme's semantic tokens; kept visually
   distinct at 8px per the TRN-7332 POC (amber vs. red are not swapped for a closer pair). */
.revit-sync-dot--synced[b-fdtnneursm] {
    background-color: var(--rz-success);
}

.revit-sync-dot--model-changed[b-fdtnneursm] {
    background-color: var(--rz-warning);
}

.revit-sync-dot--different-project[b-fdtnneursm] {
    background-color: var(--rz-danger);
}

.revit-sync-dot--not-linked[b-fdtnneursm] {
    background-color: var(--rz-text-tertiary-color);
}

.revit-sync-dot--loading[b-fdtnneursm] {
    background-color: var(--rz-text-tertiary-color);
    animation: revit-sync-dot-pulse-b-fdtnneursm 1.2s ease-in-out infinite;
}

/* Subtle pulse on the existing colored dot while a hover-triggered re-check is in flight (see
   TRN-7350) - unlike --loading, this must not replace the dot markup, since the open tooltip's
   anchor element has to stay mounted for the pop-over to reposition correctly on refresh. */
.revit-sync-dot--refreshing[b-fdtnneursm] {
    animation: revit-sync-dot-pulse-b-fdtnneursm 1.2s ease-in-out infinite;
}

@keyframes revit-sync-dot-pulse-b-fdtnneursm {
    0%, 100% {
        opacity: 0.35;
    }

    50% {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .revit-sync-dot--loading[b-fdtnneursm], .revit-sync-dot--refreshing[b-fdtnneursm] {
        animation: none;
    }
}
/* /Modules/Buildings/Revit/Pages/Component/RevitSyncStatusTooltipContent.razor.rz.scp.css */
/* Rich hover pop-over content for the Revit sync status dot (TRN-5210). Rendered via
   TooltipService.Open, so this markup is portalled outside RevitSyncStatusDot's own DOM
   subtree — Blazor's CSS isolation still applies because the scope attribute travels with
   the elements the component renders, regardless of where TooltipService reparents them. */

.revit-sync-tooltip[b-wq40vr5hzz] {
  width: 300px;
  font-size: 12.5px;
  color: var(--rz-text-color, #201f1e);
  /* Radzen's .rz-tooltip-content sets white-space: nowrap for its default single-line
     tooltips; override it here so our multi-line content actually wraps at 300px. */
  white-space: normal;
  overflow-wrap: break-word;
}

.revit-sync-tooltip__badge[b-wq40vr5hzz] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}

.revit-sync-tooltip__badge--success[b-wq40vr5hzz] {
  background: color-mix(in srgb, var(--rz-success) 15%, transparent);
  color: var(--rz-success);
}

.revit-sync-tooltip__badge--warning[b-wq40vr5hzz] {
  background: color-mix(in srgb, var(--rz-warning) 15%, transparent);
  color: var(--rz-warning);
}

.revit-sync-tooltip__badge--danger[b-wq40vr5hzz] {
  background: color-mix(in srgb, var(--rz-danger) 15%, transparent);
  color: var(--rz-danger);
}

.revit-sync-tooltip__badge--muted[b-wq40vr5hzz] {
  background: var(--rz-grid-stripe-background-color, #fafafa);
  color: var(--rz-text-tertiary-color, #8a8886);
}

.revit-sync-tooltip__divider[b-wq40vr5hzz] {
  border-top: 1px dashed var(--rz-border-base-700, #edebe9);
  margin: 8px 0;
}

.revit-sync-tooltip__section-label[b-wq40vr5hzz] {
  font-size: 10px;
  color: var(--rz-text-tertiary-color, #8a8886);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}

.revit-sync-tooltip__kv[b-wq40vr5hzz] {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 10px;
}

.revit-sync-tooltip__k[b-wq40vr5hzz] {
  color: var(--rz-text-secondary-color, #605e5c);
}

.revit-sync-tooltip__v[b-wq40vr5hzz] {
  font-weight: 600;
  text-align: right;
  /* Grid columns default to a min-width of auto (max-content), which lets long unbroken
     values like a Revit/EpJSON file name overflow past the tooltip's edge instead of
     wrapping. Force the track to respect its width so overflow-wrap can actually kick in. */
  min-width: 0;
  overflow-wrap: break-word;
}

/* Color is never the only signal — the differing rows are also called out by the section's
   badge text and (in the confirmation dialog) an explicit "changed" state, per WCAG 2.2 AA. */
.revit-sync-tooltip__v--warning[b-wq40vr5hzz] {
  color: var(--rz-warning);
}

.revit-sync-tooltip__v--danger[b-wq40vr5hzz] {
  color: var(--rz-danger);
}

.revit-sync-tooltip__note[b-wq40vr5hzz] {
  color: var(--rz-text-secondary-color, #605e5c);
  margin: 0;
}
/* /Modules/Buildings/Revit/Pages/RevitBuilding.razor.rz.scp.css */
/* Space Properties — custom collapsible panel
   Replaces the previous RadzenPanel so the header (chevron + Name / # editors)
   and the body (4-column property grid) both align cleanly within the 60% width
   shared with the Highlight toolbar above. */
.space-props-panel[b-7zqlzzkavn] {
    width: 60%;
    border: 1px solid var(--rz-border-color, #ccc);
    border-radius: var(--rz-card-border-radius, 4px);
    background: var(--rz-base-background-color, transparent);
    overflow: hidden;
}

.space-props-header[b-7zqlzzkavn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0.5rem 0.75rem;
    background: var(--rz-panel-titlebar-background-color, transparent);
}

.space-props-title-group[b-7zqlzzkavn] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.space-props-toggle[b-7zqlzzkavn] {
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    color: inherit;
}

.space-props-toggle .material-symbols-outlined[b-7zqlzzkavn] {
    font-size: 18px;
    line-height: 1;
}

.space-props-title[b-7zqlzzkavn] {
    font-weight: 600;
    font-size: 0.9em;
    margin: 0;
}

.space-props-divider[b-7zqlzzkavn] {
    border-left: 1px solid var(--rz-border-color, #ccc);
    height: 20px;
}

.space-props-field[b-7zqlzzkavn] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.space-props-field-label[b-7zqlzzkavn] {
    font-size: 0.85em;
    color: var(--rz-text-color);
}

.space-props-body[b-7zqlzzkavn] {
    padding: 0.5rem 0.75rem;
    border-top: 1px solid var(--rz-border-color, #ccc);
}

/* 4 equal-width columns that fill the available width of the panel.
   Each "row" returned by GetRoomPropertiesData() emits 4 cells, so auto-flow
   keeps subsequent rows aligned underneath the first. */
.space-props-grid[b-7zqlzzkavn] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem 1rem;
    width: 100%;
}

.space-props-cell[b-7zqlzzkavn] {
    display: flex;
    flex-direction: column;
    min-width: 0; /* allow long values to wrap/truncate instead of stretching the column */
}

.space-props-cell-label[b-7zqlzzkavn] {
    font-size: 0.85em;
    font-weight: bold;
}

/* /Modules/Buildings/Revit/Pages/_Layout.razor.rz.scp.css */

[b-0p78m6cfmu] .sidebar-kebab {
    display: inline-flex;
    padding: 0;
}

.icon-text[b-0p78m6cfmu] {
    display: flex;
    padding-right: .5rem;
    align-items: center;
}

span[b-0p78m6cfmu] {
    display: flex;
}

.resizable-menu[b-0p78m6cfmu] {
    display: flex;
    flex-direction: row;
    height: 100%;
    min-width: 200px;
    max-width: 600px;
    position: relative;
}

.resizable-menu[b-0p78m6cfmu]  .side-menu-wrap {
    flex: 1;
    overflow: hidden;
    min-width: 0;
}

.resize-handle[b-0p78m6cfmu] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    cursor: col-resize;
    background: var(--rz-base-200, #e0e0e0);
    border-left: 1px solid var(--rz-base-300, #ccc);
    transition: background 0.15s;
    user-select: none;
    flex-shrink: 0;
}

.resize-handle:hover[b-0p78m6cfmu] {
    background: var(--rz-base-300, #ccc);
}

.resize-icon[b-0p78m6cfmu] {
    font-size: 16px;
    color: var(--rz-text-secondary-color, #666);
    display: flex !important;
}
/* /Modules/Calculate/Pages/Calculate.razor.rz.scp.css */
.calculate-table-wrapper[b-jpoix5fbfv] {
    font-size: 0.875rem;
}

.last-updated-cell[b-jpoix5fbfv] {
    min-width: 22ch;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.job-run-status-cell[b-jpoix5fbfv] {
    min-width: 24ch;
    white-space: nowrap;
}
/* /Modules/Core/Pages/Login.razor.rz.scp.css */
.card[b-a9hgny1mn8] {
    width: 380px;
    max-width: calc(100vw - 2rem);
}
/* /Modules/Economics/Pages/Component/OverviewTab.razor.rz.scp.css */
.icon-text[b-dgx4isuwy4] {
    display: flex;
    align-items: center;
    font-size: 60px;
}

.title-content[b-dgx4isuwy4] {
    display: flex;
    align-items: center;
    font-weight: bold;
}

[b-dgx4isuwy4] .card:hover {
    cursor: pointer;
}
/* /Modules/Economics/Pages/Component/SteppedRateCard.razor.rz.scp.css */
/* CSS for SteppedRateCard component */
/* Suppress all pointer interaction and hover feedback on disabled Radzen buttons
   inside the TraceDataGrid (e.g. the delete button when only one row remains).
   ::deep is required to pierce the child component boundary. */
[b-3qtb7jww3w] button[disabled],
[b-3qtb7jww3w] .rz-state-disabled {
    pointer-events: none !important;
    cursor: default !important;
}
/* /Modules/Economics/Pages/Costs.razor.rz.scp.css */
/* Wrapper for each cost cell — needed for fill-handle absolute positioning */
.cost-drag-cell[b-d7wxnm737r] {
    position: relative;
    width: 100%;
    border-radius: var(--rz-input-border-radius);
    border: var(--rz-input-border);
    transition: var(--rz-input-transition);
    cursor: pointer;
}

/* Hover state: primary-light border matching the outlined input hover behavior */
.cost-drag-cell:hover[b-d7wxnm737r] {
    border: var(--rz-input-hover-border);
}

/* Selected state: primary-light border + focus ring matching the outlined input focus behavior */
.cost-drag-cell.selected[b-d7wxnm737r] {
    border: var(--rz-input-focus-border);
    box-shadow: var(--rz-input-focus-shadow);
}

/* Keep the selected focus ring visible when also hovering */
.cost-drag-cell.selected:hover[b-d7wxnm737r] {
    border: var(--rz-input-focus-border);
    box-shadow: var(--rz-input-focus-shadow);
}

/* Excel-style fill handle: small square pinned to the bottom-right corner */
.cost-fill-handle[b-d7wxnm737r] {
    position: absolute;
    bottom: -3px;
    right: -3px;
    width: 7px;
    height: 7px;
    background-color: var(--rz-primary);
    cursor: crosshair;
    opacity: 0;
    transition: opacity 0.1s ease;
    z-index: 5;
    border-radius: 1px;
}

/* Reveal the fill handle when the cell is hovered or is the active drag source */
.cost-drag-cell:hover .cost-fill-handle[b-d7wxnm737r],
.cost-drag-cell.drag-source .cost-fill-handle[b-d7wxnm737r] {
    opacity: 1;
}

/* Source cell: focus border + ring, same as selected */
.cost-drag-cell.drag-source[b-d7wxnm737r] {
    border: var(--rz-input-focus-border);
    box-shadow: var(--rz-input-focus-shadow);
}

/* Cells inside the fill range: hover-level border */
.cost-drag-cell.in-range[b-d7wxnm737r] {
    border: var(--rz-input-hover-border);
}

/* Year / Total columns — match disabled input colour */
.costs-grid-wrapper[b-d7wxnm737r]  .col-readonly {
    color: var(--rz-text-disabled-color) !important;
}

/* Editable value columns — match active input text colour */
.costs-grid-wrapper[b-d7wxnm737r]  .col-editable {
    color: var(--rz-input-value-color) !important;
}
/* /Modules/Economics/Pages/_Layout.razor.rz.scp.css */

[b-dkn53e8xcu] .sidebar-kebab {
    display: inline-flex;
    padding: 0;
}

.icon-text[b-dkn53e8xcu] {
    display: flex;
    padding-right: 0.5rem;
    align-items: center;
}

span[b-dkn53e8xcu] {
    display: flex;
}


/* /Modules/Library/Pages/Components/ConstructionCard.razor.rz.scp.css */
.window-details-header h2[b-6gj3mm6far] {
    margin: 0;
    color: var(--rz-text-color);
    font-size: 1.1rem;
    font-weight: 700;
}

.window-details-header p[b-6gj3mm6far] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
}

.window-configuration-card-body[b-6gj3mm6far] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-width: 0;
}
    display: grid;
    gap: 0.65rem;[b-6gj3mm6far]
}

.library-editor-readonly-field[b-6gj3mm6far] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.library-editor-readonly-field span[b-6gj3mm6far] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.library-editor-readonly-field strong[b-6gj3mm6far] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.window-details-divider[b-6gj3mm6far] {
    border-bottom: 1px solid var(--rz-border-color);
}

.window-layer-direction[b-6gj3mm6far] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.window-layer-direction i[b-6gj3mm6far] {
    font-size: 1rem;
}

.window-layer-direction[b-6gj3mm6far]  .material-symbols-outlined {
    font-size: 1rem;
}

.window-layer-list[b-6gj3mm6far] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.window-layer-card[b-6gj3mm6far] {
    border: var(--library-card-outline, 1px solid var(--library-card-border, var(--rz-border-color)));
    border-radius: var(--library-card-radius, var(--rz-card-border-radius));
    background: var(--library-card-bg, var(--rz-base-background-color));
    box-shadow: var(--library-card-shadow, var(--rz-shadow-2, 0 0.125rem 0.5rem rgba(0, 0, 0, 0.12)));
    padding: 0.8rem;
}

.window-layer-card-header[b-6gj3mm6far] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
}

.window-layer-number[b-6gj3mm6far] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--rz-primary) 16%, var(--library-control-bg, var(--rz-base-background-color)));
    color: var(--rz-primary);
    font-size: 1rem;
    font-weight: 800;
}

.window-layer-title[b-6gj3mm6far] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
}

.window-layer-title span[b-6gj3mm6far] {
    color: var(--rz-text-secondary-color);
    font-size: 0.85rem;
}

.window-layer-title strong[b-6gj3mm6far] {
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.window-layer-preview[b-6gj3mm6far] {
    display: grid;
    gap: 0.65rem;
    margin: 1rem 0 0;
    border-top: 1px solid var(--rz-border-color);
    padding-top: 0.9rem;
}

.window-layer-preview-empty[b-6gj3mm6far] {
    margin: 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.875rem;
}

@media (max-width: 540px) {
    .window-layer-card-header[b-6gj3mm6far] {
        grid-template-columns: auto minmax(0, 1fr);
    }
}
/* /Modules/Library/Pages/Components/ConstructionEditorPanel.razor.rz.scp.css */
.library-object-editor[b-7hj0c0kpfn] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-card-header-bg: var(--bs-card-cap-bg, transparent);
    --library-muted-bg: var(--bs-tertiary-bg, var(--rz-base-100));
    --library-control-bg: var(--bs-body-bg, var(--rz-base-background-color));
    --library-control-hover-bg: var(--bs-tertiary-bg, var(--rz-base-hover-color));
    display: grid;
    grid-template-columns: minmax(19rem, 28rem) minmax(26rem, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

.library-object-identification-panel[b-7hj0c0kpfn] {
    min-width: 0;
}

/* Shared card chrome applied to both editor cards via .library-editor-card, defined once on the
   editor grid that owns the --library-card-* tokens. */
.library-object-editor[b-7hj0c0kpfn]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.library-object-editor[b-7hj0c0kpfn]  .library-editor-card > .card-header {
    border-bottom: var(--library-card-outline);
    background: var(--library-card-header-bg);
    padding: 0.9rem 1rem 0.8rem;
}

.library-object-editor[b-7hj0c0kpfn]  .library-editor-card > .card-body {
    padding: 0.85rem;
}

.library-object-card-title[b-7hj0c0kpfn] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    width: 100%;
}

.library-object-card-title[b-7hj0c0kpfn]  .library-object-title-content {
    min-width: 0;
    flex: 1 1 auto;
}

.library-object-card-title[b-7hj0c0kpfn]  .rz-button {
    flex: 0 0 auto;
}

.library-object-identification-card-body[b-7hj0c0kpfn] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-width: 0;
}

.library-object-heading[b-7hj0c0kpfn] {
    margin-top: 0.45rem;
    min-width: 0;
}

.library-object-title-row[b-7hj0c0kpfn] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.library-object-title-row h1[b-7hj0c0kpfn] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1.15rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.library-object-heading p[b-7hj0c0kpfn] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 600;
}

.library-object-image-panel[b-7hj0c0kpfn] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    aspect-ratio: 16 / 9;
    max-height: 12.25rem;
    overflow: hidden;
    border: 1px solid var(--library-card-border);
    border-radius: var(--library-card-radius);
    background: var(--library-muted-bg);
    padding: 0.65rem;
    user-select: none;
}

.library-object-image-panel[b-7hj0c0kpfn]  .trace-image-container,
.library-object-image-panel[b-7hj0c0kpfn]  .trace-image {
    width: 100% !important;
    height: 100% !important;
    border: 0;
    background: transparent;
}

.library-object-image-panel[b-7hj0c0kpfn]  img.trace-image {
    object-fit: contain;
    -webkit-user-drag: none;
    user-select: none;
}

.library-object-image-panel[b-7hj0c0kpfn]  .trace-image-edit-icon {
    visibility: visible;
    /* Anchor to the container's bottom-right corner. Without explicit offsets the absolutely
       positioned icon falls at its static position below the 100%-height image, pushing its button
       outside the panel where overflow:hidden clips it away (making the upload control invisible). */
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
}

.library-object-image-panel[b-7hj0c0kpfn]  .trace-image-edit-icon .btn {
    right: 0.5rem;
    bottom: 0.5rem;
    left: auto;
    border: 0;
    border-radius: 999px;
}

@media (max-width: 1500px) {
    .library-object-editor[b-7hj0c0kpfn] {
        grid-template-columns: minmax(18rem, 26rem) minmax(24rem, 1fr);
    }
}

@media (max-width: 1200px) {
    .library-object-editor[b-7hj0c0kpfn] {
        grid-template-columns: 1fr;
    }
}
/* /Modules/Library/Pages/Components/ConstructionLayerSidebar.razor.rz.scp.css */
.window-configuration-sidebar[b-8fh9x8ezaw] {
    align-self: stretch;
    box-sizing: border-box;
    min-width: 0;
}

.window-configuration-card-body[b-8fh9x8ezaw] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-width: 0;
}

.window-details-header h2[b-8fh9x8ezaw] {
    margin: 0;
    color: var(--rz-text-color);
    font-size: 1.1rem;
    font-weight: 700;
}

.window-details-header p[b-8fh9x8ezaw] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
}

.window-subcomponent-selector[b-8fh9x8ezaw] {
    display: grid;
    gap: 0.65rem;
}

.window-details-divider[b-8fh9x8ezaw] {
    border-bottom: 1px solid var(--rz-border-color);
}

.window-layer-direction[b-8fh9x8ezaw] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.window-layer-direction i[b-8fh9x8ezaw] {
    font-size: 1rem;
}

.window-layer-direction[b-8fh9x8ezaw]  .material-symbols-outlined {
    font-size: 1rem;
}

.window-layer-list[b-8fh9x8ezaw] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.window-layer-card[b-8fh9x8ezaw] {
    border: var(--library-card-outline, 1px solid var(--library-card-border, var(--rz-border-color)));
    border-radius: var(--library-card-radius, var(--rz-card-border-radius));
    background: var(--library-card-bg, var(--rz-base-background-color));
    box-shadow: var(--library-card-shadow, var(--rz-shadow-2, 0 0.125rem 0.5rem rgba(0, 0, 0, 0.12)));
    padding: 0.8rem;
}

.window-layer-card-header[b-8fh9x8ezaw] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 0.6rem;
    align-items: center;
}

.window-layer-number[b-8fh9x8ezaw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--rz-primary) 16%, var(--library-control-bg, var(--rz-base-background-color)));
    color: var(--rz-primary);
    font-size: 1rem;
    font-weight: 800;
}

.window-layer-title[b-8fh9x8ezaw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
}

.window-layer-title span[b-8fh9x8ezaw] {
    color: var(--rz-text-secondary-color);
    font-size: 0.85rem;
}

.window-layer-title strong[b-8fh9x8ezaw] {
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.window-layer-preview[b-8fh9x8ezaw] {
    display: grid;
    gap: 0.65rem;
    margin: 1rem 0 0.9rem;
    border-top: 1px solid var(--rz-border-color);
    padding-top: 0.9rem;
}

.window-layer-preview-empty[b-8fh9x8ezaw] {
    margin: 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.875rem;
}

.window-layer-footer[b-8fh9x8ezaw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-radius: var(--library-card-radius, var(--rz-card-border-radius));
    background: var(--library-muted-bg, var(--rz-base-100));
    padding: 0.55rem 0.7rem;
}

.window-layer-material-type[b-8fh9x8ezaw] {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--rz-text-color);
    font-weight: 700;
}

.window-layer-material-type span[b-8fh9x8ezaw] {
    width: 1.15rem;
    height: 1.15rem;
    border: 1px solid var(--rz-border-color);
    border-radius: 50%;
    background: linear-gradient(135deg, var(--library-control-bg, var(--rz-base-background-color)), color-mix(in srgb, var(--rz-primary) 20%, var(--library-control-bg, var(--rz-base-background-color))));
}

.window-layer-actions[b-8fh9x8ezaw] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

[b-8fh9x8ezaw] .window-add-layer-button {
    width: 100%;
    margin-top: auto;
}

@media (max-width: 540px) {
    .window-configuration-sidebar[b-8fh9x8ezaw] {
        padding: 1rem;
    }

    .window-layer-card-header[b-8fh9x8ezaw] {
        grid-template-columns: auto minmax(0, 1fr);
    }
}
/* /Modules/Library/Pages/Components/CreateGlassDialog.razor.rz.scp.css */
/* Dialog shell only. The Glass form's own styles live in GlassEditorForm.razor.css so the extracted
   form renders identically here and in the New Item editor's Glass panel (Blazor CSS isolation is
   per-component, so form rules must travel with the form's markup). */
.create-glass-dialog[b-cxgabw9x43] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: stretch;
}
/* /Modules/Library/Pages/Components/CreateOpaqueMaterialDialog.razor.rz.scp.css */
/* Dialog shell only. The Air Gap form's own styles live in MaterialAirGapEditorForm.razor.css so the
   extracted form renders identically here and in the New Item editor (Blazor CSS isolation is
   per-component, so form rules must travel with the form's markup). */
.create-opaque-material-dialog[b-t4rkai4ic5] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: stretch;
}
/* /Modules/Library/Pages/Components/DetailedGlazingEditorForm.razor.rz.scp.css */
.create-glazing-form[b-d3r7p4379f] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-glazing-section[b-d3r7p4379f] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-glazing-section-title[b-d3r7p4379f] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-glazing-field[b-d3r7p4379f] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Match the Name/Source placeholder color to the Description textarea's
   (unstyled) placeholder, since the themed input placeholder color otherwise
   differs from the browser-default textarea placeholder color. */
[b-d3r7p4379f] input[name="CreateGlazingName"]::placeholder,
[b-d3r7p4379f] input[name="CreateGlazingSource"]::placeholder {
    color: revert;
}

.create-glazing-metadata-grid[b-d3r7p4379f] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-glazing-readonly-field[b-d3r7p4379f] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-glazing-readonly-field span[b-d3r7p4379f] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-glazing-readonly-field strong[b-d3r7p4379f] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-glazing-icon-value[b-d3r7p4379f] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-glazing-icon-value i[b-d3r7p4379f] {
    font-size: 1.15rem;
}

.create-glazing-divider[b-d3r7p4379f] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-glazing-form[b-d3r7p4379f]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-glazing-metadata-grid[b-d3r7p4379f] {
        grid-template-columns: 1fr;
    }
}

/* /Modules/Library/Pages/Components/DetailedGlazingEditorPanel.razor.rz.scp.css */
/* Detailed Glazing New Item panel. The card chrome and heading deliberately mirror
   ConstructionEditorPanel.razor.css so all New Item flows look identical. These rules must be repeated
   here because Blazor CSS isolation scopes the construction rules to that component only:
   DetailedGlazingEditorPanel reuses the same class names but receives none of construction's scoped
   styling, so without these rules the container has no card chrome and no width constraint. The editor
   layout differs from construction on purpose: a Detailed Glazing material has no image slot or layer
   sidebar, so this is a single column instead of the two-column identification/layers grid. */

.library-object-editor[b-bs555qlmpn] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-card-header-bg: var(--bs-card-cap-bg, transparent);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.library-object-identification-panel[b-bs555qlmpn] {
    min-width: 0;
}

/* Shared card chrome applied to the identification card via .library-editor-card, defined on the
   editor grid that owns the --library-card-* tokens. */
.library-object-editor[b-bs555qlmpn]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.library-object-editor[b-bs555qlmpn]  .library-editor-card > .card-header {
    border-bottom: var(--library-card-outline);
    background: var(--library-card-header-bg);
    padding: 0.9rem 1rem 0.8rem;
}

.library-object-editor[b-bs555qlmpn]  .library-editor-card > .card-body {
    padding: 0.85rem;
}

.library-object-card-title[b-bs555qlmpn] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    width: 100%;
}

.library-object-card-title[b-bs555qlmpn]  .library-object-title-content {
    min-width: 0;
    flex: 1 1 auto;
}

.library-object-heading[b-bs555qlmpn] {
    margin-top: 0.45rem;
    min-width: 0;
}

.library-object-title-row[b-bs555qlmpn] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.library-object-title-row h1[b-bs555qlmpn] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1.15rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.library-object-heading p[b-bs555qlmpn] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 600;
}
/* /Modules/Library/Pages/Components/GasEditorForm.razor.rz.scp.css */
.create-gas-form[b-vsmhspzl1x] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-gas-section[b-vsmhspzl1x] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-gas-section-title[b-vsmhspzl1x] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-gas-field[b-vsmhspzl1x] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Match the Name/Source placeholder color to the Description textarea's
   (unstyled) placeholder, since the themed input placeholder color otherwise
   differs from the browser-default textarea placeholder color. */
[b-vsmhspzl1x] input[name="CreateGasName"]::placeholder,
[b-vsmhspzl1x] input[name="CreateGasSource"]::placeholder {
    color: revert;
}

.create-gas-metadata-grid[b-vsmhspzl1x] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-gas-readonly-field[b-vsmhspzl1x] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-gas-readonly-field span[b-vsmhspzl1x] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-gas-readonly-field strong[b-vsmhspzl1x] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-gas-icon-value[b-vsmhspzl1x] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-gas-icon-value i[b-vsmhspzl1x] {
    font-size: 1.15rem;
}

.create-gas-divider[b-vsmhspzl1x] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-gas-hint[b-vsmhspzl1x] {
    margin: 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.85rem;
}

.create-gas-form[b-vsmhspzl1x]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-gas-metadata-grid[b-vsmhspzl1x] {
        grid-template-columns: 1fr;
    }
}

/* /Modules/Library/Pages/Components/GasMixtureEditorForm.razor.rz.scp.css */
.create-gas-mixture-form[b-3nstkshnmo] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-gas-mixture-section[b-3nstkshnmo] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-gas-mixture-section-title[b-3nstkshnmo] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-gas-mixture-field[b-3nstkshnmo] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Match the Name/Source placeholder color to the Description textarea's
   (unstyled) placeholder, since the themed input placeholder color otherwise
   differs from the browser-default textarea placeholder color. */
[b-3nstkshnmo] input[name="CreateGasMixtureName"]::placeholder,
[b-3nstkshnmo] input[name="CreateGasMixtureSource"]::placeholder {
    color: revert;
}

.create-gas-mixture-metadata-grid[b-3nstkshnmo] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-gas-mixture-readonly-field[b-3nstkshnmo] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-gas-mixture-readonly-field span[b-3nstkshnmo] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-gas-mixture-readonly-field strong[b-3nstkshnmo] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-gas-mixture-icon-value[b-3nstkshnmo] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-gas-mixture-icon-value i[b-3nstkshnmo] {
    font-size: 1.15rem;
}

.create-gas-mixture-divider[b-3nstkshnmo] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-gas-mixture-hint[b-3nstkshnmo] {
    margin: 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.85rem;
}

.create-gas-mixture-hint--warning[b-3nstkshnmo] {
    color: var(--rz-warning);
    font-weight: 600;
}

.create-gas-mixture-form[b-3nstkshnmo]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-gas-mixture-metadata-grid[b-3nstkshnmo] {
        grid-template-columns: 1fr;
    }
}

/* /Modules/Library/Pages/Components/GlassEditorForm.razor.rz.scp.css */
.create-glass-form[b-jqztu8bqey] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-glass-section[b-jqztu8bqey] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-glass-section-title[b-jqztu8bqey] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-glass-field[b-jqztu8bqey] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Match the Name/Source placeholder color to the Description textarea's
   (unstyled) placeholder, since the themed input placeholder color otherwise
   differs from the browser-default textarea placeholder color. */
[b-jqztu8bqey] input[name="CreateGlassName"]::placeholder,
[b-jqztu8bqey] input[name="CreateGlassSource"]::placeholder {
    color: revert;
}

.create-glass-metadata-grid[b-jqztu8bqey] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-glass-readonly-field[b-jqztu8bqey] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-glass-readonly-field span[b-jqztu8bqey] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-glass-readonly-field strong[b-jqztu8bqey] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-glass-icon-value[b-jqztu8bqey] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-glass-icon-value i[b-jqztu8bqey] {
    font-size: 1.15rem;
}

.create-glass-divider[b-jqztu8bqey] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-glass-form[b-jqztu8bqey]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-glass-metadata-grid[b-jqztu8bqey] {
        grid-template-columns: 1fr;
    }
}
/* /Modules/Library/Pages/Components/GlassEditorPanel.razor.rz.scp.css */
/* Glass New Item panel. The card chrome, heading, image slot, and card body deliberately mirror
   ConstructionEditorPanel.razor.css so both New Item flows look identical. These rules must be
   repeated here because Blazor CSS isolation scopes the construction rules to that component only:
   GlassEditorPanel reuses the same class names but receives none of construction's scoped styling,
   so without these rules the container has no card chrome, no width constraint, and the image slot
   renders unstyled. The editor layout differs from construction on purpose: a Glass material has no
   layer sidebar, so this is a single column instead of the two-column identification/layers grid. */

.library-object-editor[b-zks3bdmqsi] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-card-header-bg: var(--bs-card-cap-bg, transparent);
    --library-muted-bg: var(--bs-tertiary-bg, var(--rz-base-100));
    --library-control-bg: var(--bs-body-bg, var(--rz-base-background-color));
    --library-control-hover-bg: var(--bs-tertiary-bg, var(--rz-base-hover-color));
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.library-object-identification-panel[b-zks3bdmqsi] {
    min-width: 0;
}

/* Shared card chrome applied to the identification card via .library-editor-card, defined on the
   editor grid that owns the --library-card-* tokens. */
.library-object-editor[b-zks3bdmqsi]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.library-object-editor[b-zks3bdmqsi]  .library-editor-card > .card-header {
    border-bottom: var(--library-card-outline);
    background: var(--library-card-header-bg);
    padding: 0.9rem 1rem 0.8rem;
}

.library-object-editor[b-zks3bdmqsi]  .library-editor-card > .card-body {
    padding: 0.85rem;
}

.library-object-card-title[b-zks3bdmqsi] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    width: 100%;
}

.library-object-card-title[b-zks3bdmqsi]  .library-object-title-content {
    min-width: 0;
    flex: 1 1 auto;
}

.library-object-card-title[b-zks3bdmqsi]  .rz-button {
    flex: 0 0 auto;
}

.library-object-identification-card-body[b-zks3bdmqsi] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-width: 0;
}

.library-object-heading[b-zks3bdmqsi] {
    margin-top: 0.45rem;
    min-width: 0;
}

.library-object-title-row[b-zks3bdmqsi] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.library-object-title-row h1[b-zks3bdmqsi] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1.15rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.library-object-heading p[b-zks3bdmqsi] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 600;
}

.library-object-image-panel[b-zks3bdmqsi] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    aspect-ratio: 16 / 9;
    max-height: 12.25rem;
    overflow: hidden;
    border: 1px solid var(--library-card-border);
    border-radius: var(--library-card-radius);
    background: var(--library-muted-bg);
    padding: 0.65rem;
    user-select: none;
}

.library-object-image-panel[b-zks3bdmqsi]  .trace-image-container,
.library-object-image-panel[b-zks3bdmqsi]  .trace-image {
    width: 100% !important;
    height: 100% !important;
    border: 0;
    background: transparent;
}

.library-object-image-panel[b-zks3bdmqsi]  img.trace-image {
    object-fit: contain;
    -webkit-user-drag: none;
    user-select: none;
}

.library-object-image-panel[b-zks3bdmqsi]  .trace-image-edit-icon {
    visibility: visible;
    /* Anchor to the container's bottom-right corner. Without explicit offsets the absolutely
       positioned icon falls at its static position below the 100%-height image, pushing its button
       outside the panel where overflow:hidden clips it away (making the upload control invisible). */
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
}

.library-object-image-panel[b-zks3bdmqsi]  .trace-image-edit-icon .btn {
    right: 0.5rem;
    bottom: 0.5rem;
    left: auto;
    border: 0;
    border-radius: 999px;
}
/* /Modules/Library/Pages/Components/GlazingCreateChoiceDialog.razor.rz.scp.css */
.glazing-create-choice[b-782lt3k1qt] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: stretch;
}

.glazing-create-choice-options[b-782lt3k1qt] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}
/* /Modules/Library/Pages/Components/GlazingModelChoicePanel.razor.rz.scp.css */
/* Glazing model choice panel. Card chrome mirrors GlassEditorPanel/ConstructionEditorPanel so the
   entry point looks consistent with the rest of the New Item flow; these rules are repeated here
   because Blazor CSS isolation scopes them per-component. */

.glazing-model-choice[b-ddlnjtrg33] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-control-hover-bg: var(--bs-tertiary-bg, var(--rz-base-hover-color));
}

.glazing-model-choice[b-ddlnjtrg33]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.glazing-model-choice[b-ddlnjtrg33]  .library-editor-card > .card-body {
    padding: 1rem;
}

.glazing-model-choice-card h1[b-ddlnjtrg33] {
    margin: 0 0 0.25rem;
    font-size: 1.15rem;
    font-weight: 700;
}

.glazing-model-choice-card p.text-secondary[b-ddlnjtrg33] {
    margin: 0 0 1rem;
}

.glazing-model-choice-options[b-ddlnjtrg33] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1rem;
}

.glazing-model-choice-option[b-ddlnjtrg33] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: transparent;
    padding: 1rem;
    text-align: left;
    cursor: pointer;
    color: var(--rz-text-color);
}

.glazing-model-choice-option:hover:not(:disabled)[b-ddlnjtrg33],
.glazing-model-choice-option:focus-visible[b-ddlnjtrg33] {
    background: var(--library-control-hover-bg);
}

.glazing-model-choice-option:disabled[b-ddlnjtrg33] {
    cursor: not-allowed;
    opacity: 0.6;
}

.glazing-model-choice-option-title[b-ddlnjtrg33] {
    font-weight: 700;
}

.glazing-model-choice-option-description[b-ddlnjtrg33] {
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
}
/* /Modules/Library/Pages/Components/LayerMaterialOptionCard.razor.rz.scp.css */
.glazing-preview-metrics[b-fud3tc3ypr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.35rem 1.5rem;
    margin: 0;
}

.glazing-preview-metric[b-fud3tc3ypr] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.glazing-preview-metric-label[b-fud3tc3ypr] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
    color: var(--rz-text-secondary-color);
}

/* The compact label is an <abbr> so the full metric name is available to screen readers and as a
   hover tooltip; suppress the browser's default dotted underline to preserve the prior plain-text look. */
.glazing-preview-metric-label abbr[b-fud3tc3ypr] {
    text-decoration: none;
}

.glazing-preview-metric-value[b-fud3tc3ypr] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--rz-text-color);
}

.glazing-preview-details[b-fud3tc3ypr] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
}

.glazing-preview-detail[b-fud3tc3ypr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 1rem;
    align-items: baseline;
}

.glazing-preview-detail-label[b-fud3tc3ypr] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--rz-text-secondary-color);
}

.glazing-preview-detail-value[b-fud3tc3ypr] {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: right;
    white-space: nowrap;
    color: var(--rz-text-color);
}
/* /Modules/Library/Pages/Components/LibraryCardGrid.razor.rz.scp.css */
.library-content[b-zmba8q4u7e] {
    margin-top: 1rem;
}

/* ── Filter bar ─────────────────────────────────────────────────────────── */

[b-zmba8q4u7e] .lib-filter-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0;
}

/* ── Card grid ───────────────────────────────────────────────────────── */

[b-zmba8q4u7e] .lib-items-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem 0;
}

[b-zmba8q4u7e] .lib-item-wrapper {
    width: 12rem;
    flex-shrink: 0;
    position: relative;
}

[b-zmba8q4u7e] .lib-empty-state {
    padding: 1rem 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.875rem;
}

[b-zmba8q4u7e] .lib-show-more {
    display: flex;
    justify-content: center;
    padding: 0.5rem 0 1.5rem;
}

[b-zmba8q4u7e] .lib-show-more-btn {
    padding: 0.5rem 1.5rem;
    border: 1px solid var(--rz-base-300);
    border-radius: 0.375rem;
    background-color: transparent;
    color: var(--rz-text-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

    [b-zmba8q4u7e] .lib-show-more-btn:hover {
        background-color: var(--rz-base-200);
        border-color: var(--rz-base-500);
    }

[b-zmba8q4u7e] .library-card-menu {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    z-index: 2;
}

[b-zmba8q4u7e] .library-card-image {
    overflow: hidden;
    border-radius: var(--bs-card-border-radius) var(--bs-card-border-radius) 0 0;
}

    [b-zmba8q4u7e] .library-card-image .trace-image {
        border: none;
        border-radius: 0;
    }

[b-zmba8q4u7e] .library-card-footer {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 0.25rem 0.5rem;
    height: 5.25rem;
}

[b-zmba8q4u7e] .library-card-title {
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

[b-zmba8q4u7e] .library-card-subcategory {
    font-size: 0.75rem;
    flex-shrink: 0;
}

[b-zmba8q4u7e] .library-card-count {
    color: var(--rz-text-secondary-color);
    font-size: 0.75rem;
    line-height: 1.2;
    flex-shrink: 0;
}

/* ── Nav card link (wraps LibraryCard for navigation) ─────────────────── */

[b-zmba8q4u7e] .lib-nav-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

[b-zmba8q4u7e] .lib-item-wrapper:hover .lib-nav-card-link .card {
    border-color: var(--rz-primary);
    transform: scale(1.02);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

[b-zmba8q4u7e] .lib-nav-card-link .card {
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
/* /Modules/Library/Pages/Components/LibraryGroupFilterDropdown.razor.rz.scp.css */
.lib-group-filter[b-64t4vbrxv4] {
    position: relative;
    display: inline-block;
}

.lib-group-filter-btn[b-64t4vbrxv4] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--rz-base-300);
    border-radius: 0.375rem;
    background-color: transparent;
    color: var(--rz-text-color);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

    .lib-group-filter-btn:hover[b-64t4vbrxv4] {
        background-color: var(--rz-base-200);
        border-color: var(--rz-base-500);
    }

    .lib-group-filter-btn.active[b-64t4vbrxv4] {
        border-color: var(--rz-primary);
        color: var(--rz-primary);
    }

.lib-group-filter-count[b-64t4vbrxv4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.25rem;
    border-radius: 0.625rem;
    background-color: var(--rz-primary);
    color: var(--rz-on-primary);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
}

.lib-group-filter-chevron[b-64t4vbrxv4] {
    font-size: 1.125rem;
}

.lib-group-filter-dropdown[b-64t4vbrxv4] {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    z-index: 101;
    min-width: 14rem;
    max-height: 16rem;
    overflow-y: auto;
    padding: 0.5rem 0;
    border: 1px solid var(--rz-base-300);
    border-radius: 0.375rem;
    background-color: var(--rz-base-background-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.lib-group-filter-option[b-64t4vbrxv4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--rz-text-color);
    transition: background-color 0.1s ease;
}

    .lib-group-filter-option:hover[b-64t4vbrxv4] {
        background-color: var(--rz-base-200);
    }

    .lib-group-filter-option input[type="checkbox"][b-64t4vbrxv4] {
        margin: 0;
        cursor: pointer;
    }

.lib-group-filter-label[b-64t4vbrxv4] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lib-group-filter-empty[b-64t4vbrxv4] {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    color: var(--rz-text-secondary-color);
}

.lib-group-filter-backdrop[b-64t4vbrxv4] {
    position: fixed;
    inset: 0;
    z-index: 100;
}
/* /Modules/Library/Pages/Components/LibraryIdentificationSidebar.razor.rz.scp.css */
.library-identification-sidebar[b-4o30xxmlsx] {
    min-width: 0;
}

.library-editor-fields[b-4o30xxmlsx] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.library-editor-field[b-4o30xxmlsx] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.library-editor-metadata-grid[b-4o30xxmlsx] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.library-editor-library-row[b-4o30xxmlsx] {
    border-bottom: 1px solid var(--rz-border-color);
    padding-bottom: 0.7rem;
}

.library-editor-readonly-field[b-4o30xxmlsx] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.library-editor-readonly-field span[b-4o30xxmlsx] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.library-editor-readonly-field strong[b-4o30xxmlsx] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.library-editor-icon-value[b-4o30xxmlsx] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.library-editor-icon-value i[b-4o30xxmlsx] {
    font-size: 1.15rem;
}

.library-editor-divider[b-4o30xxmlsx] {
    display: none;
}

.library-identification-sidebar[b-4o30xxmlsx]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .library-editor-metadata-grid[b-4o30xxmlsx] {
        grid-template-columns: 1fr;
    }
}
/* /Modules/Library/Pages/Components/LibrarySearchDropdown.razor.rz.scp.css */
.lib-search-container[b-nyrkcll09j] {
    position: relative;
    display: inline-flex;
    flex-direction: column;
}

.lib-search-bar[b-nyrkcll09j] {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: 4px;
    padding: 0.25rem 0.5rem;
    background-color: var(--bs-body-bg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lib-search-bar:focus-within[b-nyrkcll09j] {
    border-color: var(--rz-primary);
    box-shadow: 0 0 0 2px var(--rz-primary);
}

.lib-search-icon[b-nyrkcll09j] {
    color: var(--rz-text-secondary-color);
    font-size: 1rem;
    pointer-events: none;
    margin-right: 0.25rem;
}

.lib-search-input[b-nyrkcll09j] {
    width: 16rem;
    padding: 0.15rem 0.25rem;
    border: none;
    background: transparent;
    color: var(--rz-text-color);
    font-size: 0.875rem;
}

.lib-search-input:focus[b-nyrkcll09j] {
    outline: none;
}

.lib-search-clear[b-nyrkcll09j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--rz-text-secondary-color);
    cursor: pointer;
    padding: 0;
    font-size: 0;
}

.lib-search-clear .material-symbols-outlined[b-nyrkcll09j] {
    font-size: 1rem;
}

.lib-search-clear:hover[b-nyrkcll09j] {
    color: var(--rz-text-color);
}

/* ── Dropdown ────────────────────────────────────────────────────────── */

.lib-search-dropdown[b-nyrkcll09j] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    min-width: 20rem;
    max-height: 24rem;
    overflow-y: auto;
    z-index: 1000;
    background-color: var(--rz-base-background, var(--rz-body-background-color, #fff));
    border: 1px solid var(--rz-base-300);
    border-radius: 0.375rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    margin-top: 0.25rem;
}

.lib-search-group-label[b-nyrkcll09j] {
    padding: 0.5rem 0.75rem 0.25rem;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rz-text-tertiary-color, var(--rz-text-secondary-color));
}

.lib-search-result[b-nyrkcll09j] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: none;
    background: none;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.lib-search-result:hover[b-nyrkcll09j],
.lib-search-result:focus-visible[b-nyrkcll09j],
.lib-search-result.active[b-nyrkcll09j] {
    background-color: var(--rz-base-200);
    outline: none;
}

[data-bs-theme="dark"] .lib-search-result:hover[b-nyrkcll09j],
[data-bs-theme="dark"] .lib-search-result:focus-visible[b-nyrkcll09j],
[data-bs-theme="dark"] .lib-search-result.active[b-nyrkcll09j] {
    background-color: var(--rz-base-700);
}

.lib-search-result-name[b-nyrkcll09j] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--rz-text-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lib-search-result-context[b-nyrkcll09j] {
    font-size: 0.75rem;
    color: var(--rz-text-secondary-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lib-search-no-results[b-nyrkcll09j] {
    padding: 0.75rem;
    font-size: 0.8125rem;
    color: var(--rz-text-secondary-color);
    text-align: center;
}
/* /Modules/Library/Pages/Components/MaterialAirGapEditorForm.razor.rz.scp.css */
.create-material-form[b-5x9vitk5dy] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-material-section[b-5x9vitk5dy] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-material-section-title[b-5x9vitk5dy] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-material-field[b-5x9vitk5dy] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Match the Name/Source placeholder color to the Description textarea's (unstyled) placeholder, since the
   themed input placeholder color otherwise differs from the browser-default textarea placeholder color. */
[b-5x9vitk5dy] input[name="CreateAirGapName"]::placeholder,
[b-5x9vitk5dy] input[name="CreateAirGapSource"]::placeholder {
    color: revert;
}

.create-material-metadata-grid[b-5x9vitk5dy] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-material-readonly-field[b-5x9vitk5dy] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-material-readonly-field span[b-5x9vitk5dy] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-material-readonly-field strong[b-5x9vitk5dy] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-material-icon-value[b-5x9vitk5dy] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-material-icon-value i[b-5x9vitk5dy] {
    font-size: 1.15rem;
}

.create-material-divider[b-5x9vitk5dy] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-material-form[b-5x9vitk5dy]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-material-metadata-grid[b-5x9vitk5dy] {
        grid-template-columns: 1fr;
    }
}
/* /Modules/Library/Pages/Components/MaterialAirGapEditorPanel.razor.rz.scp.css */
/* Air Gap New Item panel. The card chrome, heading, image slot, and card body deliberately
   mirror GlassEditorPanel.razor.css / ConstructionEditorPanel.razor.css so every New Item flow looks
   identical. These rules must be repeated here because Blazor CSS isolation scopes the Glass rules to that
   component only: MaterialAirGapEditorPanel reuses the same class names but receives none of Glass's scoped
   styling, so without these rules the container has no card chrome, no width constraint, and the image slot
   renders unstyled. Like Glass, an opaque material has no layer sidebar, so this is a single column instead
   of the two-column identification/layers grid. */

.library-object-editor[b-h0r6qc0la6] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-card-header-bg: var(--bs-card-cap-bg, transparent);
    --library-muted-bg: var(--bs-tertiary-bg, var(--rz-base-100));
    --library-control-bg: var(--bs-body-bg, var(--rz-base-background-color));
    --library-control-hover-bg: var(--bs-tertiary-bg, var(--rz-base-hover-color));
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.library-object-identification-panel[b-h0r6qc0la6] {
    min-width: 0;
}

/* Shared card chrome applied to the identification card via .library-editor-card, defined on the
   editor grid that owns the --library-card-* tokens. */
.library-object-editor[b-h0r6qc0la6]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.library-object-editor[b-h0r6qc0la6]  .library-editor-card > .card-header {
    border-bottom: var(--library-card-outline);
    background: var(--library-card-header-bg);
    padding: 0.9rem 1rem 0.8rem;
}

.library-object-editor[b-h0r6qc0la6]  .library-editor-card > .card-body {
    padding: 0.85rem;
}

.library-object-card-title[b-h0r6qc0la6] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    width: 100%;
}

.library-object-card-title[b-h0r6qc0la6]  .library-object-title-content {
    min-width: 0;
    flex: 1 1 auto;
}

.library-object-card-title[b-h0r6qc0la6]  .rz-button {
    flex: 0 0 auto;
}

.library-object-identification-card-body[b-h0r6qc0la6] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-width: 0;
}

.library-object-heading[b-h0r6qc0la6] {
    margin-top: 0.45rem;
    min-width: 0;
}

.library-object-title-row[b-h0r6qc0la6] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.library-object-title-row h1[b-h0r6qc0la6] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1.15rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.library-object-heading p[b-h0r6qc0la6] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 600;
}

.library-object-image-panel[b-h0r6qc0la6] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    aspect-ratio: 16 / 9;
    max-height: 12.25rem;
    overflow: hidden;
    border: 1px solid var(--library-card-border);
    border-radius: var(--library-card-radius);
    background: var(--library-muted-bg);
    padding: 0.65rem;
    user-select: none;
}

.library-object-image-panel[b-h0r6qc0la6]  .trace-image-container,
.library-object-image-panel[b-h0r6qc0la6]  .trace-image {
    width: 100% !important;
    height: 100% !important;
    border: 0;
    background: transparent;
}

.library-object-image-panel[b-h0r6qc0la6]  img.trace-image {
    object-fit: contain;
    -webkit-user-drag: none;
    user-select: none;
}

.library-object-image-panel[b-h0r6qc0la6]  .trace-image-edit-icon {
    visibility: visible;
    /* Anchor to the container's bottom-right corner. Without explicit offsets the absolutely
       positioned icon falls at its static position below the 100%-height image, pushing its button
       outside the panel where overflow:hidden clips it away (making the upload control invisible). */
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
}

.library-object-image-panel[b-h0r6qc0la6]  .trace-image-edit-icon .btn {
    right: 0.5rem;
    bottom: 0.5rem;
    left: auto;
    border: 0;
    border-radius: 999px;
}
/* /Modules/Library/Pages/Components/MaterialSelectionDialog.razor.rz.scp.css */
.material-dialog[b-5agshpsyao] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.material-dialog-toolbar[b-5agshpsyao] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* ── Search ──────────────────────────────────────────────────────────── */

.material-search[b-5agshpsyao] {
    display: inline-flex;
    flex: 1 1 auto;
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: 4px;
    padding: 0.25rem 0.5rem;
    background-color: var(--bs-body-bg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.material-search:focus-within[b-5agshpsyao] {
    border-color: var(--rz-primary);
    box-shadow: 0 0 0 2px var(--rz-primary);
}

.material-search-icon[b-5agshpsyao] {
    color: var(--rz-text-secondary-color);
    font-size: 1rem;
    pointer-events: none;
    margin-right: 0.25rem;
}

.material-search-input[b-5agshpsyao] {
    flex: 1 1 auto;
    width: 100%;
    padding: 0.15rem 0.25rem;
    border: none;
    background: transparent;
    color: var(--rz-text-color);
    font-size: 0.875rem;
}

.material-search-input:focus[b-5agshpsyao] {
    outline: none;
}

.material-search-clear[b-5agshpsyao] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--rz-text-secondary-color);
    cursor: pointer;
    padding: 0;
    font-size: 0;
}

.material-search-clear .material-symbols-outlined[b-5agshpsyao] {
    font-size: 1rem;
}

.material-search-clear:hover[b-5agshpsyao] {
    color: var(--rz-text-color);
}

.material-create-button[b-5agshpsyao] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* ── Options ─────────────────────────────────────────────────────────── */

.material-options[b-5agshpsyao] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2, 0 0.125rem 0.5rem rgba(0, 0, 0, 0.12)));
    --library-muted-bg: var(--bs-tertiary-bg, var(--rz-base-100));

    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.material-option[b-5agshpsyao] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0 1rem;
    align-items: center;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
    padding: 0.85rem 1rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.material-option:hover[b-5agshpsyao],
.material-option:focus-within[b-5agshpsyao] {
    border-color: var(--rz-primary);
    box-shadow: var(--rz-shadow-4, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));
}

.material-option-icon[b-5agshpsyao] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 8px;
    background: var(--library-muted-bg, var(--rz-base-200, rgba(0, 0, 0, 0.05)));
    color: var(--rz-text-secondary-color);
    font-size: 1.35rem;
    user-select: none;
}

.material-option-info[b-5agshpsyao] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.material-option-name[b-5agshpsyao] {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 1rem;
    font-weight: 800;
}

.material-select-button[b-5agshpsyao] {
    align-self: center;
    justify-self: end;
    white-space: nowrap;
}

.material-dialog-loading[b-5agshpsyao] {
    position: relative;
    min-height: 8rem;
}

.material-dialog-empty[b-5agshpsyao] {
    margin: 0;
    color: var(--rz-text-secondary-color);
}

@media (max-width: 540px) {
    .material-dialog-toolbar[b-5agshpsyao] {
        flex-direction: column;
        align-items: stretch;
    }

    .material-option[b-5agshpsyao] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .material-select-button[b-5agshpsyao] {
        grid-column: 1 / -1;
        justify-self: stretch;
        margin-top: 0.5rem;
    }
}
/* /Modules/Library/Pages/Components/OpaqueMaterialEditorForm.razor.rz.scp.css */
.create-opaque-form[b-1yxb6adm4e] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.create-opaque-section[b-1yxb6adm4e] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.create-opaque-section-title[b-1yxb6adm4e] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--rz-text-color);
}

.create-opaque-field[b-1yxb6adm4e] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.create-opaque-toggle-label[b-1yxb6adm4e] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Keep the Material / No Mass toggle at its natural content width. As a flex-column
   child it would otherwise inherit the default align-items: stretch and span the card. */
.create-opaque-toggle-field[b-1yxb6adm4e] {
    align-items: flex-start;
}

/* Match the Name/Source placeholder color to the Description textarea's
   (unstyled) placeholder, since the themed input placeholder color otherwise
   differs from the browser-default textarea placeholder color. */
[b-1yxb6adm4e] input[name="CreateOpaqueName"]::placeholder,
[b-1yxb6adm4e] input[name="CreateOpaqueSource"]::placeholder {
    color: revert;
}

.create-opaque-metadata-grid[b-1yxb6adm4e] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: end;
}

.create-opaque-readonly-field[b-1yxb6adm4e] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 3.35rem;
    justify-content: center;
}

.create-opaque-readonly-field span[b-1yxb6adm4e] {
    color: var(--rz-text-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.create-opaque-readonly-field strong[b-1yxb6adm4e] {
    color: var(--rz-text-color);
    font-size: 1rem;
    font-weight: 700;
}

.create-opaque-icon-value[b-1yxb6adm4e] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.create-opaque-icon-value i[b-1yxb6adm4e] {
    font-size: 1.15rem;
}

.create-opaque-divider[b-1yxb6adm4e] {
    border-top: 1px solid var(--rz-border-color);
    margin: 0.1rem 0;
}

.create-opaque-form[b-1yxb6adm4e]  textarea {
    min-height: 5rem;
    resize: vertical;
}

@media (max-width: 540px) {
    .create-opaque-metadata-grid[b-1yxb6adm4e] {
        grid-template-columns: 1fr;
    }
}
/* /Modules/Library/Pages/Components/OpaqueMaterialEditorPanel.razor.rz.scp.css */
/* Opaque (non-Air-Gap) New Item panel. The card chrome, heading, image slot, and card body deliberately
   mirror GlassEditorPanel.razor.css / ConstructionEditorPanel.razor.css so every New Item flow looks
   identical. These rules must be repeated here because Blazor CSS isolation scopes the Glass rules to that
   component only: OpaqueMaterialEditorPanel reuses the same class names but receives none of Glass's scoped
   styling, so without these rules the container has no card chrome, no width constraint, and the image slot
   renders unstyled. Like Glass, an opaque material has no layer sidebar, so this is a single column instead
   of the two-column identification/layers grid. */

.library-object-editor[b-u7mf5j0k7w] {
    --library-card-bg: var(--rz-card-background-color, var(--bs-card-bg, var(--rz-base-background-color)));
    --library-card-border: var(--bs-card-border-color, var(--rz-border-color));
    --library-card-outline: var(--rz-card-border, 1px solid var(--library-card-border));
    --library-card-radius: var(--rz-card-border-radius, var(--bs-card-border-radius, var(--bs-border-radius)));
    --library-card-shadow: var(--rz-card-shadow, var(--rz-shadow-2));
    --library-card-header-bg: var(--bs-card-cap-bg, transparent);
    --library-muted-bg: var(--bs-tertiary-bg, var(--rz-base-100));
    --library-control-bg: var(--bs-body-bg, var(--rz-base-background-color));
    --library-control-hover-bg: var(--bs-tertiary-bg, var(--rz-base-hover-color));
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.library-object-identification-panel[b-u7mf5j0k7w] {
    min-width: 0;
}

/* Shared card chrome applied to the identification card via .library-editor-card, defined on the
   editor grid that owns the --library-card-* tokens. */
.library-object-editor[b-u7mf5j0k7w]  .library-editor-card {
    overflow: hidden;
    border: var(--library-card-outline);
    border-radius: var(--library-card-radius);
    background: var(--library-card-bg);
    box-shadow: var(--library-card-shadow);
    color: var(--rz-text-color);
}

.library-object-editor[b-u7mf5j0k7w]  .library-editor-card > .card-header {
    border-bottom: var(--library-card-outline);
    background: var(--library-card-header-bg);
    padding: 0.9rem 1rem 0.8rem;
}

.library-object-editor[b-u7mf5j0k7w]  .library-editor-card > .card-body {
    padding: 0.85rem;
}

.library-object-card-title[b-u7mf5j0k7w] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    width: 100%;
}

.library-object-card-title[b-u7mf5j0k7w]  .library-object-title-content {
    min-width: 0;
    flex: 1 1 auto;
}

.library-object-card-title[b-u7mf5j0k7w]  .rz-button {
    flex: 0 0 auto;
}

.library-object-identification-card-body[b-u7mf5j0k7w] {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-width: 0;
}

.library-object-heading[b-u7mf5j0k7w] {
    margin-top: 0.45rem;
    min-width: 0;
}

.library-object-title-row[b-u7mf5j0k7w] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.library-object-title-row h1[b-u7mf5j0k7w] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--rz-text-color);
    font-size: 1.15rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.library-object-heading p[b-u7mf5j0k7w] {
    margin: 0.1rem 0 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 600;
}

.library-object-image-panel[b-u7mf5j0k7w] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    aspect-ratio: 16 / 9;
    max-height: 12.25rem;
    overflow: hidden;
    border: 1px solid var(--library-card-border);
    border-radius: var(--library-card-radius);
    background: var(--library-muted-bg);
    padding: 0.65rem;
    user-select: none;
}

.library-object-image-panel[b-u7mf5j0k7w]  .trace-image-container,
.library-object-image-panel[b-u7mf5j0k7w]  .trace-image {
    width: 100% !important;
    height: 100% !important;
    border: 0;
    background: transparent;
}

.library-object-image-panel[b-u7mf5j0k7w]  img.trace-image {
    object-fit: contain;
    -webkit-user-drag: none;
    user-select: none;
}

.library-object-image-panel[b-u7mf5j0k7w]  .trace-image-edit-icon {
    visibility: visible;
    /* Anchor to the container's bottom-right corner. Without explicit offsets the absolutely
       positioned icon falls at its static position below the 100%-height image, pushing its button
       outside the panel where overflow:hidden clips it away (making the upload control invisible). */
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
}

.library-object-image-panel[b-u7mf5j0k7w]  .trace-image-edit-icon .btn {
    right: 0.5rem;
    bottom: 0.5rem;
    left: auto;
    border: 0;
    border-radius: 999px;
}
/* /Modules/Library/Pages/Components/SimpleGlazingCard.razor.rz.scp.css */
.glazing-preview-metrics[b-bd8chs2nkx] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.35rem 1.5rem;
    margin: 0;
}

.glazing-preview-metric[b-bd8chs2nkx] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.glazing-preview-metric-label[b-bd8chs2nkx] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
    color: var(--rz-text-secondary-color);
}

.glazing-preview-metric-value[b-bd8chs2nkx] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--rz-text-color);
}

.glazing-preview-details[b-bd8chs2nkx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
}

.glazing-preview-detail[b-bd8chs2nkx] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 1rem;
    align-items: baseline;
}

.glazing-preview-detail-label[b-bd8chs2nkx] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--rz-text-secondary-color);
}

.glazing-preview-detail-value[b-bd8chs2nkx] {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: right;
    white-space: nowrap;
    color: var(--rz-text-color);
}
/* /Modules/Library/Pages/LibraryDashboard.razor.rz.scp.css */
.lib-dashboard-grid[b-gzzi4j9i3s] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem 0;
}

.lib-dashboard-card[b-gzzi4j9i3s] {
    width: 10rem;
    cursor: pointer;
    flex-shrink: 0;
    text-decoration: none;
    color: inherit;
}

[b-gzzi4j9i3s] .lib-dashboard-card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.25rem 0.5rem;
    text-align: center;
}

[b-gzzi4j9i3s] .lib-dashboard-icon {
    font-size: 2rem;
    color: var(--rz-primary);
}

[b-gzzi4j9i3s] .lib-dashboard-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--rz-text-color);
}

.lib-dashboard-card:hover[b-gzzi4j9i3s]  .card {
    border-color: var(--rz-primary);
    transition: border-color 0.15s ease;
}
/* /Modules/Library/Pages/LibraryItemDetail.razor.rz.scp.css */
.lib-detail-layout[b-1pk1kwtzo5] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    gap: 1rem;
    padding: 1rem 0;
    align-items: stretch;
}

.lib-detail-left[b-1pk1kwtzo5] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.lib-detail-right[b-1pk1kwtzo5] {
    display: flex;
}

.lib-detail-footer[b-1pk1kwtzo5] {
    display: flex;
    justify-content: flex-end;
    padding: 0.5rem 0 1rem;
}

[b-1pk1kwtzo5] .lib-detail-right > .card {
    flex: 1;
    display: flex;
    overflow: hidden;
}

[b-1pk1kwtzo5] .lib-detail-right > .card > .card-body {
    flex: 1;
    display: flex;
    overflow: hidden;
}

[b-1pk1kwtzo5] .lib-detail-right .trace-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border: none;
    border-radius: var(--bs-card-border-radius);
}

/* ── Field-style layout ─────────────────────────────────────────── */

[b-1pk1kwtzo5] .lib-detail-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 0.875rem;
}

[b-1pk1kwtzo5] .lib-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

[b-1pk1kwtzo5] .lib-field--full {
    width: 100%;
}

[b-1pk1kwtzo5] .lib-field--auto {
    flex: 1 1 auto;
    min-width: 6rem;
}

[b-1pk1kwtzo5] .lib-field-row {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: 0.875rem;
}

/* /Modules/Library/Pages/LibraryTypePage.razor.rz.scp.css */
/* Styles moved to LibraryCardGrid.razor.css */
/* /Modules/Library/Pages/_Layout.razor.rz.scp.css */
.library-search-row[b-0hebg4v3yw] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.5rem 0;
}

/* Selection-fill strategy (mirrors the New Item modal drawer): only the lowest-level item carries
   the grey background fill; the parent category shows just the red active-indicator bar. The shared
   TraceMenuItem tree rows otherwise fill the active/parent-active row with grey, so neutralize that fill
   here — scoped to the Library tree via .library-tree-menu so other modules keep the default look.
   The :not(:hover) keeps the normal grey hover affordance on the active row. */
.library-tree-menu[b-0hebg4v3yw]  .nav-item.active:not(:hover),
.library-tree-menu[b-0hebg4v3yw]  .nav-item.parent-active:not(:hover) {
    color: var(--rz-text-color);
    background-color: transparent;
}
/* /Modules/LoadDesign/Pages/Component/AirflowSupplySection.razor.rz.scp.css */
.supply-switches[b-lh1pvmomvs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--bs-card-spacer-y);
    margin-bottom: var(--bs-card-spacer-y);
}
/* /Modules/LoadDesign/Pages/Component/AirflowVentilationSection.razor.rz.scp.css */
.airflow-ventilation-section-unit[b-27shpa4i64] {
    padding-right: 0.5rem;
    color: var(--rz-text-secondary-color);
}

.airflow-ventilation-section-imported[b-27shpa4i64] {
    display: flex;
    flex-direction: column;
    gap: var(--bs-card-spacer-y);
    margin-top: var(--bs-card-spacer-y);
}

.airflow-ventilation-section-imported p[b-27shpa4i64] {
    margin: 0;
}

.airflow-ventilation-section-imported-item[b-27shpa4i64] {
    padding: var(--bs-card-spacer-y);
    border: var(--rz-border-width) solid var(--rz-outline-normal);
    border-radius: var(--rz-border-radius);
}

.airflow-ventilation-section-imported-item dl[b-27shpa4i64] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--bs-card-spacer-y);
    margin: 0.5rem 0 0;
}

.airflow-ventilation-section-imported-item dt[b-27shpa4i64] {
    color: var(--rz-text-secondary-color);
    font-size: var(--rz-text-caption-font-size);
    font-weight: 400;
}

.airflow-ventilation-section-imported-item dd[b-27shpa4i64] {
    margin: 0;
}
/* /Modules/LoadDesign/Pages/Component/Body.razor.rz.scp.css */
.load-design-body[b-ka8ca3v6n0] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
    height: 100%;
    padding: 0.75rem;
    overflow-y: auto;
}

.load-design-body-note[b-ka8ca3v6n0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.875rem 1rem;
    border-radius: 0.75rem;
    background: var(--rz-base-background-color, var(--rz-white));
    box-shadow: var(--rz-shadow-1, 0 1px 3px rgba(0, 0, 0, 0.1));
    color: var(--rz-text-secondary-color);
    font-size: 0.9375rem;
}
/* /Modules/LoadDesign/Pages/Component/ConstructionTab.razor.rz.scp.css */
.construction-tab[b-z6sxz7djfc] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.construction-tab-surfaces[b-z6sxz7djfc] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.construction-tab-icon[b-z6sxz7djfc] {
    font-size: 1.25rem;
    color: var(--rz-danger);
}

.construction-tab-count[b-z6sxz7djfc] {
    font-size: 0.8125rem;
    color: var(--rz-text-secondary-color);
}

.construction-tab-chip[b-z6sxz7djfc],
.construction-tab-tag[b-z6sxz7djfc] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-weight: 700;
    color: var(--category-color, var(--rz-text-color));
    background: color-mix(in srgb, var(--category-color, var(--rz-text-color)) 14%, transparent);
}

.construction-tab-chip[b-z6sxz7djfc] {
    padding: 0.15rem 0.6rem;
    font-size: 0.75rem;
}

.construction-tab-tag[b-z6sxz7djfc] {
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    margin-inline-end: 0.4rem;
    border-radius: 0.35rem;
    font-size: 0.7rem;
}

.construction-tab-grid[b-z6sxz7djfc] {
    min-height: 10rem;
    overflow-x: auto;
}

/* Fill the panel when there is room, but keep each column at its readable width and scroll
   horizontally (never compress/clip values) once the panel is narrower than the columns need;
   paging keeps rows short so the grid never scrolls vertically. */
.construction-tab-grid[b-z6sxz7djfc]  .rz-grid-table {
    width: 100%;
    min-width: max-content;
}

.construction-tab-grid[b-z6sxz7djfc]  .rz-grid-table th,
.construction-tab-grid[b-z6sxz7djfc]  .rz-grid-table td {
    padding-inline: 0.4rem;
}

.construction-tab-actions[b-z6sxz7djfc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-block: 0.5rem;
}

/* Categorical swatches reuse the theme's chart series palette so surface kinds and
   coefficient tags follow the active theme instead of fixed brand colours. */
[data-kind="Roof"][b-z6sxz7djfc] { --category-color: var(--rz-series-1); }
[data-kind="Skylight"][b-z6sxz7djfc] { --category-color: var(--rz-series-2); }
[data-kind="DropCeiling"][b-z6sxz7djfc] { --category-color: var(--rz-series-3); }
[data-kind="ExteriorWall"][b-z6sxz7djfc] { --category-color: var(--rz-series-4); }
[data-kind="InteriorWall"][b-z6sxz7djfc] { --category-color: var(--rz-series-5); }
[data-kind="WindowDoor"][b-z6sxz7djfc] { --category-color: var(--rz-series-6); }
[data-kind="RaisedFloor"][b-z6sxz7djfc] { --category-color: var(--rz-series-7); }
[data-kind="Slab"][b-z6sxz7djfc] { --category-color: var(--rz-series-8); }
[data-kind="BelowGradeWall"][b-z6sxz7djfc] { --category-color: var(--rz-series-9); }

[data-tag="U"][b-z6sxz7djfc] { --category-color: var(--rz-series-6); }
[data-tag="F"][b-z6sxz7djfc] { --category-color: var(--rz-series-8); }
[data-tag="C"][b-z6sxz7djfc] { --category-color: var(--rz-series-3); }

@media (forced-colors: active) {
    .construction-tab-chip[b-z6sxz7djfc],
    .construction-tab-tag[b-z6sxz7djfc] {
        color: CanvasText;
        background: Canvas;
        border: 1px solid CanvasText;
    }
}

.construction-tab-dropdown[b-z6sxz7djfc] {
    width: 100%;
}
/* /Modules/LoadDesign/Pages/Component/InspectorTabs.razor.rz.scp.css */
.inspector-tabs[b-qp4x070pyn] {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    min-height: 0;
    overflow: hidden;
}

.inspector-tabs[b-qp4x070pyn]  .rz-tabview-panels {
    margin-bottom: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
}
/* /Modules/LoadDesign/Pages/Component/InternalLoadCard.razor.rz.scp.css */
.internal-load-card-count[b-4z3g0v1g7v] {
    color: var(--rz-text-secondary-color);
}

.internal-load-card-row[b-4z3g0v1g7v] {
    display: grid;
    grid-template-columns: minmax(10rem, 1.2fr) repeat(3, minmax(9rem, 1fr)) minmax(10rem, 1fr) auto;
    align-items: start;
    gap: var(--bs-card-spacer-y);
    margin-bottom: var(--bs-card-spacer-y);
    padding: var(--bs-card-spacer-y);
    border: var(--rz-border-width) solid var(--rz-outline-normal);
    border-radius: var(--rz-border-radius);
}

.internal-load-card-row > div[b-4z3g0v1g7v] {
    min-width: 0;
}

.internal-load-card-meta[b-4z3g0v1g7v] {
    display: grid;
    gap: 0.125rem;
    margin: 0.25rem 0 0;
}

/* Label and value share a line so the name column doesn't stretch the row. */
.internal-load-card-meta > div[b-4z3g0v1g7v] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

.internal-load-card-meta dt[b-4z3g0v1g7v] {
    color: var(--rz-text-secondary-color);
    font-size: var(--rz-text-caption-font-size);
    font-weight: 400;
}

.internal-load-card-meta dd[b-4z3g0v1g7v] {
    margin: 0;
}

/* CardSwitch renders a Bootstrap column, whose gutter padding misaligns it with the name field. */
.internal-load-card-density-mode[b-4z3g0v1g7v] {
    margin-top: 0.5rem;
}

.internal-load-card-density-mode[b-4z3g0v1g7v]  .col {
    display: flex;
    align-items: center;
    padding: 0;
}

.internal-load-card-unit[b-4z3g0v1g7v] {
    padding-right: 0.5rem;
    color: var(--rz-text-secondary-color);
}

.internal-load-card-heat-split[b-4z3g0v1g7v] {
    display: flex;
    flex-direction: column;
    gap: var(--bs-card-spacer-y);
}

/* Keeps the delete action level with the inputs rather than their labels. */
.internal-load-card-actions[b-4z3g0v1g7v] {
    display: flex;
    align-items: center;
    padding-top: 1.75rem;
}

.internal-load-card-row[b-4z3g0v1g7v]  .rz-form-field {
    width: 100%;
}

@media (max-width: 75rem) {
    .internal-load-card-row[b-4z3g0v1g7v] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .internal-load-card-row[b-4z3g0v1g7v] {
        grid-template-columns: minmax(0, 1fr);
    }

    .internal-load-card-actions[b-4z3g0v1g7v] {
        padding-top: 0;
    }
}
/* /Modules/LoadDesign/Pages/Component/InternalLoadImportedValues.razor.rz.scp.css */
.internal-load-imported-values p[b-jybfdly610] {
    margin: 0 0 0.25rem;
    color: var(--rz-text-secondary-color);
    font-size: var(--rz-text-caption-font-size);
}

.internal-load-imported-values dl[b-jybfdly610] {
    margin: 0;
}

/* Label and value share a line so read-only rows stay as short as the editable ones. */
.internal-load-imported-values dl > div[b-jybfdly610] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

.internal-load-imported-values dt[b-jybfdly610] {
    color: var(--rz-text-secondary-color);
    font-size: var(--rz-text-caption-font-size);
    font-weight: 400;
}

.internal-load-imported-values dd[b-jybfdly610] {
    margin: 0;
}
/* /Modules/LoadDesign/Pages/Component/InternalLoadsEditCards.razor.rz.scp.css */
.internal-loads-edit-cards-divider[b-vl2c42otn3] {
    display: flex;
    align-items: center;
    gap: var(--rz-text-body1-margin-block-end);
    margin-bottom: var(--rz-text-body1-margin-block-end);
    color: var(--rz-text-color);
    font-weight: 700;
}

.internal-loads-edit-cards-divider[b-vl2c42otn3]::after {
    content: "";
    flex: 1;
    border-top: var(--rz-border-width) solid var(--rz-outline-normal);
}
/* /Modules/LoadDesign/Pages/Component/ModelStatusBadge.razor.rz.scp.css */
/* Matches RevitProject.razor's inline status pill styling (see TRN-7350) so the Building
   layout dashboard and the CPA file list render identical badges. */
.model-status-badge[b-4tl1cejxom] {
    padding: 0.375rem 0.75rem;
    font-size: clamp(0.75rem, 1vw, 0.875rem);
    font-weight: 400;
    color: white;
}

.model-status-badge--not-run[b-4tl1cejxom] {
    background-color: #6c757d; /* Bootstrap gray */
}

.model-status-badge--cancelled[b-4tl1cejxom] {
    background-color: #f0ad4e; /* Dark warning yellow */
}

.model-status-badge--cancelling[b-4tl1cejxom] {
    background-color: #fd7e14; /* Bootstrap orange */
}

.model-status-badge--running[b-4tl1cejxom] {
    background-color: #138496; /* Teal cyan */
}

.model-status-badge--exporting[b-4tl1cejxom] {
    background-color: #117a8b; /* Medium-dark teal */
}

.model-status-badge--simulating[b-4tl1cejxom] {
    background-color: #0a5f7a; /* Darker teal */
}

.model-status-badge--generating-reports[b-4tl1cejxom] {
    background-color: #075985; /* Darkest teal */
}

.model-status-badge--success[b-4tl1cejxom] {
    background-color: #198754; /* Bootstrap success green */
}

.model-status-badge--danger[b-4tl1cejxom] {
    background-color: #dc3545; /* Bootstrap danger red */
}

.model-status-badge--info[b-4tl1cejxom] {
    background-color: #17a2b8; /* Light teal (default) */
}
/* /Modules/LoadDesign/Pages/Component/RevitHighlightingToolbar.razor.rz.scp.css */
.revit-highlighting-toolbar[b-k7kgwcy804] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    width: 100%;
}

.revit-highlighting-toolbar-view-toggle[b-k7kgwcy804] {
    flex: 0 0 7.5rem;
    width: 7.5rem;
}

.revit-highlighting-toolbar-sync[b-k7kgwcy804] {
    margin-left: auto;
}
/* /Modules/LoadDesign/Pages/Component/RevitLinkStatus.razor.rz.scp.css */
.revit-link-status[b-1slxrbcmcj] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-inline-start: auto;
    font-size: var(--rz-text-caption-font-size, 0.75rem);
    color: var(--rz-text-secondary-color);
}

.revit-link-status-icon[b-1slxrbcmcj] {
    font-size: 1rem;
}

.revit-link-status--in-sync .revit-link-status-icon[b-1slxrbcmcj] {
    color: var(--rz-success);
}

.revit-link-status--drifted .revit-link-status-icon[b-1slxrbcmcj] {
    color: var(--rz-warning);
}

.revit-link-status--unlinked .revit-link-status-icon[b-1slxrbcmcj] {
    color: var(--rz-danger);
}
/* /Modules/LoadDesign/Pages/Component/RoomHeader.razor.rz.scp.css */
.room-header[b-38j3hk9alt] {
    width: 100%;
}

.room-header[b-38j3hk9alt]  .room-header-card {
    overflow: hidden;
}

.room-header[b-38j3hk9alt]  .room-header-card > .card-body {
    padding: var(--bs-card-spacer-y) 0 0;
}

.room-header-body[b-38j3hk9alt] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.room-header-info[b-38j3hk9alt] {
    display: grid;
    grid-template-columns: repeat(4, minmax(7rem, 1fr));
    gap: 0.875rem 1.25rem;
    margin: 0;
    padding-inline: var(--bs-card-spacer-x);
}

.room-header-bar[b-38j3hk9alt] {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.room-header-title[b-38j3hk9alt] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.room-header-icon[b-38j3hk9alt] {
    font-size: 1.5rem;
    color: var(--rz-danger);
}

.room-header-name[b-38j3hk9alt] {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--rz-text-title-color);
}

.room-header-name-input[b-38j3hk9alt] {
    width: min(24rem, 45vw);
    font-size: 1.125rem;
    font-weight: 700;
}

.room-header-info-item[b-38j3hk9alt] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0.15rem;
}

.room-header-info-item dt[b-38j3hk9alt] {
    color: var(--rz-text-secondary-color);
    font-size: 0.75rem;
    font-weight: 600;
}

.room-header-info-item dd[b-38j3hk9alt] {
    overflow: hidden;
    margin: 0;
    color: var(--rz-text-color);
    font-size: 0.875rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.room-header-raw-values[b-38j3hk9alt] {
    border-top: 1px solid var(--rz-base-700);
    padding-top: 1rem;
}

.room-header-raw-values dd[b-38j3hk9alt] {
    font-family: var(--rz-font-family-monospace, monospace);
    font-weight: 500;
    white-space: normal;
    word-break: break-all;
}

.room-header-pager[b-38j3hk9alt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.room-header-actions[b-38j3hk9alt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.room-header-pager-label[b-38j3hk9alt] {
    font-size: 0.8125rem;
    color: var(--rz-text-secondary-color);
}

@media (max-width: 48rem) {
    .room-header-bar[b-38j3hk9alt] {
        align-items: flex-start;
        flex-direction: column;
    }

    .room-header-info[b-38j3hk9alt] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .room-header-name-input[b-38j3hk9alt] {
        width: min(18rem, 65vw);
    }
}

.room-header-field-error[b-38j3hk9alt] {
    color: var(--rz-danger);
    font-size: 0.75rem;
    font-weight: 600;
}
/* /Modules/LoadDesign/Pages/Component/SessionQuantityField.razor.rz.scp.css */
.session-quantity-field[b-hcojksw326]  .rz-form-field {
    width: 100%;
}

.session-quantity-field-unit[b-hcojksw326] {
    padding-right: 0.5rem;
    color: var(--rz-text-secondary-color);
}

.session-quantity-field p[b-hcojksw326] {
    margin: 0;
    color: var(--rz-danger);
    font-size: var(--rz-text-caption-font-size);
}
/* /Modules/LoadDesign/Pages/Component/SiteRail.razor.rz.scp.css */
.site-rail-model-actions[b-letmdbju9p] {
    padding-top: 0.25rem;
}

.site-rail-model-actions[b-letmdbju9p]  .site-rail-model-action {
    display: flex;
    width: 100%;
}

.site-rail-revit-note[b-letmdbju9p] {
    margin: 0.75rem 0.875rem;
    color: var(--rz-danger);
    font-size: 0.8125rem;
}

.site-rail-note[b-letmdbju9p] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0.875rem;
    color: var(--rz-text-secondary-color);
    font-size: 0.875rem;
}

.site-rail-tree[b-letmdbju9p]  .nav-item-border,
.site-rail-tree[b-letmdbju9p]  .nav-item-content,
.site-rail-tree[b-letmdbju9p]  .nav-item-text,
.site-rail-tree[b-letmdbju9p]  .nav-item-secondary {
    min-width: 0;
}

.site-rail-tree[b-letmdbju9p]  .nav-item-text,
.site-rail-tree[b-letmdbju9p]  .nav-item-primary,
.site-rail-tree[b-letmdbju9p]  .nav-item-secondary {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-rail-tree[b-letmdbju9p]  .site-rail-room::before {
    position: absolute;
    content: "";
    top: 0.5rem;
    bottom: 0.5rem;
    left: 0.125rem;
    width: 0.1875rem;
    border-radius: var(--rz-border-radius);
}

.site-rail-tree[b-letmdbju9p]  .site-rail-room:hover::before {
    background-color: var(--rz-base-200);
}

.site-rail-tree[b-letmdbju9p]  .site-rail-room.active::before,
.site-rail-tree[b-letmdbju9p]  .site-rail-room:has(a.active)::before {
    background-color: var(--rz-panel-menu-item-active-indicator);
}

.site-rail-tree[b-letmdbju9p]  .site-rail-room .nav-item-border::before {
    display: none;
}

.site-rail-tree[b-letmdbju9p]  .site-rail-plenum-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

.site-rail-tree[b-letmdbju9p]  .site-rail-plenum {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    padding: 0.1rem 0.45rem 0.1rem 0.3rem;
    border-radius: 999px;
    color: var(--rz-text-secondary-color);
    background-color: color-mix(in srgb, var(--rz-text-secondary-color) 14%, transparent);
    font-size: var(--rz-text-caption-font-size);
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.site-rail-tree[b-letmdbju9p]  .site-rail-plenum__icon {
    font-size: 0.875rem;
}

@media (forced-colors: active) {
    .site-rail-tree[b-letmdbju9p]  .site-rail-plenum {
        border: 1px solid CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
}
/* /Modules/LoadDesign/Pages/Component/SiteRailNameNode.razor.rz.scp.css */
.site-rail-name-edit[b-mxzqorcf0w] {
    display: flex;
    align-items: center;
    gap: var(--tt-spacing-1, 0.25rem);
    padding: var(--tt-spacing-1, 0.25rem) var(--tt-spacing-2, 0.5rem);
}

.site-rail-name-input[b-mxzqorcf0w] {
    flex: 1 1 auto;
    min-width: 0;
}

.site-rail-name-edit-children[b-mxzqorcf0w] {
    margin-left: 1.5rem;
}
/* /Modules/LoadDesign/Pages/Dashboard.razor.rz.scp.css */
.load-design-dashboard[b-9r1fbzb3at] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-height: 0;
    padding: 0.75rem;
    overflow-y: auto;
}

/* Conserve horizontal space so the model columns fit the card and horizontal scroll is a last
   resort rather than forced; paging keeps rows short so the grid never scrolls vertically. */
.load-design-dashboard-grid[b-9r1fbzb3at] {
    overflow-x: auto;
}

/* Fill the card when there is room, but keep each column at its readable width and scroll
   horizontally (never compress/clip values) once the card is narrower than the columns need. */
.load-design-dashboard-grid[b-9r1fbzb3at]  .rz-grid-table {
    width: 100%;
    min-width: max-content;
}

.load-design-dashboard-grid[b-9r1fbzb3at]  .rz-grid-table th,
.load-design-dashboard-grid[b-9r1fbzb3at]  .rz-grid-table td {
    padding-inline: 0.4rem;
}

.load-design-dashboard-status[b-9r1fbzb3at] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    border-radius: 0.75rem;
    background: var(--rz-base-background-color, var(--rz-white));
    box-shadow: var(--rz-shadow-1);
    color: var(--rz-text-secondary-color);
}

.load-design-dashboard-card-title[b-9r1fbzb3at] {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 0.5rem;
}

.load-design-dashboard-card-title > .material-symbols-outlined[b-9r1fbzb3at] {
    color: var(--rz-primary);
}
/* /Modules/Plants/Pages/Component/CoolingTab.razor.rz.scp.css */
/* provide spacing between primary pump card and the tower props card at 1024px and below*/
@media (width <= 1024px) {
  .primary-pump-column[b-jp1t3gn50f] {
    margin-bottom: 1.5rem;
  }
}
/* /Modules/Plants/Pages/Component/HeatingTab.razor.rz.scp.css */
/* provide spacing between primary pump card and the secondary pump card, at 1024px and below*/
@media (width <= 1024px) {
  .primary-pump-props-column[b-mxow4yj6yv] {
    margin-bottom: 1.5rem;
  }
}
/* /Modules/Plants/Pages/Component/SequenceActivationCard.razor.rz.scp.css */
.sequence-range-container[b-0c26w0jh2s] {
    padding: 10px 10px 20px;
    position: relative;
}

.sequence-scale[b-0c26w0jh2s] {
    position: relative;
    height: 40px;
    display: flex;
    margin-bottom: 10px;
}

.scale-line[b-0c26w0jh2s] {
    position: absolute;
    bottom: 12px;
    left: 0;
    right: 0;
    height: 2px;
    background: #6c757d;
}

.scale-boundary[b-0c26w0jh2s] {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: translateX(-50%);
    z-index: 2;
}

    .scale-boundary span[b-0c26w0jh2s] {
        font-size: 0.8rem;
        color: #495057;
        font-weight: 600;
        white-space: nowrap;
        margin-bottom: 4px;
    }

.boundary-tick[b-0c26w0jh2s] {
    width: 3px;
    height: 12px;
    background: #495057;
    border-radius: 1px;
}

.sequence-range-track[b-0c26w0jh2s] {
    position: relative;
    height: 60px;
    background: #6400ff;
    border-radius: 8px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
    overflow: hidden;
}

.sequence-segment[b-0c26w0jh2s] {
    position: absolute;
    height: 100%;
    background: #6400ff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    border-right: 2px solid #fff;
    cursor: pointer;
}


    .sequence-segment.drop-highlight[b-0c26w0jh2s] {
        background: #6400ff;
        box-shadow: 0 0 20px rgba(108, 92, 231, 0.7);
        border: 3px solid #ffc107;
        z-index: 10;
    }

    .sequence-segment.selected-for-deletion[b-0c26w0jh2s] {
        background: var(--trane-primary);
        box-shadow: 0 0 20px var(--trane-primary);
        transform: scale(1.02);
        z-index: 10;
        animation: pulse-red-b-0c26w0jh2s 1s ease-in-out infinite;
    }

@keyframes pulse-red-b-0c26w0jh2s {
    0%, 100% {
        box-shadow: 0 0 20px var(--trane-primary);
    }

    50% {
        box-shadow: 0 0 30px var(--trane-primary);
    }
}

.segment-label[b-0c26w0jh2s] {
    color: white;
    font-weight: 600;
    font-size: 0.85rem;
    text-align: center;
    padding: 0 8px;
    user-select: none;
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.assigned-sequence-badge[b-0c26w0jh2s] {
    background: #6400ff;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    backdrop-filter: blur(5px);
}

.segment-divider[b-0c26w0jh2s] {
    position: absolute;
    right: -1px;
    top: 0;
    width: 2px;
    height: 100%;
    background: #fff;
    box-shadow: 0 0 4px rgba(0,0,0,0.3);
}

.sequence-badge[b-0c26w0jh2s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    background: #6400ff;
    color: white;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: grab;
    transition: none;
    border: 2px solid transparent;
    user-select: none;
    min-width: 140px;
}


    .sequence-badge.assigned[b-0c26w0jh2s] {
        opacity: 0.5;
        cursor: not-allowed;
        background: #6400ff;
    }

    .sequence-badge.dragging[b-0c26w0jh2s] {
        opacity: 0.5;
        cursor: grabbing;
        transform: scale(0.95);
    }

    .sequence-badge:not(.assigned)[b-0c26w0jh2s] {
        cursor: grab;
        background: #6400ff;
    }

.btn-group .btn[b-0c26w0jh2s] {
    white-space: normal;
    padding: 10px 12px;
    font-size: 0.9rem;
}

.btn-group .btn.btn-outline-primary:hover[b-0c26w0jh2s] {
    background-color: rgba(255, 43, 0, 0.1);
    color: #FF2B00;
    border-color: #FF2B00;
}

.boundary-handle[b-0c26w0jh2s] {
    position: absolute;
    top: -25px;
    transform: translateX(-50%);
    z-index: 30;
    cursor: ew-resize !important;
    user-select: none;
    transition: none;
}

.boundary-handle-grip[b-0c26w0jh2s] {
    width: 3px;
    height: 85px;
    background: #007bff;
    border-radius: 2px;
    border: 1px solid white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    transition: none;
    pointer-events: none;
}

.boundary-handle:hover .boundary-handle-grip[b-0c26w0jh2s] {
    background: #0056b3;
    width: 5px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

.boundary-handle-value[b-0c26w0jh2s] {
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    background: #007bff;
    color: white;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.85rem;
    white-space: nowrap;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    pointer-events: none;
}
/* /Modules/Plants/Pages/Component/SequenceCard.razor.rz.scp.css */
.sequence-splitter[b-6tp5ksm1cx] {
    width: 12px;
    cursor: col-resize;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease;
    touch-action: none;
    user-select: none;
    flex-shrink: 0;
}

.sequence-splitter-handle[b-6tp5ksm1cx] {
    width: 5px;
    height: 40px;
    background-color: var(--rz-base-400, #ccc);
    border-radius: 2px;
    transition: background-color 0.15s ease;
}

.sequence-splitter:hover .sequence-splitter-handle[b-6tp5ksm1cx] {
    background-color: var(--rz-primary, #007bff);
}
/* /Modules/Plants/Pages/Dashboard.razor.rz.scp.css */
.ptext-header[b-f33yxch427] {
  text-transform: uppercase;
  text-align: left;
  font-weight: 800;
  font-size: 0.7rem;
  letter-spacing: 0.05rem;
}

.ptext-info[b-f33yxch427] {
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

[b-f33yxch427] .card:hover {
  cursor: pointer;
}

/* /Modules/Plants/Pages/_Layout.razor.rz.scp.css */

[b-txnjxt1ok4] .sidebar-kebab {
    display: inline-flex;
    padding: 0;
}

.icon-text[b-txnjxt1ok4] {
    display: flex;
    padding-right: .5rem;
    align-items: center;
}

span[b-txnjxt1ok4] {
    display: flex;
}

/* /Modules/Plants/Services/GoJS/Component/GoJsPlantImage.razor.rz.scp.css */
.trace-image[b-trxo6kyecu] {
    object-fit: cover;
    border-radius: var(--bs-border-radius);
}
/* /Modules/Projects/Pages/Component/AlternativePageView.razor.rz.scp.css */
.alt-card-header-input-and-colorpicker-box[b-8jeb5yey43] {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: -0.5rem; /* trick to align with the input box, as well */
}

.collapse-button-box[b-8jeb5yey43] {
  min-width: 1rem;
  max-width: 2rem;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  flex-grow: 0;
  flex-basis: auto;
  margin-top: 0.3rem; /* trick to align with the input box */
}

/* Ensure the row uses flexbox properly and prevents wrapping */
.card-header .row[b-8jeb5yey43] {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
}

/* Make the col containing CardTitle take available space but not push collapse button */
.card-header .row > .col[b-8jeb5yey43] {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.alt-input-box[b-8jeb5yey43] {
  flex: 1;
  padding-right: 1rem;
}

.alt-delete-button-box[b-8jeb5yey43] {
  padding-left: 0.5rem;
}

.alt-colorpicker-and-delete-button-box[b-8jeb5yey43] {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: center;
  padding-top: 0.5rem;
  width: 9%;
}

@media (max-width: 1380px) {
  .alt-colorpicker-and-delete-button-box[b-8jeb5yey43] {
    width: 15%;
  }
}
@media (max-width: 1030px) {
  .alt-colorpicker-and-delete-button-box[b-8jeb5yey43] {
    width: 15%;
  }
}

@media (max-width: 992px) {
  .alt-card-header-input-and-colorpicker-box[b-8jeb5yey43] {
    flex-direction: column;
    align-items: flex-start;
  }
  .collapse-button-box[b-8jeb5yey43] {
    margin-top: 0;
  }
  .alt-input-box[b-8jeb5yey43] {
    width: 100%;
    padding-right: 0;
  }
  .alt-colorpicker-and-delete-button-box[b-8jeb5yey43] {
    width: 100%;
    justify-content: flex-start;
  }
}

/* /Modules/Projects/Pages/Component/List/AlternativeViewItem.razor.rz.scp.css */
a:hover[b-jur1or5r6t] {
    cursor: pointer;
}

.card-footer[b-jur1or5r6t] {
    background-color: #FF2B00;
}

.card-body-text[b-jur1or5r6t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
}

span[b-jur1or5r6t] {
    display: table-cell;
    vertical-align: middle;
}

.text-body-primary[b-jur1or5r6t]{
    color: white;
}
/* /Modules/Projects/Pages/Component/List/ProjectItemCard.razor.rz.scp.css */
.pcard[b-thoymubbtq] {
  width: 30rem;
  position: relative;
  cursor: pointer;
}

.pcard:hover[b-thoymubbtq] {
  transition: all 0.25s ease;
  box-shadow: var(--elevation-16);
}

.pcard:hover .tt-off[b-thoymubbtq] {
  display: inline-block;
}

.pcard:hover .tt-on[b-thoymubbtq] {
  display: none;
}

.tt-off[b-thoymubbtq] {
  display: none;
}

.ptext-header[b-thoymubbtq] {
  height: 3.75rem;
  padding-top: 0.25rem;
  text-align: left;
  font-weight: bold;
  letter-spacing: 0.05rem;
}

.ptext-info[b-thoymubbtq] {
  overflow: hidden;
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.project-name[b-thoymubbtq] {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.row-float[b-thoymubbtq] {
  position: absolute;
  top: 0rem;
  left: 0rem;
  z-index: 401;
  display: flex;
  flex-direction: row;
  min-width: 100%;
  align-items: center;
  text-align: center;
}

.modes-icon-container[b-thoymubbtq] {
  flex: 0 0 auto;
  width: 8.333333%;
  text-align: center;
  align-self: center;
  margin-inline-start: 0.25rem;
  margin-bottom: 0.5rem;
}

.tt-icon[b-thoymubbtq] {
  transition: all 0.25s ease;
  border: none;
  opacity: 0.75;
}

.tt-icon:hover[b-thoymubbtq] {
  opacity: 1;
  transform: scale(1.25);
}

.project-image[b-thoymubbtq] {
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (max-width: 768px) {
  .pcard[b-thoymubbtq] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    min-width: 0 !important;
  }

  /* Ensure card body and content respect width */
  .pcard .card-body[b-thoymubbtq],
  .pcard .card-footer[b-thoymubbtq] {
    box-sizing: border-box;
    max-width: 100%;
    overflow-x: hidden;
  }

  .project-image[b-thoymubbtq] {
    margin-top: 1rem;
    width: 100%;
    height: 100%;
  }

  .project-name[b-thoymubbtq] {
    padding: 1rem;
    margin-bottom: 1rem;
  }
  .project-description[b-thoymubbtq] {
    padding: 0 1rem;
  }

  /* Ensure row-float doesn't cause overflow */
  .pcard .row-float[b-thoymubbtq] {
    max-width: 100%;
    box-sizing: border-box;
  }
  /* Mode of Operations Icon Container   */
  .modes-icon-container[b-thoymubbtq] {
    margin-right: 1rem;
  }
}
/* /Modules/Projects/Pages/Component/ModeOfOperationSelectionCard.razor.rz.scp.css */
.mode-of-operation-selection-card-body[b-sv4w2l98q1] {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}

.mode-of-operation-selection-card-body-left[b-sv4w2l98q1] {
  width: 45%;
}

.mode-of-operation-selection-card-body-right[b-sv4w2l98q1] {
  flex: 1;
}

/* Media queries for small screens */
@media (max-width: 1200px) {
  .mode-of-operation-selection-card-body[b-sv4w2l98q1] {
    flex-direction: column;
  }
  .mode-of-operation-selection-card-body-left[b-sv4w2l98q1] {
    width: 100%;
  }
  .mode-of-operation-selection-card-body-right[b-sv4w2l98q1] {
    margin-top: -1rem;
  }
  .nav-pills[b-sv4w2l98q1] {
    font-size: small !important;
  }
}

/* /Modules/PsychSolver/Pages/Component/TableTab.razor.rz.scp.css */
/* State Points: ensure table fits within capture width without clipping */
[b-smrdafbgal] .psych-state-points table {
    table-layout: auto;
    width: 100%;
}

[b-smrdafbgal] .psych-state-points table col:first-child,
[b-smrdafbgal] .psych-state-points table th:first-child,
[b-smrdafbgal] .psych-state-points table td:first-child {
    width: 14%;
    white-space: nowrap;
}

[b-smrdafbgal] .psych-state-points table th,
[b-smrdafbgal] .psych-state-points table td {
    white-space: nowrap;
    font-size: 0.7rem;
    padding: 2px 4px;
}

/* Load Summary: Parameter column 20%, data columns share remaining 80% equally */
[b-smrdafbgal] .psych-load-summary table col:first-child,
[b-smrdafbgal] .psych-load-summary table th:first-child,
[b-smrdafbgal] .psych-load-summary table td:first-child {
    width: 20%;
    white-space: nowrap;
}

[b-smrdafbgal] .psych-load-summary table th,
[b-smrdafbgal] .psych-load-summary table td {
    white-space: nowrap;
    font-size: 0.75rem;
    padding: 2px 4px;
}
/* /Modules/Reports/Pages/Component/AlternativeItem.razor.rz.scp.css */
.alternative-item[b-375zkf88nj] {
    display: flex;
    align-items: center;
    padding: 0.5rem;
    min-height: 44px;
    background-color: var(--rz-base-background-color);
    border: 1px solid var(--rz-border-color);
    border-radius: 4px;
    font-size: 0.75rem;
    user-select: none;
    box-sizing: border-box;
}

    .alternative-item:hover[b-375zkf88nj] {
        background-color: var(--rz-base-800);
        box-shadow: 0 2px 4px rgba(0,0,0,0.15);
    }

    .alternative-item.dragging[b-375zkf88nj] {
        opacity: 0.4;
    }

        .alternative-item.dragging *[b-375zkf88nj] {
            pointer-events: none;
        }

.benchmark-item[b-375zkf88nj] {
    background-color: rgba(255, 43, 0, 0.08);
    border: 1px solid rgba(255, 43, 0, 0.2);
}

    .benchmark-item:hover[b-375zkf88nj] {
        background-color: rgba(255, 43, 0, 0.12);
    }

.comparison-item[b-375zkf88nj] {
    background-color: rgba(255, 43, 0, 0.05);
    border: 1px solid rgba(255, 43, 0, 0.15);
}

    .comparison-item:hover[b-375zkf88nj] {
        background-color: rgba(255, 43, 0, 0.08);
    }

.available-item[b-375zkf88nj] {
    background-color: rgba(255, 43, 0, 0.03);
    border: 1px solid rgba(255, 43, 0, 0.1);
    margin-bottom: 0.25rem;
}

    .available-item:last-child[b-375zkf88nj] {
        margin-bottom: 0;
    }

    .available-item:hover[b-375zkf88nj] {
        background-color: rgba(255, 43, 0, 0.06);
    }

.alternative-name[b-375zkf88nj] {
    flex-grow: 1;
    margin-left: 0.25rem;
    margin-right: 0.25rem;
    font-size: 0.75rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.2;
}

.drag-handle[b-375zkf88nj] {
    color: var(--rz-text-secondary-color);
    font-size: 1.25rem;
    flex-shrink: 0;
}

.alternative-item .material-symbols-outlined[b-375zkf88nj] {
    font-size: 1.25rem;
    line-height: 1;
    width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.alternative-item button .material-symbols-outlined[b-375zkf88nj] {
    color: var(--rz-text-secondary-color);
}

.alternative-item button:hover .material-symbols-outlined[b-375zkf88nj] {
    opacity: 0.7;
}
/* /Modules/Reports/Pages/Component/AlternativeSelector.razor.rz.scp.css */
.benchmark-drop-zone[b-pjilek5lra],
.selected-drop-zone[b-pjilek5lra],
.available-drop-zone[b-pjilek5lra] {
    min-height: 44px;
    padding: 0;
    background-color: var(--rz-background-color);
    border: 2px solid transparent;
    border-radius: 4px;
    box-sizing: border-box;
}

    .comparison-slot.drop-zone-available[b-pjilek5lra],
    .benchmark-drop-zone.drop-zone-available[b-pjilek5lra],
    .available-drop-zone.drop-zone-available[b-pjilek5lra] {
        background-color: rgba(255, 43, 0, 0.08);
        border-color: rgba(255, 43, 0, 0.5);
    }

    .benchmark-drop-zone.drop-invalid[b-pjilek5lra],
    .available-drop-zone.drop-invalid[b-pjilek5lra] {
        background-color: rgba(220, 53, 69, 0.08);
        border-color: rgba(220, 53, 69, 0.5);
        opacity: 0.6;
    }

.comparison-slot[b-pjilek5lra] {
    margin-bottom: 0.25rem;
    border: 2px solid transparent;
    border-radius: 4px;
    box-sizing: border-box;
}

    .comparison-slot:last-child[b-pjilek5lra] {
        margin-bottom: 0;
    }

    .comparison-slot.drop-zone-available[b-pjilek5lra] {
        background-color: rgba(255, 43, 0, 0.08);
        border-color: rgba(255, 43, 0, 0.5);
    }

.alternative-item-empty[b-pjilek5lra] {
    padding: 0.5rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed rgba(128, 128, 128, 0.3);
    border-radius: 4px;
    color: var(--rz-text-secondary-color);
    font-size: 0.75rem;
    background-color: rgba(128, 128, 128, 0.02);
    font-style: italic;
    box-sizing: border-box;
}

    .alternative-item-empty .material-symbols-outlined[b-pjilek5lra] {
        font-size: 1.25rem;
        line-height: 1;
        width: 1.25rem;
        height: 1.25rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
/* /Modules/Reports/Pages/Component/Cards/EnergySummaryCard.razor.rz.scp.css */
/* Prevent carbon emission inputs from causing horizontal scroll on small widths */
.carbon-emission-inputs[b-t4wqiahhd0] {
    min-width: 0;
}

.carbon-emission-inputs [class^="col-"][b-t4wqiahhd0] {
    min-width: 0;
}

.carbon-emission-inputs[b-t4wqiahhd0]  input {
    font-family: monospace;
}

.editable-cell[b-t4wqiahhd0] {
    cursor: pointer;
    padding: 2px 0;
    border-radius: 2px;
    transition: background-color 0.2s;
    display: inline-flex;
    align-items: center;
    position: relative;
}

.editable-cell:hover[b-t4wqiahhd0] {
    background-color: rgba(0, 123, 255, 0.08);
}

.editable-cell .edit-icon[b-t4wqiahhd0] {
    position: absolute;
    right: calc(100% + 2px);
    font-size: 0.85rem;
    opacity: 0.1;
    transition: opacity 0.2s;
    pointer-events: none;
}

.editable-cell:hover .edit-icon[b-t4wqiahhd0] {
    opacity: 0.6;
}

.editable-cell-container[b-t4wqiahhd0] {
    padding: 0;
    margin: 0;
}

@media print {
    .editable-cell[b-t4wqiahhd0] {
        cursor: default;
        padding: 2px 0;
    }

    .editable-cell:hover[b-t4wqiahhd0] {
        background-color: transparent;
    }

    .editable-cell .edit-icon[b-t4wqiahhd0] {
        display: none;
    }
}
/* /Modules/Reports/Pages/Component/Cards/ProjectInformationCard.razor.rz.scp.css */
.project-information-card[b-xn3hvopiud] {
  text-align: left;
  padding: 1rem 1.5rem;
}

.project-information-card-title[b-xn3hvopiud] {
  font-size: clamp(2rem, 4vw, 1.75rem);
  font-weight: 600;
  line-height: 1.3;
}

.project-information-card-description[b-xn3hvopiud] {
  line-height: 1.5;
}

.project-information-card-meta dt[b-xn3hvopiud] {
  font-size: 0.8rem;
  font-weight: 600;
  /* color: var(--bs-secondary-color); */
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.project-information-card-image[b-xn3hvopiud] {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.project-compared-alternatives-title[b-xn3hvopiud] {
  font-size: 1.125rem;
  font-weight: 600;
}
.project-compared-alternatives-list[b-xn3hvopiud] {
  line-height: 2rem;
}
.project-compared-alternatives-list-item[b-xn3hvopiud] {
  font-size: 0.875rem;
  font-weight: 400;
}
.project-list-item-name[b-xn3hvopiud] {
  font-size: 0.875rem;
  font-weight: 600;
  /* color: var(--bs-secondary-color); */
}
.project-list-item-calculation-time[b-xn3hvopiud] {
  font-size: 0.875rem;
  font-weight: 400;
}

@media (max-width: 991.98px) {
  .project-information-card-title[b-xn3hvopiud] {
    font-size: clamp(1.75rem, 4vw, 1.75rem);
  }
  .project-information-card-image[b-xn3hvopiud] {
    max-height: 12rem;
    width: auto;
  }
  .project-information-card-meta dd[b-xn3hvopiud] {
    font-size: 0.9rem;
  }
}
/* /Modules/Reports/Pages/Component/ReportMenu.razor.rz.scp.css */
.report-menu-container[b-u8va22y700] {
  --menu-transition: 0.3s ease-in-out;
  grid-area: sideMenu;
  display: flex;
  align-items: flex-start;
  position: relative;
  transition: width var(--menu-transition);
}

.report-menu-container.expanded[b-u8va22y700] {
  width: 19rem;
}

.report-menu-container.collapsed[b-u8va22y700] {
  width: 2rem;
}

.report-menu-container[b-u8va22y700]  .side-menu-wrap {
  transition:
    transform var(--menu-transition),
    opacity var(--menu-transition);
}

.report-menu-container.collapsed[b-u8va22y700]  .side-menu-wrap {
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
}

.collapse-toggle-btn[b-u8va22y700] {
  position: absolute;
  left: 17rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 4rem;
  background-color: var(--rz-base-background-color);
  border: 0.5px solid transparent;
  border-left: none;
  border-top: 1px solid var(--rz-base-200);
  border-right: 1px solid var(--rz-base-200);
  border-bottom: 1px solid var(--rz-base-200);
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
  box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 801;
  transition:
    left var(--menu-transition),
    background-color var(--menu-transition);
}
/* Added so that the border color matches the theme for dark mode */
[data-bs-theme="dark"] .collapse-toggle-btn[b-u8va22y700] {
  border-top: 1px solid var(--rz-base-800);
  border-right: 1px solid var(--rz-base-800);
  border-bottom: 1px solid var(--rz-base-800);
}

.report-menu-container.collapsed .collapse-toggle-btn[b-u8va22y700] {
  /* Button moves to fill collapsed container: left: 0 */
  left: 0;
}

.collapse-toggle-btn:hover[b-u8va22y700] {
  background-color: var(--rz-panel-menu-hover-background-color);
}

.collapse-toggle-btn:active[b-u8va22y700] {
  background-color: var(--rz-panel-menu-item-active-background-color);
}

.collapse-toggle-btn i[b-u8va22y700] {
  color: var(--rz-text-color);
  font-size: 1.5rem;
  transition: transform var(--menu-transition);
}

@media (max-width: 768px) {
  /*
   * Menu content is shown in traceSideMenuOffcanvas
   * when the user taps the side-menu-mobile-trigger (FAB). No persistent sidebar.
   * Override both .expanded and .collapsed so the grid column shrinks (higher
   * specificity than the desktop rules that set width: 19rem / 2rem).
   */
  .report-menu-container[b-u8va22y700],
  .report-menu-container.expanded[b-u8va22y700],
  .report-menu-container.collapsed[b-u8va22y700] {
    width: 0;
    min-width: 0;
    overflow: visible;
  }

  .report-menu-container .collapse-toggle-btn[b-u8va22y700] {
    display: none;
  }
}
/* /Modules/Reports/Pages/Reports.razor.rz.scp.css */
.icon-text[b-b23vc74icd] {
    display: flex;
    align-items: center;
}
/* /Modules/Reports/Pages/_Layout.razor.rz.scp.css */

.tab-box[b-c8xwdgca6w] {
    margin: 1rem .5rem 1rem .5rem;
}

@media (max-width: 767.98px) {
    .grid-container:has(.report-menu-container.expanded)[b-c8xwdgca6w] {
        column-gap: 2rem;
    }
}

/* /Modules/Systems/Pages/Component/SystemSchematicImage.razor.rz.scp.css */
.system-schematic-image[b-1ajjlk3l2w] {
    max-width: 100%;
    height: auto;
}

.system-schematic-image-dark[b-1ajjlk3l2w] {
    display: none;
}

:global([data-bs-theme="dark"]) .system-schematic-image-light[b-1ajjlk3l2w] {
    display: none;
}

:global([data-bs-theme="dark"]) .system-schematic-image-dark[b-1ajjlk3l2w] {
    display: inline-block;
}
/* /Modules/Systems/Pages/Component/TerminalDeviceList.razor.rz.scp.css */
/* ══════════════════════════════════════════════
               SCROLLABLE LIST CONTAINER
            ══════════════════════════════════════════════ */

.device-list-container[b-cg6hp6zlsy] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-height: 0;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: var(--bs-border-color) var(--bs-secondary-bg);
}

    .device-list-container[b-cg6hp6zlsy]::-webkit-scrollbar {
        width: 6px;
    }

    .device-list-container[b-cg6hp6zlsy]::-webkit-scrollbar-track {
        background: var(--bs-secondary-bg);
        border-radius: 3px;
    }

    .device-list-container[b-cg6hp6zlsy]::-webkit-scrollbar-thumb {
        background: var(--bs-border-color);
        border-radius: 3px;
    }

        .device-list-container[b-cg6hp6zlsy]::-webkit-scrollbar-thumb:hover {
            background: var(--bs-secondary-color);
        }

/* ─── Add button must not shrink away ─── */
.device-list-container > .btn[b-cg6hp6zlsy] {
    flex-shrink: 0;
}

/* ══════════════════════════════════════════════
               DEVICE LIST ITEM
            ══════════════════════════════════════════════ */

.device-list-item[b-cg6hp6zlsy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    transition: all 0.2s;
    position: relative;
    flex-shrink: 0;
}

    .device-list-item[draggable="true"][b-cg6hp6zlsy] {
        cursor: grab;
    }

        .device-list-item[draggable="true"]:active[b-cg6hp6zlsy] {
            cursor: grabbing;
        }

    .device-list-item:hover[b-cg6hp6zlsy] {
        background: var(--bs-secondary-bg);
        border-color: var(--bs-primary);
    }

.device-list-item--selected[b-cg6hp6zlsy] {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary);
    border-left: 3px solid var(--bs-primary);
}

.device-list-item-content[b-cg6hp6zlsy] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.device-list-item-name[b-cg6hp6zlsy] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bs-emphasis-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.device-list-item-actions[b-cg6hp6zlsy] {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-shrink: 0;
}

/* ── Color chip ── */
.device-status-dot[b-cg6hp6zlsy] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px var(--bs-body-bg);
    transition: transform 0.2s;
}

    .device-status-dot:hover[b-cg6hp6zlsy] {
        transform: scale(1.3);
    }

/* ── Options icon button ── */
.btn-icon[b-cg6hp6zlsy] {
    padding: 4px;
    line-height: 1;
    background: transparent;
    border: none;
    color: var(--bs-secondary-color);
    transition: color 0.2s;
}

    .btn-icon:hover[b-cg6hp6zlsy] {
        color: var(--bs-primary);
        background: transparent;
    }

    .btn-icon .material-symbols-outlined[b-cg6hp6zlsy] {
        font-size: 18px;
    }

/* ── Inline rename input ── */
.rename-input[b-cg6hp6zlsy] {
    flex: 1;
    min-width: 120px;
    font-size: 0.875rem;
    padding: 2px 6px;
    height: 24px;
}
/* /Modules/Systems/Pages/Component/TerminalDeviceTab.razor.rz.scp.css */
/* ══════════════════════════════════════════════
               LAYOUT STRUCTURE
            ══════════════════════════════════════════════ */

.td-container[b-5xd2unv1q8] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: calc(100vh - 200px);
    width: 100%;
}

.td-main-row[b-5xd2unv1q8] {
    display: grid;
    grid-template-columns: 260px 1fr 320px;
    gap: 20px;
    height: 500px;
    max-height: 500px;
    flex-shrink: 0;
    overflow: hidden;
}

.td-equipment-row[b-5xd2unv1q8] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 0;
}

.td-container.is-dragging[b-5xd2unv1q8] {
    cursor: grab;
}

/* ══════════════════════════════════════════════
               RESPONSIVE — TABLET (≤ 1024px)
            ══════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .td-main-row[b-5xd2unv1q8] {
        grid-template-columns: 220px 1fr 260px;
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .td-equipment-row[b-5xd2unv1q8] {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ══════════════════════════════════════════════
               RESPONSIVE — MOBILE (≤ 768px)
            ══════════════════════════════════════════════ */

@media (max-width: 768px) {
    .td-container[b-5xd2unv1q8] {
        min-height: unset;
    }

    .td-main-row[b-5xd2unv1q8] {
        grid-template-columns: 1fr;
        height: auto;
        max-height: none;
        overflow: visible;
        gap: 12px;
    }

    .td-tree-column[b-5xd2unv1q8],
    .td-zone-column[b-5xd2unv1q8],
    .td-properties-column[b-5xd2unv1q8] {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .td-equipment-row[b-5xd2unv1q8] {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
               LEFT COLUMN - DEVICE LIST
            ══════════════════════════════════════════════ */

.td-tree-column[b-5xd2unv1q8] {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ══════════════════════════════════════════════
               CENTER COLUMN - ZONE VISUALIZATION
            ══════════════════════════════════════════════ */

.td-zone-column[b-5xd2unv1q8] {
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 300px;
}

/* ══════════════════════════════════════════════
               RIGHT COLUMN - CONFIGURATION PANEL
            ══════════════════════════════════════════════ */

.td-properties-column[b-5xd2unv1q8] {
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
}

.config-panel-empty[b-5xd2unv1q8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    color: var(--bs-secondary-color);
}

    .config-panel-empty .material-symbols-outlined[b-5xd2unv1q8] {
        font-size: 48px;
        opacity: 0.5;
        margin-bottom: 8px;
    }

    .config-panel-empty p[b-5xd2unv1q8] {
        margin: 0;
        font-size: 0.875rem;
    }
/* /Modules/Systems/Pages/Component/ZoneVisualization.razor.rz.scp.css */
/* ══════════════════════════════════════════════
               ZONE WIDGET SHELL
            ══════════════════════════════════════════════ */

.zone-widget[b-7kkidpcpuz] {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
}

:global([data-bs-theme="dark"]) .zone-widget[b-7kkidpcpuz] {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.zone-widget-header[b-7kkidpcpuz] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--bs-border-color);
    flex-shrink: 0;
    background: var(--bs-secondary-bg);
}

.zone-widget-title[b-7kkidpcpuz] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--bs-emphasis-color);
}

.zone-widget-body[b-7kkidpcpuz] {
    flex: 1;
    width: 100%;
    height: 100%;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;       
    min-height: 0;
    container-type: inline-size;
    position: relative;
}

/* ══════════════════════════════════════════════
               ZONE PERSPECTIVE GRID
            ══════════════════════════════════════════════ */

.zone-perspective[b-7kkidpcpuz] {
    --zp-sm: clamp(60px, 13cqw, 100px);
    --zp-lg: clamp(120px, 26cqw, 200px);
    --zp-gap: 10px;
    position: relative;
    flex-shrink: 0;
    width: calc(var(--zp-sm) * 2 + var(--zp-lg) + var(--zp-gap) * 2);
    height: calc(var(--zp-sm) * 2 + var(--zp-lg) + var(--zp-gap) * 2);
    display: grid;
    grid-template-columns: var(--zp-sm) var(--zp-lg) var(--zp-sm);
    grid-template-rows: var(--zp-sm) var(--zp-lg) var(--zp-sm);
    gap: var(--zp-gap);
    background: transparent;
}

/* ─── Room base ─── */
.zone-room[b-7kkidpcpuz] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    box-sizing: border-box;
    background-color: transparent;
    border: 1px solid #dcdcdc;
    border-radius: 12px;
}

/* ─── Zone Positions ─── */

.zone-center[b-7kkidpcpuz] {
    grid-column: 2;
    grid-row: 2;
    border: 1px solid #dcdcdc;
    border-radius: 16px;
    background-color: #ffffff;
}

.zone-top[b-7kkidpcpuz] {
    grid-column: 1 / span 3;
    grid-row: 1;
    clip-path: polygon(0% 0%, 100% 0%, 75% 100%, 25% 100%);
}

.zone-bottom[b-7kkidpcpuz] {
    grid-column: 1 / span 3;
    grid-row: 3;
    clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%);
}

.zone-left[b-7kkidpcpuz] {
    grid-column: 1;
    grid-row: 1 / span 3;
    clip-path: polygon(0% 0%, 100% 25%, 100% 75%, 0% 100%);
}

.zone-right[b-7kkidpcpuz] {
    grid-column: 3;
    grid-row: 1 / span 3;
    clip-path: polygon(0% 25%, 100% 0%, 100% 100%, 0% 75%);
}

/* ─── Zone States ─── */

.zone-room--empty[b-7kkidpcpuz] {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

    .zone-room--empty[b-7kkidpcpuz]::before {
        content: '';
        position: absolute;
        inset: 0;
        background: repeating-linear-gradient(
            45deg,
            transparent,
            transparent 10px,
            var(--bs-secondary-bg) 10px,
            var(--bs-secondary-bg) 20px
        );
        pointer-events: none;
        border-radius: inherit;
        clip-path: inherit;
    }

.zone-room--active[b-7kkidpcpuz] {
    background: color-mix(in srgb, var(--room-color, var(--bs-primary)) 10%, var(--bs-body-bg));
    border-color: var(--room-color, var(--bs-primary));
    box-shadow:
        0 0 0 4px color-mix(in srgb, var(--room-color, var(--bs-primary)) 20%, transparent),
        0 8px 24px color-mix(in srgb, var(--room-color, var(--bs-primary)) 15%, transparent);
    cursor: grab;
}

.zone-room--drag-over[b-7kkidpcpuz] {
    background-color: rgba(147, 51, 234, 0.1) !important;
    border-color: #9333ea !important;
}

.zone-room:hover:not(.zone-room--drag-over)[b-7kkidpcpuz] {
    transform: scale(1.02);
    border-color: var(--bs-primary-border-subtle);
}

/* ─── Zone Room Content ─── */

.zone-room-content[b-7kkidpcpuz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    z-index: 1;
    padding: 8px;
}

.zone-icon-badge[b-7kkidpcpuz] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 0 15px rgba(147, 51, 234, 0.4);
}

:global([data-bs-theme="dark"]) .zone-icon-badge[b-7kkidpcpuz] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

    .zone-icon-badge .material-symbols-outlined[b-7kkidpcpuz] {
        font-size: 18px;
        color: var(--bs-primary);
    }

.zone-room--active .zone-icon-badge[b-7kkidpcpuz] {
    background: var(--room-color, var(--bs-primary));
}

.zone-room-label[b-7kkidpcpuz] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.zone-room--active .zone-room-label[b-7kkidpcpuz] {
    color: color-mix(in srgb, var(--room-color) 80%, #000000);
}

/* ─── Device Badge (draggable chip inside a zone) ─── */

.device-badge[b-7kkidpcpuz] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    cursor: grab;
    transition: all 0.2s;
    margin-top: 4px;
}

    .device-badge:active[b-7kkidpcpuz] {
        cursor: grabbing;
    }

    .device-badge:hover[b-7kkidpcpuz] {
        transform: scale(1.05);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    }

.device-badge-dot[b-7kkidpcpuz] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.device-badge-name[b-7kkidpcpuz] {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--bs-emphasis-color);
}

/* ══════════════════════════════════════════════
   COMPASS OVERLAY
   Mirrors babylonInterop.js createCompassWithLabels():
     img.width/height = "60px"  → --compass-size
     img.top/left     = "-20px" → --compass-offset (bottom/right)
   If babylonInterop.js values change, update only the custom properties below.
            ══════════════════════════════════════════════ */

.zone-compass-container[b-7kkidpcpuz] {
    --compass-size: 60px;
    --compass-offset: 20px;

    position: absolute;
    bottom: var(--compass-offset);
    right: var(--compass-offset);
    width: var(--compass-size);
    height: var(--compass-size);
    z-index: 10;
    pointer-events: none;
}

.zone-compass-img[b-7kkidpcpuz] {
    width: var(--compass-size);
    height: var(--compass-size);
    display: block;
    /* Compass.png's needle art has its tip baked in ~45deg clockwise of vertical (pointing
       NE, not up); this offsets that so the needle points true north when --compass-deg
       is 0deg, matching the -Math.PI/4 correction babylonInterop.js applies for the same
       artwork. */
    transform: rotate(-45deg);
}

.zone-compass-label[b-7kkidpcpuz] {
    position: absolute;
    font-size: 10px;
    font-weight: bold;
    width: 20px;
    height: 15px;
    text-align: center;
    line-height: 15px;
    transform: rotate(calc(-1 * var(--compass-deg)));
}

.zone-compass-n[b-7kkidpcpuz] { top: -16px;    left: 20px; }
.zone-compass-s[b-7kkidpcpuz] { bottom: -16px; left: 20px; }
.zone-compass-e[b-7kkidpcpuz] { right: -16px;  top: 23px;  }
.zone-compass-w[b-7kkidpcpuz] { left: -16px;   top: 23px;  }

[data-bs-theme="light"] .zone-compass-img[b-7kkidpcpuz]   { filter: brightness(0) opacity(0.7); }
[data-bs-theme="light"] .zone-compass-label[b-7kkidpcpuz] { color: rgba(0, 0, 0, 0.7); }
[data-bs-theme="dark"]  .zone-compass-img[b-7kkidpcpuz]   { filter: none; }
[data-bs-theme="dark"]  .zone-compass-label[b-7kkidpcpuz] { color: white; }



/* /Modules/Systems/Pages/Dashboard.razor.rz.scp.css */
.ptext-header[b-krolic06tk] {
    text-transform: uppercase;
    text-align: left;
    font-weight: 800;
    font-size: 0.7rem;
    letter-spacing: 0.05rem;
}

.ptext-info[b-krolic06tk] {
    text-align: left;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-krolic06tk] .card:hover {
    cursor: pointer;
}
/* /Modules/Systems/Pages/_Layout.razor.rz.scp.css */

[b-pop9gk5abm] .sidebar-kebab {
    display: inline-flex;
    padding: 0;
}

.icon-text[b-pop9gk5abm] {
    display: flex;
    padding-right: .5rem;
    align-items: center;
}

span[b-pop9gk5abm] {
    display: flex;
}

/* /Modules/User/Pages/Component/UserDropdown.razor.rz.scp.css */
.profile-box[b-pwoa10hozk] {
  display: flex;
  justify-content: center;
}

.profile-box > a[b-pwoa10hozk] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.75rem;
  border-radius: var(--bs-border-radius);
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.profile-box > a:hover[b-pwoa10hozk] {
  background-color: var(--rz-panel-menu-hover-background-color);
}

/* Remove outer wrapper border to avoid duplicate border */
.profile-box[b-pwoa10hozk]  .trace-image-container > .trace-image {
  border: none !important;
}

.pos-fixed[b-pwoa10hozk] {
  position: fixed !important;
}
/* /Modules/Weather/Pages/Component/DesignConditionSourceSelector.razor.rz.scp.css */
.design-condition-source-selector[b-z6xha9rfo9] {
  padding: 0;
  margin: 0;
  border: 0;
}

.design-condition-source-selector__row[b-z6xha9rfo9] {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 6px 10px;
}

.design-condition-source-selector__label[b-z6xha9rfo9] {
  flex: 0 0 auto;
  color: var(--rz-text-secondary-color, #605e5c);
  font-size: 11px;
  font-weight: 700;
  line-height: 26px;
  white-space: nowrap;
}

.design-condition-source-selector__options[b-z6xha9rfo9] {
  display: inline-flex;
  flex: 0 0 auto;
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  border-radius: 3px;
}

.design-condition-source-selector__option[b-z6xha9rfo9] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 3px 10px;
  border: 0;
  background: var(--rz-card-background-color, #fff);
  color: var(--rz-text-color, #201f1e);
  font-size: 11px;
  line-height: 18px;
  white-space: nowrap;
  cursor: pointer;
}

.design-condition-source-selector__option + .design-condition-source-selector__option[b-z6xha9rfo9] {
  border-left: 1px solid var(--rz-input-border-color, #c8c6c4);
}

.design-condition-source-selector__option:first-child[b-z6xha9rfo9] {
  border-radius: 2px 0 0 2px;
}

.design-condition-source-selector__option:last-child[b-z6xha9rfo9] {
  border-radius: 0 2px 2px 0;
}

.design-condition-source-selector__option:has(input:checked)[b-z6xha9rfo9] {
  background: var(--rz-primary, #0078d4);
  color: var(--rz-on-primary, #fff);
  font-weight: 600;
}

.design-condition-source-selector__option:focus-within[b-z6xha9rfo9] {
  outline: 2px solid var(--rz-primary, #0078d4);
  outline-offset: -2px;
  z-index: 1;
}

.design-condition-source-selector__option input[b-z6xha9rfo9] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.design-condition-source-selector__status[b-z6xha9rfo9] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  min-height: 20px;
  margin-top: 5px;
  color: var(--rz-text-secondary-color, #605e5c);
  font-size: 11px;
}

.design-condition-source-selector__retry[b-z6xha9rfo9] {
  padding: 0;
  margin-left: 4px;
  border: 0;
  background: transparent;
  color: var(--rz-link-color, #0067b8);
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}

.design-condition-source-selector__retry:focus-visible[b-z6xha9rfo9] {
  outline: 2px solid var(--rz-primary, #0078d4);
  outline-offset: 2px;
}
/* /Modules/Weather/Pages/Component/FloatingInfoCard.razor.rz.scp.css */
/* FloatingInfoCard scoped styles — anchored absolute over the Leaflet map, 5-region skeleton.
   Cross-component reusable rules (.weather-cz-chip, .weather-meta-text, .text-truncate-host)
   live in app.css. Bootstrap utilities cover layout primitives. */

/* Card root — absolute positioning, 420px desktop width with viewport-aware caps,
   stacked-shadow surface on top of the map host. Mockup index.html:1201-1219. */
.floating-info-card[b-uk6u76irab] {
  position: absolute;
  top: 16px;
  left: 16px;
  width: 420px;
  max-width: calc(100% - 32px);
  max-height: calc(100% - 32px);
  background: var(--rz-card-background-color, #fff);
  border: 1px solid var(--rz-border-base-700, #e7e5e2);
  border-radius: 6px;
  box-shadow:
    0px 8px 16px rgba(0, 0, 0, 0.15),
    0px 2px 4px rgba(0, 0, 0, 0.10);
  z-index: 500;
  overflow-y: auto;
}

/* Header — pin + name + sub + close-X (mockup index.html:1202-1211). */
.floating-info-card__header[b-uk6u76irab] {
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--rz-border-base-700, #edebe9);
  background: var(--rz-card-background-color, #fff);
}

.floating-info-card__pin[b-uk6u76irab] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 43, 0, 0.10);
  color: #ff2b00;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.floating-info-card__pin-icon[b-uk6u76irab] {
  font-size: 16px;
  font-variation-settings: "FILL" 1;
}

/* Header weatherStation-name primary line (14px semibold body color). */
.floating-info-card__title[b-uk6u76irab] {
  font-size: 14px;
  font-weight: 600;
  color: var(--rz-text-color, #201f1e);
}

.floating-info-card__close-btn[b-uk6u76irab] {
  width: 28px;
  height: 28px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--rz-text-secondary-color, #605e5c);
  cursor: pointer;
  flex-shrink: 0;
}

.floating-info-card__close-icon[b-uk6u76irab] {
  font-size: 18px;
}

/* Body grid — 2-col desktop, single-column stack at <480px (mobile-S 343px usable width).
   Mockup index.html:1831-1852, .info-card-body grid 01:965-971. */
.floating-info-card__body-grid[b-uk6u76irab] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  padding: 12px;
}

.floating-info-card__body-grid--full-row[b-uk6u76irab] {
  grid-column: 1 / -1;
}

/* Eyebrow label — base family (10px UPPER 0.06em tertiary 600).
   Consolidates 6 verbatim duplications in body-grid + source-row across the card.
   Modifier --strong for secondary-color 700 sub-region headers (Design conditions / Cooling / Heating). */
.floating-info-card__eyebrow[b-uk6u76irab] {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rz-text-tertiary-color, #8a8886);
  font-weight: 600;
}

.floating-info-card__eyebrow--strong[b-uk6u76irab] {
  color: var(--rz-text-secondary-color, #605e5c);
  font-weight: 700;
}

/* Body grid data-cell text — non-mono variant (Time zone / Climate-zone wrapper). */
.floating-info-card__data-cell[b-uk6u76irab] {
  font-size: 13px;
  color: var(--rz-text-color, #201f1e);
}

/* Source row — single-source mono fallback (mockup index.html:1894-1900).
   --rz-grid-stripe-background-color: dual-theme subtle alt-surface — light #f7f8fb,
   dark var(--rz-base-900) #19191a; canonical Radzen alt-row token. */
.floating-info-card__source-row[b-uk6u76irab] {
  gap: 8px;
  padding: 8px 12px;
  border-top: 1px solid var(--rz-border-base-700, #edebe9);
  background: var(--rz-grid-stripe-background-color, #fafafa);
}

.floating-info-card__source-text[b-uk6u76irab] {
  font-size: 11.5px;
  color: var(--rz-text-color, #201f1e);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.floating-info-card__real-data-tag[b-uk6u76irab] {
  display: inline-block;
  padding: 2px 6px;
  background: #ff2b00;
  color: #fff;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Design-conditions strip — Cool / Heat blocks with percentile dropdowns.
   Mockup index.html:2214-2249. 2-shade rhythm with --rz-grid-stripe-background-color
   parent and --rz-card-background-color inner blocks. */
.floating-info-card__dc-strip[b-uk6u76irab] {
  padding: 12px 14px;
  background: var(--rz-grid-stripe-background-color, #fafafa);
  border-top: 1px solid var(--rz-border-base-700, #edebe9);
}

.floating-info-card__dc-tooltip[b-uk6u76irab] {
  display: inline-flex;
  align-items: center;
  color: var(--rz-text-tertiary-color, #8a8886);
  cursor: help;
}

.floating-info-card__dc-source[b-uk6u76irab] {
  margin-left: auto;
  color: var(--rz-text-tertiary-color, #8a8886);
  font-size: 10px;
  font-weight: 400;
  text-align: right;
  white-space: nowrap;
}

/* DC body grid — 2-col desktop, single-column stack at <480px. */
.floating-info-card__dc-grid[b-uk6u76irab] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.floating-info-card__dc-block[b-uk6u76irab] {
  background: var(--rz-card-background-color, #fff);
  border: 1px solid var(--rz-border-base-700, #edebe9);
  border-radius: 6px;
  padding: 8px 10px;
}

/* DC icon size + accent palette per mockup .dc-icon.cool #0078d4 / .dc-icon.heat #d35400 (lines 562-563).
   Categorical semantic — same hex in light + dark per design-system KEEP-list. */
.floating-info-card__dc-icon[b-uk6u76irab] {
  font-size: 14px;
  font-variation-settings: "FILL" 1;
}

.floating-info-card__dc-icon--cool[b-uk6u76irab] {
  color: #0078d4;
}

.floating-info-card__dc-icon--heat[b-uk6u76irab] {
  color: #d35400;
}

/* DB / MCWB pair labels — 9px UPPER 0.04em tertiary 600 (smaller than eyebrow). */
.floating-info-card__pair-label[b-uk6u76irab] {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--rz-text-tertiary-color, #8a8886);
  font-weight: 600;
}

/* DB / MCWB pair values — 12px mono body 600 (paired with .font-monospace utility for font-family). */
.floating-info-card__pair-value[b-uk6u76irab] {
  font-size: 12px;
  color: var(--rz-text-color, #201f1e);
  font-weight: 600;
}

/* Native <select> wrapper for ASHRAE percentile picker. */
.floating-info-card__pct-select[b-uk6u76irab] {
  width: 100%;
  height: 28px;
  font-size: 12px;
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  border-radius: 4px;
  background: var(--rz-card-background-color, #fff);
  padding: 0 6px;
}

/* Footer — Detailed weather + Use this location buttons. Mockup index.html:1215-1218. */
.floating-info-card__footer[b-uk6u76irab] {
  gap: 8px;
  justify-content: flex-end;
  padding: 10px 12px;
  border-top: 1px solid var(--rz-border-base-700, #edebe9);
  background: var(--rz-card-background-color, #fff);
}

.floating-info-card__footer-icon[b-uk6u76irab] {
  font-size: 14px;
}

/* §5.19 Clause 4 — Mobile-S responsive single-column stack at <480px.
   At 375px viewport with .floating-info-card max-width: calc(100% - 32px) the card
   renders ~343px wide; 2-col grids at this width crowd lat/lon mono-data and DB/MCWB
   pair values. Stack to single-column for readable wrap. */
@media (max-width: 479.98px) {
  .floating-info-card__body-grid[b-uk6u76irab] {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .floating-info-card__dc-grid[b-uk6u76irab] {
    grid-template-columns: 1fr;
  }
}
/* /Modules/Weather/Pages/Component/GroundTempsPanel.razor.rz.scp.css */
.ground-temps-panel[b-35of3pr7t5] {
  font-size: 0.65rem;
}

.ground-temps-panel-table[b-35of3pr7t5] {
  margin-bottom: 0;
  border-color: var(--bs-border-color);
  border-width: 1px;
  border-style: solid;
}

.ground-temps-panel-table > :not(caption) > * > *[b-35of3pr7t5] {
  padding: 0.32rem 0.34rem;
  border-right-width: 0;
  border-left-width: 0;
  white-space: nowrap;
}

.ground-temps-panel-table thead th[b-35of3pr7t5] {
  background-color: var(--bs-tertiary-bg);
  border-bottom-width: 0;
  color: var(--bs-body-color);
  font-family: var(--bs-font-monospace);
  font-size: 0.65rem;
  line-height: 1.2;
}

.ground-temps-panel-table tbody th[b-35of3pr7t5] {
  color: var(--bs-secondary-color);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.ground-temps-panel-table tbody td[b-35of3pr7t5] {
  color: var(--bs-body-color);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.ground-temps-panel-table caption[b-35of3pr7t5] {
  padding: 0.35rem 0.44rem 0.2rem;
  color: var(--bs-secondary-color);
  caption-side: bottom;
  font-size: 0.65rem;
}
/* /Modules/Weather/Pages/Component/HourlyStatsFooter.razor.rz.scp.css */
.hourly-stats-footer[b-71niffl2og] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 16px 0;
}

.stat-pill[b-71niffl2og] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  box-shadow: var(--bs-box-shadow-sm);
  color: var(--bs-body-color);
  font-size: 11px;
  line-height: 1.3;
  white-space: nowrap;
}

.swatch[b-71niffl2og] {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 3px;
  background: var(--var-color, var(--bs-secondary-color));
}

.var-name[b-71niffl2og] {
  color: var(--bs-emphasis-color);
  font-weight: 700;
}

.stat-vals[b-71niffl2og] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.stat-vals strong[b-71niffl2og] {
  color: var(--bs-emphasis-color);
  font-family: var(--bs-font-monospace);
  font-weight: 700;
}

.separator[b-71niffl2og] {
  color: var(--bs-secondary-color);
}
/* /Modules/Weather/Pages/Component/LocationsTab.razor.rz.scp.css */
/* LocationsTab scoped styles — Weather module WeatherStations + Map split.
   Cross-component reusable rules (.seg-control-track, .seg-item,
   .weather-cz-chip, .weather-meta-text, .weather-legend-dot,
   .text-truncate-host, .trace-dropdown-fixed-width) live in app.css.
   Bootstrap utilities cover layout primitives. */

/* Type-toolbar STRIP — header strip above the main split that carries
   the data-type seg-control, AMY year picker, and coverage label. */
.weather-toolbar[b-53xfgtz85o] {
  gap: 12px;
  padding: 10px 14px;
  background: var(--rz-card-background-color, #fff);
  border: 1px solid var(--rz-border-base-700, #e7e5e2);
  border-radius: 6px;
  box-shadow:
    0px 3px 1px -2px rgba(0, 0, 0, 0.2),
    0px 2px 2px 0px rgba(0, 0, 0, 0.14),
    0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}

.weather-toolbar__title[b-53xfgtz85o] {
  font-weight: 600;
}

.weather-toolbar__label[b-53xfgtz85o] {
  font-size: 13px;
  color: var(--rz-text-color, #201f1e);
  font-weight: 600;
}

/* Coverage row (right side of toolbar) — 12px secondary text with 8px gap. */
.weather-coverage-row[b-53xfgtz85o] {
  gap: 8px;
  color: var(--rz-text-secondary-color, #605e5c);
  font-size: 12px;
}

.weather-coverage-row__strong[b-53xfgtz85o] {
  color: var(--rz-text-color, #201f1e);
  font-weight: 600;
}

/* Project-pinned card — grid: pin | content | actions stack.
   Mockup project-section CSS lines 764-822 + render lines 2091-2119. */
.weather-pinned-project[b-53xfgtz85o] {
  padding: 12px 14px;
  background: linear-gradient(180deg, rgba(255, 43, 0, 0.06), rgba(255, 43, 0, 0.01));
  border-bottom: 2px solid #ff2b00;
  border-radius: 6px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 12px;
  align-items: center;
}

.weather-pinned-project__pin[b-53xfgtz85o] {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #ff2b00;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.18);
  flex-shrink: 0;
}

.weather-pinned-project__pin-icon[b-53xfgtz85o] {
  font-size: 20px;
  font-variation-settings: "FILL" 1, "wght" 600;
}

/* Eyebrow label (uppercase mini-caps) — accent variant for "PROJECT WEATHER". */
.weather-eyebrow--accent[b-53xfgtz85o] {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #ff2b00;
  font-weight: 700;
}

/* Coverage pill (TMY/AMY-year label inside pinned-project header). */
.weather-coverage-pill[b-53xfgtz85o] {
  display: inline-block;
  padding: 1px 7px;
  background: rgba(255, 43, 0, 0.12);
  color: #991900;
  border-radius: 10px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* WeatherStation-name primary line (14px semibold body color). */
.weather-weatherStation-name[b-53xfgtz85o] {
  font-weight: 600;
  color: var(--rz-text-color, #201f1e);
  font-size: 14px;
}

/* Vintage mono-line (e.g. "TMYx (1948–2025)") — 10.5px tertiary mono-data.
   Pair with Bootstrap .font-monospace for font-family; this rule supplies size+color. */
.weather-vintage[b-53xfgtz85o] {
  font-size: 10.5px;
  color: var(--rz-text-tertiary-color, #8a8886);
  margin-top: 2px;
}

/* Cooling design-condition chip — blue accent palette per mockup .dc-icon.cool #0078d4 (line 562).
   Heating design-condition chip — orange accent palette per .dc-icon.heat #d35400 (line 563).
   Categorical semantic — same hex in light + dark per design-system KEEP-list. */
.weather-cool-chip[b-53xfgtz85o] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(0, 120, 212, 0.07);
  color: #0078d4;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(0, 120, 212, 0.18);
  white-space: nowrap;
}

.weather-heat-chip[b-53xfgtz85o] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(211, 84, 0, 0.07);
  color: #d35400;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(211, 84, 0, 0.18);
  white-space: nowrap;
}

.weather-cool-chip__value[b-53xfgtz85o],
.weather-heat-chip__value[b-53xfgtz85o] {
  font-weight: 700;
  color: var(--rz-text-color, #201f1e);
  padding-left: 6px;
  margin-left: 2px;
}

.weather-cool-chip__value[b-53xfgtz85o] {
  border-left: 1px solid rgba(0, 120, 212, 0.25);
}

.weather-heat-chip__value[b-53xfgtz85o] {
  border-left: 1px solid rgba(211, 84, 0, 0.25);
}

/* Material-symbol icon size helpers (filled FILL=1 for chip leadings). */
.weather-icon-12[b-53xfgtz85o] {
  font-size: 12px;
  font-variation-settings: "FILL" 1;
}

.weather-icon-14[b-53xfgtz85o] {
  font-size: 14px;
}

.weather-icon-16[b-53xfgtz85o] {
  font-size: 16px;
}

/* Clear (×) button rendered in the End slot of the weatherStation search TextBox. */
.weather-search-clear-btn[b-53xfgtz85o] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: none;
  background: transparent;
  color: var(--rz-text-secondary-color, #605e5c);
  cursor: pointer;
  line-height: 1;
}

.weather-search-clear-btn:hover[b-53xfgtz85o] {
  color: var(--rz-text-color, #201f1e);
}

/* Distance-from-click label below weatherStation rows. */
.weather-distance-label[b-53xfgtz85o] {
  font-size: 11px;
  color: var(--rz-text-tertiary-color, #8a8886);
  margin-top: 2px;
}

/* WeatherStations list scroll container. */
.weather-weatherStations-list[b-53xfgtz85o] {
  max-height: 460px;
  overflow-y: auto;
}

/* WeatherStation row — base + state modifiers (selected = red ring, project = subtle red tint).
   Mirrors mockup .weatherStation-row.selected / .weatherStation-row.is-project (index.html:685-688, 836-838).
   Fixed height (not min-height) locks every row to a uniform box that matches the parent
   <Virtualize ItemSize>; the optional source-name qualifier line fits within it, and overflow is
   clipped so a row can never exceed the size the virtualizer assumes. */
.weather-weatherStation-row[b-53xfgtz85o] {
  height: 74px;
  overflow: hidden;
  padding: 9px 14px;
  cursor: pointer;
  background: transparent;
  box-shadow: none;
}

.weather-weatherStation-row.is-selected[b-53xfgtz85o] {
  background: rgba(255, 43, 0, 0.06);
  box-shadow: inset 3px 0 0 0 #ff2b00;
}

.weather-weatherStation-row.is-project[b-53xfgtz85o] {
  background: rgba(255, 43, 0, 0.03);
}

/* "✓ Project" inline tag rendered to the right of project rows. */
.weather-project-tag[b-53xfgtz85o] {
  padding: 1px 6px;
  background: #ff2b00;
  color: #fff;
  border-radius: 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Map card-title toolbar children. */
.weather-map-search[b-53xfgtz85o] {
  flex: 0 1 180px;
  min-width: 140px;
}

.weather-map-toolbar-row[b-53xfgtz85o] {
  gap: 6px;
  color: var(--rz-text-secondary-color, #605e5c);
  font-size: 12px;
}

.weather-map-toolbar-btn[b-53xfgtz85o] {
  width: 26px;
  height: 26px;
  padding: 0;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  background: var(--rz-card-background-color, #fff);
  color: var(--rz-text-color, #201f1e);
  cursor: pointer;
}

/* Project-marker check glyph centering inside the legend dot.
   Overrides .weather-legend-dot's inline-block to center the inner check character. */
.weather-legend-dot--project-check[b-53xfgtz85o] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 6px;
  font-weight: 900;
}

/* The map consumes the card's remaining body while retaining a usable floor on shorter layouts. */
.weather-map-container[b-53xfgtz85o] {
  flex: 1 1 auto;
  min-height: 540px;
}

.weather-map-host[b-53xfgtz85o] {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  background: #eaf0f4;
}

/* Bottom-left absolute hint overlay anchored inside the map card body.
   Mockup .map-hint lines 1001-1018. */
.weather-map-hint[b-53xfgtz85o] {
  position: absolute;
  left: 16px;
  bottom: 16px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--rz-border-base-700, #e7e5e2);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 12px;
  color: var(--rz-text-secondary-color, #605e5c);
  box-shadow:
    0px 3px 1px -2px rgba(0, 0, 0, 0.2),
    0px 2px 2px 0px rgba(0, 0, 0, 0.14),
    0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  z-index: 400;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.weather-map-hint__icon[b-53xfgtz85o] {
  font-size: 16px;
  color: #ff2b00;
}

/* Clear (×) button inside the End slot of the weatherStation and map search inputs. */
.weather-search-clear-btn[b-53xfgtz85o] {
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--rz-text-secondary-color, #605e5c);
  cursor: pointer;
  line-height: 1;
}

.weather-search-clear-btn:hover[b-53xfgtz85o] {
  color: var(--rz-text-color, #201f1e);
}
/* /Modules/Weather/Pages/Component/MonthlyStatsGrid.razor.rz.scp.css */
.monthly-stats-grid[b-2klsruqlex] {
  font-size: 0.65rem;
}

.monthly-stats-grid-table[b-2klsruqlex] {
  table-layout: fixed;
  margin-bottom: 0;
  border-color: var(--bs-border-color);
  border-width: 1px;
  border-style: solid;
}

.monthly-stats-grid-table > :not(caption) > * > *[b-2klsruqlex] {
  padding: 0.32rem 0.44rem;
  border-right-width: 0;
  border-left-width: 0;
}

.monthly-stats-grid-table thead th[b-2klsruqlex] {
  background-color: var(--bs-tertiary-bg);
  border-bottom-width: 0;
  color: var(--bs-body-color);
  font-family: var(--bs-font-monospace);
  font-size: 0.65rem;
  line-height: 1.2;
}

.monthly-stats-grid-table tbody th[b-2klsruqlex] {
  color: var(--bs-secondary-color);
  font-size: 0.65rem;
}

.monthly-stats-grid-table tbody td[b-2klsruqlex] {
  color: var(--bs-body-color);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.monthly-stats-grid-table caption[b-2klsruqlex] {
  padding: 0.35rem 0.44rem 0.2rem;
  color: var(--bs-secondary-color);
  caption-side: bottom;
  font-size: 0.65rem;
}

.monthly-stats-grid-month-column[b-2klsruqlex] {
  width: 18%;
}

.monthly-stats-grid-value-column[b-2klsruqlex] {
  width: 16.4%;
}
/* /Modules/Weather/Pages/Component/PeriodSelector.razor.rz.scp.css */
/* Light active-pill variant for the hourly-chart Period + Chart/Table segments: a white
   pill with a dark-red (#991900) label, instead of the red .seg-item.is-active fill that
   LocationsTab's data-type toggle uses. The base .seg-control-track / .seg-item rules are
   shared and live in app.css; only this component opts into the light variant.
   #991900 is a design-system KEEP-list categorical literal (same hex in light + dark). */
.seg-control-track--light .seg-item.is-active[b-t8o432kibw] {
  background: var(--rz-card-background-color, #fff);
  color: #991900;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}
/* /Modules/Weather/Pages/Component/SolarTotalsPanel.razor.rz.scp.css */
.solar-tile[b-nj092d34sj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-left: 4px solid var(--tile-accent, #adb5bd);
    border-radius: 6px;
    padding: 0.7rem 1rem;
    margin-bottom: 0.5rem;
}

.solar-tile__body[b-nj092d34sj] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    min-width: 0;
}

.solar-tile__icon[b-nj092d34sj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--tile-accent, #adb5bd);
    font-size: 1.35rem;
    line-height: 1;
    flex: 0 0 auto;
}

.solar-tile__text[b-nj092d34sj] {
    min-width: 0;
}

.solar-tile__title[b-nj092d34sj] {
    line-height: 1.2;
}

.solar-tile__meta[b-nj092d34sj] {
    margin-top: 0.15rem;
}

.solar-tile__value[b-nj092d34sj] {
    text-align: right;
    flex: 0 0 auto;
}

.solar-tile__annual[b-nj092d34sj] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.solar-tile__unit[b-nj092d34sj] {
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.solar-provenance[b-nj092d34sj] {
    margin-top: 0.5rem;
}
/* /Modules/Weather/Pages/Component/TypicalExtremeWeeks.razor.rz.scp.css */
.typical-extreme-weeks[b-lzi8dychrj] {
    font-size: 0.65rem;
}

.typical-extreme-weeks-table[b-lzi8dychrj] {
    table-layout: fixed;
    margin-bottom: 0;
    border-color: var(--bs-border-color);
    border-width: 1px;
    border-style: solid;
}

.typical-extreme-weeks-table > :not(caption) > * > *[b-lzi8dychrj] {
    padding: 0.26rem 0.42rem;
    border-right-width: 0;
    border-left-width: 0;
}

.typical-extreme-weeks-table thead th[b-lzi8dychrj] {
    background-color: var(--bs-tertiary-bg);
    border-bottom-width: 0;
    color: var(--bs-body-color);
    font-family: var(--bs-font-monospace);
    font-size: 0.65rem;
    line-height: 1.2;
}

.typical-extreme-weeks-table tbody th[b-lzi8dychrj] {
    color: var(--bs-body-color);
    font-size: 0.65rem;
    line-height: 1.25;
}

.typical-extreme-weeks-table tbody td[b-lzi8dychrj] {
    color: var(--bs-body-color);
    font-size: 0.65rem;
    font-variant-numeric: tabular-nums;
}

.period-tag[b-lzi8dychrj] {
    display: inline-block;
    min-width: 3.25rem;
    padding: 0.08rem 0.28rem;
    border-radius: 0.18rem;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    line-height: 1.15;
    text-align: center;
}

.period-tag.typical[b-lzi8dychrj] {
    background-color: #dcefff;
    color: #003a72;
}

.period-tag.extreme[b-lzi8dychrj] {
    background-color: #fde0d6;
    color: #8b1c00;
}

.typical-extreme-weeks-table caption[b-lzi8dychrj] {
    padding: 0.35rem 0.44rem 0.2rem;
    color: var(--bs-secondary-color);
    caption-side: bottom;
    font-size: 0.65rem;
}

.typical-extreme-weeks-name-column[b-lzi8dychrj] {
    width: 64%;
}

.typical-extreme-weeks-type-column[b-lzi8dychrj] {
    width: 15%;
}

.typical-extreme-weeks-date-column[b-lzi8dychrj] {
    width: 10.5%;
}

.typical-extreme-weeks-derived-table .typical-extreme-weeks-window-column[b-lzi8dychrj] {
    width: 32%;
}

.typical-extreme-weeks-derived-table .typical-extreme-weeks-week-column[b-lzi8dychrj],
.typical-extreme-weeks-derived-table .typical-extreme-weeks-value-column[b-lzi8dychrj] {
    width: 17%;
}

.typical-extreme-weeks-window-column[b-lzi8dychrj] {
    width: 32%;
}

.typical-extreme-weeks-week-column[b-lzi8dychrj] {
    width: 17%;
}

.typical-extreme-weeks-value-column[b-lzi8dychrj] {
    width: 17%;
}
/* /Modules/Weather/Pages/Component/VariableChipRow.razor.rz.scp.css */
/* Variable chip row — a rounded pill per weather variable carrying a colored swatch dot.
   When the variable is active the pill fills with that variable's --var-color and the dot
   is hidden. Each chip sets --var-color inline from the catalog palette; capped chips reuse
   the shared .trace-chip-disabled rule (app.css). */
.var-chips[b-pih8doxd6n] {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}

.var-chip[b-pih8doxd6n] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  border-radius: 12px;
  background: var(--rz-grid-foot-background-color, #f3f2f1);
  color: var(--rz-text-color, #201f1e);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.var-chip__swatch[b-pih8doxd6n] {
  width: 8px;
  height: 8px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--var-color, #999);
  border: 1px solid rgba(0, 0, 0, 0.18);
}

.var-chip.is-active[b-pih8doxd6n] {
  background: var(--var-color, #ff2b00);
  border-color: var(--var-color, #ff2b00);
  color: #fff;
  font-weight: 600;
}

.var-chip.is-active .var-chip__swatch[b-pih8doxd6n] {
  display: none;
}
/* /Modules/Weather/Pages/Component/WeatherCitationFooter.razor.rz.scp.css */
.weather-citation-footer[b-sv7a1sxive] {
  margin-top: 0.75rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 0.7rem;
  line-height: 1.45;
}

.weather-citation-footer__heading[b-sv7a1sxive] {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-bottom: 0.35rem;
  color: var(--bs-body-color);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.68rem;
}

.weather-citation-footer__heading-icon[b-sv7a1sxive] {
  font-size: 0.95rem;
}

.weather-citation-footer__meta[b-sv7a1sxive] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.25rem;
  margin: 0 0 0.5rem;
}

.weather-citation-footer__meta-item[b-sv7a1sxive] {
  display: flex;
  gap: 0.35rem;
  margin: 0;
}

.weather-citation-footer__meta-item dt[b-sv7a1sxive] {
  font-weight: 600;
  color: var(--bs-body-color);
}

.weather-citation-footer__meta-item dd[b-sv7a1sxive] {
  margin: 0;
  font-family: var(--bs-font-monospace);
}

.weather-citation-footer__credits[b-sv7a1sxive] {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.weather-citation-footer__credit[b-sv7a1sxive] {
  display: block;
}

.weather-citation-footer__provider[b-sv7a1sxive] {
  font-weight: 600;
  color: var(--bs-body-color);
}

.weather-citation-footer__provider[b-sv7a1sxive]::after {
  content: " \2014 ";
  font-weight: 400;
  color: var(--bs-secondary-color);
}

.weather-citation-footer__text em[b-sv7a1sxive] {
  font-style: italic;
}

.weather-citation-footer__link[b-sv7a1sxive],
.weather-citation-footer__provider a[b-sv7a1sxive] {
  color: var(--bs-link-color);
  text-decoration: underline;
}

.weather-citation-footer__link:hover[b-sv7a1sxive],
.weather-citation-footer__provider a:hover[b-sv7a1sxive] {
  color: var(--bs-link-hover-color);
}

.weather-citation-footer__license[b-sv7a1sxive] {
  display: block;
  margin-top: 0.15rem;
  font-style: italic;
  opacity: 0.85;
}

.weather-citation-footer__provenance[b-sv7a1sxive] {
  margin: 0.5rem 0 0;
  font-family: var(--bs-font-monospace);
  font-size: 0.66rem;
  opacity: 0.85;
  overflow-wrap: anywhere;
}

/* Compact variant — a single condensed banner (weather-data credit only) for space-constrained
   hosts such as the project's selected-weather summary. Overrides the base footer's top-border
   layout with a bordered card carrying a left accent. */
.weather-citation-footer--compact[b-sv7a1sxive] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--bs-border-color);
  border-left: 4px solid var(--rz-danger, var(--bs-danger));
  border-radius: 0.375rem;
  background: var(--bs-body-bg);
}

.weather-citation-footer--compact .weather-citation-footer__heading-icon[b-sv7a1sxive] {
  flex: 0 0 auto;
  margin-top: 0.1rem;
  color: var(--bs-secondary-color);
}

.weather-citation-footer__compact-text[b-sv7a1sxive] {
  margin: 0;
}

.weather-citation-footer__compact-label[b-sv7a1sxive] {
  font-weight: 600;
  color: var(--bs-body-color);
  margin-right: 0.25rem;
}

.weather-citation-footer--compact .weather-citation-footer__text[b-sv7a1sxive] {
  overflow-wrap: anywhere;
}

.weather-citation-footer__compact-note[b-sv7a1sxive] {
  display: block;
  margin-top: 0.25rem;
  font-style: italic;
  opacity: 0.8;
}
/* /Modules/Weather/Pages/Component/WeatherStationDetailHeader.razor.rz.scp.css */
/* WeatherStationDetailHeader scoped styles. */

.weatherStation-detail-header__row[b-ckrh8zny1t] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
}

.weatherStation-detail-header__content[b-ckrh8zny1t] {
  flex: 1;
  min-width: 0;
}

.weatherStation-detail-header__actions[b-ckrh8zny1t] {
  align-self: center;
  flex-shrink: 0;
}

.weatherStation-detail-header__pin[b-ckrh8zny1t] {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--rz-danger, #ff2b00);
  color: var(--rz-white, #fff);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 0 7px var(--rz-danger-lighter, rgba(255, 43, 0, 0.12));
}

.weatherStation-detail-header__pin-icon[b-ckrh8zny1t] {
  font-size: 19px;
  font-variation-settings: "FILL" 0, "wght" 500;
}

.weatherStation-detail-header__meta[b-ckrh8zny1t] {
  font-size: 12px;
  color: var(--rz-text-secondary-color, #605e5c);
  margin-bottom: 6px;
}

.weatherStation-detail-header__source-selector[b-ckrh8zny1t] {
  margin-bottom: 8px;
}

.weatherStation-detail-header__pills[b-ckrh8zny1t] {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.weatherStation-detail-header__pill[b-ckrh8zny1t] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: var(--rz-grid-foot-background-color, #f3f2f1);
  color: var(--rz-text-color, #201f1e);
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.weatherStation-detail-header__pill-icon[b-ckrh8zny1t] {
  font-size: 14px;
  color: var(--rz-danger, #ff2b00);
  font-variation-settings: "FILL" 1;
}

.weatherStation-detail-header__pill-value[b-ckrh8zny1t] {
  font-weight: 600;
  color: var(--rz-text-color, #201f1e);
  padding-left: 8px;
  margin-left: 4px;
  border-left: 1px solid var(--rz-input-border-color, #c8c6c4);
}

.weatherStation-detail-header__design-conditions[b-ckrh8zny1t] {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.weather-cool-chip[b-ckrh8zny1t] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(0, 120, 212, 0.07);
  color: #0078d4;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid rgba(0, 120, 212, 0.18);
  white-space: nowrap;
}

.weather-heat-chip[b-ckrh8zny1t] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(211, 84, 0, 0.07);
  color: #d35400;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid rgba(211, 84, 0, 0.18);
  white-space: nowrap;
}

.weather-cool-chip__value[b-ckrh8zny1t],
.weather-heat-chip__value[b-ckrh8zny1t] {
  font-weight: 600;
  color: var(--rz-text-color, #201f1e);
  padding-left: 8px;
  margin-left: 4px;
}

.weather-cool-chip__value[b-ckrh8zny1t] {
  border-left: 2px solid rgba(0, 120, 212, 0.25);
}

.weather-heat-chip__value[b-ckrh8zny1t] {
  border-left: 2px solid rgba(211, 84, 0, 0.25);
}

.weather-icon-12[b-ckrh8zny1t] {
  font-size: 14px;
  font-variation-settings: "FILL" 1;
}
/* /Modules/Weather/Pages/Component/WeatherStationSourceSelector.razor.rz.scp.css */
.weatherStation-source-selector[b-xx5y7sgsak] {
    padding: 0;
    margin: 0;
    border: 0;
}

.weatherStation-source-selector__row[b-xx5y7sgsak] {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 6px 10px;
}

.weatherStation-source-selector__label[b-xx5y7sgsak] {
    flex: 0 0 auto;
    color: var(--rz-text-secondary-color, #605e5c);
    font-size: 11px;
    font-weight: 700;
    line-height: 26px;
    white-space: nowrap;
}

.weatherStation-source-selector__select[b-xx5y7sgsak] {
    min-height: 26px;
    padding: 3px 28px 3px 10px;
    border: 1px solid var(--rz-input-border-color, #c8c6c4);
    border-radius: 3px;
    background: var(--rz-card-background-color, #fff);
    color: var(--rz-text-color, #201f1e);
    font-size: 11px;
    line-height: 18px;
}

.weatherStation-source-selector__loading[b-xx5y7sgsak] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--rz-text-secondary-color, #605e5c);
    font-size: 11px;
    white-space: nowrap;
}

.weatherStation-source-selector__loading-icon[b-xx5y7sgsak] {
    font-size: 16px;
    animation: weatherStation-source-selector-spin-b-xx5y7sgsak 1s linear infinite;
}

@keyframes weatherStation-source-selector-spin-b-xx5y7sgsak {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .weatherStation-source-selector__loading-icon[b-xx5y7sgsak] {
        animation: none;
    }
}
/* /Modules/Weather/Pages/Component/WindRoseChart.razor.rz.scp.css */
/* Polar wind rose host. The ECharts canvas spans the full card width (height comes from TraceGraph's
   Height) so the polar center renders the rose centered and the built-in bin legend sits in the far
   top-right corner, per the mockup. The legend and swatches are drawn by ECharts, so no HTML swatch
   styles remain. */
.wind-rose-chart[b-w6nhh1dxlz] {
  width: 100%;
}
/* /Modules/Weather/Pages/Component/YearHeatmap.razor.rz.scp.css */
/* YearHeatmap variable-selector scoped styles.
   Each chip is a pill carrying a categorical swatch color passed in as the --chip-color custom
   property (set inline in the markup, one declaration only). Inactive chips are a light pill with a
   colored dot; the selected chip fills with its swatch color. The "Variables" eyebrow uses the
   shared global .weather-toolbar-eyebrow class (app.css) so it matches the sibling toolbars. */

.year-heatmap-variable[b-vvomrh4opb] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 12px;
  border: 1px solid var(--rz-input-border-color, #c8c6c4);
  background: var(--rz-grid-foot-background-color, #f3f2f1);
  color: var(--rz-text-color, #201f1e);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}

.year-heatmap-variable:hover[b-vvomrh4opb] {
  border-color: var(--chip-color, var(--rz-border-base-600, #d2d0ce));
  box-shadow: var(--rz-shadow-1, 0 1px 2px rgba(16, 24, 40, 0.12));
}

.year-heatmap-variable:focus-visible[b-vvomrh4opb] {
  outline: 2px solid var(--chip-color, var(--rz-primary, #ff2b00));
  outline-offset: 2px;
}

.year-heatmap-variable__dot[b-vvomrh4opb] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--chip-color, var(--rz-text-tertiary-color, #8a8886));
  flex-shrink: 0;
  border: 1px solid rgba(0, 0, 0, 0.18);
}

.year-heatmap-variable__name[b-vvomrh4opb] {
  font-weight: inherit;
}

.year-heatmap-variable__unit[b-vvomrh4opb] {
  color: var(--rz-text-tertiary-color, #8a8886);
  font-weight: 500;
}

/* Selected chip — filled with its swatch color, light text and a contrasting dot so the active
   variable reads by fill as well as by aria-pressed. */
.year-heatmap-variable--active[b-vvomrh4opb] {
  background: var(--chip-color, var(--rz-primary, #ff2b00));
  border-color: var(--chip-color, var(--rz-primary, #ff2b00));
  color: #fff;
  font-weight: 600;
  box-shadow: var(--rz-shadow-2, 0 2px 5px rgba(16, 24, 40, 0.16));
}

.year-heatmap-variable--active .year-heatmap-variable__dot[b-vvomrh4opb] {
  display: none;
}

.year-heatmap-variable--active .year-heatmap-variable__unit[b-vvomrh4opb] {
  color: rgba(255, 255, 255, 0.8);
}
/* /Modules/Weather/Pages/Weather.razor.rz.scp.css */
/* Allow the climate image column to shrink on small viewports so the image fits */
.weather-climate-image-column[b-p8cib9gmg9] {
  min-width: 0;
}

/* Wrapper so image scales to container and is fully visible; clickable for zoom */
.weather-climate-image-wrapper[b-p8cib9gmg9] {
  width: 100%;
  max-width: 100%;
  cursor: pointer;
  display: inline-block;
}

.weather-climate-image-wrapper:focus[b-p8cib9gmg9] {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
}

