/* Kilovatio Blackout · analysis and validation, v0.8.0 */
.kvbl8-app{font-family:inherit;max-width:1200px;margin:18px auto 38px;color:#153349}
.kvbl8-app *{box-sizing:border-box}.kvbl8-links{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:26px}
.kvbl8-links a{background:#eaf4f7;color:#13586d;font-weight:720;border:1px solid #bfdde7;text-decoration:none;border-radius:8px;padding:9px 12px;font-size:13px}
.kvbl8-links a:hover,.kvbl8-links a:focus-visible{background:#cde9ee;outline-color:#168d9b}
.kvbl8-intro{background:#102339;border-radius:16px;padding:28px 32px;color:white;margin-bottom:23px}
.kvbl8-intro>span{color:#ecc676;font-size:11px;font-weight:800;letter-spacing:.16em}
.kvbl8-intro h2{font-size:clamp(1.55rem,2.5vw,2.3rem);color:white;line-height:1.2;margin:12px 0;letter-spacing:-.035em}
.kvbl8-intro p{max-width:940px;color:#d3e0e9;line-height:1.65;margin:0}
.kvbl8-controls{display:grid;grid-template-columns:1fr 1fr 1.3fr 1.5fr;gap:12px;background:#fff;padding:20px;border:1px solid #d9e5e8;border-radius:12px;align-items:end}
.kvbl8-controls label{display:block;font-size:12px;font-weight:750;color:#31546a}
.kvbl8-controls input,.kvbl8-controls select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #b6cbd2;border-radius:7px;font-family:inherit;color:#1d3d53;background:#fff}
.kvbl8-controls button{grid-column:1/-1;background:#136980;color:white;border:0;border-radius:8px;padding:12px 18px;font-weight:800;cursor:pointer;font:inherit}
.kvbl8-controls button:disabled{opacity:.5;cursor:wait}
.kvbl8-alert{padding:12px 16px;margin:14px 0 18px;background:#e5f4f4;border-left:4px solid #17a4b1;font-size:13px;color:#25566a;border-radius:6px}
.kvbl8-alert.kvbl8-error{background:#fff0ec;color:#963c32;border-color:#c95543}
.kvbl8-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.kvbl8-stat{background:#fff;border:1px solid #dce5ec;border-radius:12px;padding:15px;min-width:0}
.kvbl8-stat span{font-size:11px;font-weight:720;color:#577083;display:block}
.kvbl8-stat strong{font-size:clamp(1.04rem,1.8vw,1.52rem);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:8px;display:block;line-height:1.25}
.kvbl8-stat small{font-size:10px;color:#647a8c;display:block;margin-top:5px}
.kvbl8-plot{background:#fff;padding:18px;border-radius:12px;border:1px solid #dce5ec;min-height:170px}
.kvbl8-plot>svg{display:block;width:100%;height:auto;max-height:370px}
.kvbl8-legend{display:flex;flex-wrap:wrap;align-items:center;gap:20px;font-size:12px;color:#405e70;margin:10px 5px 0}
.kvbl8-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.kvbl8-legend small{color:#657e90}.kvbl8-export-wrap{display:flex;justify-content:flex-end;margin-top:10px}
.kvbl8-export{border:1px solid #2c7e90;background:#fff;border-radius:8px;color:#155f75;padding:10px 14px;cursor:pointer;font-weight:750}
.kvbl8-export[hidden]{display:none}
.kvbl8-explanation,.kvbl8-method{background:#f1f5f8;padding:20px 23px;border-radius:12px;margin-top:19px;border:1px solid #e0e9ed;font-size:13px}
.kvbl8-explanation h3,.kvbl8-method h3{font-size:17px;margin:0 0 12px;color:#183b50}
.kvbl8-explanation p,.kvbl8-method p{color:#3c5a6b;margin:8px 0;line-height:1.7}
.kvbl8-method a{color:#0d728b;font-weight:740}
@media(max-width:840px){.kvbl8-controls{grid-template-columns:1fr 1fr}.kvbl8-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.kvbl8-intro{padding:22px 18px}.kvbl8-controls{grid-template-columns:1fr;padding:16px}.kvbl8-stats{gap:8px}.kvbl8-stat{padding:12px}.kvbl8-plot{padding:8px}.kvbl8-legend{gap:10px}}
