/* =============================================
   SCALES PAGE — Theme-aware Design System
   Uses CSS variables from theme.css for
   full light/dark mode support.
   Tabs & controls bars are ALWAYS dark chrome.
   Section headers are ALWAYS dark with amber.
   ============================================= */

/* -- No Access -- */
.sc-no-access {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 60vh;
    gap: 16px;
    color: var(--text-muted);
}

.sc-no-access i {
    width: 48px;
    height: 48px;
    opacity: 0.3;
}

/* -- Wrapper -- */
.sc-wrapper {
    width: 100%;
    height: calc(100vh - 60px);
    overflow-y: auto;
    background: var(--bg-primary);
    display: flex;
    flex-direction: column;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.sc-wrapper::-webkit-scrollbar { width: 5px; }
.sc-wrapper::-webkit-scrollbar-track { background: transparent; }
.sc-wrapper::-webkit-scrollbar-thumb { background: var(--border-primary); border-radius: 3px; }

/* Global icon constraint */
.sc-wrapper [data-lucide] { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; flex-shrink: 0; }
.sc-wrapper [data-lucide] svg,
.sc-wrapper [data-lucide] .lucide { width: 16px !important; height: 16px !important; display: block; }

/* -- Tabs — always dark chrome, sticky -- */
.sc-tabs {
    display: flex;
    gap: 0;
    padding: 0 24px;
    background: var(--chrome-bg);
    border-bottom: 1px solid var(--chrome-border);
    flex-shrink: 0;
    position: sticky;
    top: 0;
    z-index: 10;
}

.sc-tab {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 12px 20px;
    background: transparent;
    border: none;
    color: var(--chrome-text-dim);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.2s ease;
    position: relative;
}

.sc-tab:hover { color: var(--chrome-text-muted); background: var(--chrome-hover); }
.sc-tab.active { color: var(--accent-primary); border-bottom-color: var(--accent-primary); font-weight: 700; }

/* -- Controls Bar — always dark chrome, sticky below tabs -- */
.sc-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 24px;
    background: var(--chrome-bg);
    border-bottom: 1px solid var(--chrome-border);
    flex-shrink: 0;
    gap: 16px;
    flex-wrap: wrap;
    position: sticky;
    top: 42px;
    z-index: 9;
}

.sc-period-group {
    display: flex;
    gap: 2px;
    background: var(--chrome-input-bg);
    border: 1px solid var(--chrome-input-border);
    border-radius: 8px;
    padding: 3px;
}

.sc-period-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--chrome-text-muted);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.sc-period-btn:hover { background: var(--chrome-hover); color: var(--chrome-text); }

.sc-period-btn.active {
    background: var(--accent-primary);
    color: var(--on-accent);
    font-weight: 700;
    box-shadow: 0 1px 4px rgba(245, 158, 11, 0.3);
}

.sc-date-nav { display: flex; align-items: center; gap: 6px; }

.sc-nav-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    border: 1px solid var(--chrome-input-border);
    border-radius: 6px;
    background: var(--chrome-input-bg);
    color: var(--chrome-text-muted);
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.sc-nav-btn [data-lucide] { width: 14px; height: 14px; }
.sc-nav-btn:hover { background: var(--chrome-active); color: var(--chrome-text); }
.sc-nav-btn:disabled { opacity: 0.25; cursor: default; }

.sc-nav-today { margin-left: 4px; border-color: var(--accent-30); color: var(--accent-primary); font-weight: 700; }
.sc-nav-today:hover { background: var(--accent-10); color: var(--accent-primary); }

.sc-date-display {
    padding: 0 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--chrome-text);
    min-width: 160px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.sc-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--chrome-input-border);
    border-radius: 7px;
    background: var(--chrome-input-bg);
    color: var(--chrome-text-muted);
    cursor: pointer;
    transition: all 0.2s ease;
}

.sc-btn-icon:hover { background: var(--chrome-active); color: var(--chrome-text); }

/* -- Production Layout: sidebar + tables -- */
.sc-production-layout {
    display: flex;
    gap: 16px;
    padding: 16px 20px;
}

.sc-sidebar-summary {
    width: 260px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: sticky;
    top: 84px; /* below tabs + controls */
    align-self: flex-start;
}

.sc-main-tables {
    flex: 1;
    min-width: 0;
}

/* ≥1400px: First group (Seed) on left, remaining groups stacked on right */
@media (min-width: 1400px) {
    .sc-sections-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        align-items: start;
    }
    /* First section takes full left column height */
    .sc-sections-grid .sc-sec:first-child {
        grid-column: 1;
        grid-row: 1 / 99;
    }
    /* All other sections stack in right column */
    .sc-sections-grid .sc-sec:not(:first-child) {
        grid-column: 2;
    }
}

/* <1400px: Single column — everything stacked */
@media (max-width: 1399px) {
    .sc-production-layout {
        flex-direction: column;
    }
    .sc-sidebar-summary {
        width: 100%;
        flex-direction: row;
        position: static;
    }
    .sc-sidebar-summary .sc-summary-card { flex: 1; }
    .sc-sections-grid {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
}

/* -- Summary Cards (enhanced) -- */
.sc-summary-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    padding: 18px 24px 10px;
    flex-shrink: 0;
}

.sc-summary-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 12px;
    transition: all 0.25s ease;
    position: relative;
    overflow: hidden;
}

.sc-summary-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--border-secondary), transparent);
    opacity: 0;
    transition: opacity 0.25s;
}

.sc-summary-card:hover {
    border-color: var(--border-secondary);
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    transform: translateY(-1px);
}

.sc-summary-card:hover::before { opacity: 1; }

/* Hero card (Total Production with ring) */
.sc-card-hero {
    background: linear-gradient(135deg, var(--surface), var(--hover-bg));
    border-color: var(--accent-20);
}

.sc-card-hero::before {
    background: linear-gradient(90deg, transparent, var(--accent-primary), transparent);
    opacity: 0.4;
}

.sc-card-progress-ring {
    position: relative;
    width: 68px;
    height: 68px;
    flex-shrink: 0;
}

.sc-card-progress-ring svg { width: 68px; height: 68px; transform: rotate(-90deg); }

.sc-ring-bg {
    fill: none;
    stroke: var(--border-primary);
    stroke-width: 5;
}

