/* ============================================================
   Design tokens
   Chrome stays monochrome on purpose: in a compliance tool the
   only things that should carry colour are the data itself and
   the status of a finding. Everything else is neutral slate.
   ============================================================ */
:root{
  --bg:#e4e7ee;
  --surface:#f8f9fb;
  --surface-2:#eef0f5;
  --surface-3:#e2e6ee;

  --border:#d7dbe4;
  --border-strong:#c2c9d5;

  --text:#1e2633;
  --text-2:#4c5563;
  --text-3:#7c8697;

  --ink:#0f172a;
  --ink-2:#1e293b;
  --ink-3:#334155;

  /* activity palette */
  --c-rest:#2f9e6a;
  --c-drive:#6b4fc4;
  --c-work:#2b74cc;
  --c-avail:#dd8a2c;

  /* status */
  --ok:#157f4a;    --ok-bg:#e9f7ef;   --ok-br:#bce3ce;
  --warn:#b25e09;  --warn-bg:#fdf3e4; --warn-br:#f2d7ab;
  --bad:#c02626;   --bad-bg:#fdecea;  --bad-br:#f5c8c4;
  --info:#1f6fd0;  --info-bg:#ebf3fd; --info-br:#c5dcf8;

  /* brand accent (moderní indigo→violet) — nese ho interaktivní chrome */
  --brand:#5457e6; --brand-2:#7c3aed; --brand-strong:#4043c4;
  --brand-grad:linear-gradient(135deg,#5457e6,#7c3aed);
  --brand-soft:#e9eafb; --brand-soft-br:#d5d7f6;

  --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:26px;
  --sh-sm:0 1px 2px rgba(15,23,42,.04);
  --sh:0 1px 2px rgba(15,23,42,.05), 0 2px 6px rgba(15,23,42,.04);
  --sh-lg:0 12px 34px rgba(15,23,42,.12);

  /* Liquid Glass */
  --glass:rgba(255,255,255,.55);
  --glass-2:rgba(255,255,255,.40);
  --glass-strong:rgba(255,255,255,.72);
  --glass-border:rgba(255,255,255,.65);
  --glass-hair:rgba(255,255,255,.35);
  --glass-blur:saturate(185%) blur(32px);
  --glass-blur-sm:saturate(185%) blur(18px);
  --glass-sh:0 8px 30px rgba(37,42,90,.14), inset 0 1px 0 rgba(255,255,255,.6);
  --glass-sh-sm:0 4px 16px rgba(37,42,90,.10), inset 0 1px 0 rgba(255,255,255,.5);

  --mono:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  color:var(--text);
  font-family:var(--sans);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1200px 820px at 6% -8%, #d5e3f2 0%, transparent 56%),
    radial-gradient(1050px 760px at 108% 8%, #d8ebe6 0%, transparent 54%),
    radial-gradient(1100px 950px at 52% 112%, #dde8f1 0%, transparent 56%),
    radial-gradient(900px 700px at 86% 92%, #e2ebe2 0%, transparent 52%),
    linear-gradient(180deg,#edf0f5,#e7ebf1);
  background-attachment:fixed;
}
::selection{background:var(--brand-soft-br);}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px;}
.num,.stat .num,td,th,.meta,.kv dd{font-variant-numeric:tabular-nums;}

.app{display:grid;grid-template-columns:280px 1fr;min-height:100vh;}
@media (max-width:900px){.app{grid-template-columns:1fr;}}
/* desktop: levý panel ukotvený na výšku okna, roluje se jen obsah vpravo */
@media (min-width:901px){
  .sidebar{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;}
}

/* ---------------- Sidebar (světlá) ---------------- */
.sidebar{
  background:linear-gradient(160deg,rgba(255,255,255,.58),rgba(255,255,255,.38));
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  color:var(--text);border-right:1px solid var(--glass-border);
  padding:22px 16px 16px;display:flex;flex-direction:column;gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;padding-bottom:4px;}
.brand-mark{flex:none;display:block;border-radius:9px;box-shadow:0 2px 8px rgba(99,102,241,.32);}
.side-user{display:flex;align-items:center;gap:7px;margin:2px 0 10px;padding:7px 11px;border:1px solid var(--card-br,rgba(120,130,160,.18));border-radius:10px;background:rgba(255,255,255,.4);color:var(--text-2);font-size:12px;font-weight:600;}
.side-user svg{flex:none;color:var(--text-3);}
.side-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.side-nav{display:flex;flex-direction:column;gap:8px;}
.side-nav .btn-ico{width:100%;justify-content:flex-start;}
.side-nav #btnLogout{color:var(--text-2);}
.side-nav #btnLogout:hover{color:var(--bad);border-color:var(--bad-br);}
.brand .mark{
  width:28px;height:28px;border-radius:8px;flex:none;
  background:linear-gradient(140deg,#4f46e5,#7c3aed);
  position:relative;
}
.brand .mark::after{
  content:"";position:absolute;inset:8px 6px;border-radius:1px;
  background:#fff;opacity:.95;
  clip-path:polygon(0 55%,32% 55%,32% 20%,64% 20%,64% 75%,100% 75%,100% 100%,0 100%);
}
.brand h1{font-size:15px;margin:0;font-weight:700;letter-spacing:-.01em;color:var(--text);}
.brand small{color:var(--text-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;}

.dropzone{
  border:1.5px dashed var(--border-strong);border-radius:16px;
  padding:20px 12px;text-align:center;font-size:12.5px;color:var(--text-2);
  background:var(--glass-2);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);
  cursor:pointer;transition:border-color .15s,background .15s,color .15s;
}
.dropzone:hover,.dropzone.drag{border-color:var(--brand);background:rgba(84,87,230,.12);color:var(--brand-strong);}
.dropzone input{display:none;}
.dropzone .big{display:block;font-size:20px;margin-bottom:5px;color:var(--brand);opacity:.9;}

.driver-search{width:100%;font-size:13px;padding:9px 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:rgba(255,255,255,.85);color:var(--text);box-shadow:none;}
.driver-search:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none;}
.filelist{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;min-height:0;}
.filelist::-webkit-scrollbar{width:6px;}
.filelist::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px;}

.driver-card{
  background:var(--glass-2);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);
  border:1px solid var(--glass-hair);border-radius:16px;
  padding:12px 13px;cursor:pointer;transition:.13s;position:relative;box-shadow:var(--glass-sh-sm);
}
.driver-card:hover{border-color:var(--glass-border);background:var(--glass);}
.driver-card.active{border-color:rgba(84,87,230,.55);background:rgba(84,87,230,.14);box-shadow:0 0 0 1px rgba(84,87,230,.4) inset;}
.driver-card.active::before{
  content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;
  border-radius:0 3px 3px 0;background:var(--brand);
}
.driver-card .name{font-weight:650;font-size:13px;color:var(--text);margin-bottom:2px;letter-spacing:-.01em;padding-right:24px;}
.driver-card .meta{font-size:10.5px;color:var(--text-3);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.driver-card .badges{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}
.pill{font-size:10px;padding:2px 8px;border-radius:99px;font-weight:650;border:1px solid transparent;}
.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-br);}
.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-br);}
.pill.bad{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-br);}
.pill.neutral{background:var(--surface-3);color:var(--text-3);border-color:var(--border);}
.driver-card .rm{
  position:absolute;top:7px;right:7px;color:var(--text-3);font-size:14px;line-height:1;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  border-radius:7px;opacity:.65;transition:.12s;cursor:pointer;
}
.driver-card:hover .rm{opacity:1;}
.driver-card .rm:hover{color:var(--bad);background:var(--bad-bg);opacity:1;}
.sidebar-footer{font-size:10.5px;color:var(--text-3);border-top:1px solid var(--border);padding-top:12px;line-height:1.55;}
.empty-side{color:var(--text-3);font-size:12px;text-align:center;padding:22px 6px;}

