
/* ============================================================
   WADS Sprint B v13.0 - MOJ DZIEN
   2026-05-22
   Final: ink→purple gradient hero, Syne wszedzie, slider .wbsld,
   modal WADS, no Readiness in #day, hide legacy duplicates
   ============================================================ */

/* === HIDE wszystkich wczesniejszych instancji === */
#wb30-root { display: none !important; }
#wb50-root { display: none !important; }

/* === HIDE wewnetrznych duplikatow V210 === */
#wads-day-v210-root .v210-edu-bg,
#wads-day-v210-root .v210-now,
#wads-day-v210-root .v210-section-title,
#wads-day-v210-root .v210-timeline,
#wads-day-v210-root .v210-stats,
#wads-day-v210-root .v210-hero-ring,
#wads-day-v210-root > .v210-seria,
#wads-day-v210-root > .v210-habits-mini,
#wads-day-v210-root > .s31-mini-widget {
  display: none !important;
}

/* === HIDE V211 sync banner === */
.v211-sync-banner { display: none !important; }

/* === HIDE V210 hero w calosci (przeniesiona zawartosc do wb130-hero) === */
#wads-day-v210-root { display: none !important; }

/* === v6.0 #6 + v12.0 A: HIDE LEGACY POranny + Wieczorna + Treningi (duplikaty z naszego Plan dnia) === */
#p-day #day-morning,
#p-day #day-evening,
#p-day [data-day-section="morning"],
#p-day [data-day-section="evening"],
#p-day #day-diary-good,
#p-day #day-diary-imp,
#p-day #day-diary-note,
#p-day #day-sessions-list {
  display: none !important;
}
/* Hide ich parent wrappers (znalezione przez znajomosc oryginalu) */
.wb30-hidden-legacy,
.sprintA-v20-hide,
.wb130-hidden-legacy {
  display: none !important;
}

/* === DESIGN TOKENS WADS 2026 (zachowane spojnie z app.html) === */
:root {
  --wb130-ink: #1a1a1a;
  --wb130-ink2: #2a2a2a;
  --wb130-ink3: #404040;
  --wb130-ink5: #8a8a8a;
  --wb130-ink6: #a0a0a0;
  --wb130-cream: #f5f0e8;
  --wb130-cream2: #eae5da;
  --wb130-cream3: #ddd8cc;
  --wb130-cream4: #c8c2b3;
  --wb130-paper: #ffffff;
  --wb130-purple: #6450D2;
  --wb130-purple-deep: #4c1d95;
  --wb130-purple-mid: #2d1b69;
  --wb130-blue2: #1a40a0;
  --wb130-green2: #166534;
  --wb130-red2: #dc2626;
  --wb130-amber: #b45309;
  --wb130-gold: #d4a017;
  --wb130-silver: #94a3b8;
  --wb130-bronze: #b45309;

  /* Semantyka wartosci 1-10 (z app.html) */
  --wb130-v1-2: #E24B4A;
  --wb130-v3-4: #EF9F27;
  --wb130-v5-6: #fbbf24;
  --wb130-v7-8: #1D9E75;
  --wb130-v9-10: #0F6E56;
}

/* ═════════════════════════════════════════════════════════════════
   Sprint 2.4 (2026-05-26) — wb130 PARTIAL consolidation (semantic only)
   wb130-paper/ink/cream* mają DUAL ROLE (text+bg) — nie da się flipnąć
   tokenowo. Tylko semantic colors są jednoznaczne → konsolidujemy je.
   Surfaces (tle/text) obsługujemy COMPONENT-LEVEL niżej.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"]{
  /* Semantic colors → vibrant Tailwind 400-500 (pure consolidation) */
  --wb130-purple:var(--purple);
  --wb130-purple-deep:#7c3aed;
  --wb130-blue2:var(--blue);
  --wb130-green2:var(--green);
  --wb130-red2:var(--red);
  --wb130-amber:var(--amber);
  --wb130-gold:var(--amber-bright);
  --wb130-silver:var(--d-tx-m);
  --wb130-bronze:var(--amber);
  /* Level scale v1-10 (red→amber→green progression, vibrant) */
  --wb130-v1-2:var(--red);
  --wb130-v3-4:var(--amber);
  --wb130-v5-6:var(--amber-bright);
  --wb130-v7-8:var(--green);
  --wb130-v9-10:#10b981;
  /* NOTE: --wb130-purple-mid KEPT light (#2d1b69) — used jako gradient stop */
}
/* Component-level dark overrides dla wb130 surfaces (paper/ink/cream as BG) */
[data-theme="dark"] #p-day{background:var(--d-bg-app) !important;color:var(--d-tx) !important}
[data-theme="dark"] #p-day[style*="linear-gradient"]{background:var(--d-bg-app) !important}
[data-theme="dark"] .wb130-tile,
[data-theme="dark"] .wb130-card,
[data-theme="dark"] .wb130-section{
  background:var(--d-bg-tile) !important;
  border-color:var(--d-bd) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .wb130-hero{
  /* Hero gradient ZACHOWANE (dark→purple już pasuje do dark mode) */
  color:#ffffff !important;
}
[data-theme="dark"] .wb130-hero-name,
[data-theme="dark"] .wb130-hero-greeting,
[data-theme="dark"] .wb130-hero .wb130-kpi-value{
  color:#ffffff !important;
}

/* [DZIŚ#2 Etap1 2026-05-28] DARK THEME — Plan dnia + punkty + formularz refleksji.
   Te elementy wb130 nie miały dark override → renderowały się białe/kremowe (light island
   w dark appce). Mapujemy na tokeny dark, zachowując strukturę/logikę (tylko kolory). */
[data-theme="dark"] #wb130-root{background:transparent !important;color:var(--d-tx) !important}
/* [DZIŚ#2 Etap2 2026-05-28] LIGA = relikt (3 niespójne definicje, dubluje Poziom, NIE w adminie).
   Ukrywamy raw kafelek Ligi — _swapLiga() i tak podmienia .wb130-kpi-liga na Poziom (replaceChild,
   display:none jest queryable więc swap działa). Eliminuje „flash Ligi" przed swapem.
   Poziom (Adept→Legenda) jest jedyną progresją. */
[data-theme="dark"] .wb130-kpi-liga,
[data-theme="dark"] .v210-league{display:none !important}
[data-theme="dark"] .wb130-plan{
  background:var(--d-bg-tile) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx) !important;
}
[data-theme="dark"] .wb130-plan-title,
[data-theme="dark"] .wb130-plan-head,
[data-theme="dark"] .wb130-point-title,
[data-theme="dark"] .wb130-point-time{color:var(--d-tx) !important}
[data-theme="dark"] .wb130-plan-sub,
[data-theme="dark"] .wb130-point-sub,
[data-theme="dark"] .wb130-point-desc{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-point,
[data-theme="dark"] .wb130-point.is-now,
[data-theme="dark"] .wb130-point.is-expanded{
  background:var(--d-bg-tile2) !important;border-color:var(--d-bd) !important;color:var(--d-tx) !important;
}
[data-theme="dark"] .wb130-point.is-now{border-color:rgba(252,76,2,.45) !important}
[data-theme="dark"] .wb130-point.is-done{border-color:rgba(34,197,94,.32) !important}
[data-theme="dark"] .wb130-point-body-inner{background:transparent !important;color:var(--d-tx) !important}
[data-theme="dark"] .wb130-sleep-row,
[data-theme="dark"] .wb130-form-row,
[data-theme="dark"] .wb130-point-body{background:var(--d-bg-elev) !important;border-color:var(--d-bd) !important;color:var(--d-tx) !important}
[data-theme="dark"] .wb130-form-input,
[data-theme="dark"] .wb130-form-textarea,
[data-theme="dark"] .wb130-sleep-input,
[data-theme="dark"] .wb130-point input,
[data-theme="dark"] .wb130-point textarea{
  background:var(--d-bg-tile2) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx) !important;
}
[data-theme="dark"] .wb130-form-input::placeholder,
[data-theme="dark"] .wb130-form-textarea::placeholder{color:var(--d-tx-d) !important}
[data-theme="dark"] .wb130-form-label,
[data-theme="dark"] .wb130-sleep-label{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-edit-btn{
  background:var(--d-bg-elev) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx-m) !important;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ [data-theme="dark"] .wb130-edit-btn:hover{background:var(--d-bg-tile) !important;color:var(--d-tx) !important} }
