:root{
  --bg:#f7f8f9;--panel:#fff;--ink:#2d2b3a;--muted:#6f6a80;--soft:#9a94ab;--accent:#8b65a3;
  --line:#e3e1e9;--line2:#efedf3;--pos:#139578;--neg:#d15d79;--zero:#8a8796;
  --ring:#ded9e9;--ell:#e6e0ee;--core:#c7b9e2;--sel:#8d75b5;
  --pos-bg:#e7f6ef;--neg-bg:#fbebef;--zero-bg:#f0eff3;--lav-bg:#f1ecf7;
  --r:10px;--gap:18px;--side:3.3vw;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
[hidden]{display:none!important}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.pos{color:var(--pos)}.neg{color:var(--neg)}.zero{color:var(--zero)}.na{color:var(--soft)}
.cap{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--sel);outline-offset:2px}

/* ---------- naglowek */
.top{height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--side);
  border-bottom:1px solid var(--line);background:var(--panel)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0}
.brand svg{flex:none}
.brand b{font-size:21px;font-weight:600;letter-spacing:-.6px}
.brand b i{font-style:normal;color:var(--accent)}
.brand .sep{width:1px;height:26px;background:var(--line)}
.brand .tag{font-size:11px;letter-spacing:.16em;color:var(--muted);white-space:nowrap}
.nav{display:flex;align-items:center;gap:26px}
.nav a{text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.nav a:hover{color:var(--ink)}
.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;
  font-size:12px;color:var(--muted);white-space:nowrap;background:#fff}
.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pos)}
.pill.demo:before{background:var(--accent)}
.pill.none:before{background:var(--soft)}

main{padding:0 var(--side) 40px}

