/* WiseLogic Integrácie obcí — bez externých fontov a CDN (CSP). */
:root{
  --bg:#f5f7f8; --card:#fff; --ink:#17232b; --muted:#5d6b75; --line:#dde3e7; --brand:#0f4c5c; --brand-2:#1b7f8c;
  --ok:#2e7d4f; --ok-bg:#e3f3e9; --info:#1f6fb2; --info-bg:#e3eef9; --warn:#a15c00; --warn-bg:#fdf0dc;
  --bad:#b3261e; --bad-bg:#fbe5e3; --neutral:#5d6b75; --neutral-bg:#eceff1; --transfer:#6a3fa0; --transfer-bg:#efe7f8;
  --muted-bg:#f1f1f1; --radius:10px;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}
a{color:var(--brand-2)} a:hover{color:var(--brand)}
h1{font-size:1.6rem;margin:0 0 .2rem;letter-spacing:-.01em} h2{font-size:1.15rem;margin:0 0 .8rem} h3{font-size:1rem;margin:1.2rem 0 .5rem}
code{background:var(--neutral-bg);padding:.05rem .3rem;border-radius:4px;font-size:.9em}
.top{background:var(--brand);color:#fff}
.top-in{max-width:1400px;margin:0 auto;padding:.7rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none}
.brand:hover{color:#fff}
.logo{width:32px;height:32px;border-radius:8px;background:#fff;color:var(--brand);display:grid;place-items:center;font-weight:800}
.brand-sub{opacity:.8}
.obec{font-weight:600;padding:.15rem .7rem;border-left:1px solid rgba(255,255,255,.35)}
.who{margin-left:auto;display:flex;gap:.8rem;align-items:center;font-size:.9rem}
.who form{margin:0}
.who .linkbtn{color:#fff}
.tag{display:inline-block;font-size:.72rem;padding:.05rem .45rem;border-radius:99px;background:rgba(0,0,0,.08);color:inherit;vertical-align:middle}
.top .tag{background:rgba(255,255,255,.18)}
.nav{max-width:1400px;margin:0 auto;padding:0 .6rem;display:flex;gap:.1rem;overflow-x:auto;scrollbar-width:thin}
.nav a{color:#d7e6ea;text-decoration:none;padding:.55rem .7rem;white-space:nowrap;border-bottom:3px solid transparent;font-size:.92rem}
.nav a:hover{color:#fff}
.nav a[aria-current]{color:#fff;border-bottom-color:#7fd1d9;font-weight:600}
.main{max-width:1400px;margin:0 auto;padding:1.2rem 1rem 2rem}
.foot{max-width:1400px;margin:0 auto;padding:1rem;color:var(--muted);font-size:.8rem;display:flex;gap:1.5rem;flex-wrap:wrap}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}
.cols>.card{margin-bottom:0}
.cols{margin-bottom:1rem}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-top:4px solid var(--brand-2)}
.kpi.warn{border-top-color:var(--warn)} .kpi.transfer{border-top-color:var(--transfer)}
.kpi-n{font-size:1.9rem;font-weight:700;line-height:1.1} .kpi-l{color:var(--muted);font-size:.88rem}
.muted{color:var(--muted)} .small{font-size:.85rem} .nowrap{white-space:nowrap} .num{text-align:right;font-variant-numeric:tabular-nums}
.c{text-align:center}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.plain{list-style:none;padding:0;margin:0} .plain li{padding:.25rem 0}
.note{background:var(--neutral-bg);padding:.6rem .8rem;border-radius:8px}
.badge{display:inline-block;font-size:.78rem;font-weight:600;padding:.12rem .55rem;border-radius:99px;white-space:nowrap;border:1px solid transparent}
.b-ok{background:var(--ok-bg);color:var(--ok)} .b-info{background:var(--info-bg);color:var(--info)}
.b-warn{background:var(--warn-bg);color:var(--warn)} .b-bad{background:var(--bad-bg);color:var(--bad)}
.b-neutral{background:var(--neutral-bg);color:var(--neutral)} .b-muted{background:var(--muted-bg);color:#8a949b}
.b-transfer{background:var(--transfer-bg);color:var(--transfer)}
.warn-t{color:var(--warn)} .transfer-t{color:var(--transfer)}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;background:var(--card)}
.tbl th,.tbl td{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc;font-weight:600}
.tbl tbody tr:hover{background:#fafcfd}
.row-transfer{background:var(--transfer-bg)!important;box-shadow:inset 4px 0 0 var(--transfer)}
.row-late td:first-child{box-shadow:inset 4px 0 0 var(--bad)}
.date.est{color:var(--muted);font-style:italic} .date.late{color:var(--bad);font-weight:600}
.stack{display:flex;height:14px;border-radius:99px;overflow:hidden;background:var(--neutral-bg);margin:.2rem 0 .7rem}
.stack .seg{display:block;height:100%} .stack .seg+.seg{border-left:2px solid #fff}
.stack .b-ok{background:var(--ok)} .stack .b-info{background:var(--info)} .stack .b-warn{background:#e39a2d}
.stack .b-bad{background:var(--bad)} .stack .b-neutral{background:#9aa6ae} .stack .b-muted{background:#cfd5d9}
.w0{flex-grow:0}
.w1{flex-grow:1}
.w2{flex-grow:2}
.w3{flex-grow:3}
.w4{flex-grow:4}
.w5{flex-grow:5}
.w6{flex-grow:6}
.w7{flex-grow:7}
.w8{flex-grow:8}
.w9{flex-grow:9}
.w10{flex-grow:10}
.w11{flex-grow:11}
.w12{flex-grow:12}
.w13{flex-grow:13}
.w14{flex-grow:14}
.w15{flex-grow:15}
.w16{flex-grow:16}
.w17{flex-grow:17}
.w18{flex-grow:18}
.w19{flex-grow:19}
.w20{flex-grow:20}
.legend{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem}
.legend a{text-decoration:none;color:var(--ink)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem;vertical-align:baseline}
.dot.b-ok{background:var(--ok)} .dot.b-info{background:var(--info)} .dot.b-warn{background:#e39a2d} .dot.b-bad{background:var(--bad)}
.dot.b-neutral{background:#9aa6ae} .dot.b-muted{background:#cfd5d9} .dot.b-transfer{background:var(--transfer)}
.dot.est-dot{background:transparent;border:2px dashed var(--muted)}
.qlist{padding-left:1.1rem;margin:0} .qlist li{margin-bottom:.6rem}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:#0b3a46}
.btn.small{padding:.4rem .8rem;font-size:.88rem}
.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}
.btn.ghost:hover{background:#fff}
.linkbtn{background:none;border:0;padding:0;color:var(--brand-2);cursor:pointer;font:inherit;text-decoration:underline}
.flash{padding:.6rem .9rem;border-radius:8px;margin:0 0 1rem}
.flash.ok{background:var(--ok-bg);color:var(--ok)} .flash.err{background:var(--bad-bg);color:var(--bad)}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1rem}
.tabs a{padding:.4rem .8rem;border-radius:99px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink);font-size:.9rem}
.tabs a[aria-current]{background:var(--brand);border-color:var(--brand);color:#fff}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;margin-bottom:1rem}
.filters label,.chg-form label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted);gap:.15rem}
.filters .grow,.chg-form .grow{flex:1 1 220px}
select,input[type=search],input[type=text],input[type=date]{font:inherit;padding:.4rem .5rem;border:1px solid #c9d1d6;border-radius:6px;background:#fff;color:var(--ink);min-width:0}
details.chg summary{cursor:pointer;color:var(--brand-2);font-size:.85rem;white-space:nowrap}
.chg-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;margin:.5rem 0;padding:.6rem;background:#f7f9fa;border:1px solid var(--line);border-radius:8px;min-width:260px}
.crumbs{margin:0 0 .4rem}
.gantt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px}
svg.gantt{display:block;font-family:inherit}
.g-band{fill:#fff} .g-band-int{fill:#fbfcfd} .g-band-faza{fill:#eef4f6} .g-band-milnik{fill:#fffaf2}
.g-grid{stroke:#e6eaed;stroke-width:1} .g-axis{stroke:#c9d1d6}
.g-month{font-size:11px;fill:var(--muted);text-transform:capitalize}
.g-label{font-size:12px;fill:var(--ink)} .g-label-int{font-weight:600} .g-label-faza{font-weight:700;fill:var(--brand)}
.g-label-krok{fill:#3c4a53} .g-label-milnik{font-weight:600;fill:#7a4a00}
a .g-label:hover{fill:var(--brand-2);text-decoration:underline}
.g-none{font-size:11px;fill:#9aa6ae;font-style:italic}
.g-bar{stroke-width:1.2}
.g-bar.s-neutral{fill:#b7c2c9;stroke:#8f9ca5} .g-bar.s-info{fill:#6ea7d8;stroke:var(--info)} .g-bar.s-warn{fill:#f0b45c;stroke:#c27a10}
.g-bar.s-ok{fill:#6dbb8a;stroke:var(--ok)} .g-bar.s-bad{fill:#e2827b;stroke:var(--bad)} .g-bar.s-muted{fill:#e1e5e8;stroke:#c3cad0}
.g-bar.s-phase{fill:#2b6f7e;stroke:var(--brand)} .g-bar.s-transfer{fill:#b49bd6;stroke:var(--transfer)}
.g-bar.g-krok{opacity:.85}
.g-bar.est{fill-opacity:.25;stroke-dasharray:4 3;stroke-width:1.5}
.g-ms{stroke-width:1.5;fill:#f0b45c;stroke:#a15c00} .g-ms.s-ok{fill:#6dbb8a;stroke:var(--ok)} .g-ms.s-info{fill:#6ea7d8;stroke:var(--info)}
.g-ms.est{fill-opacity:.2;stroke-dasharray:3 2}
.g-mstext{font-size:10.5px;fill:var(--muted)}
.g-dep{fill:none;stroke:#7b8a94;stroke-width:1.2} .g-arrowhead{fill:#7b8a94}
.g-today{stroke:var(--bad);stroke-width:1.5} .g-todaytext{font-size:10.5px;fill:var(--bad);font-weight:600}
.phases{margin:0;padding-left:1.3rem} .phases li{margin-bottom:.5rem}
.raci td.c span{display:inline-block;min-width:1.6rem;margin:0 .1rem;padding:.05rem .3rem;border-radius:5px;font-weight:700;font-size:.85rem}
.raci-R{background:var(--info-bg);color:var(--info)} .raci-A{background:var(--brand);color:#fff}
.raci-C{background:var(--warn-bg);color:var(--warn)} .raci-I{background:var(--neutral-bg);color:var(--neutral)}
.legend-kv{margin-top:1rem} .legend-kv span{display:inline-block;min-width:1.4rem;text-align:center;border-radius:4px;font-weight:700}
.md{max-width:900px} .md h1{font-size:1.4rem} .md h2{font-size:1.15rem;margin-top:1.4rem} .md table{border-collapse:collapse;margin:.6rem 0;display:block;overflow-x:auto}
.md th,.md td{border:1px solid var(--line);padding:.35rem .55rem;text-align:left} .md th{background:#fafbfc}
.md pre{background:#f3f5f6;padding:.7rem;border-radius:8px;overflow-x:auto} .md blockquote{border-left:4px solid var(--line);margin:0;padding:.2rem .9rem;color:var(--muted)}
.doc-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem;align-items:start}
.doc-nav a[aria-current]{font-weight:700;color:var(--brand)}
.auth{max-width:440px;margin:3rem auto;text-align:center}
.auth .form{margin-top:1rem}
.qr-frame{display:inline-block;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;margin:.6rem 0}
.qr-frame img{display:block}
.qr-label{margin:.4rem 0 0;color:var(--muted)} .qr-num{font-size:2.4rem;font-weight:800;letter-spacing:.08em;margin:.1rem 0 .4rem;color:var(--brand)}
.qr-state{font-weight:600} .qr-state.ok{color:var(--ok)} .qr-state.err{color:var(--bad)}
.print-only{display:none}
@media (max-width:720px){
  body{font-size:14.5px} .top-in{gap:.5rem} .obec{border-left:0;padding-left:0;width:100%;order:3}
  .page-head{flex-direction:column} .doc-layout{grid-template-columns:1fr} .cols{grid-template-columns:1fr}
  .card{padding:.9rem} .kv{grid-template-columns:1fr} .kv dt{margin-top:.4rem}
}
@media print{
  @page{size:A4 landscape;margin:12mm 10mm}
  body{background:#fff;font-size:10.5pt}
  .nav,.no-print,.who form,details.chg{display:none!important}
  .top{background:#fff;color:var(--ink);border-bottom:2px solid var(--brand)} .brand,.top .brand:hover{color:var(--ink)} .logo{border:1px solid var(--brand)}
  .main{padding:0;max-width:none} .card{border:0;padding:0;margin-bottom:6mm;break-inside:auto}
  .tbl-wrap,.gantt-wrap{overflow:visible;border:0}
  thead{display:table-header-group} tfoot{display:table-footer-group} tr{break-inside:avoid}
  .tbl th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .badge,.row-transfer,.g-bar,.kpi,.raci td span{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  svg.gantt{width:100%;height:auto}
  a{color:inherit;text-decoration:none}
  .print-only{display:inline}
  h1{font-size:16pt} h2{font-size:12.5pt;break-after:avoid}
}
