/* Agenda ŠMP — stejná paleta jako mapa závislostí, ať to na sebe navazuje. */
:root{
  --paper:#E7EAEC; --surface:#FBFCFC; --sunk:#DDE2E5;
  --ink:#141B21; --body:#2E3941; --mut:#63727D; --faint:#93A0A9;
  --line:#C9D1D6; --hair:#DCE2E5;
  --gold:#9B6F1E; --gold-soft:#EFE3C8;
  --w0:#8A959D; --w1:#9C3728; --w2:#9B6F1E; --w3:#6E7230; --w4:#33705E; --w5:#476084;
  --seda:#8A959D; --zluta:#9B6F1E; --modra:#476084; --fialova:#6B4E8F;
  --zelena:#33705E; --cervena:#9C3728;
  --shadow:0 1px 2px rgba(20,27,33,.07),0 6px 18px rgba(20,27,33,.06);
}
@media (prefers-color-scheme:dark){:root{
  --paper:#101820; --surface:#18222B; --sunk:#0B1219;
  --ink:#EDF1F3; --body:#C6D0D6; --mut:#8B99A3; --faint:#65727C;
  --line:#2C3945; --hair:#232F3A;
  --gold:#D9AE5C; --gold-soft:#3A2F18;
  --w0:#7E8A93; --w1:#D0705E; --w2:#D9AE5C; --w3:#A8AD5E; --w4:#5FA890; --w5:#7C9AC4;
  --seda:#7E8A93; --zluta:#D9AE5C; --modra:#7C9AC4; --fialova:#A98FD0;
  --zelena:#5FA890; --cervena:#D0705E;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.28);
}}

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--paper); color:var(--body);
  font:400 14px/1.5 "IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0; color:var(--ink); text-wrap:balance}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
[hidden]{display:none!important}

/* ---------- přihlášení ---------- */
.login{min-height:100vh; display:grid; place-items:center; padding:24px}
.loginbox{
  background:var(--surface); border:1px solid var(--line); border-radius:4px;
  box-shadow:var(--shadow); padding:32px; max-width:430px;
}
.brand{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--faint); margin-bottom:12px;
}
.loginbox h1{font-family:Newsreader,Georgia,serif; font-size:29px; font-weight:600}
.lead{color:var(--mut); font-size:13.5px; margin:10px 0 22px}
.gbtn{
  display:flex; align-items:center; gap:10px; width:100%; justify-content:center;
  font:500 14px/1 "IBM Plex Sans",sans-serif; cursor:pointer;
  background:var(--surface); color:var(--body);
  border:1px solid var(--line); border-radius:3px; padding:12px;
}
.gbtn:hover{border-color:var(--mut)}
.fine{font-size:11.5px; color:var(--faint); margin:16px 0 0; line-height:1.45}
.err{
  font-size:12.5px; color:var(--cervena); background:var(--sunk);
  border-radius:3px; padding:9px 11px; margin:14px 0 0;
}

/* ---------- hlavička ---------- */
header{padding:20px 22px 0; max-width:1760px; margin:0 auto}
.brow{display:flex; align-items:baseline; gap:13px; flex-wrap:wrap}
header h1{font-family:Newsreader,Georgia,serif; font-size:24px; font-weight:600}
.sub{color:var(--mut); font-size:13px}
.spacer{flex:1}
.who{font-size:12px; color:var(--mut)}
.lnk{
  font:500 12px/1 "IBM Plex Sans",sans-serif; cursor:pointer; color:var(--mut);
  background:transparent; border:1px solid var(--line); border-radius:2px;
  padding:6px 10px; text-decoration:none; display:inline-block;
}
.lnk:hover{border-color:var(--mut); color:var(--ink)}
.stats{
  display:flex; flex-wrap:wrap; margin:14px 0 0;
  border:1px solid var(--line); border-radius:3px; background:var(--surface); overflow:hidden;
}
.stat{flex:1 1 130px; padding:10px 14px; border-right:1px solid var(--hair)}
.stat:last-child{border-right:0}
.stat b{
  display:block; font-family:"IBM Plex Mono",monospace; font-size:20px; font-weight:500;
  color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.15;
}
.stat span{font-size:11.5px; color:var(--mut)}
.stat.hot b{color:var(--cervena)}