.sc-ring-fill {
    fill: none;
    stroke-width: 5;
    stroke-linecap: round;
    transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.sc-ring-success { stroke: #10b981; }
.sc-ring-danger { stroke: var(--error); }

.sc-ring-text {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.sc-card-icon {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--accent-10);
    flex-shrink: 0;
    transition: transform 0.2s;
}

.sc-summary-card:hover .sc-card-icon { transform: scale(1.05); }

.sc-card-icon [data-lucide] { width: 20px !important; height: 20px !important; color: var(--accent-primary); }
.sc-card-icon [data-lucide] svg { width: 20px !important; height: 20px !important; }

.sc-card-positive .sc-card-icon { background: var(--success-light); }
.sc-card-positive .sc-card-icon [data-lucide] { color: #10b981; }
.sc-card-negative .sc-card-icon { background: var(--error-light); }
.sc-card-negative .sc-card-icon [data-lucide] { color: var(--error); }

.sc-card-content { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.sc-card-label {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.sc-card-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.sc-card-value-lg { font-size: 28px; }

.sc-card-value small { font-size: 13px; font-weight: 500; color: var(--text-muted); margin-left: 2px; }

.sc-card-sub {
    font-size: 10.5px;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 1px;
}

.sc-card-positive .sc-card-value { color: #10b981; }
.sc-card-negative .sc-card-value { color: var(--error); }

/* Arrow indicators */
.sc-arrow {
    font-size: 14px;
    margin-right: 3px;
    display: inline-block;
}

.sc-arrow-up { color: #10b981; animation: sc-bounce-up 2s ease-in-out infinite; }
.sc-arrow-down { color: var(--error); animation: sc-bounce-down 2s ease-in-out infinite; }

@keyframes sc-bounce-up {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

@keyframes sc-bounce-down {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(2px); }
}

/* -- Chart Section -- */
.sc-chart-section {
    margin: 16px 0 0;
    border-radius: 10px;
    border: 1px solid var(--border-primary);
    background: var(--surface);
}

.sc-chart-section-hourly { margin-bottom: 12px; }

.sc-chart-container {
    padding: 12px 16px 8px;
    background: var(--bg-primary);
}

/* -- Percentage Bar Chart (CSS-based, premium) -- */
.sc-pct-chart {
    padding: 16px 20px;
    background: var(--bg-secondary);
    border-radius: 0 0 10px 10px;
}

.sc-pct-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px solid var(--border-subtle);
}

.sc-pct-row:last-child { border-bottom: none; }

.sc-pct-label {
    width: 130px;
    min-width: 130px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-pct-bar-wrap {
    flex: 1;
    height: 30px;
    background: var(--bg-tertiary);
    border-radius: 5px;
    position: relative;
    overflow: hidden;
}

.sc-pct-bar {
    height: 100%;
    border-radius: 5px;
    min-width: 2px;
    background: linear-gradient(90deg, var(--bar-start), var(--bar-end));
    box-shadow: inset 0 1px 1px rgba(255,255,255,0.15);
    animation: sc-bar-grow 0.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 8px;
    box-sizing: border-box;
}

@keyframes sc-bar-grow {
    from { width: 0 !important; }
}

.sc-pct-bar-text {
    font-size: 11px;
    font-weight: 800;
    color: rgba(0,0,0,0.7);
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 0 rgba(255,255,255,0.2);
}

.sc-pct-bar-text-out {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.sc-pct-values {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 70px;
    gap: 1px;
}

.sc-pct-tonnes {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.sc-pct-group-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    margin-right: 6px;
    vertical-align: middle;
}

.sc-pct-group-label {
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--text-muted);
    padding: 10px 0 4px 0;
    border-bottom: 1px solid var(--border-subtle, rgba(0,0,0,0.06));
    margin-bottom: 2px;
    display: flex;
    align-items: center;
}

.sc-pct-group-label:first-child { padding-top: 0; }

/* -- Sections Grid (inside main-tables) -- */
.sc-sections-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* -- Sections & Table -- */
.sc-table-container {
    padding: 4px 20px 24px;
}

.sc-sec {
    margin-bottom: 16px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--border-primary);
    transition: box-shadow 0.2s;
}

.sc-sec:hover { box-shadow: 0 2px 12px rgba(0,0,0,0.08); }

/* Section headers — ALWAYS dark with amber border */
.sc-sec-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 16px;
    background: var(--chrome-bg);
    color: var(--chrome-text);
    font-weight: 800;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    border-left: 3px solid var(--accent-primary);
}

.sc-sec-count {
    font-size: 10px;
    font-weight: 600;
    color: var(--chrome-text);
    background: var(--chrome-hover);
    padding: 2px 10px;
    border-radius: 10px;
}

.sc-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    background: var(--bg-primary);
}

.sc-table thead th {
    padding: 8px 12px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--border-primary);
    background: var(--surface-inset);
}

.sc-col-group-row th {
    text-align: center !important;
    font-size: 11px;
    font-weight: 800;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-primary);
    background: var(--surface-inset);
    padding: 6px 12px;
}

.sc-col-group { border-right: 2px solid var(--border-primary); }

/* Fixed column widths — ensures alignment across all tables */
.sc-table { table-layout: fixed; }

.sc-th-num { text-align: right !important; width: 90px; padding-right: 16px !important; }
.sc-th-scale { width: 130px; }

.sc-th-plc {
    width: 90px; /* same as ACT/TAR/VAR */
    text-align: right !important;
    padding-right: 16px !important;
}

.sc-cell-plc {
    text-align: right;
    padding-right: 16px !important;
    font-size: 11px;
    font-weight: 500;
    font-family: 'Consolas', 'SF Mono', monospace;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-plc-alarm {
    color: var(--error) !important;
    font-weight: 700;
    animation: sc-plc-blink 1.5s ease-in-out infinite;
}

@keyframes sc-plc-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Child group section (e.g. Husk) — integrated below parent total */
.sc-child-section {
    border-top: none;
}

.sc-child-header {
    padding: 5px 16px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--accent-primary);
    background: var(--chrome-bg);
    border-left: 3px solid var(--accent-primary);
}

.sc-table-child {
    border-top: none;
    border-radius: 0;
}

.sc-table-child thead th {
    padding: 6px 12px;
    font-size: 9px;
}

.sc-child-parent-ref {
    font-size: 10px;
    font-weight: 400;
    color: var(--text-muted);
    margin-left: 4px;
    font-style: italic;
}

/* Data rows */
.sc-data-row {
    border-bottom: 1px solid var(--border-subtle);
    transition: background 0.15s ease;
}

.sc-data-row:hover { background: var(--hover-bg); }
.sc-data-row td { padding: 7px 12px; }

/* Alternate row shading */
.sc-row-alt { background: var(--surface-inset); }
.sc-row-alt:hover { background: var(--hover-bg); }

.sc-cell-scale { color: var(--text-secondary); font-weight: 600; }
.sc-cell-num { text-align: right; font-variant-numeric: tabular-nums; color: var(--text-primary); padding-right: 16px !important; }
.sc-cell-bold { font-weight: 700; color: var(--text-primary); }
.sc-cell-dim { color: var(--text-secondary) !important; font-weight: 600; }
.sc-cell-cumulative { color: var(--warning); }

.sc-var-pos { color: #10b981 !important; font-weight: 600; }
.sc-var-neg { color: var(--error) !important; font-weight: 600; }
.sc-amend-pos { color: #10b981 !important; }
.sc-amend-neg { color: var(--error) !important; }

/* Variance indicator dots */
.sc-var-indicator {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 5px;
    vertical-align: middle;
}

.sc-vi-pos { background: #10b981; box-shadow: 0 0 6px rgba(16,185,129,0.4); }
.sc-vi-neg { background: var(--error); box-shadow: 0 0 6px rgba(239,68,68,0.4); }

/* Hourly bar in hourly tab */
.sc-hourly-bar-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 20px;
}

.sc-hourly-bar {
    position: absolute;
    left: 0;
    top: 1px;
    bottom: 1px;
    border-radius: 3px;
    background: var(--accent-primary);
    opacity: 0.15;
    transition: width 0.4s ease;
}

.sc-hourly-bar-wrap span {
    position: relative;
    z-index: 1;
}

/* NOW badge */
.sc-now-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 7px;
    border-radius: 8px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.5px;
    background: var(--accent-20);
    color: var(--accent-primary);
    border: 1px solid var(--accent-30);
    animation: sc-pulse-badge 2s ease-in-out infinite;
}

@keyframes sc-pulse-badge {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Group total row */
.sc-total-row {
    border-top: 2px solid var(--border-primary);
    background: var(--surface-inset);
}

.sc-total-row td {
    padding: 10px 12px;
    font-weight: 800;
    font-size: 13px;
    color: var(--text-primary);
}

.sc-grand-total td {
    padding: 12px;
    font-weight: 700;
    font-size: 13px;
    color: var(--text-primary);
}

/* Hourly current row */
.sc-row-current {
    background: var(--accent-light) !important;
    border-left: 3px solid var(--accent-primary);
}

.sc-row-empty td { opacity: 0.35; }
.sc-scale-name { font-weight: 500; }
.sc-hour-label { font-weight: 600; font-variant-numeric: tabular-nums; }

/* -- Status Pills -- */
.sc-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3px;
    border: 1px solid var(--border-primary);
    background: var(--hover-bg);
}

.sc-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    animation: sc-pulse-dot 2s ease-in-out infinite;
}

.sc-status-connected { border-color: rgba(16,185,129,0.3); background: var(--success-light); color: #10b981; }
.sc-status-connected .sc-status-dot { background: #10b981; box-shadow: 0 0 8px rgba(16,185,129,0.6); }
.sc-status-disconnected { border-color: var(--error-light); background: var(--error-light); color: var(--error); }
.sc-status-disconnected .sc-status-dot { background: var(--error); box-shadow: 0 0 8px rgba(239,68,68,0.6); animation: none; }

@keyframes sc-pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.85); }
}

.sc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 14px; font-size: 11px; font-weight: 600; }
.sc-chip-scanning { background: var(--accent-light); color: var(--accent-primary); border: 1px solid var(--accent-20); }
.sc-pulse { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-primary); animation: sc-pulse-anim 1.5s ease-in-out infinite; }

@keyframes sc-pulse-anim {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* -- Empty / Loading -- */
.sc-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    gap: 12px;
    color: var(--text-muted);
}

.sc-empty i { width: 40px; height: 40px; opacity: 0.4; }
.sc-empty p { margin: 0; font-size: 13px; }
.sc-empty-sm { padding: 30px 20px; }

/* -- Hourly Selectors -- */
.sc-hourly-selectors {
    display: flex;
    gap: 16px;
    align-items: flex-end;
}

.sc-fg { display: flex; flex-direction: column; gap: 4px; }

.sc-fg label {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sc-input {
    padding: 7px 12px;
    background: var(--surface-inset);
    border: 1px solid var(--border-primary);
    border-radius: 7px;
    color: var(--text-primary);
    font-size: 12.5px;
    font-weight: 500;
    min-width: 200px;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sc-input:focus { border-color: var(--accent-primary); box-shadow: 0 0 0 2px var(--accent-15); }
.sc-input option { background: var(--surface-elevated); color: var(--text-primary); }

.sc-textarea {
    resize: vertical;
    min-height: 60px;
    font-family: inherit;
}

/* -- Hourly Overview -- */
.sc-hourly-overview-table {
    margin-top: 16px;
}

.sc-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sc-table-compact {
    font-size: 12px;
}

.sc-table-compact th,
.sc-table-compact td {
    padding: 6px 10px;
    white-space: nowrap;
}

.sc-th-total {
    border-left: 2px solid var(--chrome-input-border);
    background: var(--chrome-hover);
}

.sc-cell-total {
    border-left: 2px solid var(--chrome-input-border);
    background: var(--chrome-hover);
}

.sc-row-totals {
    border-top: 2px solid var(--chrome-active);
    background: var(--chrome-hover) !important;
}

.sc-row-totals td {
    font-weight: 700;
    color: var(--text-primary);
}

/* -- Detail View Collapsible -- */
.sc-detail-section {
    margin-top: 24px;
    border-top: 1px solid var(--chrome-border);
    padding-top: 8px;
}

.sc-detail-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--chrome-hover);
    border: 1px solid var(--chrome-border);
    border-radius: 8px;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
    width: 100%;
    text-align: left;
    font-family: inherit;
}

.sc-detail-toggle:hover {
    background: var(--chrome-active);
}

.sc-detail-toggle i {
    width: 16px;
    height: 16px;
    color: var(--text-muted);
}

.sc-detail-scale-name {
    color: var(--text-muted);
    font-weight: 400;
}

.sc-detail-content {
    margin-top: 12px;
    padding: 0 4px;
}

.sc-detail-controls {
    margin-bottom: 16px;
    display: flex;
    gap: 16px;
    align-items: flex-end;
}

/* -- Amendments Section -- */
.sc-amendments-section { margin-top: 20px; }

.sc-amendments-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
}

.sc-amendments-header i { width: 16px; height: 16px; color: var(--accent-primary); }
.sc-table-amendments { max-width: 600px; }

/* -- Settings -- */
.sc-settings-panel {
    padding: 20px 24px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.sc-settings-section {
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 10px;
    border-top: 3px solid var(--accent-primary);
}

.sc-settings-section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-primary);
    background: var(--bg-secondary);
    border-radius: 7px 7px 0 0;
}

.sc-settings-section-header [data-lucide] { color: var(--accent-primary); }
.sc-settings-section-header h3 { margin: 0; font-size: 14px; font-weight: 700; color: var(--text-primary); flex: 1; }

