/* ============================================================
   Ateliér — design systém CRM
   Bílá plocha, vyrytá mřížka, jedna tyrkysová, pastelové stavy.
   Barvy stavů se nikdy nepletou s barvami kategorií.
   Tokens (colours, sizes, spacing): web/tokens.css. Here: the base reset and the shared
   components every screen uses (#207); screen stylesheets only lay them out.
   ============================================================ */

@layer base{
/* #207: hidden means hidden, whatever a component or screen sets as display. */
[hidden]{display:none!important}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:var(--fs-8);line-height:1.5;-webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}
.num{font-variant-numeric:tabular-nums}
.trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

}

@layer components{
/* ---------- rozvržení ---------- */
#app:not([hidden]){display:flex;min-height:100%;}
.side{width:var(--nav-w);flex:none;background:var(--surface-2);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:var(--sp-12) var(--sp-10);position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-6) var(--sp-8) var(--sp-14);font-weight:700;font-size:var(--fs-9);letter-spacing:-.01em}
.bmark{width:26px;height:26px;border-radius:var(--r-sm);background:var(--acc);color:var(--acc-fg);
  display:grid;place-items:center;font-size:var(--fs-2);font-weight:800;letter-spacing:-.02em;flex:none}
.navgrp{font-size:var(--fs-1);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  padding:var(--sp-14) var(--sp-10) var(--sp-6)}
.nv{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-8) var(--sp-10);border-radius:var(--r-sm);
  color:var(--text-2);font-weight:500;width:100%;text-align:left}
.nv:hover{background:var(--surface-3)}
.nv.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--sh)}
.nv svg{width:16px;height:16px;flex:none;opacity:.8}
.nv .cnt{margin-left:auto;font-size:var(--fs-2);font-weight:600;color:var(--faint);font-variant-numeric:tabular-nums}
.nv.on .cnt{color:var(--muted)}
.side .grow{flex:1}
.me{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-10) var(--sp-8);border-top:1px solid var(--line);margin-top:var(--sp-8)}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--acc);color:var(--acc-fg);
  display:grid;place-items:center;font-size:var(--fs-2);font-weight:700;flex:none}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:52px;flex:none;display:flex;align-items:center;gap:var(--sp-10);padding:0 var(--sp-20);
  border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}
.page{flex:1;padding:var(--sp-20) var(--sp-24) var(--sp-40);max-width:1440px;width:100%}
.page.narrow{max-width:1120px}

.search{flex:1;max-width:420px;height:32px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface-2);display:flex;align-items:center;gap:var(--sp-8);padding:0 var(--sp-10);color:var(--muted)}
.search:focus-within{border-color:var(--acc);box-shadow:var(--focus)}
.search input{flex:1;padding:0;border:0;background:none;outline:none;font-size:var(--fs-6);min-width:0}
.search input::placeholder{color:var(--faint)}
.kbd{font-size:var(--fs-1);border:1px solid var(--line-strong);border-radius:var(--r-xs);padding:1px var(--sp-6);
  color:var(--faint);background:var(--surface)}

/* ---------- tlačítka ---------- */
.btn{height:32px;border-radius:var(--r-sm);padding:0 var(--sp-12);display:inline-flex;align-items:center;gap:var(--sp-6);
  font-size:var(--fs-6);font-weight:600;background:var(--acc);color:var(--acc-fg);border:1px solid transparent;white-space:nowrap}
.btn:hover{background:var(--acc-hover)}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line);font-weight:500}
.btn.ghost:hover{background:var(--surface-2)}
.btn.sm{height:27px;padding:0 var(--sp-10);font-size:var(--fs-4)}
.btn svg{width:14px;height:14px}
.iconbtn{width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--muted);border:1px solid transparent}
.iconbtn:hover{background:var(--surface-2);color:var(--text)}
.iconbtn:disabled:hover{background:none;color:var(--muted)}
.iconbtn svg{width:16px;height:16px}

