/* Energy differences and goal references; signed values are not moral scores. */
.balance-card,.balance-report{padding:24px;margin:0 0 22px;border-top:2px solid var(--accent)}
.balance-card h2,.balance-report h2{font-size:20px;margin-bottom:8px}
.balance-card .panel-head{flex-wrap:wrap}.balance-values{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:16px;margin:20px 0}
.balance-values>div{min-width:0}.balance-values b{display:block;font-size:32px;line-height:1.4;font-variant-numeric:tabular-nums}
.balance-values small{font-size:12px;display:block;color:var(--muted)}.balance-diff b{color:var(--accent)}
.balance-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.balance-summary{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:22px 0}
.balance-summary>div{padding:18px;background:var(--bg);border:1px solid var(--line);border-radius:12px;min-width:0}
.balance-summary small,.balance-summary span{display:block;font-size:12px;color:var(--muted)}.balance-summary b{display:block;font-size:28px;line-height:1.6;font-variant-numeric:tabular-nums}.balance-summary em{font-size:12px;font-style:normal}
.balance-period-nav{display:flex;gap:12px;justify-content:flex-end}.balance-report .panel-head{flex-wrap:wrap}.balance-report .segmented{flex-wrap:wrap}
.chart-grid{stroke:var(--line);stroke-width:1}.zero-line{stroke:var(--muted);stroke-width:2}
.difference-bar{stroke-width:1.5;stroke:var(--accent)}.difference-bar.provisional{fill:transparent;stroke-dasharray:4 2}.difference-bar.qualified{fill:var(--accent)}.difference-bar.negative{stroke:#b8b8c1}.difference-bar.negative.qualified{fill:#b8b8c1}
.goal-line{fill:none;stroke:#e8e8ef;stroke-width:2;stroke-dasharray:7 4}.goal-line.guidance{stroke:var(--accent);stroke-dasharray:2 4}.goal-line.reference{stroke:#c5c5cf;stroke-dasharray:9 4}
.goal-legends{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:8px 0}.goal-legend::before{content:'— ';color:#e8e8ef}.goal-legend.guidance::before{color:var(--accent);content:'··· '}
.chart-selector{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0;font-size:12px;color:var(--muted)}.chart-selector select{min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit;padding:8px}.chart-selector output{flex:1;min-width:160px}
.table-scroll{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.table-scroll table{width:100%;border-collapse:collapse;font-size:12px}.table-scroll td,.table-scroll th{padding:10px 8px;text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.table-scroll th:first-child,.table-scroll td:first-child{text-align:left}.balance-table th:last-child,.balance-table td:last-child{min-width:150px;text-align:left}
.check-row{display:flex!important;align-items:flex-start;gap:10px}.check-row input{width:20px!important;height:20px;min-width:20px}
.settings-list dd small{display:block;font-size:10px;color:var(--muted)}.balance-actions button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:740px){.balance-card,.balance-report{padding:18px 16px}.balance-values{gap:8px}.balance-values b{font-size:24px}.balance-values small{font-size:10px}.balance-values>span{font-size:12px}.balance-summary{gap:12px;grid-template-columns:1fr}.balance-summary b{font-size:27px}.balance-card h2,.balance-report h2{font-size:17px}.balance-report .chart{height:auto;min-height:170px}.balance-actions .text-action{font-size:11px}.balance-period-nav{justify-content:space-between}.chart-selector output{flex-basis:100%}}
@media(max-width:360px){.balance-values{grid-template-columns:1fr 1fr;gap:14px}.balance-values>span{display:none}.balance-diff{grid-column:1/-1}}

/* Stack the difference below inputs on phones, preserving readable large values. */
.balance-values b{overflow-wrap:anywhere}
@media(max-width:740px){.balance-values{grid-template-columns:1fr 1fr;gap:14px}.balance-values>span{display:none}.balance-diff{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}}
