
:root{
 color-scheme:light dark;
 --bg:#F5F6F8;--p:#FFFFFF;--pa:#F1F3F6;--b:#E5E8EC;--bs:#EEF0F3;
 --t:#0E1420;--m:#5A6372;--m2:#8C95A4;
 --teal:#0E9F6E;--teal-soft:#E3F5EC;--amber:#C27C0E;--amber-soft:#FCF1DD;--red:#D93C3C;--red-soft:#FBE7E7;
 --ind:#4F5BD5;
 --sh:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
 --sh2:0 12px 32px -12px rgba(16,24,40,.18);
 --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:var(--sans);--disp:'Inter Tight','Inter',sans-serif;
 --r:18px;
}
@media(prefers-color-scheme:dark){:root{
 --bg:#0B0D11;--p:#14171D;--pa:#1B1F26;--b:#262B34;--bs:#1F242C;
 --t:#EDF0F4;--m:#9AA3B1;--m2:#687183;
 --teal:#3DD39A;--teal-soft:rgba(61,211,154,.12);--amber:#F2B544;--amber-soft:rgba(242,181,68,.12);--red:#F47272;--red-soft:rgba(244,114,114,.12);
 --ind:#8B93FF;
 --sh:0 1px 0 rgba(255,255,255,.03) inset,0 1px 2px rgba(0,0,0,.4);--sh2:0 16px 40px -16px rgba(0,0,0,.7);
}}
*{box-sizing:border-box}
html{scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--t);font:400 14.5px/1.5 var(--sans);font-feature-settings:'tnum' 1,'cv11' 1;-webkit-font-smoothing:antialiased;
 padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.root{max-width:1180px;margin:0 auto;padding:28px 20px 64px}
.mono{font-family:var(--sans);font-variant-numeric:tabular-nums}

/* ---------- hero ---------- */
.hdr{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:8px 24px;align-items:end;
 background:var(--p);border:1px solid var(--b);border-radius:24px;padding:26px 30px 0;margin-bottom:18px;box-shadow:var(--sh)}
.hdr::before{content:"";position:absolute;inset:-40% -10% auto auto;width:420px;height:420px;border-radius:50%;
 background:radial-gradient(closest-side,color-mix(in srgb,var(--teal) 18%,transparent),transparent);pointer-events:none}
.hdr>*{position:relative}
.eye{font:500 13px var(--sans);color:var(--m);display:flex;align-items:center;gap:8px}
.eye::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.ttl{font:700 22px/1.2 var(--disp);letter-spacing:-.01em;margin-top:6px}
.hr{text-align:right}
.lbl{font:500 13px var(--sans);color:var(--m)}
.nw{font:700 52px/1.05 var(--disp);letter-spacing:-.03em;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.tm{font:12px var(--sans);color:var(--m2)}
.hs{grid-column:1/-1;margin:14px -30px 0;min-height:18px}
.hs svg{display:block;height:70px}
.hs .d{display:block;padding:0 30px 16px;font-size:12px;color:var(--m2)}
@media(max-width:700px){.hdr{grid-template-columns:1fr;padding:22px 20px 0}.hr{text-align:left}.nw{font-size:40px}.hs{margin:10px -20px 0}.hs .d{padding:0 20px 14px}}

/* ---------- tabs (segmented, sticky) ---------- */
#tabs{position:sticky;top:10px;z-index:20;display:inline-flex!important;flex-wrap:wrap;gap:2px!important;margin-bottom:20px!important;padding:4px;border-radius:14px;
 background:color-mix(in srgb,var(--p) 80%,transparent);border:1px solid var(--b);box-shadow:var(--sh2);
 -webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px)}
#tabs .btn{margin:0!important;border:0!important;background:transparent;border-radius:10px;padding:8px 16px;font:600 13.5px var(--sans);color:var(--m)!important;box-shadow:none}
#tabs .btn:hover{color:var(--t)!important;background:var(--pa)}
#tabs .btn[style*="teal"]{background:var(--t)!important;color:var(--p)!important}

