:root{--ov-bg:#f4f6fb;--ov-card:#fff;--ov-ink:#162033;--ov-muted:#67758d;--ov-line:#e1e6f0;--ov-indigo:#5548e8;--ov-violet:#7c3aed;--ov-green:#059669;--ov-red:#dc2626;--ov-amber:#d97706;--ov-sidebar:#111a32;--ov-safe:max(12px,env(safe-area-inset-left))}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ov-bg);color:var(--ov-ink);font-family:Inter,"Segoe UI",Arial,sans-serif;overflow-x:hidden}.skip-link{position:fixed;left:12px;top:-60px;z-index:9999;padding:10px 14px;border-radius:10px;background:#fff;color:#111827}.skip-link:focus{top:12px}.overview-shell{min-height:100dvh;display:grid;grid-template-columns:268px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;overflow:auto;padding:22px 15px;background:linear-gradient(165deg,#0b1224,#171f3b);color:#fff;z-index:40;scrollbar-width:thin}.overview-brand{display:flex;align-items:center;gap:10px;margin:0 6px 22px;color:#fff}.overview-brand>span{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#4f46e5,#8b5cf6);font-weight:950;box-shadow:0 12px 28px #4f46e559}.overview-brand b,.overview-brand small{display:block}.overview-brand b{font-size:16px;letter-spacing:.06em}.overview-brand small{margin-top:2px;color:#b7bdf8;font-size:10px;font-weight:900;letter-spacing:.12em}.sidebar>.nav{display:grid;gap:5px;margin:10px 0 16px}.sidebar>.nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;color:#b9c2d7;font-size:12px;font-weight:800}.sidebar>.nav a i{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#ffffff0d;font-style:normal}.sidebar>.nav a:hover,.sidebar>.nav a.active{background:linear-gradient(135deg,#5548e8,#7c3aed);color:#fff}.overview-sidebar-foot{display:grid;gap:4px;padding-top:13px;border-top:1px solid #ffffff12}.overview-sidebar-foot a{padding:9px 11px;border-radius:10px;color:#9ba7be;font-size:10px;font-weight:800}.overview-sidebar-foot a:hover{background:#ffffff0c;color:#fff}.overview-page{min-width:0}.overview-topbar{position:sticky;top:0;z-index:35;min-height:78px;display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--ov-line);background:rgba(255,255,255,.9);backdrop-filter:blur(18px)}.overview-heading{min-width:0}.overview-heading>span,.panel-head>div>span,.eyebrow{display:block;color:#665cf0;font-size:10px;font-weight:950;letter-spacing:.12em}.overview-heading h1{margin:3px 0 0;font-size:21px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.company-switch{min-width:190px;display:grid;gap:3px}.company-switch span{font-size:10px;font-weight:900;color:#7b8799}.company-switch select{width:100%;min-height:40px;padding:8px 30px 8px 10px;border:1px solid var(--ov-line);border-radius:11px;background:#fff;color:var(--ov-ink);font-size:10px;font-weight:800}.refresh-button,.profile-button,.mobile-menu{min-height:42px;border:1px solid var(--ov-line);border-radius:12px;background:#fff;color:var(--ov-ink);cursor:pointer}.refresh-button{display:flex;align-items:center;gap:6px;padding:8px 11px;font-size:10px;font-weight:850}.profile-button{max-width:225px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;padding:5px 9px;text-decoration:none}.profile-button i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#4f46e5,#8b5cf6);color:#fff;font-style:normal;font-weight:950}.profile-button b,.profile-button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-button b{font-size:10px}.profile-button small{margin-top:2px;color:var(--ov-muted);font-size:10px}.mobile-menu{display:none;width:42px;font-size:18px}main{max-width:1600px;margin:0 auto;padding:24px}.overview-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:170px;padding:28px;border-radius:24px;background:radial-gradient(circle at 90% 10%,#8b5cf644,transparent 35%),linear-gradient(135deg,#111a32,#202b50);color:#fff;box-shadow:0 25px 65px #1720331c}.overview-hero:after{content:"";position:absolute;width:270px;height:270px;right:-85px;bottom:-170px;border:1px solid #ffffff16;border-radius:50%;box-shadow:0 0 0 45px #ffffff06,0 0 0 95px #ffffff03}.overview-hero>div{position:relative;z-index:1}.overview-hero h2{max-width:730px;margin:7px 0 8px;font-size:clamp(24px,4vw,42px);line-height:1.08;letter-spacing:-.04em}.overview-hero p{max-width:740px;margin:0;color:#b7c1d5;font-size:12px;line-height:1.6}.overview-health{min-width:220px;display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #ffffff15;border-radius:16px;background:#ffffff0c}.overview-health>i{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#10b98122;color:#6ee7b7;font-style:normal;font-size:18px}.overview-health b,.overview-health small{display:block}.overview-health b{font-size:11px}.overview-health small{margin-top:3px;color:#aab5c9;font-size:10px}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.kpi-card{min-width:0;padding:17px;border:1px solid var(--ov-line);border-radius:18px;background:var(--ov-card);box-shadow:0 10px 26px #1720330b}.kpi-card span,.kpi-card small,.kpi-card strong{display:block}.kpi-card span{color:var(--ov-muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.kpi-card strong{margin:8px 0 4px;font-size:clamp(19px,2vw,28px);letter-spacing:-.04em;overflow-wrap:anywhere}.kpi-card small{color:#8590a2;font-size:10px;line-height:1.35}.kpi-card.profit{border-color:#10b98145;background:linear-gradient(145deg,#fff,#effdf8)}.kpi-card.profit strong{color:var(--ov-green)}.overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:14px;margin:14px 0}.panel{min-width:0;padding:20px;border:1px solid var(--ov-line);border-radius:20px;background:var(--ov-card);box-shadow:0 12px 34px #1720330a}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-head h3{margin:4px 0 0;font-size:18px;letter-spacing:-.025em}.panel-head p{max-width:680px;margin:5px 0 0;color:var(--ov-muted);font-size:10px;line-height:1.5}.panel-head>a{padding:8px 10px;border-radius:9px;background:#f2f1ff;color:#5046d8;font-size:10px;font-weight:850;white-space:nowrap}.chart-legend{display:flex;gap:10px;color:var(--ov-muted);font-size:10px}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:9px;height:9px;border-radius:50%}.chart-legend .income{background:#5548e8}.chart-legend .expense{background:#f59e0b}.chart-wrap{height:280px;min-height:220px;overflow:hidden}.chart-wrap svg{width:100%;height:100%;display:block}.chart-grid{stroke:#e9edf4;stroke-width:1}.chart-income{fill:none;stroke:#5548e8;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-expense{fill:none;stroke:#f59e0b;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-area{fill:url(#incomeArea)}.chart-label{fill:#8490a4;font-size:10px;font-family:Inter,"Segoe UI",Arial,sans-serif}.pulse-list,.attention-list{display:grid;gap:9px}.pulse-item,.attention-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border-radius:14px;background:#f7f8fc}.pulse-item i,.attention-item>i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#edeaff;color:#5548e8;font-style:normal;font-weight:950}.pulse-item b,.pulse-item small,.attention-item b,.attention-item small{display:block}.pulse-item b,.attention-item b{font-size:10px}.pulse-item small,.attention-item small{margin-top:2px;color:var(--ov-muted);font-size:10px;line-height:1.35}.pulse-item strong{font-size:11px}.tools-panel{margin-top:14px}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.module-card{position:relative;min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;padding:13px;border:1px solid var(--ov-line);border-radius:15px;background:#fbfcff;color:var(--ov-ink);text-decoration:none;transition:.2s}.module-card:hover{transform:translateY(-2px);border-color:#8b82f0;box-shadow:0 12px 30px #4f46e516}.module-card.locked{opacity:.68;background:#f6f7fa}.module-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eceafe;color:#5548e8;font-size:13px;font-weight:950}.module-card b,.module-card small,.module-card em{display:block;min-width:0}.module-card b{font-size:10px;overflow-wrap:anywhere}.module-card small{margin-top:3px;color:var(--ov-muted);font-size:10px}.module-card em{margin-top:6px;color:#4f5e75;font-size:10px;font-style:normal;font-weight:800}.module-state{position:absolute;top:9px;right:9px;width:8px;height:8px;border-radius:50%;background:#aab3c2}.module-card.active .module-state{background:#10b981;box-shadow:0 0 0 4px #10b98118}.module-card.attention .module-state{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b18}.lower-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}.attention-item{grid-template-columns:38px minmax(0,1fr) auto}.attention-item>a{padding:7px 9px;border-radius:8px;background:#fff;color:#5147d8;font-size:10px;font-weight:850}.attention-item.danger>i{background:#feecec;color:#dc2626}.attention-item.warning>i{background:#fff4d9;color:#d97706}.attention-item.success>i{background:#e9fbf3;color:#059669}.company-panel dl{display:grid;gap:8px;margin:0}.company-panel dl>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px;border-radius:11px;background:#f7f8fc}.company-panel dt{color:var(--ov-muted);font-size:10px}.company-panel dd{min-width:0;margin:0;font-size:10px;font-weight:850;overflow-wrap:anywhere}.overview-disclaimer{margin:18px 0 50px;color:#7b879a;font-size:10px;line-height:1.5;text-align:center}.overview-toast{position:fixed;right:18px;bottom:18px;z-index:9999;max-width:min(360px,calc(100vw - 24px));padding:11px 14px;border-radius:12px;background:#172033;color:#fff;font-size:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.overview-toast.show{opacity:1;transform:none}.loading-block,.loading-card,.loading-line{border-radius:12px;background:linear-gradient(90deg,#f1f3f8,#fafbfe,#f1f3f8);background-size:200% 100%;animation:loading 1.4s infinite}.loading-block{height:100%}.loading-card{height:90px}.loading-line{height:54px}@keyframes loading{to{background-position:-200% 0}}
@media(max-width:1180px){.overview-shell{grid-template-columns:230px minmax(0,1fr)}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-button span{display:none}.profile-button{grid-template-columns:32px;padding:5px}}
@media(max-width:900px){.overview-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(300px,88vw);height:100dvh;transform:translateX(-105%);transition:.22s;box-shadow:25px 0 60px #0b122455}.sidebar.open{transform:none}.overview-topbar{padding:10px 14px}.mobile-menu{display:block}.overview-heading h1{font-size:18px}.company-switch{min-width:155px}.refresh-button span{display:none}.profile-button{display:none}main{padding:14px}.overview-grid,.lower-grid{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-hero{min-height:150px;padding:22px}.overview-health{min-width:185px}}
@media(max-width:680px){.overview-topbar{align-items:flex-start;flex-wrap:wrap}.overview-heading{padding-top:5px}.top-actions{width:100%;margin-left:0}.company-switch{flex:1;min-width:0}.overview-hero{display:block}.overview-health{margin-top:18px;width:100%;min-width:0}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi-card.profit{grid-column:span 2}.panel{padding:15px}.panel-head{display:block}.panel-head>a{display:inline-flex;margin-top:9px}.chart-legend{margin-top:10px}.chart-wrap{height:230px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-panel dl>div{grid-template-columns:92px minmax(0,1fr)}.overview-toast{right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}}
@media(max-width:390px){main{padding:10px}.overview-heading>span{display:none}.overview-heading h1{font-size:16px}.overview-topbar{gap:8px}.mobile-menu{width:38px;min-height:38px}.company-switch select{min-height:38px}.refresh-button{min-height:38px}.overview-hero{padding:18px;border-radius:18px}.overview-hero h2{font-size:25px}.kpi-card{padding:13px}.kpi-card strong{font-size:20px}.module-grid{grid-template-columns:1fr}.chart-wrap{height:210px}.pulse-item,.attention-item{grid-template-columns:34px minmax(0,1fr)}.pulse-item>strong,.attention-item>a{grid-column:2}.pulse-item i,.attention-item>i{width:34px;height:34px}.company-panel dl>div{grid-template-columns:1fr;gap:3px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Tmavý režim – rovnaké používateľské nastavenie ako v ostatných moduloch. */
html[data-plevix-theme="dark"]{--ov-bg:#080b13;--ov-card:#111622;--ov-ink:#f4f7ff;--ov-muted:#b8c2d4;--ov-line:#303a50;--ov-sidebar:#0b101b}
html[data-plevix-theme="dark"] body{background:var(--ov-bg)!important;color:var(--ov-ink)!important}
html[data-plevix-theme="dark"] .overview-topbar{background:rgba(11,16,27,.92);border-color:var(--ov-line)}
html[data-plevix-theme="dark"] :is(.company-switch select,.refresh-button,.profile-button,.mobile-menu,.kpi-card,.panel){background:#111622!important;color:#f4f7ff!important;border-color:#303a50!important}
html[data-plevix-theme="dark"] .kpi-card.profit{background:linear-gradient(145deg,#111622,#0d211d)!important;border-color:#166a55!important}
html[data-plevix-theme="dark"] :is(.pulse-item,.attention-item,.company-panel dl>div){background:#181e2b!important;color:#f4f7ff!important}
html[data-plevix-theme="dark"] .module-card{background:#141a27!important;color:#f4f7ff!important;border-color:#303a50!important}
html[data-plevix-theme="dark"] .module-card.locked{background:#101521!important}
html[data-plevix-theme="dark"] :is(.module-icon,.pulse-item i){background:#252442!important;color:#c4b5fd!important}
html[data-plevix-theme="dark"] .attention-item>a{background:#252442!important;color:#ddd6fe!important}
html[data-plevix-theme="dark"] .panel-head>a{background:#252442!important;color:#ddd6fe!important}
html[data-plevix-theme="dark"] :is(.kpi-card small,.kpi-card span,.panel-head p,.pulse-item small,.attention-item small,.module-card small,.module-card em,.company-panel dt,.overview-disclaimer,.company-switch span,.profile-button small){color:#b8c2d4!important}
html[data-plevix-theme="dark"] .chart-grid{stroke:#293247}

/* ── Zástupné bloky počas načítavania v tmavom režime ───────────────────────
   Prechod bol svetlý (#f1f3f8 → #fafbfe) a v tmavom režime z neho boli veľké
   biele obdĺžniky, ktoré svietili cez celú stránku.

   Tón je zámerne LEN o niečo svetlejší než karta (--ov-card #111622), aby
   bolo vidieť, že sa niečo načítava, ale aby to nebolo do očí. Prebleskovanie
   zostáva — len tlmené. */
html[data-plevix-theme="dark"] :is(.loading-block,.loading-card,.loading-line){
  background:linear-gradient(90deg,#1a2130,#252e40,#1a2130)!important;
  background-size:200% 100%;
}

/* ── Rast firmy ───────────────────────────────────────────────────────────
   Panel sa objaví len vtedy, keď server našiel skutočný dôvod v číslach účtu.
   Preto vyzerá ako bežný panel a NIE ako reklamný pruh: žiadna výrazná farba
   pozadia, žiadny výkričník. Je to informácia, nie ponuka.

   Farby berie z tých istých premenných ako ostatné panely, takže tmavý režim
   funguje bez samostatného pravidla — okrem obrysu, ktorý by inak zanikol. */
/* `hidden` samo o sebe TU NEFUNGUJE. `.overview-grid{display:grid}` je
   autorské pravidlo a prebíja predvolené `[hidden]{display:none}` z
   prehliadača. Bez tohto riadka by sa prázdny panel ukázal každému —
   aj tomu, komu server žiadny návrh neposlal. */
#rastSekcia[hidden]{display:none}
/* Sekcia má jediný panel, takže dvojstĺpcové rozloženie mriežky by
   nechalo vedľa neho tretinu šírky prázdnu. */
#rastSekcia{grid-template-columns:1fr}
.rast-panel{border-left:3px solid var(--ov-indigo)}
.rast-telo{padding:2px 0 0}
.rast-preco{margin:0 0 10px;font-size:15px;line-height:1.5;color:var(--ov-ink)}
.rast-uvod{margin:0 0 6px;font-size:13px;color:var(--ov-muted)}
.rast-zoznam{margin:0 0 14px;padding-left:18px;font-size:14px;line-height:1.7;color:var(--ov-ink)}
.rast-akcie{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.rast-tlacidlo{display:inline-block;padding:9px 16px;border-radius:9px;background:var(--ov-indigo);
  color:#fff;text-decoration:none;font-weight:600;font-size:14px}
.rast-tlacidlo:hover{filter:brightness(1.08)}
.rast-poznamka{margin:10px 0 0;font-size:12px;color:var(--ov-muted);line-height:1.5}
.rast-inde{font-size:12.5px;color:var(--ov-muted);text-decoration:underline}
html[data-plevix-theme="dark"] .rast-inde{color:#a9b4c9}
/* POZOR NA `:is()`. Tmavý režim tejto stránky má pravidlo
   `html[data-plevix-theme="dark"] :is(.company-switch select, …, .panel)`
   s `border-color:#303a50!important`. Vyzerá ako zoznam tried, ale `:is()`
   preberá špecifickosť svojho NAJŠPECIFICKEJŠIEHO argumentu — a `.company-switch
   select` je trieda AJ prvok. Celé pravidlo má preto (0,2,2), kým
   `html[data-plevix-theme="dark"] .rast-panel` len (0,2,1). Ani `!important`
   a ani to, že je môj riadok neskôr, na tom nič nezmení: špecifickosť sa
   porovnáva skôr než poradie.

   Preto sa v selektore uvádzajú obe triedy — `.panel.rast-panel` dá (0,3,1).
   Bez toho farebný obrys v tmavom režime ticho zmizne. */
html[data-plevix-theme="dark"] .panel.rast-panel{border-left-color:#8b7fff!important}
html[data-plevix-theme="dark"] .rast-tlacidlo{background:#6a5cf0;color:#fff!important}
.rast-tlacidlo{color:#fff}
