/* Detail rectangles use the JS visibility floor; CSS adds no height or gaps. */
.strac-proportion-figure{margin:20px 0 0}
.strac-proportion-headings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:660px;margin:0 auto 12px;text-align:center;font-size:12px;font-weight:700}
.strac-proportion-plot{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;height:640px;max-width:660px;margin:0 auto;isolation:isolate}
.strac-proportion-column{position:relative;height:100%;min-height:0;padding:0;border:0;background:repeating-linear-gradient(to bottom,#f7fafc 0,#f7fafc calc(10% - 1px),#e1e9ee calc(10% - 1px),#e1e9ee 10%)}
.strac-proportion-block{position:absolute;left:0;width:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;box-sizing:border-box}
.strac-proportion-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#183b50;font-size:12px;line-height:1.5;pointer-events:none;white-space:nowrap;overflow:hidden}
.strac-proportion-label strong{font-size:14px;font-variant-numeric:tabular-nums}
.strac-proportion-block.revenue,.strac-swatch.revenue{background:#3498DB}
.strac-proportion-block.private,.strac-swatch.private{background:#74B9FF}
.strac-proportion-block.insurance,.strac-swatch.insurance{background:#4A90E2}
.strac-proportion-block.other-revenue,.strac-swatch.other-revenue{background:#CFE9FF}
.strac-proportion-block.variable,.strac-swatch.variable{background:#D6EDFC}
.strac-proportion-block.staff,.strac-swatch.staff{background:#F7D794}
.strac-proportion-block.director,.strac-swatch.director{background:#FFD9A3}
.strac-proportion-block.rent,.strac-swatch.rent{background:#FFEAA7}
.strac-proportion-block.advertising,.strac-swatch.advertising{background:#FFC983}
.strac-proportion-block.recruitment,.strac-swatch.recruitment{background:#FFB98A}
.strac-proportion-block.fixed,.strac-swatch.fixed{background:#EEE2C5}
.strac-proportion-block.profit,.strac-swatch.profit,.strac-proportion-block.cash,.strac-swatch.cash{background:#A8E6CE}
.strac-proportion-block.tax,.strac-swatch.tax{background:#FF8FA3}
.strac-proportion-block.repayment,.strac-swatch.repayment{background:#FFD93D}
.strac-proportion-block.loss,.strac-swatch.loss{background:repeating-linear-gradient(135deg,#f6b8af 0,#f6b8af 6px,#ffdfda 6px,#ffdfda 12px)}
.strac-proportion-block.loss .strac-proportion-label{color:#7e2920}
.strac-revenue-marker{position:absolute;left:0;right:0;border-top:1px dashed #a03026;pointer-events:none;z-index:2}
.strac-revenue-marker span{position:absolute;right:0;bottom:2px;background:white;color:#9c3026;padding:0 4px;font-size:10px}
.strac-profit-outline{position:absolute;bottom:0;left:0;right:0;outline:1px solid #5DAB92;pointer-events:none;z-index:1}
.strac-profit-marker{position:absolute;left:calc((100% + 18px)/3);right:0;border-top:1px solid #75BDA7;pointer-events:none;z-index:2}
.strac-profit-marker span{position:absolute;left:0;bottom:2px;font-size:9px;color:#357D68;background:#ffffffeb;padding:0 3px;line-height:1.5}
.strac-gross-marker{position:absolute;left:0;right:0;border-top:1px solid #75BDA7;pointer-events:none;z-index:2}
.strac-gross-marker span{position:absolute;right:0;bottom:2px;font-size:9px;color:#357D68;background:#ffffffeb;padding:0 3px;line-height:1.5}
.strac-zero-note{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
.strac-proportion-caption{font-size:11px;color:var(--muted);line-height:1.8;margin:14px 0}
.strac-breakdown-tables{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:25px 0}
.strac-breakdown-tables h3{font-size:12px;margin-bottom:10px;color:var(--blue-dark)}
.strac-proportion-legend{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.strac-proportion-legend th,.strac-proportion-legend td{padding:9px 3px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.strac-proportion-legend th:first-child{text-align:left;font-weight:500;white-space:normal}
.strac-proportion-legend thead th{font-size:10px;color:var(--muted);font-weight:500}
.strac-swatch{display:inline-block;width:10px;height:10px;margin-right:8px;vertical-align:middle}
@media(max-width:1100px){.strac-breakdown-tables{grid-template-columns:1fr}.strac-proportion-legend{font-size:12px}}
@media(max-width:680px){.strac-proportion-headings,.strac-proportion-plot{column-gap:9px}.strac-proportion-headings{font-size:9px}.strac-proportion-label{font-size:9px;white-space:normal;text-align:center;line-height:1.35}.strac-proportion-label strong{font-size:10px}.strac-profit-marker{left:calc((100% + 9px)/3)}.strac-proportion-legend{font-size:11px}.strac-swatch{width:8px;height:8px;margin-right:5px}}
@media print{.strac-proportion-plot,.strac-proportion-legend{-webkit-print-color-adjust:exact;print-color-adjust:exact}.strac-proportion-plot{break-inside:avoid}}

/* Five detail bars, two text totals and annual additional-income controls. */
.strac-tabs{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}.strac-tabs a{flex:none;padding:11px 16px}
.strac-result-context{font-size:12px;color:var(--muted);line-height:1.9;margin-top:15px!important}
.strac-chart-scroll{max-width:100%;overflow-x:auto;padding:8px 0 0;scrollbar-color:#8bbfe2 #edf4f8}.strac-chart-wide{min-width:1040px}
.strac-proportion-headings{grid-template-columns:repeat(7,minmax(0,1fr));max-width:none;gap:14px;min-height:48px;align-items:end;font-size:11px;line-height:1.5}.strac-proportion-headings small{display:block;color:#926018;font-size:10px}
.strac-proportion-plot{grid-template-columns:repeat(7,minmax(0,1fr));column-gap:14px;max-width:none;height:520px; margin-bottom:16px}
.strac-proportion-block.officer,.strac-swatch.officer{background:#EEAC72}.strac-proportion-block.travel,.strac-swatch.travel{background:#A4CED2}.strac-proportion-block.before-total,.strac-swatch.before-total{background:#8FD9B6}.strac-proportion-block.after-total,.strac-swatch.after-total{background:#FFD764}
.strac-proportion-label{font-size:10px;white-space:normal;text-align:center;line-height:1.4}.strac-proportion-label strong{font-size:11px}.strac-proportion-block.is-negative{background-image:repeating-linear-gradient(135deg,transparent 0,transparent 5px,#c944352c 5px,#c944352c 10px);outline:1px solid #b3594e;outline-offset:-1px}.strac-proportion-block.is-negative .strac-proportion-label{color:#803329}
.strac-zero-line{position:absolute;left:0;right:0;border-top:1px solid #638e9e;z-index:3;pointer-events:none}.strac-zero-line span{position:absolute;left:0;top:0;background:#fff;padding:0 3px;font-size:9px;color:#456774}
.strac-incomplete-note{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#926018;background:repeating-linear-gradient(135deg,#fff4d722 0,#fff4d722 8px,#eed59444 8px,#eed59444 16px);pointer-events:none}
.strac-expanded-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.strac-expanded-metrics .metric{min-width:0;padding:18px 12px}.strac-expanded-metrics strong{font-size:23px}
.strac-breakdown-tables{grid-template-columns:repeat(3,minmax(0,1fr))}.strac-breakdown-tables h3{font-size:13px}
.strac-income-workspace{max-width:1500px}.strac-income-workspace .panel{margin:20px 0;padding:25px}.strac-income-workspace .panel h2{font-size:20px;line-height:1.5}.strac-income-workspace .panel p{line-height:1.9}.strac-income-section-title{display:flex;gap:14px;align-items:start;margin-bottom:22px}.strac-income-section-title>span{display:flex;justify-content:center;align-items:center;background:#dbf0fc;color:#276b94;font-weight:700;width:38px;height:38px;flex-shrink:0;font-size:15px}.strac-income-section-title p{font-size:12px;color:var(--muted);margin-top:5px!important}
.strac-income-year{display:flex;align-items:end;gap:8px;flex-shrink:0}.strac-income-year label{display:flex;flex-direction:column;font-size:11px;gap:4px}.strac-income-year input{width:104px;height:43px;border:1px solid #bfd7e3;padding:8px;color:var(--ink);border-radius:0;background:#fff}.strac-income-year button{height:43px;padding:8px 13px}
.strac-input-scroll{max-width:100%;overflow-x:auto;border:1px solid #d8e6ec;scrollbar-color:#8bbfe2 #edf4f8}.strac-input-scroll table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.strac-input-scroll th,.strac-input-scroll td{border-right:1px solid #dae6ee;border-bottom:1px solid #dae6ee;padding:10px;text-align:left}.strac-input-scroll th:last-child,.strac-input-scroll td:last-child{border-right:0}.strac-input-scroll thead th{background:#dff1fd;font-weight:650}.strac-input-scroll tbody tr:last-child td,.strac-input-scroll tbody tr:last-child th{border-bottom:0}.strac-input-scroll input,.strac-input-scroll select,.strac-income-field input,.strac-income-field select{width:100%;min-width:0;border:1px solid #bfd5e1;border-radius:0;background:#fff;color:var(--ink);padding:9px;font-size:13px;min-height:43px}.strac-input-scroll input:focus,.strac-input-scroll select:focus,.strac-income-field input:focus,.strac-income-field select:focus{outline:2px solid #b7dbf3;outline-offset:0;border-color:var(--blue)}.strac-input-scroll input:disabled,.strac-income-field input:disabled{background:#eff4f7;color:#69818d}.strac-input-scroll input[type=color]{width:45px;height:43px;padding:3px}.strac-income-item-table{min-width:820px}.strac-income-item-table th:first-child{width:52px;text-align:center}.strac-income-item-table td:nth-child(2){width:24%}.strac-income-item-table td:nth-child(3){width:19%}.strac-income-item-table td:nth-child(4){width:22%}.strac-income-item-table td:nth-child(5){width:155px}.strac-income-item-table td small{display:block;font-size:10px;color:var(--muted);margin-top:5px;white-space:nowrap}.strac-unit-input{display:flex;align-items:center;gap:7px}.strac-unit-input>span{font-size:12px;color:var(--muted);flex-shrink:0}
.strac-income-month-table{min-width:910px;table-layout:fixed}.strac-income-month-table th:first-child{width:58px;position:sticky;left:0;background:#eef7fc;z-index:1;text-align:center}.strac-income-month-table tbody td{background:#f7fcff}.strac-income-month-table tbody input{background:#fff;text-align:right}.strac-income-month-table .strac-computed-cell{background:#fff9df;white-space:nowrap;text-align:right}.strac-income-month-table tfoot td,.strac-income-month-table tfoot th{background:#fff0af;text-align:right;font-weight:650}.strac-income-month-table tfoot th:first-child{background:#fff0af}
.strac-income-hint{font-size:11px;color:var(--muted);margin-top:16px!important;line-height:1.9}.strac-income-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.strac-income-field{display:flex;flex-direction:column;gap:7px;min-width:0}.strac-income-field>span{font-size:12px;font-weight:650}.strac-income-field small{font-size:10px;color:var(--muted);line-height:1.7}.strac-income-subheading{font-size:16px;margin:24px 0 16px!important}.strac-tax-share{display:flex;flex-direction:column;gap:7px;font-size:12px}.strac-tax-share strong{font-size:23px;color:#276b94}.strac-tax-share small{font-size:10px;color:var(--muted)}.strac-tax-baseline{display:flex;gap:20px;background:#eef8fd;padding:14px 16px;margin-top:20px;font-size:12px;flex-wrap:wrap}.strac-tax-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.strac-tax-people fieldset,.strac-tax-child{border:1px solid #dae6ee;margin:0;padding:18px;min-width:0}.strac-tax-people legend,.strac-tax-child legend{font-size:13px;color:#276b94;font-weight:700;padding:0 8px}.strac-tax-people .strac-income-fields{grid-template-columns:1fr}
.strac-tax-child{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;gap:12px;align-items:end;margin-bottom:15px}.strac-tax-child button{height:43px;font-size:12px;padding:8px 12px}.strac-tax-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.strac-tax-summary>div{padding:17px;background:#eef8fd;display:flex;flex-direction:column;gap:7px;font-size:11px}.strac-tax-summary>div:last-child{background:#fff3b3}.strac-tax-summary strong{font-size:17px}.strac-tax-result-table{min-width:490px}.strac-tax-result-table caption{font-size:11px;padding:10px;background:#f8fbfd;color:var(--muted);text-align:left}.strac-tax-result-table td{text-align:right;white-space:nowrap}.strac-tax-result-table tbody th{font-weight:500}.strac-tax-result .notice{margin:12px 0 18px}.strac-income-save{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:3px solid #beddec;padding:20px 0;margin-top:25px}.strac-income-save p{font-size:12px;color:var(--blue-dark)}.strac-income-save small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.strac-income-save button{white-space:nowrap;font-size:13px}
/* Added expense columns use semantic classes, independent of old column indices. */
.ledger-workspace .ledger-table{min-width:2340px}.ledger-workspace .ledger-table thead tr:nth-child(2)>th,.ledger-workspace .ledger-table tbody tr>td{border-left:0}.ledger-workspace .ledger-table thead tr:nth-child(2)>th.ledger-revenue{background:#e0f0fb;color:#174f72}.ledger-workspace .ledger-table thead tr:nth-child(2)>th.ledger-expense{background:#fff3cb;color:#63501f}.ledger-workspace .ledger-table thead tr:nth-child(2)>th.ledger-repayment{background:#ecf1f5;color:#405b6d}.ledger-workspace .ledger-table thead tr:nth-child(2)>th.computed-head{background:#fff0b5;color:#604714}.ledger-workspace .ledger-table tbody tr>td.ledger-revenue{--ledger-cell-bg:#f3faff;--ledger-cell-edited:#e8f4fe}.ledger-workspace .ledger-table tbody tr>td.ledger-expense{--ledger-cell-bg:#fffdf2;--ledger-cell-edited:#fff6d8}.ledger-workspace .ledger-table tbody tr>td.ledger-repayment{--ledger-cell-bg:#f6f8fa;--ledger-cell-edited:#eaf0f5}.ledger-workspace .ledger-table thead tr:nth-child(2)>th:nth-child(4),.ledger-workspace .ledger-table tbody tr>td:nth-child(5){border-left:3px solid #c6a34a}.ledger-workspace .ledger-table thead tr:nth-child(2)>th:nth-child(13),.ledger-workspace .ledger-table tbody tr>td:nth-child(14){border-left:3px solid var(--blue)}.ledger-workspace .ledger-table thead tr:nth-child(2)>th:nth-child(14),.ledger-workspace .ledger-table tbody tr>td:nth-child(15){border-left:3px solid #c7a23c}
@media(max-width:1100px){.strac-expanded-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.strac-breakdown-tables{grid-template-columns:repeat(2,minmax(0,1fr))}.strac-tax-child{grid-template-columns:1fr 1fr}.strac-tax-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.strac-tabs a{font-size:12px;padding:10px 13px;flex:none}.strac-expanded-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.strac-expanded-metrics .metric:last-child{grid-column:1/-1}.strac-expanded-metrics strong{font-size:21px}.strac-breakdown-tables{grid-template-columns:1fr}.strac-income-workspace .panel{padding:18px 14px}.strac-income-workspace .panel h2{font-size:18px}.strac-income-fields,.strac-tax-people{grid-template-columns:1fr}.strac-income-year{align-self:start}.strac-income-section-title{gap:10px}.strac-tax-summary strong{font-size:14px}.strac-tax-child{grid-template-columns:1fr;padding:14px}.strac-tax-child button{justify-self:start}.strac-tax-baseline{flex-direction:column;gap:6px}.strac-income-save{align-items:stretch;flex-direction:column}.strac-income-save button{width:100%}.chart-workspace .period-controls{flex-wrap:wrap}.chart-workspace .period-controls label{min-width:140px}.strac-proportion-headings{font-size:11px}.strac-proportion-headings,.strac-proportion-plot{column-gap:14px}.strac-proportion-label{font-size:10px}.strac-proportion-label strong{font-size:11px}}
@media print{.strac-chart-scroll{overflow:visible}.strac-chart-wide{min-width:0}.strac-proportion-plot{height:450px;column-gap:8px}.strac-proportion-headings{column-gap:8px;font-size:8px}.strac-proportion-label{font-size:7px}.strac-proportion-label strong{font-size:8px}.strac-breakdown-tables{grid-template-columns:repeat(3,minmax(0,1fr))}.strac-income-year,.strac-income-save,.strac-tax-child button,[data-tax-add-child]{display:none}.ledger-workspace .ledger-table{min-width:0}.strac-tax-summary,.strac-income-workspace .panel{break-inside:avoid}}

/* Totals are accessible text on white columns, matching the spreadsheet. */
.strac-proportion-column.strac-total-column{background:#fff}
.strac-total-summary{position:absolute;left:0;width:100%;padding:8px 5px;background:#fff;z-index:4;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;color:#183b50;line-height:1.5}
.strac-total-summary h3{margin:0;font-size:12px;font-weight:700;line-height:1.5}
.strac-total-summary .strac-total-amount{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;max-width:100%;overflow-wrap:anywhere}
.strac-total-share{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.strac-total-summary.is-negative{color:#803329}
@media print{.strac-total-summary{padding:5px 2px;gap:2px}.strac-total-summary h3{font-size:8px}.strac-total-summary .strac-total-amount,.strac-total-share{font-size:9px}}
