:root{--navy:#1F3864;--blue:#2F5597;--pale:#F2F6FC;--mid:#D9E2F3;--ink:#1A1A1A;--grey:#6B7280;--line:#D5DCE8;--up:#1E7B34;--down:#C00000;--flag:#FFF2CC;--sel:#DDEBF7;}
*{box-sizing:border-box}
body{margin:0;font:14px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink);background:#fff}
button,input,select,textarea{font:inherit}
button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 10px;cursor:pointer;margin:0 2px}
button:hover{background:var(--pale)}button:disabled{opacity:.4;cursor:default}
button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{background:var(--navy)}
button.danger{color:var(--down)}button.ghost{border-style:dashed}
button.big{padding:12px 18px;font-size:15px;min-width:220px}
input,select,textarea{border:1px solid var(--line);border-radius:5px;padding:4px 6px;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px}
.top{display:flex;align-items:center;gap:16px;background:var(--navy);color:#fff;padding:8px 16px;position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:18px}.top .actions{margin-left:auto}.top button{background:transparent;color:#fff;border-color:#ffffff55}.top button.primary{background:#fff;color:var(--navy)}
.status{font-size:12px;opacity:.85}.status.dirty{color:#FFE08A}.status.err{color:#FFB4B4;font-weight:600}
.layout{display:flex;min-height:calc(100vh - 48px)}
.side{width:200px;flex:none;background:var(--pale);padding:12px 8px;border-right:1px solid var(--line)}
.side-h{font-size:11px;font-weight:700;color:var(--grey);text-transform:uppercase;margin:4px 8px 8px}
.side button{display:block;width:100%;text-align:left;margin:2px 0;border:0;background:transparent}
.side button.on{background:var(--blue);color:#fff}.side .add{color:var(--blue);margin-top:10px}
.main{flex:1;padding:16px 20px;min-width:0}
.cls-head{display:flex;align-items:center;gap:12px}.cls-head h2{margin:0;color:var(--navy)}.cls-head .actions{margin-left:auto}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:12px 0}
.tabs button{border:0;border-radius:6px 6px 0 0;margin:0;padding:8px 14px;color:var(--grey)}
.tabs button.on{background:var(--blue);color:#fff}
.bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.bar.end{justify-content:flex-end}.grow{flex:1}
.small{font-size:12px;color:var(--grey)}
.kpis{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.kpis>div{background:var(--pale);border-radius:8px;padding:8px 16px;min-width:150px}
.kpis span{display:block;font-size:11px;font-weight:700;color:var(--grey);text-transform:uppercase}
.kpis b{font-size:24px;color:var(--navy)}.kpis i{display:block;font-size:12px;color:var(--grey)}
.small-k b{font-size:20px}
.scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:6px}
table.grid{border-collapse:collapse;font-size:13px;background:#fff}
.grid th,.grid td{border:1px solid var(--line);padding:4px 8px;text-align:center;white-space:nowrap}
.grid th{background:var(--mid);position:sticky;top:0;z-index:1}
.grid .l{text-align:left;position:sticky;left:0;background:inherit;z-index:2}
.grid td.l{background:#fff}.grid th.l{background:var(--mid);z-index:3}
.grid tfoot td{background:var(--pale);font-weight:600}.grid tfoot td.l{background:var(--pale)}
.grid .r{text-align:right}
.ov tbody tr{cursor:pointer}.ov tr.flag td{background:var(--flag)}.ov tr.sel td{background:var(--sel)!important;font-weight:600}
.up{color:var(--up);font-weight:600}.down{color:var(--down);font-weight:600}
.marks td{padding:1px}.marks td.l,.marks td.tot,.marks td.pc,.marks td.gr{padding:4px 8px}
.marks input{width:44px;text-align:center;border:0;padding:5px 2px;background:transparent}
.marks input.ok{background:#D8E4BC}.marks input.bad{background:#E6B8B7}.marks input.over{background:#FFC7CE;color:var(--down);font-weight:700}
.marks tr.key td{background:#FFF2CC;font-weight:700}.marks .pc{font-weight:700}
.qs input{width:160px}.qs td input[data-qk]{width:90px;text-align:center}
.list input.w{width:56px;text-align:right}.w{width:60px}
.card{background:var(--pale);border-radius:8px;padding:12px 16px;margin-top:16px}.card h3{margin:0 0 8px;color:var(--navy)}
.card textarea{width:100%;margin:6px 0}
.two{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.two>*{flex:1 1 320px;min-width:0}
.empty{color:var(--grey);padding:24px;text-align:center}
.start{max-width:620px;margin:8vh auto;padding:0 16px;text-align:center}
.start h1{color:var(--navy);font-size:40px;margin-bottom:4px}.lead{font-size:16px;color:#333}
.start-btns{display:flex;flex-direction:column;align-items:center;gap:10px;margin:24px 0}
.warn{background:var(--flag);padding:10px;border-radius:6px}
dialog{border:0;border-radius:10px;padding:20px;width:min(560px,92vw);box-shadow:0 10px 40px #0003}
dialog label{display:block;margin:8px 0;font-size:13px;color:var(--grey)}dialog textarea,dialog input,dialog select{width:100%;margin-top:3px;color:var(--ink)}
.row3{display:flex;gap:10px}.row3 label{flex:1}
@media (max-width:760px){.layout{flex-direction:column}.side{width:auto;display:flex;flex-wrap:wrap;gap:4px}.side button{width:auto}.side-h{width:100%}.cls-head{flex-wrap:wrap}}


.chk{display:block;margin:6px 0;font-size:14px;color:var(--ink)}
.chart{width:100%;max-width:680px;height:auto;display:block;margin:10px 0}.chart .ax{font-size:11px;fill:#5B6472}.chart .ct{font-size:13px;font-weight:700;fill:var(--ink)}
.card .bar h3{margin:0}.note-l{display:block;margin-top:12px;font-size:12px;color:var(--grey)}.note-l textarea{width:100%;margin-top:4px;color:var(--ink)}
.fbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;margin-top:10px}
.fb{border:1px solid var(--line);border-radius:8px;padding:10px}.fb-h{display:flex;justify-content:space-between;margin-bottom:6px}
.fb textarea{width:100%}.lvls{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;margin-bottom:6px}.lvls label{font-size:11px;color:var(--grey);display:flex;flex-direction:column}
.grid td.wrap{white-space:normal;min-width:140px;max-width:260px;text-align:left;font-size:12px}
details.card summary{cursor:pointer}
#modal{max-width:620px}
@media screen{#print{display:none}}
@media print{body>*:not(#print){display:none!important}#print{display:block}
  .page{break-after:page;font-size:12px}.page:last-child{break-after:auto}
  .rep-h{border-bottom:3px solid var(--navy);margin-bottom:10px}.rep-h h1{margin:0;color:var(--navy);font-size:24px}
  .page .kpis>div{border:1px solid var(--line)}.page .grid{width:100%}.page .grid th{position:static}.page .grid .l{position:static}
  .page h4{margin:14px 0 6px;color:var(--navy)}.note{border:1px solid var(--line);padding:8px;border-radius:6px}
  @page{size:A4;margin:14mm}}

.qs input.pt{width:44px;text-align:center}.qs input.sk{width:260px}
.marks th.ocol,.marks td.oc{background:#EEF3FB;font-weight:600}
.otabs{display:flex;flex-wrap:wrap;gap:12px}.otab{margin:4px 0}.oh{margin:14px 0 6px;color:var(--navy)}
fieldset.bk{border:1px solid var(--line);border-radius:8px;margin:10px 0}fieldset.bk legend{font-weight:600;color:var(--navy)}

button.resume{background:#1E7B34;border-color:#1E7B34;color:#fff}button.resume:hover{background:#176027}
.howto{max-width:520px;margin:18px auto 0;text-align:left;background:var(--pale);border:1px solid var(--line);border-radius:8px;padding:10px 16px}
.howto summary{cursor:pointer;font-weight:600;color:var(--navy)}.howto ol{margin:8px 0 2px;padding-left:20px}.howto li{margin:6px 0}
.disclaimer{max-width:520px;margin:16px auto 0;text-align:left;font-size:12px;color:var(--grey);border-top:1px solid var(--line);padding-top:10px}
.marks input.cons{background:#FFE699;font-weight:700}

.fbq td.fbm{font-weight:600}.fbq td.ok{background:#D8E4BC}.fbq td.bad{background:#F4CCCC}.fbq td.part{background:#FFF2CC}.fbq td.cons{background:#FFE699}
.fbq td.wrap,.wrap{white-space:normal}.grow{flex:1}
