/* =====================================================================
   AI Účtovník — dizajn systém
   ---------------------------------------------------------------------
   TOKENY        :root (svetlá) / [data-theme=dark]
   LAYOUT        .app .sidebar .main .topbar .content
   HLAVIČKA      .page-head .eyebrow h1 .sub .actions
   MRIEŽKA       .grid .g-2 .g-3 .g-4 .g-12 + .span-3/4/5/6/7/8/9/12, .stack, .row
   KARTY         .card .card.pad-0 .card-hd .card-title .card-sub .card-ft .card.dark .card.ai
   KPI           .kpi .kpi-label .kpi-value .kpi-delta.up/.down .kpi-foot
   TLAČIDLÁ      .btn .btn-primary .btn-ai .btn-ghost .btn-dark .btn-sm .btn-lg .icon-btn
   ŠTÍTKY        .chip + .ok/.warn/.bad/.info/.ai/.muted/.violet, .chip.dot, .tag, .count
   TABUĽKA       .table (th/td), .num, .t-strong, .t-muted, tr.is-active
   ZOZNAM        .list > .li (.li-ico .li-main .li-title .li-sub .li-end)
   TABY          .tabs > button.on ; .seg > button.on
   FORMULÁR      .field .field-label .field-value .input .select .switch
   PROGRES       .progress > i (style width) ; .progress.ok/.warn/.bad
   AI            .ai-note (gradient okraj + iskra) .ai-orb .ai-glow .grad-text
   OSTATNÉ       .avatar .avatars .logo-tile .divider .kbd .dropzone .steps .timeline
                 .empty .mono .muted .ink-2 .hide-sm
   GRAFY         .chart (kontajner, kreslí core.js) .legend .lg-i .ui-tt (tooltip)
   ===================================================================== */

:root{
  --bg:#F3F4F8;
  --bg-glow:radial-gradient(1100px 520px at 88% -8%, rgba(91,91,246,.10), transparent 62%),
            radial-gradient(900px 480px at -6% 104%, rgba(20,168,138,.08), transparent 60%);
  --surface:#FFFFFF;
  --surface-2:#F7F8FB;
  --surface-3:#EEF0F6;
  --border:#E7E9F1;
  --border-strong:#D6D9E6;
  --ink:#0F1222;
  --ink-2:#4A5068;
  --muted:#5F657C;   /* ≥ 4,5:1 na všetkých svetlých plochách aj jemných výplniach čipov a AI poznámok (pôvodne #80869F: 3,6 na bielej) */
  --faint:#676D86;   /* drobný text (skupiny v menu, čas, oddeľovače) ≥ 4,5:1 na --bg, --surface, --surface-2 (pôvodne #B3B8CB: 2,0) */

  --primary:#5B5BF6;
  --primary-600:#4848E2;
  --primary-soft:#EEEEFF;
  --primary-ink:#3D3DC8;
  /* výplne pod bielym textom (tlačidlá, bubliny, odznaky, čísla krokov) — v oboch režimoch ≥ 4,5:1 s bielou
     (--ok #12A150 má s bielou 3,4 a --bad #E5484D 3,9, preto tmavší odtieň) */
  --primary-fill:#5B5BF6; --ok-fill:#1E8449; --bad-fill:#D63A40;
  /* AI gradient pod bielym textom (tlačidlo AI, odznak „nové“, čipy): každý bod ≥ 4,5:1 (--ai končí #22C9B4: 2,1) */
  --ai-fill:linear-gradient(135deg,#5E4FF2 0%,#2D6FDB 52%,#0E8577 100%);
  /* AI gradient ako farba textu (.grad-text): každý bod ≥ 4,5:1 na svetlých plochách (--ai končí #22C9B4: 2,1 na bielej) */
  --ai-ink:linear-gradient(135deg,#5246E0 0%,#2766CF 52%,#0C786B 100%);
  --lime:#D4F46A;
  --navy:#13152C;
  --navy-2:#1D2042;

  --ok:#12A150;  --ok-soft:#E5F6EB;  --ok-ink:#0A7A3A;
  --warn:#E09300;--warn-soft:#FFF3D9;--warn-ink:#935A00;
  --bad:#E5484D; --bad-soft:#FDEBEC; --bad-ink:#BE2A2F;
  --info:#2A78D6;--info-soft:#E6EFFC;--info-ink:#1C5EAF;

  /* séria grafov — overené validátorom (adjacent CVD ≥ 9.3, svetlá aj tmavá) */
  --s1:#5b5bf6; --s2:#f08a3c; --s3:#14a88a; --s4:#e2a400;
  --s1-soft:rgba(91,91,246,.12);
  --grid:#EDEFF5;

  --ai:linear-gradient(135deg,#6D5DFC 0%,#4F8BFF 52%,#22C9B4 100%);
  --ai-soft:linear-gradient(135deg,rgba(109,93,252,.10),rgba(79,139,255,.08) 52%,rgba(34,201,180,.10));

  --r:20px; --r-md:14px; --r-sm:10px; --r-xs:7px;
  --shadow:0 1px 2px rgba(17,20,45,.04), 0 8px 28px -12px rgba(17,20,45,.10);
  --shadow-lg:0 30px 70px -24px rgba(17,20,45,.32);
  --font:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sidebar:256px;
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#0B0D18;
  --bg-glow:radial-gradient(1100px 520px at 88% -8%, rgba(123,123,255,.16), transparent 62%),
            radial-gradient(900px 480px at -6% 104%, rgba(22,154,126,.12), transparent 60%);
  --surface:#141728;
  --surface-2:#191C30;
  --surface-3:#21253C;
  --border:#252943;
  --border-strong:#33385A;
  --ink:#F1F2FA;
  --ink-2:#B5B9D0;
  --muted:#8F95B0;   /* ≥ 5:1 na všetkých plochách (pôvodne #7D839F: 4,0 na --surface-3) */
  --faint:#7E84A2;   /* ≥ 4,5:1 na --bg, --surface, --surface-2 — aj drobný text (pôvodne #4D5373: 2,0) */
  --primary:#8A8AFF; --primary-600:#4848E2; --primary-soft:rgba(123,123,255,.14); --primary-ink:#A9A9FF; /* --primary ≥ 4,5:1 aj na --primary-soft (pôvodne #7B7BFF: 4,3) */
  /* výplne s bielym textom (--primary-fill, --ok-fill, --bad-fill, --ai-fill) sú rovnaké ako vo svetlom režime:
     tmavé --primary/--ok/--bad majú s bielou < 3,5:1 */
  --navy:#0F1124; --navy-2:#1A1D3A;
  --ok:#2BBF6A; --ok-soft:rgba(43,191,106,.14); --ok-ink:#5FD892;
  --warn:#E8A317; --warn-soft:rgba(232,163,23,.14); --warn-ink:#F2C063;
  --bad:#F06A6E; --bad-soft:rgba(240,106,110,.14); --bad-ink:#FF9A9D;
  --info:#4F94EA; --info-soft:rgba(79,148,234,.15); --info-ink:#8DBBF5;
  --s1:#7b7bff; --s2:#d9702a; --s3:#169a7e; --s4:#b88200;
  --s1-soft:rgba(123,123,255,.16);
  --ai-ink:linear-gradient(135deg,#8F84FF 0%,#5C9BFF 52%,#2FD3BD 100%); /* text s AI gradientom ≥ 4,5:1 na tmavých plochách (#6D5DFC: 3,9) */
  --grid:#20243A;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 30px -12px rgba(0,0,0,.5);
  color-scheme:dark;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:var(--font);font-size:14px;line-height:1.5;color:var(--ink);
  background:var(--bg);background-image:var(--bg-glow);background-attachment:fixed;
  -webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11";
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
svg{flex-shrink:0}
::selection{background:var(--primary-soft)}
.num,.tnum{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:12.5px}
.muted{color:var(--muted)} .ink-2{color:var(--ink-2)} .ink{color:var(--ink)}
.ok-t{color:var(--ok-ink)} .warn-t{color:var(--warn-ink)} .bad-t{color:var(--bad-ink)} .pri-t{color:var(--primary-ink)}
.b{font-weight:700} .sb{font-weight:600}
.small{font-size:12.5px} .xs{font-size:11.5px}
.nowrap{white-space:nowrap}
.right{text-align:right}
.center{text-align:center}

/* ---------- LAYOUT ---------- */
.app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.sidebar{
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  padding:18px 14px 14px;gap:6px;overflow:hidden;
}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 14px}
.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--ai);display:grid;place-items:center;color:#fff;
  box-shadow:0 8px 22px -8px rgba(91,91,246,.7), inset 0 0 0 1px rgba(255,255,255,.18)}
.brand-name{font-weight:800;font-size:16.5px;letter-spacing:-.02em;line-height:1.1}
.brand-sub{font-size:11.5px;color:var(--muted);font-weight:500}
.ws{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;background:var(--surface);border:1px solid var(--border);margin:0 2px 8px;box-shadow:var(--shadow)}
.ws-logo{width:30px;height:30px;border-radius:9px;background:var(--navy);color:var(--lime);display:grid;place-items:center;font-weight:800;font-size:12px}
.ws-name{font-weight:700;font-size:13px;line-height:1.2}
.ws-meta{font-size:11.5px;color:var(--muted)}
.nav{flex:1;overflow-y:auto;scrollbar-width:none;padding:0 2px 10px;
  mask-image:linear-gradient(#000 calc(100% - 26px),transparent)}
.nav::-webkit-scrollbar{display:none}
.nav-group{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:12px 10px 5px}
.nav a{display:flex;align-items:center;gap:11px;min-height:34px;padding:0 10px;border-radius:10px;color:var(--ink-2);font-weight:550;font-size:13.5px;position:relative;transition:background .15s,color .15s}
.nav a:hover{background:var(--surface);color:var(--ink)}
.nav a.on{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:var(--shadow)}
.nav a.on::before{content:"";position:absolute;left:-2px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--primary)}
.nav a.on svg{color:var(--primary)}
/* názov položky: bližšie k počítadlu; keď sa ani tak nezmestí, zalomí sa na 2 riadky (ostatné položky ostanú 34 px) */
.nav a>span:first-of-type{min-width:0;margin-right:-4px;padding:2px 0;line-height:1.2;overflow:hidden;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.nav a .count{margin-left:auto}
.nav a .new{margin-left:auto;font-size:10px;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--ai-fill);color:#fff}
.side-foot{border-top:1px solid var(--border);padding:12px 6px 2px;display:flex;align-items:center;gap:10px}
.side-foot .who{flex:1;min-width:0}
.side-foot .who b{display:block;font-size:13px;line-height:1.2}
.side-foot .who span{font-size:11.5px;color:var(--muted)}

.main{min-width:0;display:flex;flex-direction:column}
.main [id]{scroll-margin-top:88px}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:14px 32px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.crumbs{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:550;min-width:0}
.crumbs b{color:var(--ink);font-weight:700}
.top-sp{flex:1}
.search{display:flex;align-items:center;gap:9px;height:40px;width:300px;padding:0 8px 0 13px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:13px;cursor:text}
.search span{flex:1}
.client-sw{display:flex;align-items:center;gap:9px;height:40px;padding:0 12px 0 6px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-weight:650;font-size:13px}
.client-sw .avatar{width:28px;height:28px;font-size:11px;border-radius:8px}
.content{padding:6px 32px 64px;max-width:1560px;width:100%}

/* ---------- PAGE HEAD ---------- */
.page-head{display:flex;align-items:flex-end;gap:20px;margin:6px 0 22px}
.page-head .ph-main{flex:1;min-width:0}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--primary-ink);letter-spacing:.01em;margin-bottom:6px}
.page-head h1{font-size:30px;line-height:1.15;letter-spacing:-.03em;margin:0;font-weight:800}
.page-head .sub{color:var(--ink-2);margin-top:6px;font-size:14.5px;max-width:780px}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
h2.sec{font-size:17px;letter-spacing:-.02em;margin:30px 0 14px;font-weight:750;display:flex;align-items:center;gap:10px}
h2.sec .muted{font-weight:500;font-size:13px}

/* ---------- GRID ---------- */
.grid{display:grid;gap:16px}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.g-12{grid-template-columns:repeat(12,minmax(0,1fr))}
.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}
.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:1/-1}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:flex;align-items:center;gap:10px}
.row.wrap{flex-wrap:wrap}
.row.between{justify-content:space-between}
.sp{flex:1}
[hidden]{display:none!important}
.mt-0{margin-top:0}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}