.sc-settings-section .sc-table { margin: 0; border: none; border-radius: 0; }
.sc-settings-section .sc-table thead th { background: var(--bg-tertiary); }
.sc-settings-section .sc-table tbody td { padding: 10px 16px; }
.sc-settings-section .sc-table .sc-data-row:hover { background: var(--hover-bg); }
.sc-settings-section .sc-empty { padding: 40px 20px; }
.sc-settings-section .sc-empty [data-lucide] { width: 32px; height: 32px; }

/* -- Buttons -- */
.sc-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    border: 1px solid var(--border-primary);
    border-radius: 7px;
    background: var(--hover-bg);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.sc-btn i { width: 14px; height: 14px; }
.sc-btn:hover { background: var(--active-bg); color: var(--text-primary); transform: translateY(-1px); }

.sc-btn-sm { padding: 5px 12px; font-size: 11px; }
.sc-btn-sm i { width: 13px; height: 13px; }

.sc-btn-primary {
    background: var(--accent-primary);
    border-color: var(--accent-primary);
    color: var(--on-accent);
    font-weight: 700;
}

.sc-btn-primary:hover { background: var(--accent-secondary); border-color: var(--accent-secondary); box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3); }
.sc-btn-primary:disabled { opacity: 0.5; cursor: default; transform: none; box-shadow: none; }

.sc-btn-icon-sm {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--border-primary);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
}

.sc-btn-icon-sm:hover { background: var(--hover-bg); color: var(--text-primary); border-color: var(--text-muted); }
.sc-btn-danger:hover { background: var(--error-light); color: var(--error); border-color: var(--error-light); }

.sc-cell-actions { display: flex; gap: 6px; justify-content: flex-end; }

.sc-active-badge {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.3px;
}

.sc-badge-on { background: rgba(16,185,129,0.12); color: #10b981; border: 1px solid rgba(16,185,129,0.2); }
.sc-badge-off { background: var(--error-light); color: var(--error); border: 1px solid var(--error-light); }

/* Test report */
.sc-test-report {
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--bg-secondary);
    border-radius: 0 0 7px 7px;
}

.sc-test-report p {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
    flex: 1;
    line-height: 1.5;
}

/* -- Reset Controls -- */
.sc-reset-controls {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    padding: 12px 24px;
    flex-wrap: wrap;
}

.sc-reset-result {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 24px 12px;
    padding: 12px 16px;
    background: var(--bg-tertiary);
    border: 1px solid var(--border-primary);
    border-left: 3px solid var(--accent-primary);
    border-radius: 8px;
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.6;
}

.sc-reset-result [data-lucide] { color: var(--accent-primary); flex-shrink: 0; margin-top: 2px; }

.sc-row-editing { background: var(--accent-light) !important; }

.sc-input-inline {
    padding: 5px 10px !important;
    font-size: 12px !important;
    border-radius: 6px !important;
}

/* -- Dialog -- */
.sc-dialog-overlay {
    position: fixed;
    inset: 0;
    background: var(--overlay-backdrop);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--z-modal-backdrop);
    animation: sc-fade-in 0.2s ease;
}

@keyframes sc-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.sc-dialog {
    background: var(--surface-elevated);
    border: 1px solid var(--border-primary);
    border-radius: 14px;
    border-top: 3px solid var(--accent-primary);
    width: 460px;
    max-width: 95vw;
    box-shadow: 0 25px 60px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,0,0,0.05);
    z-index: var(--z-modal);
    animation: sc-dialog-in 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes sc-dialog-in {
    from { opacity: 0; transform: scale(0.95) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.sc-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border-primary);
    background: var(--bg-secondary);
    border-radius: 11px 11px 0 0;
}

.sc-dialog-header h3 { margin: 0; font-size: 16px; font-weight: 700; color: var(--text-primary); }

.sc-dialog-body {
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sc-dialog-body .sc-input {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 14px;
    font-size: 13px;
    border-radius: 8px;
}

.sc-dialog-body .sc-fg label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
    display: block;
}

.sc-switch-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

.sc-dialog-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 22px;
    border-top: 1px solid var(--border-primary);
    background: var(--bg-secondary);
    border-radius: 0 0 11px 11px;
}

/* -- Scale Checkbox Selector -- */
.sc-scale-checks {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: 10px 14px;
    background: var(--surface-inset);
}

.sc-scale-checks::-webkit-scrollbar { width: 4px; }
.sc-scale-checks::-webkit-scrollbar-track { background: transparent; }
.sc-scale-checks::-webkit-scrollbar-thumb { background: var(--border-primary); border-radius: 2px; }

.sc-check-all {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    cursor: pointer;
    border-bottom: 1px solid var(--border-primary);
    margin-bottom: 8px;
}

.sc-check-group {
    margin-bottom: 8px;
}

.sc-check-group .sc-check-group-label {
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-muted);
    padding: 4px 0 2px;
    display: block;
    border-bottom: none;
    margin-bottom: 0;
}

.sc-check-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0 4px 12px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    transition: color 0.15s;
}

.sc-check-item:hover { color: var(--text-primary); }

.sc-check-item input:disabled { opacity: 0.4; }
.sc-check-item input:disabled + span { opacity: 0.5; }

/* -- Toast Notifications -- */
.sc-toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: var(--z-toast);
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}

.sc-toast {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: var(--surface-elevated);
    border: 1px solid var(--border-primary);
    border-radius: 10px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.2);
    min-width: 320px;
    max-width: 440px;
    pointer-events: auto;
    animation: sc-toast-in 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.sc-toast-out { animation: sc-toast-out 0.25s ease forwards; }

