.waterfall { --wf-muted:#55604e; font:400 1rem/1.5 var(--font-body); padding:16px 0 8px; }
.page-astrea-9 .site-section { padding-top:40px; }
.waterfall [hidden] { display:none !important; }
.waterfall p { max-width:76ch; }
.waterfall .wf-note { color:var(--wf-muted); font-size:.875rem; }
.waterfall h3 { font:400 1.5rem/1.3 var(--font-heading); margin:0 0 8px; }
.waterfall h3 { scroll-margin-top:calc(var(--header) + 16px); }
.waterfall h4 { font:600 1rem/1.5 var(--font-body); margin:24px 0 12px; }
.wf-toolbar { display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:24px 0; }
.waterfall button,.wf-file-button { min-height:44px;border:1px solid var(--line);background:white;color:var(--ink);padding:9px 16px;cursor:pointer;font-size:.875rem;transition:background .15s; }
.waterfall button:hover,.wf-file-button:hover { background:var(--wash); }
.waterfall button.wf-primary { background:var(--ink);color:white;border-color:var(--ink); }
.waterfall button:disabled { opacity:.45;cursor:default; }
.waterfall input,.waterfall select,.waterfall textarea { display:block;width:100%;min-height:44px;border:1px solid #aeb7a7;background:white;color:var(--ink);border-radius:0;padding:9px 10px;font-size:.875rem; }
.waterfall textarea { resize:vertical;min-height:90px; }
.waterfall label { display:block;font-size:.875rem; }
.wf-fields { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px; }
.wf-fields>label { min-width:0; }
.wf-fields label>span { display:block;margin:0 0 6px; }
.wf-results { margin-top:32px;border-top:1px solid var(--line);padding-top:24px; }
.wf-table-wrap { overflow-x:auto;max-width:100%; }
.waterfall table { width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums; }
.waterfall th,.waterfall td { padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top; }
.waterfall th { font-weight:600; }
.waterfall .wf-number { text-align:right;white-space:nowrap; }
.waterfall .wf-status { margin:16px 0;font-size:.875rem; }
.wf-error { border-left:3px solid #9b3324;padding:12px 16px;background:#fff7f5; }
.wf-mode { border:0;border-bottom:1px solid var(--line);padding:0 0 16px;margin:24px 0 12px;display:flex;gap:24px;flex-wrap:wrap; }
.wf-mode legend { font-size:.875rem;margin-bottom:8px; }
.wf-mode label { display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer; }
.waterfall .wf-mode input,.waterfall .wf-check input { display:inline-block;width:18px;min-height:18px;height:18px;padding:0;accent-color:var(--ink);flex-shrink:0; }
.waterfall .wf-provenance { max-width:none;padding:10px 0;border-block:1px solid var(--line);font-size:.875rem; }
.wf-controls { display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin:20px 0 8px; }
.wf-controls .wf-mode { border:0;padding:0;margin:0;gap:20px; }
.wf-controls .wf-toolbar { margin:0; }
.wf-workspace { display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:32px;align-items:start; }
.wf-assumptions { min-width:0; }
.wf-assumptions { scroll-margin-top:calc(var(--header) + 16px); }
.wf-form-head,.wf-result-head { display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px; }
.waterfall .wf-form-head h4 { margin:0; }
.wf-result-head { align-items:start; }
.wf-result-head label { flex-shrink:0; }
.wf-result-head select { margin-top:4px;font-size:.875rem; }
.wf-workspace .wf-results { margin:0;padding:0;border:0;min-width:0; }
.wf-input-group,.wf-output-group { border-top:1px solid var(--line); }
.wf-input-group>summary,.wf-output-group>summary { display:flex;justify-content:space-between;gap:12px;min-height:48px;align-items:center;cursor:pointer;font-size:.875rem;font-weight:600;list-style:none; }
.wf-input-group>summary::after,.wf-output-group>summary::after { content:'+';font-weight:400;font-size:20px; }
.wf-input-group[open]>summary::after,.wf-output-group[open]>summary::after { content:'−'; }
.wf-input-group summary::-webkit-details-marker,.wf-output-group summary::-webkit-details-marker { display:none; }
.wf-input-group>.wf-fields { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;padding:12px 0 24px; }
.wf-full { grid-column:1/-1; }
.waterfall .wf-hint,.wf-chart-key { display:block;color:var(--wf-muted);font-size:.8125rem;font-weight:400;line-height:1.5;margin-top:6px; }
.wf-hint a { border-bottom:1px solid var(--line); }
.waterfall label small { font-size:.8125rem;font-weight:400;color:var(--wf-muted); }
.waterfall input[readonly] { background:#f4f5f2;border-color:var(--line); }
.waterfall input[aria-invalid=true],.waterfall select[aria-invalid=true],.waterfall textarea[aria-invalid=true] { border-color:#9b3324; }
.waterfall .wf-check { display:flex;align-items:start;gap:10px; }
.wf-calculate-bottom { margin:16px 0; }
.wf-record { padding:16px 0;border-bottom:1px solid var(--line); }
.wf-record .wf-fields { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.wf-record-heading { display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.8125rem; }
.wf-record-heading button { border:0;padding:4px 8px;font-size:.8125rem; }
.waterfall .wf-breakdown h5 { font:600 .875rem/1.5 var(--font-body);margin:0 0 8px; }
.wf-breakdown>button { margin-top:12px; }
.wf-overview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0 24px;padding-block:16px;border-block:1px solid var(--line); }
.wf-overview dt { font-size:.8125rem;color:var(--wf-muted); }
.wf-overview dd { margin:4px 0 0;font:400 1.5rem/1.4 var(--font-heading);font-variant-numeric:tabular-nums;overflow-wrap:anywhere; }
.waterfall caption { text-align:left;font-size:.8125rem;color:var(--wf-muted);padding:12px 10px; }
.waterfall th[scope=row] { font-weight:400;min-width:140px; }
.waterfall td { font-weight:400; }
.waterfall .wf-clause-select { text-align:left;padding:0;background:none;border:0;min-height:36px;width:100%;font-weight:400;line-height:1.4; }
.waterfall .wf-clause-select:hover { text-decoration:underline; }
.wf-clause-id { font-size:.8125rem;color:var(--wf-muted); }
.wf-cascade { position:relative;height:5px;margin-top:8px;background:#f1f3ee; }
.wf-cascade span { display:block;position:absolute;top:0;height:100%; }
.wf-remaining { background:#d8dfd0; }
.wf-allocation { background:var(--ink); }
.wf-output-group { margin-top:20px; }
.wf-ledger-filter { max-width:300px;margin:12px 0; }
.waterfall .wf-wrap { white-space:normal; }
.wf-empty-result { border-top:1px solid var(--line);padding:24px 0;color:var(--wf-muted); }
.wf-error ul { max-width:none;margin:8px 0; }
.waterfall .wf-error button { padding:0;min-height:32px;border:0;background:none;text-decoration:underline;text-align:left; }
.wf-exports { margin-top:32px;border-top:1px solid var(--line); }
.wf-exports .wf-toolbar { margin:12px 0; }
.wf-file-button { position:relative;display:inline-flex!important;align-items:center; }
.waterfall .wf-file-input { position:absolute;width:1px;height:1px;min-height:1px;padding:0;opacity:0;overflow:hidden; }
.wf-file-button:focus-within { outline:2px solid var(--accent);outline-offset:5px; }
@media(max-width:1100px) { .wf-workspace { grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:24px; }.wf-result-head { flex-wrap:wrap; } }
@media(max-width:900px) { .wf-workspace { grid-template-columns:1fr; }.wf-workspace .wf-results { padding-top:24px;border-top:1px solid var(--line); }.wf-input-group>.wf-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.wf-overview { gap:12px; } }
@media(max-width:560px) { .wf-input-group>.wf-fields,.wf-record .wf-fields { grid-template-columns:1fr; }.wf-result-head { display:block; }.wf-result-head label { margin-top:16px;max-width:220px; }.wf-mode { gap:8px 20px; }.wf-overview { grid-template-columns:1fr;gap:16px; }.wf-overview dd { font-size:1.25rem; }.wf-number { font-size:.8125rem; }.waterfall th,.waterfall td { padding:10px 8px; } }
@media(max-width:900px) { .wf-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .wf-fields { grid-template-columns:1fr; }.wf-toolbar>button { flex:1 1 auto; } }
@media(prefers-reduced-motion:reduce) { .waterfall * { transition:none!important;animation:none!important; } }
