@import '_content/NexusRazor/NexusRazor.oaxxza9evn.bundle.scp.css';

/* /Fx/Chart/FxChart.razor.rz.scp.css */
.fx-chart[b-gobbhmm2gy] {
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    font-family: var(--nx-font);
    background: var(--nx-tertiary-bg);
    border-radius: var(--nx-border-radius);
    padding: var(--nx-space);
    box-sizing: border-box;
}

.fx-chart[b-gobbhmm2gy]  canvas {
    display: block;
    max-width: 100%;
    max-height: 100%;
}
/* /Fx/Controls/FxDropDownMenu.razor.rz.scp.css */
.cddb-wrapper[b-8phg3gi0xy] {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.cddb-caret[b-8phg3gi0xy] {
    margin-left: var(--nx-space-small);
    font-size: 0.75rem;
    opacity: 0.6;
    line-height: 1;
}

.cddb-backdrop[b-8phg3gi0xy] {
    position: fixed;
    inset: 0;
    z-index: 999;
}

.cddb-panel[b-8phg3gi0xy] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 1000;
    min-width: 10rem;
    background: var(--nx-tertiary-bg);
    border: var(--nx-border-width) solid var(--nx-border-color);
    border-radius: var(--nx-border-radius);
    box-shadow: var(--nx-box-shadow);
    padding: var(--nx-space-small);
    display: flex;
    flex-direction: column;
    gap: var(--nx-space-small);
}
/* /Fx/Controls/FxTabContainer.razor.rz.scp.css */
.ctc-wrapper[b-5g0nkyf2sd] {
    display: flex;
    flex-direction: column;
    grid-column: -1 / 1;
    margin-bottom:var(--nx-space);
    width:100%;
    min-width:0;
}

.ctc-header[b-5g0nkyf2sd] {
    display: flex;
    align-items: flex-end;
    margin-bottom:0px;
    width:100%;
    min-width:0;
}

.ctc-content[b-5g0nkyf2sd] {
    width:100%;
    min-width:0;
    grid-column:-1 / 1;
}