/* ---------- CARD ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);min-width:0;position:relative}
.card.pad-0{padding:0}
.card.flat{box-shadow:none}
.card.soft{background:var(--surface-2);box-shadow:none}
.card-hd{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.card.pad-0 .card-hd{padding:18px 20px 0}
.grow,.card-hd .grow{flex:1;min-width:0}
.card-title{font-weight:750;font-size:15px;letter-spacing:-.015em;display:flex;align-items:center;gap:8px}
.card-sub{color:var(--muted);font-size:12.5px;margin-top:2px}
.card-ft{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);margin:16px -20px -20px;padding:12px 20px;color:var(--muted);font-size:12.5px}
.card.pad-0 .card-ft{margin:0}
.card.hover{transition:transform .18s,box-shadow .18s,border-color .18s;cursor:pointer}
.card.hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}
.card.dark{background:var(--navy);border-color:transparent;color:#EEF0FF;overflow:hidden;isolation:isolate}
.card.dark::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(520px 260px at 100% 0%,rgba(109,93,252,.55),transparent 65%),radial-gradient(420px 240px at 0% 100%,rgba(34,201,180,.30),transparent 65%)}
.card.dark .card-sub,.card.dark .muted{color:#A3A8CC}
/* tokeny v tmavej karte — grafy, legendy, hbars a chipy sa prispôsobia samy */
.card.dark{--surface:rgba(255,255,255,.06);--surface-2:rgba(255,255,255,.04);--ink:#EEF0FF;--ink-2:#C9CCEA;--muted:#A3A8CC;--grid:rgba(255,255,255,.09);--border:rgba(255,255,255,.12);--border-strong:rgba(255,255,255,.24);--surface-3:rgba(255,255,255,.09)}
.card.ai{border:1px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ai) border-box}
.ico-box{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink);flex-shrink:0}
.ico-box.ok{background:var(--ok-soft);color:var(--ok-ink)} .ico-box.warn{background:var(--warn-soft);color:var(--warn-ink)}
.ico-box.bad{background:var(--bad-soft);color:var(--bad-ink)} .ico-box.info{background:var(--info-soft);color:var(--info-ink)}
.ico-box.ai{background:var(--ai);color:#fff} .ico-box.dark{background:var(--navy);color:var(--lime)}
.ico-box.sm{width:30px;height:30px;border-radius:9px}
.ico-box.lg{width:48px;height:48px;border-radius:14px}

/* ---------- KPI ---------- */
.kpi{display:flex;flex-direction:column;gap:6px}
.kpi-label{color:var(--ink-2);font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}
.kpi-value{font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi-value small{font-size:15px;font-weight:650;color:var(--muted);letter-spacing:-.01em;margin-left:3px}
.kpi-delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.kpi-delta.up{background:var(--ok-soft);color:var(--ok-ink)}
.kpi-delta.down{background:var(--bad-soft);color:var(--bad-ink)}
.kpi-delta.flat{background:var(--surface-3);color:var(--ink-2)}
.kpi-foot{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.kpi-ft{min-width:0}
.hero-num{font-size:52px;font-weight:800;letter-spacing:-.045em;line-height:1}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 15px;border-radius:11px;border:1px solid var(--border);background:var(--surface);font-weight:650;font-size:13.5px;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}
.btn:hover{border-color:var(--border-strong);background:var(--surface-2)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px -6px rgba(91,91,246,.6)}
.btn-primary:hover{background:var(--primary-600);border-color:var(--primary-600)}
.btn-ai{background:var(--ai-fill);border:0;color:#fff;box-shadow:0 8px 20px -8px rgba(79,139,255,.75)}
.btn-ai:hover{filter:brightness(.94);background:var(--ai-fill)}
.btn-dark{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy-2)}
.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-ok:hover{filter:brightness(1.05);background:var(--ok)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:var(--surface-3)}
.btn-sm{height:30px;padding:0 11px;font-size:12.5px;border-radius:9px;gap:6px}
.btn-lg{height:46px;padding:0 20px;font-size:14.5px;border-radius:13px}
.btn-warn{background:var(--warn-soft);border-color:transparent;color:var(--warn-ink)}
.btn-bad{background:var(--bad-soft);border-color:transparent;color:var(--bad-ink)}
/* bežné tlačidlo v tmavej karte = sklo; :where drží nízku špecificitu, vlastné štýly obrazoviek vyhrajú */
:where(.card.dark) .btn:where(:not(.btn-primary,.btn-ai,.btn-ok,.btn-dark,.btn-ghost,.btn-warn,.btn-bad)){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#EEF0FF}
:where(.card.dark) .btn:where(:not(.btn-primary,.btn-ai,.btn-ok,.btn-dark,.btn-ghost,.btn-warn,.btn-bad)):hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.26)}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--ink-2);position:relative}
.icon-btn:hover{color:var(--ink);border-color:var(--border-strong)}
.icon-btn.sm{width:30px;height:30px;border-radius:9px}
.icon-btn .pip{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--bad);box-shadow:0 0 0 2px var(--surface)}

