:root { color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:#0b1020; color:#eef2ff; }
* { box-sizing:border-box; }
body { margin:0; background:linear-gradient(180deg,#0b1020,#111827 45%,#0b1020); min-height:100vh; }
button,input,select { font:inherit; }
button { cursor:pointer; }
.shell { width:min(900px,100%); margin:0 auto; padding:18px 14px 72px; }
.hero { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:20px 4px 14px; }
h1 { margin:2px 0 8px; font-size:clamp(2rem,8vw,3.5rem); letter-spacing:-.05em; }
h2 { margin:2px 0; font-size:1.15rem; }
p { line-height:1.45; }
.eyebrow { margin:0; font-size:.72rem; letter-spacing:.14em; font-weight:800; opacity:.65; }
.card { margin:12px 0; padding:16px; border:1px solid rgba(255,255,255,.1); background:rgba(17,24,39,.86); border-radius:18px; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.upload-card { display:grid; gap:10px; }
.file-button { display:flex; justify-content:center; align-items:center; padding:14px 16px; border-radius:14px; background:#f8fafc; color:#111827; font-weight:800; }
.file-button input { display:none; }
button { border:0; border-radius:12px; padding:11px 14px; background:#f8fafc; color:#111827; font-weight:750; }
button.secondary { background:rgba(255,255,255,.08); color:#eef2ff; border:1px solid rgba(255,255,255,.12); }
button.danger { background:rgba(248,113,113,.08); color:#fecaca; border:1px solid rgba(248,113,113,.2); }
.privacy,.muted,.status { color:#aab4ca; font-size:.87rem; }
.light { width:44px; height:44px; border-radius:999px; display:grid; place-items:center; font-size:2rem; line-height:1; border:1px solid rgba(255,255,255,.15); flex:0 0 auto; }
.light.green { color:#4ade80; box-shadow:0 0 30px rgba(74,222,128,.25); }
.light.yellow { color:#facc15; box-shadow:0 0 30px rgba(250,204,21,.22); }
.light.red { color:#fb7185; box-shadow:0 0 30px rgba(251,113,133,.25); }
.light.neutral { color:#64748b; }
.tabs { position:sticky; top:8px; z-index:20; display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin:2px 0 14px; padding:5px; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(11,16,32,.88); backdrop-filter:blur(12px); }
.tab { padding:9px 8px; background:transparent; color:#94a3b8; border-radius:10px; }
.tab.active { background:rgba(255,255,255,.1); color:#f8fafc; }
.section-heading { display:flex; gap:12px; justify-content:space-between; align-items:center; margin-bottom:10px; }
.badge { font-size:.76rem; border-radius:999px; padding:6px 9px; background:rgba(255,255,255,.08); color:#cbd5e1; white-space:nowrap; }
.badge.good { color:#86efac; background:rgba(74,222,128,.09); border:1px solid rgba(74,222,128,.2); }
.badge.warn { color:#fde68a; background:rgba(250,204,21,.08); border:1px solid rgba(250,204,21,.22); }
.badge.bad { color:#fecaca; background:rgba(248,113,113,.08); border:1px solid rgba(248,113,113,.22); }
.summary-list { display:grid; margin:2px 0 12px; border-top:1px solid rgba(255,255,255,.07); }
.summary-row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:9px 2px; border-bottom:1px solid rgba(255,255,255,.07); }
.summary-row span { color:#94a3b8; font-size:.82rem; }
.summary-row strong { text-align:right; }
.mini-label { margin:10px 0 7px; color:#94a3b8; font-size:.76rem; }
.tag-list { display:flex; flex-wrap:wrap; gap:6px; }
.tag { display:inline-flex; align-items:center; min-height:30px; padding:5px 9px; border-radius:999px; background:rgba(74,222,128,.08); color:#bbf7d0; border:1px solid rgba(74,222,128,.16); font-size:.78rem; }
.notice-box { margin-top:12px; padding:10px 12px; border-radius:12px; border:1px solid rgba(250,204,21,.2); background:rgba(250,204,21,.06); }
.notice-box p { margin:0; color:#fde68a; font-size:.82rem; }
.notice-box p + p { margin-top:7px; }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.review-field { display:grid; gap:4px; padding:8px; border-radius:11px; background:rgba(255,255,255,.035); }
.review-field.uncertain { outline:1px solid rgba(250,204,21,.65); }
.field-label { font-size:.75rem; color:#aab4ca; }
.review-field input { width:100%; padding:8px 9px; min-height:38px; border-radius:8px; border:1px solid rgba(255,255,255,.12); background:#0b1020; color:#f8fafc; }
.review-field small { color:#64748b; font-size:.7rem; }
.inline-warning { grid-column:1/-1; padding:10px; border-radius:11px; background:rgba(250,204,21,.08); border:1px solid rgba(250,204,21,.28); color:#fde68a; font-size:.83rem; }
.inline-warning.blocking { background:rgba(248,113,113,.08); border-color:rgba(248,113,113,.28); color:#fecaca; }
.actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.compact-actions { margin-top:12px; }
.raw { overflow:auto; max-height:320px; margin-top:12px; padding:12px; white-space:pre-wrap; background:#050816; border-radius:12px; color:#cbd5e1; font-size:.78rem; }
.metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.metric { padding:11px 12px; border-radius:12px; background:rgba(255,255,255,.04); display:grid; gap:3px; }
.metric span { color:#94a3b8; font-size:.74rem; }
.metric strong { font-size:1.03rem; }
.history-row { display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-top:1px solid rgba(255,255,255,.08); }
.history-row:first-child { border-top:0; }
.history-row > div { display:grid; gap:2px; }
.history-row > div:last-child { text-align:right; }
.history-row span { font-size:.76rem; color:#94a3b8; }
.mini-state { display:inline-flex; width:max-content; margin-top:3px; padding:3px 6px; border-radius:999px; color:#bfdbfe !important; background:rgba(96,165,250,.08); border:1px solid rgba(96,165,250,.17); }
.year-select { min-width:88px; border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:8px 10px; background:#0b1020; color:#f8fafc; font-weight:700; }
.error-card { border-color:rgba(248,113,113,.24); }
.quiet-card { border-style:dashed; box-shadow:none; }
.hidden { display:none !important; }
@media (max-width:620px) {
  .shell { padding-left:10px; padding-right:10px; }
  .review-grid { grid-template-columns:1fr; }
  .metrics { grid-template-columns:1fr; }
  .history-row { align-items:flex-start; }
  .hero p { max-width:32rem; }
  .card { padding:13px; border-radius:15px; }
  .summary-row { padding:8px 1px; }
  .tabs { top:5px; }
  .actions button { flex:1 1 auto; }
}
.learning-note { margin:10px 0 0; padding:10px 11px; border-radius:11px; background:rgba(96,165,250,.07); border:1px solid rgba(96,165,250,.18); color:#bfdbfe; font-size:.82rem; line-height:1.45; }

/* Beta: data-derived monthly pay bars; no external charting dependencies. */
.chart-legend { display:flex; gap:16px; margin:0 0 14px; color:#aab4ca; font-size:.77rem; }
.chart-legend span::before { content:""; display:inline-block; width:10px; height:10px; margin-right:6px; border-radius:3px; }
.legend-gross::before { background:#60a5fa; }
.legend-net::before { background:#4ade80; }
.monthly-chart { display:grid; gap:11px; margin:12px 0; }
.chart-row { display:grid; grid-template-columns:44px minmax(0,1fr) 104px; align-items:center; gap:9px; min-width:0; }
.chart-month-label { color:#aab4ca; font-size:.8rem; }
.chart-bars { display:grid; align-content:center; gap:4px; min-width:0; min-height:22px; color:#fde68a; font-size:.75rem; }
.chart-bar { height:8px; border-radius:4px; min-width:0; max-width:100%; }
.chart-bar-gross { background:#60a5fa; }
.chart-bar-net { background:#4ade80; }
.chart-amount { font-size:.79rem; text-align:right; font-variant-numeric:tabular-nums; }
.analysis-coverage { grid-column:1/-1; margin:3px 0 0; }
@media (max-width:390px) {
  .tab { padding:9px 3px; font-size:.82rem; }
  .chart-row { grid-template-columns:38px minmax(0,1fr) 83px; gap:6px; }
  .chart-amount { font-size:.72rem; }
}

/* Beta insights · accessible expandable detail and local-only scenario inputs */
.insight-rows { display:grid; gap:8px; margin:12px 0; min-width:0; }
.insight-line { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; padding:9px 0; border-bottom:1px solid rgba(160,174,192,.13); font-size:.84rem; line-height:1.45; }
.insight-line span { color:#aab4ca; flex:1 1 45%; min-width:120px; overflow-wrap:anywhere; }
.insight-line strong { font-weight:600; text-align:right; flex:0 1 auto; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.month-expand { border:1px solid rgba(160,174,192,.2); border-radius:10px; padding:11px 12px; min-width:0; background:rgba(255,255,255,.018); }
.month-expand summary { cursor:pointer; font-weight:600; font-size:.85rem; line-height:1.5; overflow-wrap:anywhere; }
.month-expand[open] summary { margin-bottom:9px; }
.input-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); gap:12px; margin:12px 0 14px; min-width:0; }
.insight-label { display:grid; gap:7px; margin:10px 0; font-size:.82rem; color:#cbd5e1; }
.insight-label input,.insight-label select { min-width:0; width:100%; box-sizing:border-box; border-radius:10px; padding:11px 12px; background:#121a2a; color:#f8fafc; border:1px solid rgba(148,163,184,.35); font:inherit; font-size:1rem; }
.insight-label input:focus-visible,.insight-label select:focus-visible { outline:2px solid #60a5fa; outline-offset:2px; }
@media(max-width:390px){.input-grid{grid-template-columns:minmax(0,1fr)} .insight-line strong{text-align:left}}

/* Mobile-first salary simulation. Plain-language details and source warnings. */
.scenario-explain { border:1px solid rgba(148,163,184,.22);border-radius:10px;margin:12px 0;
  padding:11px 13px;color:#cbd5e1;background:#151d2c; }
.scenario-explain summary { font-size:.83rem;font-weight:600;cursor:pointer;line-height:1.45; }
.scenario-explain p { font-size:.83rem;line-height:1.62;margin:11px 0 2px;color:#bac9dd; }
.scenario-chart { max-width:100%;width:100%;overflow:hidden;margin:12px 0;min-height:88px; }
.scenario-svg { display:block;width:100%;height:auto;max-height:270px; }
.scenario-note { margin:12px 0;padding:9px 11px;border-left:3px solid #fbbf24;background:#1f2937;
 color:#f6e6c1;border-radius:5px;font-size:.81rem;line-height:1.55; }
.scenario-legend { display:flex;flex-wrap:wrap;gap:8px 18px;margin:15px 0 2px;color:#cbd5e1;font-size:.77rem; }
.scenario-legend span::before{content:"";display:inline-block;width:11px;height:4px;vertical-align:middle;
 border-radius:2px;margin-right:6px;background:#60a5fa; }
.scenario-legend-compare::before {background:#a78bfa!important}
.scenario-legend-free::before {background:#a78bfa!important}
@media(max-width:410px){
 .scenario-chart {margin-left:-5px;width:calc(100% + 10px);}
 .scenario-legend{font-size:.72rem}
 .scenario-svg {min-height:180px}
}

/* Beta cleanup experiment: planner as a single scrollable page, no nested iframe scrolling. */
.planner-beta-card{padding:14px 10px;overflow:hidden;}
.planner-beta-card>h2,.planner-beta-card>.muted,.planner-beta-card>.eyebrow{margin-left:6px;margin-right:6px;}
.planner-embed{display:block;width:100%;height:1200px;border:0;background:transparent;overflow:hidden;}
.beta-compact-months{padding:12px 14px;}
.beta-compact-months>summary{cursor:pointer;font-weight:700;font-size:.95rem;line-height:1.5;}
.beta-compact-months[open]>summary{margin-bottom:12px;}
@media(max-width:390px){.planner-beta-card{padding:12px 5px;}}


/* Compact Beta dashboard. Shared production stylesheet is never overwritten. */
.beta-heading { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin:0; }
.beta-tag { display:inline-flex; padding:3px 7px; vertical-align:middle; font-size:.66rem; letter-spacing:.07em; line-height:1.3; font-weight:800; border-radius:6px; color:#c4f1df; border:1px solid rgba(100,213,185,.4); background:rgba(100,213,185,.1); }
.hero { padding:7px 2px 5px; align-items:center; }
.hero h1 { font-size:clamp(1.75rem,6.5vw,2.35rem); letter-spacing:-.035em; }
.hero .light { width:30px; height:30px; font-size:1.35rem; }
.tabs { margin:2px 0 8px; }
.beta-compact-dashboard { margin:6px 0 3px; padding:12px; }
.beta-compact-dashboard .section-heading { margin-bottom:9px; }
.beta-compact-dashboard h2 { font-size:1.08rem; margin:0; }
.beta-compact-dashboard .year-select { min-width:78px; padding:5px 8px; }
.beta-primary-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.beta-primary-metrics .metric { padding:10px; min-width:0; gap:4px; }
.beta-primary-metrics .metric strong { font-size:clamp(.90rem,3.9vw,1.2rem); line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.beta-primary-metrics .metric span { font-size:.72rem; line-height:1.3; }
.beta-primary-metrics .metric:nth-child(2) { background:rgba(100,213,185,.07); outline:1px solid rgba(100,213,185,.15); }
/* Compact, always-visible card-limit gauge. Different from the personal gross goal. */
.beta-taxcard-progress { margin:11px 0 0; padding:11px 12px; border:1px solid rgba(148,163,184,.22); background:rgba(255,255,255,.035); border-radius:12px; }
.beta-taxcard-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:.85rem; }
.beta-taxcard-heading span { font-weight:800; font-size:1.15rem; font-variant-numeric:tabular-nums; color:#e5eefb; }
.beta-taxcard-track { width:100%; height:11px; margin:8px 0; border-radius:99px; overflow:hidden; background:rgba(148,163,184,.22); }
.beta-taxcard-track>div { height:100%; width:0; border-radius:99px; background:#64d5b9; transition:width .2s ease; }
.beta-taxcard-track>div.near-limit { background:#fbbf24; }
.beta-taxcard-track>div.at-limit { background:#f87171; }
.beta-taxcard-remaining { color:#dbeafe; font-weight:700; font-size:.89rem; }
.beta-taxcard-estimate { margin:8px 0 0; line-height:1.4; font-weight:700; font-size:.83rem; color:#eff6ff; }
.beta-taxcard-note { margin:6px 0 0; line-height:1.45; font-size:.72rem; color:#aab4ca; }
.beta-taxcard-progress.is-unavailable .beta-taxcard-track { opacity:.35; }
/* Reserve a single compact import row without enabling the unverified parser. */
.beta-pdf-slot { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 11px; margin:5px 0 7px; border-radius:11px; box-shadow:none; background:rgba(255,255,255,.022); }
.beta-pdf-slot .file-button { display:flex; flex:0 0 auto; width:auto; padding:7px 10px; font-size:.78rem; border:1px dashed rgba(148,163,184,.35); border-radius:9px; background:rgba(255,255,255,.06); color:#d3dbe9; font-weight:650; cursor:not-allowed; opacity:.75; }
.beta-pdf-slot .file-button input { display:none; }
.beta-pdf-slot #status, .beta-pdf-slot .privacy { display:none; }
.beta-pdf-note { color:#aab4ca; font-size:.7rem; line-height:1.3; margin:0; text-align:right; flex:1 1 auto; }
.beta-mini-chart { border-top:1px solid rgba(255,255,255,.10); padding-top:8px; margin-top:8px; }
.beta-mini-chart[hidden] { display:none; }
.beta-mini-chart-heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:4px 8px; font-size:.76rem; line-height:1.35; }
.beta-mini-chart-heading strong { color:#e0e9fa; font-size:.80rem; }
.beta-mini-chart-heading span { color:#9baac2; font-size:.7rem; }
.beta-mini-chart svg { display:block; width:100%; max-width:100%; height:auto; max-height:108px; }
.beta-mini-chart-caution { font-size:.68rem; color:#f9c880; margin:3px 0 0; }
.beta-taxcard-context { border-left:2px solid rgba(100,213,185,.4); padding-left:9px; line-height:1.45; }
.beta-year-progress { padding:9px 1px; margin:8px 0 0; border-top:1px solid rgba(255,255,255,.12); background:transparent; box-shadow:none; }
.beta-year-progress > summary { display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 10px; font-size:.85rem; cursor:pointer; }
.beta-year-progress > summary span { color:#aab4ca; font-size:.76rem; font-weight:450; }
.beta-year-progress-content { margin-top:12px; }
.beta-goal-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.beta-goal-inputs label { display:grid; gap:5px; font-size:.77rem; color:#cbd5e1; }
.beta-goal-inputs input { width:100%; min-width:0; background:#121a2a; color:#f8fafc; border:1px solid rgba(148,163,184,.35); border-radius:9px; padding:9px 10px; font-size:1rem; }
.beta-year-progress-content .muted { font-size:.76rem; line-height:1.45; margin:9px 0 0; }
.beta-progress-track { height:9px; margin-top:10px; background:rgba(148,163,184,.18); border-radius:9px; overflow:hidden; }
.beta-progress-track > div { width:0; height:100%; background:#64d5b9; border-radius:9px; transition:width .15s ease-out; }
.beta-dashboard-more { margin:7px 0 0; border-top:1px solid rgba(255,255,255,.1); }
.beta-dashboard-more[hidden] { display:none; }
.beta-dashboard-more > summary { padding:9px 2px 3px; font-weight:650; font-size:.82rem; color:#aabbd3; cursor:pointer; }
.beta-secondary-metrics { margin-top:7px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.beta-secondary-metrics .metric { padding:8px 9px; min-width:0; }
.beta-secondary-metrics .metric strong { font-size:.94rem; overflow-wrap:anywhere; }
.beta-compact-dashboard #dashboardNote { margin:9px 0 0; line-height:1.4; font-size:.77rem; }
.beta-tracking-tip { margin:8px 6px 16px; color:#aab4ca; font-size:.76rem; line-height:1.45; }
@media(max-width:360px) {
  .beta-primary-metrics .metric { padding:9px 7px; }
  .beta-compact-dashboard { padding:10px; }
  .beta-primary-metrics .metric strong { font-size:.92rem; }
}


/* Charcoal and mint Beta-only visual direction. UI data is unchanged. */
:root{color-scheme:dark;background:#13191d;color:#f3f6f4;}
body{background:linear-gradient(180deg,#171c1f,#111719 49%,#171d1e);color:#f3f6f4;}
.shell{max-width:780px;padding:17px 13px 68px;}
.card{background:#242a2e;border-color:rgba(255,255,255,.08);box-shadow:0 7px 23px rgba(0,0,0,.13);border-radius:17px;}
.tabs{background:#191f23;border:1px solid #303a3c;}
.tab.active{background:#323b3c;color:#f3f8f6;}
.beta-heading{letter-spacing:-.04em;}
.beta-tag{color:#b7efd3;border-color:#4a9780;background:#24433a;}
.light.green{color:#6bdfaa;box-shadow:0 0 20px rgba(76,207,159,.24);}
.light.yellow{color:#f2c17a;}
.light.red{color:#f78f97;}
.beta-compact-dashboard{padding:14px;background:#20262a;}
.beta-compact-dashboard h2{font-size:1.16rem;}
.beta-primary-metrics{gap:9px;}
.beta-primary-metrics .metric{min-height:96px;padding:12px;border-radius:14px;background:#2c3235;border:1px solid rgba(255,255,255,.035);align-content:center;}
.beta-primary-metrics .metric:first-child{background:#273b35;border-color:#446d5d;}
.beta-primary-metrics .metric:nth-child(2){background:#273735;border-color:#416b5f;outline:none;}
.beta-primary-metrics .metric strong{font-size:clamp(.95rem,4.2vw,1.32rem);color:#f5f9f7;}
.beta-primary-metrics .metric span{color:#c0cdca;line-height:1.35;}
.beta-taxcard-progress{background:#293235;border-color:#3b4b4b;border-radius:13px;}
.beta-taxcard-heading span{color:#9ae7bc;}
.beta-taxcard-track{background:#3b4848;}
.beta-taxcard-track>div,.beta-progress-track>div{background:#6ce0ac;}
.beta-taxcard-remaining{color:#bfebd6;}
.beta-pdf-slot{background:#22292d;border-color:#33403f;}
.beta-pdf-slot .file-button{background:#31403b;color:#beead4;border-color:#5d8575;}
.beta-dashboard-more>summary{color:#b8e3cb;}
.beta-year-progress>summary span{color:#c0d0ca;}
.beta-mini-chart-heading strong{color:#f1f7f3;}
.beta-taxcard-context{border-left-color:#6ce0ac;}
.beta-compact-months{background:#263030;}
.history-row.payslip-item{display:block;padding:0;margin:10px 0;border:1px solid #3b4746;border-radius:15px;background:#2a3133;overflow:hidden;}
.history-row.payslip-item:first-child{border-top:1px solid #3b4746;}
.history-row.payslip-item[open]{background:#263530;border-color:#64cba0;}
.payslip-summary{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;gap:9px;padding:14px 12px;min-height:74px;align-items:center;cursor:pointer;list-style:none;}
.payslip-summary::-webkit-details-marker{display:none;}
.payslip-heading{display:flex;flex-direction:column;gap:4px;min-width:0;}
.payslip-heading>strong{font-size:.96rem;}
.payslip-heading>span{font-size:.75rem;color:#b6c3bd;overflow-wrap:anywhere;}
.payslip-net{font-size:clamp(.88rem,3.9vw,1.08rem);color:#8cebb7;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;}
.payslip-chevron{font-size:1.25rem;color:#c5dfd1;}
.payslip-item[open] .payslip-chevron{transform:rotate(180deg);}
.payslip-detail{padding:4px 12px 14px;border-top:1px solid rgba(255,255,255,.09);}
.payslip-fields,.payslip-line-list{display:grid;gap:1px;}
.payslip-field{display:flex;justify-content:space-between;gap:14px;padding:9px 1px;border-bottom:1px solid rgba(255,255,255,.075);font-size:.83rem;}
.payslip-field span{color:#becbc4;overflow-wrap:anywhere;}
.payslip-field strong{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.payslip-footnote{font-size:.75rem;margin:12px 0 0;}
.payslip-lines{margin-top:10px;}
.payslip-lines>summary{cursor:pointer;padding:10px 0;color:#a7eccb;font-size:.85rem;font-weight:650;}
.planner-fold{padding:0;overflow:hidden;}
.planner-toggle{display:grid;gap:6px;cursor:pointer;padding:16px;list-style:none;}
.planner-toggle::-webkit-details-marker{display:none;}
.planner-toggle strong{font-size:1.03rem;}
.planner-toggle span{color:#b8c4c0;font-size:.78rem;}
.planner-toggle::after{content:"Avaa laskuri ↓";color:#8ce0b7;font-size:.77rem;}
.planner-fold[open] .planner-toggle::after{content:"Sulje laskuri ↑";}
.planner-fold-content{padding:1px 10px 12px;}
.analysis-collection{margin:12px 0;border:1px solid #364443;border-radius:15px;background:#252f30;}
.analysis-collection>summary{cursor:pointer;list-style:none;display:grid;gap:5px;padding:16px;}
.analysis-collection>summary::-webkit-details-marker{display:none;}
.analysis-collection>summary strong{font-size:1.02rem;}
.analysis-collection>summary span{color:#b7c3c0;font-size:.77rem;line-height:1.5;}
.analysis-collection>summary::after{content:"Näytä ↓";font-size:.78rem;color:#8ce0b7;}
.analysis-collection[open]>summary::after{content:"Sulje ↑";}
.analysis-collection-body{padding:0 9px 8px;}
.analysis-collection-body>.card{box-shadow:none;background:#2d3738;}
summary:focus-visible{outline:2px solid #9de9c2;outline-offset:2px;}
@media(max-width:620px){
 .shell{padding-left:11px;padding-right:11px;}
 .analysis-collection-body{padding:0 5px 5px;}
 .beta-primary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:350px){
 .beta-primary-metrics .metric{padding:8px;}
 .payslip-summary{padding:11px 8px;grid-template-columns:minmax(0,1fr) auto 14px;}
}

/* Palkka BETA visual pass v2. Only appended to the isolated Beta build.
   Palette: charcoal, mint (money), blue (information), coral (tax-card progress),
   amber (planning). Status thresholds still use their original classes. */
:root {
  --beta-bg: #101319;
  --beta-surface: #1d222b;
  --beta-raised: #272d38;
  --beta-edge: #3a4452;
  --beta-ink: #f6f8fc;
  --beta-muted: #b5c0d1;
  --beta-mint: #6de3ae;
  --beta-blue: #79baff;
  --beta-coral: #ff8da0;
  --beta-amber: #ffc376;
}
body {
  background: var(--beta-bg);
  color: var(--beta-ink);
}
.shell { width:min(780px,100%); }
.hero { padding:13px 3px 12px; }
.hero h1 { color:#fafcff; font-weight:850; letter-spacing:-.055em; }
.beta-tag {
  color:#a2f5ca;
  background:#19342d;
  border:1px solid #498d75;
  box-shadow:0 0 0 1px rgba(79,197,143,.08);
}
.light { background:#1b2627; border-color:#53656c; }
.light.green { color:var(--beta-mint); box-shadow:0 0 0 4px rgba(76,220,157,.055); }
.light.yellow { color:var(--beta-amber); }
.light.red { color:var(--beta-coral); }
.card {
  background:var(--beta-surface);
  border:1px solid var(--beta-edge);
  border-radius:16px;
  box-shadow:0 8px 20px rgba(0,0,0,.21), inset 0 1px 0 rgba(255,255,255,.035);
}
.tabs {
  background:#191e27;
  border:1px solid #3a4452;
  border-radius:17px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.tab { color:#aab5c7; font-weight:750; }
.tab.active {
  background:#303b42;
  color:#f7fffb;
  box-shadow:inset 0 -3px 0 #69dfa8, inset 0 1px 0 rgba(255,255,255,.05);
}
.tab:not(.active):hover { background:#242a35; color:#eef4ff; }
.year-select {
  background:#151a24;
  border:1px solid #465266;
  color:#f9fbff;
}
.section-heading h2, h2 { color:#f8faff; letter-spacing:-.025em; }
.privacy,.muted,.status { color:var(--beta-muted); }
.beta-pdf-slot {
  background:#1f2730;
  border-color:#394657;
  box-shadow:inset 3px 0 0 #6fe0ac;
}
.beta-pdf-slot .file-button {
  background:#263b34;
  border:1px dashed #579c7b;
  color:#b1f5cd;
  font-weight:750;
}
.beta-pdf-note { color:#bcc6d5; }
.beta-compact-dashboard {
  background:#1c212a;
  border:1px solid #414b57;
  padding:14px;
}
.beta-compact-dashboard .section-heading { margin-bottom:14px; }
.beta-compact-dashboard h2 { font-size:1.18rem; font-weight:800; }
.beta-primary-metrics { gap:10px; }
.beta-primary-metrics .metric {
  position:relative;
  overflow:hidden;
  min-height:101px;
  padding:14px 13px;
  border:1px solid #3a4554;
  border-radius:14px;
  background:#292e37;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
  gap:7px;
}
.beta-primary-metrics .metric::before {
  content:"";
  position:absolute;
  top:14px;left:0;
  width:3px;height:34px;
  border-radius:0 4px 4px 0;
  background:var(--beta-muted);
}
.beta-primary-metrics .metric:first-child {
  background:linear-gradient(135deg,#22372f,#1f2b2a 95%);
  border-color:#507d68;
}
.beta-primary-metrics .metric:first-child::before { background:var(--beta-mint); }
.beta-primary-metrics .metric:nth-child(2) {
  background:linear-gradient(135deg,#202e42,#222a35 95%);
  border-color:#4a6787;
  outline:none;
}
.beta-primary-metrics .metric:nth-child(2)::before { background:var(--beta-blue); }
.beta-primary-metrics .metric:nth-child(3) {
  background:linear-gradient(135deg,#232e40,#252d39);
  border-color:#405672;
}
.beta-primary-metrics .metric:nth-child(3)::before { background:#8cbbff; }
.beta-primary-metrics .metric:nth-child(4) {
  background:#292d34;
  border-color:#454b55;
}
.beta-primary-metrics .metric:nth-child(4)::before { background:#aab4c4; }
.beta-primary-metrics .metric span {
  color:#cbd4df;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.002em;
}
.beta-primary-metrics .metric strong {
  color:#fbfdff;
  font-weight:850;
  font-size:clamp(1.03rem,4.15vw,1.34rem);
  line-height:1.22;
  letter-spacing:-.025em;
  text-wrap:balance;
  font-variant-numeric:tabular-nums;
}
.beta-primary-metrics .metric:first-child strong { color:#b1f8d2; }
.beta-primary-metrics .metric:nth-child(2) strong { color:#c2deff; }
.beta-taxcard-progress {
  background:#29262e;
  border:1px solid #755363;
  border-radius:14px;
  padding:14px;
  box-shadow:inset 3px 0 0 #f1879b;
}
.beta-taxcard-heading { color:#f9f6fa; font-weight:750; }
.beta-taxcard-heading span {
  color:#ff9db0;
  font-weight:850;
  letter-spacing:-.02em;
  font-size:1.25rem;
}
.beta-taxcard-track {
  height:12px;
  background:#514550;
  margin:10px 0 11px;
}
.beta-taxcard-track>div {
  background:linear-gradient(90deg,#ff8ca0,#f6a1a9);
}
.beta-taxcard-track>div.near-limit { background:#f6bf6d; }
.beta-taxcard-track>div.at-limit { background:#ff6277; }
.beta-taxcard-remaining {
  color:#fff5f6;
  font-size:.97rem;
  font-weight:850;
}
.beta-taxcard-estimate { font-size:.80rem; color:#f4edf2; font-weight:700; line-height:1.45; }
.beta-taxcard-note { font-size:.72rem; color:#bdb3bd; line-height:1.5; }
.beta-taxcard-context { border-left-color:#ff8da0; }
.beta-dashboard-more { border-top:1px solid #434a53; }
.beta-dashboard-more>summary { color:#a8e9ce; font-weight:750; }
.beta-secondary-metrics .metric {
  background:#292f38;
  border:1px solid #404a54;
  border-radius:12px;
}
.beta-secondary-metrics .metric span { color:#c0cbd7; }
.beta-secondary-metrics .metric strong { color:#f4f8ff; }
.beta-mini-chart {
  margin-top:13px;
  padding-top:14px;
  border-top:1px solid #3d4651;
}
.beta-mini-chart-heading strong { color:#f5f8ff; font-size:.86rem; }
.beta-mini-chart-heading span { color:#aeb9cb; }
#dashboardMiniChart svg rect { fill:#76baff; }
#dashboardMiniChart svg text { fill:#b8c6db; }
.beta-year-progress {
  margin-top:14px;
  padding:14px 0 3px;
  border-top:1px solid #4b4545;
}
.beta-year-progress>summary {
  color:#ffd69c;
  font-weight:800;
}
.beta-year-progress>summary span { color:#e8c38d; }
.beta-progress-track { background:#494139; }
.beta-progress-track>div { background:var(--beta-amber); }
.beta-goal-inputs input,.insight-label input,.insight-label select {
  background:#171d28;
  border:1px solid #566075;
  color:#f9fbfe;
}
.beta-compact-months, .analysis-collection {
  background:#232b34;
  border:1px solid #414d60;
}
.analysis-collection>summary strong { color:#f7f9ff; }
.analysis-collection>summary span { color:#c2cddd; }
.analysis-collection>summary::after,.planner-toggle::after { color:#8fd4ff; }
.analysis-collection-body>.card { background:#272f3a; border-color:#465466; }
.planner-fold {
  background:#262936;
  border-color:#5e536a;
  box-shadow:inset 3px 0 0 #f5b977;
}
.planner-toggle strong { color:#ffe0ad; }
.planner-toggle span { color:#c6cbd8; }
.planner-fold-content { background:#232936; }
.planner-fold-content .muted { color:#c2cada; }
.history-row.payslip-item {
  background:#242a33;
  border:1px solid #424d5c;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.14);
}
.history-row.payslip-item:first-child { border-top:1px solid #424d5c; }
.history-row.payslip-item[open] {
  background:#20292b;
  border-color:#57b98d;
  box-shadow:inset 3px 0 0 #63e3a8, 0 9px 25px rgba(0,0,0,.18);
}
.payslip-heading>strong { color:#f7faff; }
.payslip-heading>span { color:#b8c4d2; }
.payslip-net { color:#89ecc1; font-weight:850; }
.payslip-chevron { color:#a8bacc; }
.payslip-detail {
  background:linear-gradient(180deg,#252e32,#22282e);
  border-top:1px solid #40524f;
}
.payslip-field { border-bottom-color:#3b464d; }
.payslip-field span { color:#bac9d2; }
.payslip-field strong { color:#f7f9fd; }
.payslip-field:nth-child(2) strong { color:#9beec8; }
.payslip-lines>summary { color:#8fcbff; }
.payslip-footnote { color:#b8c3d0; }
button.secondary {
  background:#303845;
  border:1px solid #536073;
  color:#f2f7ff;
}
button:not(.tab):not(.chip):not(.secondary):not(.danger) { border-radius:11px; }
button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,.tab:focus-visible {
  outline:2px solid #8ff2c3;
  outline-offset:3px;
}
@media(max-width:390px) {
  .beta-primary-metrics .metric { padding:11px 10px; min-height:100px; }
  .beta-primary-metrics .metric strong { font-size:clamp(.96rem,4.05vw,1.15rem); }
  .beta-taxcard-progress { padding:12px 11px; }
}
@media(prefers-reduced-motion:reduce) {
  .beta-taxcard-track>div,.beta-progress-track>div,.payslip-chevron { transition:none; }
}

/* Palkka BETA visual pass v3: tighter information density with decorative,
   non-interactive iconography. Added after v2. Values and model unchanged. */
.beta-compact-dashboard { padding:11px 12px 12px; }
.beta-compact-dashboard .section-heading { margin-bottom:10px; }
.beta-compact-dashboard .section-heading h2 { font-size:1.15rem; }
.beta-primary-metrics { gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.beta-primary-metrics .metric {
  min-height:84px;
  padding:9px 11px 10px;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  grid-template-rows:minmax(30px,auto) auto;
  align-items:center;
  align-content:center;
  column-gap:8px;
  row-gap:2px;
  border-radius:13px;
}
.beta-primary-metrics .metric::before {
  content:"";
  position:static;
  grid-column:1;
  grid-row:1;
  width:32px;
  height:32px;
  border:1px solid var(--icon-ring,#557b70);
  border-radius:50%;
  background-color:var(--icon-bg,#26463a);
  background-image:var(--icon-image);
  background-position:center;
  background-repeat:no-repeat;
  background-size:18px 18px;
  box-shadow:none;
}
.beta-primary-metrics .metric:nth-child(1) {
  --icon-ring:#346d58;--icon-bg:#234638;
}
.beta-primary-metrics .metric:nth-child(2) {
  --icon-ring:#3a5b82;--icon-bg:#223a57;
}
.beta-primary-metrics .metric:nth-child(3) {
  --icon-ring:#475c80;--icon-bg:#2a3a58;
}
.beta-primary-metrics .metric:nth-child(4) {
  --icon-ring:#775939;--icon-bg:#483729;
}
.beta-primary-metrics .metric:nth-child(1)::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2372e7af%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%225%22%20rx%3D%227.5%22%20ry%3D%222.8%22%2F%3E%3Cpath%20d%3D%22M4.5%205v5c0%201.55%203.35%202.8%207.5%202.8s7.5-1.25%207.5-2.8V5M4.5%2010v5c0%201.55%203.35%202.8%207.5%202.8s7.5-1.25%207.5-2.8v-5M4.5%2015v3c0%201.55%203.35%202.8%207.5%202.8s7.5-1.25%207.5-2.8v-3%22%2F%3E%3C%2Fsvg%3E"); }
.beta-primary-metrics .metric:nth-child(2)::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2389bdff%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m4%2016%206-6%204%204%206-7M15%207h5v5%22%2F%3E%3Cpath%20d%3D%22M4%2020h16%22%2F%3E%3C%2Fsvg%3E"); }
.beta-primary-metrics .metric:nth-child(3)::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%239abaff%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2019V11M10%2019V7M15%2019V13M20%2019V4%22%2F%3E%3Cpath%20d%3D%22M3%2019h19%22%2F%3E%3C%2Fsvg%3E"); }
.beta-primary-metrics .metric:nth-child(4)::before { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffd091%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%204h10l3%203v13H4V4h3Z%22%2F%3E%3Cpath%20d%3D%22M17%204v4h3M7%2012h10M7%2016h10M7%209h5%22%2F%3E%3C%2Fsvg%3E"); }
.beta-primary-metrics .metric span {
  grid-column:2;
  grid-row:1;
  align-self:center;
  margin:0;
  font-size:.73rem;
  line-height:1.24;
  color:#d0d9e6;
  font-weight:630;
}
.beta-primary-metrics .metric strong,
.beta-primary-metrics .metric:first-child strong,
.beta-primary-metrics .metric:nth-child(2) strong {
  grid-column:1 / -1;
  grid-row:2;
  margin:1px 0 0;
  font-size:clamp(1.06rem,4.2vw,1.32rem);
  line-height:1.17;
  letter-spacing:-.035em;
  color:#f7fbff;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.beta-primary-metrics .metric:first-child strong { color:#a7f6cc; }
.beta-primary-metrics .metric:nth-child(2) strong { color:#c5dfff; }
.beta-primary-metrics .metric:nth-child(3) strong { color:#e0ebff; }
.beta-primary-metrics .metric:nth-child(4) strong { color:#ffe0b1; }
.beta-taxcard-progress {
  margin-top:10px;
  padding:11px 12px;
}
.beta-taxcard-heading { margin-bottom:1px; }
.beta-taxcard-track { margin:7px 0 8px; }
.beta-taxcard-remaining { margin:0 0 6px; }
.beta-taxcard-estimate { margin:6px 0 4px; line-height:1.39; }
.beta-taxcard-note { margin:3px 0 0; line-height:1.42; }
.beta-dashboard-more { margin-top:10px; padding-top:10px; }
.beta-dashboard-more>summary { padding:2px 0; }
.beta-secondary-metrics { gap:7px; }
.beta-secondary-metrics .metric { padding:9px 11px; min-height:68px; }
.beta-mini-chart { margin-top:10px; padding-top:10px; }
.beta-year-progress { margin-top:11px; padding-top:11px; }
.beta-pdf-slot { padding:11px 13px; }
.history-row.payslip-item { margin:8px 0; }
.history-row.payslip-item .payslip-summary { min-height:67px; padding:11px 12px; }
.payslip-heading { gap:2px; }
.payslip-detail { padding-bottom:11px; }
.payslip-field { padding:8px 1px; }
@media(max-width:390px) {
  .beta-primary-metrics .metric { padding:9px 9px; min-height:84px; column-gap:6px; grid-template-columns:30px minmax(0,1fr); }
  .beta-primary-metrics .metric::before { width:30px;height:30px; background-size:17px 17px; }
  .beta-primary-metrics .metric span { font-size:.70rem; }
  .beta-primary-metrics .metric strong { font-size:clamp(.96rem,4.15vw,1.14rem); }
}
@media(max-width:340px){
 .beta-primary-metrics {gap:6px;}
 .beta-primary-metrics .metric {padding:8px 7px;grid-template-columns:26px minmax(0,1fr);}
 .beta-primary-metrics .metric::before{width:26px;height:26px;background-size:15px 15px;}
 .beta-primary-metrics .metric strong{font-size:.92rem;}
}

/* BETA v4 — information first. The decorative circular badges from v3 are removed.
   Two distinct highlights, one tax-card panel, optional secondary data. No data math. */
.beta-primary-metrics { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.beta-primary-metrics .metric,
.beta-primary-metrics .metric:nth-child(1),
.beta-primary-metrics .metric:nth-child(2) {
  min-height:82px;
  padding:12px 12px 10px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:5px;
  background:#242b36;
  border:1px solid #465268;
  border-radius:12px;
  box-shadow:inset 0 2px 0 #7387a8;
}
.beta-primary-metrics .metric:nth-child(1) {
  background:linear-gradient(155deg,#202d2d,#242d33);
  border-color:#4e7967;
  box-shadow:inset 0 2px 0 #71dfa8;
}
.beta-primary-metrics .metric:nth-child(2) {
  background:linear-gradient(155deg,#222d40,#252c38);
  border-color:#49688a;
  box-shadow:inset 0 2px 0 #78b9ff;
}
.beta-primary-metrics .metric::before { content:none !important;display:none !important;background:none !important; }
.beta-primary-metrics .metric span {
  display:block;
  width:100%;
  color:#cbd7e4;
  font-weight:650;
  font-size:.76rem;
  line-height:1.27;
  letter-spacing:0;
}
.beta-primary-metrics .metric strong,
.beta-primary-metrics .metric:first-child strong,
.beta-primary-metrics .metric:nth-child(2) strong {
  display:block;
  width:100%;
  margin:0;
  color:#faffff;
  font-size:clamp(1.05rem,4.15vw,1.40rem);
  line-height:1.18;
  letter-spacing:-.03em;
  font-weight:840;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.beta-primary-metrics .metric:first-child strong { color:#b4f8d7; }
.beta-primary-metrics .metric:nth-child(2) strong { color:#c6e0ff; }
.beta-primary-metrics .metric-caption {
  display:block;
  font-size:.70rem;
  font-weight:500;
  color:#b5c6c6;
  margin:0;
  line-height:1.2;
}
.beta-compact-dashboard { padding:12px 12px 13px; }
.beta-compact-dashboard .section-heading { margin-bottom:11px; }
.beta-compact-dashboard .section-heading h2 { font-size:1.21rem;letter-spacing:-.025em; }
.beta-dashboard-more { padding-top:9px; }
.beta-dashboard-more>summary {color:#b1d8fa;}
.beta-secondary-metrics {gap:8px;margin-top:9px;}
.beta-secondary-metrics .metric {
  background:#29313e;
  border:1px solid #405063;
  padding:10px 11px;
  border-radius:11px;
  min-height:66px;
}
.beta-secondary-metrics .metric span { font-size:.74rem;color:#c6d2dd; }
.beta-secondary-metrics .metric strong {font-size:1.05rem;color:#f7fbff;}
.beta-taxcard-progress {padding:11px 13px;margin-top:12px;}
.beta-taxcard-heading {margin-bottom:3px;}
.beta-taxcard-estimate {font-weight:650;margin-bottom:3px;}
.beta-taxcard-provenance {
  margin-top:9px;
  border-top:1px solid #5c4852;
  padding-top:8px;
}
.beta-taxcard-provenance>summary {
  font-size:.76rem;
  font-weight:750;
  color:#ffb1c0;
  cursor:pointer;
  line-height:1.5;
}
.beta-taxcard-provenance>summary:focus-visible {outline:2px solid #ffbac9;outline-offset:2px;}
.beta-taxcard-provenance .beta-taxcard-note {margin:9px 0 0;color:#d4c2cd;font-size:.75rem;}
.beta-taxcard-provenance .beta-taxcard-context {
  margin:8px 0 0;
  font-size:.75rem;
  color:#d4c2cd;
  border-left:2px solid #d891a1;
  padding-left:9px;
  line-height:1.45;
}
.beta-compact-dashboard #dashboardNote[hidden]{display:none!important;}
.beta-compact-dashboard #dashboardNote:not([hidden]) {
  background:#332a31;
  border:1px solid #725568;
  color:#ffccd5;
  padding:9px 10px;
  border-radius:10px;
  font-weight:650;
}
#analysisMetrics {gap:9px;}
#analysisMetrics .metric {
  background:#272f3c;
  border:1px solid #46556e;
  box-shadow:inset 0 2px 0 #75aaf5;
  min-height:74px;
  padding:11px 13px;
  border-radius:12px;
}
#analysisMetrics .metric span {color:#c8d4e2;font-size:.78rem;}
#analysisMetrics .metric strong {color:#eff7ff;font-size:1.15rem;}
#analysisMetrics .metric:only-of-type {grid-column:1 / -1;}
#analysisMetrics .analysis-coverage {color:#bcc9d7;font-size:.78rem;line-height:1.4;}
@media(max-width:390px){
  .beta-primary-metrics{gap:8px;}
  .beta-primary-metrics .metric,
  .beta-primary-metrics .metric:nth-child(1),
  .beta-primary-metrics .metric:nth-child(2) {
    padding:10px 9px;min-height:80px;gap:4px;
  }
  .beta-primary-metrics .metric span {font-size:.71rem;}
  .beta-primary-metrics .metric strong {font-size:clamp(.96rem,4vw,1.12rem);}
  .beta-primary-metrics .metric-caption{font-size:.67rem;}
}
@media(max-width:340px){
  .beta-primary-metrics .metric strong {font-size:.91rem;}
  .beta-primary-metrics .metric{padding:9px 7px;}
}

/* Palkka BETA v5: neutral near-black surfaces. Color belongs to information,
   not to the whole background. Applied only to the isolated _beta build. */
:root {
  --beta-bg:#080a0d;
  --beta-surface:#15181e;
  --beta-raised:#1e242d;
  --beta-edge:#333c48;
  --beta-ink:#f6f8fb;
  --beta-muted:#b9c4d3;
}
html {background:#080a0d;color-scheme:dark;}
body {background:#080a0d;color:#f6f8fb;}
.shell {background:transparent;}
.hero {background:transparent;}
.tabs {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:3px;
  padding:4px;
  background:#101318;
  border:1px solid #313844;
  box-shadow:0 9px 20px rgba(0,0,0,.32);
}
.tab {
  min-width:0;
  padding:11px 3px;
  line-height:1.4;
  white-space:nowrap;
  color:#aeb9c9;
  font-size:clamp(.71rem,2.9vw,.88rem);
}
.tab.active {
  background:#252e30;
  box-shadow:inset 0 -3px 0 #69e3a9;
  color:#fff;
}
.tab:not(.active):hover {background:#1c232c;}
.card {
  background:#15191f;
  border:1px solid #333d4a;
  box-shadow:0 7px 22px rgba(0,0,0,.25);
}
.beta-compact-dashboard {
  background:#12161b;
  border-color:#37414d;
}
.beta-primary-metrics .metric,
.beta-primary-metrics .metric:nth-child(1) {
  background:#19221f;
  border-color:#3f6556;
}
.beta-primary-metrics .metric:nth-child(2) {
  background:#1a222f;
  border-color:#405c7d;
}
.beta-taxcard-progress {background:#211a20;border-color:#694753;}
.beta-secondary-metrics .metric {background:#1b222c;border-color:#38495d;}
.beta-pdf-slot {background:#151b20;border-color:#374650;}
.beta-pdf-slot .file-button {background:#1f352a;}
.beta-dashboard-more {border-color:#3b414c;}
.beta-mini-chart {border-color:#353d47;}
.beta-year-progress {border-color:#464046;}
.beta-compact-months {background:#171c24;border-color:#394858;}
#analysisMetrics .metric {background:#1b222d;border-color:#3d4d63;}
.analysis-collection {background:#161b22;border-color:#384756;}
.analysis-collection-body>.card {background:#1d222b;border-color:#3b4959;}
.history-row.payslip-item {
  background:#1b2027;
  border-color:#363f4b;
  box-shadow:0 4px 15px rgba(0,0,0,.24);
}
.history-row.payslip-item:first-child {border-color:#363f4b;}
.history-row.payslip-item[open] {background:#19251f;border-color:#55be91;}
.payslip-detail {background:#192128;border-top-color:#355449;}
.payslip-fields .payslip-field {border-bottom-color:#303e46;}
.beta-goal-inputs input,
.insight-label input,
.insight-label select,
.year-select {background:#10151d;border-color:#475161;}
.beta-planning-view {min-width:0;}
.beta-planning-header {padding:12px 4px 5px;}
.beta-planning-header .eyebrow {font-size:.68rem;color:#80deb1;opacity:1;margin:0 0 8px;}
.beta-planning-header h2 {font-size:clamp(1.42rem,5vw,1.85rem);font-weight:830;letter-spacing:-.035em;margin:0 0 7px;}
.beta-planning-header p.muted {margin:4px 0 8px;line-height:1.5;font-size:.82rem;}
.beta-planning-card {padding:12px;overflow:hidden;margin-top:7px;background:#11161c;}
.beta-planning-card #plannerSyncStatus {
  color:#c8d5de;
  background:#1d2930;
  border-left:3px solid #68d7a4;
  padding:8px 10px;
  border-radius:6px;
  margin:1px 0 10px;
  font-size:.78rem;
}
.beta-planning-card .planner-embed {width:100%;border:0;background:#0c1015;}
.beta-planning-disclaimer {
  margin:11px 0 2px;
  padding-top:10px;
  border-top:1px solid #313e48;
  line-height:1.55;
  font-size:.73rem!important;
  color:#b9c7d2;
}
@media(max-width:390px) {
  .tabs {gap:2px;padding:3px;}
  .tab {padding:12px 1px;font-size:clamp(.68rem,2.88vw,.76rem);}
  .beta-planning-card {padding:9px;}
}
@media(max-width:340px) {
  .tab {font-size:.665rem;letter-spacing:-.015em;}
  .shell {padding-left:8px;padding-right:8px;}
}


/* QA candidate: restore existing PDF import visibly without changing parser or storage. */
.beta-pdf-slot { flex-wrap:wrap; }
.beta-pdf-slot .file-button { cursor:pointer; opacity:1; }
.beta-pdf-slot #status { display:block; flex-basis:100%; margin:0; font-size:.73rem; line-height:1.45; }
.beta-pdf-slot .privacy { display:none; }