@keyframes sc-toast-in {
    from { opacity: 0; transform: translateX(40px) scale(0.95); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes sc-toast-out {
    to { opacity: 0; transform: translateX(40px) scale(0.95); }
}

.sc-toast-icon { flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; }
.sc-toast-icon [data-lucide] { width: 20px; height: 20px; }
.sc-toast-body { flex: 1; min-width: 0; }
.sc-toast-title { font-size: 13px; font-weight: 700; margin-bottom: 2px; }
.sc-toast-msg { font-size: 12px; color: var(--text-muted); line-height: 1.4; }

.sc-toast-close {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
}

.sc-toast-close:hover { background: var(--hover-bg); color: var(--text-primary); }
.sc-toast-close [data-lucide] { width: 14px; height: 14px; }

.sc-toast-success { border-left: 3px solid #10b981; }
.sc-toast-success .sc-toast-icon { color: #10b981; }
.sc-toast-success .sc-toast-title { color: #10b981; }

.sc-toast-error { border-left: 3px solid var(--error); }
.sc-toast-error .sc-toast-icon { color: var(--error); }
.sc-toast-error .sc-toast-title { color: var(--error); }

.sc-toast-warning { border-left: 3px solid var(--warning); }
.sc-toast-warning .sc-toast-icon { color: var(--warning); }
.sc-toast-warning .sc-toast-title { color: var(--warning); }

.sc-toast-info { border-left: 3px solid var(--info); }
.sc-toast-info .sc-toast-icon { color: var(--info); }
.sc-toast-info .sc-toast-title { color: var(--info); }

/* -- Comparison Stat Cards -- */
.sc-stat-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}

.sc-stat-card {
    padding: 10px 14px;
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 calc(50% - 4px);
    min-width: 100px;
    transition: all 0.2s ease;
}

.sc-stat-card:hover {
    border-color: var(--border-secondary);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.sc-stat-label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}

.sc-stat-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.sc-stat-value small {
    font-size: 10px;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 1px;
}

.sc-stat-sub {
    font-size: 10px;
    color: var(--text-muted);
}

.sc-stat-pos { color: #10b981 !important; }
.sc-stat-neg { color: var(--error) !important; }

/* -- Responsive -- */

/* 1100px-1399px: Single column, cards in row, tables stacked */
@media (max-width: 1399px) and (min-width: 1100px) {
    .sc-production-layout {
        flex-direction: column;
    }
    .sc-sidebar-summary {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        position: static;
    }
    .sc-sidebar-summary .sc-summary-card {
        flex: 1 1 22%;
        min-width: 200px;
    }
    .sc-stat-cards {
        flex-direction: row;
    }
    .sc-stat-card {
        flex: 1 1 auto;
        min-width: 120px;
    }
    .sc-sections-grid {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
}

/* 768px-1099px: Tablet */
@media (max-width: 1099px) and (min-width: 768px) {
    .sc-production-layout {
        flex-direction: column;
        padding: 12px 16px;
    }
    .sc-sidebar-summary {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        position: static;
        gap: 10px;
    }
    .sc-sidebar-summary .sc-summary-card {
        flex: 1 1 45%;
        min-width: 200px;
    }
    .sc-stat-cards {
        flex-direction: row;
    }
    .sc-stat-card {
        flex: 1 1 calc(50% - 4px);
        min-width: 120px;
    }
    .sc-th-plc, .sc-cell-plc { display: none; }
    .sc-table { font-size: 12px; }
    .sc-data-row td { padding: 5px 10px; }
    .sc-table thead th { padding: 6px 10px; }
    .sc-controls { flex-wrap: wrap; gap: 10px; }
    .sc-hourly-selectors { flex-wrap: wrap; }
    .sc-card-value { font-size: 18px; }
    .sc-card-value-lg { font-size: 22px; }
    .sc-sections-grid {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
}

/* -- Mobile Summary Toggle (hidden on desktop) -- */
.sc-mobile-summary-toggle {
    display: none;
}

/* <768px: Mobile */
@media (max-width: 767px) {
    /* Controls bar — single row */
    .sc-controls {
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
        padding: 6px 10px;
        gap: 6px;
    }
    .sc-period-group { padding: 2px; }
    .sc-period-btn { padding: 5px 10px; font-size: 11px; gap: 4px; }
    .sc-date-nav { gap: 4px; }
    .sc-nav-btn { padding: 4px 8px; font-size: 10px; }
    .sc-nav-today { display: none; }
    .sc-date-display { min-width: 100px; font-size: 11px; padding: 0 6px; }
    .sc-btn-icon { width: 30px; height: 30px; }

    /* Production layout */
    .sc-production-layout {
        flex-direction: column;
        padding: 8px 10px;
    }

    /* Sidebar summary — hidden by default, toggle to expand */
    .sc-sidebar-summary {
        width: 100%;
        flex-direction: column;
        position: static;
        gap: 8px;
        display: none;
    }
    .sc-sidebar-summary.sc-mobile-expanded {
        display: flex;
    }
    .sc-sidebar-summary .sc-summary-card {
        flex: 1 1 100%;
        padding: 12px 14px;
    }

    /* Mobile summary toggle bar */
    .sc-mobile-summary-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 8px 12px;
        background: var(--surface);
        border: 1px solid var(--border-primary);
        border-radius: 8px;
        color: var(--text-secondary);
        font-size: 12px;
        font-weight: 700;
        cursor: pointer;
        margin-bottom: 8px;
        transition: all 0.2s ease;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    .sc-mobile-summary-toggle:hover {
        background: var(--hover-bg);
        color: var(--text-primary);
    }

    /* Stat cards — hidden on mobile */
    .sc-stat-cards { display: none; }

    /* Summary cards — hidden on mobile */
    .sc-summary-cards { display: none; }

    /* Tables — truly compact */
    .sc-th-plc, .sc-cell-plc { display: none; }
    .sc-table { font-size: 11px; }
    .sc-table thead th { padding: 4px 6px; font-size: 9px; }
    .sc-data-row td { padding: 4px 6px; }
    .sc-total-row td { padding: 6px 6px; font-size: 11px; }
    .sc-table-container { overflow-x: auto; padding: 4px 8px 12px; }
    .sc-th-scale { width: 100px; }
    .sc-sec-header { padding: 7px 12px; font-size: 10px; }

    /* Other mobile adjustments */
    .sc-hourly-selectors { flex-direction: column; width: 100%; }
    .sc-fg { width: 100%; }
    .sc-input { min-width: unset; width: 100%; }
    .sc-card-value { font-size: 16px; }
    .sc-card-value-lg { font-size: 20px; }
    .sc-card-progress-ring { width: 56px; height: 56px; }
    .sc-card-progress-ring svg { width: 56px; height: 56px; }
    .sc-tabs { padding: 0 8px; overflow-x: auto; }
    .sc-tab { padding: 8px 12px; font-size: 11px; white-space: nowrap; }
    .sc-settings-panel { padding: 10px; }
    .sc-toast-container { left: 10px; right: 10px; bottom: 10px; }
    .sc-toast { min-width: auto; }
    .sc-chart-section { margin: 8px 8px 4px; }
    .sc-sections-grid {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .sc-pct-label { width: 70px; min-width: 70px; font-size: 10px; }
    .sc-pct-bar-wrap { height: 24px; }
    .sc-pct-row { gap: 8px; padding: 4px 0; }
    .sc-reset-controls { padding: 8px 12px; }
    .sc-dialog { width: 95vw; }
}

/* Very small screens — hide VAR and % columns */
@media (max-width: 500px) {
    .sc-th-var, .sc-cell-var,
    .sc-th-pct, .sc-cell-pct-col { display: none; }
}

/* -- Syncfusion chart overrides for dark background -- */
.sc-chart-container .e-chart {
    background: transparent !important;
}

.sc-chart-container .e-chart .e-chart-focused {
    outline: none !important;
}

/* ═══ LIVE VIEW — Dark Industrial Theme ═══ */
.lv-page { padding: 0; background: var(--chrome-bg); min-height: 100%; }

/* Status bar */
.lv-status-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 24px;
    background: var(--chrome-bg);
    border-bottom: 1px solid var(--chrome-border);
}

.lv-status-left { display: flex; align-items: center; gap: 12px; }

.lv-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.lv-badge-live { background: rgba(16,185,129,0.15); color: #34d399; border: 1px solid rgba(16,185,129,0.3); }
.lv-badge-off { background: var(--error-light); color: var(--error); border: 1px solid var(--error-light); }

.lv-pulse-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 8px rgba(52,211,153,0.6);
    animation: lvPulse 1.5s ease-in-out infinite;
}

@keyframes lvPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(0.6); }
}

.lv-scale-count { font-size: 11px; color: var(--chrome-text-muted); font-weight: 600; }

/* Groups */
.lv-group { padding: 20px 24px 0; }

.lv-group-header {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--accent-primary);
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--accent-15);
}

/* Card grid */
.lv-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    margin-bottom: 8px;
}

/* Card base */
.lv-card {
    position: relative;
    background: var(--chrome-hover);
    border: 1px solid var(--chrome-input-border);
    border-radius: 12px;
    padding: 16px 18px;
    overflow: hidden;
    transition: all 0.2s ease;
}

.lv-card:hover {
    border-color: var(--chrome-input-border);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

/* Accent glow strip at top */
.lv-card-accent {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: var(--chrome-hover);
    transition: background 0.3s;
}

.lv-online .lv-card-accent { background: linear-gradient(90deg, #10b981, #34d399); box-shadow: 0 0 12px rgba(16,185,129,0.3); }
.lv-alarm .lv-card-accent { background: linear-gradient(90deg, var(--error), var(--error)); box-shadow: 0 0 16px rgba(239,68,68,0.4); animation: lvGlowRed 1.5s ease-in-out infinite; }
.lv-maint .lv-card-accent { background: linear-gradient(90deg, var(--accent-primary), var(--accent-primary)); box-shadow: 0 0 12px rgba(245, 158, 11, 0.3); }
.lv-offline .lv-card-accent { background: var(--chrome-hover); }

@keyframes lvGlowRed {
    0%, 100% { box-shadow: 0 0 16px rgba(239,68,68,0.4); }
    50% { box-shadow: 0 0 24px rgba(239,68,68,0.7); }
}

.lv-offline { opacity: 0.5; }
.lv-alarm { background: var(--error-light); }
.lv-maint { background: var(--accent-dim); }

/* Card header */
.lv-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.lv-card-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--chrome-text);
    letter-spacing: 0.3px;
}

.lv-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.lv-dot-on { background: #34d399; box-shadow: 0 0 8px rgba(52,211,153,0.6); }
.lv-dot-off { background: var(--chrome-text-dim); }

/* Readings */
.lv-reading { margin-bottom: 6px; }

.lv-reading-primary .lv-reading-val {
    font-size: 22px;
    font-weight: 800;
    font-family: 'Consolas', 'SF Mono', 'Courier New', monospace;
    color: var(--accent-primary);
    letter-spacing: 0.5px;
}

.lv-reading-secondary .lv-reading-val {
    font-size: 15px;
    font-weight: 600;
    font-family: 'Consolas', 'SF Mono', 'Courier New', monospace;
    color: var(--accent-primary);
    letter-spacing: 0.3px;
}

.lv-val-alarm {
    color: var(--error) !important;
    animation: lvBlink 0.8s ease-in-out infinite;
}

.lv-val-maint {
    color: var(--accent-primary) !important;
    font-style: italic;
}

@keyframes lvBlink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* Footer */
.lv-card-footer {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid var(--chrome-border);
}

.lv-timestamp {
    font-size: 10px;
    font-weight: 600;
    color: var(--chrome-text-muted);
    font-family: 'Consolas', 'SF Mono', monospace;
    letter-spacing: 1px;
}

.lv-nodata {
    color: var(--chrome-text-dim);
    font-size: 13px;
    font-style: italic;
    padding: 16px 0;
}

/* Responsive */
@media (max-width: 767px) {
    .lv-cards { grid-template-columns: 1fr 1fr; gap: 8px; }
    .lv-group { padding: 12px 12px 0; }
    .lv-card { padding: 12px 14px; }
    .lv-reading-primary .lv-reading-val { font-size: 18px; }
    .lv-reading-secondary .lv-reading-val { font-size: 13px; }
}

@media (max-width: 480px) {
    .lv-cards { grid-template-columns: 1fr; }
}

/* ========================================
   RESPONSIVE — Tablet (max-width: 1024px)
   ======================================== */
@media (max-width: 1024px) {
    .sc-sidebar-summary {
        display: none;
    }

    .sc-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sc-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .sc-tabs::-webkit-scrollbar { display: none; }

    .sc-tab {
        white-space: nowrap;
        flex-shrink: 0;
    }

    .lv-cards {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
}

/* ========================================
   RESPONSIVE — Mobile (max-width: 768px)
   ======================================== */
@media (max-width: 768px) {
    .sc-sidebar-summary {
        width: 100%;
        flex-direction: column;
        position: static;
    }

    .sc-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sc-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 0 8px;
    }
    .sc-tabs::-webkit-scrollbar { display: none; }

    .sc-tab {
        white-space: nowrap;
        flex-shrink: 0;
        padding: 6px 10px;
        font-size: 11px;
    }

    .lv-status-bar {
        flex-wrap: wrap;
        padding: 8px 12px;
        gap: 8px;
    }
}

/* ==========================================================
   LIVE DETAIL VIEW (ldv-*)
   Premium per-scale analytics dashboard with sidebar selector
   ========================================================== */

.ldv-page {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 0;
    min-height: 100%;
    background: var(--bg-primary);
    position: relative;
}

/* ----- Sidebar (scale list) ----- */
.ldv-sidebar {
    background: var(--chrome-bg);
    border-right: 1px solid var(--chrome-border);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    max-height: calc(100vh - 120px);
    position: sticky;
    top: 60px;
    overflow: hidden;
    transition: width 0.25s ease, grid-template-columns 0.25s ease;
}

.ldv-sidebar-collapsed {
    width: 56px;
}

.ldv-page:has(.ldv-sidebar-collapsed) {
    grid-template-columns: 56px 1fr;
}

.ldv-sidebar-collapsed .ldv-sidebar-title span,
.ldv-sidebar-collapsed .ldv-sidebar-status,
.ldv-sidebar-collapsed .ldv-side-name,
.ldv-sidebar-collapsed .ldv-side-group-name,
.ldv-sidebar-collapsed .ldv-side-alarm-icon {
    display: none;
}

.ldv-sidebar-collapsed .ldv-side-item {
    justify-content: center;
    padding: 10px 8px;
}

.ldv-sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--chrome-border);
    background: linear-gradient(180deg, rgba(255, 0, 131, 0.06) 0%, transparent 100%);
}

.ldv-sidebar-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--chrome-text);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ldv-sidebar-title i {
    color: var(--accent-primary);
}

.ldv-sidebar-toggle {
    background: transparent;
    border: 1px solid var(--chrome-border);
    color: var(--chrome-text-muted);
    border-radius: 6px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ldv-sidebar-toggle:hover {
    background: var(--chrome-hover);
    color: var(--chrome-text);
    border-color: var(--accent-primary);
}

.ldv-sidebar-status {
    padding: 10px 16px;
    border-bottom: 1px solid var(--chrome-border);
}

.ldv-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ldv-badge-live {
    background: rgba(42, 213, 189, 0.15);
    color: #34d399;
    border: 1px solid rgba(42, 213, 189, 0.3);
}

.ldv-badge-off {
    background: var(--error-light);
    color: var(--error);
    border: 1px solid rgba(247, 39, 74, 0.3);
}

.ldv-pulse-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 8px rgba(52, 211, 153, 0.6);
    animation: ldv-pulse 1.5s ease-in-out infinite;
}

@keyframes ldv-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.3); opacity: 0.7; }
}