/* ---------- hlavička stránky ---------- */
.ph{display:flex;align-items:flex-end;gap:var(--sp-14);margin-bottom:var(--sp-18);flex-wrap:wrap}
.ph h1{margin:0;font-size:var(--fs-14);font-weight:600;letter-spacing:-.015em}
.ph .sub{color:var(--muted);font-size:var(--fs-6);padding-bottom:var(--sp-2)}
.ph .grow{flex:1}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--sp-12);margin-bottom:var(--sp-18)}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-14) var(--sp-16);text-align:left;width:100%}
.kpi:hover{border-color:var(--line-strong)}
.kpi .k{font-size:var(--fs-2);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.kpi .v{font-size:var(--fs-14);font-weight:600;letter-spacing:-.02em;margin-top:var(--sp-6);line-height:1.1;font-variant-numeric:tabular-nums}
.kpi .s{font-size:var(--fs-4);color:var(--muted);margin-top:var(--sp-4)}
.kpi .v.ok{color:var(--ok)} .kpi .v.dng{color:var(--dng)} .kpi .v.warn{color:var(--warn)}

/* ---------- panely ---------- */
.cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--sp-14);align-items:start}
.cols.even{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.pan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:var(--sp-14);overflow:hidden}
.pan-h{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-12) var(--sp-16) var(--sp-10);border-bottom:1px solid var(--line)}
.pan-h h2{margin:0;font-size:var(--fs-7);font-weight:600}
.pan-h .more{margin-left:auto;font-size:var(--fs-4);color:var(--muted)}
.pan-h .more:hover{color:var(--acc)}
.pan-f{padding:var(--sp-10) var(--sp-16);border-top:1px solid var(--line);font-size:var(--fs-4);color:var(--muted)}

/* ---------- řádky a tabulky ---------- */
.row{display:flex;align-items:center;gap:var(--sp-10);padding:0 var(--sp-16);min-height:var(--row);
  border-bottom:1px solid var(--line);font-size:var(--fs-6);width:100%;text-align:left}
.row:last-child{border-bottom:0}
.row:hover{background:var(--surface-2)}
.row .t{flex:1;min-width:0}
.row .t b{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .t small{display:block;color:var(--muted);font-size:var(--fs-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .c{color:var(--muted);font-size:var(--fs-4);white-space:nowrap}
.row .n{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap;text-align:right}

.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-6)}
.tbl th{position:sticky;top:0;background:var(--surface);z-index:5;
  text-align:left;font-size:var(--fs-2);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);padding:var(--sp-8) var(--sp-12);border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:0 var(--sp-12);height:var(--row);border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:hover td{background:var(--surface-2)}
.tbl tr{cursor:default}
.tbl tr.clickable{cursor:pointer}
.tbl td.n{font-variant-numeric:tabular-nums;text-align:right}

/* ---------- pilulky, štítky ---------- */
.pill{display:inline-flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-2);font-weight:600;
  padding:var(--sp-2) var(--sp-8);border-radius:var(--pill);background:var(--neutral-bg);color:var(--neutral);white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.dng{background:var(--dng-bg);color:var(--dng)}
.pill.info{background:var(--info-bg);color:var(--info)}
.pill.acc{background:var(--acc-soft);color:var(--acc-ink)}
.cat{display:inline-flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-4);white-space:nowrap}
.cat .dot{width:8px;height:8px;border-radius:var(--r-xs);flex:none;background:var(--c)}
.catpill{display:inline-flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-2);font-weight:600;padding:var(--sp-2) var(--sp-8);
  border-radius:var(--pill);white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}
.tag{display:inline-flex;align-items:center;font-size:var(--fs-2);padding:var(--sp-2) var(--sp-8);border-radius:var(--r-sm);
  background:var(--surface-3);color:var(--text-2);white-space:nowrap}

/* ---------- filtry ---------- */
.filters{display:flex;gap:var(--sp-8);flex-wrap:wrap;margin-bottom:var(--sp-12);align-items:center}
.fchip{height:29px;padding:0 var(--sp-12);border-radius:var(--pill);border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);font-size:var(--fs-5);font-weight:500;
  display:inline-flex;align-items:center;gap:var(--sp-6)}
.fchip:hover{border-color:var(--line-strong)}
.fchip.on{background:var(--acc-soft);border-color:transparent;color:var(--acc-ink);font-weight:600}
.fchip .n{font-variant-numeric:tabular-nums;opacity:.65;font-weight:600}
.fsep{width:1px;height:20px;background:var(--line);margin:0 var(--sp-4)}

