/* OzCal blog + newsletter styles. Loaded after /assets/pages.css. New file name per change (immutable cache). */
.post-hero{margin:0 0 22px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}
.post-hero img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.post-hero figcaption{font-size:12px;color:var(--t3);padding:8px 12px}
.byline{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--t2);margin:-4px 0 20px}
.byline b{color:var(--text);font-weight:700}
.toc{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 18px;margin:0 0 24px;font-size:15px}
.toc strong{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);margin-bottom:6px}
.toc ol{margin:0 0 0 18px}.toc li{margin:3px 0}
.chart{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 18px 12px;margin:20px 0 22px}
.chart h3{margin:0 0 4px;font-size:17px}
.chart .sub{font-size:14px;color:var(--t2);margin:0 0 14px}
.chart .src{font-size:12px;color:var(--t3);margin:10px 0 0}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--t2);margin:0 0 12px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend i.tick{width:3px;height:14px;border-radius:2px}
.legend i.dash{width:16px;height:0;border-top:2px dashed #9BA1AC;border-radius:0;vertical-align:3px}
.c1{background:#1FA570}.c2{background:#4F7FE0}.c3{background:#C07E25}.cg{background:#6B727E}
/* bullet / bar rows */
.brow{display:grid;grid-template-columns:minmax(78px,120px) 1fr;gap:10px;align-items:center;margin:0 0 14px}
.brow .lab{font-size:14px;color:var(--text);font-weight:600;line-height:1.25}
.brow .lab small{display:block;font-weight:500;color:var(--t3);font-size:12px}
.track{position:relative;height:30px;background:#1B1E22;border-radius:4px}
.track .bar{position:absolute;left:0;top:5px;bottom:5px;border-radius:0 4px 4px 0;min-width:2px;transition:filter .15s}
.track .bar:hover{filter:brightness(1.25)}
.track .val{position:absolute;top:50%;transform:translateY(-50%);font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;padding-left:6px}
.track .mk{position:absolute;top:0;bottom:0;width:3px;border-radius:2px}
.track .mk span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:11px;color:var(--t2);white-space:nowrap;margin-bottom:1px}
.brow.grp{margin-bottom:6px}.brow.grp .track{height:24px}
.grp-gap{height:10px}
.ticks{position:relative;height:16px;font-size:11px;color:var(--t3)}
.ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.ticks span:first-child{transform:none}
/* stacked */
.stack{display:flex;height:46px;border-radius:4px;overflow:visible;gap:2px;position:relative;margin:26px 0 8px}
.stack .seg{position:relative;height:100%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;min-width:0;transition:filter .15s}
.stack .seg:first-child{border-radius:4px 0 0 4px}.stack .seg:last-child{border-radius:0 4px 4px 0}
.stack .seg:hover{filter:brightness(1.2)}
.stack .line{position:absolute;top:-8px;bottom:-8px;border-left:2px dashed #9BA1AC}
.stack .line span{position:absolute;top:-20px;left:4px;font-size:11px;color:var(--t2);white-space:nowrap}
.seglist{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:12px 0 0;font-size:13px;color:var(--t2)}
.seglist div{background:var(--surface2);border-radius:8px;padding:8px 10px}
.seglist b{color:var(--text)}
/* svg charts */
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart svg text{fill:#9BA1AC;font-family:var(--ui)}
.chart svg .lbl{fill:#E6E8EC;font-weight:600}
.chart svg .pt{transition:r .15s}
.chart svg .pt:hover{r:9}
/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:18px 0 22px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}
.stat .n{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1.1}
.stat .d{font-size:13px;color:var(--t2);margin-top:6px;line-height:1.4}
details.data{margin:10px 0 0;font-size:14px}
details.data summary{cursor:pointer;color:var(--t2);font-size:13px}
details.data table{margin-top:8px}
.callout{border-left:3px solid var(--mint);background:var(--surface);border-radius:0 10px 10px 0;padding:12px 16px;margin:18px 0}
.callout p:last-child{margin:0}
.sources{font-size:14px}.sources li{color:var(--t2)}
/* newsletter */
.nl{background:linear-gradient(135deg,#16241F,#16181C);border:1px solid rgba(61,220,151,.3);border-radius:16px;padding:22px;margin:30px 0}
.nl h3,.nl h2{margin:0 0 6px}
.nl p{color:#C9CDD3;margin:0 0 14px;font-size:16px}
.nl-form{display:flex;gap:10px;flex-wrap:wrap}
.nl-form input[type=email]{flex:1;min-width:210px;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:13px 18px;font-size:16px;font-family:inherit}
.nl-form input[type=email]:focus{outline:2px solid var(--mint);outline-offset:1px}
.nl-form button{border:0;cursor:pointer;font-family:inherit}
.nl-form button[disabled]{opacity:.6;cursor:wait}
.nl-fine{font-size:12.5px!important;color:var(--t3)!important;margin:10px 0 0!important;width:100%}
.nl-ok{color:var(--mint)!important;font-weight:700;font-size:16px!important;margin:0!important}
.nl-err{color:#E8A0A5!important;font-size:14px!important;margin:8px 0 0!important;width:100%}
.sr{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* index cards */
.posts{display:grid;gap:16px;margin:20px 0}
.pcard{display:grid;grid-template-columns:1fr;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;color:var(--text)}
.pcard:hover{border-color:var(--mint);text-decoration:none}
.pcard img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.pcard .b{padding:14px 16px 16px}
.pcard .k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mint)}
.pcard h2{font-size:20px;margin:6px 0 6px;line-height:1.25}
.pcard p{color:var(--t2);font-size:15px;margin:0 0 8px}
.pcard .m{font-size:13px;color:var(--t3)}
@media(min-width:700px){.pcard{grid-template-columns:300px 1fr}.pcard img{height:100%;aspect-ratio:auto}.posts .pcard:first-child{grid-template-columns:1fr}.posts .pcard:first-child img{aspect-ratio:16/9;height:auto}.posts .pcard:first-child h2{font-size:26px}}
/* calculator */
.calc .chk{display:flex;gap:8px;align-items:center;font-size:15px;color:var(--t2);margin-top:12px}
.calc .chk input{width:18px;height:18px;accent-color:#3DDC97}
@media(max-width:520px){h1{font-size:28px}.chart{padding:14px 12px 10px}.stat .n{font-size:26px}}
.track .val.in{transform:translate(-100%,-50%);padding:0 8px 0 0;color:#fff}
.track .mk.lo span{bottom:auto;top:100%;margin:1px 0 0}
.brow.mrk{margin-bottom:24px}
@media(max-width:699px){article table{display:table;white-space:normal;font-size:14px}article th,article td{padding:8px 7px}article th{font-size:11px}}
.calc label.chk{display:flex;text-transform:none;letter-spacing:0;font-size:15px;color:var(--t2);margin:14px 0 0}
#pcalc .row>div{min-width:200px}