/* ---------- CHIPS ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:99px;font-size:12px;font-weight:650;white-space:nowrap;background:var(--surface-3);color:var(--ink-2)}
.chip.ok{background:var(--ok-soft);color:var(--ok-ink)}
.chip.warn{background:var(--warn-soft);color:var(--warn-ink)}
.chip.bad{background:var(--bad-soft);color:var(--bad-ink)}
.chip.info{background:var(--info-soft);color:var(--info-ink)}
.chip.violet{background:var(--primary-soft);color:var(--primary-ink)}
.chip.ai{background:var(--ai-soft);color:var(--primary-ink);box-shadow:inset 0 0 0 1px rgba(109,93,252,.22)}
.chip.dark{background:var(--navy);color:var(--lime)}
.chip.outline{background:transparent;box-shadow:inset 0 0 0 1px var(--border-strong)}
.chip.dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.lg{height:28px;padding:0 12px;font-size:12.5px}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:650;background:var(--surface-3);color:var(--ink-2);font-family:var(--mono)}
.count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;font-size:11px;font-weight:750;background:var(--primary);color:#fff}
.count.muted{background:var(--surface-3);color:var(--ink-2)}
.count.bad{background:var(--bad)}

/* ---------- TABLE ---------- */
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.table th{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface)}
.table td{padding:12px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .12s}
.table tbody tr:hover td{background:var(--surface-2)}
.table tr.is-active td{background:var(--primary-soft)}
.table .num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table .t-strong{font-weight:700}
.table .t-sub{font-size:12px;color:var(--muted);margin-top:1px}
.table td:first-child,.table th:first-child{padding-left:20px}
.table td:last-child,.table th:last-child{padding-right:20px}
.table.compact td{padding-top:8px;padding-bottom:8px}
.sub-h{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
tr.click{cursor:pointer}

/* ---------- LIST ---------- */
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.li:last-child{border-bottom:0}
.li-main{flex:1;min-width:0}
.li-title{font-weight:650;font-size:13.5px;line-height:1.35}
.li-sub{color:var(--muted);font-size:12.5px;line-height:1.4;margin-top:1px}
.li-end{text-align:right;white-space:nowrap}

/* ---------- TABS ---------- */
.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:13px;background:var(--surface-3)}
.tabs button{border:0;background:transparent;height:32px;padding:0 13px;border-radius:9px;font-weight:650;font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px}
.tabs button:hover{color:var(--ink)}
.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(17,20,45,.10)}
.tabs.sm button{height:26px;font-size:12px;padding:0 10px}
.ul-tabs{display:flex;gap:22px;border-bottom:1px solid var(--border);margin-bottom:16px}
.ul-tabs button{border:0;background:none;padding:10px 0;font-weight:650;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;gap:7px;align-items:center}
.ul-tabs button.on{color:var(--ink);border-color:var(--primary)}

/* ---------- FORM ---------- */
.field{display:flex;flex-direction:column;gap:5px}
.field-label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.field-value{font-weight:650}
.input,.select{height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);padding:0 12px;font:inherit;color:var(--ink);width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
textarea.input{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}
.switch{position:relative;width:38px;height:22px;border-radius:99px;background:var(--border-strong);border:0;flex-shrink:0;transition:background .2s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.switch.on{background:var(--primary)}
.switch.on::after{transform:translateX(16px)}
.switch:disabled,.switch.disabled{opacity:.45;cursor:not-allowed}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:var(--surface)}
.seg button{border:0;background:transparent;height:32px;padding:0 13px;font-weight:650;font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px}
.seg button+button{border-left:1px solid var(--border)}
.seg button.on{background:var(--primary-soft,var(--surface-3));color:var(--primary-ink)}
input[type=range]{accent-color:var(--primary);width:100%}
input[type=range]{accent-color:var(--primary);width:100%}

