/* ═══════════════════════════════════════════════════════════════════════════
 * savings-calculator.css
 * Scoped to .sc-wrap — no interference with global calculator-template.css
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── Root tokens (supplement the shared color-scheme.css) ── */
:root {
    --sc-principal-clr: #0ea5e9;   /* Sky blue  — initial deposit  */
    --sc-contrib-clr:   #6366f1;   /* Indigo    — contributions    */
    --sc-interest-clr:  #fbbf24;   /* Amber     — interest earned  */
    --sc-inflation-clr: #f87171;   /* Red-400   — inflation loss   */
    --sc-radius:        0.75rem;
    --sc-shadow:        0 2px 12px rgba(15,23,42,.08);
}

/* ── Widget wrapper ─────────────────────────────────────────────────────── */
.sc-wrap {
    width: 100%;
}

/* ── Inputs grid ────────────────────────────────────────────────────────── */
.sc-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
@media (max-width: 600px) {
    .sc-inputs { grid-template-columns: 1fr; gap: 0.875rem; }
}

/* Select variant */
.input-wrap--select { position: relative; }
.calc-select {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2rem;
    cursor: pointer;
}

/* ── Results container ──────────────────────────────────────────────────── */
.sc-results {
    margin-top: 1.5rem;
    animation: scFadeIn 0.35s ease;
}
@keyframes scFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Summary cards grid ─────────────────────────────────────────────────── */
.sc-results-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
@media (max-width: 900px) {
    .sc-results-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .sc-results-grid { grid-template-columns: 1fr; }
}

.result-value--interest { color: var(--clr-interest); }
.result-value--muted    { color: var(--clr-text-secondary); }

/* ── Donut + legend row ─────────────────────────────────────────────────── */
.sc-chart-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.25rem;
    background: var(--clr-bg-soft);
    border: 1px solid var(--clr-border);
    border-radius: var(--sc-radius);
    margin-bottom: 1.25rem;
}
@media (max-width: 520px) {
    .sc-chart-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

/* Donut */
.sc-donut-wrap {
    position: relative;
    width: 120px;
    height: 120px;
    flex-shrink: 0;
}
.sc-donut-wrap canvas {
    display: block;
    width: 120px !important;
    height: 120px !important;
}
.sc-donut-center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.sc-donut-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--clr-text-muted);
    line-height: 1;
}
.sc-donut-pct {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--clr-text-primary);
    line-height: 1.2;
}

/* Legend */
.sc-donut-legend {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.sc-legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.sc-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.sc-legend-dot--principal { background: var(--sc-principal-clr); }
.sc-legend-dot--contrib   { background: var(--sc-contrib-clr); }
.sc-legend-dot--interest  { background: var(--sc-interest-clr); }
.sc-legend-dot--inflation { background: var(--sc-inflation-clr); }

.sc-legend-text {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex: 1;
    min-width: 0;
}
.sc-legend-name {
    font-size: 0.8rem;
    color: var(--clr-text-secondary);
    white-space: nowrap;
}
.sc-legend-val {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--clr-text-primary);
    white-space: nowrap;
}

/* ── Amortization section ───────────────────────────────────────────────── */
.sc-amort-wrap {
    border: 1px solid var(--clr-border);
    border-radius: var(--sc-radius);
    overflow: hidden;
}

.sc-amort-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: var(--clr-bg-muted);
    border-bottom: 1px solid var(--clr-border);
    gap: 0.75rem;
    flex-wrap: wrap;
}
.sc-amort-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--clr-text-primary);
    margin: 0;
}

/* Toggle buttons */
.sc-amort-toggles {
    display: flex;
    border: 1px solid var(--clr-border);
    border-radius: 0.375rem;
    overflow: hidden;
}
.sc-toggle-btn {
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 500;
    background: var(--clr-bg);
    color: var(--clr-text-secondary);
    border: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    line-height: 1.4;
}
.sc-toggle-btn + .sc-toggle-btn { border-left: 1px solid var(--clr-border); }
.sc-toggle-btn--active {
    background: var(--clr-accent);
    color: #fff;
}
.sc-toggle-btn:not(.sc-toggle-btn--active):hover {
    background: var(--clr-accent-light);
    color: var(--clr-accent-dark);
}

/* Stacked bar chart */
.sc-bar-wrap {
    padding: 0.75rem 1rem 0;
    background: var(--clr-bg);
    border-bottom: 1px solid var(--clr-border-soft);
}
.sc-bar-wrap canvas {
    width: 100% !important;
    display: block;
}

/* Table */
.sc-table-wrap { background: var(--clr-bg); }
.sc-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.sc-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
    min-width: 480px;
}
.sc-table thead tr {
    background: var(--clr-bg-muted);
}
.sc-table th {
    padding: 0.5rem 0.875rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--clr-text-muted);
    text-align: right;
    border-bottom: 1px solid var(--clr-border);
    white-space: nowrap;
}
.sc-table th:first-child { text-align: left; }
.sc-table td {
    padding: 0.45rem 0.875rem;
    text-align: right;
    color: var(--clr-text-secondary);
    border-bottom: 1px solid var(--clr-border-soft);
}
.sc-table td:first-child {
    text-align: left;
    color: var(--clr-text-primary);
    font-weight: 500;
}
.sc-table tbody tr:last-child td { border-bottom: none; }
.sc-table tbody tr:hover td { background: var(--clr-bg-soft); }
.sc-table .sc-td-interest { color: var(--clr-interest); font-weight: 500; }
.sc-table .sc-td-balance  { color: var(--clr-accent-dark); font-weight: 600; }
.sc-table .sc-td-real     { color: var(--clr-text-muted); font-style: italic; }

/* Hide real value column when inflation is 0 */
.sc-hide-real .sc-td-real,
.sc-hide-real #sc-annual-real-col,
.sc-hide-real #sc-monthly-real-col,
.sc-hide-real #sc-inflation-card,
.sc-hide-real #sc-leg-inflation-row {
    display: none;
}