.ldv-sidebar-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}

.ldv-sidebar-scroll::-webkit-scrollbar { width: 4px; }
.ldv-sidebar-scroll::-webkit-scrollbar-track { background: transparent; }
.ldv-sidebar-scroll::-webkit-scrollbar-thumb { background: var(--chrome-border); border-radius: 2px; }

.ldv-side-group {
    margin-bottom: 6px;
}

.ldv-side-group-name {
    padding: 8px 16px 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--chrome-text-dim);
}

.ldv-side-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 16px;
    background: transparent;
    border: none;
    border-left: 3px solid transparent;
    color: var(--chrome-text-muted);
    font-size: 13px;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--font-sans);
}

.ldv-side-item:hover {
    background: var(--chrome-hover);
    color: var(--chrome-text);
}

.ldv-side-item.active {
    background: var(--chrome-active);
    color: var(--chrome-text);
    border-left-color: var(--accent-primary);
}

.ldv-side-item.has-alarm {
    animation: ldv-row-pulse 2s ease-in-out infinite;
}

@keyframes ldv-row-pulse {
    0%, 100% { background: transparent; }
    50% { background: rgba(247, 39, 74, 0.1); }
}

.ldv-side-item.active.has-alarm {
    background: rgba(247, 39, 74, 0.15);
}

.ldv-side-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ldv-dot-on {
    background: #34d399;
    box-shadow: 0 0 8px rgba(52, 211, 153, 0.6);
}

.ldv-dot-off {
    background: var(--chrome-text-dim);
}

.ldv-dot-alarm {
    background: var(--error);
    box-shadow: 0 0 12px rgba(247, 39, 74, 0.8);
    animation: ldv-pulse 1s ease-in-out infinite;
}

.ldv-dot-maint {
    background: var(--warning);
    box-shadow: 0 0 8px rgba(255, 176, 28, 0.6);
}

.ldv-side-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ldv-side-alarm-icon {
    color: var(--error);
    width: 14px !important;
    height: 14px !important;
    animation: ldv-shake 0.5s ease-in-out infinite;
}

@keyframes ldv-shake {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-10deg); }
    75% { transform: rotate(10deg); }
}

/* ----- Main content ----- */
.ldv-main {
    padding: 20px 24px 32px;
    overflow-x: hidden;
}

.ldv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: 10px;
    color: var(--text-muted);
    text-align: center;
}

.ldv-empty i {
    width: 64px !important;
    height: 64px !important;
    opacity: 0.3;
    color: var(--accent-primary);
}

.ldv-empty h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 8px 0 0;
}

.ldv-empty p {
    color: var(--text-muted);
    margin: 0;
    max-width: 320px;
}

/* ----- Header ----- */
.ldv-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    padding: 16px 20px;
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 16px;
    margin-bottom: 16px;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
}

.ldv-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent-primary), #ff65b3, var(--accent-primary));
    background-size: 200% 100%;
    animation: ldv-gradient-shift 4s linear infinite;
}

@keyframes ldv-gradient-shift {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

.ldv-header-title {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 300px;
}

.ldv-header-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--accent-primary), #ff65b3);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 20px rgba(255, 0, 131, 0.3);
    flex-shrink: 0;
}

.ldv-header-icon i {
    width: 28px !important;
    height: 28px !important;
    color: #fff;
}

.ldv-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}

.ldv-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ldv-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--surface-inset);
    border: 1px solid var(--border-primary);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ldv-meta-item i {
    width: 12px !important;
    height: 12px !important;
    color: var(--accent-primary);
}

.ldv-status-online {
    background: rgba(42, 213, 189, 0.12);
    border-color: rgba(42, 213, 189, 0.3);
    color: var(--success);
}

.ldv-status-online i { color: var(--success); }

.ldv-status-offline {
    background: rgba(155, 155, 155, 0.12);
    border-color: var(--border-secondary);
    color: var(--text-muted);
}

.ldv-status-offline i { color: var(--text-muted); }

.ldv-status-alarm {
    background: var(--error-light);
    border-color: rgba(247, 39, 74, 0.3);
    color: var(--error);
    animation: ldv-badge-pulse 1s ease-in-out infinite;
}

.ldv-status-alarm i {
    color: var(--error);
    animation: ldv-shake 0.5s ease-in-out infinite;
}

@keyframes ldv-badge-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(247, 39, 74, 0.3); }
    50% { box-shadow: 0 0 0 8px rgba(247, 39, 74, 0); }
}

.ldv-status-maint {
    background: var(--warning-light);
    border-color: rgba(255, 176, 28, 0.3);
    color: var(--warning);
}

.ldv-status-maint i { color: var(--warning); }

.ldv-header-actions {
    display: flex;
    gap: 8px;
}

.ldv-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--accent-light);
    border: 1px solid var(--accent-20);
    border-radius: 10px;
    color: var(--accent-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--font-sans);
}

.ldv-btn:hover:not(:disabled) {
    background: var(--accent-primary);
    color: #fff;
    border-color: var(--accent-primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 0, 131, 0.25);
}

.ldv-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ldv-btn i {
    width: 14px !important;
    height: 14px !important;
}

.ldv-spin {
    animation: ldv-spin-rot 1s linear infinite;
}

@keyframes ldv-spin-rot {
    to { transform: rotate(360deg); }
}

/* ----- Stat grid ----- */
.ldv-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ldv-stat {
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 14px;
    padding: 14px 16px;
    display: flex;
    gap: 12px;
    align-items: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
    overflow: hidden;
}

.ldv-stat::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--accent-primary);
    opacity: 0;
    transition: opacity 0.2s ease;
}

.ldv-stat:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--accent-20);
}

.ldv-stat:hover::before { opacity: 1; }

.ldv-stat-rate::before { background: var(--info); }
.ldv-stat-total::before { background: var(--success); }
.ldv-stat-period::before { background: var(--accent-primary); }
.ldv-stat-status::before { background: var(--warning); }
.ldv-stat-status.ldv-stat-active { border-color: var(--error); }
.ldv-stat-status.ldv-stat-active::before { background: var(--error); opacity: 1; }

.ldv-stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--surface-inset);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ldv-stat-icon i {
    width: 20px !important;
    height: 20px !important;
    color: var(--accent-primary);
}

.ldv-stat-rate .ldv-stat-icon { background: var(--info-light); }
.ldv-stat-rate .ldv-stat-icon i { color: var(--info); }

.ldv-stat-total .ldv-stat-icon { background: var(--success-light); }
.ldv-stat-total .ldv-stat-icon i { color: var(--success); }

.ldv-stat-period .ldv-stat-icon { background: var(--accent-light); }
.ldv-stat-period .ldv-stat-icon i { color: var(--accent-primary); }

.ldv-stat-status .ldv-stat-icon { background: var(--warning-light); }
.ldv-stat-status .ldv-stat-icon i { color: var(--warning); }

.ldv-stat-status.ldv-stat-active .ldv-stat-icon { background: var(--error-light); }
.ldv-stat-status.ldv-stat-active .ldv-stat-icon i {
    color: var(--error);
    animation: ldv-shake 0.5s ease-in-out infinite;
}

.ldv-stat-body {
    flex: 1;
    min-width: 0;
}

.ldv-stat-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 3px;
}

.ldv-stat-value {
    display: block;
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
    font-family: var(--font-mono);
    line-height: 1.15;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ldv-stat-trend {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
}

.ldv-stat-trend i {
    width: 12px !important;
    height: 12px !important;
}

.ldv-stat-trend.up { color: var(--success); }
.ldv-stat-trend.down { color: var(--error); }
.ldv-stat-trend.stable { color: var(--text-muted); }

.ldv-stat-sub {
    display: block;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
}

/* ----- Cards (chart + readings) ----- */
.ldv-card {
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 16px;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.ldv-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.ldv-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
}

.ldv-card-title i {
    color: var(--accent-primary);
    width: 18px !important;
    height: 18px !important;
}

.ldv-range {
    display: inline-flex;
    gap: 2px;
    background: var(--surface-inset);
    border: 1px solid var(--border-primary);
    border-radius: 10px;
    padding: 3px;
}

.ldv-range-btn {
    background: transparent;
    border: none;
    color: var(--text-secondary);
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 7px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--font-sans);
    letter-spacing: 0.02em;
}

.ldv-range-btn:hover {
    background: var(--accent-light);
    color: var(--accent-primary);
}

.ldv-range-btn.active {
    background: var(--accent-primary);
    color: #fff;
    box-shadow: 0 2px 6px rgba(255, 0, 131, 0.25);
}