/* ---------- layout + panels ---------- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.s2{grid-column:span 2}
@media(max-width:820px){.grid{grid-template-columns:1fr}.s2{grid-column:span 1}}
.pn{background:var(--p);border:1px solid var(--b);border-radius:var(--r);padding:22px 24px;min-width:0;box-shadow:var(--sh)}
.pt{font:650 16px/1.3 var(--disp);font-weight:600;letter-spacing:-.005em;color:var(--t);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.pt i{display:none}
.pt::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--teal);opacity:.85}

.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--bs);font-size:14px}
.row:last-of-type{border-bottom:0}
.sum{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:12px 14px;border-radius:12px;background:var(--pa);font:600 14px var(--sans)}
.sum .v{color:var(--t);font-size:16px}

/* ---------- inputs ---------- */
input,select{background:var(--pa);border:1px solid transparent;border-radius:9px;padding:7px 10px;color:var(--t);font:500 13.5px var(--sans);min-width:0;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}
input:hover,select:hover{border-color:var(--b)}
input:focus,select:focus{outline:none;background:var(--p);border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
select{cursor:pointer}select option{background:var(--p);color:var(--t)}
input[type=checkbox]{accent-color:var(--teal);width:17px;height:17px;padding:0;margin:0;border-radius:5px;background:none}
input[type=date],input[type=month]{color:var(--m);color-scheme:light dark}
input[readonly]{cursor:not-allowed}
.ri{width:124px;text-align:right;font-weight:600}.sm{width:64px;text-align:right}

/* ---------- editable tables ---------- */
.sc{overflow-x:auto;margin:0 -4px;padding:0 4px}
.eh,.er{display:grid;gap:8px;align-items:center;min-width:var(--mw,0)}
.eh{font:600 11.5px var(--sans);color:var(--m2);text-transform:uppercase;letter-spacing:.04em;padding:0 0 8px;border-bottom:1px solid var(--b)}
.er{padding:5px 0;border-bottom:1px solid var(--bs)}
.er input[type=text]{width:100%;font-weight:500}.er input[type=number],.er input.num{width:100%;text-align:right}
.ri.num,input.num{font-variant-numeric:tabular-nums}
.ri{text-align:right}
.ef{display:contents}.efl{display:none}
.er select{width:100%}
button.del{border:0;background:none;padding:0;font:inherit}
.er input[type=text]:not(.num){width:100%;font-weight:500}
.er input[type=checkbox]{justify-self:center}
.del{color:var(--m2);cursor:pointer;font-size:12px;width:22px;height:22px;display:grid;place-items:center;border-radius:6px}
.del:hover{color:var(--red);background:var(--red-soft)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:7px 14px;border-radius:10px;border:1px solid var(--b);background:var(--p);color:var(--t);
 font:600 13px var(--sans);cursor:pointer;box-shadow:var(--sh);transition:background .15s,border-color .15s}
.btn:hover{background:var(--pa)}
.btnp{background:var(--t);border-color:var(--t);color:var(--p)}
.btnp:hover{background:var(--t);opacity:.88}
.bm{display:inline-block;margin:0 4px;padding:3px 10px;border-radius:8px;background:var(--teal-soft);color:var(--teal);font-weight:600;text-decoration:none}
.bm:hover{text-decoration:underline}
details summary{list-style:none;display:inline-flex;align-items:center;gap:6px}
details summary::before{content:"›";display:inline-block;transition:transform .15s;font-weight:700}
details[open] summary::before{transform:rotate(90deg)}

/* ---------- KPI cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.card{background:var(--pa);border:1px solid transparent;border-radius:14px;padding:14px 16px;min-width:0}
.card .k{font:500 12.5px var(--sans);color:var(--m)}
.card .n{font:700 23px/1.15 var(--disp);letter-spacing:-.02em;margin:6px 0 4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.card .d{font:12px var(--sans);color:var(--m2)}
.card svg{margin:4px 0 2px}
.g{color:var(--teal)}.a{color:var(--amber)}.r{color:var(--red)}

/* ---------- misc ---------- */
.note{font:12.5px/1.6 var(--sans);color:var(--m2);margin-top:10px}
.fl{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 12px;border-radius:999px;background:var(--amber-soft);color:var(--amber);font:600 12.5px var(--sans);border:0}
.fl.ok{background:var(--teal-soft);color:var(--teal)}
.bar{height:10px;border-radius:999px;background:var(--pa);overflow:hidden;margin:12px 0 6px}
.bar div{height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--teal) 70%,var(--ind)),var(--teal));transition:width .4s ease}
.cap{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font:12.5px var(--sans);color:var(--m)}
.dbar{display:flex;height:14px;border-radius:999px;overflow:hidden;gap:2px;margin-bottom:14px;background:var(--pa)}
.rl{font:13.5px/1.5 var(--sans);padding:8px 0;border-bottom:1px solid var(--bs)}
.rl:last-child{border-bottom:0}
.vd{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:6px 0 12px;padding:16px 18px;border-radius:14px;background:var(--pa)}
.big{font:800 46px/1 var(--disp);letter-spacing:-.03em;min-width:70px}
textarea{width:100%;background:var(--pa);border:1px solid transparent;border-radius:12px;color:var(--t);font:13.5px/1.55 var(--sans);padding:10px 12px;resize:vertical}
textarea:focus{outline:none;background:var(--p);border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
.steps{font:13.5px/1.9 var(--sans);color:var(--m);margin:10px 0 4px;padding-left:20px}.steps b{color:var(--t);font-weight:600}
.amsg{font:600 13px var(--sans);margin-top:8px;min-height:18px}
.ft{text-align:center;font:12px var(--sans);color:var(--m2);margin-top:28px}

/* Alocano positions */
.pos{display:grid;grid-template-columns:minmax(120px,1.4fr) 80px 100px 80px 70px 120px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bs);font:13px var(--sans);min-width:600px}
.pos.h{font:600 11.5px var(--sans);color:var(--m2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--b)}
.pos .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos .nm small{display:block;color:var(--m2);font-weight:400;font-size:11.5px}
.pos span:not(.nm){text-align:right}.pos select{width:100%}
.pos:not(.h):hover{background:var(--pa)}

input:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media(max-width:560px){.pn{padding:18px 16px}.root{padding:16px 12px 48px}#tabs{display:flex!important;overflow-x:auto;flex-wrap:nowrap}#tabs .btn{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.brand{text-decoration:none;width:max-content;display:flex;align-items:center;gap:10px;margin-bottom:14px}
.brand .logo{width:36px;height:36px;flex:none;border-radius:10px;box-shadow:0 0 0 1px var(--b)}
.brand b{display:block;font:800 15px/1.15 var(--disp);color:var(--t);letter-spacing:-.01em}
.brand small{display:block;font:400 11.5px/1.3 'JetBrains Mono',ui-monospace,monospace;color:var(--m)}
.ft .logo{width:16px;height:16px;vertical-align:-3px;margin-right:6px;border-radius:4px}
.ft b{color:var(--m);font-weight:600}

[hidden]{display:none!important}
#tabs .btn.on{background:var(--t)!important;color:var(--p)!important}
.welcome{background:linear-gradient(135deg,color-mix(in srgb,var(--teal) 10%,var(--p)),var(--p) 60%);border-color:color-mix(in srgb,var(--teal) 30%,var(--b))}
.welcome .wl{margin:0 0 4px;color:var(--m);font-size:14.5px}.welcome .wl b{color:var(--t)}
.welcome a{color:var(--teal)}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:12px}
.mod{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--pa);border:1px solid transparent;cursor:pointer;transition:border-color .15s,background .15s}
.mod.active{background:var(--p);border-color:color-mix(in srgb,var(--teal) 45%,var(--b))}
.mod input{position:absolute;opacity:0;width:1px;height:1px}
.mod .sw{flex:none;width:38px;height:22px;border-radius:999px;background:var(--b);position:relative;transition:background .15s;margin-top:1px}
.mod .sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .28s cubic-bezier(.34,1.56,.64,1)}
.mod input:checked+.sw{background:var(--teal)}.mod input:checked+.sw::after{transform:translateX(16px)}
.mod input:focus-visible+.sw{outline:2px solid var(--teal);outline-offset:2px}
.mod b{display:block;font:600 14px var(--sans)}.mod small{display:block;color:var(--m);font-size:12.5px;line-height:1.45;margin-top:2px}

