/* Simulace rozvoje státu — design system (sdílí jazyk Mapy státu: white + grey + navy + neon) */
:root{
  --bg:#f6f8fb; --panel:#ffffff; --ink:#0a1730; --muted:#64748b; --line:#e6eaf0;
  --navy:#0a1f44; --navy2:#0e2a5c;
  --cyan:#00d8ff; --pink:#ff2d8d; --lime:#86ff00; --violet:#7c5cff;
  --ok:#10b981; --warn:#f59e0b; --bad:#ef4444;
  --shadow:0 1px 2px rgba(10,31,68,.04),0 8px 24px rgba(10,31,68,.06);
  --glow:0 0 0 1px rgba(0,216,255,.4),0 0 18px rgba(0,216,255,.25);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}
a{color:inherit}
::selection{background:rgba(0,216,255,.3)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;border:2px solid var(--bg)}

/* ---------- TOP HERO + LIVE KPI BAR ---------- */
.appbar{background:linear-gradient(135deg,var(--navy),#071633);color:#fff;padding:18px 26px 0;position:sticky;top:0;z-index:50;box-shadow:0 6px 24px rgba(7,16,40,.18)}
.appbar .row1{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.appbar .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--cyan),var(--violet));display:flex;align-items:center;justify-content:center;color:#04132b;font-size:19px;box-shadow:0 0 16px rgba(0,216,255,.45)}
.appbar h1{font-size:18px;font-weight:800;letter-spacing:-.01em}
.appbar h1 small{display:block;font-size:10.5px;font-weight:500;color:#7f9bce;letter-spacing:.02em}
.appbar .sp{flex:1}
.appbar .afcea{width:40px;height:40px;border-radius:10px;background:#fff;display:inline-flex;align-items:center;justify-content:center;padding:5px}
.appbar .afcea img{width:100%;height:100%;object-fit:contain}
/* live KPI strip */
.kbar{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;margin-top:16px;background:rgba(255,255,255,.08);border-radius:14px 14px 0 0;overflow:hidden}
.kbar .k{background:rgba(255,255,255,.03);padding:13px 16px;position:relative}
.kbar .k .lab{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#8fa8d4;font-weight:700}
.kbar .k .val{font-size:25px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;line-height:1.05}
.kbar .k .sub{font-size:11px;color:#9fb6db;margin-top:3px;min-height:14px}
.kbar .k .up{color:var(--lime)}
.kbar .k.accent .val{background:linear-gradient(100deg,var(--cyan),var(--violet) 60%,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:900px){.kbar{grid-template-columns:repeat(2,1fr)}}

/* tabs */
.tabbar{display:flex;gap:4px;padding:12px 26px 0;background:var(--navy);position:sticky;top:0;z-index:49}
.tabbar a{padding:11px 16px;font-size:13.5px;color:#9fb6db;text-decoration:none;border-radius:10px 10px 0 0;font-weight:600;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.tabbar a:hover{color:#fff;background:rgba(255,255,255,.05)}
.tabbar a.active{color:var(--navy);background:var(--bg);font-weight:800}
.tabbar a .pill{font-size:10.5px;background:rgba(255,255,255,.14);color:#cfe0ff;padding:1px 7px;border-radius:20px;font-weight:700}
.tabbar a.active .pill{background:rgba(10,31,68,.1);color:var(--navy)}

.wrap{max-width:1320px;margin:0 auto;padding:22px 26px 80px}
.intro{color:var(--muted);font-size:13.5px;line-height:1.6;margin-bottom:18px;max-width:880px}
.intro b{color:var(--ink)}
.sectitle{font-size:20px;font-weight:800;letter-spacing:-.02em;margin:6px 0 4px}
.secsub{color:var(--muted);font-size:13px;margin-bottom:16px}

/* scenarios / actions toolbar */
.scbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.scbtn{padding:9px 14px;border:1px solid var(--line);background:#fff;border-radius:11px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink);display:inline-flex;gap:7px;align-items:center;transition:.13s}
.scbtn:hover{border-color:#cdd6e4;transform:translateY(-1px)}
.scbtn.neon{background:linear-gradient(135deg,var(--cyan),var(--violet));color:#04132b;border:0;font-weight:800}
.scbtn.neon:hover{box-shadow:0 0 18px rgba(0,216,255,.45)}
.scbtn.ghost{background:transparent;color:var(--muted)}

.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px;box-shadow:var(--shadow)}
.toolbar input,.toolbar select{padding:8px 11px;border:1px solid var(--line);border-radius:10px;font-size:13px;background:#fff;outline:none;color:var(--ink)}
.toolbar input:focus,.toolbar select:focus{border-color:var(--cyan);box-shadow:var(--glow)}
.toolbar .grow{flex:1;min-width:180px}
.count{font-size:12px;color:var(--muted);margin-left:auto}

/* generic cards / grid */
.grid{display:grid;gap:14px}
.g-sit{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.g-en{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.badge{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:700;white-space:nowrap;display:inline-block}
.badge.ok{background:#ecfdf5;color:#047857}.badge.warn{background:#fffbeb;color:#b45309}.badge.bad{background:#fef2f2;color:#b91c1c}
.badge.cyan{background:rgba(0,216,255,.12);color:#0e7490}.badge.violet{background:rgba(124,92,255,.12);color:#5b3fd6}
.badge.grey{background:#f1f5f9;color:#475569}
.chip{display:inline-block;font-size:10.5px;background:#f1f5f9;color:#475569;padding:2px 8px;border-radius:7px;margin:2px 3px 0 0;font-weight:600}

/* coverage / maturity bar with now→sim overlay */
.cbar{height:13px;border-radius:7px;background:#eef2f7;overflow:hidden;position:relative;margin:7px 0}
.cbar .now{position:absolute;left:0;top:0;bottom:0;background:#cdd9ea;border-radius:7px}
.cbar .sim{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:7px;transition:width .45s cubic-bezier(.2,.8,.2,1)}
.cbar.mat .sim{background:linear-gradient(90deg,#3ad900,var(--lime))}
.barrow{display:flex;align-items:center;gap:9px;font-size:12px}
.barrow .lbl{color:var(--muted)}
.barrow .v{font-weight:800;font-variant-numeric:tabular-nums;margin-left:auto}
.delta{font-size:11px;font-weight:800;color:var(--ok)}

/* situation card */
.sit .top{display:flex;gap:10px;align-items:flex-start}
.sit .ic{font-size:24px;line-height:1}
.sit .nm{font-weight:750;font-size:14.5px;line-height:1.2}
.sit .meta{font-size:11px;color:var(--muted);margin-top:2px}
.sit .desc{font-size:12px;color:var(--muted);line-height:1.45;margin:9px 0}
.sit .miss{font-size:11px;color:#b45309;margin-top:6px}

/* situation rozbor (rozbalený) */
.sitdetail{margin-top:11px;border-top:1px solid var(--line);padding-top:11px}
.smet{display:grid;grid-template-columns:repeat(2,1fr);gap:1px 16px;margin-bottom:12px}
@media(max-width:560px){.smet{grid-template-columns:1fr}}
.smet .m{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;border-bottom:1px dashed var(--line);padding:5px 0;align-items:baseline}
.smet .m .ml{color:var(--muted)}
.smet .m .mv{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.smet .m .mv.up{color:var(--ok)}
.sacts{display:flex;flex-direction:column;gap:6px}
.sactw{display:flex;flex-direction:column;gap:6px}
.sact button.skpi{font-size:12px}
.sact button.skpi.act-on{background:var(--cyan);border-color:var(--cyan)}
.sactw .kpibox{margin-top:0;background:#fff}
.sact{display:flex;align-items:center;gap:9px;font-size:12px;border:1px solid var(--line);border-radius:10px;padding:7px 10px;transition:.12s}
.sact.on{border-color:var(--cyan);background:rgba(0,216,255,.05)}
.sact .st{flex:1;line-height:1.3}
.sact .sb{font-weight:800;color:var(--ok);white-space:nowrap;font-variant-numeric:tabular-nums}
.sact button{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:15px;font-weight:800;cursor:pointer;color:var(--navy);line-height:1}
.sact button:hover{border-color:var(--cyan)}
.sact.on button{background:var(--navy);color:#fff;border-color:var(--navy)}

/* enabler card */
.en .hd{display:flex;gap:10px;align-items:center}
.en .ic{font-size:22px}
.en .nm{font-weight:750;font-size:13.5px;line-height:1.2}
.en .popis{font-size:11.5px;color:var(--muted);line-height:1.45;margin:8px 0 2px}
.en.unlocked{border-color:#9be6c0;box-shadow:0 0 0 1px #9be6c0,var(--shadow)}
.en .toglock{margin-top:10px;display:flex;gap:8px;align-items:center}

/* action card */
.acts{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:13px}
.act{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 15px;box-shadow:var(--shadow);position:relative;transition:.13s;border-left:4px solid var(--catc,#94a3b8)}
.act.on{box-shadow:0 0 0 2px var(--cyan),0 10px 26px rgba(0,216,255,.18);border-left-color:var(--cyan)}
.act .ahd{display:flex;gap:10px;align-items:flex-start}
.act .atitle{font-weight:750;font-size:14px;line-height:1.28;flex:1}
.act .oneliner{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.4}
.act .tags{margin:9px 0 6px}
.act .nums{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:10px 0 4px;border-top:1px dashed var(--line);padding-top:10px}
.act .nums .n .nl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.act .nums .n .nv{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.act .nums .n .nv.ben{color:var(--ok)}.act .nums .n .nv.cost{color:var(--bad)}
.act .enables{font-size:11.5px;color:#0e7490;background:rgba(0,216,255,.07);border-radius:8px;padding:6px 9px;margin-top:8px;line-height:1.4}
.act .gate{font-size:11px;margin-top:8px;color:var(--muted)}
.act .gate b{color:var(--warn)}
.act .gate.full b{color:var(--ok)}
.act .impl{display:flex;align-items:center;justify-content:space-between;margin-top:11px;gap:10px}
.btn-impl{flex:1;padding:9px 12px;border:1px solid var(--line);background:#fff;border-radius:11px;font-size:13px;font-weight:700;cursor:pointer;color:var(--navy);transition:.13s}
.btn-impl:hover{border-color:var(--cyan)}
.act.on .btn-impl{background:var(--navy);color:#fff;border-color:var(--navy)}
.req{font-size:10.5px;color:var(--muted);margin-top:7px}
.req .rq{display:inline-block;background:#f1f5f9;border-radius:6px;padding:1px 6px;margin:1px 2px 0 0}
.req .rq.miss{background:#fff3cd;color:#8a6100}
.req .rq.ok{background:#e3f7ec;color:#1f7a47}
/* 10 KPI dopadu (rozbalovací) */
.kpitog{margin-top:9px;width:100%;text-align:left;background:#f8fafc;border:1px dashed var(--line);border-radius:9px;padding:7px 11px;font-size:11.5px;font-weight:700;color:var(--navy);cursor:pointer;transition:.13s}
.kpitog:hover{border-color:var(--cyan);background:#f1f7ff}
.kpibox{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;background:#fbfcfe;border:1px solid var(--line);border-radius:10px;padding:8px 11px}
@media(max-width:560px){.kpibox{grid-template-columns:1fr}}
.kpiit{display:flex;justify-content:space-between;gap:8px;font-size:11px;border-bottom:1px dashed var(--line);padding:4px 0;align-items:baseline}
.kpiit:last-child,.kpiit:nth-last-child(2){border-bottom:0}
.kpiit .kn{color:var(--muted);line-height:1.25}
.kpiit .kv{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.kpiit .kv.up,.kpiit .kv.down{color:var(--ok)}
.kpiit .dimc{font-size:8.5px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700;margin-left:5px}

/* mini bars chart (coverage by category) */
.bars .b{display:flex;align-items:center;gap:11px;margin:7px 0;font-size:12.5px}
.bars .b .l{width:170px;color:var(--ink)}
.bars .b .t{flex:1;height:18px;background:#eef2f7;border-radius:7px;overflow:hidden;position:relative}
.bars .b .t .now{position:absolute;inset:0 auto 0 0;background:#cdd9ea}
.bars .b .t .f{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .4s}
.bars .b .vv{width:96px;text-align:right;font-weight:800;font-variant-numeric:tabular-nums}

.note{background:#faf7fe;border:1px dashed rgba(147,51,234,.28);border-radius:10px;padding:11px 14px;font-size:12px;color:#5b3fd6;line-height:1.5;margin:14px 0}
.empty{padding:36px;text-align:center;color:var(--muted)}
.hidden{display:none!important}
.foot{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);line-height:1.6}

/* selection drawer (sticky summary at bottom) */
.drawer{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(10,31,68,.97);backdrop-filter:blur(8px);color:#fff;transform:translateY(105%);transition:transform .3s;box-shadow:0 -8px 30px rgba(0,0,0,.3)}
.drawer.show{transform:translateY(0)}
.drawer .dwrap{max-width:1320px;margin:0 auto;padding:13px 26px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.drawer .di{display:flex;flex-direction:column}
.drawer .di .l{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#8fa8d4;font-weight:700}
.drawer .di .v{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}
.drawer .v.up{color:var(--lime)}
.drawer .sp{flex:1}
.drawer .x{background:rgba(255,255,255,.1);border:0;color:#fff;border-radius:10px;padding:9px 14px;font-weight:700;cursor:pointer;font-size:13px}
.drawer .x:hover{background:rgba(255,255,255,.18)}

/* gate (password) */
#gate{position:fixed;inset:0;z-index:2000;background:radial-gradient(1100px 760px at 76% -18%, #16386f, #060f24 62%);color:#fff;display:flex;align-items:center;justify-content:center;padding:6vh 26px}
#gate .gw{max-width:560px}
#gate .ge{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#7fb0ff;font-weight:700;margin-bottom:16px}
#gate h2{font-size:clamp(34px,6vw,58px);font-weight:800;line-height:1;letter-spacing:-.03em;margin-bottom:18px}
#gate .grad{background:linear-gradient(100deg,var(--cyan),var(--violet) 58%,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
#gate p{color:#c2d4f0;line-height:1.6;margin-bottom:26px}
#gate form{display:flex;gap:10px;flex-wrap:wrap}
#gate input{flex:1;min-width:200px;padding:14px 16px;border-radius:13px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font-size:16px;outline:none}
#gate input:focus{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}
#gate button{padding:14px 24px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#04132b;font-weight:800;font-size:15px;cursor:pointer}
#gate .err{display:none;color:#ff9db5;margin-top:12px;font-weight:600;font-size:13px}
body.locked{overflow:hidden}
