:root{--explain-bg:#eeeaff;--explain-line:#d9d3f1;--gain:#087b35;--loss:#cf2030;--neutral:#445c72;--gain-bg:#e7f5eb;--loss-bg:#fff0f1}
/* One light, readable family for explanations and supporting figures. */
body .hero-side,body .reference-note,body .info-simple,body .info-panel,body .info-panel:nth-child(2),body .policy-method,body .insurance-account,body .branch-readout{background:var(--explain-bg);color:var(--ink);border-color:var(--explain-line)}
body .reference-note p,body .info-simple p,body .insurance-account p,body .policy-method p{color:var(--ink)}
body .info-simple{border-left-color:#7562b0}body .info-simple strong{color:#59478e}
body .info-example{background:#fff4df;color:var(--ink)}body .info-calculation{background:#e4f3ff;color:var(--ink)}
body .resultcard{background:#1756a9;color:white}body .resultcard .cardhead{border-color:#ffffff40}body .resultcard .cardhead p{color:#e7f1ff}
body .resultcard .tinybadge{background:var(--explain-bg);color:#41356e}
body .resultcard .incomplete,body .resultcard .mini,body .resultcard .readme{background:var(--explain-bg);color:var(--ink);border-color:var(--explain-line)}
body .resultcard .incomplete b,body .resultcard .readme strong{color:var(--ink)}
body .resultcard .mini small{color:#465675}body .resultcard .mini b{color:#174f99}body .resultcard .mini span,body .resultcard .readme{color:#354f69}
body .live-summary{border-color:#ffffff50}body .live-summary small{color:#fff}body .live-summary strong{background:var(--explain-bg);border-radius:10px;padding:10px 12px;color:var(--ink)}
body .result-hero{background:var(--explain-bg);color:var(--ink);border:1px solid var(--explain-line);box-shadow:0 12px 30px #286caa10}body .result-hero small{color:#465675}body .result-hero p{color:#354f69}body .result-hero .result-seal{color:#68569d;border-color:#baaedc}
body .pnlbox.total{background:var(--explain-bg);color:var(--ink);border-color:var(--explain-line)}body .pnlbox.total small{color:#465675}body .pnlbox.total b{color:var(--ink)}
body .pnlbox.total .info-button,body .resultcard .info-button{background:#fff;color:#1756a9;border-color:#afc4e0}
body .pnl-theme-metrics span:last-child{background:var(--explain-bg);color:var(--ink)}body .pnl-theme-metrics span:last-child small{color:#465675}
body .pnl-reconcile{background:var(--explain-bg);color:var(--ink)}body .pnl-reconcile small,body .pnl-reconcile em{color:#465675}
body .pay-total{background:var(--explain-bg);color:var(--ink)}body .pay-total small{color:#465675}body .pay-total strong{color:#174f99}
body .macro-head{background:var(--explain-bg);color:var(--ink);border:1px solid var(--explain-line)}body .macro-head h3{color:var(--ink)}body .macro-head p{color:#354f69}body .macro-tag{color:#59478e}body .macro-badge{background:#fff;color:#59478e;border:1px solid var(--explain-line)}
body .future-stock{background:var(--explain-bg);color:var(--ink)}body .future-stock strong{color:#174f99}
body .debt-projections>div,body .demography-numbers>div,body .info-flow span,body .branch-grid div{background:#e8f2ff;color:var(--ink)}
body .method{background:var(--explain-bg)}body .method:nth-child(2){background:#e4f3ff}body .method p{color:#354f69}
body .community{border-color:var(--line)}body .orientation{background:var(--explain-bg);color:#46376f}
body .choice input:checked+label{background:#1756a9;border-color:#1756a9}body .ledger th{background:#e8f2ff;color:#354f69}
body .footer{background:#1756a9;color:white}body .foot b,body .foot span{color:white}
/* Semantic colours do not depend on the theme's decorative colour. */
body .pnl-theme-metrics b.positive,body .pnl-theme-metrics span:last-child b.positive,body .gain,body .pay-delta{color:var(--gain);font-weight:850}
body .pnl-theme-metrics b.negative,body .pnl-theme-metrics span:last-child b.negative,body .loss,body .pay-delta.loss{color:var(--loss);font-weight:850}
body .is-gain,body .result-hero b.is-gain,body .pnlbox.total b.is-gain{color:var(--gain)!important}
body .is-loss,body .result-hero b.is-loss,body .pnlbox.total b.is-loss{color:var(--loss)!important}
body .is-neutral,body .result-hero b.is-neutral,body .pnlbox.total b.is-neutral{color:var(--neutral)!important}
body .ledger td.is-gain,body .ledger td.is-loss,body .pnl-theme-line b.is-gain,body .pnl-theme-line b.is-loss{font-weight:900}
body .result-hero.negative .result-seal{color:var(--loss);border-color:var(--loss)}body .result-hero.positive .result-seal{color:var(--gain);border-color:var(--gain)}
body .balance.is-neutral{background:var(--explain-bg)}
/* Dark blue supporting cards; the introductory idea keeps its lavender paper. */
body :is(.reference-note,.info-simple,.info-panel,.info-panel:nth-child(2),.policy-method,.insurance-account,.branch-readout,.resultcard .incomplete,.resultcard .mini,.resultcard .readme,.live-summary strong,.result-hero,.pnlbox.total,.pnl-theme-metrics span:last-child,.pnl-reconcile,.pay-total,.macro-head,.future-stock,.method,.method:nth-child(2),.orientation){background:#183b61;color:#eeeaff;border-color:#496487;--gain:#64ee94;--loss:#ff8790;--neutral:#eeeaff}
body :is(.reference-note,.info-simple,.info-panel,.policy-method,.insurance-account,.branch-readout,.resultcard .incomplete,.resultcard .mini,.resultcard .readme,.result-hero,.pnlbox.total,.pnl-theme-metrics span:last-child,.pnl-reconcile,.pay-total,.macro-head,.future-stock,.method,.orientation) :is(p,small,em,h3,strong,b,span){color:#eeeaff}
body .resultcard .mini b,body .pay-total strong,body .future-stock strong{color:#eeeaff}
body .info-simple{border-left-color:#bfb0f5}body .info-simple strong,body .macro-tag{color:#d3c7ff}
body .macro-badge,body .resultcard .tinybadge{background:#294c73;color:#eeeaff;border-color:#667fa2}
body .result-hero .result-seal{color:#d3c7ff;border-color:#a799d2}
body .result-hero.negative .result-seal{color:var(--loss);border-color:var(--loss)}body .result-hero.positive .result-seal{color:var(--gain);border-color:var(--gain)}
body .balance.is-neutral{background:#183b61}