/* Chart wrap */
.ldv-chart-wrap {
    min-height: 380px;
    position: relative;
}

.ldv-chart-loading,
.ldv-chart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    gap: 10px;
    color: var(--text-muted);
}

.ldv-chart-loading i,
.ldv-chart-empty i {
    width: 48px !important;
    height: 48px !important;
    opacity: 0.3;
    color: var(--accent-primary);
}

.ldv-chart-empty span,
.ldv-chart-loading span {
    font-size: 13px;
}

/* Readings table */
.ldv-readings-wrap {
    overflow-x: auto;
    border-radius: 10px;
    border: 1px solid var(--border-primary);
}

.ldv-readings-wrap::-webkit-scrollbar { height: 6px; }
.ldv-readings-wrap::-webkit-scrollbar-track { background: var(--surface-inset); }
.ldv-readings-wrap::-webkit-scrollbar-thumb { background: var(--border-secondary); border-radius: 3px; }

.ldv-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ldv-table thead {
    background: linear-gradient(180deg, var(--accent-light) 0%, transparent 100%);
    position: sticky;
    top: 0;
    z-index: 1;
}

.ldv-table th {
    padding: 10px 14px;
    text-align: left;
    font-weight: 700;
    font-size: 11px;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid var(--border-primary);
    white-space: nowrap;
}

.ldv-table th.ldv-num {
    text-align: right;
}

.ldv-table tbody tr {
    transition: background 0.15s ease;
}

.ldv-table tbody tr:hover {
    background: var(--accent-light);
}

.ldv-table td {
    padding: 9px 14px;
    border-bottom: 1px solid var(--border-primary);
    color: var(--text-primary);
}

.ldv-table td.ldv-num {
    text-align: right;
    font-family: var(--font-mono);
    font-weight: 600;
}

.ldv-time-cell {
    font-family: var(--font-mono);
    min-width: 160px;
}

.ldv-time-primary {
    display: block;
    font-weight: 600;
    color: var(--text-primary);
    font-size: 12px;
}

.ldv-time-secondary {
    display: block;
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

.ldv-pill {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 6px;
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 12px;
}

.ldv-pill-total {
    background: var(--success-light);
    color: var(--success);
}

.ldv-pill-rate {
    background: var(--info-light);
    color: var(--info);
}

.ldv-pos { color: var(--success); }
.ldv-neg { color: var(--error); }

.ldv-no-data {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    gap: 10px;
    color: var(--text-muted);
}

.ldv-no-data i {
    width: 40px !important;
    height: 40px !important;
    opacity: 0.3;
}

.ldv-no-data p {
    margin: 0;
    font-size: 13px;
}

/* Fullscreen (browser fullscreen API triggered on .ldv-main) */
.ldv-main-fullscreen,
.ldv-main:fullscreen,
.ldv-main:-webkit-full-screen {
    background: var(--bg-primary);
    padding: 24px 32px !important;
    overflow-y: auto;
    width: 100vw;
    height: 100vh;
    max-height: 100vh;
}

.ldv-main-fullscreen .ldv-card-chart,
.ldv-main:fullscreen .ldv-card-chart,
.ldv-main:-webkit-full-screen .ldv-card-chart {
    min-height: 70vh;
}

.ldv-main-fullscreen .ldv-stat-value,
.ldv-main:fullscreen .ldv-stat-value,
.ldv-main:-webkit-full-screen .ldv-stat-value {
    font-size: 28px;
}

.ldv-main-fullscreen .ldv-title,
.ldv-main:fullscreen .ldv-title,
.ldv-main:-webkit-full-screen .ldv-title {
    font-size: 28px;
}

/* Ghost button variant */
.ldv-btn-ghost {
    background: transparent;
    border: 1px solid var(--border-primary);
    color: var(--text-secondary);
}

.ldv-btn-ghost:hover:not(:disabled) {
    background: var(--accent-light);
    color: var(--accent-primary);
    border-color: var(--accent-20);
}

/* Back button variant */
.ldv-btn-back {
    padding: 8px 10px !important;
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border-primary);
}

.ldv-btn-back:hover:not(:disabled) {
    background: var(--accent-light);
    color: var(--accent-primary);
    border-color: var(--accent-20);
}

/* Fullscreen button highlight */
.ldv-btn-fullscreen {
    background: linear-gradient(135deg, var(--accent-primary), #ff65b3);
    color: #fff !important;
    border: 1px solid transparent !important;
    box-shadow: var(--shadow-accent-sm);
}

.ldv-btn-fullscreen:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: var(--shadow-accent-md);
}

/* Standalone bare-layout page (/scale-live/{id}) */
.slp-page {
    min-height: 100vh;
    background: var(--bg-primary);
    display: block;
    padding: 0;
    color: var(--text-primary);
    font-family: var(--font-sans);
}

.slp-page [data-lucide] {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    flex-shrink: 0;
}

.slp-page [data-lucide] svg {
    width: 16px !important;
    height: 16px !important;
}

/* -----------------------------------------------------------
   Chart custom data labels (Template-rendered HTML pills)
   Clean, bold, high-contrast. Auto-inherits theme via .is-dark
   ----------------------------------------------------------- */
.ldv-chart-lbl {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    padding: 3px 8px;
    border-radius: 6px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
    letter-spacing: -0.01em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    pointer-events: none;
    user-select: none;
}

.ldv-chart-lbl-val {
    font-variant-numeric: tabular-nums;
    font-size: 12px;
}

.ldv-chart-lbl-unit {
    font-size: 9.5px;
    font-weight: 600;
    opacity: 0.75;
    letter-spacing: 0.02em;
}

/* Rate (pink) */
.ldv-chart-lbl-rate {
    background: #ffffff;
    color: #ff0083;
    border: 1.5px solid #ff0083;
}

.ldv-chart-lbl-rate.is-dark {
    background: #1f1f1f;
    color: #ff4fa5;
    border-color: #ff4fa5;
}

/* Total (teal) */
.ldv-chart-lbl-total {
    background: #ffffff;
    color: #15998a;
    border: 1.5px solid #2AD5BD;
}

.ldv-chart-lbl-total.is-dark {
    background: #1f1f1f;
    color: #7be5d6;
    border-color: #7be5d6;
}

/* ============================================================
   PRODUCTION vs TARGET CHART — Premium SfChart presentation
   Stat strip + colour-coded legend + theme-aware data labels
   ============================================================ */
.sc-pvt-card {
    margin-top: 14px;
    background: var(--surface);
    border: 1px solid var(--border-primary);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    font-family: var(--font-sans);
    position: relative;
}

.sc-pvt-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent-primary), #ff65b3, var(--accent-primary));
    background-size: 200% 100%;
    animation: sc-pvt-bar 6s linear infinite;
    opacity: 0.85;
    pointer-events: none;
    z-index: 1;
}

@keyframes sc-pvt-bar {
    0%   { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

/* Head strip */
.sc-pvt-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: linear-gradient(180deg, rgba(255, 0, 131, 0.04), transparent);
    border-bottom: 1px solid var(--border-primary);
    cursor: pointer;
    user-select: none;
    transition: background 0.2s ease;
}

.sc-pvt-head:hover {
    background: linear-gradient(180deg, rgba(255, 0, 131, 0.07), rgba(255, 0, 131, 0.01));
}

.sc-pvt-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex-wrap: wrap;
}

.sc-pvt-title i {
    width: 20px !important;
    height: 20px !important;
    color: var(--accent-primary);
}

.sc-pvt-title h2 {
    font-size: 16px;
    font-weight: 800;
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.sc-pvt-subtitle {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 10px;
    background: var(--surface-inset);
    border-radius: 999px;
    border: 1px solid var(--border-primary);
}

.sc-pvt-head-right {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sc-pvt-count {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.sc-pvt-toggle {
    background: transparent;
    border: 1px solid var(--border-primary);
    color: var(--text-secondary);
    border-radius: 8px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.sc-pvt-toggle:hover {
    background: var(--accent-light);
    color: var(--accent-primary);
    border-color: var(--accent-20);
}

.sc-pvt-toggle i {
    width: 16px !important;
    height: 16px !important;
}

/* Stat strip */
.sc-pvt-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    padding: 14px 18px 6px;
}

.sc-pvt-stat {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--surface-inset);
    border: 1px solid var(--border-primary);
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sc-pvt-stat:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.sc-pvt-stat::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    background: var(--accent-primary);
    opacity: 0.9;
}

.sc-pvt-stat-best::before   { background: #facc15; } /* gold */
.sc-pvt-stat-avg::before    { background: var(--accent-primary); }
.sc-pvt-stat-over::before   { background: var(--success); }
.sc-pvt-stat-under::before  { background: var(--error); }
.sc-pvt-stat-under-ok::before { background: var(--success); }

.sc-pvt-stat-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-light);
    flex-shrink: 0;
}

.sc-pvt-stat-icon i {
    width: 20px !important;
    height: 20px !important;
    color: var(--accent-primary);
}

.sc-pvt-stat-best .sc-pvt-stat-icon   { background: rgba(250, 204, 21, 0.15); }
.sc-pvt-stat-best .sc-pvt-stat-icon i { color: #ca8a04; }

.sc-pvt-stat-avg .sc-pvt-stat-icon    { background: var(--accent-light); }
.sc-pvt-stat-avg .sc-pvt-stat-icon i  { color: var(--accent-primary); }

.sc-pvt-stat-over .sc-pvt-stat-icon   { background: var(--success-light); }
.sc-pvt-stat-over .sc-pvt-stat-icon i { color: var(--success); }

.sc-pvt-stat-under .sc-pvt-stat-icon  { background: var(--error-light); }
.sc-pvt-stat-under .sc-pvt-stat-icon i {
    color: var(--error);
    animation: ldv-shake 0.8s ease-in-out infinite;
}

.sc-pvt-stat-under-ok .sc-pvt-stat-icon  { background: var(--success-light); }
.sc-pvt-stat-under-ok .sc-pvt-stat-icon i { color: var(--success); }

.sc-pvt-stat-body {
    flex: 1;
    min-width: 0;
}

.sc-pvt-stat-label {
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 2px;
}

.sc-pvt-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-pvt-stat-sub {
    display: block;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}

/* Legend strip */
.sc-pvt-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 8px 18px 4px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-secondary);
}