/* ---------- PROGRESS ---------- */
.progress{height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.progress>i{display:block;height:100%;border-radius:99px;background:var(--primary)}
.progress.ok>i{background:var(--ok)} .progress.warn>i{background:var(--warn)} .progress.bad>i{background:var(--bad)} .progress.ai>i{background:var(--ai)}
.progress.thin{height:5px}

/* ---------- AI ---------- */
.ai-note{position:relative;display:flex;gap:12px;padding:14px 16px;border-radius:var(--r-md);background:var(--ai-soft);border:1px solid rgba(109,93,252,.22)}
.ai-note .ai-ico{width:30px;height:30px;border-radius:9px;background:var(--ai);color:#fff;display:grid;place-items:center;flex-shrink:0}
.ai-note b{font-weight:700}
.ai-note .ai-txt{font-size:13.5px;line-height:1.5;color:var(--ink)}
.ai-note .ai-txt .muted{display:block;margin-top:3px;font-size:12.5px}
.grad-text{background:var(--ai-ink);-webkit-background-clip:text;background-clip:text;color:transparent}
.ai-orb{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 30% 28%,#fff 0,rgba(255,255,255,.0) 34%),var(--ai);box-shadow:0 8px 22px -6px rgba(79,139,255,.8),inset 0 0 0 1px rgba(255,255,255,.25);display:grid;place-items:center;color:#fff;border:0}
.pulse{animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(91,91,246,.35)}50%{box-shadow:0 0 0 8px rgba(91,91,246,0)}}
.shimmer{background:linear-gradient(90deg,var(--surface-3) 0,var(--surface-2) 40%,var(--surface-3) 80%);background-size:200% 100%;animation:shim 1.3s linear infinite;border-radius:6px}
@keyframes shim{to{background-position:-200% 0}}
.conf{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.conf i{width:34px;height:5px;border-radius:9px;background:var(--surface-3);position:relative;overflow:hidden}
.conf i::after{content:"";position:absolute;inset:0;width:var(--v);background:var(--ok);border-radius:9px}
.conf.mid i::after{background:var(--warn)} .conf.low i::after{background:var(--bad)}

/* ---------- MISC ---------- */
.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:750;color:#fff;flex-shrink:0;letter-spacing:-.02em}
.avatar.sq{border-radius:10px}
.avatar.sm{width:24px;height:24px;font-size:10px}
.avatar.xs{width:20px;height:20px;font-size:9px}
.avatar.xl{width:56px;height:56px;font-size:19px}
.avatar.lg{width:44px;height:44px;font-size:15px}
.avatars{display:flex}
.avatars .avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-7px}
.avatars .avatar:first-child{margin-left:0}
.logo-tile{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:-.03em;color:#fff;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.logo-tile.sm{width:32px;height:32px;border-radius:9px;font-size:11px}
.divider{height:1px;background:var(--border);margin:16px 0}
.kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:6px;font-size:11px;font-weight:700;background:var(--surface-3);color:var(--ink-2);border:1px solid var(--border);border-bottom-width:2px;font-family:var(--font)}
.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-md);padding:22px;display:flex;align-items:center;gap:16px;background:var(--surface-2);transition:border-color .2s,background .2s}
.dropzone:hover,.dropzone.drag{border-color:var(--primary);background:var(--primary-soft)}
.steps{display:flex;align-items:center;gap:0}
.step{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:650;color:var(--muted)}
.step .dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--muted);font-size:11px}
.step.done{color:var(--ink)} .step.done .dot{background:var(--ok);color:#fff}
.step.cur{color:var(--ink)} .step.cur .dot{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-soft)}
.step-line{flex:1;height:2px;background:var(--border);margin:0 10px;min-width:16px}
.step-line.done{background:var(--ok)}
.timeline{position:relative;display:flex;flex-direction:column;gap:14px;padding-left:22px}
.timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--border)}
.tl-i{position:relative}
.tl-i::before{content:"";position:absolute;left:-21px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2px var(--primary)}
.tl-i.ok::before{box-shadow:inset 0 0 0 5px var(--ok)} .tl-i.warn::before{box-shadow:inset 0 0 0 5px var(--warn)} .tl-i.ai::before{background:var(--ai);box-shadow:none}
.empty{display:grid;place-items:center;text-align:center;padding:60px 20px;color:var(--muted)}
.hl{background:linear-gradient(transparent 58%,rgba(212,244,106,.55) 58%)}
.dashed{border-style:dashed!important}