/* ---------------- Main ---------------- */
.main{padding:30px 40px 64px;max-width:1840px;margin:0 auto;width:100%;min-width:0;}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap;}
.topbar h2{font-size:23px;margin:0 0 3px;font-weight:680;letter-spacing:-.02em;}
.topbar .sub{color:var(--text-2);font-size:13px;}

.welcome{
  border:1px solid var(--glass-border);border-radius:var(--r-xl);
  padding:64px 40px;text-align:center;color:var(--text-2);
  background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-sh);
}
.welcome h2{color:var(--text);font-size:21px;margin:0 0 10px;letter-spacing:-.02em;}
.welcome .steps{display:flex;justify-content:center;gap:30px;margin-top:30px;flex-wrap:wrap;}
.welcome .step{max-width:210px;font-size:12.5px;}
.welcome .step b{display:block;color:var(--text);font-size:13px;margin-bottom:4px;}

/* ---------------- Prázdný stav (bez vybraného řidiče) ---------------- */
.wl{max-width:520px;margin:6vh auto 0;text-align:center;padding:8px 8px 24px;}
.wl-ico{margin-bottom:16px;line-height:0;}
.wl-ico svg{filter:drop-shadow(0 8px 18px rgba(99,102,241,.35));border-radius:14px;}
.wl-title{font-size:25px;font-weight:750;margin:0 0 8px;letter-spacing:-.02em;color:var(--text);}
.wl-tag{margin:0 auto 24px;color:var(--text-2);font-size:14.5px;line-height:1.6;max-width:440px;}
.wl-drop{
  border:1.6px dashed var(--border-strong);border-radius:18px;padding:34px 22px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  color:var(--text-2);cursor:pointer;transition:.15s;
  background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(255,255,255,.35));
  backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);
}
.wl-drop:hover,.wl-drop.drag{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);}
.wl-drop-ic{color:var(--brand);line-height:0;margin-bottom:4px;}
.wl-drop-t{font-size:15px;font-weight:600;color:var(--text);}
.wl-drop:hover .wl-drop-t,.wl-drop.drag .wl-drop-t{color:var(--brand-strong);}
.wl-drop-s{font-size:12.5px;color:var(--text-3);}
.wl-demo{
  margin-top:16px;background:transparent;border:0;box-shadow:none;color:var(--brand);
  font-size:13.5px;font-weight:600;cursor:pointer;padding:6px 10px;border-radius:8px;
}
.wl-demo:hover{background:var(--brand-soft);color:var(--brand-strong);}

/* ---------------- Sidebar: home + demo dole ---------------- */
.side-home{width:100%;}
.side-foot{margin-top:auto;padding-top:12px;text-align:center;}
.linklike{background:transparent;border:0;box-shadow:none;color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:8px;}
.linklike:hover{background:var(--brand-soft);color:var(--brand-strong);}

/* ---------------- Dashboard (přehled) ---------------- */
.dash-head{margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.dash-head h2{font-size:23px;margin:0 0 3px;font-weight:700;letter-spacing:-.02em;}
.dash-head .sub{color:var(--text-2);font-size:13.5px;}
.dash-plan{display:flex;align-items:center;gap:10px;flex:none;
  background:linear-gradient(160deg,rgba(255,255,255,.6),rgba(255,255,255,.42));
  backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);
  border:1px solid var(--glass-border);border-radius:14px;padding:10px 14px;box-shadow:var(--glass-sh-sm);}
.dash-plan .ic{color:var(--brand);flex:none;}
.dash-plan b{display:block;font-size:13.5px;color:var(--text);}
.dash-plan small{display:block;font-size:11.5px;color:var(--text-3);margin-top:1px;}
.dash-plan{cursor:pointer;transition:border-color .12s, box-shadow .12s;}
.dash-plan:hover{border-color:var(--brand);box-shadow:0 4px 16px rgba(79,70,229,.18);}
.dash-plan.exp{border-color:var(--bad-br);}
.dash-plan.exp small{color:var(--bad);}
.dash-plan.exp .ic{color:var(--bad);}