/* ---------- intro */
.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:30px 0 16px}
.intro h1{margin:6px 0 4px;font-size:28.8px;line-height:1.2;font-weight:500;letter-spacing:-1.2px}
.intro h1 span{color:#9d93b2}
.intro p{margin:0;color:var(--muted);font-size:15px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:999px;
  border:1px solid var(--line);background:#fff;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--core)}
.btn.lav{border-color:var(--core);color:#5f4479}
.btn.sm{min-height:34px;padding:5px 12px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:8px 14px;margin-bottom:var(--gap);font-size:13px;color:var(--muted)}
.status b{color:var(--ink);font-weight:600}
.status.demo{background:var(--lav-bg);border-color:#ddd0ec;color:#5f4479}
.status .src{margin-left:auto}

/* ---------- siatka */
.grid{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(520px,2.8fr) minmax(230px,1fr);gap:var(--gap);
  grid-template-areas:"left orbit right"}
.col{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.col.left{grid-area:left}.col.right{grid-area:right}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px 18px;min-width:0}
.panel h2{margin:0 0 12px}
.orbitp{grid-area:orbit;background:linear-gradient(150deg,#fff,#faf9fd 55%,#f5f2fa);padding:18px 18px 14px;position:relative}
.orbitp .head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.orbitp .head small{color:var(--muted)}

/* bilans */
.big{font-size:34px;line-height:1.1;letter-spacing:-1px;font-weight:500}
.sub{color:var(--muted);margin-top:2px}
.bars{margin:16px 0 12px;display:grid;gap:9px}
.bar{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:13px}
.bar .t{height:4px;border-radius:3px;background:var(--line2);grid-column:1/-1;overflow:hidden}
.bar .t i{display:block;height:100%;border-radius:3px;transition:width .5s}
.counts{display:flex;gap:12px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.note{font-size:12.5px;color:var(--muted);margin:10px 0 0;line-height:1.45}
.note.warn{color:#9a5b16;background:#fdf6ea;border-radius:7px;padding:7px 9px}
.leaders{list-style:none;margin:0;padding:0}
.leaders li{border-top:1px solid var(--line2)}
.leaders li:first-child{border-top:0}
.leaders a{display:grid;grid-template-columns:18px 42px 1fr auto;align-items:center;gap:6px;padding:8px 0;text-decoration:none;min-height:44px}
.leaders a:hover .nm{color:var(--ink)}
.leaders .n{color:var(--soft);font-size:12px}
.leaders .tk{font-weight:600}
.leaders .nm{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* orbita */
.orbit-wrap{position:relative}
svg.orbit{display:block;width:100%;height:auto;max-height:76vh;margin:0 auto;touch-action:manipulation}
.orbit .ring{fill:none;stroke:var(--ring);stroke-width:1}
.orbit .ell{fill:none;stroke:var(--ell);stroke-width:.8}
.orbit .lnk{fill:none;stroke-linecap:round;opacity:.22;transition:opacity .35s,stroke .35s,stroke-width .55s}
.orbit .lnk.p{stroke:var(--pos)}.orbit .lnk.n{stroke:var(--neg)}.orbit .lnk.z{stroke:var(--zero)}
.orbit .lnk.x{stroke:#c9c5d3;stroke-dasharray:3 4;opacity:.35}
.orbit .lnk.hi{opacity:.85}
.orbit:not(.all) .lnk:not(.hi){opacity:0}
.orbit .lnk.dim{opacity:.05}
.orbit .b{cursor:pointer;transition:opacity .35s}
.orbit .b circle{transition:r .55s,opacity .35s}
.orbit .b .lp,.orbit .b .ln{transition:opacity .4s}
.orbit .b text{pointer-events:none;text-anchor:middle;dominant-baseline:central}
.orbit .b .tk{font-weight:700;fill:#4a4560}
.orbit .b.p .tk{fill:#196c54}.orbit .b.n .tk{fill:#9c3552}.orbit .b.x .tk{fill:#a39fb0}
.orbit .b .ct{font-weight:600;fill:#196c54}.orbit .b.n .ct{fill:#9c3552}.orbit .b.z .ct{fill:#6b6878}
.orbit .b .selr{fill:none;stroke:var(--sel);stroke-width:1.5;opacity:0}
.orbit .b.sel .selr{opacity:1}
.orbit .b.dim{opacity:.18}
.orbit .b:focus{outline:none}
.orbit .b:focus-visible .selr{opacity:1;stroke-dasharray:3 2}
.orbit .core-t{text-anchor:middle;dominant-baseline:central;pointer-events:none}
.orbit .flow{fill:var(--sel)}
.tip{position:absolute;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;
  font-size:12.5px;box-shadow:0 4px 18px rgba(45,43,58,.08);min-width:170px;z-index:5;line-height:1.45}
.tip b{display:block;font-size:13px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid}
.picker{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.picker input{flex:1 1 200px;min-height:44px;border:1px solid var(--line);border-radius:999px;padding:8px 16px;background:#fff}

/* wybrana */
.selhead{display:flex;gap:12px;align-items:center}
.sq{width:46px;height:46px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none;
  background:var(--zero-bg);color:#4a4560;border:1px solid #dddae4}
.sq.p{background:linear-gradient(160deg,#f6fffa,#b8e6d5);border-color:#8ecdb6;color:#196c54}
.sq.n{background:linear-gradient(160deg,#fff9fa,#f1c4cf);border-color:#e5a6b7;color:#9c3552}
.sq.x{background:#fff;border:1px dashed #c9c5d3;color:#a39fb0}
.selhead .nm{font-weight:600;font-size:15px;line-height:1.25}
.selhead .sc{color:var(--muted);font-size:12.5px}
.kv{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:12px 0;font-size:13px}
.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right}
.spark{display:block;width:100%;height:46px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font-size:12.5px;cursor:pointer;min-height:34px}
.chip[aria-pressed="true"]{background:var(--lav-bg);border-color:var(--core);color:#5f4479}

/* pasek sesji */
.sessbar{margin-top:var(--gap);display:grid;grid-template-columns:auto 1fr auto;gap:12px 18px;align-items:center}
.sessbar .when{font-size:15px}
.sessbar .when b{font-weight:600}
.sessbar .ctr{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sessbar input[type=range]{width:100%;accent-color:var(--accent);min-height:30px}
.sessbar input[type=date],.sessbar select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:#fff}
.sessbar .axis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--soft)}
.sessbar .msg{grid-column:1/-1;font-size:12.5px;color:#9a5b16;margin:0}

/* tabela */
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:44px 0 14px}
.sec-h h2{margin:4px 0 0;font-size:24px;font-weight:500;letter-spacing:-.8px}
.sec-h input{min-height:42px;border:1px solid var(--line);border-radius:999px;padding:8px 16px;width:min(320px,100%);background:#fff}
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line2);white-space:nowrap}
th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;background:#fcfbfd;position:sticky;top:0}
th:first-child,td:first-child,th.l,td.l{text-align:left}
th button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
th button:focus-visible{outline:2px solid var(--sel)}
th[aria-sort="ascending"] button:after{content:"↑"}
th[aria-sort="descending"] button:after{content:"↓"}
tbody tr{cursor:pointer}
tbody tr:hover{background:#fbfafd}
tbody tr.sel{background:var(--lav-bg)}
tbody tr.out td{color:var(--soft)}
td .tk{font-weight:700;margin-right:8px}
td .nm{color:var(--muted)}
td svg{display:block;width:90px;height:24px;margin-left:auto}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* objasnienia */
.explain{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--gap);margin-top:44px}
.explain h2{font-size:24px;font-weight:500;letter-spacing:-.8px;margin:4px 0 10px}
.explain p,.explain li{color:#4f4a60}
.explain ul{padding-left:18px;margin:0}
.explain h3{font-size:15px;font-weight:600;margin:18px 0 6px}
.explain code{background:var(--lav-bg);padding:1px 5px;border-radius:4px;font-size:12.5px}
footer{padding:26px var(--side);border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;background:#fff;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

dialog{border:1px solid var(--line);border-radius:12px;max-width:560px;padding:24px;color:var(--ink)}
dialog::backdrop{background:rgba(45,43,58,.25)}
dialog h2{margin-top:0;font-weight:500}

/* ---------- karta spolki */
.crumb{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:20px 0 6px;font-size:13px;color:var(--muted)}
.crumb nav a{color:var(--muted);text-decoration:none}
.crumb nav a:hover{color:var(--ink)}
.chead{display:flex;align-items:center;gap:16px;padding:10px 0 18px;flex-wrap:wrap}
.chead .sq{width:58px;height:58px;font-size:15px;border-radius:11px}
.chead h1{margin:0;font-size:28.8px;font-weight:500;letter-spacing:-1.2px;line-height:1.15}
.chead .meta{color:var(--muted);font-size:13px;display:flex;gap:6px 14px;flex-wrap:wrap}
.cgrid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,1fr);gap:var(--gap)}
.cgrid .side{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.price{font-size:38px;font-weight:500;letter-spacing:-1.2px;line-height:1.1}
.chg{font-size:15px;margin-top:4px}
.ranges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ranges .chip[disabled]{opacity:.4;cursor:not-allowed}
.ranges input{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:3px 6px}
.chart-wrap{position:relative;margin-top:12px}
svg.chart{display:block;width:100%;height:auto;touch-action:pan-y}
.chart .grid-l{stroke:var(--line2)}
.chart .ax{font-size:11px;fill:var(--soft)}
.chart .ln{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round}
.chart .ar{fill:url(#chartFill)}
.chart .gap{stroke:#d9a441;stroke-dasharray:2 3}
.chart .mk{stroke:var(--sel);stroke-dasharray:3 3}
.chart .orbd{stroke:var(--accent);stroke-width:1;opacity:.45}
.chart .dot{fill:#fff;stroke:var(--accent);stroke-width:2}
.chart .cu{fill:var(--pos);stroke:var(--pos)}.chart .cd{fill:var(--neg);stroke:var(--neg)}
.period{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:8px}
.hist-ctl{display:flex;min-width:0;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px;font-size:13px}
.hist-ctl input{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:3px 6px}
.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px;font-size:13px;color:var(--muted)}
.notfound{padding:60px 0;text-align:center}

/* ---------- tablet */
@media (max-width:1180px){
  .grid{grid-template-columns:1fr 1fr;grid-template-areas:"orbit orbit" "left right"}
  .cgrid{grid-template-columns:minmax(0,1fr)}
}
/* ---------- telefon */
@media (max-width:760px){
  :root{--side:16px;--gap:14px}
  .top{height:auto;min-height:60px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
  .brand .tag,.brand .sep{display:none}
  .nav{gap:14px;font-size:13px;flex-wrap:wrap}
  .nav .hide-s{display:none}
  .intro{flex-direction:column;align-items:flex-start;padding-top:20px}
  .intro h1{font-size:24px;letter-spacing:-.8px}
  .grid{grid-template-columns:1fr;grid-template-areas:"orbit" "right" "left"}
  .orbitp{padding:14px 10px 12px}
  .orbit .b .ct{display:none}
  .sessbar{grid-template-columns:1fr}
  .explain{grid-template-columns:1fr}
  .status .src{margin-left:0}
  .price{font-size:32px}
  .chead h1{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
.spark svg{display:block;width:100%;height:46px}
/* 9.11: panel wybranej spolki wg wzoru */
.selhead{position:relative}
.tagdemo{margin-left:auto;align-self:flex-start;font-size:9.5px;letter-spacing:1px;font-weight:700;color:#8b65a3;background:var(--lav-bg);border-radius:4px;padding:3px 6px}
.sel-lab{margin-top:18px;color:var(--muted);font-size:12.5px}
.sel-big{font-size:38px;font-weight:500;letter-spacing:-1.2px;line-height:1.15;margin-top:4px}
.sel-big small{font-size:16px;font-weight:500;letter-spacing:0}
.sel-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.sel-two div{display:flex;flex-direction:column;gap:4px}.sel-two div:last-child{text-align:right}
.sel-two span{font-size:11.5px;color:var(--muted)}.sel-two b{font-size:18px;font-weight:500}
.sel-chart{margin-top:14px}.sel-chart svg{display:block;width:100%;height:70px}
.sel-cap{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);margin:2px 0}
.sel-how{background:var(--lav-bg);border:1px solid #e6def3;border-radius:10px;padding:14px 16px;margin-top:14px}
.sel-how .f{font-size:15px;color:#4f4a60;margin-top:6px}.sel-how .f2{font-size:12px;color:#4f4a60;margin-top:6px}
.sel-how .note{margin-top:8px;font-size:10.5px}
.sel-more{margin-top:14px;display:inline-block}
/* 9.11: tryb "wszystkie polaczenia" */
.orbitp .head{gap:10px;flex-wrap:wrap}
.linkbtn{margin-left:auto}
.linkbtn[aria-pressed="true"]{background:var(--lav-bg);border-color:#c7b9e2;color:#5e4378}
.orbit.all .lnk{opacity:.78}
.orbit.all .lnk.x{opacity:.45}
.orbit.all .lnk.dim{opacity:.07}
.orbit.all .lnk.hi{opacity:1}
.orbit .fd{opacity:.85;pointer-events:none}.orbit .fd.p{fill:#139578}.orbit .fd.n{fill:#d15d79}