.ctc-tab[b-5g0nkyf2sd] {
    position: relative;
    padding: 0.5rem 1.75rem;
    border: none;
    background: var(--nx-secondary-bg);
    color: var(--nx-primary-fg);
    cursor: pointer;
    font-family: var(--nx-font);
    font-size: 0.85rem;
    font-weight: 500;
    clip-path: polygon(15px 0, 100% 0, calc(100% - 15px) 100%, 0% 100%);
    margin-left: -15px;
    z-index: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.ctc-tab:hover:not(.ctc-tab-active)[b-5g0nkyf2sd] {
    background: var(--nx-muted-bg);
}

.ctc-tab.ctc-tab-first[b-5g0nkyf2sd] {
    clip-path: polygon(0 0, 100% 0, calc(100% - 15px) 100%, 0% 100%);
    margin-left: 0;
    border-radius: var(--nx-border-radius) 0 0 0;
}

.ctc-tab.ctc-tab-last[b-5g0nkyf2sd] {
    clip-path: polygon(15px 0, 100% 0, 100% 100%, 0% 100%);
    border-radius: 0 var(--nx-border-radius) 0 0;
}

.ctc-tab.ctc-tab-first.ctc-tab-last[b-5g0nkyf2sd] {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    border-radius: var(--nx-border-radius) var(--nx-border-radius) 0 0;
}

.ctc-tab.ctc-tab-active[b-5g0nkyf2sd] {
    background: var(--nx-highlight-bg);
    color: var(--nx-highlight-fg);
    z-index: 1;
    font-weight: 600;
}
/* /Fx/Controls/FxTooltip.razor.rz.scp.css */
.nx-tooltip[b-4sogsu92a8] {
    background: var(--nx-primary-fg);
    color: var(--nx-tertiary-bg);
    padding: 6px 10px;
    border-radius: var(--nx-border-radius);
    font-size: 12px;
    white-space: nowrap;
    pointer-events: none;
    z-index: 1000;
}
/* /Fx/Toast/FxToast.razor.rz.scp.css */
/* FxToast — global bottom-center toast notification */

.fx-toast[b-ungjrddmwv] {
    display: inline-flex;
    align-items: center;
    gap: var(--nx-space-small);
    font-family: var(--nx-font);
    font-size: 0.875rem;
    color: var(--nx-primary-fg);
    min-height: 1.5rem;
    padding: var(--nx-space-small);
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    min-width: 300px;
    max-width: 500px;
}

/* ── Notification card style (always applied when a state is active) ── */
.fx-toast-notification[b-ungjrddmwv] {
    border-style: solid;
    border-width: 1px;
    border-left-width: 4px;
    border-color: var(--nx-border-color);
    background: var(--nx-tertiary-bg);
    color: var(--nx-primary-fg);
    border-top-left-radius: var(--nx-border-radius);
    border-top-right-radius: var(--nx-border-radius);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-width: 0;
    animation: fx-toast-slide-up-b-ungjrddmwv 280ms cubic-bezier(.2,.9,.2,1) both;
}

.fx-toast-notification-processing[b-ungjrddmwv] {
    background: var(--nx-highlight-bg);
    border-color: var(--nx-highlight-fg);
}

.fx-toast-notification-success[b-ungjrddmwv] {
    border-color: var(--nx-positive-fg);
    background: var(--nx-positive-bg);
}

.fx-toast-notification-error[b-ungjrddmwv] {
    border-color: var(--nx-negative-fg);
    background: var(--nx-negative-bg);
}

@keyframes fx-toast-slide-up-b-ungjrddmwv {
    0% {
        transform: translateX(-50%) translateY(100%);
        opacity: 0;
    }

    100% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}

/* ── Icons ── */
.fx-toast-icon[b-ungjrddmwv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

/* Spinner rotation */
.fx-toast-spinner[b-ungjrddmwv]  .nx-icon {
    animation: fx-toast-spin-b-ungjrddmwv 1s linear infinite;
    color: var(--nx-highlight-fg);
}

@keyframes fx-toast-spin-b-ungjrddmwv {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Success icon */
.fx-toast-success[b-ungjrddmwv]  .nx-icon {
    color: var(--nx-positive-fg);
}

/* Error icon */
.fx-toast-error[b-ungjrddmwv]  .nx-icon {
    color: var(--nx-negative-fg);
}

/* ── Status text ── */
.fx-toast-text[b-ungjrddmwv] {
    flex: 1;
    min-width: 0;
    line-height: 1.4;
    word-break: break-word;
    white-space: normal;
    color: inherit;
}

/* ── Dismiss button ── */
.fx-toast-close[b-ungjrddmwv] {
    flex: 0 0 auto;
    align-self: flex-start;
    margin: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    color: inherit;
    cursor: pointer;
    font-size: 1rem;
    padding: var(--nx-space-small);
}

    .fx-toast-close:hover[b-ungjrddmwv] {
        color: var(--nx-negative-fg);
    }
/* /Modules/App/Layout/_NavMenu.razor.rz.scp.css */
.navbar-toggler[b-th110vt2ar] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;

    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-th110vt2ar] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-th110vt2ar] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-th110vt2ar] {
    font-size: 1.1rem;
}

.bi[b-th110vt2ar] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-th110vt2ar] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-th110vt2ar] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-th110vt2ar] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-th110vt2ar] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-th110vt2ar] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-th110vt2ar] {
        padding-bottom: 1rem;
    }

    .nav-item[b-th110vt2ar]  .nav-link {

        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-th110vt2ar]  a.active {

}

.nav-item[b-th110vt2ar]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);

}

.nav-scrollable[b-th110vt2ar] {
    display: none;
    padding:0.5rem;
}

.navbar-toggler:checked ~ .nav-scrollable[b-th110vt2ar] {
    display: block;
}

/* /Modules/BlogPosts/Pages/Blog/_NxBlogViewer.razor.rz.scp.css */
/* Featured Post Layout */
.featured-post-layout[b-cxw1vokq8t] {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
}

.featured-post-content[b-cxw1vokq8t] {
    flex: 1;
    min-width: 0;
}

.featured-post-image[b-cxw1vokq8t] {
    width: 280px;
    flex-shrink: 0;
}

.featured-post-image img[b-cxw1vokq8t] {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e5e5e5;
    background: #fafafa;
}