/* ---------- karta klienta ---------- */
.chead{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-16) var(--sp-18);margin-bottom:var(--sp-14)}
.chead .top{display:flex;align-items:flex-start;gap:var(--sp-14);flex-wrap:wrap}
.chead h1{margin:0;font-size:var(--fs-13);font-weight:600;letter-spacing:-.015em}
.chead .meta{display:flex;gap:var(--sp-8);flex-wrap:wrap;align-items:center;margin-top:var(--sp-8)}
/* #252: every label in the client header (status, Firma, Domácnost, labels) is the same small label. */
.chead .meta>:is(.pill,.tag){box-sizing:border-box;min-height:20px;padding:var(--sp-2) var(--sp-8);font-size:var(--fs-2);font-weight:600;line-height:16px;letter-spacing:0}
.qa{display:flex;gap:var(--sp-8);flex-wrap:wrap;margin-top:var(--sp-14)}
.tabs{display:flex;gap:var(--sp-2);border-bottom:1px solid var(--line);margin-bottom:var(--sp-14);overflow-x:auto}
.tab{padding:var(--sp-8) var(--sp-12);font-size:var(--fs-6);font-weight:500;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tab:hover{color:var(--text)}
.tab.on{color:var(--text);font-weight:600;border-bottom-color:var(--acc)}
.tab .n{font-size:var(--fs-2);color:var(--faint);font-variant-numeric:tabular-nums;margin-left:var(--sp-4)}

/* matice krytí */
.matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:var(--sp-8);padding:var(--sp-14) var(--sp-16)}
.mcell{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-10) var(--sp-10);background:var(--surface)}
.mcell .mc-h{display:flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-3);font-weight:600;color:var(--text-2)}
.mcell .mc-v{font-size:var(--fs-4);color:var(--muted);margin-top:var(--sp-4)}
.mcell.has{border-color:color-mix(in srgb,var(--c) 45%,var(--line));background:color-mix(in srgb,var(--c) 6%,var(--surface))}
.mcell.miss{border-style:dashed}
.mcell[aria-expanded=true]{outline:2px solid var(--c);outline-offset:-1px}
.mcell.miss .mc-v{color:var(--faint)}

/* příležitosti */
.opp{padding:var(--sp-12) var(--sp-16);border-bottom:1px solid var(--line)}
.opp:last-child{border-bottom:0}
.opp .oh{display:flex;align-items:center;gap:var(--sp-8);flex-wrap:wrap}
.opp .oh b{font-size:var(--fs-6);font-weight:600}
.opp .who{font-size:var(--fs-4);color:var(--muted);margin-top:var(--sp-2)}
.opp q{display:block;color:var(--text-2);font-size:var(--fs-5);font-style:italic;line-height:1.5;
  border-left:2px solid var(--acc);padding-left:var(--sp-10);margin:var(--sp-8) 0 var(--sp-10)}
.opp .oa{display:flex;gap:var(--sp-6);flex-wrap:wrap}

/* ---------- prázdné stavy, načítání ---------- */
.empty{padding:var(--sp-40) var(--sp-20);text-align:center;color:var(--muted)}
.empty .big{font-size:var(--fs-9);font-weight:600;color:var(--text);margin-bottom:var(--sp-6)}
.empty .btn{margin-top:var(--sp-12)}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- mobil ---------- */
.tabbar{display:none}
@media (max-width:860px){
  #app{flex-direction:column}
  .side{display:none}
  .main{padding-bottom:var(--tabbar)}
  .topbar{padding:0 var(--sp-14);gap:var(--sp-8)}
  .search{max-width:none}
  .search span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tbl th:nth-child(n+4),.tbl td:nth-child(n+4){display:none}
  .tbl td{height:auto;padding-top:var(--sp-8);padding-bottom:var(--sp-8)}
  .chead{padding:var(--sp-14)}
  .chead h1{font-size:var(--fs-12)}
  .matrix{grid-template-columns:1fr 1fr}
  .kbd{display:none}
  .page{padding:var(--sp-14) var(--sp-14) var(--sp-32)}
  .cols{grid-template-columns:1fr}
  .ph h1{font-size:var(--fs-13)}
  .kpis{grid-template-columns:1fr 1fr;gap:var(--sp-10)}
  .kpi{padding:var(--sp-12) var(--sp-12)}
  .kpi .v{font-size:var(--fs-12)}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;
    background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(180%) blur(14px);
    border-top:1px solid var(--line);padding:var(--sp-6) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom))}
  .tabbar .tb{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);
    color:var(--muted);font-size:var(--fs-1);font-weight:500;padding:var(--sp-4) 0}
  .tabbar .tb svg{width:21px;height:21px}
  .tabbar .tb.on{color:var(--acc);font-weight:600}
  .fab{position:fixed;right:16px;bottom:calc(var(--tabbar) + 12px);z-index:41;
    width:50px;height:50px;border-radius:50%;background:var(--acc);color:var(--acc-fg);
    display:grid;place-items:center;box-shadow:var(--sh-pop)}
  .fab svg{width:22px;height:22px}
}
@media (min-width:861px){.fab{display:none}}

