:root { --bg:#f1f2f4; --card:#fff; --line:#e3e5e8; --txt:#1a1c1f; --mut:#6b7177; --acc:#425BAE; --ok:#0c5132; --okbg:#d4f3dd; --bad:#c5280c; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--txt); font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
main { max-width:1180px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:20px; margin:0; display:flex; align-items:center; gap:8px; } h2 { font-size:15px; margin:0 0 12px; }
a { color:var(--acc); text-decoration:none; } a:hover { text-decoration:underline; }
.muted { color:var(--mut); } .small { font-size:12px; } .err { color:var(--bad); } .pad { padding:16px; margin:0; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.actions { display:flex; gap:8px; align-items:center; }
.back { font-size:13px; display:inline-block; margin-bottom:4px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:14px; }
.card.flush { padding:0; overflow:hidden; }
.head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; } .head h2 { margin:0; }
button, .btn { font:inherit; font-weight:600; border-radius:8px; padding:7px 12px; border:1px solid #c9cccf; background:#fff; color:var(--txt); cursor:pointer; display:inline-block; }
button:hover, .btn:hover { background:#f6f6f7; text-decoration:none; }
button.primary { background:var(--txt); color:#fff; border-color:var(--txt); } button.primary:hover { background:#333; }
button.danger { color:var(--bad); }
/* stała szerokość: napisy potwierdzeń („Potwierdź drugi raz”) nie przesuwają tabeli */
button[data-del] { width:12.5em; }
button:disabled { opacity:.45; cursor:default; }
button.is-busy { opacity:.6; pointer-events:none; }
button.icon { padding:2px 7px; font-size:12px; }
select.range, select, input[type=text], input[type=number], textarea { font:inherit; padding:7px 10px; border:1px solid #c9cccf; border-radius:8px; background:#fff; width:100%; }
select.range { width:auto; }
textarea { resize:vertical; }
.pill { font-size:12px; font-weight:600; padding:2px 9px; border-radius:99px; background:#e4e5e7; color:#303030; white-space:nowrap; }
.pill.on { background:var(--okbg); color:var(--ok); } .pill.ab { background:#e0e7ff; color:#3730a3; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.stat { border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.stat span { display:block; color:var(--mut); font-size:12px; } .stat b { font-size:17px; } .stat b.big { font-size:22px; color:var(--acc); }
.table { width:100%; border-collapse:collapse; }
.table th, .table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.table th { font-size:12px; color:var(--mut); font-weight:600; background:#fafafa; }
.table tr:last-child td { border-bottom:none; }
.num { text-align:right !important; font-variant-numeric:tabular-nums; } .right { text-align:right !important; } .nowrap { white-space:nowrap; }
.prio { white-space:nowrap; } .prio span { display:inline-block; width:18px; font-weight:600; }
.tabs { display:flex; gap:4px; padding:8px 12px 0; border-bottom:1px solid var(--line); }
.tabs a { padding:8px 12px; color:var(--mut); font-weight:600; border-bottom:2px solid transparent; }
.tabs a.sel { color:var(--txt); border-color:var(--txt); } .tabs a:hover { text-decoration:none; color:var(--txt); }
.switch { position:relative; display:inline-block; width:38px; height:22px; }
.switch input { opacity:0; width:0; height:0; }
.switch span { position:absolute; inset:0; background:#c9cccf; border-radius:99px; transition:.15s; cursor:pointer; }
.switch span::after { content:""; position:absolute; width:16px; height:16px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.15s; }
.switch input:checked + span { background:var(--acc); } .switch input:checked + span::after { transform:translateX(16px); }
.switch input:focus-visible + span { outline:2px solid var(--acc); outline-offset:2px; }
.fld { display:block; margin-bottom:12px; } .fld > span { display:block; font-weight:600; font-size:12px; margin-bottom:4px; }
.fld.check, label.check { display:flex; align-items:center; gap:8px; font-weight:500; }
.fld.disabled { color:var(--mut); }
.row-inline { display:flex; gap:14px; align-items:center; flex-wrap:wrap; } .row-inline input[type=number] { width:80px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
input[type=color] { width:100%; height:36px; padding:2px; border:1px solid #c9cccf; border-radius:8px; background:#fff; }
input[type=range] { width:100%; }
.plist { list-style:none; margin:0 0 10px; padding:0; border:1px solid var(--line); border-radius:8px; }
.plist li { display:flex; justify-content:space-between; align-items:center; padding:7px 10px; border-bottom:1px solid var(--line); }
.plist li:last-child { border-bottom:none; }
.offer-prod { padding:8px 10px; border:1px dashed #c9cccf; border-radius:8px; margin-bottom:8px; }
.seg { display:inline-flex; border:1px solid #c9cccf; border-radius:8px; overflow:hidden; }
.seg button { border:none; border-radius:0; padding:6px 12px; } .seg button.sel { background:var(--txt); color:#fff; }
.editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:14px; align-items:start; }
.sticky { position:sticky; top:12px; }
.chart { width:100%; height:140px; display:block; } .chart rect { fill:var(--acc); } .chart rect:hover { fill:#2f418a; }
.chart-axis { display:flex; justify-content:space-between; color:var(--mut); font-size:11px; margin-top:4px; }

/* podgląd pop-upu (odwzorowanie sekcji os-post-add-upsell w motywie) */
.pv-stage { background:rgba(30,35,45,.55); border-radius:10px; padding:22px 14px; display:flex; justify-content:center; }
.pv-stage.mobile .pv { max-width:360px; }
.pv { width:100%; max-width:600px; background:#fff; border-radius:var(--pau-radius,16px); overflow:hidden; box-shadow:0 18px 50px rgba(0,0,0,.35); font-family:inherit; }
.pv-head { position:relative; text-align:center; padding:12px 36px 10px; border-bottom:1px solid #eef1f5; }
.pv-h { font-weight:800; font-size:19px; color:#0f172a; }
.pv-stage.mobile .pv-h { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-timer { color:#dc2626; font-weight:700; font-size:14px; margin-top:3px; }
.pv-x { position:absolute; right:12px; top:10px; color:#64748b; }
.pv-body { display:flex; gap:12px; padding:12px; }
.pv-stage.mobile .pv-body { flex-direction:column; }
.pv-media { flex:0 0 44%; } .pv-stage.mobile .pv-media { flex:none; }
.pv-media > img, .pv-noimg { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:calc(var(--pau-radius,16px) - 4px); background:#f1f5f9; display:flex; align-items:center; justify-content:center; color:var(--mut); }
.pv-stage.mobile .pv-media > img { aspect-ratio:2.2/1; object-fit:contain; background:#fff; }
.pv-thumbs { display:flex; gap:5px; margin-top:6px; } .pv-thumbs img { width:34px; height:34px; object-fit:cover; border-radius:6px; border:2px solid #e2e8f0; } .pv-thumbs img.sel { border-color:var(--pau-accent); }
.pv-info { flex:1; display:flex; flex-direction:column; gap:7px; min-width:0; }
.pv-title { font-weight:700; font-size:17px; color:#0f172a; } .pv-desc { color:#64748b; font-size:12.5px; }
.pv-stage.mobile .pv-desc { display:none; }
.pv-price { display:flex; align-items:center; gap:7px; } .pv-price b { font-size:24px; font-weight:800; } .pv-price s { color:#94a3b8; }
.pv-badge { background:#16a34a; color:#fff; font-weight:700; font-size:12px; padding:2px 8px; border-radius:99px; }
.pv-sw { display:flex; gap:6px; flex-wrap:wrap; } .pv-sw span { border:1.5px solid #d8dee8; border-radius:99px; padding:5px 12px; font-size:13px; }
.pv-sw span.sel { background:var(--pau-accent); border-color:var(--pau-accent); color:var(--pau-accent-text); }
.pv-select { width:auto; }
.pv-qty { font-size:12px; font-weight:600; color:#334155; } .pv-qty span { border:1.5px solid #d8dee8; border-radius:99px; padding:3px 10px; margin-left:6px; font-weight:500; }
.pv-actions { padding:0 12px 12px; display:flex; flex-direction:column; gap:7px; }
.pv-add { background:var(--pau-accent); color:var(--pau-accent-text); font-weight:800; font-size:18px; text-align:center; padding:14px; border-radius:11px; }
.pv-decline { text-align:center; color:#64748b; font-weight:600; font-size:13px; padding:9px; border:1.5px solid #e2e8f0; border-radius:11px; }

@media (max-width: 900px) { .editor { grid-template-columns:1fr; } .sticky { position:static; } .stats { grid-template-columns:1fr 1fr; } }
@media (max-width: 560px) { .grid2 { grid-template-columns:1fr; } .stats { grid-template-columns:1fr; } }
.up { color:var(--ok); font-size:12px; white-space:nowrap; } .down { color:var(--bad); font-size:12px; white-space:nowrap; }

/* Testy A/B */
.sub { margin:4px 0 0; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.toolbar { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.toolbar.card { padding:12px 16px; }
.ctl { display:flex; flex-direction:column; gap:3px; } .ctl > span { font-size:12px; font-weight:600; color:var(--mut); }
.ctl select, .ctl input[type=date] { width:auto; min-width:150px; }
.seg .cnt { font-weight:500; opacity:.7; margin-left:2px; }
.seg button { padding:8px 14px; } .seg button + button { border-left:1px solid #c9cccf; }
.stats-4 { grid-template-columns:repeat(4,1fr); margin-bottom:14px; }
.stat small { display:block; font-size:11px; margin-top:2px; }
.skel { display:block; height:22px; width:40%; border-radius:6px; background:linear-gradient(90deg,#eee,#f6f6f6,#eee); background-size:200% 100%; animation:sk 1.2s infinite; }
@keyframes sk { to { background-position:-200% 0; } }
.tcard { cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.tcard:hover { border-color:#c9cccf; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.tcard-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; }
.tcard-name { font-size:15px; font-weight:650; margin:0; }
.tcard-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.pill.area { background:#eef1fb; color:#2f418a; }
.tcard-grid { display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:10px; }
.tg { border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.tg.lead { border-color:#b9c4ec; background:#f7f8fd; }
.tg-h { display:flex; align-items:center; gap:6px; font-weight:600; font-size:13px; } .tg-h .muted { margin-left:auto; font-weight:500; font-size:12px; }
.tg-h i, .dot { display:inline-block; width:10px; height:10px; border-radius:3px; flex:none; } .dot { margin-right:6px; vertical-align:-1px; }
.tg-v { font-size:22px; font-weight:700; margin:4px 0 2px; font-variant-numeric:tabular-nums; }
.tg-s { font-size:12px; }
.tv { display:flex; flex-direction:column; gap:6px; justify-content:center; padding:4px 2px; }
.tv-label { font-size:12px; }
.verdict { font-weight:600; font-size:13.5px; line-height:1.35; }
.v-sure { color:var(--ok); } .v-likely { color:#2f418a; } .v-tie { color:#5c5f62; } .v-early { color:#8a6116; }
.sure { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--mut); }
.sure-track { position:relative; flex:1; height:8px; background:#eceef1; border-radius:99px; min-width:80px; }
.sure-track i { position:absolute; left:0; top:0; bottom:0; border-radius:99px; background:#b8bec6; }
.sure-track i.v-sure { background:#29845a; } .sure-track i.v-likely { background:#5a6fc4; } .sure-track i.v-early { background:#d9a53a; }
.sure-track b { position:absolute; top:-3px; bottom:-3px; width:1.5px; background:#8c9196; }
.empty { text-align:center; padding:32px 16px; } .empty p { margin:0 0 6px; }
.what { margin:-6px 0 14px; max-width:760px; }
.banner { display:flex; align-items:center; gap:20px; justify-content:space-between; border-left:4px solid #d9a53a; }
.banner.v-sure { border-left-color:#29845a; } .banner.v-likely { border-left-color:#5a6fc4; } .banner.v-tie { border-left-color:#8c9196; }
.banner b { font-size:15px; color:var(--txt); } .banner .sure { width:260px; flex:none; }
.detail { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:14px; align-items:start; }
.tscroll { overflow-x:auto; }
.table tr.lead td { background:#f7f8fd; }
.table.daily th.grp { text-align:center; border-left:1px solid var(--line); }
details summary { cursor:pointer; list-style:none; } details summary h2 { display:inline; margin:0; }
details summary::before { content:none; }
.chev { width:18px; height:18px; flex:none; margin-right:6px; color:var(--txt); transition:transform .15s; }
details[open] .chev { transform:rotate(90deg); } details[open] summary { margin-bottom:12px; }
.lc { position:relative; padding-left:72px; }
.lc-y { position:absolute; left:0; top:0; bottom:0; font-size:11px; color:var(--mut); width:66px; }
.lc-y span { position:absolute; right:0; transform:translateY(-50%); white-space:nowrap; } .lc-y span.ref { color:#5c5f62; font-size:10px; white-space:normal; text-align:right; line-height:1.1; width:66px; }
.lc-svg { width:100%; height:200px; display:block; } .lc-grid { stroke:#eceef1; stroke-width:1; vector-effect:non-scaling-stroke; }
.lc-hit { fill:transparent; } .lc-hit:hover { fill:rgba(66,91,174,.07); }
.lc-plot { position:relative; }
.lc-ref { stroke:#8c9196; stroke-width:1.5; stroke-dasharray:5 4; vector-effect:non-scaling-stroke; }
.lc-x { position:relative; height:16px; margin:4px 0 0 72px; font-size:11px; color:var(--mut); }
.lc-x span { position:absolute; transform:translateX(-50%); white-space:nowrap; } .lc-x span:first-child { transform:none; } .lc-x span:last-child { transform:translateX(-100%); }
.lc-tip { position:absolute; top:6px; transform:translateX(12px); background:#1a1c1f; color:#fff; border-radius:8px; padding:8px 10px; font-size:12px; pointer-events:none; display:flex; flex-direction:column; gap:3px; white-space:nowrap; z-index:2; box-shadow:0 4px 14px rgba(0,0,0,.2); }
.lc-tip.flip { transform:translateX(calc(-100% - 12px)); } .lc-tip i { display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:6px; }
.lc-legend i.dash { background:none; border-top:2px dashed #8c9196; height:0; }
.lc-legend { display:flex; gap:16px; margin-top:8px; font-size:12px; } .lc-legend i { display:inline-block; width:12px; height:3px; border-radius:2px; margin-right:6px; vertical-align:3px; }
.settings .opts { border:none; padding:0; margin:0 0 12px; display:flex; flex-direction:column; gap:8px; }
.opt { display:flex; gap:10px; align-items:flex-start; border:1px solid var(--line); border-radius:10px; padding:10px 12px; cursor:pointer; }
.opt:has(input:checked) { border-color:var(--acc); background:#f7f8fd; }
.opt input { margin-top:3px; accent-color:var(--acc); } .opt span { display:flex; flex-direction:column; } .opt small { font-size:12px; }
.opt.slim { padding:8px 12px; margin-bottom:6px; }
.split-l { display:flex; flex-direction:column; font-size:12.5px; margin:6px 0 4px; gap:3px; }
input[type=range] { accent-color:var(--acc); }
.save-row { display:flex; gap:8px; margin-top:4px; }
.how ul { margin:0; padding-left:18px; color:#303030; } .how li { margin-bottom:6px; font-size:13px; }
@media (max-width: 1100px) { .detail { grid-template-columns:minmax(0,1fr); } }
@media (max-width: 1000px) { .tcard-grid { grid-template-columns:1fr 1fr; } .tv { grid-column:1 / -1; } }
@media (max-width: 700px) { .stats-4 { grid-template-columns:1fr 1fr; } .banner { flex-direction:column; align-items:stretch; } .banner .sure { width:auto; } .tcard-head { flex-direction:column; } }
@media (max-width: 480px) { .tcard-grid { grid-template-columns:1fr; } }
/* tylko lokalny podgląd (dev/serve.mjs): menu zamiast nawigacji admina Shopify */
.devnav { display:flex; gap:4px; padding:10px 16px; background:#1a1c1f; } .devnav a { color:#e3e5e8; padding:6px 10px; border-radius:6px; font-weight:600; }
[hidden] { display:none !important; }
.tscroll .table th { white-space:nowrap; } .tscroll .table td:first-child { min-width:150px; }

.pill.warn { background:#fff1d6; color:#5e4200; }
.sure-track i.v-grey { background:#b8bec6; } .sure-track i.v-tie { background:#8c9196; }
.warnbox { background:#fff5ea; border:1px solid #f5d0a1; color:#5e3200; border-radius:8px; padding:8px 10px; font-size:12.5px; margin:4px 0 10px; }
.opt.off { cursor:default; opacity:.75; } .opt.off input { cursor:default; }
fieldset.fld { border:none; padding:0; margin:0 0 12px; } fieldset.fld legend { font-weight:600; font-size:12px; margin-bottom:6px; padding:0; }
.sum-note { grid-column:1 / -1; margin:-4px 0 0; }
.tg-l { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-side .card:first-child { scroll-margin-top:12px; }
.banner-main .small { margin-top:3px; }

.table td.num { white-space:nowrap; }
.tg-v small { font-size:12px; font-weight:500; color:var(--mut); }
.sure-track b em { position:absolute; top:13px; left:50%; transform:translateX(-50%); font-style:normal; font-size:9px; color:#8c9196; }
.sure { padding-bottom:8px; }
.fld input[type=date] { font:inherit; padding:7px 10px; border:1px solid #c9cccf; border-radius:8px; background:#fff; width:100%; }
.fld input[aria-invalid=true] { border-color:var(--bad); }
.fld .hint { display:block; margin-top:4px; font-size:12px; }
.rcards { display:none; }
.rcard { border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px; } .rcard.lead { border-color:#b9c4ec; background:#f7f8fd; }
.rcard-h { font-weight:600; margin-bottom:6px; }
.rcard dl { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; } .rcard dl div.main { grid-column:1 / -1; }
.rcard dt { font-size:11px; color:var(--mut); } .rcard dd { margin:0; font-variant-numeric:tabular-nums; } .rcard div.main dd { font-size:18px; }
@media (max-width: 560px) { .rtable { display:none; } .rcards { display:block; } }
.seg.view { margin-left:auto; }
.table.compact td { vertical-align:top; } .table.compact tr[data-t] { cursor:pointer; } .table.compact tr[data-t]:hover td { background:#fafbfc; }
.table.compact .tname { font-weight:600; color:var(--txt); } .table.compact .sure { min-width:170px; }
.table.compact .verdict { font-size:12px; margin-top:2px; }
.table.compact .sure-track em { display:none; } .table.compact .sure { min-width:150px; padding-bottom:0; }
.ctl input[type=date] { font:inherit; padding:7px 10px; border:1px solid #c9cccf; border-radius:8px; background:#fff; }
details summary { display:flex; align-items:center; } details summary::-webkit-details-marker { display:none; }
.runs .plist li { gap:8px; font-size:13px; }
@media (max-width: 560px) { .stats-4 .stat { padding:8px 10px; } .stats-4 .stat small { display:none; } .stats-4 .stat b { font-size:16px; } }

/* przewijana tabela: cień przy krawędzi, gdy jest więcej kolumn */
.tscroll { background:linear-gradient(to right, #fff 30%, rgba(255,255,255,0)), linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) 100% 0, radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.14), transparent), radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.14), transparent) 100% 0;
  background-repeat:no-repeat; background-size:40px 100%, 40px 100%, 12px 100%, 12px 100%; background-attachment:local, local, scroll, scroll; }
.tscroll .table th { background-color:rgba(250,250,250,.9); }
.table th, .table td { padding:10px 10px; }
@media (max-width: 560px) {
  .table.compact thead { display:none; } .table.compact, .table.compact tbody, .table.compact tr, .table.compact td { display:block; width:100%; }
  .table.compact tr { border-bottom:1px solid var(--line); padding:6px 0; } .table.compact td { border:none; padding:4px 12px; text-align:left !important; }
}
.btn-link { border:none; background:none; padding:0; margin-top:6px; color:var(--acc); font-weight:600; cursor:pointer; } .btn-link:hover { background:none; text-decoration:underline; }
.runs .plist button { white-space:nowrap; }
h1:focus { outline:none; }
.m-lbl { display:none; }
.table.daily td:first-child { min-width:0; }
.lc-legend { flex-wrap:wrap; } .lc-legend span { white-space:nowrap; }
/* wąski ekran (Shopify ≤1100 px): ustawienia zaraz po wynikach, potem wykres i dzień po dniu, dalej notatki, rundy, koszty */
@media (max-width: 1100px) {
  .detail { display:flex; flex-direction:column; align-items:stretch; gap:0; } .detail-main, .detail-side { display:contents; }
  .detail .o-res { order:1; } .detail-side > * { order:5; } .detail-side > .settings, .detail-side > [data-settings]:not(.runs) { order:2; } .detail .o-chart { order:3; } .detail .o-daily { order:4; } .detail .how { order:6; }
}
@media (max-width: 560px) { .m-lbl { display:inline; color:var(--mut); } }
.lc-cur { position:absolute; top:0; bottom:0; width:1px; background:#8c9196; pointer-events:none; }

@media (min-width: 1101px) { .goto-set { display:none; } }
.banner-main .warnbox { margin:8px 0 0; }
.tg.lead.soft { background:#fff; border-color:#d5dcf3; }
.banner .sure, .table.compact .sure { min-width:170px; }
.table.daily thead th[rowspan], .table.daily tbody td:first-child { position:sticky; left:0; background:#fff; z-index:1; } .table.daily thead th[rowspan] { background:#fafafa; z-index:2; }
.table.compact .sure > span { white-space:nowrap; } .table.compact .sure { min-width:200px; }
.table.daily thead th[rowspan], .table.daily tbody td:first-child { box-shadow:2px 0 0 #d2d5d9, 6px 0 6px -4px rgba(0,0,0,.12); }
.toolbar .seg.view { flex:none; }
.table.daily { border-collapse:separate; border-spacing:0; }
.fail { background:#fff4f4; border:1px solid #f1c2bc; border-radius:10px; padding:10px 12px; margin-bottom:14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.fail button { margin-left:auto; }
.settings[inert] { opacity:.6; cursor:progress; }

.banner.v-fail { border-left-color:var(--bad); display:block; } .banner.v-fail .fail { margin:0; border:none; background:none; padding:0; }

.banner.v-load { border-left-color:#c9cccf; }
.toolbar .pc { display:contents; }
/* RPV i różnice względem grupy kontrolnej, wykres z wyborem miary, „Nowy test” */
.lift { font-weight:600; margin-left:4px; font-size:12px; color:var(--mut); } .lift.up { color:var(--ok); } .lift.down { color:var(--bad); }
.tg-v .lift { font-size:13px; }
.chart-ctl { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; margin:0 0 12px; }
.chart-ctl .seg button { padding:6px 12px; }
.newtest h2 { margin-top:0; }
.nt li { gap:12px; flex-wrap:wrap; padding:10px 12px; }
.nt-acts { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.edit-v { margin:10px 0 0; }
.page-head .actions { display:flex; gap:8px; align-items:center; }
@media (max-width:600px) { .nt-acts { width:100%; } .nt-acts .btn, .nt-acts button { flex:1 1 auto; text-align:center; } }
/* pasek szansy w nagłówku testu: opis nad paskiem, znaczniki 80/95 pod nim (bez nachodzenia przy wąskim pasku) */
.banner .sure { flex-direction:column-reverse; align-items:stretch; gap:6px; }
.banner .sure-track { flex:none; width:100%; }
.res-note { color:var(--txt); }
.rtable .table th { white-space:normal; min-width:72px; vertical-align:bottom; }
.rtable .table th, .rtable .table td { padding:9px 10px; }
.lc-legend i.band { width:14px; height:8px; border-radius:2px; background:#425BAE; opacity:.18; }
.rtable .lift { display:block; margin:2px 0 0; }
.rtable .table td:first-child { min-width:120px; }
.lift.weak { color:var(--mut); font-weight:500; }
.table.compact .sure span { white-space:normal; }
@media (max-width:700px) { .table.compact td .m-lbl { white-space:normal; } .table.compact td { min-width:0; white-space:normal; } }
.banner .pl { font-size:12px; }
.d-lbl { display:block; font-size:11px; } @media (max-width:700px) { .d-lbl { display:none; } }
.warn-t { color:#8a6116; font-weight:600; margin-top:2px; }
.grid3 { display:grid; grid-template-columns:1fr; gap:8px; }
[data-note] { width:100%; font:inherit; padding:8px; border:1px solid #c9cccf; border-radius:8px; resize:vertical; box-sizing:border-box; }
/* „W skrócie” w nagłówku testu: wniosek i proste fakty, szczegóły zwinięte */
.banner .headline { display:block; font-size:16px; line-height:1.35; }
.banner ul.plain { margin:8px 0 4px; padding-left:18px; font-size:13px; line-height:1.45; }
.banner ul.plain li { margin:2px 0; }
.banner details.more { margin-top:6px; }
.banner details.more > summary { cursor:pointer; font-size:12px; color:var(--acc); font-weight:600; }
.banner details.more > .small, .banner details.more > div { margin-top:4px; color:var(--mut); }
.th-hint { display:block; font-weight:400; font-size:11px; color:var(--mut); margin-top:2px; line-height:1.25; }
.g-n { display:block; font-size:11px; color:var(--mut); font-weight:400; margin-top:1px; }
[data-allcols] { margin:6px 0 2px; }
.sure-key { display:block; font-size:10px; color:var(--mut); margin-top:12px; }
.table.compact .sure-key { display:none; }
[data-costs-card] summary, .how summary { cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:8px; }
[data-costs-card] summary h2, .how summary h2 { display:inline; margin:0; }
[data-costs-card] .grid3 { grid-template-columns:repeat(3, minmax(0, 1fr)); margin-top:8px; }
@media (max-width:700px) { [data-costs-card] .grid3 { grid-template-columns:1fr; } }
.tcard .sure-track em, .tcard .sure-key { display:none; }
.tcard .sure { padding-bottom:0; }
.card-warn { margin-top:4px; color:#8a6116; }
@media (max-width:560px) { .table.daily .dopt { display:none; } }
/* pasek szansy w nagłówku testu: opis, pasek, legenda (kolejność wizualna) */
.banner .sure { flex-direction:column; }
.banner .sure > span { order:0; } .banner .sure-track { order:1; } .banner .sure-key { order:2; margin-top:14px; }
/* runda 37: tabela listy mieści się w kontenerze (nagłówki się zawijają), notatki pod wykresem, telefon: dzień po dniu bez dopisków */
.tscroll .table.compact th { white-space:normal; } .table.compact .sure { min-width:160px; } .table.compact td.num { white-space:normal; }
.how summary { align-items:center; }
@media (max-width: 1100px) { .detail-main > [data-note-card] { order:5; } }
@media (max-width:560px) { .table.daily .dsub { display:none; } }
/* dzień po dniu: na telefonie osobny nagłówek (jedna kolumna na grupę), bo colspan ukrytych kolumn rozjeżdża tabelę */
.table.daily .dh-m { display:none; }
@media (max-width:560px) { .table.daily .dh-m { display:table-row; } .table.daily .dh-d { display:none; } .table.daily .dh-m .grp { white-space:normal; } }
/* runda 39: w tabeli listy nagłówek kolumny mówi „Szansa na wygraną”, w komórce tylko wartość (na telefonie nagłówków nie ma) */
@media (min-width:561px) { .table.compact .sure-lbl { display:none; } }
[data-costs-card] summary { align-items:center; }
/* runda 40: kwoty w podsumowaniu się nie łamią; na telefonie zostaje „w tym N testów…” */
.plain b { white-space:nowrap; }
@media (max-width:560px) { .stats-4 .stat small.keep { display:block; } }
/* runda 41: „Uwaga” w rozmiarze punktu; podpowiedź „kliknij” znika po otwarciu */
.plain .uw { font-weight:600; }
details[open] .click-hint { display:none; }
@media (max-width:560px) { .d-sep { display:none; } }
/* runda 42: nagłówek „Koszty do zysku” nie łamie się na telefonie */
[data-costs-card] summary { flex-wrap:wrap; } [data-costs-card] summary h2 { white-space:nowrap; }
/* runda 43: „(wstępnie, za wcześnie)” tylko w tabeli listy na komputerze (karty i telefon mają „Wstępna szansa…”) */
.sure-pre { display:none; } @media (min-width:561px) { .table.compact .sure-pre { display:inline; } }
/* runda 45: paski szansy w tabeli listy równej szerokości (znaczniki 80/95 w jednej linii); selecty na telefonie równe */
.table.compact .sure-track { flex:none; width:120px; min-width:120px; }
@media (max-width:560px) { .toolbar .ctl, .toolbar .ctl select { width:100%; } }
/* runda 46: pasek szansy na kartach stałej szerokości (znaczniki 80/95 w tym samym miejscu) */
.tv .sure-track { flex:0 0 160px; width:160px; min-width:160px; } .tv .sure { flex-wrap:wrap; }
/* runda 47: na telefonie kafelki zachowują krótkie wyjaśnienie */
@media (max-width:560px) { .stats-4 .stat small { display:block; font-size:10.5px; line-height:1.3; } }
.table.compact .sure-who { display:none; } /* w tabeli jest kolumna „Lider” */
/* runda 49: przycisk zakończenia z oddechem */
.banner [data-end-win], .tv [data-card-end] { margin-top:10px; }
/* runda 50: prowadząca grupa wyróżniona neutralnie (kolory zostają dla ról); potwierdzenie w przycisku na całą szerokość */
.tg.lead, .rcard.lead { border-color:#c9cccf; background:#f6f6f7; } .tg.lead.soft { background:#fff; border-color:#dcdfe3; } .table tr.lead td { background:#f6f6f7; }
.save-row button[data-step] { flex-basis:100%; white-space:normal; text-align:left; }
.save-row { flex-wrap:wrap; } /* runda 51: potwierdzenie w przycisku dostaje własny wiersz */
/* runda 52: w tabeli listy przy szansie newslettera widać, że to szansa w sprzedaży (RPV) */
.sure-nlt { display:none; } @media (min-width:561px) { .table.compact .sure-nlt { display:inline; } }
/* runda 53: w tabeli listy szansa jak na kartach: „Wersja” 86% · wstępnie (dopisek w kolumnie „Lider”) */
.table.compact .sure-who { display:inline; }
@media (min-width:561px) { .table.compact .sure-note { display:none; } }
/* runda 54: „prawdopodobny zwycięzca” w kolorze bez roli (niebieski to wersja testowana) */
.v-likely { color:#1f6f63; } .sure-track i.v-likely { background:#3a9a8a; } .banner.v-likely { border-left-color:#3a9a8a; }
/* runda 58: błędne pole kosztów na czerwono; karty grup bez pustego miejsca pod spodem */
[data-pc][aria-invalid] { border-color:#c5280c; box-shadow:0 0 0 1px #c5280c; }
.tcard-grid .tg { align-self:start; }
/* runda 59: podpis szansy zawsze pod paskiem na kartach; przyciski-linki „primary” jak przyciski; rundy z przyciskiem pod tekstem */
.tv .sure { flex-direction:column; align-items:flex-start; gap:4px; } .tv .sure-track { width:160px; }
a.btn.primary { background:var(--txt); color:#fff; border-color:var(--txt); text-align:center; } a.btn.primary:hover { background:#333; }
.runs .plist li { flex-direction:column; align-items:flex-start; }
[data-pc][aria-invalid="false"] { border-color:var(--line); box-shadow:none; }
.tv .sure .sure-track { flex:none; height:8px; width:160px; min-width:160px; } /* w kolumnie flex-basis działał na wysokość */
/* runda 61: tytuły rozwijanych kart w jednej linii z „Dzień po dniu”; plakietki w tabeli w jednym rzędzie */
.how summary, [data-costs-card] summary { gap:0; } [data-costs-card] summary .muted { margin-left:8px; }
.table.compact .tcard-meta { flex-wrap:nowrap; white-space:nowrap; }

/* karta testu jak w Kachingu: tabela i status pod nią */
.ktable td:first-child { white-space:nowrap; } .ktable td.num b { font-size:15px; }
.kfoot { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:8px; } .kfoot .verdict { font-size:14px; }
.sig { font-size:13px; } .sig.sig-ok b { color:var(--ok); }
.hist-sum { display:flex; align-items:center; padding:14px 16px; } .hist-sum h2 { font-size:15px; } .hist details[open] summary { margin-bottom:0; border-bottom:1px solid var(--line); }
.pv-list { list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px; }
.pv-list li { display:grid; gap:3px; }
.pv-list .btn { justify-self:start; max-width:100%; white-space:normal; text-align:left; }