.sc-pvt-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sc-pvt-sw {
    display: inline-block;
    width: 16px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}

.sc-pvt-sw-great  { background: #10b981; }
.sc-pvt-sw-good   { background: #f59e0b; }
.sc-pvt-sw-low    { background: #ef4444; }
.sc-pvt-sw-target {
    background: #FFB01C;
    height: 4px;
    border-radius: 2px;
    width: 22px;
    align-self: center;
    box-shadow: 0 0 6px rgba(255, 176, 28, 0.4);
}

/* Chart wrapper */
.sc-pvt-chart-wrap {
    padding: 10px 14px 16px;
    position: relative;
}

/* Constrain chart height on small screens — forces Syncfusion's SVG viewbox
   to shrink so the 420 px Height="" still yields a usable phone layout. */
@media (max-width: 768px) {
    .sc-pvt-chart-wrap > div[id^="chart"],
    .sc-pvt-chart-wrap svg {
        max-height: 340px !important;
        height: 340px !important;
    }
}
@media (max-width: 480px) {
    .sc-pvt-chart-wrap > div[id^="chart"],
    .sc-pvt-chart-wrap svg {
        max-height: 280px !important;
        height: 280px !important;
    }
}

/* Data-label pill (template-rendered HTML) */
.sc-pvt-lbl {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    padding: 4px 8px;
    background: #ffffff;
    border: 1.5px solid currentColor; /* overridden by inline style for per-point color */
    border-radius: 6px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
    letter-spacing: -0.01em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    font-variant-numeric: tabular-nums;
    pointer-events: none;
}

.sc-pvt-lbl.is-dark {
    background: #1f1f1f;
}

.sc-pvt-lbl-val {
    font-size: 12px;
}

.sc-pvt-lbl-unit {
    font-size: 9.5px;
    font-weight: 700;
    opacity: 0.8;
    letter-spacing: 0.02em;
    margin-right: 3px;
}

.sc-pvt-lbl-pct {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 4px;
    background: currentColor;
    color: #ffffff !important;
    opacity: 0.92;
    margin-left: 2px;
    /* Trick: `currentColor` used for bg, but we need the text to be white.
       The outer span color-cascades to currentColor, so:
       - background: currentColor (inherits the column color)
       - color: #fff with !important so it flips to white on the pct badge */
}

.sc-pvt-lbl.is-dark .sc-pvt-lbl-pct {
    color: #ffffff !important;
}

/* Responsive: tablet and smaller */
@media (max-width: 900px) {
    .sc-pvt-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .sc-pvt-head { padding: 12px 14px; }
    .sc-pvt-title h2 { font-size: 14px; }
    .sc-pvt-subtitle { font-size: 10px; padding: 2px 8px; }
    .sc-pvt-stats { padding: 12px 14px 4px; gap: 8px; }
    .sc-pvt-stat { padding: 8px 10px; gap: 8px; }
    .sc-pvt-stat-icon { width: 34px; height: 34px; }
    .sc-pvt-stat-icon i { width: 16px !important; height: 16px !important; }
    .sc-pvt-stat-value { font-size: 14px; }
    .sc-pvt-stat-sub { font-size: 10.5px; }
    .sc-pvt-legend { font-size: 10.5px; gap: 10px; padding: 6px 14px 2px; }
    .sc-pvt-chart-wrap { padding: 6px 8px 12px; }
    .sc-pvt-lbl { font-size: 10px; padding: 3px 6px; }
    .sc-pvt-lbl-val { font-size: 11px; }
}

@media (max-width: 480px) {
    .sc-pvt-stats { grid-template-columns: 1fr; }
    .sc-pvt-subtitle { display: none; }
    .sc-pvt-head { padding: 10px 12px; }
    .sc-pvt-title h2 { font-size: 13px; }
    .sc-pvt-title i { width: 16px !important; height: 16px !important; }
    .sc-pvt-count { display: none; }
    .sc-pvt-lbl {
        padding: 2px 5px;
        gap: 2px;
    }
    .sc-pvt-lbl-val { font-size: 10px; }
    .sc-pvt-lbl-unit { display: none; }
    .sc-pvt-lbl-pct { font-size: 9px; padding: 0 4px; }
    .sc-pvt-legend { font-size: 10px; gap: 8px; padding: 6px 10px 2px; }
    .sc-pvt-chart-wrap { padding: 4px 2px 10px; }
}

/* Very small phones (≤ 400 px): hide the pct badge, keep just the tonnes */
@media (max-width: 400px) {
    .sc-pvt-lbl-pct { display: none; }
    .sc-pvt-lbl-val { font-size: 9.5px; }
    .sc-pvt-stat-value { font-size: 13px; }
    .sc-pvt-stat-sub { font-size: 10px; }
    .sc-pvt-stat-icon { width: 30px; height: 30px; }
    .sc-pvt-stat-icon i { width: 14px !important; height: 14px !important; }
}

/* -----------------------------------------------------------
   Alarm History panel — live timeline, in-memory, session-scoped
   ----------------------------------------------------------- */
.ldv-card-alarms {
    position: relative;
    overflow: hidden;
}

.ldv-card-alarms::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--success), #5eebd8);
    opacity: 0.6;
    transition: background 0.4s ease, opacity 0.4s ease;
}

.ldv-card-alarms.has-active::before {
    background: linear-gradient(90deg, var(--error), #ff6b6b, var(--error));
    background-size: 200% 100%;
    animation: ldv-alarm-bar 2s linear infinite;
    opacity: 1;
}

@keyframes ldv-alarm-bar {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

.ldv-card-head-right {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ldv-alarm-count {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ldv-alarm-badge-live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--error-light);
    color: var(--error);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: 1px solid rgba(247, 39, 74, 0.3);
    animation: ldv-badge-pulse 1.2s ease-in-out infinite;
    margin-left: 8px;
}

/* Active alarm banner (full-width card at top of panel when alarm is live) */
.ldv-alarm-active-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    margin: 0 0 14px;
    background: linear-gradient(135deg, rgba(247, 39, 74, 0.1), rgba(247, 39, 74, 0.02));
    border: 1.5px solid rgba(247, 39, 74, 0.35);
    border-radius: 12px;
    position: relative;
    overflow: hidden;
}

.ldv-alarm-active-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top left, rgba(247, 39, 74, 0.12), transparent 60%);
    pointer-events: none;
}

.ldv-alarm-active-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--error);
    color: #fff;
    box-shadow: 0 6px 20px rgba(247, 39, 74, 0.35);
    animation: ldv-shake 0.8s ease-in-out infinite;
    flex-shrink: 0;
}

.ldv-alarm-active-icon i {
    width: 26px !important;
    height: 26px !important;
    color: #fff;
}

.ldv-alarm-active-body {
    flex: 1;
    min-width: 0;
}

.ldv-alarm-active-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--error);
    letter-spacing: -0.01em;
    margin-bottom: 3px;
    word-break: break-word;
}

.ldv-alarm-active-meta {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
}

/* Timeline container */
.ldv-alarm-timeline {
    position: relative;
    padding-left: 12px;
}

.ldv-alarm-timeline::before {
    content: '';
    position: absolute;
    left: 18px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: linear-gradient(to bottom, var(--accent-20), transparent);
    border-radius: 1px;
    pointer-events: none;
}

/* Empty state */
.ldv-alarm-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 16px 20px;
    text-align: center;
    gap: 6px;
    margin-left: -12px;
}

.ldv-alarm-empty-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--success-light);
    margin-bottom: 6px;
    box-shadow: 0 4px 16px rgba(42, 213, 189, 0.2);
}

.ldv-alarm-empty-icon i {
    width: 36px !important;
    height: 36px !important;
    color: var(--success);
}

.ldv-alarm-empty h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--success);
    margin: 4px 0 0;
    letter-spacing: -0.01em;
}

.ldv-alarm-empty p {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0;
    max-width: 320px;
    line-height: 1.55;
}

/* Each alarm event in the timeline */
.ldv-alarm-event {
    position: relative;
    display: flex;
    gap: 14px;
    padding: 10px 0 10px 0;
    margin-left: 0;
}

.ldv-alarm-event + .ldv-alarm-event {
    border-top: 1px dashed var(--border-primary);
    margin-top: 2px;
}

.ldv-alarm-event-dot {
    position: relative;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    margin-top: 6px;
    flex-shrink: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--surface);
}

.ldv-alarm-event.is-active .ldv-alarm-event-dot {
    background: var(--error);
    box-shadow: 0 0 0 3px rgba(247, 39, 74, 0.2), 0 0 12px rgba(247, 39, 74, 0.5);
    animation: ldv-alarm-dot-pulse 1.5s ease-in-out infinite;
}

.ldv-alarm-event.is-resolved .ldv-alarm-event-dot {
    background: var(--text-muted);
}

.ldv-alarm-event-dot-inner {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
}

@keyframes ldv-alarm-dot-pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(247, 39, 74, 0.2), 0 0 12px rgba(247, 39, 74, 0.5); }
    50%      { box-shadow: 0 0 0 6px rgba(247, 39, 74, 0.05), 0 0 20px rgba(247, 39, 74, 0.3); }
}

.ldv-alarm-event-body {
    flex: 1;
    min-width: 0;
}

.ldv-alarm-event-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.ldv-alarm-event-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.005em;
    word-break: break-word;
}

.ldv-alarm-event.is-active .ldv-alarm-event-title {
    color: var(--error);
}