/* Mobile: text above image */
@media (max-width: 767px) {
    .featured-post-layout[b-cxw1vokq8t] {
        flex-direction: column;
    }

    .featured-post-image[b-cxw1vokq8t] {
        width: 100%;
        margin-top: 0;
        margin-bottom: 0;
    }
}

/* Dialog */
.dialog-header[b-cxw1vokq8t] {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    gap: 8px;
}

.dialog-header h3[b-cxw1vokq8t] {
    margin: 0;
    flex: 1;
    min-width: 0;
}

.dialog-content[b-cxw1vokq8t] {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Desktop breakpoint */
@media (min-width: 768px) {
    .featured-post-content[b-cxw1vokq8t] {
        flex: 1;
    }

    .featured-post-image[b-cxw1vokq8t] {
        width: 280px;
        flex-shrink: 0;
    }
}
/* /Modules/Reports/Controls/ReportPageLayout.razor.rz.scp.css */
/* ── Summary row ────────────────────────────────────────── */
.report-summary[b-84wrzkv37e] {
    display: flex;
    justify-content: flex-end;
    font-size: 0.8rem;
    color: var(--nx-muted-fg);
    padding: var(--nx-space-small) 0;
}

/* ── Table wrapper ──────────────────────────────────────── */
.report-table-wrapper[b-84wrzkv37e] {
    overflow-x: auto;
    border: var(--nx-border-width) solid var(--nx-border-color);
    border-radius: var(--nx-border-radius);
    background: var(--nx-tertiary-bg);
    grid-column: -1/1;
}

/* ── Table ──────────────────────────────────────────────── */
[b-84wrzkv37e] .report-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

[b-84wrzkv37e] .report-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--nx-secondary-bg);
    color: var(--nx-primary-fg);
    font-weight: 600;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid var(--nx-border-color);
    border-right: 1px solid var(--nx-border-color);
    white-space: nowrap;
}

[b-84wrzkv37e] .report-table thead th:last-child {
    border-right: none;
}

[b-84wrzkv37e] .report-table thead th:first-child {
    border-top-left-radius: var(--nx-border-radius);
}

[b-84wrzkv37e] .report-table thead th:last-child {
    border-top-right-radius: var(--nx-border-radius);
}

[b-84wrzkv37e] .report-table tbody td {
    padding: 6px 10px;
    border-bottom: 1px solid var(--nx-border-color);
    color: var(--nx-primary-fg);
}

[b-84wrzkv37e] .report-table tbody tr:nth-child(even) {
    background: var(--nx-primary-bg);
}

[b-84wrzkv37e] .report-table tbody tr:hover {
    background: var(--nx-highlight-bg);
}
/* /Modules/Telemetry/Controls/_ArcGaugeWidget.razor.rz.scp.css */
/* Arc gauge widget content. The shell (_WidgetShell) owns the outer frame;
   these styles target only the gauge body rendered via ChildContent.
   The accent colour flows in from the shell via --nx-widget-accent. */

.arcgauge[b-16wk99s1ot] {
    position: relative;
    width: 100%;
    height: 100%;
    justify-content: center;
    overflow: hidden;
}

.arcgauge_svg[b-16wk99s1ot] {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.arcgauge_track[b-16wk99s1ot] {
    stroke: var(--nx-muted-bg);
    stroke-width: 9;
    stroke-linecap: round;
}

.arcgauge_fill[b-16wk99s1ot] {
    stroke: var(--nx-widget-accent, var(--nx-highlight-fg));
    stroke-width: 9;
    stroke-linecap: round;
    transition: stroke-dasharray 0.4s ease;
}

.arcgauge_readout[b-16wk99s1ot] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
/* /Modules/Telemetry/Controls/_StatWidget.razor.rz.scp.css */
/* Per-widget overrides for the Stat widget.
   Base widget styling lives in Telemetry-Dashboard.razor.css.
   Add Stat-widget-specific style tweaks here. */
/* /Modules/Telemetry/Controls/_WidgetEditDialog.razor.rz.scp.css */
/* Accent colour picker in the widget appearance settings. */
.accent-swatches[b-1urxk9m3xi] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--nx-space-small);
    margin-bottom: var(--nx-space);
}

