/* A quiet, report-led explorer. Reuses the site's light and dark themes. */
.explorer-page #calculator { display:flex; flex-direction:column; gap:24px; }
.explorer-page [hidden] { display:none !important; }
.calc-controls fieldset { border:0; padding:0; margin:0; min-width:0; }
.calc-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 20px; margin:20px 0 12px; }
.calc-option { display:flex; align-items:flex-start; gap:10px; padding:15px; border:1px solid var(--line); cursor:pointer; min-height:90px; }
.calc-option:has(input:checked) { border-color:var(--blue); background:var(--blue-soft); }
.calc-option:has(input:disabled) { cursor:default; }
.calc-option input { flex:none; width:18px; height:18px; margin:4px 0 0; accent-color:var(--blue); }
.calc-option strong { display:block; font-size:.94rem; font-weight:600; }
.calc-option small { display:block; color:var(--ink-soft); font-size:.77rem; line-height:1.45; margin-top:4px; }
.calc-option .calc-option-notice { font-weight:600; color:var(--ink); }
.calc-budget-row { display:grid; grid-template-columns:190px minmax(0,1fr) auto; align-items:end; gap:24px; border-top:1px solid var(--line); margin-top:20px; padding-top:22px; }
.calc-budget-row label { display:block; font-size:.83rem; font-weight:600; margin-bottom:6px; }
.explorer-page input[type=number], .explorer-page input[type=text] { font:inherit; color:var(--ink); background:var(--paper); border:1px solid var(--line-strong); border-radius:4px; padding:10px 12px; min-height:46px; width:100%; min-width:0; }
.explorer-page input[aria-invalid=true] { border:2px solid var(--ink); }
.calc-budget-row p { margin:0; font-size:.81rem; }
.calc-button { display:inline-flex; align-items:center; justify-content:center; cursor:pointer; min-height:44px; padding:9px 15px; border:1px solid var(--line-strong); background:var(--paper); color:var(--ink); border-radius:4px; font-size:.86rem; line-height:1.4; }
.calc-button:hover { border-color:var(--blue); background:var(--blue-soft); }
.calc-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.calc-heading h2 { margin-bottom:8px; }
.calc-heading > a { font-size:.85rem; flex:none; }
.calc-chart { margin:26px 0 20px; }
.calc-chart figcaption { font-size:.8rem; color:var(--ink-soft); margin-bottom:16px; }
.calc-bar-row { margin:18px 0 22px; }
.calc-bar-heading { display:flex; justify-content:space-between; align-items:baseline; gap:15px; }
.calc-bar-heading a { font-weight:600; font-size:1rem; text-decoration:none; }
.calc-bar-heading a:hover { text-decoration:underline; }
.calc-bar-heading strong { font-family:Georgia,'Times New Roman',serif; font-size:1.65rem; font-weight:400; color:var(--blue-dark); white-space:nowrap; }
.calc-bar-heading strong span { font-family:var(--font); font-size:.8rem; }
.calc-bar-track { height:13px; position:relative; background:var(--surface-soft); margin:8px 0; border-bottom:1px solid var(--line); }
.calc-bar-fill { position:absolute; top:0; height:12px; background:var(--blue-dark); }
.calc-bar-fill.negative { background:var(--ink-soft); }
.calc-bar-zero { position:absolute; height:21px; top:-4px; border-left:1px solid var(--ink-soft); }
.calc-bar-detail { font-size:.79rem; margin:8px 0 0; color:var(--ink-soft); }
.calc-context { font-size:.87rem; padding:16px 18px; background:var(--surface-soft); border-left:2px solid var(--line-strong); margin:24px 0; }
.calc-notice { padding:14px 18px; border-left:3px solid var(--blue); background:var(--blue-soft); font-size:.86rem; color:var(--ink); margin-top:18px; }
.calc-error { font-size:.9rem; font-weight:600; margin:15px 0 0; color:var(--ink); }
.calc-error:empty { display:none; }
.calc-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.81rem; line-height:1.5; }
.calc-table caption { text-align:left; font-size:1.1rem; font-weight:600; color:var(--ink); padding:0 0 16px; }
.calc-table th, .calc-table td { padding:15px 12px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.calc-table thead th { font-size:.75rem; background:var(--surface-soft); font-weight:600; }
.calc-table th:first-child { width:18%; }
.calc-table th:nth-child(2) { width:13%; }
.calc-table th:nth-child(3) { width:20%; }
.calc-table th:nth-child(4) { width:20%; }
.calc-table th:nth-child(5) { width:18%; }
.calc-table th:nth-child(6) { width:11%; }
.calc-table td.usu { background:var(--blue-soft); color:var(--blue-dark); font-size:1.3rem; font-weight:600; }
.calc-table td small { display:block; font-size:.74rem; margin-top:7px; color:var(--ink-soft); font-weight:400; }
.calc-table tbody th { font-weight:600; }
.calc-table-wrap + p { margin-top:18px; }
.calc-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px; }
.calc-actions p { margin:0; }
#share-fallback { margin-top:16px; }
#share-fallback label { display:block; font-size:.85rem; margin-bottom:6px; }
.calc-assumption { border-top:1px solid var(--line); margin-top:20px; }
.calc-assumption > summary { padding:20px 32px 20px 0; cursor:pointer; font-size:1.1rem; font-weight:600; line-height:1.5; }
.calc-assumption > summary small { display:block; font-size:.79rem; color:var(--ink-soft); font-weight:400; margin-left:18px; }
.calc-assumption-body { padding:0 0 24px; }
.calc-assumption-result { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 18px; padding:14px 18px; margin-bottom:18px; background:var(--blue-soft); color:var(--blue-dark); }
.calc-assumption-result strong { font-size:1.45rem; font-weight:600; }
.calc-assumption-result span { font-size:.82rem; }
.calc-input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 36px; margin:25px 0; }
.calc-field label { display:block; font-weight:600; font-size:.87rem; margin-bottom:7px; }
.calc-field input { max-width:230px; }
.calc-field small { display:block; font-size:.78rem; line-height:1.6; color:var(--ink-soft); margin:8px 0 0; max-width:440px; }
.calc-field small .calc-published { display:block; margin-bottom:4px; color:var(--ink); }
.calc-field .calc-field-error { color:var(--ink); font-weight:600; }
.calc-field-error:empty { display:none; }
.calc-panel-links { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin:20px 0; font-size:.86rem; }
.calc-formula { padding:16px 18px; font-size:.84rem; line-height:1.7; background:var(--surface-soft); border-left:2px solid var(--line-strong); color:var(--ink-soft); }
.calc-reading .wsi-explain-grid { margin-top:25px; }
.calc-method { border-top:1px solid var(--line); margin-top:26px; }
.calc-method summary { cursor:pointer; padding:20px 0; font-weight:600; }
.calc-method > div { padding:0 0 10px; font-size:.9rem; }
.calc-method .home-links { font-size:.85rem; }
@media (max-width:1000px) {
  .calc-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calc-budget-row { grid-template-columns:190px minmax(0,1fr); gap:18px; }
  .calc-budget-row button { grid-column:1/-1; justify-self:start; }
  .calc-table, .calc-table tbody { display:block; }
  .calc-table thead { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
  .calc-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; border-top:1px solid var(--line); padding:23px 0; }
  .calc-table tbody th, .calc-table td { display:block; padding:0; border:0; width:auto; }
  .calc-table tbody th { grid-column:1/-1; font-size:1rem; }
  .calc-table td:before { content:attr(data-label); display:block; font-size:.73rem; font-weight:600; color:var(--ink-soft); margin-bottom:6px; }
  .calc-table td.usu { padding:12px; }
  .calc-table td.usu:before { color:var(--blue-dark); }
}
@media (max-width:640px) {
  .calc-options, .calc-input-grid, .calc-budget-row { grid-template-columns:minmax(0,1fr); }
  .calc-option { min-height:0; padding:13px; }
  .calc-heading { display:block; }
  .calc-heading > a { display:inline-block; padding:8px 0; }
  .calc-budget-row input { max-width:210px; }
  .calc-budget-row p { max-width:480px; }
  .calc-bar-heading strong { font-size:1.45rem; }
  .calc-bar-heading a { font-size:.9rem; }
  .calc-input-grid { gap:24px; }
  .calc-field input { max-width:100%; }
  .calc-assumption > summary { padding-right:0; }
  .calc-panel-links { gap:14px 20px; }
  .calc-table tr { gap:18px; }
}
@media (max-width:390px) { .calc-table tr { grid-template-columns:minmax(0,1fr); } }
@media print {
  .calc-controls, .calc-actions, #share-fallback, .calc-panel-links button { display:none; }
  .calc-bar-track, .calc-bar-fill { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .calc-assumption, .calc-table tr { break-inside:avoid; }
}
