:root{
  --bg:#eef0f4;--surface:#fff;--surface-2:#f4f5f8;--ink:#0f1320;--ink-2:#4b5466;--muted:#8a92a3;--line:#e3e6ec;
  --accent:#111827;--ok:#0f7a3d;--ok-soft:#dcf3e5;--bad:#b42318;--bad-soft:#fde4e1;--warn:#a85a00;--warn-soft:#ffefd6;--neu-soft:#eceef2;
  --meta:#2563eb;--ads:#ea580c;--gbp:#16a34a;--ga4:#d97706;--sc:#7c3aed;--shop:#db2777;--social:#0891b2;
  --r:22px;--r-sm:14px;--shadow:0 1px 2px rgba(15,19,32,.04),0 8px 24px rgba(15,19,32,.06);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Inter,Roboto,Arial,sans-serif;
}
:root[data-theme="dark"]{
  --bg:#0b0d12;--surface:#151922;--surface-2:#1c212c;--ink:#f2f4f8;--ink-2:#b7bfcc;--muted:#7f889a;--line:#262c38;
  --accent:#f2f4f8;--ok:#4ade80;--ok-soft:#0f2e1c;--bad:#f87171;--bad-soft:#3a1513;--warn:#fbbf24;--warn-soft:#3a2a0b;--neu-soft:#232936;--shadow:none}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b0d12;--surface:#151922;--surface-2:#1c212c;--ink:#f2f4f8;--ink-2:#b7bfcc;--muted:#7f889a;--line:#262c38;
  --accent:#f2f4f8;--ok:#4ade80;--ok-soft:#0f2e1c;--bad:#f87171;--bad-soft:#3a1513;--warn:#fbbf24;--warn-soft:#3a2a0b;--neu-soft:#232936;--shadow:none}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font)}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
.app{display:grid;grid-template-columns:64px minmax(0,1fr);min-height:100vh}
/* szyna klientów */
.rail{background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow:auto;padding:12px 6px;display:flex;flex-direction:column;gap:4px;align-items:center}
.wm{font-weight:800;letter-spacing:.16em;font-size:12px;margin-bottom:6px}.wm span{font-weight:500;letter-spacing:0;color:var(--muted)}
.brand{font-weight:800;font-size:15px;margin-bottom:8px;width:36px;height:36px;border-radius:10px;background:var(--ink);color:var(--bg);display:grid;place-items:center}
.cbtn{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;padding:4px 0}
.av{position:relative;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--surface-2);color:var(--ink-2);transition:.15s}
.cbtn[aria-current="true"] .av{background:var(--accent);color:var(--bg)}
.cbtn .nm{display:none}
.cbtn[aria-current="true"] .nm{font-weight:700;color:var(--ink)}
.av .b{position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;border-radius:8px;background:var(--warn);color:#fff;font-size:9px;display:grid;place-items:center;border:2px solid var(--surface)}
.av .b.q{background:var(--muted)}
.rail .gap{height:6px}
/* główna */
main{padding:22px 28px 80px;max-width:1280px;width:100%;min-width:0}
.head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
h1{font-size:28px;line-height:1.1;margin:0;letter-spacing:-.02em}
.live{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13px;margin-top:6px}
.live i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft);animation:p 2s infinite}
@keyframes p{50%{box-shadow:0 0 0 7px transparent}}
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;background:var(--surface);border-radius:16px;padding:4px;box-shadow:var(--shadow);border:1px solid var(--line)}
.seg button{min-height:44px;min-width:56px;padding:0 14px;border-radius:12px;font-weight:600;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--bg)}
.seg button:disabled{opacity:.3;cursor:not-allowed}
.seg .vslbl{align-self:center;padding:0 8px;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.seg input[type=date]{min-height:44px;border:0;background:transparent;color:inherit;font:inherit;padding:0 8px;max-width:148px}
.ibtn{min-height:52px;padding:0 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-weight:600;font-size:14px}
/* źródła */
.src{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 20px;overflow:visible;padding-bottom:4px}
.src button{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600;color:var(--ink-2);white-space:nowrap}
.src button i{width:10px;height:10px;border-radius:50%}
.src button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* kafle */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:12px;margin-top:12px}
.tile{background:var(--surface);border-radius:var(--r);padding:14px 16px 12px;box-shadow:var(--shadow);text-align:left;width:100%;border:1px solid var(--line);display:flex;flex-direction:column;gap:4px;min-height:112px;position:relative;overflow:hidden}
.tile .lbl{color:var(--ink-2);font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}
.tile .lbl i{width:8px;height:8px;border-radius:50%}
.tile .val{font-size:28px;font-weight:750;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}
.hero .tile{min-height:140px}
.hero .tile .val{font-size:40px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--neu-soft);color:var(--ink-2)}
.pill.good{background:var(--ok-soft);color:var(--ok)}.pill.bad{background:var(--bad-soft);color:var(--bad)}
.cmp{color:var(--muted);font-size:12px}
.tile svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:36px;opacity:.9}
.hero .tile svg{height:56px}
.tile .val,.tile .lbl,.tile .row{position:relative;z-index:1}
/* karty */
.card{background:var(--surface);border-radius:var(--r);padding:22px;box-shadow:var(--shadow);border:1px solid var(--line);margin-top:16px;overflow-x:auto;min-width:0}
.card h3{margin:0 0 14px;font-size:18px;letter-spacing:-.01em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rank{list-style:none;margin:0;padding:0}
.rank li{display:flex;align-items:center;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
.rank li:first-child{border-top:0}
.rank .n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--surface-2);flex:none}
.rank.good .n{background:var(--ok-soft);color:var(--ok)}.rank.bad .n{background:var(--bad-soft);color:var(--bad)}
.rank .t{flex:1;font-weight:500}
.rank .v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.rank .v small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.recs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.rec{background:var(--surface);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);border:1px solid var(--line);border-top:5px solid var(--line);display:flex;flex-direction:column;gap:10px}
.rec.hi{border-top-color:var(--bad)}.rec.mid{border-top-color:var(--warn)}.rec.ok{border-top-color:var(--ok)}
.rec .meta{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.rec p{margin:0;font-size:16px;line-height:1.4}
.rec .act{display:flex;gap:8px;margin-top:auto}
.rec .act button{white-space:nowrap;min-height:38px;padding:0 10px;border-radius:12px;background:var(--surface-2);font-weight:600;font-size:13px}
.sec-t{display:flex;justify-content:space-between;align-items:baseline;margin:28px 0 0}
.sec-t h2{font-size:20px;margin:0}
.sec-t span{color:var(--muted);font-size:13px}
.banner{background:var(--surface);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);border:1px solid var(--line);margin-bottom:16px;font-size:18px;line-height:1.45}
.bar{display:flex;height:18px;border-radius:9px;overflow:hidden;margin:6px 0 14px;gap:3px}
.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:14px}
.legend b{font-size:20px;display:block}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{padding:12px 8px;border-top:1px solid var(--line);text-align:right}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);font-weight:600;font-size:13px;border-top:0}
details summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
.note{color:var(--muted);font-size:13px;margin-top:10px}
.drawer{position:fixed;inset:0 auto 0 64px;visibility:hidden;width:300px;background:var(--surface);border-right:1px solid var(--line);box-shadow:var(--shadow);padding:18px;transform:translateX(-20px);opacity:0;transition:.2s;z-index:20;overflow:auto}
.drawer.open{transform:none;opacity:1;visibility:visible}
.drawer input{width:100%;min-height:48px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);padding:0 14px;color:var(--ink);font:inherit;margin-bottom:10px}
.drawer button.c{display:flex;justify-content:space-between;width:100%;min-height:48px;padding:0 12px;border-radius:12px;font-weight:600;align-items:center}
.drawer button.c[aria-current="true"]{background:var(--surface-2)}
.drawer .b{background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:2px 9px;font-size:12px}
/* tryb na żywo */
body.tv .rail,body.tv .tools .seg,body.tv #srcTabs,body.tv .drawer{display:none}
body.tv .app{grid-template-columns:1fr}
body.tv main{max-width:none;padding:28px 36px}
.clock{display:none;font-size:44px;font-weight:750;font-variant-numeric:tabular-nums}
body.tv .clock{display:block}
.prog{display:none;height:4px;background:var(--line);border-radius:2px;margin-top:10px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--accent);width:0}
body.tv .prog{display:block}
/* v3 */
.homeg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);text-align:left;display:flex;flex-direction:column;gap:8px;width:100%}
.cc .top{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:16px}
.cc .st{font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px}
.st.ok{background:var(--ok-soft);color:var(--ok)}.st.w{background:var(--warn-soft);color:var(--warn)}.st.q{background:var(--neu-soft);color:var(--muted)}
.cc .nums{display:flex;gap:18px}.cc .nums b{display:block;font-size:22px;font-variant-numeric:tabular-nums}.cc .nums span{font-size:12px;color:var(--muted)}
.cc ul{margin:0;padding-left:16px;font-size:13px;color:var(--ink-2)}
.trio{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:12px}
.chart svg{width:100%;height:170px;display:block}
.chart .ann{font-size:11px;fill:var(--ink-2)}
.chart .lg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin-top:6px}
.pace .track{height:12px;border-radius:6px;background:var(--surface-2);overflow:hidden;position:relative;margin:10px 0 6px}
.pace .track i{position:absolute;top:0;bottom:0;left:0;background:var(--ink)}
.pace .track em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--warn)}
.big{font-size:24px;font-weight:750;font-variant-numeric:tabular-nums}
.guard .row2{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.guard .row2:first-of-type{border-top:0}
.ok-t{color:var(--ok);font-weight:700}.bad-t{color:var(--bad);font-weight:700}
.stars{color:#f5a524;letter-spacing:1px}
.inb{display:flex;flex-direction:column;gap:12px}
.msg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:16px}
.msg .who{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.msg .q{font-size:15px}
.msg textarea{width:100%;min-height:76px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;padding:10px;resize:vertical}
.msg .act{display:flex;gap:8px;margin-top:8px}
.msg .act button{min-height:40px;padding:0 14px;border-radius:12px;background:var(--surface-2);font-weight:600;font-size:13px}
.msg .act button.pri{background:var(--ink);color:var(--bg)}
.ch{font-size:11px;font-weight:700;border-radius:6px;padding:2px 7px;color:#fff}
.notein{width:100%;min-height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;padding:0 10px}
.rec .act button.dyr{background:var(--ink);color:var(--bg)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;z-index:40;opacity:0;transition:.2s}
.toast.on{opacity:1}
@media(max-width:1100px){.homeg{grid-template-columns:1fr 1fr}.trio{grid-template-columns:1fr 1fr}.trio .chart{grid-column:1/-1}.msg{grid-template-columns:1fr}}
@media(max-width:1100px){.recs{grid-template-columns:1fr}}
@media(max-width:900px){
  .app{grid-template-columns:56px minmax(0,1fr)}.drawer{left:56px}
  main{padding:18px 16px 80px}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}
  h1{font-size:24px}.hero .tile .val{font-size:34px}.tile .val{font-size:24px}
}
@media(max-width:560px){.homeg{grid-template-columns:1fr}.hero{grid-template-columns:1fr}main{overflow-x:hidden}.seg{max-width:100%;overflow-x:auto}.seg button{min-width:44px;padding:0 10px}.hero .tile .val{font-size:28px}.tools{width:100%}.ibtn#out{display:none}.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.cbtn .nm{display:none}.cbtn{width:auto}.drawer{left:0;top:84px}.grid{grid-template-columns:1fr}}
/* web2: logowanie, stany */
.login{max-width:380px;margin:12vh auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--shadow)}
.login h1{font-size:22px;margin:6px 0 4px}.login p{color:var(--ink-2);margin:0 0 16px}
.login input{width:100%;min-height:48px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;padding:0 14px;margin-bottom:10px}
.login button{width:100%;min-height:48px;border-radius:12px;background:var(--ink);color:var(--bg);font-weight:700}
.empty{color:var(--muted);padding:18px 0}
.err{background:var(--bad-soft);color:var(--bad);border-radius:12px;padding:10px 14px;margin:10px 0}
.demo{position:fixed;right:14px;bottom:14px;background:var(--ink);color:var(--bg);font-size:12px;padding:7px 12px;border-radius:10px;opacity:.8;z-index:30}
[hidden]{display:none!important}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;min-height:36px;white-space:nowrap}
.chip:disabled{opacity:.5}
/* sklep: ROAS względem progu, kropka kanału */
b.good{color:var(--ok)}b.bad{color:var(--bad)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle}

/* tablet (iPad 768-1100 px): bez poziomego przewijania strony; narzędzia zawijają się, kafle po 2-3 w rzędzie */
.two>*,.trio>*,.hero>*,.grid>*,.recs>*{min-width:0}
@media(max-width:1100px){
  .grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
  .head{align-items:flex-start}.tools{width:100%}
  .src{flex-wrap:wrap;overflow:visible}.src button{min-height:44px;padding:0 14px}
}
.card td{white-space:nowrap}
/* widok rozszerzony: tabele przewijane w karcie (tablet), pierwsza kolumna zawija nazwę */
.xt{overflow-x:auto;-webkit-overflow-scrolling:touch}.xt table{min-width:560px}.xt td:first-child{white-space:normal;min-width:180px;max-width:340px}
.xt th{white-space:nowrap;font-size:13px}.xt td .pill{font-size:11px;padding:1px 6px;margin-left:4px}
/* pulpit admina: kafle decyzji i strumień zdarzeń */
.dec{padding:12px 0;border-top:1px solid var(--line)}.dec:first-of-type{border-top:0;padding-top:0}
.dec .q{font-weight:600;margin-bottom:10px;line-height:1.35}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);text-align:left;flex:1 1 140px}
.opt small{color:var(--muted);font-size:12px}.opt.rec{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok) inset}.opt .r{color:var(--ok);font-weight:600}
.feed{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto}
.feed li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.35}.feed li:first-child{border-top:0}
.feed .ic{width:22px;flex:none;text-align:center}.feed .tx{flex:1;min-width:0;overflow-wrap:anywhere}.feed .tm{flex:none;color:var(--muted);font-size:12px;white-space:nowrap}
/* strumień: klikalne zdarzenia, okno odpowiedzi na maila, podświetlony komentarz */
.feed li.ev{cursor:pointer;border-radius:10px;padding-left:6px;padding-right:6px}.feed li.ev:hover{background:var(--surface-2)}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:flex-start;justify-content:center;z-index:50;padding:40px 16px;overflow:auto}
.modal[hidden]{display:none}.modal .box{background:var(--surface);border-radius:var(--r);padding:22px;max-width:760px;width:100%;box-shadow:var(--shadow)}
.modal textarea{width:100%;min-height:200px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;padding:12px;margin:6px 0 10px}
.modal .act{display:flex;flex-wrap:wrap;gap:8px}.modal .act button{min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);font-weight:600}
.modal .act .pri{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.thr{white-space:pre-wrap;max-height:260px;overflow:auto;font-size:13px;background:var(--surface-2);border-radius:10px;padding:10px}
.msg.flash{box-shadow:0 0 0 3px var(--ok)}
.feed li.done{opacity:.55}.feed li.done .ic{color:var(--ok);font-weight:700}
.badge{display:inline-block;min-width:22px;padding:1px 8px;border-radius:999px;background:var(--bad);color:#fff;font-size:13px;text-align:center;vertical-align:middle}

/* Pulpit admina 27.10: lewa połowa Aktualności|Decyzje|Zadania, prawa Do odpowiedzi|Wyniki; poziomo obok siebie, pionowo pod sobą */
.dcount{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.dcount span{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:14px;color:var(--muted)}
.dcount span b{color:var(--ink);margin-left:4px}.dcount span.hot{border-color:var(--bad);color:var(--ink)}.dcount span.hot b{color:var(--bad)}
.desk{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.desk>*{min-width:0}
.dpane{margin-top:0;display:flex;flex-direction:column}
.dtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px 0 10px;overflow-x:auto}
.dtabs button{min-height:44px;padding:0 14px;border:0;background:none;font-weight:600;font-size:15px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.dtabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.badge.calm{background:var(--surface-2);color:var(--ink)}
.dbody{max-height:560px;overflow:auto}.dbody .feed{max-height:none}
.none{color:var(--muted);padding:18px 0}
.news{list-style:none;margin:0;padding:0}
.news li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.4}.news li:first-child{border-top:0}
.news .ic{width:24px;height:24px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--surface-2)}
.news .n-ok .ic{color:var(--ok)}.news .n-problem .ic{color:var(--bad)}.news .n-pytanie .ic{color:#b45309}
.news .tx{flex:1;min-width:0}.news .tm{flex:none;color:var(--muted);font-size:12px}
.tasks{list-style:none;margin:0;padding:0}
.tasks li{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.tasks li:first-child{border-top:0}.tasks .tx{flex:1;min-width:0}
button.big{min-height:44px;min-width:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);font-weight:600;font-size:14px}
button.big.ok{border-color:var(--ok);color:var(--ok)}button.big.bin{padding:0;font-size:18px}
.feed .acts{display:flex;gap:6px;flex:none;align-self:center}
.feed li.ev .tx .tm{display:block;margin-top:2px}
.skipped{margin-top:10px}.skipped summary{cursor:pointer;color:var(--muted);font-size:14px;min-height:44px;display:flex;align-items:center}.skipped li{opacity:.55}
.toast .undo{margin-left:10px;min-height:36px;padding:0 12px;border-radius:8px;border:1px solid currentColor;background:none;color:inherit;font-weight:700}
@media(max-width:900px),(orientation:portrait) and (max-width:1100px){.desk{grid-template-columns:1fr}.dbody{max-height:none}}
.desk .chip{min-height:0;padding:1px 8px;font-size:12px;display:inline-block;margin-right:2px}
.mcost{margin:0 0 16px}.mcost .mc{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mcost .mc b{display:block;font-size:24px}.mcost .mc span{color:var(--muted);font-size:13px}
.mcby{list-style:none;margin:10px 0 0;padding:0;font-size:14px;color:var(--muted)}.mcby li{padding:3px 0}.mcby b{color:var(--ink)}
@media(max-width:560px){.mcost .mc{grid-template-columns:1fr}}
.ccw{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.ccw .cc{border:0;box-shadow:none;background:none}
.cal{list-style:none;margin:0;padding:0 16px 12px;font-size:13px;color:var(--ink-2)}
.cal li{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--line)}.cal .acts{display:flex;gap:6px;flex-wrap:wrap}.cal button.big{min-height:40px;font-size:13px}
/* Rozszerzony (27.10, wzór v1): małe kafle 6–8 w rzędzie, gęste tabele 12–13 px, sortowanie, przewijanie w karcie */
.xk{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin:0 0 12px}
.xkt{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px 4px;display:flex;flex-direction:column;gap:1px;min-width:0}
.xkt span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.xkt b{font-size:17px;font-variant-numeric:tabular-nums;line-height:1.2}
.xkt .pill{align-self:flex-start;font-size:11px;padding:0 6px}.xkt svg{width:100%;height:20px;margin-top:2px}.xkt polyline{fill:none;stroke:var(--accent,#2563eb);stroke-width:1.5;vector-effect:non-scaling-stroke}
.xgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.xgrid>*{min-width:0}.xgrid .wide{grid-column:1/-1}
.xc{margin:0;padding:12px}.xc h3{font-size:14px;margin:0 0 8px}
.xt{overflow:auto;max-height:420px;border-radius:8px}.xt.tall{max-height:560px}
table.xs{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
table.xs th{position:sticky;top:0;background:var(--surface-2);font-size:11.5px;font-weight:600;text-align:right;padding:6px 8px;cursor:pointer;white-space:nowrap;user-select:none;z-index:1}
table.xs th:first-child,table.xs td:first-child{text-align:left}
table.xs th[data-dir="desc"]::after{content:" ▼";font-size:9px}table.xs th[data-dir="asc"]::after{content:" ▲";font-size:9px}
table.xs td{padding:5px 8px;border-top:1px solid var(--line);text-align:right;white-space:nowrap}table.xs td:first-child{white-space:normal;min-width:140px;max-width:340px}
table.xs .pill{font-size:10.5px;padding:0 5px}table.xs tr:hover td{background:var(--surface-2)}
@media(max-width:900px),(orientation:portrait) and (max-width:1100px){.xgrid{grid-template-columns:1fr}}
.xgrid .xc:not(.wide) table.xs td:first-child{min-width:64px}table.xs th,table.xs td{padding:5px 7px}
.extv .card table td,.extv .card table th{padding:5px 8px;font-size:12.5px}.extv .card h3{font-size:14px}.extv .card{padding:12px}
/* Tagi pulpitu (27.10): klient w swoim kolorze (jak ikona w railu) i temat sprawy */
.tags{display:inline-flex;flex-wrap:wrap;gap:4px;margin-right:6px;vertical-align:1px}
.tag{display:inline-block;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap}
.tag.tc{background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.tag.tt{background:var(--surface-2);color:var(--ink-2,var(--muted));border:1px solid var(--line)}
.rail .av[style*="--c"]{background:color-mix(in srgb,var(--c) 16%,var(--surface));color:var(--c);border-color:color-mix(in srgb,var(--c) 40%,transparent)}
/* Pulpit: tylko pionowe przewijanie, bez przesuwania w bok (Damian 27.10), długie teksty się zawijają */
.dpane{overflow:hidden;min-width:0}.dbody{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
.dbody li,.dbody .dec,.dbody .tx,.dbody .q{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.dtabs{overscroll-behavior-x:contain}
.feed li.ev{flex-wrap:wrap}.feed li.ev .tx{flex:1 1 200px}.feed .acts{margin-left:auto}
.cbtn[aria-current="true"] .av[style*="--c"]{background:var(--c);color:#fff}
.bootfail{position:fixed;left:16px;right:16px;top:16px;z-index:99;background:#fde4e1;color:#b42318;border:1px solid #b42318;border-radius:12px;padding:14px 16px;font:14px/1.4 system-ui;overflow-wrap:anywhere}
/* Przegląd wzorem v1 (28.10) */
.v1kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 14px}.v1k{margin:0;display:flex;flex-direction:column;gap:4px}
.v1k span{font-size:13px;color:var(--muted);font-weight:600}.v1k b{font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums}.v1k small{font-size:12.5px;color:var(--muted)}.v1k em{align-self:flex-start;font-style:normal}
.v1t .picks{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}.v1t .picks button{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-weight:600}
.v1t .picks button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:var(--accent)}
table.v1tab{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}table.v1tab th{font-size:12px;color:var(--muted);font-weight:600;text-align:right;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.v1tab td{padding:9px 10px;border-top:1px solid var(--line);text-align:right;white-space:nowrap}table.v1tab th:first-child,table.v1tab td:first-child{text-align:left}
table.v1tab .muted,.v1tab .muted{color:var(--muted)}table.v1tab .pill{font-size:11px;padding:0 6px}
.v1bars{display:flex;align-items:flex-end;gap:6px;height:150px;margin:6px 0 14px}.v1bars>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.v1bars i{display:block;width:70%;max-width:44px;background:var(--accent);border-radius:6px 6px 0 0;min-height:2px}.v1bars em{font-size:11px;font-style:normal;color:var(--muted)}.v1bars small{font-size:11px;color:var(--muted);margin-top:4px}
.v1where>div{display:grid;grid-template-columns:minmax(160px,1fr) 2fr auto;gap:10px;align-items:center;padding:6px 0;font-size:14px}.v1where i{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.v1where i b{display:block;height:100%}.v1where em{font-style:normal;font-weight:700}
@media(max-width:900px){.v1kpis{grid-template-columns:1fr 1fr}}
.v1frame{display:block;width:100%;height:calc(100vh - 150px);min-height:600px;border:0;border-radius:14px;background:var(--surface)}
.v1nav{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.tabsv1{display:flex;gap:4px;flex-wrap:wrap}.tabsv1 button{min-height:42px;padding:0 16px;border-radius:10px;border:0;background:none;font-weight:600;color:var(--muted)}
.tabsv1 button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--ink)}
.v1t td.good,.v1tab td.good{color:var(--ok);font-weight:600}.v1tab td.bad{color:var(--bad);font-weight:600}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}.toolbar input,.toolbar select{min-height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.toolbar input{min-width:180px}.toolbar button{min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-weight:600}.toolbar button:hover{background:var(--line)}
table.v1tab th[data-v1xs]{cursor:pointer}