.accent-swatch[b-1urxk9m3xi] {
    width: 28px;
    height: 28px;
    border-radius: var(--nx-border-radius);
    border: var(--nx-border-width) solid var(--nx-border-color);
    cursor: pointer;
    padding: 0;
    box-shadow: var(--nx-box-shadow);
    transition: transform 0.1s ease, outline-color 0.1s ease;
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.accent-swatch:hover[b-1urxk9m3xi] {
    transform: scale(1.08);
}

.accent-swatch--selected[b-1urxk9m3xi] {
    outline-color: var(--nx-primary-fg);
}
/* /Modules/Telemetry/Controls/_WidgetShell.razor.rz.scp.css */
/* Base styling for all dashboard widgets, scoped to _WidgetShell which
   owns the widget root, top bar and heading. Uses ::deep so styles also
   reach content rendered by child widget components (e.g. _StatWidget)
   passed in via ChildContent / Actions render fragments. Per-widget
   overrides live in each widget's own scoped stylesheet. */
.telemetry-widget[b-o1k5sdi5qg] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    border-radius: var(--nx-border-radius);
    box-shadow: var(--nx-box-shadow);
    border: var(--nx-border-width) solid var(--nx-border-color);
    border-top: 3px solid var(--nx-widget-accent, var(--nx-highlight-fg));
    padding: var(--nx-space-small);
    background: var(--nx-tertiary-bg);
    color: var(--nx-primary-fg);
    font-family: var(--nx-font);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
    box-sizing: border-box;
}

.telemetry-widget_heading[b-o1k5sdi5qg] {
    text-align: left;
    font-size: 1rem;
    color: var(--nx-primary-fg);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-o1k5sdi5qg] .telemetry-widget_content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
}

[b-o1k5sdi5qg] .telemetry-widget_value {
    font-size: 32px;
    font-weight: 600;
    color: var(--nx-widget-accent, var(--nx-primary-fg));
}

[b-o1k5sdi5qg] .telemetry-widget_unit {
    margin-left: var(--nx-space-small);
    font-size: 14px;
    font-weight: 400;
    color: var(--nx-muted-fg);
}

[b-o1k5sdi5qg] .telemetry-widget_meta {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--nx-space-small);
}

[b-o1k5sdi5qg] .telemetry-widget_tag {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    line-height: 1;
    padding: 4px 8px;
    border-radius: var(--nx-border-radius);
    background: var(--nx-muted-bg);
    color: var(--nx-muted-fg);
    white-space: nowrap;
}

[b-o1k5sdi5qg] .telemetry-widget_tag--agg {
    background: var(--nx-highlight-bg);
    color: var(--nx-highlight-fg);
}

.telemetry-widget--editmode[b-o1k5sdi5qg] {
    border: 2px dashed var(--nx-highlight-bg);
    opacity: 0.9;
}

/* Top bar for widgets: left-aligned heading and right-side actions slot */
.telemetry-widget_topbar[b-o1k5sdi5qg] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--nx-space-small);
    margin-bottom: var(--nx-space-small);
    overflow: hidden;
}

.telemetry-widget_topbar-actions[b-o1k5sdi5qg] {
    display: inline-flex;
    align-items: center;
    gap: var(--nx-space-small);
    min-width: 0;
    overflow: hidden;
    flex-shrink: 1;
}
/* /Modules/Telemetry/Pages/Telemetry-Dashboard.razor.rz.scp.css */
.widget-grid[b-zpywnv60ob] {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-auto-rows: var(--widget-cell-h);
    align-content: start;
    gap: var(--nx-space);
    padding: 0px;
    grid-column: -1 / 1;
    position: relative;
    /* Fixed 8-up column grid; Grid_H is a multiple of the row height. */
    --widget-cell-w: 100px;
    --widget-cell-h: 100px;
}

/* Narrow screens: collapse to 4 columns. */
@media (max-width: 900px) {
    .widget-grid[b-zpywnv60ob] {
        grid-template-columns: repeat(4, 1fr);
    }
}

.widget-slot[b-zpywnv60ob] {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 0;
    z-index: 1;
}

    .widget-slot > *[b-zpywnv60ob] {
        flex: 1;
        min-width: 0;
    }