/* ---------- přepínač měsíců a graf provizí ---------- */
.mesic{display:flex;align-items:center;gap:var(--sp-10);margin-bottom:var(--sp-16)}
.mesic .iconbtn{border:1px solid var(--line);background:var(--surface)}
.mesic .iconbtn:disabled{opacity:.35;cursor:default}
.mesic .iconbtn:disabled:hover{background:var(--surface)}

.graf{display:flex;align-items:flex-end;gap:var(--sp-4);padding:var(--sp-16) var(--sp-16) var(--sp-10);height:190px;overflow-x:auto}
.sloupec{flex:1;min-width:44px;height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-end;gap:var(--sp-6);border-radius:var(--r-sm);padding:var(--sp-4) var(--sp-2)}
.sloupec:hover{background:var(--surface-2)}
.sloupec .hodnota{font-size:var(--fs-1);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;
  white-space:nowrap;height:14px}
.sloupec.on .hodnota{color:var(--acc-ink)}
.sloupec .popis{font-size:var(--fs-1);color:var(--faint);white-space:nowrap}
.sloupec.on .popis{color:var(--text);font-weight:600}
@media (max-width:860px){
  .graf{height:160px;padding:var(--sp-12) var(--sp-10) var(--sp-8)}
  .sloupec{min-width:40px}
}

/* ---------- banner o novější verzi ---------- */
.banner{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-10) var(--sp-20);font-size:var(--fs-6);
  background:var(--acc-soft);color:var(--acc-ink);border-bottom:1px solid var(--line)}
.banner .iconbtn{margin-left:auto;color:var(--acc-ink);font-size:var(--fs-11);line-height:1}
@media (max-width:860px){.banner{padding:var(--sp-10) var(--sp-14)}}

/* ---------- podpoložky v levé liště ---------- */
.nv.pod{padding-left:var(--sp-32);font-size:var(--fs-5);color:var(--muted);min-height:30px}
.nv.pod.on{background:var(--surface);color:var(--text);font-weight:600}
.navgrp:empty{padding:var(--sp-8) 0 0}

/* ---------- tabule se sloupci (hypotéky v procesu) ---------- */
.kanban{display:flex;gap:var(--sp-12);overflow-x:auto;align-items:flex-start;
  padding:var(--sp-2) var(--sp-2) var(--sp-14);margin-bottom:var(--sp-14);scroll-snap-type:x proximity}