/* grafy */
.ch{width:100%;height:auto;display:block}
.ch .gl{stroke:var(--bs);stroke-width:1}.ch .gl.z{stroke:var(--b)}
.ch .ax{fill:var(--m2);font:500 11px var(--sans)}
.ch .an{fill:var(--teal);opacity:.1}
.ch path[class^="l-"]{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.ch .l-nw{stroke:var(--teal)}.ch .l-assets{stroke:var(--ind);stroke-dasharray:5 4;stroke-width:2}.ch .l-debt{stroke:var(--red);stroke-width:2}
.ch .d-nw{fill:var(--teal)}.ch .d-assets{fill:var(--ind)}.ch .d-debt{fill:var(--red)}
.ch .bi{fill:var(--amber);opacity:.35}
.ch .hl{stroke:var(--m2);stroke-dasharray:3 3;opacity:0}.ch .hv:hover .hl{opacity:.8}
.lg{display:flex;gap:16px;flex-wrap:wrap;font:500 12.5px var(--sans);color:var(--m);margin-bottom:6px}
.lg i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.lg .k-nw{background:var(--teal)}.lg .k-assets{background:var(--ind)}.lg .k-debt{background:var(--red)}.lg .k-inv{background:var(--amber);opacity:.5;height:9px}
.sw2{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.srb{display:flex;gap:6px;align-items:flex-end;height:110px;padding-top:6px}
.srb>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px;min-width:0}
.srb i{display:block;width:100%;max-width:34px;border-radius:5px 5px 2px 2px}
.srb span{font:500 10.5px var(--sans);color:var(--m2)}
.srb em{font:600 10.5px var(--sans);font-style:normal;color:var(--m)}
.ft a{color:inherit}
/* mobil: široké tabuľky (história, denník, predaje) ako karty */
@media(max-width:640px){
 .sc:has(.ed.wide){overflow:visible}
 .ed.wide .eh{display:none}
 .ed.wide .er{grid-template-columns:1fr 1fr!important;min-width:0!important;gap:8px 10px;padding:12px 40px 12px 12px;margin:0 0 10px;border:1px solid var(--b);border-radius:14px;position:relative;background:var(--p)}
 .ed.wide .ef{display:grid;gap:4px;min-width:0}
 .ed.wide .ef:first-child{grid-column:1/-1}
 .ed.wide .efl{display:block;font:600 10.5px var(--sans);color:var(--m2);text-transform:uppercase;letter-spacing:.04em}
 .ed.wide .ef input[type=checkbox]{justify-self:start}
 .ed.wide .del{position:absolute;top:10px;right:10px}
}
/* tickery a ceny (watchlist, špekulácie, alerty) */
.er input.tkr{text-transform:uppercase;font:600 13.5px var(--mono);letter-spacing:.02em;width:100%}
.er output.eo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:34px;font:500 13px var(--sans);font-variant-numeric:tabular-nums;color:var(--t);overflow-wrap:anywhere}
.er output.eo small{font-size:11.5px;font-weight:600}
.er .mu{color:var(--m2)}
.er .g{color:var(--teal)}.er .r{color:var(--red)}
a.yf{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid var(--b);color:var(--t);text-decoration:none;font-weight:700;transition:background .15s,transform .15s}
a.yf:hover{background:var(--pa);transform:translateY(-1px)}
.kzNote:empty{display:none}

/* okno Live – živá cena tickera */
button.lvb{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;border:1px solid var(--b);background:var(--p);color:var(--t);border-radius:9px;padding:5px 9px;font:inherit;cursor:pointer;transition:background .15s,transform .15s,border-color .15s}
button.lvb:hover{background:var(--pa);border-color:var(--teal)}
button.lvb i{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 var(--teal);animation:lvPulse 2s infinite}
.lv-modal{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:16px;background:rgba(5,7,10,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:moFade .2s}
.lv-card{width:min(640px,100%);background:var(--p);color:var(--t);border:1px solid var(--b);border-radius:20px;padding:20px 22px;box-shadow:0 30px 70px -30px rgba(0,0,0,.7);animation:moIn .32s cubic-bezier(.34,1.56,.64,1)}
.lv-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.lv-tk{display:flex;align-items:center;gap:8px;font:800 20px var(--mono)}
.lv-st{font:700 10.5px var(--sans);letter-spacing:.08em;padding:3px 7px;border-radius:6px;background:var(--teal-soft,rgba(14,159,110,.14));color:var(--teal)}
.lv-modal.closed .lv-st,.lv-modal.off .lv-st{background:var(--pa);color:var(--m)}
.lv-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);animation:lvPulse 1.6s infinite}
.lv-modal.closed .lv-dot,.lv-modal.off .lv-dot{background:var(--m2);animation:none}
.lv-nm{color:var(--m);font-size:13px;margin-top:3px}
.lv-x{border:0;background:var(--pa);color:var(--t);width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:15px}
.lv-px{font:800 40px/1.1 var(--disp);letter-spacing:-.02em;margin:14px 0 2px;font-variant-numeric:tabular-nums;width:max-content;max-width:100%;border-radius:8px;padding:0 4px;margin-left:-4px}
.lv-ch{font:600 14px var(--sans);margin-bottom:10px}
.lv-ch.g{color:var(--teal)}.lv-ch.r{color:var(--red)}
.lv-chart{margin:6px 0 8px}
.lv-meta{font-size:12.5px;color:var(--m);min-height:18px}
.lv-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:11.5px;color:var(--m2)}
@keyframes lvPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--teal) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media(max-width:560px){.lv-px{font-size:32px}.lv-card{padding:18px 16px}}
@media(prefers-reduced-motion:reduce){button.lvb i,.lv-dot{animation:none}}
.lv-foot .btn{flex:none;white-space:nowrap;text-decoration:none;margin:0;display:inline-flex;align-items:center;padding:8px 14px;border-radius:10px;font:600 13px var(--sans);color:var(--t)}
.lv-foot span{flex:1;min-width:180px}