.widget-resize-handle[b-zpywnv60ob] {
    position: absolute;
    right: 2px;
    bottom: 2px;
    width: 14px;
    height: 14px;
    cursor: nwse-resize;
    z-index: 5;
    background: linear-gradient(135deg, transparent 0 50%, var(--nx-muted-fg) 50% 60%, transparent 60% 70%, var(--nx-muted-fg) 70% 80%, transparent 80%);
    touch-action: none;
}

/* Hover overlay with per-widget actions (edit mode only). */
.widget-actions-overlay[b-zpywnv60ob] {
    position: absolute;
    top: 4px;
    right: 4px;
    z-index: 6;
    display: grid;
    padding: 2px;
    gap: var(--nx-space-small);
    border-radius: var(--nx-border-radius);
    background: var(--nx-tertiary-bg);
    box-shadow: var(--nx-box-shadow);
    border: var(--nx-border-width) solid var(--nx-border-color);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.widget-slot:hover .widget-actions-overlay[b-zpywnv60ob] {
    opacity: 1;
    pointer-events: auto;
}

.widget-actions-overlay[b-zpywnv60ob]  button {
    margin-bottom: 0px !important;
    margin-right: 0px;
    zoom: 0.7;
}

/* Edit mode: fill the page so the full drop area is visible. The base
   background is the muted spacer colour (both row gaps and column gaps
   show this). Actual cells are painted tertiary via .widget-grid-guide,
   which shares the exact column/row pitch so everything lines up. */
.widget-grid-editmode[b-zpywnv60ob] {
    min-height: calc(100vh - 160px);
    border: 2px dashed var(--nx-border-color);
    border-radius: var(--nx-border-radius);
    background-color: var(--nx-muted-bg);
    transition: border-color 0.15s, background-color 0.15s;
}

/* True column guides: share the same 8-col track + gap as the widgets so
   they line up exactly (a fixed-pixel background can't track 1fr + gaps).
   .widget-grid has no padding, so the overlay starts flush at 0,0. The
   parent has no background of its own — the muted spacer colour comes
   from .widget-grid-editmode showing through both row and column gaps. */
.widget-grid-guides[b-zpywnv60ob] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--nx-space);
    pointer-events: none;
    z-index: 0;
}

@media (max-width: 900px) {
    .widget-grid-guides[b-zpywnv60ob] {
        grid-template-columns: repeat(4, 1fr);
    }
}

.widget-grid-guide[b-zpywnv60ob] {
    /* Paints the 100px cell zone tertiary; the remaining 10px of each 110px
       row cycle is transparent, letting the muted parent background show
       through as the row gap. */
    background-image: linear-gradient(to bottom, var(--nx-tertiary-bg) 100px, transparent 100px, transparent 110px);
    background-size: 100% 110px;
    background-position: 0 0;
}

/* Active drag-over feedback */
.widget-grid-dropactive[b-zpywnv60ob] {
    border-color: var(--nx-highlight-fg);
    background-color: var(--nx-highlight-bg);
}

.widget-grid-placeholder[b-zpywnv60ob] {
    grid-column: 1 / -1;
    align-self: center;
    justify-self: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--nx-muted-fg);
    font-size: 13px;
    pointer-events: none;
}

.widget-palette-item[b-zpywnv60ob] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--nx-border-color);
    border-radius: var(--nx-border-radius);
    background: var(--nx-tertiary-bg);
    cursor: grab;
    margin-bottom: 6px;
    text-align: left;
}

    .widget-palette-item:active[b-zpywnv60ob] {
        cursor: grabbing;
    }

.dashboard-switcher[b-zpywnv60ob] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: var(--nx-space);
}

.dashboard-switcher-item[b-zpywnv60ob] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--nx-border-color);
    border-radius: var(--nx-border-radius);
    background: var(--nx-tertiary-bg);
    color: var(--nx-primary-fg);
    cursor: pointer;
    text-align: left;
    transition: background 0.15s, border-color 0.15s;
}

    .dashboard-switcher-item:hover[b-zpywnv60ob] {
        border-color: var(--nx-highlight-fg);
    }

    .dashboard-switcher-item.active[b-zpywnv60ob] {
        background: var(--nx-highlight-bg);
        border-color: var(--nx-highlight-fg);
        color: var(--nx-highlight-fg);
        font-weight: bold;
    }
