/* ========================================
   Sag & Tension Analysis Styling
   Dark/Lime Theme (React-matched)
   ======================================== */

/* Theme color variables */
:root {
    --st-dark: #3B3B3B;
    --st-lime: #C5F41D;
    --st-gray: #9A9A9A;
    --st-green: #A8D118;
    --st-label-bg: #F5F5F5;
    --st-header-bg: #E8E8E8;
    --st-border: #e0e0e0;
    --st-text: #3B3B3B;
    --st-text-muted: #6B6B6B;
    --st-zebra: #FAFAFA;

    /* Per-column header colors (independent of UI accent colors above) */
    --col-a: #FFD700;   /* Base Conductor — gold        */
    --col-b: #ADFF2F;   /* TS Option A    — green-yellow */
    --col-c: #AFEEEE;   /* TS Option B    — pale turquoise */
    --col-d: #4169E1;   /* TS Option C    — royal blue  */
    --col-d-80: rgba(65, 105, 225, 0.8); /* col-d at 80% — use instead of opacity to avoid compounding */
    --col-a-text: #3B3B3B;
    --col-b-text: #3B3B3B;
    --col-c-text: #3B3B3B;
    --col-d-text: #ffffff;
}

/* Page-level padding (article.content has padding:0 now) */
.sagtension-layout {
    padding: 1.25rem;
}

/* ── Results Grid Container ── */
.results-grid-container {
    width: 100%;
    max-width: 100%;
    overflow: auto;
    border: none;
    border-radius: 2px;
    margin-top: 0;
}

/* Remove fixed height — let grid auto-size */
.results-grid-container .e-grid {
    border: 1px solid var(--st-border);
    font-size: 10px;
    border-radius: 2px;
}

/* Header cells */
.results-grid-container .e-grid .e-headercell {
    background-color: var(--st-header-bg) !important;
    color: var(--st-text) !important;
    font-weight: 600;
    white-space: normal !important;
    word-wrap: break-word !important;
    font-size: 10px;
    padding: 4px 8px;
    line-height: 1.3;
    min-height: 28px;
    border-bottom: 1px solid var(--st-border) !important;
    border-right: 1px solid var(--st-border) !important;
}

.results-grid-container .e-grid .e-headercelldiv {
    white-space: normal !important;
    line-height: 1.3;
    font-size: 10px;
    color: var(--st-text);
}

/* Data cells */
.results-grid-container .e-grid .e-rowcell {
    padding: 4px 8px;
    font-size: 10px;
    white-space: nowrap;
    color: var(--st-text);
    text-align: center;
    border-bottom: 1px solid var(--st-border) !important;
    border-right: 1px solid var(--st-border) !important;
}

/* Rows */
.results-grid-container .e-grid .e-row {
    background-color: #fff;
}

/* Alternate rows — zebra striping */
.results-grid-container .e-grid .e-altrow {
    background-color: var(--st-zebra) !important;
}

.results-grid-container .e-grid .e-altrow .e-rowcell {
    background-color: var(--st-zebra) !important;
}

/* Frozen column (Weather Case) */
.results-grid-container .e-grid .e-frozencontent {
    background-color: #fff;
}

.results-grid-container .e-grid .e-frozencontent .e-rowcell {
    background-color: var(--st-label-bg) !important;
    font-weight: 500;
    text-align: left;
}

.results-grid-container .e-grid .e-frozencontent .e-altrow .e-rowcell {
    background-color: var(--st-label-bg) !important;
}

/* Frozen header */
.results-grid-container .e-grid .e-frozenheader .e-headercell {
    background-color: var(--st-header-bg) !important;
}

/* Scrollable content area */
.results-grid-container .e-grid .e-gridcontent {
    overflow: auto;
}

/* Remove Syncfusion default hover highlight for cleaner look */
.results-grid-container .e-grid .e-row:hover .e-rowcell {
    background-color: #f0f0f0 !important;
}

.results-grid-container .e-grid .e-altrow:hover .e-rowcell {
    background-color: #ececec !important;
}