.sloup{flex:0 0 272px;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--r);padding:var(--sp-10);scroll-snap-align:start}
.sloup-h{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-2) var(--sp-4) var(--sp-10)}
.sloup-h .tecka{width:8px;height:8px;border-radius:var(--r-xs);flex:none}
.sloup-h b{font-size:var(--fs-5);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sloup-h .n{font-size:var(--fs-2);font-weight:600;color:var(--muted);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--pill);padding:0 var(--sp-6);font-variant-numeric:tabular-nums}
.sloup-h .obj{margin-left:auto;font-size:var(--fs-2);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.karta{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:var(--sp-10) var(--sp-12);margin-bottom:var(--sp-8)}
.karta:last-child{margin-bottom:0}
.karta:hover{border-color:var(--line-strong);box-shadow:var(--sh)}
.karta b{font-size:var(--fs-5);font-weight:600;display:block;line-height:1.35}
.karta .kl{font-size:var(--fs-3);color:var(--muted);margin-top:var(--sp-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.karta .cast{font-size:var(--fs-10);font-weight:600;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;margin-top:var(--sp-8)}
.karta .meta{display:flex;gap:var(--sp-6);flex-wrap:wrap;margin-top:var(--sp-8);font-size:var(--fs-2);color:var(--muted)}
.karta .meta .prov{color:var(--ok);font-weight:600}
.karta .krok{margin-top:var(--sp-8);font-size:var(--fs-3);color:var(--text-2);line-height:1.4;
  border-left:2px solid var(--acc);padding-left:var(--sp-8)}
.sloup .prazdny{font-size:var(--fs-3);color:var(--faint);padding:var(--sp-8) var(--sp-4)}
@media (max-width:860px){.sloup{flex:0 0 250px}}

/* ---------- přetahování karet ---------- */
.karta{cursor:grab}
.karta:active{cursor:grabbing}
.karta.tahnu{opacity:.4}
.sloup.nadhozeno{border-color:var(--acc);background:var(--acc-soft)}
.vhod{height:3px;background:var(--acc);border-radius:var(--r-xs);margin:var(--sp-4) 0 var(--sp-6)}
.karta{touch-action:pan-y}
.karta.tahnu{opacity:.4;transform:scale(.98)}
/* A card held by a finger follows it over the columns. */
.karta.zvednuta{opacity:.92;box-shadow:var(--sh-lift)}

/* ---------- dialog a formulář ---------- */
.prekryv{position:fixed;inset:0;z-index:120;background:var(--scrim);
  display:flex;justify-content:center;align-items:flex-start;padding:5vh var(--sp-16) var(--sp-16);overflow:auto}
.dialog{width:100%;max-width:780px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--sh-lift);display:flex;flex-direction:column;
  max-height:90vh;overflow:hidden}
.d-hlava{display:flex;align-items:flex-start;gap:var(--sp-12);padding:var(--sp-16) var(--sp-20) var(--sp-14);border-bottom:1px solid var(--line)}
.d-hlava h2{margin:0;font-size:var(--fs-11);font-weight:600;letter-spacing:-.01em}
.d-hlava p{margin:var(--sp-4) 0 0;font-size:var(--fs-5);color:var(--muted)}
.d-hlava .iconbtn{margin-left:auto;transform:rotate(45deg)}
.d-telo{padding:var(--sp-6) var(--sp-20) var(--sp-18);overflow:auto;flex:1}
.d-pata{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-12) var(--sp-20);border-top:1px solid var(--line);
  background:var(--surface-2)}
.btn.nebezpeci{color:var(--dng);border-color:var(--dng-bg)}
.btn.nebezpeci:hover{background:var(--dng-bg)}

/* ---------- menu na kartě ---------- */
.k-menu{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:var(--r-sm);
  display:grid;place-items:center;color:var(--faint);opacity:0}
.karta{position:relative;padding-right:var(--sp-32)}
.karta:hover .k-menu,.k-menu:focus-within{opacity:1}
.k-menu:hover{background:var(--surface-3);color:var(--text)}
.menu{position:absolute;top:26px;right:0;z-index:60;min-width:210px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lift);padding:var(--sp-6);cursor:default}
.m-pol{display:flex;align-items:center;gap:var(--sp-8);width:100%;text-align:left;padding:var(--sp-6) var(--sp-10);
  border-radius:var(--r-sm);font-size:var(--fs-6);color:var(--text);white-space:nowrap}
.m-pol:hover{background:var(--surface-2)}
.m-pol.nebezpeci{color:var(--dng)}
.m-pol .tecka{width:8px;height:8px;border-radius:var(--r-xs);flex:none}
.m-cara{height:1px;background:var(--line);margin:var(--sp-6) 0}
.m-nadpis{font-size:var(--fs-1);font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);padding:var(--sp-6) var(--sp-10) var(--sp-4)}
@media (max-width:860px){
    .prekryv{padding:0}
  .dialog{max-width:none;border-radius:0;max-height:100vh;height:100vh}
  .k-menu{opacity:1}
}
.nv.pod.cil{border:1px dashed var(--acc);color:var(--acc-ink)}
.nv.pod.nadhozeno{background:var(--acc);color:var(--acc-fg);border-style:solid;font-weight:600}
.dialog.uzky{max-width:420px}
.btn.cerveny{background:var(--dng);color:var(--on-status)}
.btn.cerveny:hover{background:var(--dng-hover)}

/* ---------- detail záznamu v notionovém duchu ---------- */
.dialog.detail{max-width:880px}
.dialog.detail .d-hlava h2{font-size:var(--fs-13);letter-spacing:-.015em}
.fchip.mini{height:22px;padding:0 var(--sp-8);font-size:var(--fs-1);font-weight:600}
.fchip.mini.mon{background:var(--info-bg);color:var(--info);border-color:transparent}

.vl{display:flex;align-items:flex-start;gap:var(--sp-10);min-height:32px;padding:var(--sp-2) 0}

@media (max-width:860px){
  .vl{flex-direction:column;gap:0;padding:var(--sp-6) 0;border-bottom:1px solid var(--line)}
}
.topbar .zpet{flex:none;padding:0 var(--sp-10) 0 var(--sp-8);color:var(--text-2)}
.topbar .zpet:hover{color:var(--text)}
@media (max-width:860px){.topbar .zpet span{display:none}}

/* ---------- přetahování vlastností ---------- */
.vl-obal{position:relative;border-radius:var(--r-sm)}
.vl-obal .vl{padding-left:var(--sp-18)}
.vl-uchyt{position:absolute;left:0;top:8px;width:16px;height:18px;display:grid;place-items:center;
  color:var(--faint);font-size:var(--fs-4);line-height:1;cursor:grab;opacity:0;border-radius:var(--r-xs);user-select:none}