/* ---------- ovládání ---------- */
.bar{
  max-width:1760px; margin:0 auto; padding:13px 22px 11px;
  display:flex; gap:9px; align-items:center; flex-wrap:wrap;
}
.tabs{display:flex; gap:0; border:1px solid var(--line); border-radius:3px; overflow:hidden}
.tab{
  font:500 12.5px/1 "IBM Plex Sans",sans-serif; cursor:pointer; padding:8px 14px;
  background:var(--surface); color:var(--mut); border:0; border-right:1px solid var(--line);
}
.tab:last-child{border-right:0}
.tab[aria-selected="true"]{background:var(--ink); color:var(--paper)}
.grp{display:flex; align-items:center; gap:5px}
.grp>label{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.09em;
  color:var(--faint); font-weight:600;
}
.chip{
  font:500 11.5px/1 "IBM Plex Sans",sans-serif; color:var(--body);
  background:var(--surface); border:1px solid var(--line); border-radius:99px;
  padding:6px 10px; cursor:pointer;
}
.chip:hover{border-color:var(--mut)}
.chip[aria-pressed="true"]{background:var(--ink); color:var(--paper); border-color:var(--ink)}
input[type=search],select,input[type=text],input[type=date],textarea{
  font:400 13px/1.3 "IBM Plex Sans",sans-serif; color:var(--body);
  background:var(--surface); border:1px solid var(--line); border-radius:3px; padding:7px 9px;
}
input[type=search]{min-width:200px}

/* ---------- rozvržení ---------- */
main{
  max-width:1760px; margin:0 auto; padding:0 22px 26px;
  display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:16px; align-items:start;
}
@media (max-width:1140px){main{grid-template-columns:minmax(0,1fr)}}

.board{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(212px,1fr);
  gap:11px; overflow-x:auto; padding-bottom:9px; align-items:start;
}
.col{min-width:212px}
.colhead{
  display:flex; align-items:baseline; gap:6px; padding:0 2px 7px;
  border-bottom:2px solid var(--wc); margin-bottom:8px;
}
.colhead .n{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--wc)}
.colhead h3{font-size:12.5px; font-weight:600; flex:1; line-height:1.25}
.colhead .c{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--faint)}
.stack{display:flex; flex-direction:column; gap:5px}

.node{
  display:grid; grid-template-columns:auto 1fr; gap:8px; align-items:start;
  text-align:left; width:100%; cursor:pointer; font-family:inherit; color:var(--body);
  background:var(--surface); border:1px solid var(--hair);
  border-left:3px solid var(--sc,var(--wc)); border-radius:2px; padding:7px 9px 7px 8px;
}
.node:hover{border-color:var(--line); box-shadow:var(--shadow)}
.node .id{
  font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--faint);
  font-variant-numeric:tabular-nums; min-width:17px; padding-top:1px;
}
.node .t{font-size:12px; line-height:1.32}
.node .meta{
  display:flex; gap:5px; margin-top:4px; align-items:center; flex-wrap:wrap;
  font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--faint);
}
.node .sv{color:var(--sc)}
.node.is{border-color:var(--ink); box-shadow:var(--shadow)}
.node.hidden{display:none}
.board.has-sel .node{opacity:.26}
.board.has-sel .node.is,.board.has-sel .node[data-dopad]{opacity:1}
.node[data-dopad]{border-color:var(--dc); border-left-color:var(--dc)}
.node[data-dopad="bez_dopadu"]{opacity:.5!important}

/* ---------- tabulka ---------- */
.tablewrap{background:var(--surface); border:1px solid var(--line); border-radius:3px; overflow-x:auto}
table{border-collapse:collapse; width:100%; font-size:12.5px}
th{
  text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--faint); font-weight:600; padding:9px 10px;
  border-bottom:1px solid var(--line); white-space:nowrap;
  position:sticky; top:0; background:var(--surface);
}
td{padding:8px 10px; border-bottom:1px solid var(--hair); vertical-align:top}
tbody tr{cursor:pointer}
tbody tr:hover{background:var(--sunk)}
td.num{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; color:var(--faint)}
.badge{
  font-family:"IBM Plex Mono",monospace; font-size:10px; padding:2px 6px;
  border-radius:2px; color:var(--surface); background:var(--sc); white-space:nowrap;
}