/* ---------- CHARTS ---------- */
.chart{width:100%;position:relative}
.chart svg{display:block;overflow:visible}
.chart text{font-family:var(--font);fill:var(--muted);font-size:11px}
.chart .ax line,.chart .gridl{stroke:var(--grid);stroke-width:1}
.chart .lbl{fill:var(--ink);font-weight:700;font-size:11.5px}
.chart .hit{fill:transparent;cursor:crosshair}
.chart .guide{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 3;opacity:0;pointer-events:none}
.chart.hovering .guide{opacity:1}
.chart .bar{transition:opacity .15s}
.chart.hovering .bar{opacity:.55}
.chart.hovering .bar.hov{opacity:1}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-2);font-weight:600}
.lg-i{display:inline-flex;align-items:center;gap:7px}
.lg-i i{width:10px;height:10px;border-radius:3px;display:inline-block}
.lg-i i.line{height:3px;width:14px;border-radius:2px}
.lg-i i.dash{height:0;width:14px;border-top:2px dashed var(--muted);border-radius:0;background:none!important}
.ui-tt{position:fixed;z-index:200;pointer-events:none;background:var(--navy);color:#fff;padding:9px 11px;border-radius:10px;font-size:12px;line-height:1.45;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s;max-width:280px}
.ui-tt.show{opacity:1;transform:none}
.ui-tt b{font-weight:700}
.ui-tt .tt-row{display:flex;align-items:center;gap:7px;justify-content:space-between}
.ui-tt .tt-row span:first-child{display:inline-flex;align-items:center;gap:6px;color:#B9BEE0}
.ui-tt .sw{width:8px;height:8px;border-radius:2px;display:inline-block}

/* ---------- OVERLAYS ---------- */
.toasts{position:fixed;right:24px;bottom:24px;z-index:300;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.toast{display:flex;align-items:center;gap:11px;padding:12px 16px 12px 12px;border-radius:14px;background:var(--navy);color:#fff;box-shadow:var(--shadow-lg);font-weight:600;font-size:13.5px;animation:tin .25s ease-out;max-width:440px}
.toast .ico-box{width:30px;height:30px;border-radius:9px}
@keyframes tin{from{opacity:0;transform:translateY(10px) scale(.98)}}
.scrim{position:fixed;inset:0;z-index:90;background:rgba(10,12,28,.38);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .2s}
.scrim.show{opacity:1;pointer-events:auto}
.ai-panel{position:fixed;top:12px;right:12px;bottom:12px;width:440px;z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transform:translateX(calc(100% + 24px));transition:transform .32s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.ai-panel.open{transform:none}
.aip-hd{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--ai-soft)}
.aip-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}
.msg{max-width:92%;font-size:13.5px;line-height:1.55}
.msg.me{align-self:flex-end;background:var(--primary);color:#fff;padding:10px 14px;border-radius:16px 16px 4px 16px}
.msg.bot{align-self:flex-start;display:flex;gap:10px}
.msg.bot .bubble{background:var(--surface-2);border:1px solid var(--border);padding:12px 14px;border-radius:4px 16px 16px 16px}
.msg.bot .bubble p{margin:0 0 8px}.msg.bot .bubble p:last-child{margin:0}
.msg.bot .bubble ul{margin:4px 0 8px;padding-left:18px}
.msg .src{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.msg .src span{font-size:11px;font-weight:650;padding:2px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--ink-2)}
.typing{display:inline-flex;gap:4px;padding:4px 0}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:typ 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes typ{0%,60%,100%{opacity:.25;transform:none}30%{opacity:1;transform:translateY(-3px)}}
.aip-sugg{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 10px}
.aip-sugg button{border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:6px 11px;font-size:12px;font-weight:600;color:var(--ink-2);text-align:left}
.aip-sugg button:hover{border-color:var(--primary);color:var(--primary-ink)}
.aip-in{display:flex;gap:8px;padding:12px 14px 14px;border-top:1px solid var(--border)}
.aip-in .input{border-radius:12px;height:42px}
.modal{position:fixed;z-index:120;left:50%;top:12vh;transform:translateX(-50%) scale(.98);width:min(640px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;overflow:hidden}
.modal.show{opacity:1;pointer-events:auto;transform:translateX(-50%)}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}
.cmdk-in input{border:0;outline:0;background:transparent;font:inherit;font-size:16px;flex:1;color:var(--ink)}
.cmdk-list{max-height:52vh;overflow-y:auto;padding:8px}
.cmdk-list a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;font-weight:600}
.cmdk-list a.sel,.cmdk-list a:hover{background:var(--surface-3)}
.cmdk-list a span.muted{margin-left:auto;font-size:12px;font-weight:500}
.cmdk-grp{font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:10px 12px 4px}

/* ---------- TOUR (prezentačný režim) ---------- */
.tour{position:fixed;left:50%;bottom:22px;z-index:80;transform:translate(-50%,140%);transition:transform .35s cubic-bezier(.2,.8,.2,1);
  display:flex;align-items:center;gap:14px;padding:10px 10px 10px 16px;border-radius:20px;background:var(--navy);color:#fff;box-shadow:var(--shadow-lg);width:min(880px,calc(100vw - var(--sidebar) - 64px));margin-left:calc(var(--sidebar)/2)}
.tour.on{transform:translate(-50%,0)}
.tour .t-step{font-size:12px;font-weight:800;color:var(--lime);font-variant-numeric:tabular-nums;white-space:nowrap}
.tour .t-txt{flex:1;min-width:0;font-size:13.5px;line-height:1.45;color:#D9DCF5}
.tour .t-txt b{color:#fff}
.tour .t-bar{position:absolute;left:18px;right:18px;top:0;height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.tour .t-bar i{display:block;height:100%;background:var(--lime)}
#tour-spot{position:absolute;z-index:70;pointer-events:none;border-radius:18px;opacity:0;
  box-shadow:0 0 0 3px var(--lime),0 0 0 8px rgba(212,244,106,.24),0 0 0 5000px rgba(10,12,30,.5);
  transition:top .38s cubic-bezier(.2,.8,.2,1),left .38s cubic-bezier(.2,.8,.2,1),width .38s cubic-bezier(.2,.8,.2,1),height .38s cubic-bezier(.2,.8,.2,1),opacity .25s}
#tour-spot.on{opacity:1}
#tour-pop{position:absolute;z-index:82;background:var(--navy);color:#fff;border-radius:18px;padding:14px 16px 12px;box-shadow:0 18px 50px rgba(8,10,30,.42);
  opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .25s,transform .25s,top .38s cubic-bezier(.2,.8,.2,1),left .38s cubic-bezier(.2,.8,.2,1)}
#tour-pop.on{opacity:1;transform:none;pointer-events:auto}
#tour-pop .tp-k{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;color:var(--lime);letter-spacing:.02em;text-transform:uppercase}
#tour-pop .tp-t{display:block;margin-top:7px;font-size:16px;line-height:1.3;color:#fff}
#tour-pop .tp-x{margin:5px 0 0;font-size:13.5px;line-height:1.5;color:#D9DCF5}
#tour-pop .tp-f{display:flex;align-items:center;gap:8px;margin-top:12px}
#tour-pop .tp-dots{display:flex;gap:5px;flex:1}
#tour-pop .tp-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.22)}
#tour-pop .tp-dots i.on{background:var(--lime);width:18px;border-radius:4px}
#tour-pop .tp-b{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
#tour-pop .tp-b:hover{background:rgba(255,255,255,.08)}
#tour-pop .tp-b.go{background:var(--lime);border-color:var(--lime);color:#13152C;padding:0 12px}
.tour .icon-btn{background:rgba(255,255,255,.08);border-color:transparent;color:#fff}
.tour .icon-btn:hover{background:rgba(255,255,255,.16)}

/* ---------- PAPER (náhľad PDF dokladu) ---------- */
.paper{background:#fff;color:#1d2030;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 18px 40px -18px rgba(17,20,45,.35);padding:34px 36px;font-size:11.5px;line-height:1.45;position:relative;font-family:"Helvetica Neue",Arial,sans-serif}
.paper .hlbox{border-radius:4px;transition:background .15s,box-shadow .15s;margin:-2px -4px;padding:2px 4px}
.paper .hlbox.on{background:rgba(91,91,246,.14);box-shadow:0 0 0 1.5px #5b5bf6}
.paper .hlbox.ai{box-shadow:0 0 0 1px rgba(91,91,246,.25)}
.pdf-stage{background:var(--surface-3);border-radius:var(--r-md);padding:26px;position:relative;overflow:hidden}
.scanline{position:absolute;left:0;right:0;height:60px;background:linear-gradient(180deg,transparent,rgba(91,91,246,.18),transparent);animation:scan 2.4s ease-in-out infinite;pointer-events:none}
@keyframes scan{0%{top:-60px}100%{top:100%}}

/* ---------- PHONE MOCKUP ---------- */
.phone{width:270px;height:550px;border-radius:42px;background:#0d0f1c;padding:11px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #2a2e48;position:relative;flex-shrink:0}
.phone-screen{width:100%;height:100%;border-radius:32px;background:var(--surface);overflow:hidden;position:relative;display:flex;flex-direction:column}
.phone-notch{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:86px;height:24px;border-radius:20px;background:#0d0f1c;z-index:2}

/* ---------- ENTRY (MD/D) ---------- */
.entry{display:grid;grid-template-columns:76px 76px minmax(0,1fr) auto;gap:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.entry>div{padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}
.entry .h{background:var(--surface-2);font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px}
.entry .acc{font-family:var(--mono);font-weight:700;font-size:13px}
.entry .amt{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.entry>div:nth-last-child(-n+4){border-bottom:0}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1360px){
  .search{width:220px}
  .hide-md{display:none!important}
}
@media (max-width:1180px){
  :root{--sidebar:228px}
  .g-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-12>[class*=span-]{grid-column:1/-1}
  .search{display:none}
}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .g-2,.g-3,.g-5{grid-template-columns:1fr}
  .content{padding:6px 16px 60px}
  .topbar{padding:12px 16px}
  .hide-sm{display:none!important}
  .page-head{flex-direction:column;align-items:flex-start;gap:14px}
  .page-head .ph-main{width:100%}
  .page-head h1{font-size:25px}
  .page-head .actions{width:100%}
  .card-hd{flex-wrap:wrap}
  .card-hd>.grow{flex:1 1 160px}
}
@media print{
  .sidebar,.topbar,.tour,.ai-panel,.toasts{display:none!important}
  .app{display:block}
  body{background:#fff}
}

/* ---------- „PREČO?" (vysvetliteľnosť AI) ---------- */
.why{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);padding:14px 16px}
.why-q{display:flex;align-items:center;gap:7px;font-weight:750;font-size:13px;color:var(--primary-ink)}
.why-a{margin-top:6px;font-size:13.5px;line-height:1.55}
.why-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin-top:12px}
.why-facts>div{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.why-facts span{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.why-facts b{font-size:13px;font-weight:700}

/* ---------- HBARS + STACK100 + RING ---------- */
.hbars{display:flex;flex-direction:column;gap:9px}
.hb-row{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;cursor:default}
.hb-l{color:var(--ink-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-track{height:10px;border-radius:0 5px 5px 0;background:transparent;position:relative}
.hb-track i{display:block;height:100%;border-radius:0 5px 5px 0}
.hb-v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:64px}
.s100{display:flex;gap:2px;height:14px;border-radius:7px;overflow:hidden}
.s100 i{display:block;height:100%;min-width:3px}
.s100 i:first-child{border-radius:7px 0 0 7px}.s100 i:last-child{border-radius:0 7px 7px 0}
.ring{display:block}

/* ---------- POPOVER ---------- */
.popover{position:fixed;z-index:150;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);padding:8px;animation:tin .18s ease-out;max-height:70vh;overflow-y:auto}
.pop-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 10px}
.pop-i{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:12px;cursor:pointer}
.pop-i:hover{background:var(--surface-2)}
.foot-note{margin-top:40px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;color:var(--faint);font-size:11.5px}
.foot-note>*{display:inline-flex;align-items:center;gap:5px}
.foot-note a{cursor:pointer;color:inherit}
.foot-note a:hover{color:var(--ink-2)}

/* ---------- TOPBAR: bez zalamovania ---------- */
.crumbs{white-space:nowrap;overflow:hidden}
.crumbs b{overflow:hidden;text-overflow:ellipsis}
@media (max-width:860px){.crumbs>:not(b){display:none}}
.search span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs button{white-space:nowrap}
.client-sw{white-space:nowrap}
.client-sw span{overflow:hidden;text-overflow:ellipsis;max-width:200px}
@media (max-width:1520px){.search{width:230px}}
.hb-row{grid-template-columns:minmax(80px,140px) minmax(0,1fr) auto}
.hb-v{min-width:48px}
[data-theme="dark"] #tour-spot{box-shadow:0 0 0 3px var(--lime),0 0 0 8px rgba(212,244,106,.24),0 0 0 5000px rgba(0,0,0,.62)}
[data-theme="dark"] #tour-pop{background:#1E2147;border:1px solid rgba(212,244,106,.45);box-shadow:0 18px 50px rgba(0,0,0,.6)}

/* =====================================================================
   PREPOJENIE SO SERVEROM — dialógy, načítanie, chyby, zvonček, prepínač klientov, ⌘K, AI panel
   ===================================================================== */
.dlg-scrim{z-index:160}
.modal.dlg{z-index:170;top:10vh;width:min(560px,94vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}
.modal.dlg.wide{width:min(860px,94vw)}
.dlg-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px;font-size:16px}
.dlg-bd{padding:4px 20px 16px;overflow-y:auto}
.dlg-ft{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface-2)}
.dlg-ft .sp{flex:1}
.dlg-err{display:flex;align-items:center;gap:6px;color:var(--bad-ink);font-size:12.5px;font-weight:600;max-width:60%}
.dlg-txt{margin:0 0 12px;color:var(--ink-2)}
.dlg-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.dlg-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.dlg-f.full{grid-column:1/-1}
.dlg-f small{font-size:11.5px}
.dlg-ferr{color:var(--bad-ink);font-weight:600}
.dlg-chk{display:flex;align-items:center;gap:8px;font-weight:550}
@media (max-width:640px){.dlg-grid{grid-template-columns:1fr}}

.skel{position:relative;overflow:hidden;background:var(--surface-2)!important;box-shadow:none!important}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 70%,transparent),transparent);animation:skel 1.3s infinite}
@keyframes skel{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skel::after{animation:none}}
.page-load{animation:tin .2s ease-out}
.err-card{gap:10px}
.err-card p{margin:0;max-width:520px}
.boot-err{max-width:640px;margin:12vh auto}
.btn.is-busy{opacity:.7;cursor:progress}
.btn.is-busy::after{content:"";width:12px;height:12px;margin-left:6px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
.btn.is-done{opacity:.75}
@keyframes spin{to{transform:rotate(360deg)}}

.pop-scroll{max-height:min(56vh,460px);overflow-y:auto}
.pop-search{display:flex;align-items:center;gap:8px;padding:0 8px 8px;color:var(--muted)}
.pop-search .input{height:36px}
.pop-i.sel{background:var(--surface-3)}
.pop-i.is-read{opacity:.72}
.pop-i .dot-new{width:8px;height:8px;border-radius:50%;background:var(--primary);flex:none}
.pop-hd .btn-sm{height:28px;padding:0 10px;font-size:12px}
.icon-btn .pip[hidden]{display:none}
.crumb-client{color:var(--primary-ink);font-weight:650;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.cmdk-t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.cmdk-t b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-t small{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-more{display:flex;align-items:center;gap:6px;padding:8px 12px}

.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg .src a{font-size:11px;font-weight:650;padding:2px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--primary-ink);display:inline-flex;align-items:center;gap:4px}
.msg .src a:hover{border-color:var(--primary)}
.msg.bot .bubble ol{margin:4px 0 8px;padding-left:20px}
.msg.bot .bubble code{font-size:12px;padding:1px 5px;border-radius:5px;background:var(--surface-3)}
.ai-tools{display:flex;align-items:center;gap:5px;margin-top:8px}
.aip-in .btn:disabled{opacity:.5}

/* prihlasovacia obrazovka prekrýva shell — skryť AI orb, sprievodcu a toasty pod ňou */
body.is-login .tour,body.is-login .ai-panel,body.is-login #ai-scrim{display:none!important}

/* ---------- HLASOVÝ ASISTENT: tlačidlo v hornej lište + plávajúca bublina (assets/voice.js) ---------- */
.voice-btn{transition:color .15s,border-color .15s,background .15s,box-shadow .12s}
.voice-btn.is-connecting{color:var(--primary-ink);border-color:var(--primary)}
.voice-btn.is-connecting svg{animation:vb-blink 1s ease-in-out infinite}
.voice-btn.is-listening{color:var(--navy);background:var(--lime);border-color:transparent;box-shadow:0 0 0 calc(3px + var(--lvl,0)*10px) color-mix(in srgb,var(--lime) 35%,transparent)}
.voice-btn.is-thinking{color:#fff;border-color:transparent;background:var(--ai);background-size:200% 200%;animation:vb-flow 1.6s linear infinite}
.voice-btn.is-speaking{color:#fff;border-color:transparent;background:var(--ai);box-shadow:0 0 0 calc(2px + var(--lvl,0)*9px) rgba(79,139,255,.28)}
.voice-btn.is-error{color:var(--bad);border-color:var(--bad)}
@keyframes vb-blink{50%{opacity:.35}}
@keyframes vb-flow{to{background-position:200% 0}}
.vb{position:fixed;right:24px;bottom:24px;z-index:90;width:360px;max-width:calc(100vw - 32px);background:var(--navy);color:#EEF0FF;border:1px solid rgba(255,255,255,.1);border-radius:18px;box-shadow:var(--shadow-lg);padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;animation:vb-in .22s ease both}
.vb[hidden]{display:none}
.vb-hd{display:flex;align-items:center;gap:8px;font-size:13px}
.vb-hd b{font-weight:750}
.vb-sp{flex:1}
.vb .icon-btn{background:rgba(255,255,255,.08);border-color:transparent;color:#EEF0FF}
.vb .icon-btn:hover{background:rgba(255,255,255,.16);color:#fff}
.vb-dot{width:9px;height:9px;border-radius:50%;background:#7D839F;flex:none}
.vb.ph-idle .vb-dot{background:#22C9B4}
.vb.ph-listening .vb-dot{background:var(--lime);box-shadow:0 0 0 4px rgba(212,244,106,.22);animation:vb-blink 1.2s ease-in-out infinite}
.vb.ph-thinking .vb-dot{background:#A99BFF;animation:vb-blink .8s ease-in-out infinite}
.vb.ph-speaking .vb-dot{background:#4F8BFF;box-shadow:0 0 0 4px rgba(79,139,255,.25)}
.vb.ph-error .vb-dot{background:#F06A6E}
.vb-q{align-self:flex-end;max-width:92%;background:rgba(255,255,255,.1);border-radius:12px 12px 4px 12px;padding:7px 10px;font-size:13px;line-height:1.45}
.vb-q.is-partial{font-style:italic;color:#C9CCEA}
.vb-a{font-size:13.5px;line-height:1.5;max-height:9.5em;overflow-y:auto}
.vb-a.is-progress{color:#A3A8CC;font-size:12.5px}
.vb-a.is-note{font-size:12.5px;color:#8DBBF5}
.vb-a.is-note.warn{color:#F2C063}
.vb-a.is-note.bad{color:#FF9A9D}
.vb-hint{font-size:12px;color:#A3A8CC}
.vb-hint.is-err{color:#FF9A9D}
@keyframes vb-in{from{opacity:0;transform:translateY(8px)}}
body.is-login .vb{display:none!important}
/* stav hlasu v paneli asistenta (Voice.start({el})) — bodka, stav, prepis, zastaviť; bublina sa vtedy skryje */
.vb-inline{display:flex;align-items:center;gap:8px;min-height:36px;padding:4px 6px 4px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--ink);font-size:12.5px;line-height:1.35}
.vb-inline b{font-weight:700;white-space:nowrap}
.vb-inline-t{flex:1;min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vb-inline.ph-idle .vb-dot{background:var(--ok)}
.vb-inline.ph-listening .vb-dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft);animation:vb-blink 1.2s ease-in-out infinite}
.vb-inline.ph-thinking .vb-dot{background:var(--primary);animation:vb-blink .8s ease-in-out infinite}
.vb-inline.ph-speaking .vb-dot{background:var(--info);box-shadow:0 0 0 4px var(--info-soft)}
.vb-inline.ph-error .vb-dot{background:var(--bad)}
.vb-inline.ph-error .vb-inline-t{color:var(--bad-ink)}
@media (prefers-reduced-motion:reduce){.vb,.voice-btn svg,.vb-dot,.vb-inline .vb-dot,.voice-btn.is-thinking{animation:none!important}}
@media (max-width:860px){.vb{right:16px;left:16px;bottom:16px;width:auto;max-width:none}}
@media (max-width:480px){.topbar{gap:8px}.topbar .icon-btn,.topbar .ai-orb{width:36px;height:36px}.topbar .client-sw{height:36px}}
@media print{.vb{display:none!important}}
/* Spätná väzba (assets/feedback.js): tlačidlo #fb-btn v hornej lište uberá miesto drobčekom — pri 861–1520 px ostane len názov obrazovky (skupina je v menu aj v nadpise) */
@media (min-width:861px) and (max-width:1520px){.crumbs>span:first-child:not(.crumb-client),.crumbs>span:first-child:not(.crumb-client)+svg{display:none}}

/* === W4: plávajúci asistent vpravo dole (assets/assist.js) — panel ukotvený vpravo dole, tlačidlo, rozhovory, rady === */
.ai-panel{top:auto;right:20px;bottom:20px;width:420px;max-width:calc(100vw - 32px);height:min(720px,calc(100vh - 40px));height:min(720px,calc(100dvh - 40px));
  transform:translateY(16px) scale(.98);transform-origin:bottom right;opacity:0;visibility:hidden;pointer-events:none;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease,visibility 0s linear .22s}
.ai-panel.open{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease,visibility 0s}
#ai-scrim{display:none!important}
.aip-hd{padding:12px 12px 12px 16px;gap:10px}
.aip-hd .icon-btn.on{background:var(--primary-soft);color:var(--primary-ink);border-color:var(--primary)}
.aip-conv{color:var(--ink-2);font-weight:600}
.aip-sep{align-self:center;font-size:11.5px;font-weight:650;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:99px;padding:3px 10px}
.aip-sug-tx{color:var(--ink-2)}
.msg.bot>.ai-orb{flex:none}
.aip-recent{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.aip-rc{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:12px;padding:8px 10px;cursor:pointer}
.aip-rc:hover,.aip-rc:focus-visible{border-color:var(--primary);background:var(--primary-soft)}
.aip-rc>svg{flex:none;color:var(--primary-ink)}
.aip-rc .tx{display:flex;flex-direction:column;min-width:0}
.aip-rc .tx b{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aip-rc .tx small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aip-rc.new{border-style:dashed}
.aip-sugg .aip-chip-hint{border-color:var(--ai);background:var(--ai-soft);color:var(--ink)}
.aip-sugg .aip-chip-tour{display:inline-flex;align-items:center;gap:5px;border-style:dashed}
/* zoznam rozhovorov v paneli */
.ai-panel.lst .aip-body,.ai-panel.lst .aip-sugg,.ai-panel.lst .aip-in{display:none}
.aip-list{flex:1;min-height:0;display:flex;flex-direction:column}
.aip-list[hidden]{display:none}
.aip-ls-hd{display:flex;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}
.aip-ls-s{position:relative;flex:1;min-width:0}
.aip-ls-s>svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.aip-ls-s .input{padding-left:34px;height:36px;border-radius:10px;width:100%}
.aip-ls-items{flex:1;min-height:0;overflow-y:auto;padding:8px 10px 12px;display:flex;flex-direction:column;gap:4px}
.aip-ls-grp{font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 6px 4px}
.aip-ls-it{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;cursor:pointer;border:1px solid transparent}
.aip-ls-it:hover,.aip-ls-it:focus-visible{background:var(--surface-2);border-color:var(--border)}
.aip-ls-it.on{background:var(--primary-soft);border-color:var(--primary)}
.aip-ls-it .ico-box{flex:none}
.aip-ls-it .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.aip-ls-it .tx b{font-size:13px;font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aip-ls-it .tx small{font-size:11.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aip-ls-it .tm{flex:none;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.aip-ls-acts{flex:none;display:none;gap:2px}
.aip-ls-it:hover .aip-ls-acts,.aip-ls-it:focus-within .aip-ls-acts,.aip-ls-it.on .aip-ls-acts{display:inline-flex}
.aip-ls-it:hover .tm,.aip-ls-it:focus-within .tm,.aip-ls-it.on .tm{display:none}
.aip-ls-acts .icon-btn{width:28px;height:28px}
.aip-ls-empty,.aip-ls-note{padding:14px 8px;color:var(--muted);font-size:12.5px;display:flex;gap:6px;align-items:flex-start}
.aip-ls-note{padding:6px 8px 4px}
.aip-ls-ft{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px 12px;border-top:1px solid var(--border);font-size:12.5px}
.aip-ls-pref{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2);cursor:pointer}
.aip-ls-ft a{display:inline-flex;align-items:center;gap:5px;color:var(--primary-ink);font-weight:650;cursor:pointer}
/* tlačidlo vpravo dole */
.ai-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:95;width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 36%),var(--ai);
  box-shadow:0 10px 26px -8px rgba(79,139,255,.85),var(--shadow-lg),inset 0 0 0 1px rgba(255,255,255,.25);transition:transform .16s ease,box-shadow .16s ease,bottom .25s ease}
.ai-fab:hover{transform:translateY(-2px) scale(1.04)}
.ai-fab:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.ai-fab[hidden],body.ai-open .ai-fab{display:none}
.ai-fab-dot{position:absolute;top:3px;right:3px;width:13px;height:13px;border-radius:50%;background:var(--warn);border:2px solid var(--surface)}
.ai-fab-dot[hidden]{display:none}
body:has(.tour.on) .ai-fab{bottom:calc(96px + env(safe-area-inset-bottom))}
body:has(.tour.on) .ai-hint{bottom:calc(164px + env(safe-area-inset-bottom))}
.ai-hint{position:fixed;right:20px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:95;max-width:min(340px,calc(100vw - 40px));display:flex;align-items:flex-start;gap:10px;
  background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);padding:10px 10px 10px 12px;font-size:13px;line-height:1.45;animation:vb-in .22s ease both}
.ai-hint-tx{flex:1;min-width:0}
.ai-hint-acts{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
body.ai-open .ai-hint{display:none}
/* obsah, oznámenia a hlas neprekrýva tlačidlo ani panel */
body.has-fab .content{padding-bottom:104px}
body.has-fab .toasts{bottom:calc(88px + env(safe-area-inset-bottom))}
body.has-fab .vb{bottom:calc(88px + env(safe-area-inset-bottom))}
body.has-fab.has-hint .toasts,body.has-fab.has-hint .vb{bottom:calc(100px + var(--ai-hint-h,96px) + env(safe-area-inset-bottom))}
body.ai-open .toasts{right:464px;bottom:24px}
body.ai-open .vb{right:464px;bottom:24px}
@media (max-width:860px){body.has-fab .vb{bottom:calc(84px + env(safe-area-inset-bottom))}body.ai-open .vb{right:16px}}
@media (max-width:600px){
  .ai-panel{top:0;right:0;bottom:0;left:0;width:auto;max-width:none;height:auto;border:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom);transform:translateY(24px)}
  .ai-panel.open{transform:none}
  .ai-fab{right:16px;width:52px;height:52px;bottom:calc(16px + env(safe-area-inset-bottom))}
  .ai-hint{right:16px;bottom:calc(80px + env(safe-area-inset-bottom))}
  body.has-fab .content{padding-bottom:92px}
  body.has-fab .toasts{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}
  body.has-fab.has-hint .toasts,body.has-fab.has-hint .vb{bottom:calc(92px + var(--ai-hint-h,96px) + env(safe-area-inset-bottom))}
  body.ai-open .toasts{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom))}
  body.ai-open .vb{right:16px;bottom:16px;z-index:105}
  .aip-ls-acts{display:inline-flex}
  .aip-ls-it .tm{display:none}
}
@media (prefers-reduced-motion:reduce){.ai-panel,.ai-panel.open,.ai-fab{transition:none}.ai-hint{animation:none}}
body.is-login .ai-fab,body.is-login .ai-hint{display:none!important}
@media print{.ai-fab,.ai-hint{display:none!important}}
/* odkaz na obrazovku bez oprávnenia (core.js markDenied): tlmený, klik ukáže upozornenie namiesto karty zákazu */
.go-denied{opacity:.5;cursor:not-allowed!important}
.go-denied:hover{transform:none!important;box-shadow:none!important}

/* ---------- VZHĽAD (assets/theme.js · docs/VZHLAD.md): menu režimov, tmavý režim, tlač vždy svetlá ---------- */
.theme-on{color:var(--primary);display:grid;place-items:center;flex:none}
.pop-i[aria-checked="true"]{background:var(--primary-soft)}
.pop-i[aria-checked="true"] .li-title{color:var(--primary-ink)}
.theme-time{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:6px 4px 2px;padding:10px 6px 4px;border-top:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--ink-2)}
.theme-time label{display:flex;align-items:center;gap:6px}
.theme-time .input{width:104px;height:34px;padding:0 8px}
.theme-time[hidden]{display:none}
/* karta Vzhľad v Nastaveniach (assets/screens/nastavenia.js) */
.theme-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.theme-opt{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer}
.theme-opt:hover{border-color:var(--border-strong);background:var(--surface-2)}
.theme-opt:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.theme-opt .li-main{display:flex;flex-direction:column;min-width:0}
.theme-opt .li-title{font-weight:700;color:var(--ink);font-size:13px}
.theme-opt .li-sub{font-size:11.5px;color:var(--muted);line-height:1.35}
.theme-opt[aria-checked="true"]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink)}
.theme-opt[aria-checked="true"] .li-title{color:var(--primary-ink)}
#nst-theme .theme-time{margin:10px 0 0;padding:10px 0 0}
@media (max-width:420px){.theme-opts{grid-template-columns:1fr}}
/* výplne pod bielym textom berú --*-fill (v oboch režimoch rovnaké, s bielou ≥ 4,5:1) */
.btn-primary,.msg.me,.count,.step.cur .dot{background:var(--primary-fill)}
.btn-primary{border-color:var(--primary-fill)}
.count.bad{background:var(--bad-fill)}
.btn-ok,.btn-ok:hover{background:var(--ok-fill);border-color:var(--ok-fill)}
.step.done .dot{background:var(--ok-fill)}
/* obrazovky iných agentov (hlas.js, legislativa.js) — rovnaká výplň bez zásahu do ich súborov */
:root .s-hlas .hv-m.user,:root .s-legislativa .lg-st.cur .dot{background:var(--primary-fill)}
:root .s-legislativa .lg-st.done .dot{background:var(--ok-fill)}
[data-theme="dark"] .seg button.on{color:var(--primary-ink)}
/* ---------- KONTRAST (WCAG AA v oboch režimoch, docs/VZHLAD.md) ---------- */
/* „papier“ (biely list dokladu, výpis v banke, eFaktúra, účtenka, QR) je svetlý aj v tmavom režime, preto má svetlé
   tokeny — inak by stlmený text tmavého režimu ležal na bielej s 2,6 : 1 */
[data-theme="dark"] :is(.paper,.s-doklady .rcpt,.s-doklady .qr-mini,.s-mobil .rcpt,.s-mobil .ma-qrb,.s-mobil .ma-pap,.s-portal .rcpt,.s-portal .pp-dph .qr,.s-prevzatie .pv-paper,.s-demo .mp){
  --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#F7F8FB; --surface-3:#EEF0F6; --border:#E7E9F1; --border-strong:#D6D9E6;
  --ink:#0F1222; --ink-2:#4A5068; --muted:#5F657C; --faint:#676D86;
  --primary:#5B5BF6; --primary-soft:#EEEEFF; --primary-ink:#3D3DC8; --navy:#13152C;
  --ok:#12A150; --ok-soft:#E5F6EB; --ok-ink:#0A7A3A; --warn:#E09300; --warn-soft:#FFF3D9; --warn-ink:#935A00;
  --bad:#E5484D; --bad-soft:#FDEBEC; --bad-ink:#BE2A2F; --info:#2A78D6; --info-soft:#E6EFFC; --info-ink:#1C5EAF;
  --s1:#5b5bf6; --s2:#f08a3c; --s3:#14a88a; --s4:#e2a400; --grid:#EDEFF5;
  --ai-ink:linear-gradient(135deg,#5246E0 0%,#2766CF 52%,#0C786B 100%);
  color-scheme:light;
}
/* tmavá karta (.card.dark) je tmavá v oboch režimoch — farebný text a jemné výplne v nej berú tmavé tokeny
   (vo svetlom režime mal čip „AI“ s --primary-ink na tmavej karte 1,95 : 1) */
.card.dark{
  --primary:#8A8AFF; --primary-soft:rgba(123,123,255,.14); --primary-ink:#A9A9FF; --faint:#8F95B0;
  --ok:#2BBF6A; --ok-soft:rgba(43,191,106,.14); --ok-ink:#5FD892; --warn:#E8A317; --warn-soft:rgba(232,163,23,.14); --warn-ink:#F2C063;
  --bad:#F06A6E; --bad-soft:rgba(240,106,110,.14); --bad-ink:#FF9A9D; --info:#4F94EA; --info-soft:rgba(79,148,234,.15); --info-ink:#8DBBF5;
  --ai-ink:linear-gradient(135deg,#8F84FF 0%,#5C9BFF 52%,#2FD3BD 100%);
}
/* tlač je vždy svetlá — aj keď je obrazovka v tmavom režime (theme.js prepne aj pri beforeprint) */
@media print{
  [data-theme="dark"]{
    --bg:#FFFFFF; --bg-glow:none; --surface:#FFFFFF; --surface-2:#F7F8FB; --surface-3:#EEF0F6; --border:#E7E9F1; --border-strong:#D6D9E6;
    --ink:#0F1222; --ink-2:#4A5068; --muted:#5F657C; --faint:#676D86;
    --primary:#5B5BF6; --primary-600:#4848E2; --primary-soft:#EEEEFF; --primary-ink:#3D3DC8; --navy:#13152C; --navy-2:#1D2042;
    --primary-fill:#5B5BF6; --ok-fill:#1E8449; --bad-fill:#D63A40; --ai-ink:linear-gradient(135deg,#5246E0 0%,#2766CF 52%,#0C786B 100%);
    --ok:#12A150; --ok-soft:#E5F6EB; --ok-ink:#0A7A3A; --warn:#E09300; --warn-soft:#FFF3D9; --warn-ink:#935A00;
    --bad:#E5484D; --bad-soft:#FDEBEC; --bad-ink:#BE2A2F; --info:#2A78D6; --info-soft:#E6EFFC; --info-ink:#1C5EAF;
    --s1:#5b5bf6; --s2:#f08a3c; --s3:#14a88a; --s4:#e2a400; --s1-soft:rgba(91,91,246,.12); --grid:#EDEFF5;
    --shadow:none; color-scheme:light;
  }
}