.vl-obal:hover .vl-uchyt{opacity:1}
.vl-uchyt:hover{background:var(--surface-3);color:var(--text-2)}
.vl-uchyt:active{cursor:grabbing}
.vl-obal.tahnu{opacity:.4}
.vl-obal.cil{box-shadow:inset 0 2px 0 var(--acc)}
@media (max-width:860px){.vl-uchyt{opacity:1;left:0}.vl-obal .vl{padding-left:var(--sp-16)}}

/* ---------- záložky v detailu hypotéky ---------- */
.zalozky{display:flex;gap:var(--sp-2);margin:var(--sp-14) calc(-1 * var(--sp-20)) 0;padding:0 var(--sp-14);overflow-x:auto;
  scrollbar-width:none}
.zalozky::-webkit-scrollbar{display:none}
.zal{position:relative;display:flex;align-items:center;gap:var(--sp-8);white-space:nowrap;
  padding:var(--sp-10) var(--sp-10) var(--sp-10);font-size:var(--fs-6);color:var(--muted);border-bottom:2px solid transparent;
  border-radius:var(--r-sm) var(--r-sm) 0 0}
.zal:hover{color:var(--text);background:var(--surface-2)}
.zal.on{color:var(--text);font-weight:600;border-bottom-color:var(--acc)}
.zal.cil{background:var(--surface-3);border-bottom-color:var(--acc)}
.zal-pocet{font-size:var(--fs-2);color:var(--faint);font-variant-numeric:tabular-nums;
  background:var(--surface-3);padding:1px var(--sp-6);border-radius:var(--pill)}
.zal.on .zal-pocet{color:var(--muted)}
@media (max-width:860px){.zalozky{margin:var(--sp-12) calc(-1 * var(--sp-16)) 0;padding:0 var(--sp-12)}}

/* ---------- rozbalovací produkty v liště ---------- */
.nv span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- to do list ---------- */
/* tři sloupce se roztáhnou na šířku, není důvod je posouvat do strany */
.kanban.todo{overflow-x:visible}
.kanban.todo .sloup{flex:1 1 0;min-width:240px}
@media (max-width:860px){.kanban.todo{overflow-x:auto}.kanban.todo .sloup{flex:0 0 82%}}
.karta.ukol{padding:var(--sp-8) var(--sp-10);cursor:default}
.karta.ukol.hotovo{opacity:.6}
.karta.ukol .kl{margin-top:var(--sp-4)}