/* ---------- panel ---------- */
.panel{
  position:sticky; top:14px; background:var(--surface);
  border:1px solid var(--line); border-radius:3px; box-shadow:var(--shadow);
  max-height:calc(100vh - 28px); overflow-y:auto;
}
@media (max-width:1140px){.panel{position:static; max-height:none}}
.pad{padding:15px 16px}
.phead{border-bottom:1px solid var(--hair)}
.eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--faint); margin-bottom:5px;
}
.ptitle{font-family:Newsreader,Georgia,serif; font-size:19px; font-weight:600; line-height:1.2; color:var(--ink)}
.sect{border-top:1px solid var(--hair)}
.sect h4{
  margin:0 0 9px; font-size:10.5px; text-transform:uppercase; letter-spacing:.07em;
  color:var(--faint); font-weight:600;
}
.form{display:grid; grid-template-columns:74px 1fr; gap:8px 10px; align-items:center}
.form label{font-size:11px; color:var(--mut)}
.form select,.form input{width:100%}
dl{margin:0; display:grid; grid-template-columns:94px minmax(0,1fr); gap:6px 11px}
dt{font-size:10.5px; text-transform:uppercase; letter-spacing:.055em; color:var(--faint); font-weight:600; padding-top:2px}
dd{margin:0; font-size:12.5px; line-height:1.45}
.reflist{display:flex; flex-wrap:wrap; gap:4px}
.ref{
  font:500 11.5px/1 "IBM Plex Sans",sans-serif; cursor:pointer; text-align:left;
  background:var(--sunk); border:1px solid transparent; border-radius:2px;
  padding:5px 7px; color:var(--body); max-width:100%;
}
.ref:hover{border-color:var(--mut)}
.ref .mono{color:var(--faint); font-size:10.5px; margin-right:4px}
.none{font-size:12px; color:var(--faint); font-style:italic}
.dg{margin-bottom:12px}
.dh{display:flex; align-items:center; gap:7px; margin-bottom:3px}
.dpill{
  font-family:"IBM Plex Mono",monospace; font-size:10px; padding:2px 7px;
  border-radius:2px; color:var(--surface); background:var(--dc);
}
.dn{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--faint)}
.dp{font-size:11px; color:var(--mut); line-height:1.4; margin:0 0 6px}
.hint{font-size:11.5px; color:var(--faint); line-height:1.45}
.btn{
  font:500 12.5px/1 "IBM Plex Sans",sans-serif; cursor:pointer;
  background:var(--ink); color:var(--paper); border:1px solid var(--ink);
  border-radius:2px; padding:8px 12px;
}
.btn.ghost{background:transparent; color:var(--mut); border-color:var(--line)}
.btn.ghost:hover{border-color:var(--mut); color:var(--ink)}
.btn:disabled{opacity:.45; cursor:default}
.filerow{
  display:flex; align-items:center; gap:8px; padding:7px 0;
  border-bottom:1px solid var(--hair); font-size:12px;
}
.filerow:last-child{border-bottom:0}
.filerow a{color:var(--body); text-decoration:none; flex:1; min-width:0; overflow-wrap:anywhere}
.filerow a:hover{color:var(--gold); text-decoration:underline}
.rolechip{
  font-family:"IBM Plex Mono",monospace; font-size:9.5px; padding:2px 5px;
  border:1px solid var(--line); border-radius:2px; color:var(--mut); white-space:nowrap;
}
.hist{font-size:11.5px; line-height:1.5; color:var(--mut)}
.hist b{color:var(--body); font-weight:500}
.addfile{display:grid; gap:6px; margin-top:9px}
.addfile .row{display:flex; gap:6px}
.addfile input{flex:1; min-width:0}

footer{
  max-width:1760px; margin:0 auto; padding:2px 22px 24px;
  font-size:11.5px; color:var(--faint); line-height:1.5;
}
.toast{
  position:fixed; bottom:18px; left:50%; transform:translateX(-50%);
  background:var(--ink); color:var(--paper); font-size:12.5px;
  padding:10px 16px; border-radius:3px; box-shadow:var(--shadow); z-index:50;
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