.ldv-alarm-event-state {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ldv-alarm-event-state i {
    width: 11px !important;
    height: 11px !important;
}

.ldv-alarm-event-state-active {
    background: var(--error-light);
    color: var(--error);
    border: 1px solid rgba(247, 39, 74, 0.3);
}

.ldv-alarm-event-state-resolved {
    background: var(--success-light);
    color: var(--success);
    border: 1px solid rgba(42, 213, 189, 0.3);
}

.ldv-alarm-event-meta {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
}

.ldv-alarm-event-meta i {
    width: 12px !important;
    height: 12px !important;
    color: var(--accent-primary);
    opacity: 0.75;
    margin-right: 3px;
}

.ldv-alarm-event-meta > span {
    display: inline-flex;
    align-items: center;
}

.ldv-alarm-event-sep {
    opacity: 0.35;
    color: var(--text-muted) !important;
}

.ldv-alarm-event-duration,
.ldv-alarm-event-hits,
.ldv-alarm-event-time {
    font-variant-numeric: tabular-nums;
}

.ldv-alarm-event-ended {
    color: var(--text-muted);
}

/* Chart error state */
.ldv-chart-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    gap: 12px;
    padding: 32px 16px;
    text-align: center;
}

.ldv-chart-error i {
    width: 48px !important;
    height: 48px !important;
    color: var(--error);
    opacity: 0.85;
}

.ldv-chart-error h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 4px 0 0;
}

.ldv-chart-error p {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0;
    max-width: 420px;
}

/* Responsive: tablet / small laptop */
@media (max-width: 900px) {
    .ldv-page {
        grid-template-columns: 1fr;
    }

    .ldv-sidebar {
        position: static;
        max-height: 240px;
        border-right: none;
        border-bottom: 1px solid var(--chrome-border);
    }

    .ldv-sidebar-collapsed {
        width: auto;
        max-height: 56px;
    }

    .ldv-header {
        padding: 14px 16px;
    }

    .ldv-title {
        font-size: 18px;
    }

    .ldv-header-icon {
        width: 44px;
        height: 44px;
    }

    .ldv-main {
        padding: 16px;
    }

    .ldv-stat-value {
        font-size: 18px;
    }
}

/* Responsive: large phones (≤ 600 px) */
@media (max-width: 600px) {
    /* Alarm panel mobile tweaks */
    .ldv-alarm-active-banner {
        padding: 12px;
        gap: 10px;
    }

    .ldv-alarm-active-icon {
        width: 40px;
        height: 40px;
    }

    .ldv-alarm-active-icon i {
        width: 20px !important;
        height: 20px !important;
    }

    .ldv-alarm-active-title {
        font-size: 14px;
    }

    .ldv-alarm-active-meta {
        font-size: 11px;
    }

    .ldv-alarm-event-head {
        gap: 6px;
    }

    .ldv-alarm-event-title {
        font-size: 13px;
    }

    .ldv-alarm-event-meta {
        font-size: 11px;
        gap: 4px;
    }

    .ldv-alarm-count {
        display: none; /* keep header clean on mobile */
    }

    .ldv-alarm-badge-live {
        font-size: 9px;
        padding: 2px 7px;
    }

    /* Sticky tabs stay usable on thin screens */
    .sc-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }

    .sc-tab {
        padding: 10px 12px;
        font-size: 13px;
        flex-shrink: 0;
    }

    /* Controls bar wraps & compacts */
    .sc-controls {
        flex-wrap: wrap;
        gap: 6px;
        padding: 8px 10px;
    }

    .sc-period-group,
    .sc-date-nav {
        flex-wrap: wrap;
    }

    .sc-period-btn {
        padding: 6px 10px;
        font-size: 12px;
    }

    .sc-date-display {
        font-size: 13px;
    }

    /* Production tab: stack summary over the grid */
    .sc-production-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .sc-sidebar-summary {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .sc-summary-card {
        padding: 10px 12px !important;
        gap: 8px !important;
    }

    .sc-card-value-lg {
        font-size: 20px !important;
    }

    .sc-card-value {
        font-size: 15px !important;
    }

    .sc-card-progress-ring {
        width: 56px !important;
        height: 56px !important;
    }

    /* Tables scroll horizontally instead of breaking the layout */
    .sc-table-container,
    .sc-settings-panel {
        overflow-x: auto;
    }

    .sc-table th,
    .sc-table td {
        padding: 8px 10px;
        font-size: 12px;
    }

    /* PLC view cards 2-column */
    .lv-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .lv-card {
        padding: 10px 12px;
    }

    .lv-card-name {
        font-size: 12px;
    }

    .lv-reading-val {
        font-size: 14px;
    }

    /* Live Detail stats go 2-column */
    .ldv-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .ldv-stat {
        padding: 10px 12px;
        gap: 10px;
    }

    .ldv-stat-icon {
        width: 36px;
        height: 36px;
    }

    .ldv-stat-icon i {
        width: 16px !important;
        height: 16px !important;
    }

    .ldv-stat-value {
        font-size: 16px !important;
    }

    .ldv-stat-label {
        font-size: 10px;
    }

    /* Header stacks */
    .ldv-header {
        flex-direction: column;
        align-items: stretch;
        padding: 12px;
        gap: 10px;
    }

    .ldv-header-title {
        min-width: 0;
        gap: 10px;
    }

    .ldv-header-icon {
        width: 40px;
        height: 40px;
    }

    .ldv-header-icon i {
        width: 22px !important;
        height: 22px !important;
    }

    .ldv-title {
        font-size: 16px;
        line-height: 1.2;
    }

    .ldv-meta {
        gap: 6px;
    }

    .ldv-meta-item {
        padding: 3px 8px;
        font-size: 11px;
    }

    .ldv-header-actions {
        width: 100%;
        justify-content: stretch;
        gap: 6px;
    }

    .ldv-header-actions .ldv-btn {
        flex: 1;
        justify-content: center;
        padding: 8px 10px;
        font-size: 12px;
    }

    .ldv-card {
        padding: 12px;
    }

    /* Stack card-head so title + range pill live on separate rows */
    .ldv-card-head {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .ldv-card-title {
        font-size: 14px;
    }

    .ldv-range {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        width: 100%;
    }

    .ldv-range-btn {
        padding: 5px 10px;
        font-size: 11px;
    }

    /* Compact readings table */
    .ldv-table th,
    .ldv-table td {
        padding: 7px 8px;
        font-size: 11px;
    }

    .ldv-time-cell {
        min-width: 112px;
    }

    .ldv-time-primary {
        font-size: 11px;
    }

    .ldv-time-secondary {
        font-size: 10px;
    }

    .ldv-pill {
        padding: 2px 6px;
        font-size: 10.5px;
    }

    /* Sidebar in Live Detail becomes a scrollable strip */
    .ldv-sidebar {
        max-height: 180px;
    }

    /* Toast narrower on phones */
    .sc-toast-container {
        left: 8px !important;
        right: 8px !important;
        bottom: 8px !important;
    }

    .sc-toast {
        max-width: 100%;
    }
}

/* Responsive: ≤ 480 px — compact phone */
@media (max-width: 480px) {
    .ldv-main {
        padding: 12px 10px;
    }

    .ldv-stats {
        grid-template-columns: 1fr;
    }

    .ldv-stat-value {
        font-size: 20px !important;
    }

    .ldv-title {
        font-size: 15px;
    }

    .lv-cards {
        grid-template-columns: 1fr !important;
    }

    /* Hide the delta column on readings table to fit */
    .ldv-table thead th:nth-child(3),
    .ldv-table tbody td:nth-child(3) {
        display: none;
    }

    .ldv-readings-wrap {
        border-radius: 8px;
    }

    /* Keep range bar visible, shrink spacing */
    .ldv-range-btn {
        padding: 5px 8px;
        font-size: 11px;
    }

    .sc-summary-card {
        padding: 8px 10px !important;
    }
}

/* Responsive: ≤ 400 px — very small phone (iPhone SE, older Androids) */
@media (max-width: 400px) {
    .sc-tab {
        padding: 8px 10px;
        font-size: 12px;
    }

    .sc-tab [data-lucide] {
        width: 14px !important;
        height: 14px !important;
    }

    .ldv-main {
        padding: 10px 8px;
    }

    .ldv-header {
        padding: 10px;
    }

    .ldv-title {
        font-size: 14px;
    }

    .ldv-header-icon {
        width: 36px;
        height: 36px;
    }

    .ldv-header-icon i {
        width: 18px !important;
        height: 18px !important;
    }

    .ldv-meta-item {
        font-size: 10px;
        padding: 2px 6px;
    }

    .ldv-stat {
        padding: 8px 10px;
    }

    .ldv-stat-icon {
        width: 32px;
        height: 32px;
    }

    .ldv-stat-value {
        font-size: 17px !important;
    }

    .ldv-stat-trend {
        font-size: 10px;
    }

    .ldv-card {
        padding: 10px;
    }

    .ldv-btn,
    .ldv-range-btn {
        font-size: 10.5px;
    }

    .ldv-btn {
        padding: 7px 8px;
    }

    .ldv-btn span {
        /* Icons only on the tightest screens */
        display: none;
    }

    .ldv-btn-back span,
    .ldv-btn-fullscreen span {
        display: none;
    }

    /* Keep 'Try Again' readable on error card */
    .ldv-chart-error .ldv-btn span {
        display: inline;
    }

    .ldv-sidebar-title span {
        font-size: 11px;
    }

    /* Production summary: single column so values aren't cropped */
    .sc-sidebar-summary {
        grid-template-columns: 1fr !important;
    }

    .sc-card-value-lg {
        font-size: 18px !important;
    }

    /* Readings: also hide Rate column so Time + Total fit */
    .ldv-table thead th:nth-child(4),
    .ldv-table tbody td:nth-child(4) {
        display: none;
    }

    .ldv-time-cell {
        min-width: 96px;
    }

    .ldv-time-primary {
        font-size: 10.5px;
    }

    .sc-table th,
    .sc-table td {
        padding: 6px 8px;
        font-size: 11px;
    }

    /* Remove the fancy animated header bar — cheaper on low-end GPUs */
    .ldv-header::before {
        display: none;
    }
}