/* ---------- počítadlo hotových úkolů ---------- */
.skore{display:flex;align-items:flex-end;gap:var(--sp-28);padding:var(--sp-14) var(--sp-16);margin-bottom:var(--sp-14);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.skore-cislo{display:flex;flex-direction:column;gap:var(--sp-2);min-width:104px}
.skore-cislo .k{font-size:var(--fs-3);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.skore-cislo b{font-size:var(--fs-15);line-height:1.05;font-weight:650;font-variant-numeric:tabular-nums}
.skore-cislo b.ok{color:var(--ok)}
.skore-cislo .s{font-size:var(--fs-3);color:var(--faint)}
.skore-graf{flex:1;display:flex;align-items:flex-end;gap:var(--sp-8);height:56px}
.skore-den{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);height:100%;
  justify-content:flex-end}
.skore-den i{display:block;width:100%;max-width:34px;min-height:3px;border-radius:var(--r-xs);
  background:var(--surface-3)}
.skore-den i.dnes{background:var(--ok)}
.skore-den span{font-size:var(--fs-1);color:var(--faint)}
@media (max-width:860px){.skore{gap:var(--sp-14)}.skore-graf{display:none}}

/* ---------- nahrání smlouvy ---------- */
.dropzona{display:flex;align-items:center;gap:var(--sp-12);flex-wrap:wrap;padding:var(--sp-18) var(--sp-16);margin:var(--sp-2) 0 var(--sp-14);
  border:1.5px dashed var(--line);border-radius:var(--r);color:var(--muted);font-size:var(--fs-7);
  cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.dropzona .hlavni{font-weight:500}
.dropzona .dodatek{flex-basis:100%;margin-left:var(--sp-28);font-size:var(--fs-4);color:var(--faint)}
.dropzona:hover{border-color:var(--acc);color:var(--text)}
.dropzona.nad{border-color:var(--acc);border-style:solid;background:var(--surface-2);color:var(--text)}
.dropzona.ctu{border-style:solid;border-color:var(--acc);color:var(--text)}
.dropzona svg{opacity:.65;flex:0 0 auto}
.dropzona .chyba{margin-left:auto;font-style:normal;font-size:var(--fs-4);color:var(--dng);text-align:right}
.nalez{display:flex;flex-direction:column;gap:1px}
.nalez-radek{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-8) var(--sp-8);border-radius:var(--r-sm);
  cursor:pointer;font-size:var(--fs-7)}
.nalez-radek:hover{background:var(--surface-2)}
.nalez-radek .p{flex:0 0 190px;color:var(--muted);font-size:var(--fs-6)}
.nalez-radek .stara{color:var(--faint);text-decoration:line-through}
.nalez-radek .sip{color:var(--faint)}
.nalez-radek b{font-variant-numeric:tabular-nums}
.nalez-radek .shoda{margin-left:auto;font-style:normal;font-size:var(--fs-3);color:var(--faint)}
.nalez-pozn{margin:var(--sp-12) var(--sp-2) 0;font-size:var(--fs-5);color:var(--muted);line-height:1.5}
.nalez-klient{margin:var(--sp-12) var(--sp-2) 0;padding:var(--sp-10) var(--sp-12);border-radius:var(--r-sm);font-size:var(--fs-5);
  line-height:1.5;background:var(--surface-2);color:var(--text-2)}
.nalez-klient.novy{background:var(--acc-soft);color:var(--text)}
.n.odhad{color:var(--muted)}
.f-odhad{margin:var(--sp-10) var(--sp-2) 0;padding:var(--sp-10) var(--sp-12);border-radius:var(--r-sm);font-size:var(--fs-5);
  line-height:1.6;background:var(--surface-2);color:var(--text-2)}
.f-odhad b{color:var(--text)}
.f-odhad i{font-style:normal;color:var(--faint)}

/* ---------- podklady k případu ---------- */
.dropzona.velka{padding:var(--sp-24) var(--sp-18);margin-bottom:var(--sp-14)}
.soubory{display:flex;flex-direction:column}
.soubor{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-8) var(--sp-2);border-bottom:1px solid var(--line)}
.soubor:last-child{border-bottom:0}
.soubor svg{opacity:.55;flex:0 0 auto}
.soubor .jm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:var(--fs-7);color:var(--text);text-decoration:none}
.soubor .jm:hover{color:var(--acc);text-decoration:underline}
.soubor .vel,.soubor .kdy{font-size:var(--fs-3);color:var(--faint);font-variant-numeric:tabular-nums;
  flex:0 0 auto}
.soubor .iconbtn{transform:rotate(45deg);color:var(--faint)}
.soubor .iconbtn:hover{color:var(--dng)}

label.btn{display:inline-flex;align-items:center;cursor:pointer}

/* #205: one Czech date field everywhere. The calendar button sits at the field's right end; screens may place it
   more precisely. Its native popup and icon follow the current theme. */
input.crm-date-picker{display:block;width:2.5rem;min-width:0;margin:calc(-1 * var(--sp-40)) 0 0 auto;padding:var(--sp-8) var(--sp-6);border:0;background:transparent;color:transparent;cursor:pointer;color-scheme:light}
input.crm-date-picker::-webkit-datetime-edit{display:none}
:root[data-theme="dark"] input.crm-date-picker{color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) input.crm-date-picker{color-scheme:dark}}

/* ---------- #263 okno „Co jsem našel“ (dříve vložené z crm-contract-drop.js) ---------- */
[data-contract-drop-panel].nalez-okno{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-24);background:var(--scrim)}
.nalez-okno>.nalez-dialog{display:flex;flex-direction:column;gap:0;width:min(760px,100%);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);margin:0;padding:0;overflow:hidden;border-radius:var(--r-lg);background:var(--surface);color:var(--text);box-shadow:var(--sh-lift)}
.nalez-dialog>h3{margin:0;padding:var(--sp-16) var(--sp-20) var(--sp-6);outline:none}
.nalez-dialog>.nalez-telo{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 var(--sp-20) var(--sp-14)}
.nalez-dialog>.nalez-akce{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:var(--sp-8);justify-content:flex-end;padding:var(--sp-12) var(--sp-20);border-top:1px solid var(--line);background:var(--surface)}
.ze-smlouvy{margin-left:var(--sp-6);padding:1px var(--sp-6);border-radius:var(--pill);font-size:var(--fs-2);font-weight:600;color:var(--info);background:var(--info-bg)}
.nalez-ze-smlouvy{margin:0 0 var(--sp-12);padding:var(--sp-10) var(--sp-12);border-radius:var(--r);background:var(--info-bg);font-size:var(--fs-6)}
@media (max-width:600px){[data-contract-drop-panel].nalez-okno{padding:0;align-items:stretch}.nalez-okno>.nalez-dialog{width:100%;height:100%;max-height:none;border-radius:0}.nalez-dialog>.nalez-akce{padding-bottom:max(var(--sp-12),env(safe-area-inset-bottom))}.nalez-dialog>.nalez-akce>button{flex:1 1 0}}