/* ── Input Card ── */
.section-card.sag-inputs {
    margin-bottom: 1.0rem;
    background: white;
    padding: 1.0rem;
    border-radius: 2px;
    border: 1px solid var(--st-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* ── Results Cards — 2x2 grid layout ── */
.section-card.sag-results {
    margin-bottom: 0;
    background: white;
    padding: 0;
    border-radius: 6px;
    border: 2px solid var(--st-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    min-width: 0;
    overflow: hidden;
}

/* Color the outer frame to match the conductor theme */
.section-card.sag-results:has(> .section-header.col-a) { border-color: var(--col-a); }
.section-card.sag-results:has(> .section-header.col-b) { border-color: var(--col-b); }
.section-card.sag-results:has(> .section-header.col-c) { border-color: var(--col-c); }
.section-card.sag-results:has(> .section-header.col-d) { border-color: var(--col-d-80); }

.section-card.sag-results > .results-grid-container {
    padding: 0.5rem;
}

/* 2x2 grid for result cards container */
.results-2x2-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

@media (min-width: 1280px) {
    .results-2x2-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Section Header (inside each result card) ── */
.section-header {
    font-size: 10px;
    font-weight: 700;
    color: var(--st-text);
    margin: 0;
    padding: 6px 10px;
    border-bottom: 1px solid var(--st-border);
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: white;
}

/* Color-coded fill per conductor column */
.section-header.col-a { background: var(--col-a); color: var(--col-a-text); }
.section-header.col-b { background: var(--col-b); color: var(--col-b-text); }
.section-header.col-c { background: var(--col-c); color: var(--col-c-text); }
.section-header.col-d { background: var(--col-d-80); color: var(--col-d-text); }

/* Span summary info */
.span-summary {
    font-size: 13px;
    font-weight: 400;
    color: inherit;
    opacity: 0.85;
    font-style: normal;
}

/* ── Export Excel Button ── */
.export-excel-btn {
    margin-left: auto;
    background-color: var(--st-lime) !important;
    border-color: var(--st-lime) !important;
    color: var(--st-dark) !important;
    font-size: 11px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 2px;
}

.export-excel-btn:hover {
    background-color: var(--st-green) !important;
    border-color: var(--st-green) !important;
    color: var(--st-dark) !important;
}

/* ── Export All Section ── */
.export-all-section {
    margin: 1rem 0 0.75rem 0;
    padding: 0.75rem;
    background: white;
    border: 1px solid var(--st-border);
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.export-all-btn {
    background-color: var(--st-lime) !important;
    border: 1px solid var(--st-lime) !important;
    color: var(--st-dark) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    padding: 6px 12px !important;
    border-radius: 2px;
    box-shadow: none;
    flex-shrink: 0;
}

.export-all-btn:hover {
    background-color: var(--st-green) !important;
    border-color: var(--st-green) !important;
}

.export-note {
    margin: 0;
    font-size: 11px;
    color: #6B6B6B;
    line-height: 1.4;
    flex: 1;
    min-width: 0;
}

.export-note-emph {
    color: var(--st-dark);
    font-weight: 600;
}

/* ── Dataset Section Header ── */
.dataset-section-header {
    margin: 0.75rem 0 0.5rem 0;
    padding: 0.4rem 0.75rem;
    background: var(--st-dark);
    border-radius: 2px;
}

/* Banner variant with a right-side action (e.g. Copy Base Weather Cases) */
.results-watermark.watermark-with-action {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    justify-content: initial;
    padding: 0 10px;
    gap: 12px;
}

.results-watermark.watermark-with-action .watermark-title {
    grid-column: 2;
    justify-self: center;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    font-size: 10px;
}

.results-watermark.watermark-with-action .copy-weather-btn-header {
    grid-column: 3;
    justify-self: end;
}

.results-watermark.watermark-with-action .copy-weather-btn-header,
.results-watermark.watermark-with-action .copy-weather-btn-header.e-btn {
    background-color: var(--st-lime) !important;
    border: 1px solid var(--st-lime) !important;
    color: var(--st-dark) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    padding: 2px 10px !important;
    height: 20px !important;
    min-height: 20px !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    line-height: 1 !important;
}

.results-watermark.watermark-with-action .copy-weather-btn-header:hover {
    background-color: var(--st-green) !important;
    border-color: var(--st-green) !important;
}

.dataset-section-header h4 {
    color: white;
    margin: 0;
    padding: 0.1rem 0;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
}

/* ── Input Grids ── */
.span-geometry-grid,
.weather-case-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.input-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.input-group label {
    font-size: 11px;
    font-weight: 600;
    color: var(--st-gray);
}

.input-field {
    font-size: 12px !important;
}

/* ── Conductor Parameters Matrix (top header) ── */
.conductor-params-matrix {
    display: grid;
    grid-template-columns: 180px repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.cp-label-col {
    display: flex;
    flex-direction: column;
    background: white;
    border: 1px solid var(--st-border);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.cp-label-header {
    height: 28px;
    background: var(--st-header-bg);
    color: var(--st-dark);
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    padding: 0 8px;
}

.cp-row-label {
    height: 28px;
    background: var(--st-label-bg);
    color: var(--st-dark);
    font-size: 10px;
    display: flex;
    align-items: center;
    padding: 0 8px;
    border-bottom: 1px solid var(--st-border);
    line-height: 1.2;
}

.cp-conductor-group {
    display: flex;
    flex-direction: column;
    background: white;
    border: 2px solid var(--st-border);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    min-width: 160px;
}

/* Column-themed outer borders on conductor cards */
.cp-conductor-group.col-a          { border-color: var(--col-a); }
.cp-conductor-group.col-b          { border-color: var(--col-b); }
.cp-conductor-group.col-c          { border-color: var(--col-c); }
.cp-conductor-group.col-d          { border-color: var(--col-d-80); }

.weather-conductor-group.col-a,
.ts-conductor-group.col-a          { border-color: var(--col-a); }
.weather-conductor-group.col-b,
.ts-conductor-group.col-b          { border-color: var(--col-b); }
.weather-conductor-group.col-c,
.ts-conductor-group.col-c          { border-color: var(--col-c); }
.weather-conductor-group.col-d,
.ts-conductor-group.col-d          { border-color: var(--col-d-80); }

.cp-conductor-header {
    height: 28px;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    text-align: center;
}

.cp-conductor-header.col-a { background: var(--col-a); color: var(--col-a-text); }
.cp-conductor-header.col-b { background: var(--col-b); color: var(--col-b-text); }
.cp-conductor-header.col-c { background: var(--col-c); color: var(--col-c-text); }
.cp-conductor-header.col-d { background: var(--col-d-80); color: var(--col-d-text); }

.cp-cell {
    height: 28px;
    padding: 3px 4px;
    border-bottom: 1px solid var(--st-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cp-cell-display {
    font-size: 10px;
    color: var(--st-dark);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cp-conductor-name {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.cp-muted {
    color: #999;
    font-style: italic;
}

/* ── Weather Cases Section ── */
/* ── Weather Matrix Section ── */
.section-card.weather-matrix-section {
    margin-top: 1rem;
    background: transparent;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.section-card.temp-sweep-section {
    margin-top: 0.5rem;
    background: transparent;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

/* Weather section header — flex row with title + copy button */
.section-card.weather-matrix-section > .section-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    padding: 0;
    margin-bottom: 0.5rem;
    border-bottom: none;
    background: transparent;
}

.section-card.weather-matrix-section > .section-header > span:first-child {
    font-size: 11px;
    font-weight: 600;
    color: var(--st-dark);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Copy-all button in weather section header — outlined dark on white, fills on hover */
.copy-weather-btn-header {
    font-size: 10px !important;
    font-weight: 600 !important;
    padding: 2px 8px !important;
    min-height: 0 !important;
    height: auto !important;
    background: white !important;
    border: 1px solid var(--st-dark) !important;
    color: var(--st-dark) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    transition: background-color 0.15s ease, color 0.15s ease !important;
}

.copy-weather-btn-header:hover,
.copy-weather-btn-header:focus {
    background: var(--st-dark) !important;
    border-color: var(--st-dark) !important;
    color: white !important;
}

/* ── Weather Matrix: 180px label col + 4 conductor groups ── */
.weather-matrix,
.temp-sweep-matrix {
    display: grid;
    grid-template-columns: 180px repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0;
}

/* Label column card */
.weather-matrix-label-col,
.ts-label-col {
    display: flex;
    flex-direction: column;
    background: white;
    border: 2px solid var(--st-border);
    border-top: none;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.wm-label-header,
.ts-label-header {
    height: 28px;
    background: #E8E8E8;
    color: var(--st-dark);
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    padding: 0 8px;
}

.wm-label-subheader,
.ts-label-subheader {
    height: 32px;
    background: #F0F0F0;
    color: var(--st-dark);
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    padding: 0 8px;
    border-bottom: 1px solid var(--st-border);
}

.ts-label-subheader {
    font-style: italic;
    color: #6B6B6B;
    font-weight: 400;
}

.wm-row-label,
.ts-row-label {
    height: 28px;
    background: #F5F5F5;
    color: var(--st-dark);
    font-size: 10px;
    display: flex;
    align-items: center;
    padding: 0 8px;
    border-bottom: 1px solid var(--st-border);
    line-height: 1.2;
}

/* Conductor group card */
.weather-conductor-group,
.ts-conductor-group {
    display: flex;
    flex-direction: column;
    background: white;
    border: 2px solid var(--st-border);
    border-top: none;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    min-width: 0;
}

.wm-conductor-header,
.ts-conductor-header {
    height: 28px;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    text-align: center;
}

.wm-conductor-header.col-a, .ts-conductor-header.col-a { background: var(--col-a); color: var(--col-a-text); }
.wm-conductor-header.col-b, .ts-conductor-header.col-b { background: var(--col-b); color: var(--col-b-text); }
.wm-conductor-header.col-c, .ts-conductor-header.col-c { background: var(--col-c); color: var(--col-c-text); }
.wm-conductor-header.col-d, .ts-conductor-header.col-d { background: var(--col-d-80); color: var(--col-d-text); }

/* Horizontal scroll area inside each conductor group */
.wm-conductor-scroll {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--st-lime) #F5F5F5;
}

.wm-conductor-scroll::-webkit-scrollbar {
    height: 8px;
}

.wm-conductor-scroll::-webkit-scrollbar-track {
    background: #F5F5F5;
}

.wm-conductor-scroll::-webkit-scrollbar-thumb {
    background: var(--st-lime);
    border-radius: 4px;
}

.wm-conductor-flex {
    display: flex;
}

.wm-subcol {
    display: flex;
    flex-direction: column;
    width: 80px;
    flex-shrink: 0;
}

.wm-subcol-header {
    height: 32px;
    background: #E8E8E8;
    font-size: 9px;
    font-weight: 600;
    color: var(--st-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 4px;
    text-align: center;
    line-height: 1.15;
    border-right: 1px solid var(--st-border);
    border-bottom: 1px solid var(--st-border);
    overflow: hidden;
    white-space: normal;
    word-break: break-word;
}

.wm-cell {
    height: 28px;
    padding: 3px 4px;
    border-right: 1px solid var(--st-border);
    border-bottom: 1px solid var(--st-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Temperature sweeping: spacer row mirrors the "no wind, no ice" label row */
.ts-spacer-row {
    height: 28px;
    background: #F0F0F0;
    border-bottom: 1px solid var(--st-border);
}

.ts-cell {
    height: 28px;
    padding: 3px 4px;
    border-bottom: 1px solid var(--st-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Syncfusion input overrides — yellow, rounded, borderless, centered */
.wm-input {
    width: 100% !important;
    height: 18px !important;
}

.wm-input .e-input-group,
.wm-input.e-input-group {
    height: 18px !important;
    background: #FFFDE7 !important;
    border: none !important;
    border-radius: 6px !important;
    box-shadow: 0 0 0 1px rgba(197, 244, 29, 0.6) !important;
}

.wm-input .e-input-group:focus-within,
.wm-input.e-input-group.e-input-focus {
    box-shadow: 0 0 0 1.5px var(--st-lime) !important;
}

.wm-input input.e-numerictextbox,
.wm-input .e-input-group input {
    font-size: 10px !important;
    height: 18px !important;
    line-height: 18px !important;
    padding: 0 4px !important;
    text-align: center !important;
    background: #FFFDE7 !important;
    border-radius: 4px !important;
}

/* Locked / readonly — gray tint */
.wm-input-locked .e-input-group,
.wm-input-locked.e-input-group {
    background: rgba(59, 59, 59, 0.10) !important;
    box-shadow: none !important;
}

.wm-input-locked input {
    background: rgba(59, 59, 59, 0.10) !important;
    color: #888 !important;
}

/* No-conductor placeholder */
.no-conductor-column-message {
    padding: 1.5rem;
    text-align: center;
    color: #999;
    font-size: 11px;
    font-style: italic;
}

/* ── Conductor Weather Section (alt layout) ── */
.conductor-weather-section {
    margin-bottom: 1.5rem;
    border: 1px solid var(--st-border);
    border-radius: 2px;
    overflow: hidden;
}

.conductor-weather-header {
    font-size: 12px;
    font-weight: 600;
    padding: 0.5rem 0.75rem;
    color: white;
    display: flex;
    align-items: center;
}

.conductor-header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
}

.copy-weather-btn {
    margin-left: auto;
    background: rgba(255, 255, 255, 0.2) !important;
    color: white !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    font-size: 11px !important;
    padding: 0.3rem 0.6rem !important;
    white-space: nowrap;
    border-radius: 2px !important;
}

.copy-weather-btn:hover {
    background: rgba(255, 255, 255, 0.35) !important;
    border-color: white !important;
}

.conductor-weather-header.col-a {
    background: var(--st-dark);
}

.conductor-weather-header.col-b {
    background: var(--st-lime);
    color: var(--st-dark);
}

.conductor-weather-header.col-b .copy-weather-btn {
    color: var(--st-dark) !important;
    border-color: rgba(59, 59, 59, 0.3) !important;
    background: rgba(59, 59, 59, 0.1) !important;
}

.conductor-weather-header.col-c {
    background: var(--st-gray);
}

.conductor-weather-header.col-d {
    background: var(--st-green);
    color: var(--st-dark);
}

.conductor-weather-header.col-d .copy-weather-btn {
    color: var(--st-dark) !important;
    border-color: rgba(59, 59, 59, 0.3) !important;
    background: rgba(59, 59, 59, 0.1) !important;
}

/* ── Weather Cases Table ── */
.weather-cases-table-wrapper {
    overflow-x: auto;
    overflow-y: auto;
    max-height: 600px;
}

.weather-cases-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 10px;
}

.weather-cases-table thead {
    position: sticky;
    top: 0;
    background: var(--st-header-bg);
    z-index: 10;
}

.weather-cases-table th {
    padding: 6px 8px;
    text-align: center;
    font-weight: 600;
    border-bottom: 1px solid var(--st-border);
    border-right: 1px solid var(--st-border);
    background: var(--st-header-bg);
    color: var(--st-text);
    font-size: 10px;
    line-height: 1.3;
}

.weather-cases-table td {
    padding: 4px 8px;
    border-bottom: 1px solid var(--st-border);
    border-right: 1px solid var(--st-border);
    text-align: center;
    font-size: 10px;
    color: var(--st-text);
}

.weather-cases-table .weather-case-name {
    font-weight: 500;
    text-align: left;
    padding-left: 8px;
    background: var(--st-label-bg);
    white-space: nowrap;
    min-width: 180px;
}

.weather-cases-table tbody tr:nth-child(even) {
    background: var(--st-zebra);
}

.weather-cases-table tbody tr:hover {
    background: #f0f0f0;
}

.weather-input {
    width: 100%;
    min-width: 80px;
    font-size: 10px !important;
}

/* Disabled % RTS input */
.weather-input-disabled {
    background-color: #f0f0f0 !important;
    color: #999 !important;
    cursor: not-allowed !important;
    opacity: 0.6;
}

/* Locked Ice Thickness input */
.weather-input-locked {
    background-color: var(--st-header-bg) !important;
    color: #888 !important;
    cursor: not-allowed !important;
    opacity: 0.5;
    font-weight: 500;
}

.no-conductor-message {
    padding: 2rem;
    text-align: center;
    color: var(--st-text-muted);
    font-style: italic;
    background: var(--st-zebra);
}

/* ── Calculate Buttons Section ── */
.calculate-buttons-grid {
    margin: 1rem 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

/* Calculate buttons — lime theme, matches Export All button */
.calculate-btn {
    background-color: var(--st-lime) !important;
    border: 1px solid var(--st-lime) !important;
    color: var(--st-dark) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    padding: 6px 18px !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease !important;
}

.calculate-btn:hover:not([disabled]),
.calculate-btn:focus:not([disabled]) {
    background-color: var(--st-green) !important;
    border-color: var(--st-green) !important;
    color: var(--st-dark) !important;
}

.calculate-btn[disabled],
.calculate-btn.e-disabled {
    background-color: #E8E8E8 !important;
    border-color: #E0E0E0 !important;
    color: #9A9A9A !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

/* ── Results Table (legacy layout) ── */
.results-table {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.results-table .cond-grid-row {
    font-size: 10px;
}

.results-table .cond-grid-label-col {
    font-weight: 500;
    background: var(--st-label-bg);
    padding: 4px 8px;
    color: var(--st-text);
}

.results-table .cond-grid-col {
    padding: 4px 8px;
    text-align: center;
    font-weight: 400;
    color: var(--st-text);
    border-bottom: 1px solid var(--st-border);
}

/* ── Placeholder (Sag & Tension not yet done) ── */
.sag-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 3.5rem);
    background: #f4f4f5;
    padding: 2rem 1rem;
}

.sag-placeholder-inner {
    width: 100%;
    max-width: 56rem;
}

.sag-placeholder-header h1 {
    font-size: 1.875rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    margin: 0 0 0.25rem;
    color: #1e1e1e;
}

.sag-placeholder-subtitle {
    color: #666;
    margin: 0 0 1.5rem;
}

.sag-placeholder-card {
    background: white;
    border: 1px solid #e5e5e5;
    border-radius: 0.75rem;
    padding: 1.5rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.sag-placeholder-card-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.sag-placeholder-icon {
    color: #C5F41D;
}

.sag-placeholder-card-desc {
    color: #666;
    font-size: 0.875rem;
    margin: 0 0 1.5rem;
}

.sag-placeholder-empty {
    border: 2px dashed #e0e0e0;
    border-radius: 0.5rem;
    background: rgba(244, 244, 245, 0.3);
    padding: 3rem 2rem;
    text-align: center;
}

.sag-placeholder-empty-icon {
    font-size: 2.5rem;
    color: #999;
}

.sag-placeholder-empty h3 {
    margin: 1rem 0 0.5rem;
    font-size: 1.1rem;
    font-weight: 500;
    color: #1e1e1e;
}

.sag-placeholder-empty p {
    color: #666;
    font-size: 0.875rem;
    margin: 0 0 1rem;
}

.sag-placeholder-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    background: #C5F41D;
    color: #3B3B3B;
    font-weight: 500;
    font-size: 0.875rem;
    border-radius: 6px;
    text-decoration: none;
    transition: opacity 0.15s ease;
}

.sag-placeholder-btn:hover {
    opacity: 0.9;
    text-decoration: none;
    color: #3B3B3B;
}
