:root{
  --bg:#f4f6f9; --card:#ffffff; --ink:#1d2430; --ink2:#4a5566; --ink3:#7a8494; --line:#e3e7ee;
  --accent:#2a78d6; --accent-ink:#ffffff; --good:#0a7a33; --warn:#9a6700; --bad:#c62f2e;
  --sans:-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;}
[hidden]{display:none!important;}
.muted{color:var(--ink2);} .small{font-size:12px;}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}

header.top{background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;
  padding:10px 22px;flex-wrap:wrap;position:sticky;top:0;z-index:5;}
header .logo{height:34px;}
header nav{display:flex;gap:2px;flex-wrap:wrap;}
header nav button{background:none;border:none;border-bottom:2px solid transparent;color:var(--ink2);padding:10px 12px;
  font:500 14px var(--sans);cursor:pointer;}
header nav button:hover{color:var(--ink);}
header nav button.on{color:var(--ink);border-bottom-color:var(--accent);}
header .right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.who{color:var(--ink2);font-size:12.5px;}
button{font:500 13px var(--sans);border-radius:7px;padding:7px 13px;border:1px solid var(--line);background:var(--card);
  color:var(--ink);cursor:pointer;}
button:hover:not(:disabled){border-color:var(--accent);}
button:disabled{opacity:.45;cursor:not-allowed;}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
button.link{border:none;background:none;color:var(--accent);padding:4px;}
button.lang{padding:4px 9px;font-size:12px;}

main{max-width:1180px;margin:0 auto;padding:22px 18px 40px;}
h1{font-size:21px;margin:0 0 4px;}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin:0 0 10px;}
.head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px;}
.card.narrow{max-width:400px;margin:40px auto;}
.card.narrow-l{max-width:520px;}
label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin:12px 0 4px;}
input,select{width:100%;font:14px var(--sans);padding:8px 10px;border:1px solid var(--line);border-radius:7px;
  background:#fff;color:var(--ink);}
form button.primary{width:100%;margin-top:18px;padding:10px;}
.err{color:var(--bad);font-size:12.5px;margin-top:10px;min-height:16px;}
.err.ok{color:var(--good);}
.steps{padding-left:20px;color:var(--ink2);}
.steps li{margin:5px 0;}
.qr{text-align:center;margin:10px 0;}
.qr img{width:210px;height:210px;image-rendering:pixelated;}
code{font-family:var(--mono);font-size:12px;background:var(--bg);padding:2px 5px;border-radius:4px;word-break:break-all;}

.form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;}
.form .f{min-width:140px;flex:0 1 auto;}
.form .f label{margin-top:0;}

/* overview */
.park{margin-bottom:22px;}
.park-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 10px;}
.park-head h2{margin:0;font-size:15px;color:var(--ink);text-transform:none;letter-spacing:0;}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:12px;}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px 13px;}
.kpi b{display:block;font-family:var(--mono);font-size:20px;font-weight:600;}
.kpi b small{font-size:12px;color:var(--ink3);font-weight:500;}
.kpi span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;}
.turb{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:12px 14px;}
.turb .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.turb h3{margin:0;font-size:15px;}
.turb .model{font-size:11.5px;color:var(--ink3);}
.turb .p{font-family:var(--mono);font-size:26px;font-weight:600;margin:10px 0 4px;}
.turb .p small{font-size:13px;color:var(--ink3);font-weight:500;}
.turb .row{display:flex;gap:16px;font-size:12px;color:var(--ink2);flex-wrap:wrap;}
.turb .row b{font-family:var(--mono);color:var(--ink);font-weight:600;}
.bar{height:5px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:8px;}
.bar i{display:block;height:100%;background:var(--accent);}
.st{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;white-space:nowrap;}
.st::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:1px;background:currentColor;}
.st.producing{color:var(--good);background:#e5f4ea;}
.st.standby{color:var(--warn);background:#fbf1dc;}
.st.no_data{color:var(--ink3);background:var(--bg);}

/* bar widths without inline styles (CSP): 0..100 in steps of 5 */
.w0{width:0}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}
.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}
.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}

.chart{position:relative;height:280px;}

/* report sheet */
table{width:100%;border-collapse:collapse;}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);font-size:12.5px;text-align:left;white-space:nowrap;}
th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);border-bottom:1.5px solid var(--ink2);white-space:normal;}
td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;}
tr.sub td{background:var(--bg);font-weight:700;}
tr.tot td{border-top:2px solid var(--ink);font-weight:700;}
td.wrap{white-space:normal;min-width:180px;}
td.warn{color:var(--warn);font-weight:600;} td.bad{color:var(--bad);font-weight:600;}
.sheet .rh{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:16px;}
.sheet .rh img{height:40px;}
.sheet .rh h1{font-size:20px;}
.sheet h2{margin-top:24px;}
.tablewrap{overflow-x:auto;}
details{margin-top:6px;font-size:12px;}
details summary{cursor:pointer;color:var(--accent);}
.notes{color:var(--ink2);font-size:12px;}
footer{text-align:center;padding:16px;}

@media (max-width:640px){
  header.top{padding:8px 12px;gap:10px;}
  header .logo{height:26px;}
  main{padding:14px 12px 30px;}
  .form .f{flex:1 1 100%;}
}
@media print{
  @page{size:A4 portrait;margin:12mm;}
  body{background:#fff;}
  header.top,footer,.noprint{display:none!important;}
  main{padding:0;max-width:none;}
  .card{border:none;padding:0;}
  details{display:none;}
  tr{break-inside:avoid;}
}