/* ---------- #207 sdílený vzhled obrazovek ---------- */
/* Fields: every text field, select and textarea looks like a form field of the original. A component class
   (.vl-vstup, .search input, …) still wins, because :where() adds no selector weight. Screens set only widths. */
:where(input:not([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=button],[type=submit],[type=reset],[type=image],[type=hidden]),select,textarea){
  padding:var(--sp-6) var(--sp-10);border:1px solid var(--line-strong);border-radius:var(--r-sm);
  background:var(--surface);color:var(--text);font-size:var(--fs-7);max-width:100%;min-width:0}
:where(textarea){line-height:1.5;resize:vertical}
:where(input:focus,select:focus,textarea:focus){outline:none;border-color:var(--acc);box-shadow:var(--focus)}
:where(input:disabled,select:disabled,textarea:disabled){opacity:.6;cursor:not-allowed}
:where(input[readonly]){color:var(--muted)}
:where(input[type=checkbox],input[type=radio]){width:18px;height:18px;accent-color:var(--acc)}
:where(input,textarea)::placeholder{color:var(--faint)}
/* A value that reads as text until pointed at or clicked (the deal window's fields, as the original's property rows). */
.vl-pole{border-color:transparent;background:transparent}
.vl-pole:hover{background:var(--surface-2)}
.vl-pole:focus{border-color:var(--acc);background:var(--surface)}
/* Buttons joined into one control (Sloupce | Seznam). */
.segment{display:inline-flex}
.segment>.btn{border-radius:0}
.segment>.btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.segment>.btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}
.segment>.btn+.btn{margin-left:-1px}
/* A chosen toggle or chip: aria-pressed marks it as .on does. */
.btn.ghost[aria-pressed=true],.btn.ghost[aria-selected=true]{background:var(--acc-soft);color:var(--acc-ink);border-color:var(--acc-ink)}
.fchip[aria-pressed=true]{background:var(--acc-soft);border-color:transparent;color:var(--acc-ink);font-weight:600}
.btn.ghost.nebezpeci,.iconbtn.nebezpeci{color:var(--dng)}
.btn.ghost.nebezpeci:hover,.iconbtn.nebezpeci:hover{background:var(--dng-bg)}
/* An icon button that removes something stays quiet until pointed at (× on a task card). */
.iconbtn.smazat:hover,.iconbtn.smazat:focus-visible{color:var(--dng)}
/* A text button that reads as a link: a name that opens its record. */
.linkbtn{padding:0;text-align:left;color:inherit;font-weight:500;text-decoration:underline;text-decoration-color:var(--line-strong);
  text-underline-offset:2px;overflow-wrap:anywhere}
.linkbtn:hover{color:var(--acc);text-decoration-color:currentColor}
/* A card: one record on a bordered surface. Screens give it padding and place it in their grid. */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0;overflow-wrap:anywhere}
/* A chosen card (a tile that filters), a card or chip whose change is being saved or waits. */
.card[aria-pressed=true]{border-color:var(--acc);background:var(--acc-soft)}
.card.busy,.karta.busy,.fchip.waiting{opacity:.6}
/* An inset area inside a card, such as the Oslovit panel under an opportunity. */
.inset{background:var(--surface-2);border-top:1px solid var(--line)}
/* A quick-add field at the end of a column (Přidat…), dashed as in the original. */
.field-add{border-style:dashed}
.field-add:focus{border-style:solid}
/* A number edited in place in a header, such as the market rate on Koho oslovit. */
.numfield{min-height:0;padding:0 var(--sp-2);border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;
  color:var(--text);font-size:var(--fs-11);font-weight:600;text-align:right}
.numfield[readonly]{border-bottom-color:transparent;color:var(--text)}
.numfield:focus{box-shadow:none;border-bottom-color:var(--acc)}
/* Messages: an error is red wherever it appears; a hint is quiet. */
.error{color:var(--dng)}
.hint{color:var(--muted);font-size:var(--fs-6)}
}