/* ---------------- Ceník / tarify ---------------- */
.modal-xl{max-width:820px;}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:6px;}
.plan-card{position:relative;border:1px solid var(--border);border-radius:14px;padding:16px 14px;background:var(--surface);display:flex;flex-direction:column;gap:4px;text-align:center;}
.plan-card.cur{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset;background:var(--brand-soft);}
.plan-badge{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--brand);color:#fff;font-size:10px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;}
.plan-name{font-size:15px;font-weight:750;color:var(--text);margin-top:4px;}
.plan-desc{font-size:11.5px;color:var(--text-3);min-height:28px;}
.plan-price{font-size:13px;color:var(--text-2);margin-top:6px;}
.plan-price b{font-size:19px;color:var(--text);font-weight:750;}
.plan-price span{font-size:11px;color:var(--text-3);}
.plan-price-y{font-size:11.5px;color:var(--text-3);}
.plan-drivers{font-size:11.5px;color:var(--text-2);display:inline-flex;align-items:center;gap:4px;justify-content:center;margin:6px 0 10px;}
.plan-drivers .ic{color:var(--brand);}
.plan-card button{width:100%;margin-top:auto;}
.dash-empty{
  text-align:center;color:var(--text-2);padding:56px 20px;border-radius:var(--r-lg);
  background:linear-gradient(160deg,rgba(255,255,255,.6),rgba(255,255,255,.4));
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-sh-sm);
}
.dash-empty .ic{color:var(--brand);opacity:.55;margin-bottom:8px;}
.dash-empty p{margin:4px 0;}
.card-h-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.card-h-row h3{margin-bottom:0;}
.dl-basis{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600;display:inline-flex;align-items:center;gap:6px;}
.dl-basis select{text-transform:none;letter-spacing:0;font-weight:500;}
.dash-bars{display:flex;flex-direction:column;gap:9px;}
.dash-bar-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 3fr minmax(96px,auto);align-items:center;gap:12px;cursor:pointer;padding:3px 4px;border-radius:8px;transition:.1s;}
.dash-bar-row:hover{background:var(--brand-soft);}
.dash-bar-lbl{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dash-bar-track{height:12px;border-radius:7px;background:var(--surface-3);overflow:hidden;}
.dash-bar-fill{height:100%;border-radius:7px;background:var(--brand);}
.dash-bar-fill.has-bad{background:linear-gradient(90deg,var(--brand),var(--bad));}
.dash-bar-val{font-family:var(--mono);font-size:12.5px;font-weight:650;text-align:right;white-space:nowrap;}
.dash-edit{padding:5px 8px;display:inline-flex;}
.dash-edit .ic{color:var(--text-3);}
@media(max-width:640px){
  .dash-bar-row{grid-template-columns:1fr;gap:3px;}
  .dash-bar-val{text-align:left;}
}
@media(max-width:640px){
  .wl{margin-top:4vh;}
  .wl-title{font-size:22px;}
  .wl-drop{padding:28px 16px;}
}

.ic{flex:none;vertical-align:-3px;}

/* ---------------- Navigace (PC: horní ikonová lišta) ---------------- */
.navbar{
  display:flex;gap:3px;flex-wrap:wrap;margin-bottom:22px;padding:6px;
  background:linear-gradient(155deg,rgba(255,255,255,.7),rgba(255,255,255,.48));
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--glass-sh);
  position:sticky;top:12px;z-index:30;
}
.navpill{
  flex:1 1 0;min-width:0;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;
  font-size:13px;font-weight:550;color:var(--text-2);
  background:transparent;border:1px solid transparent;border-radius:12px;
  box-shadow:none;cursor:pointer;transition:.13s;white-space:nowrap;
}
.navpill .ic{color:var(--text-3);transition:color .13s;}
.navpill:hover{background:var(--glass-strong);color:var(--text);border-color:transparent;}
.navpill:hover .ic{color:var(--text-2);}
.navpill.on{background:var(--brand);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(84,87,230,.4), inset 0 1px 0 rgba(255,255,255,.35);}
.navpill.on .ic{color:#fff;}

/* spodní lišta (mobil) + sheet „Více" — skryté na PC */
.botnav,.navsheet{display:none;}

.card{
  background:linear-gradient(155deg,rgba(255,255,255,.66),rgba(255,255,255,.44));
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  border-radius:var(--r-lg);padding:20px 22px;margin-bottom:16px;box-shadow:var(--glass-sh);
}
.card h3{margin:0 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700;display:flex;align-items:center;gap:8px;}
.card h3::before{content:"";width:3px;height:12px;border-radius:2px;background:var(--brand);flex:none;}

.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:22px;}
.stat{
  min-width:0;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.46));
  backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);
  border:1px solid var(--glass-border);
  border-radius:var(--r-lg);padding:15px 16px;box-shadow:var(--glass-sh-sm);
  transition:transform .13s ease;
}
.stat:hover{transform:translateY(-1px);}
.stat.bad{border-color:var(--bad-br);}
.stat.warn{border-color:var(--warn-br);}
.stat.ok{border-color:var(--ok-br);}
.stat .num{font-size:24px;font-weight:700;font-family:var(--mono);letter-spacing:-.02em;line-height:1.15;}
.stat .lbl{font-size:9.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;margin-top:4px;font-weight:650;line-height:1.3;}
.stat.bad .num{color:var(--bad);}
.stat.warn .num{color:var(--warn);}
.stat.ok .num{color:var(--ok);}

.filterbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px;}
.filterbar label{font-size:11px;color:var(--text-3);display:flex;flex-direction:column;gap:4px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
input[type=date],select,input[type=text]{
  font-family:var(--sans);font-size:13px;padding:9px 12px;border-radius:var(--r-sm);
  border:1px solid var(--border-strong);background:rgba(255,255,255,.9);color:var(--text);
  box-shadow:0 1px 2px rgba(37,42,90,.05);transition:border-color .12s, box-shadow .12s;
}
select{
  appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%2714%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%234c5563%27 stroke-width=%272.2%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><path d=%27M6 9l6 6 6-6%27/></svg>");
  background-repeat:no-repeat;background-position:right 11px center;
}
input[type=date]:focus,select:focus,input[type=text]:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none;}
button{
  font-family:var(--sans);font-size:12.5px;font-weight:600;padding:9px 15px;
  border-radius:var(--r-sm);border:1px solid var(--ink);background:var(--ink);color:#fff;
  cursor:pointer;transition:.12s;box-shadow:none;
}
button:hover{background:var(--ink-3);border-color:var(--ink-3);}
button.ghost{background:rgba(255,255,255,.9);color:var(--text);border-color:var(--border-strong);box-shadow:0 1px 2px rgba(37,42,90,.06);}
button.ghost:hover{background:#fff;border-color:var(--text-3);}
button.ghost .ic{color:var(--text-3);}
.btn-ico{display:inline-flex;align-items:center;gap:7px;}
.btn-ico .ic{color:var(--text-3);}

/* ---------------- Mobilní app bar + zásuvka ---------------- */
.appbar{display:none;}
.appbar-menu{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;border-radius:10px;
  background:transparent;border:1px solid transparent;color:var(--text-2);box-shadow:none;
}
.appbar-menu:hover{background:var(--surface-3);border-color:transparent;}
.appbar-brand{display:flex;align-items:center;gap:9px;min-width:0;}
.appbar-brand .mark{width:24px;height:24px;border-radius:7px;flex:none;background:linear-gradient(140deg,#4f46e5,#7c3aed);position:relative;}
.appbar-brand .mark::after{content:"";position:absolute;inset:7px 5px;border-radius:1px;background:#fff;opacity:.95;clip-path:polygon(0 55%,32% 55%,32% 20%,64% 20%,64% 75%,100% 75%,100% 100%,0 100%);}
.appbar-title{font-weight:650;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;}
.backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:80;opacity:0;transition:opacity .2s;}
.backdrop.show{display:block;opacity:1;}
.drawer-x{display:none;margin-left:auto;width:38px;height:38px;padding:0;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:10px;box-shadow:none;flex:none;}
.drawer-x:hover{background:var(--surface-3);border-color:var(--border-strong);color:var(--text);}

/* ---------------- Spodní navigace (mobil) ---------------- */
@media(max-width:900px){
  .appbar{
    display:flex;align-items:center;gap:12px;position:fixed;top:0;left:0;right:0;height:56px;
    padding:0 12px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
    border-bottom:1px solid var(--glass-hair);z-index:90;
    padding-top:env(safe-area-inset-top);
  }
  .app{grid-template-columns:1fr;}
  .main{padding:calc(56px + env(safe-area-inset-top) + 16px) 16px calc(76px + env(safe-area-inset-bottom));}
  /* postranní panel = výsuvná zásuvka zleva */
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;width:min(84vw,320px);z-index:85;
    transform:translateX(-100%);transition:transform .24s ease;
    box-shadow:0 0 40px rgba(0,0,0,.4);overflow-y:auto;
    padding-top:calc(16px + env(safe-area-inset-top));
  }
  .sidebar.open{transform:none;}
  .drawer-x{display:inline-flex;}
  .navbar{display:none;}
  .botnav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:88;
    background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
    border-top:1px solid var(--glass-hair);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -6px 24px rgba(37,42,90,.10);
  }
  .botbtn{
    flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
    padding:5px 2px;background:transparent;border:0;box-shadow:none;border-radius:10px;
    color:var(--text-3);font-size:10.5px;font-weight:600;letter-spacing:.01em;min-width:0;
  }
  .botbtn .ic{color:var(--text-3);transition:color .13s;}
  .botbtn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .botbtn.on{color:var(--brand);}
  .botbtn.on .ic{color:var(--brand);}
  /* sheet „Více" */
  .navsheet{display:block;position:fixed;inset:0;z-index:95;visibility:hidden;}
  .navsheet.open{visibility:visible;}
  .navsheet-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.5);opacity:0;transition:opacity .2s;}
  .navsheet.open .navsheet-backdrop{opacity:1;}
  .navsheet-panel{
    position:absolute;left:0;right:0;bottom:0;
    background:var(--glass-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
    border-top:1px solid var(--glass-border);
    border-radius:22px 22px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));
    transform:translateY(100%);transition:transform .26s ease;box-shadow:0 -12px 40px rgba(37,42,90,.22);
  }
  .navsheet.open .navsheet-panel{transform:none;}
  .navsheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
  .navsheet-head b{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);}
  .sheet-x{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;box-shadow:none;color:var(--text-2);border-radius:10px;}
  .sheet-x:hover{background:var(--surface-3);}
  .navsheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  .sheetitem{
    display:flex;flex-direction:column;align-items:center;gap:7px;padding:16px 6px;
    background:var(--glass-2);border:1px solid var(--glass-hair);border-radius:16px;box-shadow:none;
    color:var(--text-2);font-size:12px;font-weight:600;
  }
  .sheetitem .ic{color:var(--text-3);}
  .sheetitem.on{background:var(--brand);color:#fff;border-color:transparent;}
  .sheetitem.on .ic{color:#fff;}
  /* topbar: jméno je už v app baru, tady zmenšit a nechat detail + akce */
  .topbar{margin-bottom:16px;gap:12px;}
  .topbar h2{font-size:18px;}
  .toolbar-right{gap:6px;}
}
@media(max-width:560px){
  .btn-ico{padding:9px 11px;}
  .btn-ico span{display:none;}
  .topbar-id h2{font-size:17px;}
}

/* ---------------- Calendar ---------------- */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-head .month-label{font-weight:660;font-size:15px;letter-spacing:-.01em;}
.cal-nav{display:flex;gap:6px;}
.cal-nav button{padding:6px 11px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-dow{font-size:10px;text-transform:uppercase;color:var(--text-3);text-align:center;padding-bottom:3px;letter-spacing:.07em;font-weight:650;}
.cal-grid{gap:8px;}
.cal-day{
  min-height:94px;border-radius:14px;border:1px solid rgba(96,105,135,.22);
  padding:9px 11px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:6px;
  background:rgba(255,255,255,.72);box-shadow:0 1px 2px rgba(37,42,90,.05);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
/* status accent bar on the left edge */
.cal-day::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;}
.cal-day.is-worked::before{background:#6366f1;}
.cal-day.status-bad::before{background:#ef4444;}
.cal-day.status-warn::before{background:#f59e0b;}

.cal-day.empty{background:transparent;border-color:transparent;}
.cal-day.has-data{cursor:pointer;}
.cal-day.has-data:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.09);border-color:#cbd5e1;}
.cal-day .d{font-family:var(--mono);font-weight:600;color:#94a3b8;font-size:12px;}

/* day fills: worked (soft indigo), free (soft slate), findings, no-data */
.cal-day.is-worked{background:rgba(255,255,255,.82);border-color:rgba(96,105,135,.26);}
.cal-day.is-free{background:rgba(255,255,255,.5);border-color:rgba(96,105,135,.18);}
.cal-day.status-warn{background:#fffbeb;border-color:#fde68a;}
.cal-day.status-bad{background:#fef2f2;border-color:#fecaca;}
.cal-day.status-nodata{background:var(--surface-3);border-color:var(--border);}

/* named metric rows: coloured dot + value + tiny label */
.cal-metrics{display:flex;flex-direction:column;gap:3px;margin-top:auto;}
.m-item{display:flex;align-items:baseline;gap:6px;}
.m-item::before{content:"";width:6px;height:6px;border-radius:50%;flex:0 0 auto;transform:translateY(-1px);}
.m-work::before{background:#6366f1;}
.m-rest::before{background:#14b8a6;}
.m-item .m-val{font-family:var(--mono);font-weight:700;font-size:13.5px;letter-spacing:-.2px;}
.m-work .m-val{color:#4f46e5;}
.m-rest .m-val{color:#0d9488;}
.m-item .m-lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:650;color:#a2adbd;}
.m-flag{margin-top:auto;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:650;color:#b4bdca;}
.m-flag.m-nodata{color:#94a3b8;}
.m-flag.m-viol{color:#c02626;}

/* findings recolour the numbers to match the accent */
.cal-day.status-bad .m-val,.cal-day.status-bad .d{color:#dc2626;}
.cal-day.status-warn .m-val,.cal-day.status-warn .d{color:#b45309;}

.cal-day.selected{border-color:#0f172a!important;box-shadow:0 0 0 2px rgba(15,23,42,.14);}

/* ---- Agenda (mobilní kalendář jako seznam dní) ---- */
.cal-agenda{display:none;flex-direction:column;gap:8px;}
.agenda-day{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:rgba(255,255,255,.72);border:1px solid rgba(96,105,135,.2);
  border-radius:14px;padding:11px 13px;box-shadow:var(--glass-sh-sm);
  color:var(--text);font-family:var(--sans);cursor:pointer;transition:.12s;
}
.agenda-day:hover{background:#fff;}
.agenda-day.selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft);}
.agenda-day.status-bad{border-color:var(--bad-br);background:linear-gradient(180deg,var(--bad-bg),rgba(255,255,255,.72));}
.agenda-day.status-warn{border-color:var(--warn-br);background:linear-gradient(180deg,var(--warn-bg),rgba(255,255,255,.72));}
.agenda-day.status-nodata{opacity:.72;}
.ag-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:38px;flex:none;line-height:1.1;}
.ag-date b{font-size:17px;font-weight:700;font-family:var(--mono);}
.ag-date small{font-size:9.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;}
.ag-body{flex:1;font-size:13px;font-weight:600;font-family:var(--mono);color:var(--text-2);min-width:0;}
.ag-badge{flex:none;font-size:10.5px;font-weight:650;padding:3px 9px;border-radius:99px;border:1px solid transparent;}
.ag-badge.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-br);}
.ag-badge.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-br);}
.ag-badge.bad{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-br);}
.ag-badge.neutral{background:var(--surface-3);color:var(--text-3);border-color:var(--border);}
.ag-empty{color:var(--text-3);font-size:13px;padding:16px 4px;text-align:center;}

.cal-legend{display:flex;gap:14px 18px;margin-top:16px;font-size:11.5px;color:var(--text-2);flex-wrap:wrap;}
.cal-legend span{display:inline-flex;align-items:center;gap:7px;}
.cal-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;}
.cal-legend i.dot{border-radius:50%;}
/* locations tab */
.loc-map{height:360px;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-bottom:12px;z-index:0;}
.loc-summary{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px;font-size:13px;color:var(--text-2);}
.loc-summary b{color:var(--text);font-size:16px;font-family:var(--mono);}
.loc-legend{display:flex;gap:14px 16px;flex-wrap:wrap;font-size:11.5px;color:var(--text-2);}
.loc-legend span{display:inline-flex;align-items:center;gap:6px;}
.loc-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;}
.loc-legend i.dot{border-radius:50%;}
@media(max-width:640px){.loc-map{height:300px;}}
/* collapsible technical blocks */
details.tech-blocks > summary{cursor:pointer;font-weight:650;font-size:14px;color:var(--text-2);list-style:revert;}
details.tech-blocks > summary:hover{color:var(--text);}
details.tech-blocks[open] > summary{margin-bottom:12px;color:var(--text);}
/* card tab hero */
.card-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.hero-name{margin:0;font-size:22px;color:var(--text);}
.hero-sub{margin-top:4px;color:var(--text-2);font-family:var(--mono);font-size:13px;}
.hero-badge{text-align:right;font-size:12px;}
/* toasts */
#tachoToasts{position:fixed;right:16px;bottom:16px;z-index:9500;display:flex;flex-direction:column;gap:8px;}
.toast{background:#1f2937;color:#fff;padding:10px 14px;border-radius:10px;font-size:13px;box-shadow:0 8px 24px rgba(15,23,42,.25);opacity:0;transform:translateY(8px);transition:.25s;max-width:320px;}
.toast.show{opacity:1;transform:none;}
.toast-ok{background:#157f4a;} .toast-bad{background:#c02626;} .toast-info{background:#1f2937;}
/* busy / loading */
#tachoBusy{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(10px);z-index:9400;background:#0f172a;color:#fff;padding:9px 16px;border-radius:999px;font-size:13px;display:none;align-items:center;gap:10px;box-shadow:0 8px 24px rgba(15,23,42,.25);}
#tachoBusy.show{display:inline-flex;transform:translateX(-50%);}
#tachoBusy .spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:tspin .7s linear infinite;flex:none;}
@keyframes tspin{to{transform:rotate(360deg)}}
/* violations summary banner */
.vio-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:10px 14px;border-radius:10px;margin-bottom:18px;font-size:13px;border:1px solid;}
.vio-banner.ok{background:#e9f7ef;border-color:#bce3ce;color:#157f4a;}
.vio-banner.warn{background:#fdf3e4;border-color:#f2d7ab;color:#b25e09;}
.vio-banner.bad{background:#fdecea;border-color:#f5c8c4;color:#c02626;}
.vio-banner .vb-head{font-weight:700;}
.vio-banner .vb-sub{color:var(--text-2);font-weight:500;}
/* welcome CTA */
.welcome-cta{margin-top:22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
button.primary{background:var(--brand);color:#fff;border:0;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:none;}
button.primary:hover{background:var(--brand-strong);}
/* modal (údaje firmy) */
.modal-overlay{position:fixed;inset:0;z-index:9600;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px;}
.modal{background:var(--glass-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--r-lg);padding:22px 22px 18px;width:100%;max-width:440px;box-shadow:var(--glass-sh);max-height:90vh;overflow:auto;}
.modal h3{margin:0 0 6px;}
.modal label{display:block;font-size:12px;font-weight:600;color:#334155;margin:10px 0 4px;}
.modal input{width:100%;padding:9px 11px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;box-sizing:border-box;}
.modal select{width:100%;padding:9px 32px 9px 11px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;box-sizing:border-box;height:auto;line-height:1.35;background-color:#fff;}
.modal-two{align-items:start;}
.modal input:focus{outline:2px solid #2563eb;border-color:#2563eb;}
.modal-two{display:flex;gap:10px;} .modal-two label{flex:1;}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}
.modal-lg{max-width:540px;}
.admin-sec{border:1px solid var(--border);border-radius:14px;padding:14px 14px 6px;margin-top:12px;background:rgba(255,255,255,.4);}
.admin-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);margin-bottom:8px;}
.admin-h .ic{color:var(--brand);}
.admin-note{text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-3);font-size:11px;}
.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 10px;}
.admin-row b{display:block;font-size:13.5px;color:var(--text);}
.admin-row small{display:block;font-size:11.5px;color:var(--text-3);margin-top:1px;}
.admin-row .ghost{flex:none;}
.admin-two-btn{display:flex;gap:8px;align-items:flex-end;}
.admin-two-btn label{flex:1;margin-top:10px;}
.admin-two-btn button{flex:none;height:38px;white-space:nowrap;}
#ac-del{color:var(--bad);border-color:var(--bad-br);}
#ac-del:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad);}
.admin-sec button:disabled,.admin-sec select:disabled{opacity:.5;cursor:not-allowed;}

/* ---------------- Tables ---------------- */
table{width:100%;border-collapse:collapse;font-size:12.5px;}
th{
  text-align:left;padding:11px 14px;border-bottom:1px solid var(--glass-hair);
  font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);
  white-space:nowrap;position:sticky;top:0;
  background:rgba(255,255,255,.55);backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);
  font-weight:650;z-index:1;
}
td{padding:10px 14px;border-bottom:1px solid var(--glass-hair);white-space:nowrap;vertical-align:top;font-family:var(--mono);font-size:12px;}
tbody tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(255,255,255,.4);}
.tablewrap{overflow-x:auto;max-height:540px;overflow-y:auto;border:1px solid var(--glass-border);border-radius:var(--r-lg);background:var(--glass);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);box-shadow:var(--glass-sh-sm);}
.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:10.5px;font-weight:650;font-family:var(--sans);border:1px solid transparent;}
.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-br);}
.tag.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-br);}
.tag.bad{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-br);}
.tag.info{background:var(--info-bg);color:var(--info);border-color:var(--info-br);}
.tag.neutral{background:var(--surface-3);color:var(--text-3);border-color:var(--border);}
tr.row-click{cursor:pointer;}
tr.row-click:hover td{background:var(--brand-soft);}
tr.row-nodata td{color:var(--text-3);background:var(--surface-2);}
th.th-sort{cursor:pointer;user-select:none;white-space:nowrap;transition:color .1s;}
th.th-sort:hover{color:var(--text);}
th.th-sort.th-active{color:var(--text);}
th .th-arr{font-size:10px;color:var(--info);}
.th-ord{font-size:8px;color:var(--info);margin-left:1px;vertical-align:super;}

/* ---------------- Findings ---------------- */
.violation-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:7px;}
.violation-list li{
  font-size:12.5px;padding:9px 12px;border-radius:var(--r-sm);
  display:flex;justify-content:space-between;gap:12px;border:1px solid transparent;
}
.violation-list li.sev-bad{background:var(--bad-bg);color:#8f2020;border-color:var(--bad-br);}
.violation-list li.sev-warn{background:var(--warn-bg);color:#8a4907;border-color:var(--warn-br);}
.violation-list li.sev-info{background:var(--info-bg);color:#17558f;border-color:var(--info-br);}
.violation-list .d{font-family:var(--mono);font-weight:650;white-space:nowrap;opacity:.75;}
.violation-list.empty-msg,p.empty-msg{color:var(--ok);background:none;padding:0;font-size:12.5px;}

.notice{
  font-size:12.5px;color:var(--text-2);background:var(--warn-bg);border:1px solid var(--warn-br);
  border-radius:var(--r);padding:11px 14px;margin-bottom:18px;line-height:1.55;
}
.notice b{color:var(--warn);}
.errbox{font-size:12.5px;color:var(--bad);background:var(--bad-bg);border:1px solid var(--bad-br);border-radius:var(--r);padding:11px 14px;margin-top:8px;}
.toolbar-right{margin-left:auto;display:flex;gap:8px;}
.small-note{font-size:11.5px;color:var(--text-3);margin-top:8px;}
.section-desc{font-size:12.5px;color:var(--text-2);margin:-6px 0 16px;}
.raw-tag{font-family:var(--mono);font-size:11px;color:var(--text-3);}
.kv{display:grid;grid-template-columns:170px 1fr;gap:8px 16px;font-size:13px;}
.kv dt{color:var(--text-3);}
.kv dd{margin:0;font-family:var(--mono);}

/* ---------------- Day sheet ---------------- */
.daydetail{border-top:1px solid var(--border);margin-top:18px;padding-top:18px;position:relative;}
#dayDetailCard .daydetail{border-top:0;margin-top:0;padding-top:0;}
.kb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.kb-title{margin:0;font-size:15px;color:var(--text);font-weight:660;letter-spacing:-.01em;text-transform:none;}
.kb-sub{font-size:12px;color:var(--text-3);margin-top:2px;font-family:var(--mono);}
.kb-chartwrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;margin-bottom:4px;border-radius:var(--r);}
.kb-chart{
  width:100%;max-width:none;min-width:560px;height:auto;display:block;
  border:1px solid var(--border-strong);border-radius:var(--r);background:rgba(255,255,255,.88);
  touch-action:none;box-shadow:var(--sh-sm);
}
.show-graph-btn{display:none;align-items:center;gap:8px;margin-bottom:12px;}

/* graf dne na celou obrazovku (mobil) */
.graph-overlay{position:fixed;inset:0;z-index:9700;background:rgba(11,15,25,.94);display:flex;flex-direction:column;}
.go-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#fff;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px;}
.go-title{font-weight:650;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.go-actions{display:flex;gap:8px;flex:none;}
.go-actions .ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:none;box-shadow:none;padding:8px 12px;}
.go-actions .ghost:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.4);}
.go-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.go-rot{transform:rotate(90deg);display:flex;}
.go-img{display:block;background:#fff;border-radius:10px;width:88vh;height:auto;box-shadow:0 12px 44px rgba(0,0,0,.55);}
.go-loading{color:#cdd6e4;font-size:13px;transform:rotate(-90deg);white-space:nowrap;}
.go-hint{color:#9aa6bd;font-size:11.5px;text-align:center;padding:0 16px calc(12px + env(safe-area-inset-bottom));}

@media(max-width:680px){
  .kb-chartwrap{display:none;}
  .show-graph-btn{display:inline-flex;}
}
.kb-hour{font-family:var(--mono);font-size:10.5px;fill:var(--text-3);}
.kb-bar{transition:opacity .13s ease;}
.kb-bar.dim{opacity:.12;}
.kb-bar.on{stroke:var(--ink) !important;stroke-width:1.7 !important;}
.kb-bar-bad{stroke:var(--bad) !important;stroke-width:1.6 !important;stroke-dasharray:3.5 2.5;}
.kb-durlbl{
  font-family:var(--mono);font-size:10px;font-weight:700;
  pointer-events:none;transition:opacity .13s ease;letter-spacing:-.03em;
}
.kb-durlbl.dim{opacity:.12;}
.kb-marklbl{font-family:var(--mono);font-size:9.5px;font-weight:700;}
.kb-row{transition:fill .13s ease;}
.kb-row.on{fill:#f2f7ff;}
.kb-ico{color:var(--text-3);cursor:pointer;transition:opacity .13s ease,color .13s ease;}
.kb-ico:hover{color:var(--ink);}
.kb-ico.muted{opacity:.25;}

.kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:9px;margin:14px 0 10px;}
.kb-box{
  display:flex;align-items:center;gap:10px;border:1px solid var(--border);
  border-radius:var(--r);padding:11px 13px;background:var(--surface);transition:.13s;
}
.kb-box[data-act]{cursor:pointer;}
.kb-box[data-act]:hover{border-color:var(--text-3);box-shadow:var(--sh);}
.kb-box.active{border-color:var(--ink);box-shadow:0 0 0 2px rgba(15,23,42,.14);}
.kb-box b{display:block;font-family:var(--mono);font-size:17px;font-weight:700;line-height:1.15;letter-spacing:-.02em;}
.kb-box small{display:block;font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-weight:600;}
.kb-box.kb-total{background:var(--surface-3);}
.kb-ico-sm{flex:none;line-height:0;}
.kb-box[data-act="REST"] .kb-ico-sm{color:var(--c-rest);}
.kb-box[data-act="AVAILABILITY"] .kb-ico-sm{color:var(--c-avail);}
.kb-box[data-act="WORK"] .kb-ico-sm{color:var(--c-work);}
.kb-box[data-act="DRIVING"] .kb-ico-sm{color:var(--c-drive);}

.kb-legend-note{font-size:11.5px;color:var(--text-3);margin:-2px 0 12px;}
.kb-hint{margin-left:8px;color:var(--info);font-weight:600;text-decoration:none;}
.kb-hint:hover{text-decoration:underline;}
.kb-marknote{
  font-size:11.5px;color:#8f2020;background:var(--bad-bg);border:1px solid var(--bad-br);
  border-radius:var(--r);padding:9px 12px;margin:12px 0 4px;line-height:1.55;
}
.kb-marknote-ico{display:inline-block;width:22px;height:0;vertical-align:middle;border-top:2px solid var(--bad);margin-right:6px;}
.seg{display:inline-flex;border:1px solid var(--glass-border);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--glass-sh-sm);background:var(--glass);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);}
.seg-btn{
  border:0;border-radius:0;background:transparent;color:var(--text-2);
  padding:8px 14px;box-shadow:none;font-weight:600;
}
.seg-btn + .seg-btn{border-left:1px solid var(--border);}
.seg-btn:hover{background:var(--surface-3);}
.seg-btn.on{background:var(--brand);color:#fff;}
.seg-btn.on:hover{background:var(--brand-strong);}
.chk{
  display:inline-flex !important;flex-direction:row !important;align-items:center;gap:7px;
  text-transform:none !important;letter-spacing:0 !important;font-size:12.5px !important;
  color:var(--text-2) !important;cursor:pointer;padding-bottom:2px;
}
.chk input{accent-color:var(--ink);width:15px;height:15px;cursor:pointer;}
.mini-bar{display:flex;width:96px;height:9px;border-radius:5px;overflow:hidden;background:var(--surface-3);}
.mini-bar i{display:block;height:100%;}
tfoot .sum-row td{
  border-top:2px solid var(--border-strong);border-bottom:none;
  background:var(--surface-2);font-weight:650;position:sticky;bottom:0;
}
.dec-val{font-family:var(--mono);font-size:10.5px;color:var(--text-3);letter-spacing:-.02em;}
.dec-val.c-over{color:var(--warn);opacity:.85;}
.dec-val.c-hol{color:var(--bad);opacity:.85;}
.stat .sub-num{font-family:var(--mono);font-size:11.5px;color:var(--text-3);line-height:1.2;margin-top:1px;}
.c-over{color:var(--warn);}
.c-hol{color:var(--bad);}
tr.row-sel td{background:var(--brand-soft) !important;box-shadow:inset 3px 0 0 var(--brand);}
.muted-cell{color:var(--text-3);font-size:11px;}
.kb-note{
  font-size:11.5px;color:var(--text-2);background:var(--surface-3);
  border:1px solid var(--border);border-radius:var(--r);
  padding:9px 12px;margin:12px 0 4px;line-height:1.55;
}
.nodata-msg{font-size:13px;color:var(--text-2);background:var(--surface-3);border-radius:var(--r);padding:15px 17px;}

.kb-tip{
  position:absolute;z-index:40;pointer-events:none;
  background:var(--ink);color:#fff;border-radius:var(--r);
  padding:9px 12px;min-width:138px;box-shadow:var(--sh-lg);
}
.kb-tip b{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;margin-bottom:3px;}
.kb-swatch{width:9px;height:9px;border-radius:2px;flex:none;}
.kb-tip-row{display:block;font-family:var(--mono);font-size:12px;color:#a9b6cb;}
.kb-tip-dur{display:block;font-family:var(--mono);font-size:20px;font-weight:700;line-height:1.2;margin-top:2px;letter-spacing:-.02em;}
.kb-tip-sub{display:block;font-size:11.5px;color:#dbe3f0;margin-top:3px;font-weight:500;}
.kb-tip-bad{display:block;font-size:10.5px;color:#f58a83;margin-top:6px;border-top:1px solid #2b3a55;padding-top:5px;}

/* ---------------- Responzivita: mezistupně ---------------- */
@media(max-width:1180px){
  .main{padding:26px 24px 64px;}
  .stat .num{font-size:21px;}
}
@media(max-width:820px){
  .stat-row{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;}
  .stat{padding:13px 14px;}
  .stat .num{font-size:19px;}
  .cal-grid{gap:5px;}
  .cal-day{min-height:78px;padding:6px 6px;border-radius:11px;}
  .cal-day .d{font-size:11px;}
  .cal-metrics{gap:1px;}
  .m-item .m-val{font-size:11px;}
  .m-item .m-lbl{display:none;}
  .m-flag{font-size:9px;}
  .cal-dow{font-size:9px;}
  .kb-chart{min-width:560px;}
}
@media(max-width:680px){
  /* kalendář jako agenda (seznam dní) místo mřížky */
  .cal-grid{display:none;}
  .cal-agenda{display:flex;}
  .cal-legend{display:none;}
}
@media(max-width:460px){
  .cal-legend{font-size:10.5px;gap:8px 12px;}
  .ag-body{font-size:12px;}
}

@media print{
  body{background:#fff;}
  body *{visibility:hidden;}
  #printArea,#printArea *{visibility:visible;}
  #printArea{position:absolute;left:0;top:0;width:100%;padding:0;border:0;margin:0;}
  .no-print,.kb-tip{display:none !important;}
  .kb-bar.dim,.kb-durlbl.dim{opacity:1 !important;}
  .kb-row.on{fill:#fff !important;}
}

/* VU — seznam řidičů v osádce na záložce Vozidlo */
.vu-drivers{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.vu-drivers li{padding:8px 12px;background:var(--glass-2,rgba(255,255,255,.5));border:1px solid var(--line,rgba(15,23,42,.08));border-radius:10px}

/* Pod-navigace přehledu + CRM analytika (Řidiči / Vozidla) */
.dash-subnav{display:flex;gap:8px;margin:4px 0 14px;flex-wrap:wrap}
.subpill{padding:8px 16px;border-radius:12px;border:1px solid var(--line,rgba(15,23,42,.1));
  background:var(--glass-2,rgba(255,255,255,.55));color:var(--text,#0f172a);font-weight:600;cursor:pointer}
.subpill.on{background:#5457e6;border-color:#5457e6;color:#fff}
.crm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.crm-card{padding:16px;border-radius:16px;border:1px solid var(--line,rgba(15,23,42,.08));
  background:var(--glass,rgba(255,255,255,.6));cursor:pointer;transition:transform .1s,box-shadow .1s}
.crm-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.10)}
.crm-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:16px}
.crm-sub{color:var(--muted,#64748b);font-size:13px;margin:2px 0 12px}
.crm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}
.crm-grid>div{background:var(--glass-2,rgba(255,255,255,.5));border-radius:10px;padding:8px 4px}
.crm-grid b{display:block;font-size:16px}
.crm-grid small{color:var(--muted,#64748b);font-size:11px}
.crm-foot{margin-top:12px;font-size:12.5px;color:var(--muted,#64748b);line-height:1.5}
@media(max-width:520px){.crm-list{grid-template-columns:1fr}}

/* CRM karty — přidání, úprava, skládané řádky */
.crm-h{align-items:flex-start}
.crm-h-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.crm-edit{border:1px solid var(--line,rgba(15,23,42,.12));background:#fff;border-radius:8px;padding:4px 6px;cursor:pointer;color:#5457e6;display:inline-flex}
.crm-edit:hover{background:#eef0ff}
.crm-foot{display:flex;flex-direction:column;gap:3px}
.crm-grid small{line-height:1.15}
.crm-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;
  border:2px dashed var(--line,rgba(15,23,42,.18));background:transparent;color:#5457e6;font-weight:600;cursor:pointer}
.crm-add:hover{background:rgba(84,87,230,.06);border-color:#5457e6}
.crm-plus{font-size:32px;line-height:1;font-weight:400}
.admin-panel .admin-sec{margin-bottom:16px}

/* Administrace jako panel — stejné formulářové styly jako v modalu */
.admin-panel label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin:10px 0 4px;}
.admin-panel input,.admin-panel select{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:8px;font-size:14px;box-sizing:border-box;background:#fff;}
.admin-panel select{padding-right:32px;line-height:1.35;}
.admin-panel input:focus,.admin-panel select:focus{outline:2px solid var(--brand);border-color:var(--brand);}
.admin-panel .admin-note{font-weight:400;color:var(--text-3);}
.admin-grid{display:grid;gap:10px 12px;}
.admin-grid.cols-2{grid-template-columns:1fr 1fr;}
.admin-grid.addr{grid-template-columns:2.2fr 1fr 1.6fr 1.2fr;}
.admin-grid label{margin-top:0;}
@media(max-width:760px){.admin-grid.cols-2,.admin-grid.addr{grid-template-columns:1fr 1fr;}}

/* CRM hlavička — jméno vlevo, ikona úpravy vpravo nahoře; odznaky na řádku pod ním */
.crm-h{display:flex;align-items:flex-start;gap:8px;}
.crm-h>b{flex:1 1 auto;min-width:0;line-height:1.25;}
.crm-h .crm-edit{flex:0 0 auto;}
.crm-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.crm-badges:empty{display:none;}
.crm-foot .foot-row{display:flex;justify-content:space-between;align-items:center;gap:8px;}