[data-theme="dark"] .wb130-xp-pill{background:rgba(252,76,2,.18) !important;color:#ff8a4c !important}
[data-theme="dark"] .wb130-xp-pill.is-earned,
[data-theme="dark"] .wb130-xp-pill.earned{background:rgba(34,197,94,.18) !important;color:#86efac !important}
/* pain buttons + save in reflection */
[data-theme="dark"] .wb130-pain-btn,
[data-theme="dark"] .wb130-form-btn{background:var(--d-bg-elev) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx) !important}

/* [DZIŚ#2 R2 2026-05-28] DARK — formularze treningu/check-in + nowoczesny suwak RPE.
   Naprawia białe/kremowe wyspy (audyt). RPE: ukryty 10-button row, <input range> = PRIMARY
   (saveTraining i tak czyta slider.value → zapis bez zmian). Kolory/opisy zachowane w suwaku. */
/* — Trening: meta box TYP/MIEJSCE/CZAS — */
[data-theme="dark"] .wb130-training-meta{background:var(--d-bg-elev) !important;border:1px solid var(--d-bd) !important}
[data-theme="dark"] .wb130-training-meta-label{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-training-meta-value{color:var(--d-tx) !important}
/* — RPE: nowoczesny suwak — */
[data-theme="dark"] .wb130-rpe-section,[data-theme="dark"] .wb130-rpe-head{background:transparent !important}
[data-theme="dark"] .wb130-rpe-label{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-rpe-num{font-size:30px !important}
[data-theme="dark"] .wb130-rpe-max{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-rpe-row{display:none !important}
[data-theme="dark"] .wb130-rpe-desc{background:var(--d-bg-elev) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx);font-weight:800}
/* — Check-in poranny: pickery + slider + opisy — */
[data-theme="dark"] .wb130-pick-btn{background:var(--d-bg-tile2) !important;border:1px solid var(--d-bd) !important}
[data-theme="dark"] .wb130-pick-btn.is-active{background:#fc4c02 !important;border-color:#fc4c02 !important;color:#fff !important}
[data-theme="dark"] .wb130-detail-num{color:var(--d-tx) !important}
[data-theme="dark"] .wb130-detail-max{color:var(--d-tx-m) !important}
[data-theme="dark"] .wb130-detail-desc{background:var(--d-bg-elev) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx) !important}
/* — Sen — */
[data-theme="dark"] .wb130-sleep-btn{background:var(--d-bg-tile2) !important;border:1px solid var(--d-bd) !important;color:var(--d-tx) !important}
[data-theme="dark"] .wb130-sleep-btn.is-active{background:#fc4c02 !important;border-color:#fc4c02 !important;color:#fff !important}
[data-theme="dark"] .wb130-sleep-value{color:var(--d-tx) !important}
[data-theme="dark"] .wb130-pain-confirmed{background:var(--d-bg-elev) !important;border-color:var(--d-bd) !important;color:var(--d-tx) !important}

/* [DZIŚ#2 R1+R3+R4 2026-05-28] HERO v4 — plan-first, gamifikacja drugoplanowa (mockup-day-v4).
   Powitanie subtelne (bez emoji) + wąski pasek + chipy + legenda za „?". Plan dnia = dominujący. */
[data-theme="dark"] .gh-greet{font-size:14px;font-weight:600;color:var(--d-tx) !important;margin:2px 2px 12px}
[data-theme="dark"] .gh-greet b{font-weight:700}
[data-theme="dark"] .gh-greet-sep{color:var(--d-tx-d) !important;font-weight:500}
/* [DZIŚ#4 2026-05-28] Nawigator dni + baner podglądu + read-only przeszłości */
[data-theme="dark"] .gh-greet{margin-bottom:8px !important}
/* [DZIŚ#4 v1] Ghost inline date-nav (wybrany wariant) — bez powitania, dyskretny */
.gh-dnav1{display:flex;align-items:center;justify-content:center;gap:8px;margin:2px 0 14px}
.gh-dnav1-ar{color:var(--d-tx-d,#6b7280);font-size:20px;line-height:1;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;user-select:none;border-radius:8px;font-weight:400}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .gh-dnav1-ar:hover{color:var(--d-tx,#fff);background:rgba(255,255,255,.04)} }
.gh-dnav1-ar.off{opacity:.22;cursor:default;pointer-events:none;background:none}
.gh-dnav1-dt{font-size:13px;font-weight:600;color:var(--d-tx-m,#9ca3af);cursor:pointer;text-transform:capitalize;white-space:nowrap}
.gh-dnav1-dt b{color:var(--d-tx,#fff);font-weight:700}
.gh-dnav1-tag{font-size:10px;color:var(--d-tx-d,#6b7280);text-transform:none;font-weight:500}
.gh-dnav1.past .gh-dnav1-dt b{color:#06b6d4}
/* (stary, cięższy nawigator — pozostaje w CSS jako martwy, nieużywany) */
.gh-datenav{display:flex;align-items:center;gap:8px;margin:0 0 12px}
.gh-dn-arrow{width:38px;height:38px;border-radius:11px;background:var(--d-bg-tile,#1c1f26);border:1px solid var(--d-bd,#3a3d45);color:var(--d-tx,#fff);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:border-color .15s}
.gh-dn-arrow:hover:not(:disabled){border-color:var(--d-bd-strong,#4d5058)}
.gh-dn-arrow:disabled{opacity:.32;cursor:not-allowed}
.gh-dn-arrow .ti{font-size:18px}
.gh-dn-date{flex:1;text-align:center;background:var(--d-bg-tile,#1c1f26);border:1px solid var(--d-bd,#3a3d45);border-radius:11px;padding:9px 12px;font-family:'Syne',sans-serif;font-size:14px;font-weight:800;text-transform:capitalize;color:var(--d-tx,#fff);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gh-dn-today{display:inline-flex;align-items:center;gap:5px;background:rgba(34,197,94,.16);color:#22c55e;font-size:11px;font-weight:800;padding:10px 12px;border-radius:11px;cursor:pointer;flex-shrink:0;white-space:nowrap;border:1px solid rgba(34,197,94,.3)}
.gh-dn-today .ti{font-size:14px}
.gh-pastbar{display:flex;align-items:center;gap:9px;background:linear-gradient(135deg,rgba(6,182,212,.12),var(--d-bg-tile,#1c1f26));border:1px solid var(--d-bd,#3a3d45);border-left:3px solid #06b6d4;border-radius:11px;padding:9px 13px;margin:0 0 12px;font-size:12px;color:var(--d-tx-m,#9ca3af)}
.gh-pastbar .ti{color:#06b6d4;font-size:16px;flex-shrink:0}
.gh-pastbar b{color:var(--d-tx,#fff)}
[data-theme="dark"] .wb130-readonly .wb130-form-input,
[data-theme="dark"] .wb130-readonly .wb130-form-textarea,
[data-theme="dark"] .wb130-readonly .wb130-rpe-row,
[data-theme="dark"] .wb130-readonly .wb130-pick-btn,
[data-theme="dark"] .wb130-readonly .wb130-sleep-btn,
[data-theme="dark"] .wb130-readonly .wsl,
[data-theme="dark"] .wb130-readonly .wbc-save,
[data-theme="dark"] .wb130-readonly .wb130-pain-btn,
[data-theme="dark"] .wb130-readonly [data-save-training],
[data-theme="dark"] .wb130-readonly .wb130-form-btn,
[data-theme="dark"] .wb130-readonly .wb130-edit-btn{pointer-events:none !important;opacity:.5 !important}
.gh-bar{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#221a30 0%,var(--d-bg-tile,#1c1f26) 65%);border:1px solid var(--d-bd,#3a3d45);border-radius:13px;padding:10px 13px;margin-bottom:8px;cursor:pointer;position:relative;z-index:1}
.gh-bar:hover{border-color:var(--d-bd-strong,#4d5058)}
.gh-bar-medal{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:grid;place-items:center}
.gh-bar-medal-in{width:29px;height:29px;border-radius:50%;background:var(--d-bg-tile,#1c1f26);display:grid;place-items:center}
.gh-bar-medal-in .ti{font-size:15px;color:#facc15}
.gh-bar-main{flex:1;min-width:0}
.gh-bar-top{display:flex;align-items:center;gap:7px}
.gh-bar-lvl{font-family:'Syne',sans-serif;font-weight:800;font-size:15px;background:linear-gradient(135deg,#facc15,#fb923c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.gh-bar-stars{display:flex;gap:2px}
.gh-bar-stars .ti{font-size:11px;color:#facc15}
.gh-bar-stars .ti.off{color:var(--d-bd-strong,#4d5058)}
.gh-bar-xp{margin-left:auto;font-size:12px;font-weight:700;color:var(--d-tx-m,#9ca3af)}
.gh-bar-xp b{font-family:'Syne',sans-serif;color:var(--d-tx,#fff);font-size:13px}
.gh-bar-q{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:1px solid var(--d-bd-strong,#4d5058);color:var(--d-tx-d,#6b7280);font-size:11px;font-weight:800;display:grid;place-items:center;cursor:pointer}
.gh-bar-q:hover{color:var(--d-tx,#fff);border-color:var(--d-tx-m,#9ca3af)}
.gh-bar-prog{display:flex;align-items:center;gap:9px;margin-top:7px}
.gh-bar-track{flex:1;height:5px;background:rgba(255,255,255,.04);border-radius:4px;overflow:hidden}
.gh-bar-fill{height:100%;background:linear-gradient(90deg,#facc15,#fb923c);border-radius:4px;transition:width .6s ease}
.gh-bar-next{font-size:10px;color:var(--d-tx-m,#9ca3af);white-space:nowrap}
.gh-bar-next b{color:#facc15}
.gh-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
.gh-chip{display:inline-flex;align-items:center;gap:6px;background:var(--d-bg-tile,#1c1f26);border:1px solid var(--d-bd,#3a3d45);border-radius:10px;padding:7px 11px;font-size:12px;font-weight:600;color:var(--d-tx,#fff);cursor:pointer;transition:border-color .15s}
.gh-chip:hover{border-color:var(--d-bd-strong,#4d5058)}
.gh-chip .ti{font-size:14px}
.gh-chip b{font-family:'Syne',sans-serif;font-weight:800}
.gh-chip[data-gaminfo="streak"] .ti{color:#fb7185}
.gh-chip[data-gaminfo="badge"] .ti{color:#a855f7}
.gh-chip[data-gaminfo="shield"] .ti{color:#06b6d4}
.gh-chip-coach{border-color:rgba(252,76,2,.32) !important;background:linear-gradient(135deg,rgba(252,76,2,.10),var(--d-bg-tile,#1c1f26)) !important}
.gh-chip-coach .ti{color:#fc4c02}
/* [R1 v5] KARTA poziomu: „?" legenda + XP na karcie + kafelek Trener (kropka nowej wiadomości) */
.gh-q{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--d-bd-strong,#4d5058);color:var(--d-tx-d,#6b7280);font-size:10px;font-weight:800;cursor:pointer;vertical-align:middle;margin-left:4px}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .gh-q:hover{color:var(--d-tx,#fff);border-color:var(--d-tx-m,#9ca3af)} }
.gh-card-xp{margin-left:auto;text-align:right;flex-shrink:0}
.gh-card-xp-num{font-family:'Syne',sans-serif;font-size:24px;font-weight:800;line-height:1;color:var(--d-tx,#fff)}
.gh-card-xp-lbl{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--d-tx-m,#9ca3af);margin-top:3px}
.gh-stat{position:relative}
.ico-coach{background:rgba(252,76,2,.16)} .ico-coach .ti{color:#fc4c02}
.gh-stat-coach{border-color:rgba(252,76,2,.32) !important;background:linear-gradient(135deg,rgba(252,76,2,.10),var(--d-bg-tile,#1c1f26)) !important}
.gh-stat-dot{position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;background:#fc4c02;box-shadow:0 0 0 3px rgba(252,76,2,.22)}
/* Plan dnia = dominujący nagłówek (kontrast: .wb130-section-title nigdy nie był ściemniony → był ciemny na ciemnym) */
[data-theme="dark"] .wb130-section-title{font-size:20px !important;color:var(--d-tx) !important;-webkit-text-fill-color:var(--d-tx) !important}
[data-theme="dark"] .wb130-section-meta{color:var(--d-tx-m) !important}
/* Popover info/legenda (R3) */
.gdi-pov{position:fixed;inset:0;background:rgba(10,10,11,.62);display:none;align-items:center;justify-content:center;z-index:9998;padding:24px}
.gdi-pov.on{display:flex}
.gdi-pop{background:var(--d-bg-tile,#1c1f26);border:1px solid var(--d-bd-strong,#4d5058);border-radius:16px;padding:22px;max-width:380px;width:100%;max-height:82vh;overflow:auto}
.gdi-ico{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;margin-bottom:11px}
.gdi-ico .ti{font-size:21px}
.gdi-t{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;margin-bottom:6px;color:var(--d-tx,#fff)}
.gdi-d{font-size:13px;color:var(--d-tx-m,#9ca3af);line-height:1.6}
.gdi-d b{color:var(--d-tx,#fff)}
.gdi-x{margin-top:15px;width:100%;background:var(--d-bg-elev,#252830);border:1px solid var(--d-bd,#3a3d45);color:var(--d-tx,#fff);border-radius:10px;padding:11px;font-weight:700;cursor:pointer;font-family:inherit;font-size:13px}
.gdi-path{display:flex;align-items:center;margin:14px 0 4px}
.gdi-node{flex:1;text-align:center;position:relative}
.gdi-node::before{content:'';position:absolute;top:5px;left:-50%;width:100%;height:2px;background:rgba(255,255,255,.10)}
.gdi-node:first-child::before{display:none}
.gdi-node.done::before{background:linear-gradient(90deg,#d4a017,#facc15)}
.gdi-dot{width:11px;height:11px;border-radius:50%;margin:0 auto;background:var(--d-bg-elev,#252830);border:2px solid var(--d-bd-strong,#4d5058)}
.gdi-node.done .gdi-dot{background:#d4a017;border-color:#facc15}
.gdi-node.cur .gdi-dot{background:#facc15;border-color:#fff;box-shadow:0 0 0 3px rgba(250,204,21,.25);transform:scale(1.25)}
.gdi-node-lbl{font-size:8px;font-weight:700;color:var(--d-tx-d,#6b7280);margin-top:4px}
.gdi-node.cur .gdi-node-lbl{color:#facc15}
.gdi-row{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--d-bd-soft,#25272d)}
.gdi-row:last-child{border:none}
.gdi-rico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
.gdi-rico .ti{font-size:17px}
.gdi-rt{font-weight:700;font-size:13px;color:var(--d-tx,#fff)}
.gdi-rd{font-size:12px;color:var(--d-tx-m,#9ca3af);margin-top:2px;line-height:1.5}

/* [DZIŚ#2 Etap3 2026-05-28] LEVEL PATH — ścieżka Adept→Legenda pod KPI grid hero */
.wb15-path{display:flex;align-items:flex-start;margin:16px 6px 2px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
.wb15-path-node{flex:1;text-align:center;position:relative}
.wb15-path-node::before{content:'';position:absolute;top:8px;left:-50%;width:100%;height:2px;background:rgba(255,255,255,.12)}
.wb15-path-node:first-child::before{display:none}
.wb15-path-node.done::before{background:linear-gradient(90deg,#d4a017,#facc15)}
.wb15-path-dot{width:18px;height:18px;border-radius:50%;margin:0 auto;background:rgba(255,255,255,.10);border:2px solid rgba(255,255,255,.28);transition:all .3s;position:relative;z-index:1}
.wb15-path-node.done .wb15-path-dot{background:#d4a017;border-color:#facc15}
.wb15-path-node.current .wb15-path-dot{background:#facc15;border-color:#fff;box-shadow:0 0 0 4px rgba(250,204,21,.25),0 0 14px rgba(250,204,21,.6);transform:scale(1.3)}
.wb15-path-lbl{font-size:9px;font-weight:700;color:rgba(255,255,255,.42);margin-top:7px;letter-spacing:.02em}
.wb15-path-node.current .wb15-path-lbl{color:#facc15}
.wb15-path-node.done .wb15-path-lbl{color:rgba(255,255,255,.62)}
@media(max-width:768px){.wb15-path{margin:14px 2px 2px}.wb15-path-lbl{font-size:8px}}

/* Sprint 15 banner (wb15-banner) — dark surface adjustment */
[data-theme="dark"] .wb15-banner{
  background:linear-gradient(135deg,
    rgba(251,191,36,0.15) 0%,
    rgba(251,191,36,0.30) 50%,
    rgba(251,191,36,0.20) 100%) !important;
  border:3px solid var(--amber-bright) !important;
  color:#ffffff !important;
}
[data-theme="dark"] .wb15-banner-title,
[data-theme="dark"] .wb15-banner-desc{
  color:#ffffff !important;
}
[data-theme="dark"] .wb15-banner-close{
  background:rgba(255,255,255,0.10) !important;
  color:#ffffff !important;
}
[data-theme="dark"] .wb15-banner-close:hover{
  background:rgba(255,255,255,0.20) !important;
}

/* Sprint 19 wb19-sheet-btn-sec (light slate-100 → dark tile) */
[data-theme="dark"] .wb19-sheet-btn-sec{
  background:var(--d-bg-tile2) !important;
  color:var(--d-tx-d) !important;
  border:1px solid var(--d-bd) !important;
}

/* P1 BUG FIX (Sprint 2.5, 2026-05-26): duplikat "READINESS SCORE" label
   applyHeroRefactor() JS injektuje .wads-readiness-label nad istniejącym
   labelem w HTML. Hide JS-injected duplicate. */
.wads-readiness-label{display:none !important}

/* ═════════════════════════════════════════════════════════════════
   Sprint 3.1 (2026-05-26) — Diary (p-diary) dark mode fixes
   .diary-mood-btn i .diary-opt mają inherited color:black z <button> default.
   Headers w p-diary mają color:#555 (zbyt ciemny na dark).
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .diary-mood-btn{
  color:#ffffff !important;
  background:var(--d-bg-tile) !important;
  border:2px solid var(--d-bd) !important;
}
[data-theme="dark"] .diary-mood-btn:hover{
  background:var(--d-bg-tile2) !important;
  border-color:var(--brand) !important;
}
[data-theme="dark"] .diary-mood-btn.active,
[data-theme="dark"] .diary-mood-btn[data-active="1"]{
  background:var(--brand) !important;
  color:#ffffff !important;
  border-color:var(--brand) !important;
}
[data-theme="dark"] .diary-opt{
  color:var(--d-tx-d) !important;
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
}
[data-theme="dark"] .diary-opt:hover{
  background:var(--d-bg-tile2) !important;
  border-color:var(--brand) !important;
  color:#ffffff !important;
}
[data-theme="dark"] .diary-opt.active,
[data-theme="dark"] .diary-opt[data-active="1"]{
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
  border-color:var(--brand) !important;
}
/* Diary headers — jasno-szary zamiast #555 */
[data-theme="dark"] #p-diary .u-tt-up{color:var(--d-tx-m) !important}
[data-theme="dark"] #p-diary .u-fw-700.u-tt-up{color:var(--d-tx-d) !important}

/* ═════════════════════════════════════════════════════════════════
   Sprint 3.2 (2026-05-26) — AI Coach Lab gradient enhancement
   Bardziej premium gradient (purple→violet→pink), silniejszy glow.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] #coach-lab-section-ai{
  background:linear-gradient(135deg,
    rgba(124,58,237,0.18) 0%,
    rgba(168,85,247,0.12) 50%,
    rgba(236,72,153,0.10) 100%),
    linear-gradient(135deg,#1a1825 0%,#13111c 100%) !important;
  border:1px solid rgba(168,85,247,0.35) !important;
  box-shadow:
    0 8px 24px rgba(124,58,237,0.18),
    0 0 60px rgba(168,85,247,0.12),
    inset 0 1px 0 rgba(255,255,255,0.04) !important;
}
[data-theme="dark"] #coach-lab-section-ai::before{
  content:'';
  position:absolute;
  top:0;
  right:0;
  width:240px;
  height:240px;
  background:radial-gradient(circle,rgba(236,72,153,0.10),transparent 70%);
  pointer-events:none;
  border-radius:inherit;
}
/* Coach Lab section needs position:relative for ::before */
[data-theme="dark"] #coach-lab-section-ai{position:relative;overflow:hidden}

/* ═════════════════════════════════════════════════════════════════
   Sprint 3.3 (2026-05-26) — Charts (p-ch) polish
   Subsection headers (u-c-ink5 u-fw-700) zbyt dim. Brand-color accents.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] #p-ch .u-fw-700.u-c-ink5,
[data-theme="dark"] #p-ch h3.u-c-ink5,
[data-theme="dark"] #p-ch h4.u-c-ink5{
  color:var(--d-tx-d) !important;
}
/* Charts subsection headers (UPPERCASE small) — brighter */
[data-theme="dark"] #p-ch .u-tt-up.u-fw-700{
  color:var(--d-tx-m) !important;
  letter-spacing:0.12em !important;
}
/* Chart container subtle hover lift */
[data-theme="dark"] #p-ch [class*="chart-container"],
[data-theme="dark"] #p-ch .u-r-lg{
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
/* Empty chart state subtle pattern */
[data-theme="dark"] #p-ch svg:empty,
[data-theme="dark"] #p-ch canvas:empty{
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* ═════════════════════════════════════════════════════════════════
   Sprint 4.2 (2026-05-26) — Touch targets ≥44px enforcement (WCAG 2.2 AA)
   Audyt 360px wykazał: 15 widocznych przycisków 38-41px height.
   Mobile-only enforcement aby nie wpłynąć na desktop.
   ═════════════════════════════════════════════════════════════════ */
@media (hover: none) and (pointer: coarse), (max-width: 768px) {
  /* Bottom nav buttons — WCAG min */
  .mbb-item{
    min-height:48px !important;
    min-width:44px !important;
    padding:6px 8px !important;
  }
  /* Calendar nav arrows + Dziś + view tabs */
  #p-cal button[class*="u-cursor-ptr"]:not(.btn-lg){
    min-height:44px !important;
    min-width:44px !important;
  }
  /* Generic small buttons globally */
  button.btn,
  button[class*="u-cursor-ptr"]{
    min-height:44px;
  }
  /* Topbar buttons — match height (44px touch-friendly) */
  .topbar button,
  #day-quick-btn,
  button[id*="role-badge"]{
    min-height:44px !important;
  }
  /* Diary mood pills — 48px touch + smaller font + flex wrap dla 360px overflow */
  [data-theme="dark"] .diary-mood-btn{
    min-height:48px !important;
    font-size:14px !important;
    padding:8px 6px !important;
    flex:1 1 60px !important;
  }
  /* Mood row container — wrap allowed */
  [data-theme="dark"] .diary-mood-btn:first-child{
    flex-basis:60px !important;
  }
  /* Diary tag pills — 44px enforcement */
  [data-theme="dark"] .diary-opt{
    min-height:44px !important;
    padding:10px 14px !important;
  }
  /* Calendar pills (Miesiąc/Tydzień/Dzień) — 44px */
  #p-cal button[data-cal-view]{
    min-height:44px !important;
    padding:10px 14px !important;
  }
  /* .btn-sm na mobile — WCAG min */
  .btn.btn-sm,
  button.btn-sm{
    min-height:44px !important;
    min-width:44px !important;
    padding:10px 14px !important;
  }
  /* Topbar burger / hamburger (case-insensitive matching, mobile topbar parent) */
  .topbar-burger,
  #mobile-topbar button,
  button[onclick*="openSidebar"],
  button[onclick*="openDrawer"],
  button[onclick*="Sidebar"],
  button[onclick*="Drawer"]{
    min-width:44px !important;
    min-height:44px !important;
  }
}

/* Fix overflow "Wiadomości" badge w wb130-hero on mobile */
@media (max-width: 480px) {
  [data-theme="dark"] .wb130-hero-head{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  [data-theme="dark"] .wb130-hero-coach-btn{
    align-self:start;
    max-width:fit-content;
  }
  /* Mobile audit (Sprint 5 extra): 2-col grids → 1-col na bardzo małych ekranach */
  #p-wb .tg-2col,
  #p-anthro .g-2col,
  #p-tests .g-2col{
    grid-template-columns:1fr !important;
  }
  /* Allow grid children to shrink below min-content (default min-width:auto blokuje) */
  #p-wb .tg.tg-2col > *,
  #p-anthro .g-2col > *,
  #p-tests .g-2col > *{
    min-width:0 !important;
    overflow-x:auto;
  }
}

/* ═════════════════════════════════════════════════════════════════
   User feedback fix (2026-05-26): Metric values colorized per zone.
   ATL/CTL/TSB/ACWR/Monotonia/Strain — main dash KPI numbers get color
   based on data-zone attribute set by JS (zone: low/mid/high/safe/risk).
   Używamy konkretnych IDs aby pokonać inline color:var(--ink).
   ═════════════════════════════════════════════════════════════════ */
/* [2026-07-14 #85] Override strefowy `data-zone` z !important OGRANICZONY do metryk RYZYKA (ACWR, Monotonia).
   ATL/CTL/TSB/Strain USUNIĘTE — ich kolor pochodzi teraz WYŁĄCZNIE z WadsColorScale inline (neutralne, bez fałszywego alarmu).
   Wcześniej ta reguła wymuszała czerwień na ATL (np. 410) mimo neutralnego inline. */
#dash-acwr[data-zone="high"],#dash-monotonia[data-zone="high"]{
  color:#ef4444 !important;
  text-shadow:0 0 24px rgba(239,68,68,0.30) !important;
}
#dash-acwr[data-zone="mid"],#dash-monotonia[data-zone="mid"]{
  color:#fbbf24 !important;
  text-shadow:0 0 24px rgba(251,191,36,0.30) !important;
}
#dash-acwr[data-zone="low"],#dash-monotonia[data-zone="low"]{
  color:#22c55e !important;
  text-shadow:0 0 24px rgba(34,197,94,0.30) !important;
}
#dash-acwr[data-zone="under"],#dash-monotonia[data-zone="under"]{
  color:#3b82f6 !important;
  text-shadow:0 0 24px rgba(59,130,246,0.30) !important;
}

/* ═════════════════════════════════════════════════════════════════
   PREMIUM CHIP FIX (2026-05-26 v2 — Garmin/Strava spec):
   54 inline "background:var(--ink)" były ACCENT CHIPS w light mode.
   W dark mode konwertujemy je na BRAND-ORANGE GRADIENT chips (Strava intent).
   Eliminuje wszystkie "TERAZ" białe boxy + cal-wdays + mac2-year-badge etc.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] [style*="background:var(--ink)"]:not([style*="color:var(--ink)"]){
  background:linear-gradient(135deg,#fc4c02 0%,#ff8000 100%) !important;
  color:#ffffff !important;
  box-shadow:0 2px 8px rgba(252,76,2,0.25) !important;
}
/* Wide pattern catch: also #fff/#ffffff/rgba(255,255,255,...) hardcoded */
[data-theme="dark"] [style*="background:#fff"]:not([style*="rgba"]):not([style*="color:#fc4c02"]),
[data-theme="dark"] [style*="background:#ffffff"]:not([style*="color:#fc4c02"]){
  background:var(--d-bg-tile) !important;
  color:var(--d-tx) !important;
}
/* Brand badges WITH #fff bg + brand text — INTENTIONAL Strava-style, keep but invert */
[data-theme="dark"] [style*="background:#fff"][style*="color:#fc4c02"],
[data-theme="dark"] [style*="background:#ffffff"][style*="color:#fc4c02"]{
  background:linear-gradient(135deg,#fc4c02 0%,#ff8000 100%) !important;
  color:#ffffff !important;
}
/* rgba(255,255,255,.85) overlay (macro empty card W24!) → dark overlay */
[data-theme="dark"] [style*="rgba(255,255,255,.85)"],
[data-theme="dark"] [style*="rgba(255,255,255,0.85)"]{
  background:rgba(20,20,22,0.85) !important;
  backdrop-filter:blur(4px);
  color:var(--d-tx) !important;
}
/* rgba(255,255,255,.95) (modals etc.) */
[data-theme="dark"] [style*="rgba(255,255,255,.95)"],
[data-theme="dark"] [style*="rgba(255,255,255,0.95)"]{
  background:rgba(20,20,22,0.95) !important;
  color:var(--d-tx) !important;
}

/* ═════════════════════════════════════════════════════════════════
   FINAL FIXES (ETAP P0 + last white bleed):
   1. wb15-award-modal — L54354 background:white hardcoded
   2. WCAG 2.2 prefers-reduced-motion respect
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .wb15-award-modal,
[data-theme="dark"] [class*="wb15-award"]{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx) !important;
  box-shadow:0 20px 60px rgba(0,0,0,0.60), 0 0 80px rgba(252,76,2,0.10) !important;
}
[data-theme="dark"] .wb15-award-modal *{
  color:inherit !important;
}
/* WCAG 2.2 — respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
/* btn-ink → BRAND orange CTA (Strava intent: ink-bg in light mode was the prominent CTA) */
[data-theme="dark"] .btn-ink{
  background:linear-gradient(135deg,#fc4c02 0%,#ff8000 100%) !important;
  border:none !important;
  color:#ffffff !important;
  box-shadow:0 4px 12px rgba(252,76,2,0.30) !important;
  font-weight:700 !important;
}
[data-theme="dark"] .btn-ink:hover{
  box-shadow:0 6px 18px rgba(252,76,2,0.45) !important;
  transform:translateY(-1px);
}
/* Calendar weekday header (dark bg) */
[data-theme="dark"] .cal-wdays{
  background:var(--d-bg-tile2) !important;
  border-bottom:1px solid var(--d-bd) !important;
}
[data-theme="dark"] .tile-ink{
  background:var(--d-bg-tile) !important;
  border-color:var(--d-bd) !important;
}
[data-theme="dark"] .tg-ink{
  background:var(--d-bg-tile) !important;
  color:var(--d-tx) !important;
}
/* Progress bar fill — keep brand orange on dark for visibility */
[data-theme="dark"] .prog-f{
  background:var(--brand) !important;
}

/* User feedback fix: Mikrocykl/Calendar day numbers boost
   Non-today numbers byly embossed; aktywizujemy je do d-tx-d (gray-200) */
[data-theme="dark"] .micro-cell-day-num,
[data-theme="dark"] .cal-cell-day-num,
[data-theme="dark"] [class*="cal-day-num"]{
  color:var(--d-tx-d) !important;
  font-weight:700 !important;
}
[data-theme="dark"] .micro-cell-day-name,
[data-theme="dark"] .cal-cell-day-name,
[data-theme="dark"] [class*="cal-day-name"]{
  color:var(--d-tx-m) !important;
}
/* Today highlight (rounded square Todoist DNA) — ensure white text on brand */
[data-theme="dark"] .micro-day-today .micro-cell-day-num,
[data-theme="dark"] .micro-day-today .cal-cell-day-num,
[data-theme="dark"] [class*="today"] [class*="day-num"]{
  color:#ffffff !important;
}

/* User feedback fix: Macrocykl week cards subtle accent colors visible */
[data-theme="dark"] #p-macro [style*="background:var(--paper)"]{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
}
[data-theme="dark"] #p-macro [style*="background:var(--cream)"]{
  background:var(--d-bg-tile2) !important;
  border-bottom:1px solid var(--d-bd-soft) !important;
}
/* Makrocykl card headers — week labels brighter */
[data-theme="dark"] #p-macro [style*="color:var(--ink4)"],
[data-theme="dark"] #p-macro [style*="color:var(--ink5)"],
[data-theme="dark"] #p-macro [style*="color:var(--cream4)"]{
  color:var(--d-tx-m) !important;
}

/* ═════════════════════════════════════════════════════════════════
   MIKROCYKL REDESIGN (2026-05-26 user feedback "wygląda słabo")
   JS-rendered inline-styled calendar — comprehensive dark override.
   ═════════════════════════════════════════════════════════════════ */
/* Calendar container — white bg → dark tile */
[data-theme="dark"] #p-micro .u-bg-white,
[data-theme="dark"] #p-micro [class*="bg-white"]{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
}
/* Header row cells (day cells with date) */
[data-theme="dark"] #p-micro [style*="background:var(--cream)"]:not([style*="rgba"]){
  background:var(--d-bg-tile2) !important;
}
/* Cell borders cream3/cream2 → dark borders */
[data-theme="dark"] #p-micro [style*="border:1px solid var(--cream3)"],
[data-theme="dark"] #p-micro [style*="border-left:1px solid var(--cream3)"],
[data-theme="dark"] #p-micro [style*="border-bottom:1px solid var(--cream2)"],
[data-theme="dark"] #p-micro [style*="border-bottom:2px solid var(--cream3)"]{
  border-color:var(--d-bd) !important;
}
/* Today header cell glow effect enhanced */
[data-theme="dark"] #p-micro [style*="background:rgba(252,76,2,.08)"]{
  background:linear-gradient(180deg,rgba(252,76,2,0.15),rgba(252,76,2,0.05)) !important;
  border-bottom:2px solid var(--brand) !important;
}
/* Time slots cells (1h rows) — borderless dark */
[data-theme="dark"] #p-micro [style*="border-bottom:1px solid var(--cream2)"]{
  border-bottom:1px solid rgba(255,255,255,0.05) !important;
}
/* Hour labels (left column 7:00, 8:00) brighter */
[data-theme="dark"] #p-micro [style*="font-size:9px"][style*="color:var(--ink5)"]{
  color:var(--d-tx-m) !important;
  font-weight:600 !important;
}
/* Unscheduled chips area (cream bg) */
[data-theme="dark"] #p-micro [style*="background:var(--cream)"][style*="dashed"]{
  background:var(--d-bg-tile2) !important;
  border:1px dashed var(--d-bd) !important;
}
/* Sugestie z makrocyklu container */
[data-theme="dark"] #p-micro [class*="u-r-md"][style*="cream"]{
  background:var(--d-bg-tile2) !important;
  border:1px solid var(--d-bd-soft) !important;
}
/* Now-line (current time orange line) — make it MORE prominent */
[data-theme="dark"] .now-line{
  height:3px !important;
  background:linear-gradient(90deg,transparent,#fc4c02 8%,#fc4c02 92%,transparent) !important;
  box-shadow:0 0 20px rgba(252,76,2,0.70), 0 0 40px rgba(252,76,2,0.30) !important;
}
[data-theme="dark"] .now-line::before{
  content:'' !important;
  position:absolute;
  left:-6px;
  top:-4px;
  width:12px;
  height:12px;
  background:#fc4c02;
  border-radius:50%;
  box-shadow:0 0 12px rgba(252,76,2,0.80);
}

/* ═════════════════════════════════════════════════════════════════
   MAKROCYKL REDESIGN (2026-05-26 user feedback "agresywna tabela")
   Week cards z period-color accents (Przejściowy/Regen/Przyg/Startowy).
   ═════════════════════════════════════════════════════════════════ */
/* All macro week cards — premium dark base */
[data-theme="dark"] #p-macro [onclick*="openMacroDetail"]{
  background:linear-gradient(180deg,var(--d-bg-tile) 0%,var(--d-bg-tile2) 100%) !important;
  border:1px solid var(--d-bd) !important;
  box-shadow:0 4px 16px rgba(0,0,0,0.30), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  transition:all 0.18s ease;
}
[data-theme="dark"] #p-macro [onclick*="openMacroDetail"]:hover{
  border-color:var(--brand) !important;
  box-shadow:0 8px 28px rgba(0,0,0,0.40), 0 0 32px rgba(252,76,2,0.15) !important;
  transform:translateY(-2px);
}
/* Week card header (z period label) — top accent strip */
[data-theme="dark"] #p-macro [onclick*="openMacroDetail"] > div:first-child{
  background:var(--d-bg-tile2) !important;
  border-bottom:1px solid var(--d-bd-soft) !important;
  position:relative;
}
/* Wxx label (W20, W21 etc.) — big premium Syne */
[data-theme="dark"] #p-macro [style*="font-family:'Syne'"][style*="font-size:24px"],
[data-theme="dark"] #p-macro [style*="font-family:\\'Syne\\'"][style*="font-size:24px"]{
  color:#ffffff !important;
  text-shadow:0 2px 8px rgba(0,0,0,0.40);
}
/* Section labels (Technika/Taktyka/Motoryka...) — uppercase brand muted */
[data-theme="dark"] #p-macro [style*="font-size:9px"][style*="text-transform:uppercase"]{
  color:var(--brand) !important;
  font-weight:800 !important;
  letter-spacing:0.10em !important;
  opacity:0.85;
}
/* Section sub-labels inline (Technika/Taktyka/Motoryka/Prewencja/Mental) bez uppercase */
[data-theme="dark"] #p-macro [style*="font-size:9px"][style*="color:var(--cream4)"],
[data-theme="dark"] #p-macro [onclick*="openMacroDetail"] [style*="font-size:9px"]{
  color:var(--brand) !important;
  text-transform:uppercase !important;
  letter-spacing:0.08em !important;
  opacity:0.85 !important;
  font-size:10px !important;
  margin-bottom:3px !important;
}
/* Brak planu / Kliknij aby zaplanować — vibrant brand for empty CTA */
[data-theme="dark"] #p-macro [style*="color:var(--brand)"]{
  color:var(--brand) !important;
  font-weight:600 !important;
}
/* Period label (Przejściowy/Regeneracja/Przygotowawczy/Startowy) accent bar
   Mapping inferred z color w inline style (varies per period) */
[data-theme="dark"] #p-macro [style*="background:var(--green-bright)"],
[data-theme="dark"] #p-macro [style*="background:#22c55e"]{
  background:linear-gradient(90deg,#22c55e,#4ade80) !important;
}
[data-theme="dark"] #p-macro [style*="background:var(--blue)"],
[data-theme="dark"] #p-macro [style*="background:#3b82f6"]{
  background:linear-gradient(90deg,#3b82f6,#60a5fa) !important;
}
[data-theme="dark"] #p-macro [style*="background:var(--purple)"],
[data-theme="dark"] #p-macro [style*="background:#a855f7"]{
  background:linear-gradient(90deg,#a855f7,#c084fc) !important;
}
/* ATL footer bar — gradient brand */
[data-theme="dark"] #p-macro [style*="background:var(--red"]{
  background:linear-gradient(90deg,#fc4c02,#ff6f33) !important;
}
/* TERAZ badge (current week) — enhanced glow */
[data-theme="dark"] #p-macro [style*="TERAZ"],
[data-theme="dark"] #p-macro [class*="teraz"]{
  background:linear-gradient(135deg,#fc4c02,#ff6f33) !important;
  color:#ffffff !important;
  box-shadow:0 0 20px rgba(252,76,2,0.50) !important;
}

/* ═════════════════════════════════════════════════════════════════
   USER FEEDBACK v3 (2026-05-26) — 17 UNPATCHED WHITE-BLEED CLASSES
   Per Token Auditor + Design Critic agents — direct dark overrides.
   ═════════════════════════════════════════════════════════════════ */
/* Match cards / Modal box / Calendar grid — surfaces */
[data-theme="dark"] .mc,
[data-theme="dark"] .mbox,
[data-theme="dark"] .cal-grid,
[data-theme="dark"] .sc{
  background:var(--d-bg-tile) !important;
  border-color:var(--d-bd) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .cd,
[data-theme="dark"] .cd.today,
[data-theme="dark"] .cd.wknd.today{
  background:var(--d-bg-tile2) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .cd.today,
[data-theme="dark"] .cd.wknd.today{
  border:2px solid var(--brand) !important;
  background:rgba(252,76,2,0.10) !important;
}
[data-theme="dark"] .ag-ev,
[data-theme="dark"] .ag-empty{
  background:var(--d-bg-tile2) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx-d) !important;
}
/* Dropdowns */
[data-theme="dark"] .tag-picker,
[data-theme="dark"] .tp-dropdown,
[data-theme="dark"] .fs option{
  background:var(--d-bg-elev) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx) !important;
}
/* Sprint v210 family (Calendar, habits, timeline) */
[data-theme="dark"] .v210-now{
  background:linear-gradient(135deg,#fc4c02,#ff8000) !important;
  color:#fff !important;
  box-shadow:0 2px 8px rgba(252,76,2,0.30);
}
[data-theme="dark"] .v210-tl-point{
  background:var(--d-bg-tile) !important;
  border:2px solid var(--d-bd-strong) !important;
}
[data-theme="dark"] .v210-tl-st-future{
  background:var(--d-bg-tile2) !important;
  color:var(--d-tx-m) !important;
}
[data-theme="dark"] .v210-seria{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .v210-habits-mini,
[data-theme="dark"] .v210-habit-mini-card{
  background:var(--d-bg-tile2) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .v210-habit-mini-checkbox{
  background:transparent !important;
  border:2px solid var(--d-bd-strong) !important;
}
[data-theme="dark"] .v210-pain-btn-choice{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx-d) !important;
}
[data-theme="dark"] .v210-pain-btn-choice:hover,
[data-theme="dark"] .v210-pain-btn-choice.active{
  background:var(--brand) !important;
  color:#fff !important;
  border-color:var(--brand) !important;
}
[data-theme="dark"] .v210-cal-day{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd-soft) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] .v210-cal-action-btn-mini{
  background:var(--d-bg-tile2) !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx-d) !important;
}

/* ═════════════════════════════════════════════════════════════════
   KALENDARZ DRAWER (right panel detail) — drawer-specific premium polish
   "OTWÓRZ MIKROCYKL" / "+ ZAPLANUJ TRENING" need brand-orange CTA
   (Garmin/Strava CTA pattern) — were near-black blade before.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] #cal-day-drawer .btn-ink,
[data-theme="dark"] #cal-drawer-content .btn-ink,
[data-theme="dark"] [id*="cal-drawer"] .btn-ink{
  background:linear-gradient(135deg,#fc4c02 0%,#ff8000 100%) !important;
  border:none !important;
  color:#ffffff !important;
  box-shadow:0 4px 12px rgba(252,76,2,0.30) !important;
}
/* Drawer dayName "8 Maj 2026" — was color:#111 (black on dark) */
[data-theme="dark"] [id*="cal-drawer"] [style*="color:#111"],
[data-theme="dark"] #cal-day-drawer [style*="color:#111"]{
  color:#ffffff !important;
}
/* Lavender-white #f8f7ff context strip → translucent purple */
[data-theme="dark"] [style*="background:#f8f7ff"]{
  background:rgba(139,92,246,0.10) !important;
  border:1px solid rgba(139,92,246,0.30) !important;
}
/* Calendar drawer empty state text colors (#ccc/#ddd/#999) → proper hierarchy */
[data-theme="dark"] [id*="cal-drawer"] [style*="color:#ccc"],
[data-theme="dark"] [id*="cal-drawer"] [style*="color:#ddd"]{
  color:var(--d-tx-m) !important;
}
[data-theme="dark"] [id*="cal-drawer"] [style*="color:#999"]{
  color:var(--d-tx-faint) !important;
}
[data-theme="dark"] [id*="cal-drawer"] svg[stroke="#ddd"],
[data-theme="dark"] [id*="cal-drawer"] svg[stroke="#ccc"]{
  stroke:var(--d-tx-m) !important;
}

/* ═════════════════════════════════════════════════════════════════
   Sprint 5.2 (2026-05-26) — KB metric popups dark theme polish
   readiness-info-popup ma hardcoded inline light backgrounds.
   Catch via attribute selectors + force dark.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] #readiness-info-popup .u-bg-white{
  background:var(--d-bg-tile) !important;
  border:1px solid var(--d-bd) !important;
}
/* Modal header — already var(--ink) dark which is correct */
[data-theme="dark"] #readiness-info-popup [style*="background:var(--ink)"]{
  background:linear-gradient(135deg,var(--d-bg-tile2) 0%,#1a1825 100%) !important;
  border-bottom:1px solid var(--d-bd) !important;
}
/* Body text color flip */
[data-theme="dark"] #readiness-info-popup [style*="color:var(--ink3)"]{
  color:var(--d-tx-d) !important;
}
[data-theme="dark"] #readiness-info-popup [style*="color:var(--ink)"]:not([style*="background:var(--ink)"]){
  color:var(--d-tx) !important;
}
/* Light "Dwa źródła danych" tile (#f0f9ff → blue-tinted dark) */
[data-theme="dark"] #readiness-info-popup [style*="background:#f0f9ff"]{
  background:rgba(59,130,246,0.10) !important;
  border:1px solid rgba(59,130,246,0.30) !important;
}
[data-theme="dark"] #readiness-info-popup [style*="color:#0369a1"]{
  color:#60a5fa !important;
}
/* Light "Progi decyzyjne" tiles */
[data-theme="dark"] #readiness-info-popup [style*="background:#fffbeb"]{
  background:rgba(245,158,11,0.10) !important;
  border:1px solid rgba(245,158,11,0.30) !important;
}
[data-theme="dark"] #readiness-info-popup [style*="background:var(--green-lightest)"]{
  background:rgba(34,197,94,0.10) !important;
  border:1px solid rgba(34,197,94,0.30) !important;
}
[data-theme="dark"] #readiness-info-popup [style*="background:var(--red-lightest)"]{
  background:rgba(239,68,68,0.10) !important;
  border:1px solid rgba(239,68,68,0.30) !important;
}
/* Sources footer (var(--cream) → dark) */
[data-theme="dark"] #readiness-info-popup [style*="background:var(--cream)"]{
  background:var(--d-bg-tile2) !important;
  color:var(--d-tx-m) !important;
  border:1px solid var(--d-bd-soft);
}
/* Strong text color in body */
[data-theme="dark"] #readiness-info-popup strong{color:var(--d-tx) !important}
[data-theme="dark"] #readiness-info-popup p{color:var(--d-tx-d) !important}
/* Red text inside alerts (var(--red2), --dom-tech, etc.) keep vibrant */
[data-theme="dark"] #readiness-info-popup [style*="color:var(--red2)"]{color:var(--red) !important}
[data-theme="dark"] #readiness-info-popup [style*="color:var(--green2)"]{color:var(--green-bright) !important}
[data-theme="dark"] #readiness-info-popup [style*="color:#7f1d1d"]{color:#fca5a5 !important}

/* ═════════════════════════════════════════════════════════════════
   Sprint 5.3 (2026-05-26) — Onboarding flow dark polish
   onboard-overlay już dark backdrop. Polish "Pomiń" + box border + nav buttons.
   ═════════════════════════════════════════════════════════════════ */
[data-theme="dark"] #onboard-overlay{
  background:rgba(0,0,0,0.85) !important;
  backdrop-filter:blur(8px);
}
[data-theme="dark"] #onboard-overlay .u-bg-white{
  background:linear-gradient(135deg,var(--d-bg-tile) 0%,var(--d-bg-tile2) 100%) !important;
  border:1px solid var(--d-bd) !important;
  box-shadow:
    0 20px 60px rgba(0,0,0,0.60),
    0 0 80px rgba(252,76,2,0.08) !important;
}
[data-theme="dark"] #onboard-overlay .u-c-ink5{
  color:var(--d-tx-m) !important;
}
[data-theme="dark"] #onboard-overlay .u-c-ink5:hover{
  color:var(--d-tx) !important;
}
/* Onboard nav buttons — premium contrast */
[data-theme="dark"] #onboard-prev{
  background:transparent !important;
  border:1px solid var(--d-bd) !important;
  color:var(--d-tx-d) !important;
}
[data-theme="dark"] #onboard-prev:hover{
  background:var(--d-bg-tile2) !important;
  border-color:var(--d-bd-strong) !important;
  color:var(--d-tx) !important;
}
[data-theme="dark"] #onboard-next{
  background:var(--brand) !important;
  border:1px solid var(--brand) !important;
  color:#ffffff !important;
  box-shadow:0 4px 12px rgba(252,76,2,0.25);
}
[data-theme="dark"] #onboard-next:hover{
  background:var(--brand-2,#ff6f33) !important;
  box-shadow:0 6px 18px rgba(252,76,2,0.40);
  transform:translateY(-1px);
}
/* Onboard dots — brand for active, dim for inactive */
[data-theme="dark"] #onboard-dots > *{
  background:var(--d-bd) !important;
  transition:all 0.15s ease;
}
[data-theme="dark"] #onboard-dots > *.active,
[data-theme="dark"] #onboard-dots > *[data-active="1"]{
  background:var(--brand) !important;
  box-shadow:0 0 12px rgba(252,76,2,0.40);
}

/* ====== PAGE BG = CREAM ====== */
#p-day {
  background: var(--wb130-cream) !important;
  padding: 24px 24px 60px 24px !important;
  box-sizing: border-box;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--wb130-ink);
}
@media (max-width: 768px) {
  #p-day { padding: 16px 16px 80px 16px !important; }
}

/* ====== ROOT WB60 ====== */
#wb130-root {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--wb130-ink);
  /* [Etap 2 2026-08-07] Mój dzień = wyśrodkowana kolumna (koniec rozciągnięcia na całą szerokość ekranu) */
  max-width: 1280px; margin-left: auto; margin-right: auto;
}
/* kafelek poznawczy w tej samej wyśrodkowanej kolumnie (gdyby był wstrzyknięty poza #wb130-root) */
#p-day .cogmd-tile { max-width: 1280px; margin-left: auto; margin-right: auto; }

/* ============================================================
   HERO: gradient ink → purple-deep → purple
   (Twoja preferencja: czarno-fioletowe)
   ============================================================ */
.wb130-hero {
  background: linear-gradient(135deg,
    var(--wb130-ink) 0%,
    var(--wb130-purple-mid) 55%,
    var(--wb130-purple-deep) 100%);
  border-radius: var(--r-lg);
  padding: 28px 32px;
  color: var(--wb130-paper);
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

/* Subtle grid texture */
.wb130-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}

/* Subtle glow w prawym gornym rogu */
.wb130-hero::after {
  content: '';
  position: absolute;
  top: -80px;
  right: -80px;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(100, 80, 210, 0.35), transparent 70%);
  pointer-events: none;
}

/* === HERO HEADER: greeting (left) + info icon (right) === */
.wb130-hero-head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: start;
  margin-bottom: 24px;
}

.wb130-hero-greeting {
  display: flex;
  flex-direction: column;
}
.wb130-hero-label {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 8px;
}
.wb130-hero-name {
  font-family: 'Syne', sans-serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin-bottom: 4px;
}
.wb130-hero-date {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

/* === Coach info icon (Twoj punkt #4) === */
.wb130-hero-coach-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px 9px 12px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--r-md);
  color: var(--wb130-paper);
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  backdrop-filter: blur(8px);
  white-space: nowrap;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-hero-coach-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.30);
  transform: translateY(-1px);
} }
.wb130-hero-coach-btn svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.wb130-hero-coach-btn .wb130-coach-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber-bright);
  box-shadow: 0 0 6px rgba(251, 191, 36, 0.6);
  margin-right: 4px;
}

/* === KPI GRID — 4 cards: Liga, XP, Streak, Odznaki === */
.wb130-hero-kpi {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 14px;
}
@media (max-width: 900px) {
  .wb130-hero-kpi {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .wb130-hero-kpi {
    grid-template-columns: 1fr;
  }
}

.wb130-kpi-cell {
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: var(--r-md);
  position: relative;
  overflow: hidden;
}

.wb130-kpi-label {
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 8px;
}

/* TWOJ PUNKT #2: WSZYSTKIE liczby Syne (jak pulpit) */
.wb130-kpi-value {
  font-family: 'Syne', sans-serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--wb130-paper);
  line-height: 1;
}
.wb130-kpi-value .max-suffix {
  color: rgba(255, 255, 255, 0.4);
  font-size: 18px;
  font-weight: 700;
}

.wb130-kpi-sub {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 6px;
  font-weight: 500;
}

/* === LIGA CELL z medalem === */
.wb130-kpi-liga {
  background: linear-gradient(135deg, rgba(212, 160, 23, 0.18) 0%, rgba(212, 160, 23, 0.05) 100%);
  border: 1px solid rgba(212, 160, 23, 0.32);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
  padding: 16px 20px;
}

.wb130-medal {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 12px rgba(212, 160, 23, 0.35));
}

.wb130-liga-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.wb130-liga-label {
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.wb130-liga-name {
  font-family: 'Syne', sans-serif;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--wb130-paper);
  line-height: 1.05;
}
.wb130-liga-progress-track {
  margin-top: 6px;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--r-full);
  overflow: hidden;
}
.wb130-liga-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--wb130-gold), var(--amber-mid));
  border-radius: var(--r-full);
  transition: width 0.6s ease;
}
.wb130-liga-next {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 4px;
  font-weight: 500;
}
.wb130-liga-next strong {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
}

@media (max-width: 768px) {
  .wb130-hero { padding: 22px 22px; }
  .wb130-hero-name { font-size: 26px; }
  .wb130-kpi-value { font-size: 26px; }
  .wb130-liga-name { font-size: 18px; }
}

/* ============================================================
   [DZIŚ#2 Etap4 2026-05-28] GAMIFICATION HERO (mockup-day-v2 → produkcja)
   Duży lvl-card (medal+gwiazdki+progress+ścieżka) + 2×2 stat tiles.
   Zasilane z WadsXPv15.computeLevelState(total) — realny XP (7090 → Pro 3/3).
   ============================================================ */
/* Dark: spłaszcz outer hero — greeting na dark bg, purpura przenosi się do .gh-card (jak mockup) */
[data-theme="dark"] .wb130-hero{
  background:transparent !important;
  box-shadow:none !important;
  padding:4px 0 0 !important;
  overflow:visible !important;
}
[data-theme="dark"] .wb130-hero::before,
[data-theme="dark"] .wb130-hero::after{ display:none !important; }

.gh-gam{ display:grid; grid-template-columns:1.55fr 1fr; gap:14px; position:relative; z-index:1; }
@media(max-width:880px){ .gh-gam{ grid-template-columns:1fr; } }

/* ── LEVEL CARD ── */
.gh-card{
  background:linear-gradient(135deg,#2a1c3d 0%,#1c1f26 62%);
  border:1px solid var(--d-bd,#3a3d45);
  border-radius:18px; padding:22px 24px; position:relative; overflow:hidden;
}
.gh-card::before{ content:''; position:absolute; top:-60px; right:-50px; width:240px; height:240px; background:radial-gradient(circle,rgba(168,85,247,.20),transparent 70%); pointer-events:none; }
.gh-top{ display:flex; align-items:center; gap:16px; position:relative; z-index:1; }
.gh-medal{ width:72px; height:72px; border-radius:50%; flex-shrink:0; display:grid; place-items:center; background:conic-gradient(#facc15 0% 92%, rgba(255,255,255,.04) 92% 100%); position:relative; }
.gh-medal::after{ content:''; position:absolute; inset:-4px; border-radius:50%; background:radial-gradient(circle,rgba(250,204,21,.3),transparent 70%); animation:ghMedalGlow 3s ease-in-out infinite; }
@keyframes ghMedalGlow{0%,100%{opacity:.5}50%{opacity:1}}
.gh-medal-in{ width:60px; height:60px; border-radius:50%; background:var(--d-bg-tile,#1c1f26); display:grid; place-items:center; position:relative; z-index:1; }
.gh-medal-in .ti{ font-size:28px; color:#facc15; }
.gh-meta{ flex:1; min-width:0; }
.gh-eyebrow{ font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--d-tx-m,#9ca3af); }
.gh-name{ font-family:'Syne',sans-serif; font-size:28px; font-weight:800; line-height:1; margin:3px 0 0; background:linear-gradient(135deg,#facc15,#fb923c); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ── STARS ── */
.gh-stars{ display:flex; gap:10px; margin-top:16px; position:relative; z-index:1; }
.gh-star{ width:54px; height:54px; border-radius:14px; display:grid; place-items:center; position:relative; transition:all .3s; background:rgba(0,0,0,.22); border:2px dashed rgba(255,255,255,.16); }
.gh-star.filled{ background:linear-gradient(135deg,rgba(253,224,71,.25),rgba(217,119,6,.15)); border:2px solid #d97706; box-shadow:inset 0 0 16px rgba(253,224,71,.3),0 2px 8px rgba(217,119,6,.25); }
.gh-star.ultimate{ background:linear-gradient(135deg,#fde68a,#f59e0b 50%,#92400e); border:3px solid #fbbf24; box-shadow:0 0 38px rgba(251,191,36,.6),inset 0 0 18px rgba(251,191,36,.5); animation:ghPulseGold 2.2s ease-in-out infinite; }
.gh-star.ultimate::before{ content:'→'; position:absolute; top:-7px; right:-9px; width:22px; height:22px; background:#d97706; color:#fff; border-radius:50%; font-size:13px; font-weight:800; display:grid; place-items:center; z-index:2; animation:ghBounce 1s ease-in-out infinite; }
@keyframes ghPulseGold{0%,100%{box-shadow:0 0 38px rgba(251,191,36,.55),inset 0 0 18px rgba(251,191,36,.4);transform:scale(1)}50%{box-shadow:0 0 55px rgba(251,191,36,.85),inset 0 0 26px rgba(251,191,36,.6);transform:scale(1.06)}}
@keyframes ghBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.gh-star svg{ width:30px; height:30px; }
.gh-star.pop{ animation:ghStarPop .6s cubic-bezier(.34,1.56,.64,1); }
@keyframes ghStarPop{0%{transform:scale(.3);opacity:0}55%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}

/* ── PROGRESS ── */
.gh-prog{ margin-top:18px; position:relative; z-index:1; }
.gh-prog-top{ display:flex; justify-content:space-between; align-items:baseline; font-size:11px; margin-bottom:6px; color:#fff; }
.gh-prog-top b{ font-family:'Syne',sans-serif; font-size:13px; }
.gh-muted{ color:var(--d-tx-m,#9ca3af); }
.gh-prog-bar{ height:8px; background:rgba(255,255,255,.04); border-radius:6px; overflow:hidden; position:relative; }
.gh-prog-fill{ height:100%; background:linear-gradient(90deg,#facc15,#fb923c); border-radius:6px; position:relative; overflow:hidden; transition:width .6s ease; }
.gh-prog-fill::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); animation:ghShimmer 2s linear infinite; }
@keyframes ghShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.gh-tip{ font-size:11px; color:var(--d-tx-m,#9ca3af); font-weight:700; margin-top:7px; }
.gh-tip.ready{ color:#facc15; text-shadow:0 0 12px rgba(250,204,21,.4); }

/* ── PATH ── */
.gh-path{ display:flex; align-items:center; margin-top:16px; position:relative; z-index:1; }
.gh-node{ flex:1; text-align:center; position:relative; }
.gh-node::before{ content:''; position:absolute; top:8px; left:-50%; width:100%; height:2px; background:rgba(255,255,255,.10); }
.gh-node:first-child::before{ display:none; }
.gh-node.done::before{ background:linear-gradient(90deg,#d4a017,#facc15); }
.gh-dot{ width:18px; height:18px; border-radius:50%; margin:0 auto; background:var(--d-bg-elev,#252830); border:2px solid var(--d-bd-strong,#4d5058); position:relative; z-index:1; }
.gh-node.done .gh-dot{ background:#d4a017; border-color:#facc15; }
.gh-node.current .gh-dot{ background:#facc15; border-color:#fff; box-shadow:0 0 0 4px rgba(250,204,21,.25),0 0 14px rgba(250,204,21,.6); transform:scale(1.3); }
.gh-node-lbl{ font-size:9px; font-weight:700; color:var(--d-tx-d,#6b7280); margin-top:6px; }
.gh-node.current .gh-node-lbl{ color:#facc15; }
.gh-node.done .gh-node-lbl{ color:var(--d-tx-m,#9ca3af); }

/* ── STAT TILES 2×2 ── */
.gh-stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gh-stat{ background:var(--d-bg-tile,#1c1f26); border:1px solid var(--d-bd,#3a3d45); border-radius:14px; padding:14px 15px; transition:transform .15s,border-color .15s; min-height:104px; display:flex; flex-direction:column; }
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .gh-stat:hover{ transform:translateY(-2px); border-color:var(--d-bd-strong,#4d5058); } }
.gh-stat-ico{ width:30px; height:30px; border-radius:9px; display:grid; place-items:center; margin-bottom:9px; }
.gh-stat-ico .ti{ font-size:17px; }
.gh-stat-val{ font-family:'Syne',sans-serif; font-size:24px; font-weight:800; line-height:1; letter-spacing:-.02em; color:#fff; }
.gh-stat-sub{ font-size:13px; color:var(--d-tx-m,#9ca3af); font-weight:700; }
.gh-stat-lbl{ font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--d-tx-m,#9ca3af); margin-top:5px; }
.gh-stat-foot{ font-size:10px; color:var(--d-tx-d,#6b7280); margin-top:3px; }
.ico-xp{ background:rgba(252,76,2,.16); } .ico-xp .ti{ color:#fc4c02; }
.ico-streak{ background:rgba(251,113,133,.16); } .ico-streak .ti{ color:#fb7185; animation:ghFlame 1.8s ease-in-out infinite; }
@keyframes ghFlame{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.12) rotate(2deg)}}
.ico-badge{ background:rgba(168,85,247,.16); } .ico-badge .ti{ color:#a855f7; }
.ico-shield{ background:rgba(6,182,212,.16); } .ico-shield .ti{ color:#06b6d4; }

@media(max-width:768px){
  .gh-card{ padding:18px 18px; }
  .gh-name{ font-size:24px; }
  .gh-medal{ width:62px; height:62px; } .gh-medal-in{ width:52px; height:52px; }
  .gh-star{ width:46px; height:46px; } .gh-star svg{ width:26px; height:26px; }
  .gh-stat-val{ font-size:22px; }
  .gh-stat{ min-height:96px; }
}

/* [DZIŚ#2 Etap4] Baner sync „Brakuje dziś" — była jasna wyspa (białe tło) w dark.
   Ściemniamy tło/tekst/✕, zachowując amber-akcent (ikona !, lewy border, CTA). */
[data-theme="dark"] #v211-sync-banner,
[data-theme="dark"] .v211-banner{
  background:var(--d-bg-tile) !important;
  border-color:var(--d-bd) !important;
  border-left-color:#fbbf24 !important;
}
[data-theme="dark"] .v211-banner-title{ color:#fbbf24 !important; }
[data-theme="dark"] .v211-banner-btn{ color:#0a0a0a !important; }   /* [RC A8-02] „Zsynchronizuj →” ciemny tekst na amber #fbbf24: biały 1,66:1 → 11,9:1 (wzorzec D4a / D-VA4-2) */
[data-theme="dark"] .v211-banner-content,
[data-theme="dark"] .v211-banner-items,
[data-theme="dark"] .v211-banner-item{ color:var(--d-tx) !important; }
[data-theme="dark"] .v211-banner-close{
  background:rgba(255,255,255,.04) !important; color:var(--d-tx-m) !important;
}
[data-theme="dark"] .v211-banner-close:hover{ background:rgba(255,255,255,.16) !important; color:var(--d-tx) !important; }

/* ============================================================
   [DZIŚ#2 Blok B 2026-05-28] PLAN DNIA — karty multi-trening (grid auto-fill, mockup-day-v2).
   Zachowuje accordion (header klik → body z formularzami). Rozwinięta karta = pełny rząd.
   Accent/ikona per rodzaj/typ przez inline --pt-accent (z renderPlan). Mobile = 1 kolumna.
   ============================================================ */
/* Flatten kontenera planu w dark — karty siedzą na dark bg jak w mockupie */
[data-theme="dark"] .wb130-plan{ background:transparent !important; border:none !important; padding:0 !important; }
[data-theme="dark"] .wb130-section-head{ padding:0 2px 4px; }
/* Grid kart (oba theme — layout) */
/* [E1.3 2026-08-07] Plan dnia = pionowa OŚ-kręgosłup (koniec masonry grid). Chronologia góra-dół + linia łącząca + kropki-węzły. Rozwijanie zadań (point-body) nietknięte. */
.wb130-tl{ display:flex !important; flex-direction:column; gap:10px !important; position:relative; padding-left:28px; }
.wb130-tl::before{ content:''; position:absolute; left:5px; top:18px; bottom:18px; width:2px; background:var(--d-bd,#262b33); z-index:0; }
.wb130-point{ position:relative; z-index:1; }
.wb130-point::after{ content:''; position:absolute; left:-29px; top:19px; width:12px; height:12px; border-radius:50%; background:var(--d-bg-tile,#14181f); border:2.5px solid var(--d-bd-strong,#333a45); z-index:3; }
.wb130-point.is-now::after{ border-color:#fc4c02; background:#fc4c02; box-shadow:0 0 0 3px rgba(252,76,2,.22); }
.wb130-point.is-done::after{ border-color:#22c55e; background:#22c55e; }
.wb130-point.is-expanded{ grid-column:auto; }
@media(max-width:768px){ .wb130-tl{ padding-left:24px; } .wb130-point::after{ left:-25px; } }
/* [E1.3+ 2026-08-07] Wzmocniona oś + bogate meta treningu (chipy) + responsywność */
.wb130-tl::before{ width:2.5px !important; background:var(--d-bd-strong,#333a45) !important; }
.wb130-point::after{ width:14px !important; height:14px !important; border-width:3px !important; }
.wb130-point-meta{ display:flex; flex-wrap:wrap; gap:5px 12px; margin-top:5px; }
.wb130-meta-i{ display:inline-flex; align-items:center; gap:5px; font-size:12px; color:var(--d-tx-m,#aab2bd); min-width:0; }
.wb130-meta-i i{ font-size:14px; color:var(--d-tx-d,#717a86); flex-shrink:0; }
.wb130-meta-i b{ color:var(--d-tx,#eef1f5); font-weight:600; }
@media(max-width:768px){ .wb130-point-meta .opt{ display:none; } }
/* [E1 node 2026-08-07] Budowa węzła jak mockup: [godzina] [oś-kropka] [karta]. Wrapper .wb130-point = przezroczysty; karta = .wb130-node-card. Neutralizuje starą oś (::before/::after/padding). */
.wb130-tl{ padding-left:0 !important; }
.wb130-tl::before{ display:none !important; }
.wb130-point{ border:none !important; background:transparent !important; overflow:visible !important; box-shadow:none !important; }
.wb130-point::after{ display:none !important; }
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-point:hover{ transform:none !important; } }
.wb130-node{ display:grid; grid-template-columns:52px 26px minmax(0,1fr); align-items:stretch; }
.wb130-node-time{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:var(--d-tx-d,#717a86); text-align:right; padding:17px 10px 0 0; white-space:nowrap; }
.wb130-node-rail{ position:relative; display:flex; justify-content:center; }
.wb130-node-line{ position:absolute; top:16px; left:50%; transform:translateX(-50%); width:2.5px; height:calc(100% + 8px); background:var(--d-bd-strong,#333a45); }
.wb130-point:last-child .wb130-node-line{ display:none; }
.wb130-node-dot{ position:relative; z-index:2; width:15px; height:15px; border-radius:50%; margin-top:15px; background:var(--d-bg-tile,#14181f); border:3px solid var(--d-bd-strong,#333a45); }
.wb130-point.is-now .wb130-node-dot{ background:#fc4c02; border-color:#fc4c02; box-shadow:0 0 0 4px rgba(252,76,2,.22); }
.wb130-point.is-now .wb130-node-line{ background:linear-gradient(180deg,#fc4c02,var(--d-bd-strong,#333a45)); }
.wb130-point.is-done .wb130-node-dot{ background:#22c55e; border-color:#22c55e; }
.wb130-point.is-done .wb130-node-line{ background:#22c55e; }
.wb130-node-card{ border:1px solid var(--d-bd,#262b33); border-radius:14px; background:var(--d-bg-tile,#14181f); overflow:hidden; margin:6px 0; }
.wb130-point.is-now .wb130-node-card{ border-color:rgba(252,76,2,.4); background:linear-gradient(150deg,rgba(252,76,2,.07),var(--d-bg-tile,#14181f)); }
.wb130-point.is-done .wb130-node-card{ border-color:rgba(34,197,94,.3); opacity:.72; }
[data-theme="dark"] .wb130-point-header{ grid-template-columns:1fr auto !important; gap:12px !important; padding:13px 16px !important; }
@media(max-width:768px){ .wb130-node{ grid-template-columns:44px 22px minmax(0,1fr); } .wb130-node-time{ font-size:11px; padding-right:7px; } }
/* [E1 node polish 2026-08-07] Premium dopieszczenie: godzina+kropka wyrównane do wysokości tytułu, karty zwarte, subtelny hover, „zrobione" mniej przygaszone, ciaśniejszy rytm. */
.wb130-node-time{ padding-top:15px !important; }
.wb130-node-dot{ margin-top:15px !important; }
[data-theme="dark"] .wb130-point-header{ padding:12px 16px !important; }
.wb130-point-meta{ margin-top:4px !important; }
.wb130-node-card{ transition:border-color .15s ease, box-shadow .15s ease; }
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-point:not(.is-now):not(.is-done) .wb130-node-card:hover{ border-color:var(--d-bd-strong,#333a45); box-shadow:0 2px 12px rgba(0,0,0,.25); } }
.wb130-point.is-done .wb130-node-card{ opacity:.82 !important; }
/* [SKIP 2026-08-14] Mój dzień — trening pominięty (amber + „Nie było", spójnie z kalendarzem) */
.wb130-point.is-skipped .wb130-node-card{ border-color:rgba(255,159,10,.4) !important; border-left:3px solid #ff9f0a !important; background:rgba(255,159,10,.05) !important; opacity:.9 !important; }
.wb130-point.is-skipped .wb130-point-title{ text-decoration:line-through; text-decoration-color:rgba(255,159,10,.55); color:var(--d-m,#aab2bd); }
.wb130-point.is-skipped .wb130-point-type-icon{ background:rgba(255,159,10,.14) !important; color:#ff9f0a !important; }
.wb130-status-pill.is-skipped{ background:rgba(255,159,10,.16); color:#ffb340; border:1px solid rgba(255,159,10,.3); }
.wb130-tf-skipbar{ display:flex; align-items:flex-start; gap:8px; background:rgba(255,159,10,.08); border:1px solid rgba(255,159,10,.28); border-radius:10px; padding:9px 12px; font-size:12px; color:var(--d-m,#aab2bd); line-height:1.5; }
.wb130-tf-skipbar i{ color:#ff9f0a; font-size:16px; flex:0 0 auto; margin-top:1px; }
.wb130-tf-skipbar b{ color:#ffb340; }
.wb130-tl{ gap:9px !important; }
/* godzina odrobinę jaśniejsza dla czytelności */
.wb130-node-time{ color:var(--d-tx-m,#aab2bd) !important; }
/* Karta: zaokrąglenie, accent per typ, hover lift (dark) */
[data-theme="dark"] .wb130-point{
  border-radius:14px !important; border-left-width:3px !important;
  border-left-color:var(--pt-accent,var(--d-bd)) !important;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ [data-theme="dark"] .wb130-point:not(.is-expanded):not(.is-done):hover{ transform:translateY(-2px); border-color:var(--d-bd-strong) !important; } }
[data-theme="dark"] .wb130-point.is-done{ border-left-color:#22c55e !important; }
[data-theme="dark"] .wb130-point.is-now{ border-left-color:#fc4c02 !important; box-shadow:0 0 0 1px rgba(252,76,2,.15) !important; }
/* Ikona typu jako Tabler font (zamiast SVG) */
.wb130-point-type-icon .ti{ font-size:15px; line-height:1; }
/* Wąskie karty w gridzie: ciaśniejszy nagłówek + podtytuł w jednej linii (ellipsis) */
[data-theme="dark"] .wb130-point-header{ grid-template-columns:58px 1fr auto; gap:14px; } /* [E1.3+ 2026-08-07] szersza kolumna godziny + gap → godzina nie nachodzi na ikonę */
[data-theme="dark"] .wb130-point-time{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; } /* godzina mono (WADS DNA dla czasu), spójna z osią */
[data-theme="dark"] .wb130-point .wb130-point-sub{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
[data-theme="dark"] .wb130-point-status{ flex-wrap:wrap; justify-content:flex-end; gap:6px; row-gap:5px; }
/* „Później" = szum na karcie (jak mockup: tylko XP + Teraz/✓). Zwalnia miejsce na tytuł. */
[data-theme="dark"] .wb130-status-pill.is-pending{ display:none; }
[data-theme="dark"] .wb130-point-title{ font-size:14px; }

/* ============================================================
   [E2 2026-08-07] MÓJ DZIEŃ — 2 KOLUMNY (komputer) + „Jak rosnę" (prawa)
   ≥1000px: dzień po lewej (oś węższa → karty wypełnione), „Jak rosnę" po prawej (sticky).
   <1000px (iPad portrait / telefon): jeden stos — dzień, pod nim „Jak rosnę".
   Motywacja przez LUSTRO POSTĘPU (forma/technika/rekordy), nie przez punkty.
   ============================================================ */
.wb130-2col{ display:block; }
@media(min-width:1000px){
  .wb130-2col{ display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); gap:22px; align-items:start; }
  .wb130-col-aside{ position:sticky; top:14px; }
}
@media(max-width:999px){ .wb130-col-aside{ margin-top:18px; } }
.wb130-grow{ display:flex; flex-direction:column; gap:14px; }
.wg-card{ background:var(--d-bg-tile,#14181f); border:1px solid var(--d-bd,#262b33); border-radius:16px; padding:16px 18px; }
.wg-head{ display:flex; align-items:center; gap:9px; font-family:'Syne',sans-serif; font-weight:800; font-size:15px; color:var(--d-tx,#eef1f5); margin:0 0 2px; }
.wg-head .ti{ font-size:18px; color:#64d2ff; }
.wg-eyebrow{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--d-tx-d,#717a86); font-weight:600; }
.wg-forma-num{ font-family:'Syne',sans-serif; font-weight:800; font-size:34px; line-height:1; color:#64d2ff; }
.wg-spark{ display:flex; align-items:flex-end; gap:4px; height:44px; margin-top:12px; }
.wg-spark span{ flex:1; background:linear-gradient(180deg,#64d2ff,rgba(100,210,255,.28)); border-radius:3px 3px 0 0; min-height:6px; }
.wg-trend{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; }
.wg-trend .ti{ font-size:15px; }
.wg-tech-row{ display:grid; grid-template-columns:78px 1fr 30px; align-items:center; gap:10px; margin:9px 0; }
.wg-tech-lbl{ font-size:12.5px; color:var(--d-tx-m,#aab2bd); }
.wg-tech-bar{ height:7px; border-radius:4px; background:var(--d-bg-elev,#1c2129); overflow:hidden; }
.wg-tech-fill{ height:100%; border-radius:4px; background:linear-gradient(90deg,#5e5ce6,#bf5af2); }
.wg-tech-val{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:var(--d-tx,#eef1f5); text-align:right; }

/* [Etap 4 2026-08-08] RUTYNY DNIA — checklist nawyków pod planem (uczy sumienności/rutyn) */
/* [Zaległości 2026-08-08] Karta niedomkniętych treningów z przeszłych dni — na górze DZIŚ. Amber (ostrzeżenie, nie alarm). */
.wb130-overdue{ background:linear-gradient(150deg,rgba(255,159,10,.13),rgba(255,159,10,.04)); border:1px solid rgba(255,159,10,.34); border-radius:16px; padding:13px 15px 12px; margin:0 0 14px; }
.wb130-ov-head{ display:flex; align-items:center; gap:9px; margin-bottom:3px; }
.wb130-ov-ic{ width:26px; height:26px; flex:0 0 26px; border-radius:8px; background:rgba(255,159,10,.18); color:#ffb340; display:flex; align-items:center; justify-content:center; font-size:16px; }
.wb130-ov-title{ font-family:'Syne',sans-serif; font-weight:800; font-size:15px; color:var(--d-tx,#eef1f5); letter-spacing:-.01em; }
.wb130-ov-count{ margin-left:auto; font-size:11px; font-weight:800; color:#ffb340; background:rgba(255,159,10,.14); border:1px solid rgba(255,159,10,.3); border-radius:20px; padding:2px 10px; white-space:nowrap; }
.wb130-ov-desc{ font-size:11.5px; color:var(--d-tx-m,#aab2bd); line-height:1.45; margin:0 0 11px 35px; }
.wb130-ov-day{ font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--d-tx-d,#717a86); margin:9px 0 7px 2px; }
.wb130-ov-item{ display:flex; align-items:center; gap:10px; background:var(--d-bg-tile,#14181f); border:1px solid var(--d-bd-soft,#20252d); border-radius:12px; padding:9px 11px; margin-bottom:8px; }
.wb130-ov-dot{ width:9px; height:9px; flex:0 0 9px; border-radius:50%; border:2px solid #ffb340; box-sizing:border-box; }
.wb130-ov-time{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:var(--d-tx-m,#aab2bd); flex:0 0 auto; min-width:38px; }
.wb130-ov-name{ flex:1; min-width:0; font-size:13px; font-weight:600; color:var(--d-tx,#eef1f5); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wb130-ov-acts{ display:flex; gap:6px; flex:0 0 auto; }
.wb130-ov-btn{ font-size:11px; font-weight:700; border-radius:8px; padding:6px 11px; border:1px solid; cursor:pointer; white-space:nowrap; font-family:inherit; }
.wb130-ov-btn.fill{ background:var(--brand,#fc4c02); border-color:var(--brand,#fc4c02); color:#fff; }
.wb130-ov-btn.ghost{ background:transparent; border-color:var(--d-bd,#262b33); color:var(--d-tx-m,#aab2bd); }
.wb130-ov-more{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--d-tx-d,#717a86); font-weight:600; padding:7px 2px 2px; cursor:pointer; }
.wb130-ov-more i{ font-size:14px; }
@media(max-width:560px){ .wb130-ov-desc{ margin-left:0; } .wb130-ov-btn{ padding:6px 9px; } .wb130-ov-time{ min-width:34px; } }
/* [RC-AUDYT-WIZ P1-01] telefon: karta zaległości nie może być szersza niż ekran (kolumna flex z align-items:flex-start rozpychała ją do szerokości treści → „Nie było” poza ekranem). Akcje w drugim wierszu, na całą szerokość. */
.wb130-overdue{ align-self:stretch; min-width:0; max-width:100%; box-sizing:border-box; }
@media(max-width:560px){ .wb130-ov-item{ flex-wrap:wrap; row-gap:8px; } .wb130-ov-name{ flex:1 1 0; } .wb130-ov-acts{ flex:1 1 100%; } .wb130-ov-acts .wb130-ov-btn{ flex:1 1 0; } }
/* [Etap 3 2026-08-09] Bogaty blok treningu — Misja / Jak mocno / Co spakować (odhaczanie) / Od trenera. Desktop = 2 kolumny. */
.wb130-tf{ display:flex; flex-direction:column; }
.wb130-tf-sec{ margin-top:13px; }
.wb130-tf-secl{ display:flex; align-items:center; gap:6px; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--d-tx-d,#717a86); margin-bottom:6px; }
.wb130-tf-secl i{ font-size:13px; }
.wb130-tf-mission{ background:linear-gradient(135deg,rgba(252,76,2,.12),rgba(255,128,0,.03)); border:1px solid rgba(252,76,2,.25); border-radius:11px; padding:11px 13px; font-size:14px; font-weight:700; line-height:1.35; color:var(--d-tx,#eef1f5); }
.wb130-tf-mission span{ color:#ff8000; }
.wb130-tf-mission-soft{ background:var(--d-bg-elev,#1c2129); border-color:var(--d-bd-soft,#20252d); font-weight:600; color:var(--d-tx-m,#aab2bd); }
.wb130-tf-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.wb130-tf-chip{ font-size:12px; font-weight:600; background:var(--d-bg-elev,#1c2129); border:1px solid var(--d-bd-soft,#20252d); border-radius:8px; padding:5px 10px; color:var(--d-tx-m,#aab2bd); display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.wb130-tf-chip i{ font-size:13px; color:var(--d-tx-d,#717a86); }
.wb130-tf-rpe{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; padding:2px 7px; border-radius:6px; background:rgba(48,209,88,.14); color:#5be584; }
.wb130-tf-auto{ font-size:8.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:#64d2ff; background:rgba(100,210,255,.12); border:1px solid rgba(100,210,255,.25); border-radius:5px; padding:1px 5px; margin-left:6px; }
.wb130-tf-pack-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.wb130-tf-pack-cnt{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:#30d158; }
.wb130-tf-pack{ display:flex; flex-direction:column; gap:4px; }
.wb130-tf-pk{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--d-tx-m,#aab2bd); padding:7px 9px; border-radius:9px; background:var(--d-bg-elev,#1c2129); border:1px solid var(--d-bd-soft,#20252d); cursor:pointer; min-height:40px; }
.wb130-tf-box{ width:20px; height:20px; flex:0 0 20px; border-radius:6px; border:2px solid var(--d-tx-d,#717a86); display:flex; align-items:center; justify-content:center; font-size:12px; color:transparent; }
.wb130-tf-pk.on{ color:var(--d-tx-d,#717a86); }
.wb130-tf-pk.on .wb130-tf-box{ background:#30d158; border-color:#30d158; color:#04210f; }
.wb130-tf-pk.on .wb130-tf-lbl{ text-decoration:line-through; text-decoration-color:rgba(255,255,255,.25); }
.wb130-tf-pk.wb130-tf-pk-ro{ cursor:default; }   /* [RC K8 RODZIC] lista tylko do odczytu (rodzic) */
.wb130-tf-coach{ display:flex; gap:10px; align-items:flex-start; background:rgba(139,137,255,.08); border:1px solid rgba(139,137,255,.22); border-radius:11px; padding:11px 12px; }
.wb130-tf-coach-ic{ width:26px; height:26px; flex:0 0 26px; border-radius:50%; background:rgba(139,137,255,.2); color:#b0aeff; display:flex; align-items:center; justify-content:center; font-size:14px; }
.wb130-tf-coach-tx{ font-size:12.5px; color:var(--d-tx,#eef1f5); line-height:1.45; }
.wb130-tf-coach-tx b{ color:#b0aeff; font-weight:700; font-size:10px; text-transform:uppercase; letter-spacing:.04em; display:block; margin-bottom:2px; }
.wb130-tf-exec{ width:100%; margin-top:14px; }
@media(min-width:900px){
  .wb130-tf{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
  .wb130-tf-exec{ grid-column:1/-1; }
}
.wb130-rout{ background:var(--d-bg-tile,#14181f); border:1px solid var(--d-bd,#262b33); border-radius:16px; padding:16px 18px; margin-top:4px; }
.wb130-rout-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.wb130-rout-t{ font-family:'Syne',sans-serif; font-weight:800; font-size:16px; display:flex; align-items:center; gap:8px; }
.wb130-rout-t .ti{ color:#30d158; font-size:19px; }
.wb130-rout-cnt{ font-size:12px; font-weight:800; color:#30d158; background:rgba(48,209,88,.12); border:1px solid rgba(48,209,88,.28); border-radius:999px; padding:3px 11px; }
.wb130-rout-sub{ font-size:11.5px; color:var(--d-tx-d,#717a86); margin-bottom:8px; }
.wb130-rout-list{ display:flex; flex-direction:column; }
.wb130-rout-item{ display:flex; align-items:center; gap:12px; padding:11px 2px; border-bottom:1px solid var(--d-bd-soft,#20252d); cursor:pointer; transition:opacity .15s; }
.wb130-rout-item:last-child{ border-bottom:none; }
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-rout-item:hover{ opacity:.85; } }
.wb130-rout-check{ width:24px; height:24px; border-radius:7px; border:2px solid var(--d-bd-strong,#333a45); flex:0 0 24px; display:flex; align-items:center; justify-content:center; font-size:15px; color:transparent; transition:all .15s; }
.wb130-rout-item.done .wb130-rout-check{ background:#30d158; border-color:#30d158; color:#fff; }
.wb130-rout-lbl{ flex:1; font-size:13.5px; color:var(--d-tx,#eef1f5); }
.wb130-rout-item.done .wb130-rout-lbl{ color:var(--d-tx-d,#717a86); text-decoration:line-through; }
.wb130-rout-cat{ font-size:10px; color:var(--d-tx-d,#717a86); background:var(--d-bg-elev,#1c2129); border:1px solid var(--d-bd-soft,#20252d); border-radius:6px; padding:2px 8px; white-space:nowrap; }
.wb130-rout-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; padding-top:12px; border-top:1px dashed var(--d-bd,#262b33); font-size:12px; color:var(--d-tx-m,#aab2bd); }
.wb130-rout-foot b{ color:var(--d-tx,#eef1f5); }
.wb130-rout-lnk{ color:#64d2ff; font-weight:600; cursor:pointer; }

/* ============================================================
   [DZIŚ#2 Blok C 2026-05-28] ANIMACJE GAMIFIKACJI (mockup-day-v2 → produkcja)
   XP toast (przy zdobyciu) · pop gwiazdki (wads-star-earned) · modal AWANS+konfetti (wads-level-up).
   Podpięte pod realne eventy WadsXPv15 przez WadsDayFX (skrypt przed </body>).
   ============================================================ */
.wfx-toast{ position:fixed; left:50%; top:42%; transform:translate(-50%,-50%); font-family:'Syne',sans-serif; font-size:46px; font-weight:800; color:#facc15; text-shadow:0 0 30px rgba(250,204,21,.7); pointer-events:none; opacity:0; z-index:99999; }
.wfx-toast.go{ animation:wfxFloat 1.6s ease-out; }
@keyframes wfxFloat{0%{opacity:0;transform:translate(-50%,-30%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-130%) scale(1)}}
.wfx-overlay{ position:fixed; inset:0; background:rgba(10,10,11,.85); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; z-index:99998; padding:20px; }
.wfx-overlay.on{ display:flex; animation:wfxFade .3s; }
@keyframes wfxFade{from{opacity:0}to{opacity:1}}
.wfx-modal{ background:linear-gradient(135deg,#1a1338,#4a2c7a); border:2px solid #fbbf24; border-radius:24px; padding:40px 36px; text-align:center; max-width:420px; width:100%; box-shadow:0 0 80px rgba(251,191,36,.4); position:relative; animation:wfxPop .5s cubic-bezier(.34,1.56,.64,1); }
@keyframes wfxPop{0%{transform:scale(.7);opacity:0}100%{transform:scale(1);opacity:1}}
.wfx-medal{ width:100px; height:100px; margin:0 auto 18px; border-radius:50%; background:linear-gradient(135deg,#d4e7f0,#6b8da3 50%,#1e3a5f); display:grid; place-items:center; font-family:'Syne',sans-serif; font-weight:800; font-size:48px; color:#fff; box-shadow:0 0 60px rgba(107,141,163,.6); border:4px solid #fff; animation:wfxSpin 1s ease-out; }
@keyframes wfxSpin{0%{transform:rotate(-180deg) scale(.3);opacity:0}100%{transform:rotate(0) scale(1);opacity:1}}
.wfx-title{ font-family:'Syne',sans-serif; font-size:40px; font-weight:800; letter-spacing:-1px; background:linear-gradient(135deg,#fde68a,#fbbf24,#f59e0b); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:6px; }
.wfx-sub{ font-size:13px; color:rgba(255,255,255,.8); letter-spacing:1px; text-transform:uppercase; font-weight:700; margin-bottom:22px; }
.wfx-trans{ display:flex; align-items:center; gap:18px; justify-content:center; margin-bottom:24px; }
.wfx-old{ font-family:'Syne',sans-serif; font-size:20px; font-weight:800; color:#d4a017; text-decoration:line-through; opacity:.5; }
.wfx-arrow{ font-size:26px; color:#fbbf24; }
.wfx-new{ font-family:'Syne',sans-serif; font-size:28px; font-weight:800; background:linear-gradient(135deg,#facc15,#fb923c); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.wfx-btn{ background:#fff; color:#1a1338; padding:13px 26px; border-radius:12px; font-weight:800; font-size:14px; border:none; cursor:pointer; font-family:'Inter',sans-serif; }
.wfx-confetti{ position:absolute; width:8px; height:8px; top:-10px; opacity:0; border-radius:1px; }
.wfx-overlay.on .wfx-confetti{ animation:wfxConfetti 2.5s linear infinite; }
@keyframes wfxConfetti{0%{opacity:1;transform:translateY(-10px) rotate(0)}100%{opacity:0;transform:translateY(620px) rotate(540deg)}}

/* ============================================================
   PLAN DNIA — biala karta na cream bg
   ============================================================ */
.wb130-plan {
  background: var(--wb130-paper);
  border: 1px solid var(--wb130-cream3);
  border-radius: var(--r-lg);
  padding: 24px 28px;
}
@media (max-width: 768px) {
  .wb130-plan { padding: 18px 20px; }
}

.wb130-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--wb130-cream3);
}
.wb130-section-title {
  font-family: 'Syne', sans-serif;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--wb130-ink);
}
.wb130-section-meta {
  font-family: 'Syne', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--wb130-ink5);
}

.wb130-tl {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}

/* === Timeline point === */
.wb130-point {
  position: relative;
  border: 1px solid var(--wb130-cream3);
  border-left-width: 3px;
  border-left-color: var(--wb130-cream3);
  border-radius: var(--r-md);
  background: var(--wb130-cream);
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
  overflow: hidden;
}
.wb130-point.is-done {
  background: var(--green-lightest);
  border-color: rgba(22, 101, 52, 0.25);
  border-left-color: var(--wb130-green2);
}
.wb130-point.is-now {
  background: var(--wb130-paper);
  border-color: var(--wb130-purple);
  border-left-color: var(--wb130-purple);
  border-left-width: 4px;
  box-shadow: var(--shadow-md), var(--glow-purple);
}

.wb130-point-header {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
}
.wb130-point-time {
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--wb130-ink);
}
.wb130-point-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wb130-point-title {
  font-family: 'Syne', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--wb130-ink);
  letter-spacing: -0.01em;
}
.wb130-point-sub {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--wb130-ink5);
}

.wb130-point-status {
  display: flex;
  align-items: center;
  gap: 10px;
}
.wb130-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: var(--r-full);
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.wb130-status-pill.is-done {
  background: var(--wb130-green2);
  color: var(--wb130-paper);
}
.wb130-status-pill.is-now {
  background: var(--wb130-purple);
  color: var(--wb130-paper);
}
.wb130-status-pill.is-pending {
  background: var(--wb130-cream2);
  color: var(--wb130-ink5);
}
.wb130-xp-pill {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 9px;
  border-radius: var(--r-full);
  font-family: 'Syne', sans-serif;
  font-size: 11px;
  font-weight: 800;
  background: var(--wb130-cream2);
  color: var(--wb130-purple);
}
.wb130-xp-pill.is-earned {
  background: var(--wb130-green2);
  color: var(--wb130-paper);
}
.wb130-point-chevron {
  display: inline-block;
  font-size: 16px;
  color: var(--wb130-ink5);
  transition: transform 0.2s;
}
.wb130-point.is-expanded .wb130-point-chevron { transform: rotate(90deg); }

.wb130-point-body {
  max-height: 0;
  overflow: hidden;
  /* [RC BP3-3 BP32-01] zwinięty punkt poza Tab i drzewem dostępności: visibility gaśnie dopiero po animacji zwijania (0,35 s) */
  visibility: hidden;
  transition: max-height 0.35s ease, visibility 0s linear 0.35s;
}
.wb130-point.is-expanded .wb130-point-body { max-height: 4000px; visibility: visible; transition: max-height 0.35s ease, visibility 0s linear 0s; }
.wb130-point-body-inner {
  padding: 18px 22px 22px;
  border-top: 1px solid var(--wb130-cream3);
  background: var(--wb130-paper);
}

@media (max-width: 768px) {
  .wb130-point-header {
    grid-template-columns: 56px 1fr auto;
    gap: 10px;
    padding: 12px 14px;
  }
  .wb130-point-body-inner { padding: 14px; }
}

/* ============================================================
   KAFELKI Morning check-in - 5 kafelkow w grid
   ============================================================ */
.wb130-tiles {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin: 14px 0;
}
@media (max-width: 900px) {
  .wb130-tiles { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .wb130-tiles { grid-template-columns: repeat(2, 1fr); }
}

.wb130-tile {
  background: var(--wb130-paper);
  border: 2px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  padding: 14px 12px;
  cursor: pointer;
  transition: all 0.15s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-height: 100px;
  justify-content: center;
  text-align: center;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-tile:hover {
  border-color: var(--wb130-purple);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md), var(--glow-purple);
} }
.wb130-tile.is-filled {
  background: var(--wb130-cream);
}
.wb130-tile-label {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--wb130-ink5);
}
.wb130-tile-value {
  font-family: 'Syne', sans-serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}
.wb130-tile-value.is-empty {
  color: var(--wb130-cream4);
}
.wb130-tile-desc {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: var(--wb130-ink3);
  line-height: 1.3;
  min-height: 14px;
}

/* === Tile expansion (akordeon) === */
.wb130-tile-detail {
  grid-column: 1 / -1;
  margin-top: 4px;
  background: var(--wb130-paper);
  border: 2px solid var(--wb130-purple);
  border-radius: var(--r-md);
  padding: 20px 22px;
  display: none;
  position: relative;
  animation: wb60TileSlide 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.wb130-tile-detail.is-active { display: block; }

@keyframes wb60TileSlide {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

.wb130-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--wb130-cream3);
}
.wb130-detail-title {
  font-family: 'Syne', sans-serif;
  font-size: 15px;
  font-weight: 800;
  color: var(--wb130-ink);
  letter-spacing: -0.01em;
}
.wb130-detail-current {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.wb130-detail-num {
  font-family: 'Syne', sans-serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.wb130-detail-max {
  font-family: 'Syne', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--wb130-ink5);
}

/* === KLIKALNE LICZBY 1-10 z kolorystyka semantyczna (z app.html) === */
.wb130-pick-row {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 4px;
  margin-bottom: 14px;
}
@media (max-width: 480px) {
  .wb130-pick-row { gap: 3px; }
}
.wb130-pick-btn {
  padding: 10px 0;
  border: 2px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  background: var(--wb130-paper);
  cursor: pointer;
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
  transition: all 0.15s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-pick-btn:hover {
  border-color: var(--wb130-ink);
  transform: translateY(-1px);
} }
.wb130-pick-btn.is-active {
  background: var(--wb130-ink);
  color: var(--wb130-paper) !important;
  border-color: var(--wb130-ink);
}
/* Kolorystyka semantyczna (z app.html) */
.wb130-pick-btn[data-v="1"], .wb130-pick-btn[data-v="2"] { color: var(--wb130-v1-2); }
.wb130-pick-btn[data-v="3"], .wb130-pick-btn[data-v="4"] { color: var(--wb130-v3-4); }
.wb130-pick-btn[data-v="5"], .wb130-pick-btn[data-v="6"] { color: var(--wb130-v5-6); }
.wb130-pick-btn[data-v="7"], .wb130-pick-btn[data-v="8"] { color: var(--wb130-v7-8); }
.wb130-pick-btn[data-v="9"], .wb130-pick-btn[data-v="10"] { color: var(--wb130-v9-10); }

/* [RC UI suwaki 2026-10-06] martwe style .wb130-slider/.wb130-slider-labels usunięte (0 użyć w markupie i JS) */

/* === Detail current desc === */
.wb130-detail-desc {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--wb130-ink);
  padding: 10px 14px;
  background: var(--wb130-cream);
  border-radius: var(--r-md);
  text-align: center;
  border-left: 3px solid var(--wb130-purple);
  margin-bottom: 14px;
}

.wb130-detail-confirm {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.wb130-btn-confirm {
  background: var(--wb130-ink);
  color: var(--wb130-paper);
  border: none;
  border-radius: var(--r-md);
  padding: 8px 18px;
  font-family: 'Syne', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background 0.15s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-btn-confirm:hover { background: var(--wb130-ink2); } }

.wb130-btn-close {
  background: transparent;
  border: 1px solid var(--wb130-cream3);
  color: var(--wb130-ink5);
  border-radius: var(--r-md);
  padding: 8px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-btn-close:hover { background: var(--wb130-cream); } }

/* === Sleep hours row === */
.wb130-sleep-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  background: var(--wb130-cream);
  border: 1px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  padding: 14px 18px;
  margin-bottom: 16px;
}
.wb130-sleep-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.wb130-sleep-label-title {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--wb130-ink5);
}
.wb130-sleep-label-sub {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: var(--wb130-ink5);
  font-weight: 500;
}
.wb130-sleep-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}
.wb130-sleep-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--wb130-cream3);
  background: var(--wb130-paper);
  color: var(--wb130-ink3);
  font-family: 'Syne', sans-serif;
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-sleep-btn:hover {
  background: var(--wb130-ink);
  border-color: var(--wb130-ink);
  color: var(--wb130-paper);
} }
.wb130-sleep-value {
  font-family: 'Syne', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: var(--wb130-ink);
  min-width: 50px;
  text-align: center;
}

/* === Forms (evening) === */
.wb130-form-field { margin-bottom: 14px; }
.wb130-form-label {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--wb130-ink5);
  margin-bottom: 6px;
}
.wb130-form-textarea {
  width: 100%;
  padding: 10px 14px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  background: var(--wb130-cream);
  border: 1px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  color: var(--wb130-ink);
  resize: vertical;
  min-height: 60px;
  box-sizing: border-box;
}
.wb130-form-textarea:focus {
  outline: none;
  border-color: var(--wb130-purple);
  background: var(--wb130-paper);
}

/* === Save button === */
.wb130-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--wb130-ink);
  color: var(--wb130-paper);
  border: none;
  border-radius: var(--r-md);
  padding: 12px 24px;
  font-family: 'Syne', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
  margin-top: 16px;
  transition: all 0.15s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-save-btn:hover {
  background: var(--wb130-ink2);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
} }
.wb130-save-btn.is-saved {
  background: var(--wb130-green2);
}

/* === [RC CHECKIN-PORANNY 2026-10-06] Poranny check-in: suwaki 1–10 (WadsSuwak, RC MOBILE iOS 2), sen w godzinach, jeden przyklejony zapis.
   Prefiks wbc- (bez kolizji z globalnymi klasami). Kolory skali: tekst ≥ 4.5:1, pasek/obramowanie ≥ 3:1 w obu motywach. === */
.wbc{ --wbc-bg:#ffffff; --wbc-elev:#f3f4f6; --wbc-tile2:#f8fafc; --wbc-bd:#d1d5db; --wbc-bd-soft:#e5e7eb; --wbc-bd-strong:#6b7280; --wbc-tx:#111827; --wbc-tx-m:#374151; --wbc-tx-d:#4b5563;
  --v12:#dc2626; --v34:#c2410c; --v56:#a16207; --v78:#15803d; --v910:#047857; --wbc-on-tx:#ffffff; --wbc-focus:#111827; --wbc-link:#c2410c;
  width:100%; min-width:0; color:var(--wbc-tx); }
[data-theme="dark"] .wbc{ --wbc-bg:var(--d-bg-tile,#14181f); --wbc-elev:var(--d-bg-elev,#1c2129); --wbc-tile2:var(--d-bg-tile2,#1a1f27); --wbc-bd:var(--d-bd,#262b33); --wbc-bd-soft:var(--d-bd-soft,#20252d);
  --wbc-bd-strong:#4b5563; --wbc-tx:var(--d-tx,#eef1f5); --wbc-tx-m:#aab2bd; --wbc-tx-d:#9aa3ae;
  --v12:#ef4444; --v34:#f97316; --v56:#eab308; --v78:#22c55e; --v910:#10b981; --wbc-on-tx:#0b0d11; --wbc-focus:#ffffff; --wbc-link:#ff9a4d; }
.wbc-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.wbc-sub{ font-size:13px; color:var(--wbc-tx-m); }
.wbc-prog{ margin-left:auto; font-size:13px; font-weight:700; color:var(--wbc-tx-m); white-space:nowrap; font-variant-numeric:tabular-nums; }
.wbc-bar{ height:4px; background:var(--wbc-elev); border-radius:4px; overflow:hidden; margin-bottom:4px; }
.wbc-bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,#fc4c02,#ff8000); transition:width .2s ease; }
.wbc-q{ border:0; margin:0; padding:14px 0; border-top:1px solid var(--wbc-bd-soft); min-width:0; }
.wbc-q legend{ padding:0; width:100%; display:flex; align-items:center; gap:8px; float:left; margin-bottom:2px; }
.wbc-q legend + *{ clear:both; }
.wbc-q-t{ font-weight:700; font-size:15px; color:var(--wbc-tx); }
.wbc-q-badge{ margin-left:auto; font-size:12px; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--wbc-elev); color:var(--wbc-tx-m); white-space:nowrap; max-width:55%; overflow:hidden; text-overflow:ellipsis; }
.wbc-q-ask{ font-size:13px; color:var(--wbc-tx-m); margin:0 0 10px; }
.wbc .c1,.wbc .c2{ --c:var(--v12); } .wbc .c3,.wbc .c4{ --c:var(--v34); } .wbc .c5,.wbc .c6{ --c:var(--v56); } .wbc .c7,.wbc .c8{ --c:var(--v78); } .wbc .c9,.wbc .c10{ --c:var(--v910); }
.wbc .inv .c1,.wbc .inv .c2{ --c:var(--v910); } .wbc .inv .c3,.wbc .inv .c4{ --c:var(--v78); } .wbc .inv .c7,.wbc .inv .c8{ --c:var(--v34); } .wbc .inv .c9,.wbc .inv .c10{ --c:var(--v12); }
.wbc-ends{ display:flex; justify-content:space-between; gap:8px; font-size:12px; color:var(--wbc-tx-d); margin-top:7px; }
.wbc-desc{ margin-top:8px; min-height:40px; padding:9px 12px; border-radius:10px; background:var(--wbc-tile2); font-size:14px; color:var(--wbc-tx-m); border-left:3px solid var(--c,var(--wbc-bd-strong)); }
.wbc-desc b{ color:var(--wbc-tx); }
.wbc-groups{ display:flex; flex-wrap:wrap; gap:4px 10px; margin-top:2px; font-size:12px; color:var(--wbc-tx-d); }
.wbc-groups span::before{ content:''; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--c); margin-right:4px; }
.wbc-legend{ margin-top:6px; font-size:13px; color:var(--wbc-tx-m); }
.wbc-legend summary{ cursor:pointer; color:var(--wbc-link); font-weight:600; list-style:none; min-height:44px; display:flex; align-items:center; }
.wbc-legend summary::-webkit-details-marker{ display:none; }
.wbc-legend ol{ margin:4px 0 0; padding:0; list-style:none; display:grid; gap:3px; }
.wbc-legend li{ display:grid; grid-template-columns:26px 1fr; gap:6px; }
.wbc-legend li b{ color:var(--wbc-tx); }
.wbc-save-wrap{ position:sticky; bottom:0; z-index:2; /* przewijany kontener (.main) kończy się nad dolnym menu — bottom:0 */ margin:4px -22px -22px; padding:12px 22px 22px; background:var(--wbc-bg); border-top:1px solid var(--wbc-bd-soft); }
.wbc-save-note{ text-align:center; font-size:12px; color:var(--wbc-tx-d); margin-top:6px; }
/* [RC BACKLOG P3 F3-02, WCAG 2.4.11] Przyklejony pasek „Zapisz” (~100–120 px) nie może zasłaniać elementu z fokusem: przewinięcie do suwaka/przycisku
   (Tab, stuknięcie po przewinięciu) zostawia pod nim miejsce na pasek. Wygląd suwaków i zapis bez zmian. */
.wbc .wbc-q .wsl,.wbc .wbc-q button,.wbc .wbc-q summary{ scroll-margin-bottom:136px; }
/* Przyciski formularza: wyjątek od globalnej reguły „#p-day button” (≤480 px, !important) — wyższa specyficzność, tylko .wbc */
#p-day .wbc .wbc-save{ width:100%; height:54px; min-height:54px !important; padding:0 12px !important; border:0; border-radius:12px; background:#c2410c; color:#fff; font-weight:800; font-size:16px !important; touch-action:manipulation; cursor:pointer; }
#p-day .wbc .wbc-save:disabled{ background:var(--wbc-elev); color:var(--wbc-tx-d); cursor:default; }
#p-day .wbc .wbc-save.is-saved{ background:#15803d; }
#p-day .wbc button:focus-visible{ outline:3px solid var(--wbc-focus); outline-offset:2px; }
/* Rozwinięty poranny check-in: przyklejony zapis potrzebuje widocznego przepełnienia (overflow:hidden łamie sticky) */
.wb130-point[data-kind="morning"].is-expanded .wb130-point-body,
.wb130-point[data-kind="morning"].is-expanded .wb130-node-card{ overflow:visible; }
.wb130-point[data-kind="morning"].is-expanded .wb130-point-body{ max-height:none; }
/* [RC BP3-2 F2-04] zwinięty check-in (max-height:0) poza kolejnością Tab i drzewem dostępności — rozwinięty bez zmian (zwijanie i tak bez animacji: max-height none → 0) */
.wb130-point[data-kind="morning"]:not(.is-expanded) .wb130-point-body{ visibility:hidden; }
[data-theme="dark"] .wb130-point[data-kind="morning"] .wb130-point-body-inner:has(.wbc){ background:var(--wbc-bg,#14181f) !important; }
/* Telefon: rozwinięty poranny check-in na pełną szerokość (godzina zostaje w nagłówku karty) */
@media (max-width:600px){
  .wb130-point[data-kind="morning"].is-expanded .wb130-node{ grid-template-columns:minmax(0,1fr); }
  .wb130-point[data-kind="morning"].is-expanded .wb130-node-time,
  .wb130-point[data-kind="morning"].is-expanded .wb130-node-rail{ display:none; }
  .wb130-point[data-kind="morning"].is-expanded .wb130-point-body-inner{ padding:4px 12px 12px; }
  .wb130-point[data-kind="morning"].is-expanded .wbc-save-wrap{ margin:4px -12px -12px; padding:12px; }
  .wb130-plan:has(.wb130-point[data-kind="morning"].is-expanded){ padding-left:0; padding-right:0; border-left-width:0; border-right-width:0; }   /* motyw jasny: ramka planu zjadała 40 px */
}
@media (max-width:400px){   /* 360 px: suwak na pełną szerokość przy paddingach strony (#p-day 16 + #wb130-root 14) */
  .wb130-point[data-kind="morning"].is-expanded .wb130-point-body-inner{ padding:4px 10px 10px; }
  .wb130-point[data-kind="morning"].is-expanded .wbc-save-wrap{ margin:4px -10px -10px; padding:10px; }
}
@media (max-width:768px){ .wbc-save-wrap{ margin:4px -14px -14px; padding:12px 14px 14px; } }   /* jak padding .wb130-point-body-inner */
@media (prefers-reduced-motion:reduce){ .wbc-bar i{ transition:none; } }
/* === [RC MOBILE iOS 2 2026-10-06] WadsSuwak — suwak 1–10 BEZ wartości domyślnej (A-38/D3, D-IOS1). Prefiks wsl-.
   Pełna szerokość, uchwyt 48×48, stuknięcie w dowolne miejsce toru = wartość, przeciąganie poziome bez konfliktu z przewijaniem (touch-action:pan-y).
   Stan „nieustawiony”: przerywany tor, brak uchwytu, podpowiedź „przesuń lub stuknij”. Kolory jak .wbc (tekst ≥ 4.5:1). === */
.wsl{ --wsl-tx:#111827; --wsl-tx-d:#4b5563; --wsl-rail:#e5e7eb; --wsl-bd:#6b7280; --wsl-on:#ffffff; --wsl-focus:#111827; --wsl-bg:var(--wbc-bg,#ffffff); --wsl-neu:#5e5ce6;
  --v12:#dc2626; --v34:#c2410c; --v56:#a16207; --v78:#15803d; --v910:#047857; --c:var(--wsl-neu);
  position:relative; height:84px; margin:2px 0 0; touch-action:pan-y; -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; -webkit-tap-highlight-color:transparent; cursor:pointer; outline:none; }
[data-theme="dark"] .wsl{ --wsl-tx:#eef1f5; --wsl-tx-d:#9aa3ae; --wsl-rail:#2a3039; --wsl-bd:#6b7280; --wsl-on:#0b0d11; --wsl-focus:#ffffff; --wsl-bg:var(--wbc-bg,#14181f); --wsl-neu:#64d2ff;
  --v12:#ef4444; --v34:#f97316; --v56:#eab308; --v78:#22c55e; --v910:#10b981; }
.wsl.c1,.wsl.c2{ --c:var(--v12); } .wsl.c3,.wsl.c4{ --c:var(--v34); } .wsl.c5,.wsl.c6{ --c:var(--v56); } .wsl.c7,.wsl.c8{ --c:var(--v78); } .wsl.c9,.wsl.c10{ --c:var(--v910); }
.wsl.inv.c1,.wsl.inv.c2{ --c:var(--v910); } .wsl.inv.c3,.wsl.inv.c4{ --c:var(--v78); } .wsl.inv.c7,.wsl.inv.c8{ --c:var(--v34); } .wsl.inv.c9,.wsl.inv.c10{ --c:var(--v12); }
.wsl.wsl-neutral{ --c:var(--wsl-neu); }
.wsl-rail{ position:absolute; left:24px; right:24px; top:24px; height:12px; border-radius:6px; background:var(--wsl-rail); overflow:hidden; }
.wsl-fill{ position:absolute; left:0; top:0; bottom:0; width:calc(var(--p,0) * 100%); background:var(--c); }
.wsl-thumb{ position:absolute; top:6px; left:calc(var(--p,0) * (100% - 48px)); width:48px; height:48px; border-radius:50%; background:var(--c); border:3px solid var(--wsl-bg);
  box-shadow:0 1px 4px rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; box-sizing:border-box; transition:transform .15s ease; }
.wsl-thumb span{ font-weight:800; font-size:19px; line-height:1; color:var(--wsl-on); font-variant-numeric:tabular-nums; }
.wsl-ticks{ position:absolute; left:24px; right:24px; top:60px; height:22px; }
.wsl-ticks span{ position:absolute; top:0; transform:translateX(-50%); font-size:13px; font-weight:600; color:var(--wsl-tx-d); font-variant-numeric:tabular-nums; }
.wsl-ticks span.wsl-on{ color:var(--wsl-tx); font-weight:800; }
.wsl-hint{ display:none; position:absolute; left:50%; top:30px; transform:translate(-50%,-50%); padding:5px 12px; border-radius:999px; background:var(--wsl-bg); border:1px solid var(--wsl-bd);
  font-size:13px; font-weight:700; color:var(--wsl-tx); white-space:nowrap; pointer-events:none; }
.wsl.wsl-pusty .wsl-rail{ background:transparent; border:2px dashed var(--wsl-bd); box-sizing:border-box; }
.wsl.wsl-pusty .wsl-thumb,.wsl.wsl-pusty .wsl-fill{ visibility:hidden; }
.wsl.wsl-pusty .wsl-hint{ display:flex; align-items:center; gap:6px; }
.wsl.wsl-drag .wsl-thumb{ transform:scale(1.1); }
.wsl:focus-visible .wsl-thumb,.wsl.wsl-pusty:focus-visible .wsl-rail{ outline:3px solid var(--wsl-focus); outline-offset:3px; }
.wsl[aria-disabled="true"]{ cursor:default; opacity:.6; }
/* [RC UI suwaki] zastap(): natywny input zostaje jako ukryte źródło wartości; „domyślny” = wartość startowa (np. plan) do potwierdzenia; błąd = A-38 */
input.wsl-zrodlo{ display:none !important; }
.wsl-box{ flex:1 1 auto; min-width:0; }
/* Okno „Trening” (treść) i arkusz wydarzenia są ciemne w obu motywach — paleta ciemna suwaka (jak edytor WB w Kalendarzu, iOS 2 ETAP C) */
#mo-exec .mex-sec-bd .wsl,#wads-event-modal .wsl{ --wsl-tx:#eef1f5; --wsl-tx-d:#9aa3ae; --wsl-rail:#2a3039; --wsl-bd:#6b7280; --wsl-on:#0b0d11; --wsl-focus:#ffffff; --wsl-bg:#14181f; --wsl-neu:#64d2ff;
  --v12:#ef4444; --v34:#f97316; --v56:#eab308; --v78:#22c55e; --v910:#10b981; }
.wsl.wsl-domysl .wsl-rail{ background:transparent; border:2px dashed var(--wsl-bd); box-sizing:border-box; }
.wsl.wsl-domysl .wsl-fill{ visibility:hidden; }
.wsl.wsl-domysl .wsl-thumb{ background:var(--wsl-bg); border:3px dashed var(--c); }
.wsl.wsl-domysl .wsl-thumb span{ color:var(--wsl-tx); }
.wsl.wsl-blad .wsl-rail{ border-color:#ff9f0a; }
.wsl.wsl-blad{ outline:2px solid #ff9f0a; outline-offset:4px; border-radius:12px; }
@media (prefers-reduced-motion:reduce){ .wsl-thumb{ transition:none; } }
/* [RC MOBILE iOS 2, D-IOS3] wariant B „krok po kroku” (tylko beta ?wariant=b): jedno pytanie naraz, 2 kolumny dużych przycisków liczba + słowo */
.wbcb .wbc-q.wbcb-ukryte{ display:none; }
.wbcb-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.wbcb-grid.wbcb-11{ grid-template-columns:repeat(3,minmax(0,1fr)); }
#p-day .wbc .wbcb-opt{ display:flex; align-items:center; gap:10px; min-height:52px !important; height:auto; padding:6px 12px !important; border-radius:12px; border:2px solid var(--wbc-bd); border-left:6px solid var(--c,var(--wbc-bd-strong));
  background:var(--wbc-elev); color:var(--wbc-tx); text-align:left; touch-action:manipulation; cursor:pointer; font-size:14px !important; }
#p-day .wbc .wbcb-opt b{ font-size:20px; font-weight:800; min-width:24px; font-variant-numeric:tabular-nums; }
#p-day .wbc .wbcb-opt span{ font-weight:600; line-height:1.2; }
#p-day .wbc .wbcb-opt[aria-pressed="true"]{ background:var(--c,#c2410c); border-color:var(--c,#c2410c); color:var(--wbc-on-tx); }
#p-day .wbc .wbcb-11 .wbcb-opt{ justify-content:center; border-left-width:2px; }
.wbcb-nav{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 0 4px; border-top:1px solid var(--wbc-bd-soft); font-size:13px; font-weight:700; color:var(--wbc-tx-m); }
#p-day .wbc .wbcb-navb{ min-height:44px !important; padding:0 14px !important; border-radius:10px; border:2px solid var(--wbc-bd-strong); background:transparent; color:var(--wbc-tx); font-weight:700; font-size:14px !important; cursor:pointer; }
#p-day .wbc .wbcb-navb:disabled{ opacity:.4; cursor:default; }


/* Pain row */
.wb130-pain-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.wb130-pain-btn {
  padding: 9px 16px;
  border-radius: var(--r-md);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid;
  background: transparent;
}
.wb130-pain-btn.is-no {
  background: var(--green-lightest);
  border-color: var(--wb130-green2);
  color: var(--wb130-green2);
}
.wb130-pain-btn.is-yes {
  background: var(--red-lightest);
  border-color: var(--wb130-red2);
  color: var(--wb130-red2);
}
.wb130-pain-dodaj, #wb130-pain-row-dodaj .wb130-pain-btn { min-height: 44px; }   /* [RC-BOL] cel dotyku ≥44 px */
.wb130-pain-dodaj { margin-top: 8px; }
.wb130-pain-chip { position: relative; cursor: pointer; }   /* [RC-BOL] wygląd bez zmian, cel dotyku 44 px */
.wb130-pain-chip::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }
.wb130-pain-row[hidden], .wb130-pain-dodaj[hidden] { display: none; }
.wb130-pain-confirmed {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: var(--green-lightest);
  color: var(--wb130-green2);
  border-radius: var(--r-md);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
}

/* ============================================================
   MODAL WADS (style .mo + .mbox - z app.html linia 790)
   Twoj punkt #4: popup w stylu pulpitu
   ============================================================ */
.wb130-modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(26, 26, 26, 0.7);
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 16px;
}
.wb130-modal.is-open {
  display: flex;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.wb130-modal-box {
  background: var(--wb130-paper);
  border: 2px solid var(--wb130-ink);
  border-radius: var(--r-lg);
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 8px 8px 0 var(--wb130-ink);
  animation: wb60ModalIn 0.2s ease-out;
}
@keyframes wb60ModalIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.wb130-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 0;
}
.wb130-modal-title {
  font-family: 'Syne', sans-serif;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.5px;
  color: var(--wb130-ink);
}
.wb130-modal-close {
  width: 28px;
  height: 28px;
  background: var(--wb130-cream2);
  border: 1px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  color: var(--wb130-ink3);
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  transition: all 0.12s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-modal-close:hover {
  background: var(--wb130-cream3);
} }
.wb130-modal-body {
  padding: 16px 24px 24px;
}

/* Coach modal specific */
.wb130-coach-avatar-big {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--wb130-purple), var(--wb130-purple-deep));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  font-size: 18px;
  color: var(--wb130-paper);
  margin: 8px auto 16px;
  box-shadow: var(--shadow-md), var(--glow-purple);
}
.wb130-coach-name {
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--wb130-ink);
  text-align: center;
  letter-spacing: -0.01em;
}
.wb130-coach-role {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--wb130-ink5);
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  margin-bottom: 18px;
}
.wb130-coach-msg-full {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--wb130-ink);
  background: var(--wb130-cream);
  border-left: 3px solid var(--wb130-purple);
  padding: 14px 16px;
  border-radius: 0 8px 8px 0;
}


/* ============================================================
   v8.0 D.2: STAN "DONE" - stonowany zielony + ikonka ✓ + "Edytuj"
   Twoj feedback: po wypelnieniu kafelek przygaszony zielony,
   nie wraca jako "do wypelnienia", guzik Edytuj umozliwia cofniecie
   ============================================================ */
.wb130-point.is-done {
  background: linear-gradient(135deg, var(--green-lightest) 0%, #fafefb 100%);
  border-color: rgba(22, 101, 52, 0.20);
  border-left-color: var(--wb130-green2);
  opacity: 0.88;
  transition: opacity 0.2s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-point.is-done:hover {
  opacity: 1;
} }

.wb130-point.is-done .wb130-point-header {
  cursor: default;
}

.wb130-done-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--wb130-green2);
  color: var(--wb130-paper);
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
  margin-right: 8px;
}

.wb130-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: var(--wb130-paper);
  border: 1px solid var(--wb130-cream3);
  border-radius: var(--r-sm);
  color: var(--wb130-ink3);
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-edit-btn:hover {
  background: var(--wb130-ink);
  border-color: var(--wb130-ink);
  color: var(--wb130-paper);
} }
.wb130-edit-btn svg {
  width: 12px;
  height: 12px;
}

/* v13.0 A.4: Anuluj edycje button - subtelny czerwony aby odroznic od Edytuj */
.wb130-cancel-btn {
  border-color: rgba(226, 75, 74, 0.35) !important;
  color: rgba(226, 75, 74, 0.95) !important;
  background: rgba(226, 75, 74, 0.04) !important;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-cancel-btn:hover {
  background: rgba(226, 75, 74, 0.95) !important;
  border-color: rgba(226, 75, 74, 0.95) !important;
  color: #fff !important;
} }

/* When is-done, NIE pokazuj chevron, status pill i XP pill - tylko Edytuj */
.wb130-point.is-done .wb130-point-chevron { display: none; }

/* ============================================================
   v8.0 D.3: TRAINING POINT (typ trening - 14:30 itd)
   ============================================================ */
.wb130-point.is-training {
  border-left-color: var(--wb130-purple);
}
.wb130-point.is-training.is-done {
  border-left-color: var(--wb130-green2);
}
.wb130-point.is-training.is-now {
  border-left-color: var(--wb130-purple);
  background: var(--wb130-paper);
  border-left-width: 4px;
  box-shadow: var(--shadow-md), var(--glow-purple);
}

.wb130-point-type-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--r-sm);
  background: rgba(100, 80, 210, 0.10);
  color: var(--wb130-purple);
  margin-right: 8px;
  flex-shrink: 0;
}
.wb130-point-type-icon svg {
  width: 14px;
  height: 14px;
}
.wb130-point.is-done .wb130-point-type-icon {
  background: rgba(22, 101, 52, 0.10);
  color: var(--wb130-green2);
}

/* Inline title row: icon + text */
.wb130-point-title-row {
  display: flex;
  align-items: center;
}

/* ============================================================
   v8.0 D.4: RPE SLIDER (odwrotna paleta - 1=zielony, 10=czerwony)
   ============================================================ */
.wb130-rpe-section {
  margin-top: 8px;
}
.wb130-rpe-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 12px;
}
.wb130-rpe-label {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--wb130-ink5);
}
.wb130-rpe-current {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.wb130-rpe-num {
  font-family: 'Syne', sans-serif;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.wb130-rpe-max {
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--wb130-ink5);
}

/* Klikalne liczby RPE 1-10 - odwrotna paleta */
.wb130-rpe-row {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 4px;
  margin-bottom: 10px;
}
@media (max-width: 480px) {
  .wb130-rpe-row { gap: 3px; }
}
.wb130-rpe-btn {
  padding: 9px 0;
  border: 2px solid var(--wb130-cream3);
  border-radius: var(--r-md);
  background: var(--wb130-paper);
  cursor: pointer;
  font-family: 'Syne', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  transition: all 0.15s;
}
@media (hover:hover) and (pointer:fine){ /* [RC-A2 P1-9] najechanie tylko mysz */ .wb130-rpe-btn:hover {
  border-color: var(--wb130-ink);
  transform: translateY(-1px);
} }
.wb130-rpe-btn.is-active {
  background: var(--wb130-ink);
  color: var(--wb130-paper) !important;
  border-color: var(--wb130-ink);
}
/* Odwrotna paleta: 1=zielony deep, 10=czerwony */
.wb130-rpe-btn[data-rpe="1"], .wb130-rpe-btn[data-rpe="2"] { color: var(--wb130-v9-10); }
.wb130-rpe-btn[data-rpe="3"], .wb130-rpe-btn[data-rpe="4"] { color: var(--wb130-v7-8); }
.wb130-rpe-btn[data-rpe="5"], .wb130-rpe-btn[data-rpe="6"] { color: var(--wb130-v5-6); }
.wb130-rpe-btn[data-rpe="7"], .wb130-rpe-btn[data-rpe="8"] { color: var(--wb130-v3-4); }
.wb130-rpe-btn[data-rpe="9"], .wb130-rpe-btn[data-rpe="10"] { color: var(--wb130-v1-2); }

/* [RC UI suwaki 2026-10-06] martwe style .wb130-rpe-slider usunięte (0 użyć) */

.wb130-rpe-desc {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--wb130-ink);
  padding: 10px 14px;
  background: var(--wb130-cream);
  border-radius: var(--r-md);
  text-align: center;
  border-left: 3px solid var(--wb130-purple);
  margin-bottom: 14px;
  margin-top: 14px;
}

/* Training meta info */
.wb130-training-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 12px 16px;
  background: var(--wb130-cream);
  border-radius: var(--r-md);
  margin-bottom: 16px;
}
.wb130-training-meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.wb130-training-meta-label {
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--wb130-ink5);
}
.wb130-training-meta-value {
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--wb130-ink);
  letter-spacing: -0.01em;
}

/* Active done banner - dla zwiniętego is-done point */
.wb130-done-summary {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--wb130-green2);
  margin-top: 4px;
}

/* [RC-ZP1b] „Dziś uzupełnili” bez wybranego zawodnika: karta poza .page (przed panelem „Wybierz zawodnika”), widoczna tylko na Pulpicie */
#zp1-karta.zp1-poza { display: none; margin: 16px 16px 0; }
body.wzp-bez-zawodnika:has(#p-dash.on) #zp1-karta.zp1-poza { display: block; }
/* [RC-K35] karta ukryta (wszystko zielone / brak danych) i pasek bez braku — atrybut hidden wygrywa z display powyżej i ze stylem w linii */
#zp1-karta[hidden], #zp1-pasek[hidden] { display: none !important; }
/* [RC-K35] pasek „Dziś brakuje” w jednej linii także na telefonie (reguły mobilne .btn / bloków Pulpitu) */
#zp1-pasek:not([hidden]) { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; padding: 0 4px 0 12px !important; min-height: 44px; }
#zp1-pasek .btn { width: auto !important; flex: 0 0 auto; margin: 0 !important; }

/* ═══════════ [RC-K37] UKŁAD TABLETU (audyt iPada 10.10, IPAD-1..9) — poprawka układu, NIE nowy motyw ═══════════
   Kolory, fonty i tokeny bez zmian. Progi: ≤768 telefon (bez zmian) · 769–1179 szyna ikon 64 px · ≥1180 pełne menu 220 px.
   Siatki liczone od kontenera (auto-fit / @container), liczby: clamp(…cqi…) + tabular-nums + nowrap — etykieta może się zawinąć, liczba nie.
   Dotyk: cele ≥44 px w (pointer:coarse) od 769 px (telefon ma własne reguły ≤768); akcje „tylko na najechanie” widoczne bez hovera. */

/* IPAD-1 / §5.1 szyna ikon 64 px (769–1179): treść 820 → ~716 px, 1024 → ~920 px. Same ikony jak w makiecie (pulpit-tablet.html) —
   podpis 12 px (AT-044, RC-K16) nie mieści się w 64 px; nazwa zostaje w drzewie dostępności (ukryta wizualnie, czytnik ją czyta). */
@media (min-width:769px) and (max-width:1179px){
  :root{--sb-w:64px !important}
  .sidebar,.sidebar.collapsed{--sb-w:64px !important}
  /* zwinięte menu z pamięci (wads_sb_collapsed) nie może ukryć podpisów ani stopki szyny — przełącznik jest tu schowany */
  #sidebar .sidebar-footer-meta{opacity:1;height:auto;pointer-events:auto;margin:0}
  #sidebar .sidebar-privacy-btn{display:block}
  .sidebar-toggle-wrap{display:none !important}
  #sidebar .sidebar-brand-text{display:none}   /* 64 px: w nagłówku szyny zostaje dzwonek powiadomień */
  #sidebar .sidebar-brand .a25-dzw{display:inline-flex;margin:0 auto}   /* dzwonek powiadomień zostaje na szynie (także przy zwiniętym menu z pamięci) */
  #sidebar .sidebar-group-label{opacity:0;height:0;padding:8px 0 0;margin:0;pointer-events:none}
  #sidebar .sidebar-group-body,.sidebar .sidebar-group-body.collapsed{max-height:none}
  #sidebar .sidebar-group-divider{display:block;margin:4px 10px 0}
  #sidebar .sidebar-item{justify-content:center;height:auto;min-height:48px;padding:0;margin:1px 8px;width:calc(100% - 16px)}
  #sidebar .sidebar-item-label{position:absolute !important;width:1px !important;height:1px !important;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;opacity:1}
  #sidebar .sidebar-day-btn{padding:10px;min-height:44px}
  #sidebar .sidebar-day-btn .sidebar-day-label{opacity:0;width:0;position:absolute}
  /* stopka w 12 px (AT-044): „Prywatność i RODO” → widoczny skrót „RODO” (pełna nazwa w aria-label przycisku), „Wyloguj” bez poziomego odstępu */
  html body #sidebar .sidebar-footer .sidebar-privacy-btn.u-fs-10{font-size:0 !important;text-align:center;align-self:stretch;width:100%;min-height:44px;padding:2px 0}
  #sidebar .sidebar-privacy-btn::before{content:'RODO';font-size:12px}
  #sidebar .sidebar-footer{padding-left:6px;padding-right:6px}
  #sidebar .sidebar-footer-meta{flex-direction:column;gap:6px;padding:4px 0 0}
  #sidebar .sidebar-footer-meta #sidebar-role-text{display:none}
  #sidebar .sidebar-footer-meta button{padding:4px 0 !important;min-height:44px;width:100%}
  #sidebar #sb-cal-extra{display:none !important}
}

/* IPAD-9 safe-area: stopka menu i baner PWA od 769 px (telefon ma własny wariant) */
@media (min-width:769px){
  .sidebar-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  #pwa-install-banner{height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  #pwa-install-ikona{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}

/* IPAD-1 Pulpit: siatki kafli od kontenera (zamiast inline repeat(4,1fr)); od 769 px — telefon zostaje przy swoich 2 kolumnach */
@media (min-width:769px){
  #dash-compliance-grid,
  #p-dash div:has(> #dash-tsb-tile),
  #dash-garmin-tiles > div[style*="repeat(4,1fr)"]{grid-template-columns:repeat(auto-fit,minmax(156px,1fr)) !important}
}
@media (min-width:769px){
  #dash-compliance-grid > .tile,
  #p-dash div:has(> #dash-tsb-tile) > .tile,
  #p-dash div:has(> .tile #dash-atl) > .tile{container-type:inline-size;min-width:0}
  /* liczby: rozmiar z szerokości kafla (cqi), z dotychczasowym maksimum — maleją tylko w wąskim kaflu; współczynnik dla 5 znaków Syne 800 (~0,86 em/znak) */
  #dash-tsb,#dash-acwr,#dash-monotony-val,#dash-strain-val{font-size:clamp(18px,22cqi,36px) !important}
  #dash-completion-pct,#dash-ratio-val,#dash-frekwencja-val,#dash-missing-val{font-size:clamp(18px,22cqi,38px) !important}
  #dash-atl,#dash-ctl{font-size:clamp(22px,28cqi,48px) !important}
  #dash-tsb,#dash-acwr,#dash-monotony-val,#dash-strain-val,#dash-completion-pct,#dash-ratio-val,#dash-frekwencja-val,#dash-missing-val,#dash-atl,#dash-ctl{white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
  /* etykiety kafli mogą się zawinąć („Bezpieczeństwo”) — liczba nie */
  #p-dash div:has(> #dash-tsb-tile) > .tile .u-fw-700,#dash-compliance-grid > .tile .u-fs-11.u-fw-700{hyphens:auto;overflow-wrap:anywhere}
}

/* IPAD-2 Mikrocykl: kolumny od szerokości kontenera (≥840 → 7, 560–839 → 4, 400–559 → 2, <400 → 1); tytuł bez wielokropka */
@media (min-width:769px){
  #mc-gcal-week{container:k37mc / inline-size}
  #mc-gcal-week .mcv3-cards-wrap{grid-template-columns:1fr}
  @container k37mc (min-width:400px){#mc-gcal-week .mcv3-cards-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @container k37mc (min-width:560px){#mc-gcal-week .mcv3-cards-wrap{grid-template-columns:repeat(4,minmax(0,1fr))}}
  @container k37mc (min-width:840px){#mc-gcal-week .mcv3-cards-wrap{grid-template-columns:repeat(7,minmax(0,1fr))}}
}
@media (min-width:769px){
  #mc-gcal-week .mcv3-summary,#mc-gcal-week .mcv3-summary.z17b-bez-au{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
  #p-micro .cal-clean-hdr .cch-left,#p-macro .cal-clean-hdr .cch-left{flex-wrap:wrap}
  #p-micro .cal-clean-hdr .cch-title,#p-macro .cal-clean-hdr .cch-title{flex:0 1 auto;overflow:visible;text-overflow:clip}
  /* IPAD-3 Makrocykl: karty tygodni ≥150 px (było 5 kolumn na sztywno) */
  #mac2-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr)) !important}
  /* IPAD-6 Testy: KPI od kontenera, tabela historii w przewijanym kontenerze z przyklejoną kolumną daty */
  #tests-kpis-profile{grid-template-columns:repeat(auto-fit,minmax(96px,1fr)) !important}
  #tests-profile-panel-history{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  #tests-profile-panel-history th:first-child,#tests-profile-panel-history td:first-child{position:sticky;left:0;z-index:1;background:var(--d-bg-tile,#141416)}
  /* IPAD-6 Pomiary: dwa wykresy obok siebie dopiero, gdy zmieszczą się po ≥280 px */
  #profile-sub-measurements div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)) !important}
  #profile-sub-measurements div[style*="grid-template-columns:1fr 1fr"] > *{min-width:0}
}

/* IPAD-4 Kalendarz: tytuł miesiąca bez wielokropka („P.”); 769–1179 warstwy w szufladzie (ten sam arkusz co na telefonie) */
@media (min-width:769px){
  html body #p-cal #cal-header .cal-clean-hdr .cch-left{flex-wrap:wrap !important}
  html body #p-cal #cal-header .cal-clean-hdr .cch-title,html body #p-cal #cal-header .cch-title{flex:0 0 auto !important;overflow:visible !important;text-overflow:clip !important;max-width:none !important}
}
@media (min-width:769px) and (max-width:1179px){
  html body #p-cal #cal-header .cal-clean-hdr .cch-layers{display:none !important}
  html body #p-cal #cal-header .cal-clean-hdr .cch-layers-collapsed{display:inline-flex !important;align-items:center;gap:5px;padding:5px 12px;border-radius:7px;background:var(--d-bg-elev);color:var(--d-tx-m);border:1px solid var(--d-bd);font-size:11px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;min-height:44px}
  .cch-layers-collapsed .count{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--d-tx);margin-left:2px;font-variant-numeric:tabular-nums}
  .layers-sheet-bd{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .25s;z-index:9400}
  .layers-sheet-bd.on{opacity:1;pointer-events:auto}
  .layers-sheet{display:block;position:fixed;left:var(--sb-w,64px);right:auto;width:min(420px,calc(100vw - var(--sb-w,64px)));bottom:0;background:rgba(15,15,18,.96);backdrop-filter:saturate(180%) blur(40px);-webkit-backdrop-filter:saturate(180%) blur(40px);border-top:1px solid rgba(255,255,255,.10);border-right:1px solid rgba(255,255,255,.10);border-radius:18px 18px 0 0;padding:14px 18px calc(20px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .3s cubic-bezier(.34,1.56,.64,1);z-index:9500;box-shadow:0 -12px 32px rgba(0,0,0,.5);max-height:75dvh;overflow-y:auto}
  .layers-sheet.on{transform:translateY(0)}
  .layers-sheet-handle{width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.18);margin:0 auto 12px}
  .layers-sheet-title{font-family:'Syne',sans-serif;font-weight:800;font-size:14px;color:var(--d-tx);margin:0 0 12px;display:flex;align-items:center;gap:8px;letter-spacing:-.02em}
  .layers-sheet-title i{color:var(--brand)}
  .layers-sheet-list{display:flex;flex-direction:column;gap:8px}
  .layers-sheet-list .sheet-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;min-height:44px;box-sizing:border-box;background:var(--d-bg-tile2);border-radius:10px;border:1px solid var(--d-bd);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .layers-sheet-list .sheet-item-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--d-tx)}
  .layers-sheet-list .sheet-item-name i{font-size:16px}
  .layers-sheet-list .sheet-toggle{width:42px;height:24px;background:var(--d-bg-elev);border-radius:12px;position:relative;transition:background .2s;border:1px solid var(--d-bd);flex-shrink:0}
  .layers-sheet-list .sheet-toggle::after{content:'';position:absolute;top:1px;left:1px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s}
  .layers-sheet-list .sheet-toggle.on{background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:transparent}
  .layers-sheet-list .sheet-toggle.on::after{left:20px}
  .layers-sheet-close{margin-top:14px;width:100%;padding:12px;min-height:44px;background:var(--d-bg-tile2);color:var(--d-tx);border:1px solid var(--d-bd);border-radius:10px;font-size:13px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer}
}

/* IPAD-7 akcje „tylko na najechanie” — na urządzeniu bez precyzyjnego wskaźnika widoczne stale (ukrywanie zostaje tylko dla (hover:hover) and (pointer:fine)) */
@media (min-width:769px) and (hover:none),(min-width:769px) and (pointer:coarse){
  .scv2-actions,.scv2 .scv2-actions{opacity:1 !important}
  .cd .cd-add-hint{opacity:1 !important}
  #cal-weeks-container .cal-empty-hint{opacity:1 !important}
  html body #p-cal.cal-view-week .cw3-day-col[data-empty="1"]::after{opacity:1 !important}
  .tag-picker .tp-tag .tp-x,#mo-ses .tag-picker .tp-tag .tp-x{opacity:1 !important}
}

/* IPAD-5 / IPAD-11 cele dotyku ≥44 px przy (pointer:coarse) od 769 px */
@media (pointer:coarse) and (min-width:769px){
  .sidebar-item,.sidebar-day-btn{height:auto;min-height:44px}
  .sidebar-collapse-btn{width:44px;height:44px}
  .cal-clean-hdr .cch-nav button,html body #p-cal #cal-header .cch-nav button{width:44px !important;height:44px !important}
  .cal-clean-hdr .cch-now,.cal-clean-hdr .cch-actions button,.cal-clean-hdr .cch-pills button,html body #p-cal #cal-header .cch-actions button,html body #p-cal #cal-header .cch-pills button,html body #p-cal #cal-header .cch-now{min-height:44px !important}
  .cal-clean-hdr .cch-actions button[title="Pomoc"]{width:44px !important}
  #dash-pmc-toggle button{min-height:44px;min-width:44px}
  .tab,[role="tab"]{min-height:44px}
  .tab{display:inline-flex;align-items:center}
  .wh-btn.wh-btn{min-height:44px}
  #mc-gcal-week .mcv3-hdr-top{min-height:44px}
  #p-dash .u-fs-9[onclick],#p-dash .u-fs-10[onclick]{min-height:44px;display:inline-flex;align-items:center}
  .cms-mc-nav button,.cms-layers-actions button{min-width:44px;min-height:44px}
  .scv2-act{min-width:44px;min-height:44px}
  html body #p-cal .cw3-sc-chip,html body #p-cal .ftr-cta{min-height:44px}
  html body #p-cal .cw3-sc-info{min-width:44px;min-height:44px}
  #p-dash button{min-height:44px}   /* „PLAN →” i inne przyciski kart Pulpitu (29 px na becie) */
  /* plakietki w nagłówku karty dnia Mikrocyklu (przerwa zdrowotna, turniej): pole trafienia 44 px bez powiększania plakietki */
  #mc-gcal-week .wh-mc,#mc-gcal-week .mcv3-tour-badge{position:relative}
  #mc-gcal-week .wh-mc::after,#mc-gcal-week .mcv3-tour-badge::after{content:'';position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
  #dash-youth-flags .ti-pencil[onclick]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-16px -14px}
  #auth-screen button{min-height:44px}
}

/* IPAD-8 klawiatura: --kb (wysokość klawiatury z visualViewport, JS [RC-K37] w 045) — okno kończy się nad klawiaturą,
   wiersz z przyciskiem zapisu przyklejony do dołu okna, baner PWA schowany, gdy klawiatura jest otwarta. Od 769 px (telefon bez zmian). */
@media (min-width:769px){
  html.k37-kb .mo{bottom:var(--kb,0px)}
  html.k37-kb .mo.open .mbox{max-height:calc(100% - 16px)}
  html.k37-kb .mo.open .mbox div:has(> button.btn-ink):not(:has(div)){position:sticky;bottom:0;z-index:2;background:inherit;padding-top:8px;padding-bottom:8px}
  html.k37-kb #pwa-install-banner,html.k37-kb #pwa-install-ikona{display:none !important}
}
/* ═══════════ [/RC-K37] ═══════════ */
/* ═══════════ [RC-K40] DOMKNIĘCIA PO RETEŚCIE #217 (R217-1..4) — osobny blok, K37 bez zmian; kolory, fonty i tokeny bez zmian ═══════════ */

/* R217-1 Mikrocykl, 4 kolumny (kontener 560–839 px, np. 820): ikona nad nazwą — nazwa ma całą szerokość karty
   („Regeneracja” 91 px i „indywidualny” 96 px mieszczą się w 99 px; obok ikony było 78 px → „Regenerac/ja”, „Tenis indywidu…”);
   zawijanie po słowach, dzielenie tylko z regułami języka (lang="pl") */
@media (min-width:769px){
  @container k37mc (min-width:560px) and (max-width:839px){
    #mc-gcal-week .mcv3-ses-title{flex-direction:column;align-items:flex-start;gap:2px}
    #mc-gcal-week .mcv3-ses-name{flex:none;width:100%;word-break:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
  }
}

/* R217-2 Kalendarz, Tydzień na tablecie: wąskie kolumny → nakładające się wydarzenia kaskadą (JS [RC-K40] w 045, szerokość ≥ 60 px);
   tekst „10:00 · 70' · RPE 6” zawija się w karcie zamiast wystawać; wydarzenia całodniowe i turniej z polem 44 px przy dotyku */
@media (min-width:769px) and (max-width:1180px){
  html body #p-cal.cal-view-week .cw3-evt-meta{overflow-wrap:break-word;max-width:100%}
}
@media (pointer:coarse) and (min-width:769px){
  html body #p-cal.cal-view-week .cw3-allday,html body #p-cal.cal-view-week .cw3-allday-lane{min-height:56px !important}
  html body #p-cal.cal-view-week .cw3-ad-evt.cw3-allday-item{height:auto !important;min-height:44px !important}
  html body #p-cal.cal-view-week .cw3-allday .cw3-ad-evt.cw3-tournament{height:44px !important}
}

/* R217-3 pozostałe cele < 44 px przy dotyku (od 769 px; telefon ma własne reguły) */
@media (pointer:coarse) and (min-width:769px){
  .wb130-ov-btn,.wb130-edit-btn{min-height:44px}   /* Mój dzień: „Uzupełnij / Nie było / Odbył się / Edytuj” (28 px) */
  #p-trn span.u-cursor-ptr[onclick^="promptAddTournamentWeek"]{display:inline-flex;align-items:center;min-height:44px}   /* Rywalizacja: „— wolny weekend —” (12 px) */
  #p-profile button[onclick="openProfileEdit()"],#p-profile button[onclick="exportProfilePDF()"]{min-height:44px}   /* Bio: „Edytuj dane / PDF” (32 px) */
  #sidebar .sidebar-footer-meta > [role="button"]{min-height:44px;min-width:44px;justify-content:center}   /* kropka synchronizacji: pole dotyku 44 px, kropka 7 px bez zmian */
}
/* mini-miesiąc w menu (≥ 1180 px) ma komórki 22 × 22 px — w 220 px menu 7 kolumn po 44 px się nie mieści; przy dotyku chowamy go
   jak na szynie 769–1179 (K37); nawigacja Kalendarza przyciskami 44 px w nagłówku, Warstwy zostają */
@media (pointer:coarse) and (min-width:1180px){
  #sidebar #sb-cal-extra .cms-mini-cal{display:none !important}
}

/* R217-4 telefon (≤ 768 px): klawiatura — jak K37 dla tabletu: okno kończy się nad klawiaturą, wiersz „Zapisz” przyklejony, dolne paski schowane */
@media (max-width:768px){
  html.k37-kb .mo{bottom:var(--kb,0px) !important}
  html.k37-kb .mo.open .mbox{max-height:calc(100% - 16px) !important}   /* arkusz telefonu ma własną wysokość (810 px) — nad klawiaturą musi się zmieścić */
  html.k37-kb .mo.open .mbox div:has(> button.btn-ink):not(:has(div)){position:sticky;bottom:0 !important;z-index:2;background:inherit;padding-top:8px;padding-bottom:8px !important}   /* telefon: stopka okna ma bottom −24 px (pod krawędzią) — nad klawiaturą równo z dołem */
  html.k37-kb #mo-ses .mbody > div:last-child{bottom:0 !important}   /* „Zapisz sesję”: reguła #mo-ses (bottom −24 px) silniejsza od ogólnej */
  html.k37-kb #mobile-bottom-bar,html.k37-kb #pwa-install-banner,html.k37-kb #pwa-install-ikona{display:none !important}
}
/* ═══════════ [/RC-K40] ═══════════ */
/* [RC-K39] domknięcia po retestach #213 (tylko te reguły; bloki RC-K16 / RC-K37 bez zmian) */
/* R213-1: dolny pasek — komórki zawsze wg treści (wcześniej tylko < 390 px: przy dokładnie 390–395 px „Rywalizacja” 12 px była ucięta); wysokość i min. szerokość celów dotyku bez zmian */
html body #mobile-bottom-bar .mbb-item { flex: 1 1 auto !important; }
/* R213-4: kontrast w menu — przycisk zwijania „−” #555 na #0c0c0f (2,6:1) → paleta --d-tx-m #9ca3af (≥ 7:1); licznik dzwonka: biały na #ff453a (3,4:1) → paleta --red #b91c1c (6,5:1) */
html body #sidebar .sidebar-collapse-btn { color: #9ca3af; }
html body #sidebar .sidebar-collapse-btn:hover { color: #e5e7eb; }   /* najechanie nadal rozjaśnia (wcześniej #555 → #aaa) */
html body .a25-dzw-n { background: #b91c1c; }
/* R213-5: Pulpit — etykiety wykresu gotowości min. 12 px (dzień miesiąca 9 px, wartość słupka 11 px); dziś bez zmian (12/14 px); bez ucięcia — liczba może zejść do drugiego wiersza */
html body .dmr-hero .dmr-chart-date-num { font-size: 12px !important; white-space: normal; overflow-wrap: anywhere; }
html body .dmr-hero .dmr-bar-col:not(.today) .dmr-bar-val { font-size: 12px !important; }
/* ═══════════ [RC-K42] FORMULARZE PLANU I KALENDARZ (AT-068, AT-071, AT-072, AT-084, AT-086) — osobny blok, K37/K40 bez zmian; kolory jak okno „Dodaj wydarzenie” ═══════════ */
/* AT-068 kafel Mikrocyklu: cel jednostki (micro_plans.goal) pod nazwą, 2 linie, min. 12 px */
.mcv3-ses-cel { display: flex; align-items: flex-start; gap: 4px; margin-top: 2px; font-size: 12px; line-height: 1.3; color: var(--d-tx, #e9eaee); }
.mcv3-ses-cel i { font-size: 12px; color: var(--d-tx-m, #a0a0a0); flex: none; margin-top: 1px; }
.mcv3-ses-cel span { min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
/* AT-071 data po polsku pod polami (dd.mm.rrrr, 24 h); błąd roku na czerwono */
#wads-event-modal .wem-k42-kiedy { margin-top: 6px; min-height: 16px; font-size: 12px; color: #c7cbd1; font-family: "JetBrains Mono", monospace; }
#wads-event-modal .wem-k42-kiedy.blad { color: #ff6b61; font-family: inherit; }
/* AT-072 czas trwania jednym dotknięciem */
#wads-event-modal .wem-k42-czas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
#wads-event-modal .wem-k42-czas-lbl { font-size: 12px; font-weight: 600; color: #9ca3af; margin-right: 2px; }
#wads-event-modal .wem-k42-dur { min-height: 36px; padding: 6px 12px; border-radius: 8px; border: 1px solid #2e333b; background: #1b1f24; color: #c7cbd1; font: 600 12px/1 inherit; font-family: inherit; cursor: pointer; }
#wads-event-modal .wem-k42-dur[aria-pressed="true"] { border-color: #fc4c02; background: rgba(252, 76, 2, .16); color: #fff; }
#wads-event-modal .wem-k42-dur:focus-visible, #wads-event-modal .wem-allday .wem-toggle:focus-visible { outline: 2px solid #fc4c02; outline-offset: 2px; }
#wads-event-modal .wem-k42-czas-w { margin-left: auto; font-size: 12px; color: #fff; font-family: "JetBrains Mono", monospace; }
@media (pointer: coarse) { #wads-event-modal .wem-k42-dur { min-height: 44px; min-width: 56px; } }
/* AT-084 linia „teraz” poza siatką 06–22: godzina pod linią (przed 06:00) / nad linią (po 22:00), nie ucięta */
.cw3-now-line.k42-now-gora .cw3-now-time { top: 4px; }
.cw3-now-line.k42-now-dol .cw3-now-time { bottom: 4px; }
/* AT-086 liczniki warstw czytelne (min. 12 px); strzałki okresu na telefonie min. 44 px */
.cms-layer .cms-count { font-size: 12px; }
@media (max-width: 768px) { #p-cal button[onclick^="calScrollWeeks"] { min-width: 44px; min-height: 44px; } }
/* r1: podgląd tylko do odczytu — chipy czasu trwania nieklikalne jak pozostałe chipy; opis tygodnia w „Kopiuj tydzień” min. 12 px */
#wads-event-modal.wem-readonly .wem-k42-dur { pointer-events: none; opacity: 1; }   /* kontrast 4,5:1 jak pozostałe chipy podglądu (A5-10) */
.cw-k42-tydz { margin-top: 4px; font-size: 12px; color: var(--ink3, #c7cbd1); }
/* AT-085 godzina na kaflu Mikrocyklu: ozdobny Syne 10 px („3” czytane jako „2”: 14:30 → „14:20”) → cyfry JetBrains Mono jak pola godziny (K16), 12 px */
.mcv3-mini-ses .mcv3-ses-time { font-family: "JetBrains Mono", monospace; font-size: 12px; font-variant-numeric: tabular-nums; }
/* ═══════════ [/RC-K42] ═══════════ */
