:root{
  --navy:#1a1a2e; --navy2:#2a2a48; --navy3:#34345a;
  --zluta:#FFEC00; --zluta-t:#1a1a2e;
  --bg:#12121f; --karta:#1e1e36; --karta2:#262646; --text:#ececf4; --muted:#9a9ab8; --border:#34345a;
  --ok:#7ed492; --chyba:#ff8a80;
  --sb:56px; --sb-open:220px; --max:1480px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;color:var(--text);background:var(--bg)}
a{color:inherit}
b{font-weight:600}

/* ---------- sidebar ---------- */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sb);background:var(--navy);color:#e6e6ef;
  display:flex;flex-direction:column;overflow:hidden;transition:width .18s ease;z-index:20;border-right:1px solid var(--navy3)}
.sidebar:hover,body.sb-open .sidebar{width:var(--sb-open)}
.sidebar a{display:flex;align-items:center;gap:14px;padding:11px 0 11px 16px;color:#c9c9dc;text-decoration:none;white-space:nowrap;border-left:3px solid transparent}
.sidebar a:hover{background:var(--navy2);color:#fff}
.sidebar a.akt{background:var(--navy2);color:#fff;border-left-color:var(--zluta)}
.sidebar .ti{font-size:21px;width:22px;text-align:center;flex-shrink:0}
.sb-text{opacity:0;transition:opacity .15s;display:flex;flex-direction:column;line-height:1.2}
.sidebar:hover .sb-text,body.sb-open .sb-text{opacity:1}
.sb-text small{font-size:11px;color:#9a9ab8}
.sb-logo{padding:14px 0 14px 12px !important;border-bottom:1px solid var(--navy3);margin-bottom:6px}
.sb-znak{width:30px;height:30px;background:var(--zluta);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-znak img{width:22px}
.sb-menu{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#34345a transparent}
.sb-menu::-webkit-scrollbar{width:6px}.sb-menu::-webkit-scrollbar-thumb{background:#34345a;border-radius:3px}
@media(max-height:920px){.sidebar a{padding-top:8px;padding-bottom:8px}.sb-logo{padding-top:10px !important;padding-bottom:10px !important}}
.sb-dole{border-top:1px solid var(--navy3);padding:6px 0}
.sb-toggle{display:none;position:fixed;top:10px;left:10px;z-index:30;background:var(--navy);color:#fff;border:0;border-radius:6px;width:40px;height:40px;font-size:22px}

/* ---------- obsah ---------- */
.obsah{margin-left:var(--sb);padding:24px 28px;min-height:100vh;transition:margin-left .18s ease}
.sidebar:hover ~ .obsah,body.sb-open .obsah{margin-left:var(--sb-open)}
.obsah>*{max-width:var(--max)}
body.bez-sb .obsah{margin-left:0;padding:0}
body.bez-sb .sidebar,body.bez-sb .sb-toggle{display:none}
body.bez-sb .obsah>*{max-width:none}
h1{font-size:22px;font-weight:600;margin:0 0 18px;color:#fff}
h2{font-size:17px;font-weight:600;margin:24px 0 10px}
.muted{color:var(--muted)}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:#1f3a26;color:var(--ok);border:1px solid #2e5d3a}
.flash.chyba{background:#3d2222;color:var(--chyba);border-color:#6b3535}
.hlavicka{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:var(--navy3);color:#d6d6e6}
.pill.zl{background:var(--zluta);color:var(--zluta-t)}
.pill.ok{background:#1f3a26;color:var(--ok)}
.pill.off{background:#3d2222;color:var(--chyba)}

/* ---------- tabulky a formuláře ---------- */
table.t{width:100%;border-collapse:collapse;background:var(--karta);border:1px solid var(--border);border-radius:10px;overflow:hidden;font-size:13.5px}
table.t th,table.t td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}
table.t th{background:var(--navy);font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}
table.t tr:last-child td{border-bottom:0}
table.t tr:target{background:#3a3a1a}
input,select,button,textarea{font:inherit}
input[type=text],input[type=password],input[type=date],select,textarea{height:34px;padding:0 10px;border:1px solid #4a4a6e;border-radius:6px;background:#f4f4f8;color:#1b1b22}
textarea{height:auto;padding:8px 10px}
input.kratky{width:110px}
.btn{height:34px;padding:0 14px;border:1px solid #4a4a6e;border-radius:6px;background:var(--navy2);color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.btn:hover{background:var(--navy3)}
.btn.hl{background:#fff;color:var(--navy);border-color:#fff}
.btn.hl:hover{background:#e6e6ef}
.btn.zl{background:var(--zluta);color:var(--zluta-t);border-color:var(--zluta);font-weight:600}
.btn.zl:hover{background:#ffe100}
.btn.mini{height:28px;padding:0 10px;font-size:12.5px}
form.inl{display:inline-flex;gap:6px;align-items:center;margin:0}
code{background:var(--navy3);padding:1px 6px;border-radius:4px;font-size:12.5px}

/* ---------- nástěnka ---------- */
.widgety{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.wg{background:#212140;border:1px solid #3a3a62;border-radius:12px;min-width:0;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.25);--akc:#8a8ab8}
.wg.s2{grid-column:span 2}
.wg header{display:flex;align-items:center;gap:10px;padding:9px 12px 9px 14px;background:#2a2a4c;border-bottom:1px solid #3a3a62;border-top:3px solid var(--akc)}
.wg header b{font-size:14.5px;color:#fff;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wg-ikona{width:26px;height:26px;border-radius:6px;background:var(--akc);color:#1a1a2e;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.wg-pozn{font-size:12px;white-space:nowrap}
.wg-akce{display:flex;align-items:center;gap:4px;flex-shrink:0}
.ib{width:28px;height:28px;border:0;background:transparent;color:var(--muted);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px}
.ib:hover{background:var(--navy3);color:#fff}
.wg-telo{padding:12px 18px 16px}
.wg.sbaleno .wg-telo{display:none}
.k-oznameni{--akc:#FFEC00}.k-kdo_v_praci{--akc:#7ed492}.k-zakazky{--akc:#78a9ff}.k-porady{--akc:#c792ea}.k-dovolene{--akc:#5dcaa5}.k-moje_karta{--akc:#b4b2c9}
.wg h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 6px;font-weight:600}
.wg p{margin:6px 0}
.cisla{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cisla div{background:var(--navy);border-radius:8px;padding:8px 14px;min-width:90px}
.cisla b{display:block;font-size:22px;color:#fff;line-height:1.1}
.cisla small{color:var(--muted);font-size:11px}
.cisla .varuj b{color:var(--chyba)}
.dva{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.radek{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.radek:last-child{border-bottom:0}
.radek>span:first-child{color:var(--zluta);font-variant-numeric:tabular-nums;min-width:52px;font-size:12.5px}
.radek.po>span:first-child{color:var(--chyba)}
.seznam{max-height:320px;overflow:auto}
.seznam div{display:flex;gap:8px;align-items:center;padding:3px 0;font-size:13.5px}
.seznam .muted{font-size:12px;margin-left:auto}
.tecka{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}
.tecka.on{background:var(--ok)}
table.kv{width:100%;font-size:13.5px;border-collapse:collapse}
table.kv td{padding:4px 0;vertical-align:top}
table.kv td:first-child{color:var(--muted);width:45%}
.ozn{padding:10px 12px;border-left:3px solid var(--navy3);background:var(--navy);border-radius:0 8px 8px 0;margin-bottom:8px}
.ozn.dul{border-left-color:var(--zluta)}
.ozn-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.ozn-h b{color:#fff}
.ozn-h .muted{font-size:12px}
.ozn-t{margin-top:4px;white-space:pre-line;font-size:13.5px;color:#d6d6e6}
.frm label{display:block;font-size:12.5px;color:var(--muted);margin:10px 0 4px}
.frm input[type=text],.frm input[type=date],.frm select,.frm textarea{width:100%}

/* ---------- brána: úvod + login ---------- */
.brana{min-height:100vh;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px}
.logo-blok{background:var(--zluta);color:var(--navy);border-radius:12px;padding:22px 34px;display:inline-flex}
.logo-blok img{height:64px;display:block}
.uvod-text{max-width:640px;text-align:center;margin-top:34px}
.uvod-text h1{font-size:36px;font-weight:600;margin:0 0 12px;color:#fff}
.uvod-text p{color:#c9c9dc;font-size:17px;line-height:1.55;margin:0 0 30px}
.btn-velky{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 36px;border-radius:12px;background:var(--zluta);color:var(--navy);font-weight:600;font-size:16px;text-decoration:none;transition:transform .12s,background .12s}
.btn-velky:hover{background:#ffe100;transform:translateY(-1px)}
.btn-velky .ti{font-size:20px}
.uvod-info{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:44px}
.uvod-info div{background:var(--navy2);border-radius:10px;padding:12px 18px;font-size:13px;color:#c9c9dc;min-width:150px}
.uvod-info b{display:block;color:#fff;font-size:15px}
.brana-dole{margin-top:auto;padding-top:28px;font-size:12px;color:#9a9ab8;display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.brana-dole a{color:#9a9ab8}

.karta-login{width:100%;max-width:400px;background:#fff;color:#1b1b22;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.karta-login .kl-logo{background:var(--zluta);color:var(--navy);padding:26px 0;display:flex;justify-content:center}
.karta-login .kl-logo img{height:44px}
.karta-login .kl-telo{padding:24px 28px 26px}
.karta-login h1{font-size:19px;margin:0 0 2px;color:#1b1b22}
.karta-login .muted{font-size:13px;margin-bottom:16px;color:#6b6b78;display:block}
.karta-login label{display:block;font-size:12.5px;color:#6b6b78;margin:12px 0 5px}
.karta-login input[type=text],.karta-login input[type=password]{width:100%;height:46px;font-size:16px;background:#f4f4f8;border:1px solid #dcdce4;border-radius:10px;padding:0 14px;color:#1b1b22}
.karta-login input:focus{outline:none;border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(26,26,46,.12)}
.karta-login input.pin{font-size:30px;letter-spacing:14px;text-align:center;font-family:ui-monospace,monospace;padding-left:28px}
.karta-login .btn-prihl{width:100%;height:48px;margin-top:20px;font-size:15px;font-weight:600;background:var(--navy);color:#fff;border:0;border-radius:10px;cursor:pointer}
.karta-login .btn-prihl:hover{background:var(--navy2)}
.karta-login .prepni{display:block;text-align:center;margin-top:16px;font-size:13px;color:#6b6b78}
.karta-login .err{background:#fdecea;color:#c62828;padding:9px 12px;border-radius:8px;font-size:13px;margin-top:12px}

@media (max-width:720px){
  .sidebar{width:0;border-right:0}
  body.sb-open .sidebar{width:var(--sb-open)}
  .sidebar:hover{width:0}
  body.sb-open .sidebar:hover{width:var(--sb-open)}
  .sb-toggle{display:block}
  .obsah{margin-left:0;padding:64px 14px 24px}
  .sidebar:hover ~ .obsah,body.sb-open .obsah{margin-left:0}
  body.bez-sb .obsah{padding:0}
  .widgety{grid-template-columns:1fr}.wg.s2{grid-column:span 1}
  .uvod-text h1{font-size:26px}
  .logo-blok{padding:16px 24px}.logo-blok img{height:44px}
}

/* --- moduly ve stavu brzy (10.9.2026) --- */
.sb-brzy{display:flex;align-items:center;gap:12px;padding:9px 16px;color:var(--muted);opacity:.5;cursor:default;user-select:none}
.sb-brzy .sb-text{display:flex;flex-direction:column;line-height:1.15}
.sb-brzy em{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}

/* widget Kdo je přihlášený */
.tecka.byl{background:#ffb74d}

/* ================================================================
   Sidebar – sjednocení výšek řádků a pomalejší vysouvání
   14. 9. 2026
   Připojeno na konec style.css, přepisuje pravidla z řádků 15–34 a 159–161.
   ================================================================ */

:root{
  --sb-anim: .42s cubic-bezier(.4, 0, .2, 1);
}

/* --- pomalejší vysouvání i zasouvání; obsah musí jet stejně jako panel --- */
.sidebar{transition: width var(--sb-anim)}
.obsah{transition: margin-left var(--sb-anim)}

/* --- jednotný řádek menu: odkaz i položka "připravujeme" --- */
.sidebar a,
.sb-brzy{
  display: flex;
  align-items: center;
  gap: 14px;
  height: 48px;
  min-height: 48px;
  flex-shrink: 0;
  padding: 0 0 0 16px;
  border-left: 3px solid transparent;
  box-sizing: border-box;
}

.sb-brzy{
  color: var(--muted);
  opacity: .5;
  cursor: default;
  user-select: none;
}

/* --- ikona: pevná stopa, ať nekolísá podle fontu --- */
.sidebar .ti,
.sb-brzy .ti{
  font-size: 21px;
  width: 22px;
  line-height: 1;
  text-align: center;
  flex-shrink: 0;
}

/* --- text: dvouřádkový se vejde do 48 px a nenafukuje řádek --- */
.sb-text,
.sb-brzy .sb-text{
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.15;
  overflow: hidden;
}

.sb-brzy em{
  font-style: normal;
  font-size: 9px;
  line-height: 1;
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .8;
}

/* --- text mizí rychle, objevuje se se zpožděním za šířkou panelu --- */
.sb-text{opacity: 0; transition: opacity .16s ease}
.sidebar:hover .sb-text,
body.sb-open .sb-text{opacity: 1; transition: opacity .2s ease .14s}

/* predel mezi provoznimi a spravcovskymi moduly v sidebaru */
.sb-predel{display:flex;align-items:center;gap:9px;margin:14px 14px 6px;
  font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#5a5a78}
.sb-predel::after{content:"";flex:1;height:1px;background:#2c2c44}
body.sb-uzky .sb-predel span,.sidebar:not(:hover) .sb-predel span{}

/* 090: plná šířka – obsah modulů využije celou šířku obrazovky (dříve max. 1480 px) */
main.obsah, .obsah, .obsah > * { max-width: none !important; }

/* 095 sidebar napevno rozbaleny (desktop) */
@media (min-width:721px){
  .sidebar,.sidebar:hover{width:var(--sb-open);transition:none}
  .obsah,.sidebar:hover ~ .obsah{margin-left:var(--sb-open);transition:none}
  .sidebar .sb-text,.sidebar:not(:hover) .sb-text{opacity:1}
}
