/* ==========================================================================
   TOP Znak — Interní systém :: theme
   Design tokens + shell (dark sidebar 248px + light main). Font Open Sans.
   ========================================================================== */

:root{
  /* FONT */
  --tz-font: 'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;

  /* APP BACKGROUNDS */
  --tz-bg-app: #F3F4F1;
  --tz-bg-sidebar: #0E1013;
  --tz-bg-panel: #ffffff;
  --tz-bg-panel-alt: #FAFBF8;
  --tz-bg-subtle: #F8F9F5;
  --tz-bg-dark-map: #0F141B;
  --tz-bg-topbar: rgba(243,244,241,.86);

  /* SIDEBAR INNER */
  --tz-side-item: #8A919B;
  --tz-side-item-active: #ffffff;
  --tz-side-item-active-bg: #1B1F26;
  --tz-side-hover-bg: #16191F;
  --tz-side-heading: #4D5560;
  --tz-side-meta: #6A7280;
  --tz-side-card-bg: #15181E;
  --tz-side-badge-bg: #23272F;
  --tz-side-badge-text: #AEB4BD;

  /* BORDERS */
  --tz-border-sidebar: #1E2229;
  --tz-border-side-soft: #1A1E25;
  --tz-border-panel: #E6E7E2;
  --tz-border-topbar: #E2E4DE;
  --tz-border-row: #F4F5F1;
  --tz-border-row-soft: #F0F1ED;
  --tz-border-dashed: #D2D6CC;

  /* TEXT */
  --tz-text: #15181C;
  --tz-text-strong: #1A1D22;
  --tz-text-body: #3A4048;
  --tz-text-muted: #7A8088;
  --tz-text-muted-2: #8A9098;
  --tz-text-faint: #9AA0A6;

  /* ACCENT */
  --tz-accent: #F5C400;
  --tz-accent-2: #E8A400;
  --tz-accent-3: #E8890C;
  --tz-accent-on: #15181C;

  /* STATE */
  --tz-green: #1F9E5A;
  --tz-green-dark: #1F8A52;
  --tz-green-bg: #E7F4EC;
  --tz-orange: #C9760A;
  --tz-orange-bg: #FCF1DF;
  --tz-red: #D23A30;
  --tz-red-bg: #FBE9E7;
  --tz-blue: #2A6FDB;
  --tz-blue-bg: #E7EFFB;
  --tz-purple: #7C3AED;
  --tz-purple-bg: #F1EAFD;
  --tz-neutral-bg: #EEF0EC;
  --tz-tag-bg: #F1F2EE;

  /* BUSINESS */
  --tz-biz-vdz: #E8A400;
  --tz-biz-sdz: #2A6FDB;
  --tz-biz-dio: #C9760A;
  --tz-biz-pdz: #D23A30;
  --tz-biz-eshop: #1F9E5A;
  --tz-biz-plosina: #0EA5A5;
  --tz-biz-pronajem: #B45309;
  --tz-biz-ppdz: #D23A30;

  /* RADIUS */
  --tz-r-xs: 6px; --tz-r-sm: 8px; --tz-r-md: 10px; --tz-r-lg: 12px;
  --tz-r-xl: 14px; --tz-r-2xl: 16px; --tz-r-pill: 20px;

  /* LAYOUT */
  --tz-sidebar-w: 248px;
  --tz-content-max: 1480px;
  --tz-drawer-w: 496px;
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:var(--tz-font);
  background:var(--tz-bg-sidebar);
  color:var(--tz-text-strong);
  font-size:14px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

/* ---- custom scrollbar ---- */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#cdd0c8; border-radius:8px; }
::-webkit-scrollbar-track{ background:transparent; }

/* ==========================================================================
   SHELL
   ========================================================================== */
.tz-shell{
  display:grid;
  grid-template-columns:var(--tz-sidebar-w) 1fr;
  height:100vh;
  overflow:hidden;
  color:var(--tz-text-strong);
}

/* ---- SIDEBAR ---- */
.tz-side{
  background:var(--tz-bg-sidebar);
  border-right:1px solid var(--tz-border-sidebar);
  display:flex;
  flex-direction:column;
  height:100vh;
  min-width:0;
}
.tz-side__logo{
  display:flex; align-items:center; gap:12px;
  padding:22px; border-bottom:1px solid var(--tz-border-side-soft);
}
.tz-side__logo img,.tz-side__logo .tz-logo{
  width:38px; height:38px; object-fit:contain; flex:0 0 38px;
}
.tz-side__logo .tz-side__eyebrow{
  font-size:9.5px; letter-spacing:.16em; color:var(--tz-side-meta);
  font-weight:700;
}
.tz-side__logo .tz-side__title{
  font-size:16px; font-weight:800; color:#fff; line-height:1.15;
}
.tz-side__nav{
  flex:1 1 auto; overflow-y:auto; padding:14px 12px;
}
.tz-side__group{ margin-bottom:16px; }
.tz-side__heading{
  font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tz-side-heading); font-weight:700;
  padding:6px 12px 8px;
}
.tz-nav-item{
  position:relative;
  display:flex; align-items:center; gap:12px;
  width:100%; text-align:left;
  padding:9px 12px; margin-bottom:2px;
  border:0; background:transparent; cursor:pointer;
  border-radius:var(--tz-r-md);
  font-size:13.5px; color:var(--tz-side-item);
  transition:background .12s ease,color .12s ease;
}
.tz-nav-item:hover{ background:var(--tz-side-hover-bg); color:#D8DBD2; }
.tz-nav-item.is-active{
  background:var(--tz-side-item-active-bg);
  color:var(--tz-side-item-active); font-weight:600;
}
.tz-nav-item.is-active::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:18px; background:var(--tz-accent); border-radius:3px;
}
.tz-nav-item svg{ width:18px; height:18px; flex:0 0 18px; }
.tz-nav-item .tz-nav-label{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tz-nav-ico{
  width:18px; height:18px; flex:0 0 18px;
  display:inline-flex; align-items:center; justify-content:center;
}
.tz-nav-item .tz-dot{ width:9px; height:9px; border-radius:50%; flex:0 0 9px; }
.tz-badge{
  font-size:10px; font-weight:600; line-height:1;
  padding:2px 7px; border-radius:var(--tz-r-pill);
  background:var(--tz-side-badge-bg); color:var(--tz-side-badge-text);
}
.tz-side__foot{
  padding:12px; border-top:1px solid var(--tz-border-side-soft);
}
.tz-side__provoz{
  font-size:10.5px; color:var(--tz-side-meta); line-height:1.5;
  padding:2px 6px 12px;
}
.tz-side__profile{
  display:flex; align-items:center; gap:10px;
  background:var(--tz-side-card-bg); border-radius:var(--tz-r-md);
  padding:10px;
}
.tz-avatar{
  width:34px; height:34px; border-radius:9px; flex:0 0 34px;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800; color:var(--tz-accent);
  background:linear-gradient(135deg,#2A2F38,#15181E);
  overflow:hidden;
}
.tz-avatar img{ width:100%; height:100%; object-fit:cover; }
.tz-side__profile .tz-name{ font-size:12.5px; font-weight:600; color:#E6E8E3; }
.tz-side__profile .tz-role{ font-size:10.5px; color:var(--tz-side-meta); }
.tz-side__profile a.tz-name:hover{ color:#fff; }

/* ---- MAIN ---- */
.tz-main{
  background:var(--tz-bg-app);
  height:100vh; overflow-y:auto; position:relative;
}
.tz-topbar{
  position:sticky; top:0; z-index:30;
  background:var(--tz-bg-topbar);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--tz-border-topbar);
  padding:15px 30px;
  display:flex; align-items:center; gap:20px;
}
.tz-topbar__title{ font-size:21px; font-weight:700; color:var(--tz-text); line-height:1.15; }
.tz-topbar__sub{ font-size:12.5px; color:var(--tz-text-muted); }
.tz-topbar__spacer{ flex:1 1 auto; }
.tz-search{
  display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--tz-border-topbar);
  border-radius:var(--tz-r-md); padding:8px 12px; width:280px;
}
.tz-search input{
  border:0; outline:0; background:transparent; width:100%;
  font-size:13px; color:var(--tz-text); font-family:inherit;
}
.tz-search svg{ width:16px; height:16px; color:var(--tz-text-faint); flex:0 0 16px; }
.tz-livechip{
  display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--tz-border-topbar);
  border-radius:var(--tz-r-pill); padding:6px 12px;
  font-size:12px; color:var(--tz-text-muted); white-space:nowrap;
}
.tz-livedot{
  width:8px; height:8px; border-radius:50%; background:var(--tz-green);
  box-shadow:0 0 0 0 rgba(31,158,90,.5);
  animation:tzlive 1.8s infinite;
}
@keyframes tzlive{
  0%{ box-shadow:0 0 0 0 rgba(31,158,90,.5); }
  70%{ box-shadow:0 0 0 6px rgba(31,158,90,0); }
  100%{ box-shadow:0 0 0 0 rgba(31,158,90,0); }
}
@keyframes tzpulse{
  0%,100%{ opacity:1; } 50%{ opacity:.35; }
}
.tz-content{ padding:24px 30px 60px; max-width:var(--tz-content-max); }

/* ---- HAMBURGER + MOBILNÍ NAVIGACE ---- */
.tz-hamburger{ display:none; align-items:center; justify-content:center; width:40px; height:40px;
  flex:0 0 auto; border:1px solid var(--tz-border-topbar); border-radius:var(--tz-r-md);
  background:#fff; color:var(--tz-text); cursor:pointer; }
.tz-hamburger:hover{ background:var(--tz-bg-subtle); }
.tz-backdrop{ display:none; position:fixed; inset:0; z-index:90; background:rgba(10,13,16,.5);
  opacity:0; pointer-events:none; transition:opacity .25s ease; }

@media (max-width:860px){
  .tz-shell{ grid-template-columns:1fr; }
  .tz-side{ position:fixed; top:0; left:0; width:min(84vw,300px); z-index:100;
    transform:translateX(-100%); transition:transform .26s ease; box-shadow:4px 0 24px rgba(0,0,0,.35); }
  .tz-shell.is-nav-open .tz-side{ transform:translateX(0); }
  .tz-backdrop{ display:block; }
  .tz-shell.is-nav-open .tz-backdrop{ opacity:1; pointer-events:auto; }
  .tz-hamburger{ display:inline-flex; }
  .tz-topbar{ padding:12px 16px; gap:12px; }
  .tz-topbar__title{ font-size:18px; }
  .tz-livechip{ display:none; }
  .tz-search{ width:auto; flex:1 1 auto; min-width:0; }
  .tz-content{ padding:18px 16px 48px; }
}
@media (max-width:600px){
  .tz-search{ display:none; }
}

/* ==========================================================================
   PANELS / CARDS / TABLES
   ========================================================================== */
.tz-card{
  background:var(--tz-bg-panel);
  border:1px solid var(--tz-border-panel);
  border-radius:var(--tz-r-xl);
  padding:20px;
}
.tz-card--dark{ background:var(--tz-bg-dark-map); border-color:#171B22; color:#E6E8E3; }
.tz-card__head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.tz-card__title{ font-size:15px; font-weight:700; color:var(--tz-text); }
.tz-card__sub{ font-size:12px; color:var(--tz-text-muted); }

.tz-grid{ display:grid; gap:16px; }
.tz-grid--kpi{ grid-template-columns:repeat(4,1fr); }
.tz-grid--kpi-5{ grid-template-columns:repeat(5,1fr); }
.tz-grid--main{ grid-template-columns:1fr 360px; }
.tz-grid--wide{ grid-template-columns:1fr 380px; }
@media (max-width:1400px){
  .tz-grid--kpi-5{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:1100px){
  .tz-grid--kpi,.tz-grid--kpi-5{ grid-template-columns:repeat(2,1fr); }
  .tz-grid--main,.tz-grid--wide{ grid-template-columns:1fr; }
}

/* KPI cards */
.tz-kpi{
  background:var(--tz-bg-panel); border:1px solid var(--tz-border-panel);
  border-radius:var(--tz-r-xl); padding:16px 18px;
}
.tz-kpi__label{ font-size:12px; color:var(--tz-text-muted); display:flex; align-items:center; gap:8px; }
.tz-kpi__value{ font-size:26px; font-weight:800; color:var(--tz-text); margin-top:6px; letter-spacing:-.02em; }
.tz-kpi__foot{ margin-top:8px; font-size:12px; color:var(--tz-text-muted); }
.tz-delta{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:var(--tz-r-pill); }
.tz-delta--up{ color:var(--tz-green); background:var(--tz-green-bg); }
.tz-delta--down{ color:var(--tz-red); background:var(--tz-red-bg); }

/* progress bar */
.tz-progress{ height:8px; border-radius:6px; background:var(--tz-neutral-bg); overflow:hidden; margin-top:10px; }
.tz-progress > span{ display:block; height:100%; border-radius:6px; background:var(--tz-accent); }
.tz-progress--split{ display:flex; }
.tz-progress--split > .a{ background:var(--tz-green); }
.tz-progress--split > .b{ background:var(--tz-orange); }

/* table */
.tz-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.tz-table thead th{
  text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--tz-text-muted); font-weight:700; padding:10px 14px;
  border-bottom:1px solid var(--tz-border-row);
}
.tz-table tbody td{ padding:12px 14px; border-bottom:1px solid var(--tz-border-row); color:var(--tz-text-strong); }
.tz-table tbody tr:hover{ background:var(--tz-bg-subtle); }
.tz-table tbody tr.is-clickable{ cursor:pointer; }
.tz-table .num{ text-align:right; font-variant-numeric:tabular-nums; }
.tz-empty{ padding:40px; text-align:center; color:var(--tz-text-faint); font-size:13px; }

/* pills / tags */
.tz-pill{
  display:inline-flex; align-items:center; gap:6px;
  font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:var(--tz-r-pill);
  background:var(--tz-tag-bg); color:var(--tz-text-body);
}
.tz-pill--green{ color:var(--tz-green-dark); background:var(--tz-green-bg); }
.tz-pill--orange{ color:var(--tz-orange); background:var(--tz-orange-bg); }
.tz-pill--red{ color:var(--tz-red); background:var(--tz-red-bg); }
.tz-pill--blue{ color:var(--tz-blue); background:var(--tz-blue-bg); }
.tz-pill--purple{ color:var(--tz-purple); background:var(--tz-purple-bg); }
.tz-pill--muted{ color:var(--tz-text-muted); background:var(--tz-tag-bg); }
.tz-tag{ font-size:11px; padding:3px 8px; border-radius:var(--tz-r-xs); background:var(--tz-tag-bg); color:var(--tz-text-body); }

/* buttons */
.tz-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; padding:9px 14px; border-radius:var(--tz-r-md);
  border:1px solid var(--tz-border-topbar); background:#fff; color:var(--tz-text);
  cursor:pointer; transition:filter .12s ease, background .12s ease;
}
.tz-btn:hover{ background:var(--tz-bg-subtle); }
.tz-btn--primary{ background:var(--tz-accent); border-color:var(--tz-accent); color:var(--tz-accent-on); }
.tz-btn--primary:hover{ filter:brightness(.96); background:var(--tz-accent); }
.tz-btn--dark{ background:#15181E; border-color:#15181E; color:#fff; }
.tz-btn--danger{ color:var(--tz-red); border-color:#F0D6D3; }
.tz-btn:disabled{ opacity:.5; cursor:not-allowed; }
.tz-btn--sm{ padding:6px 10px; font-size:12px; }

/* forms */
.tz-field{ margin-bottom:14px; }
.tz-field label{ display:block; font-size:12px; font-weight:600; color:var(--tz-text-body); margin-bottom:6px; }
.tz-input,.tz-select,.tz-textarea{
  width:100%; font-family:inherit; font-size:13.5px; color:var(--tz-text);
  background:#fff; border:1px solid var(--tz-border-topbar); border-radius:var(--tz-r-md);
  padding:9px 12px; outline:0;
}
.tz-input:focus,.tz-select:focus,.tz-textarea:focus{ border-color:var(--tz-accent-2); }
.tz-textarea{ min-height:90px; resize:vertical; }
.tz-help{ font-size:11.5px; color:var(--tz-text-faint); margin-top:4px; }
.tz-error-msg{ font-size:12px; color:var(--tz-red); margin-top:4px; }

/* flash */
.tz-flashes{ position:fixed; top:16px; right:16px; z-index:80; display:flex; flex-direction:column; gap:8px; max-width:360px; }
.tz-flash{
  padding:11px 14px; border-radius:var(--tz-r-md); font-size:13px; font-weight:600;
  box-shadow:0 6px 24px rgba(14,16,19,.16); background:#fff; border-left:4px solid var(--tz-text-muted);
}
.tz-flash.success{ border-left-color:var(--tz-green); color:var(--tz-green-dark); }
.tz-flash.error{ border-left-color:var(--tz-red); color:var(--tz-red); }
.tz-flash.warning{ border-left-color:var(--tz-orange); color:var(--tz-orange); }
.tz-flash.info{ border-left-color:var(--tz-blue); color:var(--tz-blue); }

/* section heads / misc */
.tz-page-head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.tz-page-head h2{ font-size:17px; margin:0; color:var(--tz-text); }
.tz-chips{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.tz-chip{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  font-size:12.5px; font-weight:600; padding:7px 12px; border-radius:var(--tz-r-pill);
  border:1px solid var(--tz-border-panel); background:#fff; color:var(--tz-text-body);
}
.tz-chip.is-active{ background:#15181E; color:#fff; border-color:#15181E; }
.tz-chip .tz-dot{ width:8px; height:8px; border-radius:50%; }
.tz-count{ color:var(--tz-text-faint); font-weight:700; }

/* placeholder module */
.tz-soon{
  border:1px dashed var(--tz-border-dashed); border-radius:var(--tz-r-2xl);
  background:var(--tz-bg-subtle); padding:56px 30px; text-align:center;
}
.tz-soon .tz-soon__icon{
  width:60px; height:60px; border-radius:16px; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  background:#15181E; color:var(--tz-accent);
}
.tz-soon .tz-soon__icon svg{ width:28px; height:28px; }
.tz-soon h3{ font-size:19px; margin:0 0 8px; color:var(--tz-text); }
.tz-soon p{ color:var(--tz-text-muted); margin:0 auto; max-width:520px; }
.tz-soon .tz-pill{ margin-top:16px; }

/* ==========================================================================
   SIGN-IN
   ========================================================================== */
.tz-signin{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(1200px 600px at 70% -10%,#1B2029,#0E1013);
  padding:24px;
}
.tz-signin__card{
  width:100%; max-width:400px; background:#15181E; color:#E6E8E3;
  border:1px solid #23272F; border-radius:var(--tz-r-2xl); padding:30px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
}
.tz-signin__logo{ display:flex; align-items:center; gap:12px; margin-bottom:22px; }
.tz-signin__logo .tz-logo{ width:40px; height:40px; border-radius:10px; }
.tz-signin__logo .t{ font-size:16px; font-weight:800; color:#fff; }
.tz-signin__logo .e{ font-size:9.5px; letter-spacing:.16em; color:var(--tz-side-meta); text-transform:uppercase; font-weight:700; }
.tz-signin h1{ font-size:19px; margin:0 0 4px; color:#fff; }
.tz-signin p.lead{ font-size:13px; color:var(--tz-side-meta); margin:0 0 22px; }
.tz-signin label{ color:#AEB4BD; }
.tz-signin .tz-input{ background:#0E1013; border-color:#23272F; color:#fff; }
.tz-signin .tz-input:focus{ border-color:var(--tz-accent); }
.tz-signin .tz-btn--primary{ width:100%; justify-content:center; padding:11px; }
.tz-signin .tz-divider{ display:flex; align-items:center; gap:12px; color:#5A616B; font-size:11px; margin:18px 0; }
.tz-signin .tz-divider::before,.tz-signin .tz-divider::after{ content:""; flex:1; height:1px; background:#23272F; }
.tz-signin .tz-btn--passkey{
  width:100%; justify-content:center; padding:11px; background:#0E1013; color:#E6E8E3; border-color:#23272F;
}
.tz-signin .tz-btn--passkey:hover{ background:#191D24; }
.tz-signin .tz-signin__err{ background:#3A1D1B; color:#F3B6B0; border:1px solid #5A2A26; padding:10px 12px; border-radius:var(--tz-r-md); font-size:12.5px; margin-bottom:16px; }

/* SVG area chart helper */
.tz-chart{ width:100%; height:180px; display:block; }
.tz-chart .area{ fill:rgba(245,196,0,.14); }
.tz-chart .line{ fill:none; stroke:var(--tz-accent); stroke-width:2; }

/* activity bars (changelog) */
.tz-bars{ display:flex; align-items:flex-end; gap:6px; height:120px; }
.tz-bars .bar{ flex:1; background:var(--tz-accent); border-radius:4px 4px 0 0; min-height:10px; opacity:.85; }

/* backlog kanban */
.tz-kanban{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; align-items:start; }
@media (max-width:1200px){ .tz-kanban{ grid-template-columns:repeat(2,1fr); } }
.tz-col{ background:var(--tz-bg-subtle); border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-lg); padding:12px; min-height:120px; }
.tz-col__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-size:12px; font-weight:700; color:var(--tz-text-body); }
.tz-blcard{ background:#fff; border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-md); padding:12px; margin-bottom:10px; cursor:grab; }
.tz-blcard h4{ font-size:13.5px; margin:0 0 6px; color:var(--tz-text); }
.tz-blcard p{ font-size:12px; color:var(--tz-text-muted); margin:0; }
.tz-blcard__meta{ display:flex; gap:8px; align-items:center; margin-top:8px; font-size:11px; color:var(--tz-text-faint); }

/* timeline (changelog) */
.tz-day{ margin-bottom:24px; }
.tz-day__label{ font-size:13px; font-weight:700; color:var(--tz-text); margin-bottom:10px; }
.tz-log{ display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--tz-border-row); }
.tz-log__type{ flex:0 0 auto; }

/* audit diff */
.tz-diff{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; background:var(--tz-bg-subtle); border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-sm); padding:8px 10px; white-space:pre-wrap; word-break:break-word; color:var(--tz-text-body); }

/* ---- SPZ — registrační značka s EU pruhem ---- */
.tz-spz{
  display:inline-flex; align-items:stretch; vertical-align:middle;
  border:2px solid #15181C; border-radius:5px; overflow:hidden;
  background:#fff; line-height:1; user-select:all;
}
.tz-spz__eu{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; background:#003399; color:#FFCC00; padding:3px 4px 2px;
}
.tz-spz__stars{ font-size:7px; letter-spacing:0; }
.tz-spz__cz{ color:#fff; font-size:8px; font-weight:800; letter-spacing:.04em; }
.tz-spz__num{
  display:flex; align-items:center; padding:3px 9px;
  font-family:ui-monospace,'SF Mono',Menlo,monospace;
  font-size:14.5px; font-weight:800; letter-spacing:.14em; color:#15181C;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.tz-spz--sm .tz-spz__num{ font-size:11.5px; padding:2px 7px; letter-spacing:.1em; }
.tz-spz--sm .tz-spz__eu{ padding:2px 3px 1px; }
.tz-spz--sm .tz-spz__stars{ font-size:5.5px; }
.tz-spz--sm .tz-spz__cz{ font-size:6.5px; }

/* ---- potvrzovací dialog (náhrada window.confirm) ---- */
.tz-modal{
  position:fixed; inset:0; z-index:90;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.tz-modal__backdrop{
  position:absolute; inset:0; background:rgba(14,16,19,.55);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
  animation:tzmodalfade .14s ease-out;
}
.tz-modal__card{
  position:relative; width:100%; max-width:440px;
  background:#fff; border-radius:16px; padding:22px 24px 18px;
  box-shadow:0 24px 80px rgba(14,16,19,.35);
  animation:tzmodalpop .16s ease-out;
}
.tz-modal__title{ font-size:16.5px; font-weight:800; color:var(--tz-text); margin:0 0 6px; }
.tz-modal__msg{ font-size:13.5px; color:var(--tz-text-body); line-height:1.55; margin:0 0 18px; }
.tz-modal__actions{ display:flex; justify-content:flex-end; gap:8px; }
@keyframes tzmodalfade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes tzmodalpop{ from{ opacity:0; transform:translateY(8px) scale(.98); } to{ opacity:1; transform:none; } }

/* ---- fullscreen mapový modal (tzMap.fullscreen) ---- */
.tz-mapmodal{ position:fixed; inset:0; z-index:92; display:flex; align-items:center; justify-content:center; padding:22px; }
.tz-mapmodal__backdrop{ position:absolute; inset:0; background:rgba(14,16,19,.6); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.tz-mapmodal__panel{
  position:relative; width:min(1500px,96vw); height:min(880px,90vh);
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 28px 90px rgba(14,16,19,.4);
}
.tz-mapmodal__map{ position:absolute; inset:0; }
.tz-mapmodal__close{
  position:absolute; top:12px; left:12px; z-index:5;
  width:34px; height:34px; border:none; border-radius:9px; cursor:pointer;
  background:#0F141B; color:#fff; font-size:15px; box-shadow:0 4px 14px rgba(0,0,0,.3);
}
.tz-mapmodal__close:hover{ background:#22272F; }

/* ---- adresní našeptávač (globální [data-suggest]) ---- */
.tz-suggestbox{
  position:absolute; z-index:95; max-height:280px; overflow-y:auto;
  background:#fff; border:1px solid var(--tz-border-panel); border-radius:10px;
  box-shadow:0 14px 44px rgba(14,16,19,.18); padding:4px;
}
.tz-suggestbox__item{
  padding:8px 11px; font-size:13px; color:var(--tz-text-body);
  border-radius:7px; cursor:pointer; line-height:1.4;
}
.tz-suggestbox__item:hover,.tz-suggestbox__item.is-active{ background:var(--tz-bg-subtle); color:var(--tz-text); }

/* detail page (náhrada draweru) */
.tz-back{
  display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:600; color:var(--tz-text-muted);
}
.tz-back:hover{ color:var(--tz-text); }
.tz-table a.tz-rowlink{ font-weight:600; color:var(--tz-text); }
.tz-table a.tz-rowlink:hover{ text-decoration:underline; }

/* helpers */
.tz-mt{ margin-top:16px; } .tz-mb{ margin-bottom:16px; }
.tz-row{ display:flex; align-items:center; gap:12px; }
.tz-muted{ color:var(--tz-text-muted); }
.tz-right{ margin-left:auto; }
.tz-stat3{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.tz-stat3 .b{ background:var(--tz-bg-subtle); border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-md); padding:12px; }
.tz-stat3 .b .v{ font-size:20px; font-weight:800; color:var(--tz-text); }
.tz-stat3 .b .l{ font-size:11.5px; color:var(--tz-text-muted); }

/* ============================================================
   LIST KIT — jednotné seznamy flow (Poptávky/Nabídky/Realizace/
   Soupisy/Faktury/Zakázky): hlavička, přepínač zobrazení, board.
   Tabulka = tz-table, KPI = tz-kpi, filtry = tz-chip/tz-bizchip.
   ============================================================ */
.tz-lhead{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.tz-lhead__title{ font-size:20px; font-weight:800; letter-spacing:-.01em; color:var(--tz-text); margin:0; }
.tz-lhead__count{ font-size:12.5px; color:var(--tz-text-faint); font-weight:700; background:var(--tz-neutral-bg); border-radius:99px; padding:2px 10px; }
.tz-lhead__sp{ flex:1 1 auto; }

.tz-viewsw{ display:inline-flex; border:1px solid var(--tz-border-panel); border-radius:9px; overflow:hidden; background:#fff; }
.tz-viewsw a, .tz-viewsw button{ appearance:none; border:0; background:#fff; font-family:var(--tz-font); font-size:12px; font-weight:700; color:var(--tz-text-muted); padding:7px 12px; cursor:pointer; text-decoration:none; }
.tz-viewsw a:hover, .tz-viewsw button:hover{ color:var(--tz-text); }
.tz-viewsw .is-on{ background:#15181E; color:#fff; }

/* board (kanban) — sloupce dle stavu, karty jednotné napříč moduly */
.tz-board{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(215px,1fr); gap:10px; overflow-x:auto; padding-bottom:8px; }
.tz-bcol{ background:var(--tz-neutral-bg); border-radius:13px; padding:9px; min-height:260px; }
.tz-bcol__head{ display:flex; align-items:center; gap:7px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--tz-text-body); padding:3px 5px 8px; }
.tz-bcol__count{ margin-left:auto; font-size:10.5px; color:var(--tz-text-faint); font-weight:800; }
.tz-bcard{ display:block; background:var(--tz-bg-panel); border:1px solid var(--tz-border-panel); border-radius:11px; padding:10px 12px; margin-bottom:8px; cursor:pointer; text-decoration:none; transition:transform .1s, border-color .1s; }
.tz-bcard:hover{ transform:translateY(-1px); border-color:#C9CCC3; }
.tz-bcard__code{ font-size:11px; font-weight:800; color:var(--tz-accent-2); font-variant-numeric:tabular-nums; }
.tz-bcard__title{ font-size:12.5px; font-weight:700; color:var(--tz-text); margin:2px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tz-bcard__meta{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--tz-text-muted); margin-top:6px; }
.tz-bcard__meta b{ color:var(--tz-text); font-variant-numeric:tabular-nums; }
.tz-bcard__sp{ flex:1 1 auto; }
.tz-bcol__empty{ font-size:11px; color:var(--tz-text-faint); text-align:center; padding:16px 0; }

/* obor chip s tečkou — globální verze (dřív lokálně v Nabidky/default.latte) */
.tz-bizchip{ display:inline-flex; align-items:center; gap:7px; text-decoration:none; cursor:pointer; font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:999px; border:1px solid var(--tz-border-panel); background:#fff; color:var(--tz-text-body); transition:background .12s, border-color .12s; }
.tz-bizchip__dot{ width:9px; height:9px; border-radius:50%; flex:0 0 9px; background:var(--tzb, #7A8088); }
.tz-bizchip:hover{ background:color-mix(in srgb, var(--tzb, #7A8088) 10%, #fff); border-color:color-mix(in srgb, var(--tzb, #7A8088) 45%, #fff); }
.tz-bizchip.is-active{ color:#15181C; background:color-mix(in srgb, var(--tzb, #7A8088) 18%, #fff); border-color:color-mix(in srgb, var(--tzb, #7A8088) 60%, #fff); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tzb, #7A8088) 45%, #fff); }
.tz-bizchip--all.is-active{ background:#15181E; border-color:#15181E; color:#fff; box-shadow:none; }

/* klikatelný řádek tabulky (celý řádek vede na detail) */
.tz-table tbody tr.tz-rowlink{ cursor:pointer; }
.tz-table .tz-rowarrow{ color:var(--tz-text-faint); }

/* řaditelné hlavičky tabulek seznamů — klik na nadpis sloupce */
.tz-table th a.tz-sort{ color:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:4px; cursor:pointer; }
.tz-table th a.tz-sort:hover{ color:var(--tz-text); }
.tz-table th a.tz-sort::after{ content:'↕'; font-size:10px; opacity:.35; }
.tz-table th a.tz-sort.is-asc::after{ content:'▲'; font-size:9px; opacity:1; color:var(--tz-accent-2); }
.tz-table th a.tz-sort.is-desc::after{ content:'▼'; font-size:9px; opacity:1; color:var(--tz-accent-2); }

/* přepínač sazby DPH: presety + tužka = vlastní hodnota (chování v app.js, komponenta [data-vat]) */
.tz-vat{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tz-vat__opt{
  font-family:inherit; font-size:12.5px; font-weight:600; padding:8px 11px; border-radius:var(--tz-r-md);
  border:1px solid var(--tz-border-topbar); background:#fff; color:var(--tz-text-body); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; line-height:1;
  font-variant-numeric:tabular-nums; transition:background .12s, border-color .12s;
}
.tz-vat__opt:hover{ background:var(--tz-bg-subtle); }
.tz-vat__opt.is-active{ background:#15181E; border-color:#15181E; color:#fff; }
.tz-vat__opt--edit{ min-width:36px; padding:8px 9px; }
.tz-vat__input{ width:84px; flex:0 0 auto; text-align:right; font-variant-numeric:tabular-nums; }
.tz-vat.is-preset .tz-vat__input{ display:none; }

/* select s volbou „Jiná…“ ([data-other-select] v app.js): doplňkový input pod selectem */
.tz-mt-xs{ margin-top:6px; }

/* Náklady — návrh z e-mailu (agent): banner nad detailem + odkaz z KPI karty */
.tz-kpi--link{ text-decoration:none; color:inherit; display:block; }
.tz-kpi--link:hover{ border-color:var(--tz-accent-2); }
.tz-draft{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:12px 16px; margin-bottom:16px; border-radius:var(--tz-r-md);
  background:#FFF7D6; border:1px solid var(--tz-accent-2); border-left-width:4px; color:var(--tz-text);
}
.tz-draft__ic{ color:var(--tz-accent-3); display:flex; }
.tz-draft__body{ flex:1 1 260px; min-width:0; font-size:13px; line-height:1.5; }
.tz-draft__title{ font-weight:700; }
.tz-draft__meta{ color:var(--tz-text-body); font-size:12.5px; }
.tz-draft__actions{ display:flex; gap:8px; flex-wrap:wrap; }
.tz-draft__actions form{ margin:0; }
.tz-docframe{ width:100%; height:72vh; min-height:480px; border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-md); background:#fff; }
.tz-docimg{ max-width:100%; border:1px solid var(--tz-border-panel); border-radius:var(--tz-r-md); display:block; }

/* sdílené stránkování (_pager.latte): čísla stran + volba počtu záznamů */
.tz-pg{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.tz-pg__pages{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; justify-content:center; }
.tz-pg__num,.tz-pg__btn{ min-width:32px; height:32px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--tz-r-md); border:1px solid var(--tz-border-topbar); background:#fff; color:var(--tz-text-body); font-size:12.5px; font-weight:600; text-decoration:none; font-variant-numeric:tabular-nums; }
.tz-pg__num:hover,.tz-pg__btn:hover{ background:var(--tz-bg-subtle); }
.tz-pg__num.is-active{ background:#15181E; border-color:#15181E; color:#fff; cursor:default; }
.tz-pg__dots{ padding:0 4px; color:var(--tz-text-faint); }
.tz-pg__meta{ font-size:12.5px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:center; }
.tz-pg__pp{ display:inline-flex; align-items:center; gap:6px; }
.tz-pg__ppnum{ padding:2px 6px; border-radius:var(--tz-r-xs); color:var(--tz-text-body); text-decoration:none; font-weight:600; }
.tz-pg__ppnum:hover{ background:var(--tz-bg-subtle); }
.tz-pg__ppnum.is-active{ background:var(--tz-accent); color:var(--tz-accent-on); }

/* položky nákladu (Naklady/detail.latte): kompaktní tabulka s řádkovými formuláři (inputy vázané atributem form="") */
.tz-items{ font-size:12px; }
.tz-items thead th{ padding:6px 6px; }
.tz-items tbody td, .tz-items tfoot td{ padding:3px 6px; }
.tz-items .tz-input{ padding:3px 6px; font-size:12px; line-height:1.3; height:auto; }
.tz-items .tz-input.num{ text-align:right; font-variant-numeric:tabular-nums; }
.tz-items output{ font-variant-numeric:tabular-nums; }
.tz-x{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; padding:0; border:0; border-radius:var(--tz-r-sm);
  background:transparent; color:var(--tz-text-faint); font-size:15px; line-height:1; cursor:pointer; }
.tz-x:hover{ color:var(--tz-red); background:var(--tz-red-bg); }
.tz-x--add:hover{ color:var(--tz-green); background:var(--tz-green-bg); }

/* výběr štítků materiálu: checkbox schovaný, chip se zvýrazní (Material/default.latte, detail.latte) */
.tz-tagpick{ cursor:pointer; display:inline-flex; }
.tz-tagpick input{ position:absolute; opacity:0; width:0; height:0; }
.tz-tagpick .tz-tag{ opacity:.55; border:1px solid var(--tz-border-row); }
.tz-tagpick input:checked + .tz-tag{ opacity:1; box-shadow:0 0 0 2px var(--tz-accent); }
.tz-tagpick input:focus-visible + .tz-tag{ outline:2px solid var(--tz-accent); outline-offset:1px; }
