/* SSC Calendar — reset motywu */
#sscIndividualPublicCalendarApp *,
#sscIndividualPublicCalendarApp *::before,
#sscIndividualPublicCalendarApp *::after {
    box-sizing: border-box !important;
}

#sscIndividualPublicCalendarApp button {
    font-family: inherit !important;
    cursor: pointer !important;
}

#sscIndividualPublicCalendarApp input,
#sscIndividualPublicCalendarApp select {
    font-family: inherit !important;
    font-size: 13px !important;
}

/* SSC Individual Public Calendar v2 */

#sscIndividualPublicCalendarApp {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #0F172A;
    font-size: 14px;
    line-height: 1.5;
    max-width: 780px;
    margin: 0 auto;
}
/* ── Layout — 3 kolumny na desktop ──────────────────────── */
.ssc-ipc-layout {
    display: grid !important;
    grid-template-columns: 260px 1fr 260px !important;
    grid-template-rows: auto !important;
    gap: 16px !important;
    align-items: start !important;
    max-width: 780px !important;
    margin: 0 auto !important;
}

/* Kolumna 1: lewa (basen/osoby/cena/instruktor) */
.ssc-ipc-left {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

/* Kolumna 2: środek (kalendarz + Dalej) */
.ssc-ipc-main {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    min-width: 0 !important;
}

/* Kolumna 3: prawa (godziny) */
.ssc-ipc-times-card {
    grid-column: 3 !important;
    grid-row: 1 !important;
}

.ssc-ipc-dalej-card .ssc-ipc-btn-primary {
    margin-top: 0 !important;
}

/* Step 2 layout */
.ssc-ipc-layout-step2 {
    grid-template-columns: 240px 1fr !important;
}

/* Mobile — jedna kolumna */
@media (max-width: 900px) {
    .ssc-ipc-layout {
        grid-template-columns: 1fr !important;
    }
    .ssc-ipc-left   { grid-column: 1 !important; grid-row: 1 !important; }
    .ssc-ipc-main   { grid-column: 1 !important; grid-row: 2 !important; }
    .ssc-ipc-times-card { grid-column: 1 !important; grid-row: 3 !important; }
    .ssc-ipc-layout-step2 { grid-template-columns: 1fr !important; }
}


/* Progress */
.ssc-ipc-progress {
    display: flex;
    align-items: center;
    margin-bottom: 24px;
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}
.ssc-ipc-step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1;
}
.ssc-ipc-step-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
}
.ssc-ipc-step-circle.active { background: #1E40DD; color: #fff; }
.ssc-ipc-step-circle.done   { background: #EAF7FA; color: #0A5F70; border: 1px solid #1E40DD; }
.ssc-ipc-step-circle.idle   { background: #F1F5F9; color: #64748b; border: 1px solid #E2E8F0; }
.ssc-ipc-step-label { font-size: 11px; color: #64748b; }
.ssc-ipc-step-label.active { color: #0F172A; font-weight: 600; }
.ssc-ipc-step-line { flex: 1; height: 1px; background: #E2E8F0; margin: 0 4px 18px; }

/* Layout */



/* Cards */
.ssc-ipc-card {
    background: #fff !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 14px !important;
    padding: 16px 18px !important;
    margin-bottom: 10px !important;
    box-shadow: none !important;
    color: #0F172A !important;
}
.ssc-ipc-card:last-child { margin-bottom: 0; }
.ssc-ipc-card-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #64748b;
    margin-bottom: 12px;
}

/* Tiles */
.ssc-ipc-tile {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    padding: 9px 12px !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #0F172A !important;
    font-size: 13px !important;
    cursor: pointer !important;
    margin-bottom: 6px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    min-height: 0 !important;
}
.ssc-ipc-tile:last-child { margin-bottom: 0 !important; }
.ssc-ipc-tile:hover { border-color: #1E40DD !important; }
.ssc-ipc-tile.is-active {
    background: #EAF7FA !important;
    border-color: #1E40DD !important;
    color: #0A5F70 !important;
    font-weight: 600 !important;
}
.ssc-ipc-tile.is-disabled {
    background: #F8FAFC !important;
    color: #94A3B8 !important;
    cursor: not-allowed !important;
}
.ssc-ipc-tile.is-disabled:hover { border-color: #E2E8F0 !important; }
.ssc-ipc-tile-name { display: block !important; font-weight: 500 !important; }
.ssc-ipc-tile-sub  { display: block !important; font-size: 11px !important; color: #94A3B8 !important; margin-top: 1px !important; }
.ssc-ipc-tile.is-active .ssc-ipc-tile-sub { color: #0E7D96 !important; }

.ssc-ipc-variant-row { display: flex; gap: 8px; }
.ssc-ipc-variant-row .ssc-ipc-tile {
    flex: 1 1 0 !important;
    text-align: center !important;
    margin-bottom: 0 !important;
    min-width: 0 !important;
    padding: 9px 4px !important;
}

/* Price */
.ssc-ipc-price-block { text-align: center; padding: 4px 0; }
.ssc-ipc-price-original {
    font-size: 14px;
    color: #94A3B8;
    text-decoration: line-through;
}
.ssc-ipc-price-trial {
    font-size: 26px;
    font-weight: 700;
    color: #0F172A;
    margin: 2px 0;
    letter-spacing: -.02em;
}
.ssc-ipc-price-badge {
    display: inline-block;
    background: #EAF7FA;
    color: #0A5F70;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
}
.ssc-ipc-price-empty { font-size: 13px; color: #94A3B8; text-align: center; padding: 4px 0; }

/* Instructor */
.ssc-ipc-inst-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    cursor: pointer;
    user-select: none;
    color: #475569;
    padding: 2px 0;
}
.ssc-ipc-inst-toggle i { font-size: 15px; }
.ssc-ipc-chevron {
    margin-left: auto !important;
    font-size: 11px !important;
    color: #94A3B8 !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
    transition: color .15s !important;
}
.ssc-ipc-chevron.is-open {
    color: #1E40DD !important;
}
.ssc-ipc-inst-panel { margin-top: 10px; padding-top: 10px; border-top: 1px solid #F1F5F9; }
.ssc-ipc-inst-note { font-size: 12px; color: #64748b; margin-bottom: 8px; }
.ssc-ipc-select {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    font-size: 13px;
    background: #fff;
    color: #0F172A;
}

/* Calendar */
.ssc-ipc-cal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.ssc-ipc-nav-btn {
    background: transparent !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    padding: 4px 12px !important;
    cursor: pointer !important;
    color: #475569 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    min-width: 32px !important;
}
.ssc-ipc-nav-btn:hover {
    background: #EAF7FA !important;
    border-color: #1E40DD !important;
    color: #0A5F70 !important;
}
.ssc-ipc-cal-title { font-size: 14px; font-weight: 600; color: #0F172A; }
.ssc-ipc-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    margin-bottom: 4px;
}
.ssc-ipc-weekdays div { font-size: 11px; color: #94A3B8; text-align: center; padding: 2px 0; }
.ssc-ipc-cal-grid {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 2px !important;
}
.ssc-ipc-cal-rel { position: relative; }
.ssc-ipc-cal-cell {
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    border-radius: 6px !important;
    border: none !important;
    background: #F8FAFC !important;
    color: #CBD5E1 !important;
    font-weight: 400 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    width: 100% !important;
}
.ssc-ipc-cal-cell.is-avail {
    background: #EAF7FA !important;
    color: #0A5F70 !important;
    cursor: pointer !important;
    font-weight: 500 !important;
}
.ssc-ipc-cal-cell.is-avail:hover { background: #D1F0F7 !important; }
.ssc-ipc-cal-cell.is-sel {
    background: #1E40DD !important;
    color: #fff !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}
.ssc-ipc-cal-cell.is-past,
.ssc-ipc-cal-cell.is-empty {
    background: transparent !important;
    color: #CBD5E1 !important;
    cursor: default !important;
}
/* Sprint 22-B (F-3, F-8): dni po oknie widoczności kalendarza indywidualnego
 * (max_visible_last_date). Analog `.ssc-gt-cal-cell.is-unavailable` w grupowym.
 * Semi-transparentne + not-allowed cursor + title tooltip. */
.ssc-ipc-cal-cell.is-unavailable {
    background: transparent !important;
    color: #CBD5E1 !important;
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}
.ssc-ipc-cal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(248,250,252,.85);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: #94A3B8;
    text-align: center;
    padding: 8px;
    border-radius: 8px;
    z-index: 1;
}
.ssc-ipc-cal-loading {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    border-radius: 8px;
}

/* Times */
.ssc-ipc-date-label { font-size: 13px; font-weight: 600; color: #0F172A; margin-bottom: 8px; }
.ssc-ipc-times {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    max-height: 220px !important;
    overflow-y: auto !important;
    scrollbar-width: thin !important;
    scrollbar-color: #E2E8F0 transparent !important;
    padding-right: 4px !important;
}
.ssc-ipc-times::-webkit-scrollbar { width: 4px; }
.ssc-ipc-times::-webkit-scrollbar-track { background: transparent; }
.ssc-ipc-times::-webkit-scrollbar-thumb { background: #E2E8F0; border-radius: 2px; }
.ssc-ipc-time {
    padding: 9px 4px !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    text-align: center !important;
    cursor: pointer !important;
    background: #fff !important;
    color: #0F172A !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
}
.ssc-ipc-time:hover { border-color: #1E40DD !important; color: #0A5F70 !important; }
.ssc-ipc-time.is-active {
    background: #1E40DD !important;
    color: #fff !important;
    border-color: #1E40DD !important;
    font-weight: 600 !important;
}
.ssc-ipc-muted { font-size: 13px; color: #94A3B8; }

/* Buttons */
.ssc-ipc-btn-primary {
    display: block !important;
    width: 100% !important;
    padding: 12px !important;
    margin-top: 12px !important;
    background: transparent !important;
    color: #1E40DD !important;
    border: 2px solid #1E40DD !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    cursor: pointer !important;
    box-shadow: none !important;
}
.ssc-ipc-btn-primary:hover {
    background: #1E40DD !important;
    color: #fff !important;
}
.ssc-ipc-btn-primary:disabled {
    background: #F8FAFC !important;
    color: #94A3B8 !important;
    border-color: #E2E8F0 !important;
    cursor: not-allowed !important;
}
.ssc-ipc-btn-back {
    display: block !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
    margin: 0 !important;
    padding: 12px 24px !important;
    background: transparent !important;
    color: #1E40DD !important;
    border: 2px solid #1E40DD !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    cursor: pointer !important;
    box-shadow: none !important;
}
.ssc-ipc-btn-back:hover {
    background: #1E40DD !important;
    color: #fff !important;
}
.ssc-ipc-actions {
    display: flex !important;
    align-items: stretch !important;
    gap: 10px;
    margin-top: 16px;
}
.ssc-ipc-actions .ssc-ipc-btn-primary {
    margin-top: 0 !important;
    flex: 1;
    box-sizing: border-box !important;
    line-height: 1.2 !important;
}

/* Forms */
.ssc-ipc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ssc-ipc-field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.ssc-ipc-field span { font-weight: 600; color: #475569; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.ssc-ipc-field input {
    padding: 9px 12px;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    font-size: 13px;
    color: #0F172A;
    background: #fff;
    transition: border-color .15s;
}
.ssc-ipc-field input:focus { outline: none; border-color: #1E40DD; box-shadow: 0 0 0 3px rgba(30, 64, 221,.12); }
.ssc-ipc-field input[readonly] { background: #F8FAFC; color: #64748b; }

/* Participant */
.ssc-ipc-pt-box { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #F1F5F9; }
.ssc-ipc-pt-box:last-of-type { border-bottom: none; }
.ssc-ipc-pt-title { font-size: 13px; font-weight: 600; color: #0F172A; margin-bottom: 10px; }

/* Summary step 2 */
.ssc-ipc-sum-row { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; border-bottom: 1px solid #F1F5F9; font-size: 13px; }
.ssc-ipc-sum-row:last-of-type { border-bottom: none; }
.ssc-ipc-sum-row span { color: #64748b; }
.ssc-ipc-sum-price .ssc-ipc-sum-original { font-size: 11px; color: #94A3B8; text-decoration: line-through; text-align: right; }

/* Timer */
.ssc-ipc-timer { background: #FFF7ED; border: 1px solid #FDE68A; border-radius: 8px; padding: 8px 12px; font-size: 13px; margin-top: 12px; color: #92400E; display: flex; align-items: center; gap: 6px; }
.ssc-ipc-timer i { font-size: 15px; }

/* Notice */
.ssc-ipc-notice { padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; font-size: 13px; }
.ssc-ipc-notice.is-success { background: #F0FDF4; color: #14532D; border: 1px solid #BBF7D0; }
.ssc-ipc-notice.is-error   { background: #FEF2F2; color: #7F1D1D; border: 1px solid #FECACA; }
.ssc-ipc-notice.is-warning { background: #FFFBEB; color: #78350F; border: 1px solid #FDE68A; }

/* Account */
.ssc-ipc-account-note { background: #EAF7FA; border-radius: 8px; padding: 8px 12px; font-size: 13px; color: #0A5F70; margin-bottom: 12px; }
.ssc-ipc-divider { border: none; border-top: 1px solid #F1F5F9; margin: 16px 0; }

/* Loaders */
.ssc-ipc-loading-full { text-align: center; padding: 40px; color: #64748b; font-size: 14px; }
.ssc-ipc-loading-inline { color: #64748b; font-size: 13px; padding: 8px 0; }
.ssc-ipc-error { background: #FEF2F2; color: #7F1D1D; border-radius: 10px; padding: 16px; font-size: 14px; }

@keyframes ssc-spin { to { transform: rotate(360deg); } }
.ssc-ipc-spin { display: inline-block; animation: ssc-spin .8s linear infinite; }

/* Mobile */

@media (max-width: 500px) {
    .ssc-ipc-form-grid { grid-template-columns: 1fr; }
    .ssc-ipc-times { grid-template-columns: repeat(2, 1fr); }
}

/* ── Desktop: kalendarz + godziny obok siebie ────────────── */




/* ── Time Scroll Picker ──────────────────────────────────── */
.ssc-ipc-picker-outer {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.ssc-ipc-picker-arrows {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    flex-shrink: 0 !important;
}

.ssc-ipc-arr-btn {
    width: 40px !important;
    height: 40px !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #475569 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    transition: all .12s !important;
    padding: 0 !important;
}

.ssc-ipc-arr-btn:hover {
    border-color: #1E40DD !important;
    color: #1E40DD !important;
    background: #EAF7FA !important;
}

.ssc-ipc-arr-btn:active {
    transform: scale(.94) !important;
}

.ssc-ipc-picker-wrap {
    flex: 1 !important;
    position: relative !important;
    height: 180px !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    border: 1px solid #E2E8F0 !important;
}

.ssc-ipc-scroll {
    height: 100% !important;
    overflow-y: scroll !important;
    scrollbar-width: none !important;
    padding: 72px 0 !important;  /* = (180px - 36px) / 2 */
    scroll-snap-type: y mandatory !important;
    scroll-snap-stop: always !important;
}

.ssc-ipc-scroll::-webkit-scrollbar { display: none !important; }

.ssc-ipc-pi {
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 15px !important;
    color: #94A3B8 !important;
    cursor: pointer !important;
    scroll-snap-align: center !important;
    transition: font-size .15s, color .15s, font-weight .15s !important;
    user-select: none !important;
    font-weight: 400 !important;
}

.ssc-ipc-pi.ssc-ipc-pi-active {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #0F172A !important;
}

.ssc-ipc-ov-top {
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    height: 72px !important;
    background: linear-gradient(to bottom, #fff 0%, transparent 100%) !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

.ssc-ipc-ov-bot {
    position: absolute !important;
    bottom: 0 !important; left: 0 !important; right: 0 !important;
    height: 72px !important;
    background: linear-gradient(to top, #fff 0%, transparent 100%) !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

.ssc-ipc-sel-line {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    left: 8px !important;
    right: 8px !important;
    height: 36px !important;
    border-top: 1.5px solid #1E40DD !important;
    border-bottom: 1.5px solid #1E40DD !important;
    border-radius: 6px !important;
    pointer-events: none !important;
    z-index: 3 !important;
    background: rgba(30, 64, 221,.06) !important;
}

.ssc-ipc-picker-hint {
    font-size: 11px !important;
    color: #94A3B8 !important;
    text-align: center !important;
    margin-top: 6px !important;
}

/* Remove old times grid styles that may conflict */
.ssc-ipc-times-card .ssc-ipc-times { display: none !important; }

/* Desktop: picker obok kalendarza */
@media (min-width: 901px) {
    .ssc-ipc-picker-wrap {
        height: 180px !important;  /* Keep same height, sel-line uses 50% */
    }
    .ssc-ipc-times-card {
        position: sticky !important;
        top: 16px !important;
    }
}

/* ── Selected time summary ───────────────────────────────── */
.ssc-ipc-sel-summary {
    text-align: center !important;
    font-size: 13px !important;
    color: #64748b !important;
    padding: 10px 0 4px !important;
    border-top: 1px solid #F1F5F9 !important;
    margin-top: 8px !important;
}
.ssc-ipc-sel-summary strong {
    color: #0F172A !important;
    font-weight: 600 !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   rev6 — KROK 1 JAKO AKORDEON TRZECH PODKROKÓW
   Dopisane na końcu pliku. Reguł sprzed rev6 świadomie NIE usuwamy: część
   klas (.ssc-ipc-card, .ssc-ipc-card-label, .ssc-ipc-select, .ssc-ipc-divider,
   siatka kalendarza) jest nadal używana przez krok 2 i przez sam kalendarz.
   Klasy po dawnym kroku 1 (.ssc-ipc-tile, .ssc-ipc-price-block, picker godzin)
   przestały być renderowane i leżą bezczynnie — usunięcie ich to osobne,
   bezpieczne porządki, nie element tej zmiany.
   Paleta wyłącznie z istniejącego pliku: #1E40DD, #EAF7FA, #0F172A, #64748B,
   #E2E8F0, #F8FAFC.
   ══════════════════════════════════════════════════════════════════════════ */

.ssc-ipc-sprite { display: none !important; }
.ssc-ipc-ico { width: 100%; height: 100%; display: block; }

.ssc-ipc-flow {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    max-width: 780px !important;
    margin: 0 auto !important;
}

/* ── Podkrok: skorupa ─────────────────────────────────────────── */
.ssc-ipc-s {
    background: #fff !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}
.ssc-ipc-s.is-now  { border-color: #1E40DD !important; box-shadow: 0 0 0 3px #EAF7FA !important; }
.ssc-ipc-s.is-done { border-color: #BBE9CE !important; background: #F6FBF8 !important; }
.ssc-ipc-s.is-next { opacity: .7 !important; }

.ssc-ipc-shead {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 12px 13px !important;
}
.ssc-ipc-sicon {
    flex: none !important;
    width: 34px !important; height: 34px !important;
    border-radius: 9px !important;
    background: #EAF7FA !important;
    color: #1E40DD !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    padding: 8px !important;
}
.ssc-ipc-s.is-done .ssc-ipc-sicon { background: #DCF3E5 !important; color: #0A7C42 !important; }
.ssc-ipc-s.is-next .ssc-ipc-sicon { background: #F1F5F9 !important; color: #94A3B8 !important; }
.ssc-ipc-stexts { min-width: 0 !important; }
.ssc-ipc-stitle { font-size: 14px !important; font-weight: 700 !important; color: #0F172A !important; line-height: 1.25 !important; }
.ssc-ipc-s.is-next .ssc-ipc-stitle { color: #64748B !important; }
.ssc-ipc-schosen {
    font-size: 13px !important; color: #334155 !important; margin-top: 1px !important;
    display: flex !important; align-items: center !important; gap: 5px !important;
}
.ssc-ipc-schosen .ssc-ipc-ico { width: 14px !important; height: 14px !important; color: #0A7C42 !important; flex: none !important; }
.ssc-ipc-schange {
    margin-left: auto !important; background: none !important; border: none !important;
    color: #1E40DD !important; font-size: 12.5px !important; cursor: pointer !important;
    text-decoration: underline !important; padding: 0 !important; white-space: nowrap !important;
    box-shadow: none !important; min-height: 0 !important;
}
.ssc-ipc-sbody { padding: 0 13px 13px !important; }
.ssc-ipc-shint { margin: 0 0 10px !important; font-size: 12.5px !important; color: #64748B !important; }

/* ── Podkrok 1: lista basenów (adres POD nazwą) ───────────────── */
.ssc-ipc-pools { display: flex !important; flex-direction: column !important; gap: 7px !important; }
.ssc-ipc-pool {
    display: flex !important; align-items: center !important; gap: 11px !important;
    border: 1.5px solid #E2E8F0 !important; background: #fff !important;
    border-radius: 10px !important; padding: 10px 12px !important;
    cursor: pointer !important; text-align: left !important; width: 100% !important;
    box-shadow: none !important; min-height: 0 !important; text-transform: none !important;
    letter-spacing: 0 !important;
}
.ssc-ipc-pool:hover { border-color: #1E40DD !important; background: #F8FAFF !important; }
.ssc-ipc-pool-ic {
    flex: none !important; width: 36px !important; height: 36px !important;
    border-radius: 9px !important; background: #EAF7FA !important; color: #1E40DD !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    padding: 8px !important;
}
.ssc-ipc-pool-txt { min-width: 0 !important; }
.ssc-ipc-pool-nm { display: block !important; font-size: 14.5px !important; font-weight: 700 !important; color: #0F172A !important; line-height: 1.25 !important; }
.ssc-ipc-pool-ad { display: block !important; font-size: 11.5px !important; color: #64748B !important; line-height: 1.35 !important; margin-top: 1px !important; font-weight: 400 !important; }
.ssc-ipc-pool-go { margin-left: auto !important; color: #1E40DD !important; flex: none !important; width: 17px !important; height: 17px !important; }

/* Sześć obiektów bez przewijania: dwie kolumny na szerokim ekranie. */
@media (min-width: 901px) {
    .ssc-ipc-pools { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
}

/* ── Podkrok 2: warianty ──────────────────────────────────────── */
.ssc-ipc-pickrow { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.ssc-ipc-vopt {
    border: 1.5px solid #E2E8F0 !important; background: #fff !important;
    border-radius: 10px !important; padding: 13px 10px !important;
    cursor: pointer !important; text-align: center !important;
    box-shadow: none !important; min-height: 0 !important; text-transform: none !important;
    letter-spacing: 0 !important; color: #0F172A !important;
}
.ssc-ipc-vopt:hover { border-color: #1E40DD !important; background: #F8FAFF !important; }
.ssc-ipc-vopt.is-active { border-color: #1E40DD !important; background: #EAF7FA !important; }
.ssc-ipc-vfig {
    height: 34px !important; display: flex !important; align-items: center !important;
    justify-content: center !important; color: #1E40DD !important; margin-bottom: 6px !important;
}
.ssc-ipc-vfig .ssc-ipc-ico { width: 26px !important; height: 26px !important; }
.ssc-ipc-vopt b     { display: block !important; font-size: 14.5px !important; color: #0F172A !important; }
.ssc-ipc-vopt small { display: block !important; font-size: 12px !important; color: #64748B !important; margin-top: 3px !important; line-height: 1.35 !important; }

/* Wariant niedopuszczony w tym basenie — WŁASNY wygląd i WIDOCZNY podpis.
   Przed rev6 dzielił klasę `.is-disabled` ze stanem „jeszcze nie wybrano
   basenu", a różnił je tylko atrybut `title`, niewidoczny na telefonie. */
.ssc-ipc-vopt.is-unavail {
    background: repeating-linear-gradient(135deg,#FAFAFA,#FAFAFA 6px,#F3F4F6 6px,#F3F4F6 12px) !important;
    border-color: #E2E8F0 !important;
    cursor: not-allowed !important;
}
.ssc-ipc-vopt.is-unavail:hover { border-color: #E2E8F0 !important; }
.ssc-ipc-vopt.is-unavail b       { color: #94A3B8 !important; }
.ssc-ipc-vopt.is-unavail .ssc-ipc-vfig { color: #CBD5E1 !important; }
.ssc-ipc-vflag { display: block !important; font-size: 11px !important; font-weight: 700 !important; color: #B45309 !important; margin-top: 4px !important; line-height: 1.3 !important; }

/* ── Blok ceny: jedna kolumna ─────────────────────────────────── */
.ssc-ipc-pricebox {
    background: #fff !important; border: 1px solid #E2E8F0 !important;
    border-radius: 12px !important; padding: 13px 14px !important;
}
.ssc-ipc-price-cap { font-size: 11.5px !important; letter-spacing: .07em !important; text-transform: uppercase !important; color: #64748B !important; font-weight: 700 !important; }
.ssc-ipc-price-row { display: flex !important; align-items: center !important; gap: 10px !important; margin-top: 3px !important; }
.ssc-ipc-price-now { font-size: 31px !important; font-weight: 800 !important; color: #1E40DD !important; line-height: 1 !important; letter-spacing: -.02em !important; font-style: normal !important; }
.ssc-ipc-price-tag { background: #1E40DD !important; color: #fff !important; border-radius: 20px !important; padding: 3px 10px !important; font-size: 11.5px !important; font-weight: 800 !important; }
.ssc-ipc-price-was { margin-top: 5px !important; font-size: 12.5px !important; color: #64748B !important; }
.ssc-ipc-price-was s { font-weight: 700 !important; }

/* ── Pasek skoku do miesiąca z terminami ──────────────────────── */
.ssc-ipc-jump {
    background: #FFF7ED !important; border: 1px solid #FDE3C0 !important;
    border-radius: 9px !important; padding: 8px 10px !important; margin-bottom: 9px !important;
    font-size: 12.5px !important; color: #7C4A0B !important;
    display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important;
}
.ssc-ipc-jump button {
    margin-left: auto !important; background: #1E40DD !important; color: #fff !important;
    border: none !important; border-radius: 7px !important; padding: 5px 10px !important;
    font-size: 12px !important; font-weight: 700 !important; cursor: pointer !important;
    white-space: nowrap !important; box-shadow: none !important; min-height: 0 !important;
}

/* ── Blok godzin ──────────────────────────────────────────────── */
.ssc-ipc-twocol { display: grid !important; grid-template-columns: 1fr 200px !important; gap: 14px !important; align-items: start !important; }
@media (max-width: 700px) { .ssc-ipc-twocol { grid-template-columns: 1fr !important; } }

.ssc-ipc-hourbox {
    margin-top: 12px !important; border: 2px solid #1E40DD !important;
    background: #EAF7FA !important; border-radius: 11px !important; padding: 11px 12px !important;
}
.ssc-ipc-twocol .ssc-ipc-hourbox { margin-top: 0 !important; }
.ssc-ipc-hourbox.is-reveal { animation: ssc-ipc-pop .5s ease-out; }
@keyframes ssc-ipc-pop {
    0%   { transform: translateY(6px); box-shadow: 0 0 0 0 rgba(30,64,221,.35); }
    60%  { box-shadow: 0 0 0 8px rgba(30,64,221,0); }
    100% { transform: translateY(0);  box-shadow: 0 0 0 0 rgba(30,64,221,0); }
}
@media (prefers-reduced-motion: reduce) { .ssc-ipc-hourbox.is-reveal { animation: none; } }
.ssc-ipc-hh { display: flex !important; align-items: center !important; gap: 7px !important; font-size: 13.5px !important; font-weight: 800 !important; color: #1E40DD !important; margin-bottom: 3px !important; }
.ssc-ipc-hh .ssc-ipc-ico { width: 16px !important; height: 16px !important; }
.ssc-ipc-hsub { font-size: 12px !important; color: #3A4A9E !important; margin: 0 0 9px !important; }
.ssc-ipc-hours { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
.ssc-ipc-hour {
    border: 1.5px solid #C7D2FB !important; background: #fff !important;
    border-radius: 9px !important; padding: 8px 12px !important; font-size: 13.5px !important;
    cursor: pointer !important; font-weight: 700 !important; color: #0F172A !important;
    box-shadow: none !important; min-height: 0 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.ssc-ipc-hour[aria-pressed="true"] { border-color: #1E40DD !important; background: #1E40DD !important; color: #fff !important; }

/* ── Cicha linia instruktora ──────────────────────────────────── */
.ssc-ipc-instrow {
    display: flex !important; align-items: center !important; gap: 9px !important;
    font-size: 13px !important; color: #64748B !important;
    background: #fff !important; border: 1px solid #E2E8F0 !important;
    border-radius: 12px !important; padding: 11px 13px !important;
}
.ssc-ipc-instrow .ssc-ipc-ico { width: 18px !important; height: 18px !important; color: #1E40DD !important; flex: none !important; }
.ssc-ipc-instrow b { color: #0F172A !important; font-weight: 600 !important; }
.ssc-ipc-instlink {
    margin-left: auto !important; background: none !important; border: none !important;
    color: #1E40DD !important; font-size: 12.5px !important; cursor: pointer !important;
    text-decoration: underline !important; padding: 0 !important; box-shadow: none !important; min-height: 0 !important;
}
.ssc-ipc-inst-panel {
    background: #fff !important; border: 1px solid #E2E8F0 !important; border-top: none !important;
    border-radius: 0 0 12px 12px !important; padding: 0 13px 12px !important; margin-top: -6px !important;
}

/* ── Paski podsumowania ───────────────────────────────────────────
   Oba są w markupie zawsze; próg 900 px (ten sam co reszta responsywności)
   decyduje, który jest widoczny. Bez detekcji urządzenia w JS. */
.ssc-ipc-deskbar {
    display: flex !important; align-items: center !important; gap: 22px !important; flex-wrap: wrap !important;
    background: #1E40DD !important; color: #fff !important;
    padding: 14px 20px !important; border-radius: 12px !important;
    max-width: 780px !important; margin: 14px auto 0 !important;
}
.ssc-ipc-bar-item { display: flex !important; align-items: center !important; gap: 8px !important; }
.ssc-ipc-bar-item .ssc-ipc-ico { width: 18px !important; height: 18px !important; opacity: .85 !important; flex: none !important; }
.ssc-ipc-bar-k { font-size: 11px !important; text-transform: uppercase !important; letter-spacing: .06em !important; opacity: .75 !important; display: block !important; line-height: 1.2 !important; }
.ssc-ipc-bar-v { font-size: 14.5px !important; font-weight: 800 !important; display: block !important; line-height: 1.25 !important; }
.ssc-ipc-bar-v.is-empty { opacity: .5 !important; font-weight: 600 !important; }
.ssc-ipc-deskbar .ssc-ipc-continue {
    margin-left: auto !important; background: #fff !important; color: #1E40DD !important;
    padding: 12px 24px !important; font-size: 15px !important; width: auto !important; margin-top: 0 !important;
}
.ssc-ipc-deskbar .ssc-ipc-continue[disabled] { background: rgba(255,255,255,.28) !important; color: rgba(255,255,255,.7) !important; }

.ssc-ipc-sticky {
    display: none !important;
    position: sticky !important; bottom: 0 !important; z-index: 20 !important;
    background: rgba(255,255,255,.97) !important; border-top: 1px solid #E2E8F0 !important;
    padding: 10px 13px !important; align-items: center !important; gap: 10px !important;
    margin: 12px -13px 0 !important;
}
.ssc-ipc-sticky-t { font-size: 12.5px !important; color: #64748B !important; line-height: 1.35 !important; min-width: 0 !important; }
.ssc-ipc-sticky-t b { color: #0F172A !important; display: block !important; font-size: 13.5px !important; }
.ssc-ipc-sticky .ssc-ipc-continue { margin-left: auto !important; width: auto !important; padding: 10px 16px !important; font-size: 14px !important; white-space: nowrap !important; margin-top: 0 !important; }

@media (max-width: 900px) {
    .ssc-ipc-deskbar { display: none !important; }
    .ssc-ipc-sticky  { display: flex !important; }
    .ssc-ipc-pickrow { grid-template-columns: 1fr 1fr !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   rev7 — POPRAWKI WIZUALNE (errata do rev6). WYŁĄCZNIE CSS.
   Zero zmian w JS, w treści, w układzie i w kolejności. Reguły dopisane
   na końcu pliku, nieprzeplatane z istniejącymi.

   ── DLACZEGO PRZYCISK BYŁ OBRYSOWANY ────────────────────────────────────
   To NIE jest nadpisanie przez motyw. Przyczyna siedzi we własnym pliku
   wtyczki, w regule sprzed rev6 (linie 398-413):

       .ssc-ipc-btn-primary { background: transparent !important;
                              color: #1E40DD !important;
                              border: 2px solid #1E40DD !important; }

   To jest przycisk OBRYSOWANY z założenia — wypełnia się dopiero na :hover
   (:414-417). Na komputerze rev6 dołożyło własne nadpisanie w pasku
   (.ssc-ipc-deskbar .ssc-ipc-continue), ale pasek telefonu takiego
   nadpisania nie dostał, więc przycisk spadał do reguły bazowej: przezroczysty
   na białym pasku. Na dotyku nie ma :hover, więc nigdy się nie wypełniał.

   Ponieważ reguła bazowa ma `!important`, samo dopisanie nowej nie wystarczy —
   potrzebna jest WYŻSZA SPECYFICZNOŚĆ plus `!important`. Stąd selektory
   dwuczłonowe (.ssc-ipc-sticky .ssc-ipc-continue = 0,2,0 kontra
   .ssc-ipc-btn-primary = 0,1,0) i trójczłonowe dla stanu wyłączonego.
   Bez scope'u pod klasą modułu i bez reguł na goły `button`.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Ikony wariantu: 26 px → 19 px ─────────────────────────────────────
   Ikony w nagłówkach podkroków (.ssc-ipc-sicon) i w wierszach basenów
   (.ssc-ipc-pool-ic) zostają bez zmian — dotykamy wyłącznie .ssc-ipc-vfig. */
.ssc-ipc-vfig {
    height: auto !important;
    margin-bottom: 5px !important;
}
.ssc-ipc-vfig .ssc-ipc-ico {
    width: 19px !important;
    height: 19px !important;
}
.ssc-ipc-vopt small { margin-top: 2px !important; }

/* ── 2. Pasek podsumowania na komputerze: jasny, nie niebieski blok ───────── */
.ssc-ipc-deskbar {
    background: #fff !important;
    color: #0F172A !important;
    border-top: 2px solid #1E40DD !important;
    border-radius: 12px !important;
    box-shadow: 0 -6px 20px rgba(15,23,42,.10) !important;
    padding: 13px 18px !important;
    gap: 22px !important;
}
.ssc-ipc-deskbar .ssc-ipc-ico { color: #1E40DD !important; opacity: .75 !important; }
.ssc-ipc-bar-k {
    font-size: 10.5px !important;
    letter-spacing: .07em !important;
    color: #64748B !important;
    opacity: 1 !important;
    font-weight: 700 !important;
}
.ssc-ipc-bar-v {
    font-size: 14.5px !important;
    font-weight: 800 !important;
    color: #0F172A !important;
}
/* Pusta wartość: jasnoszary myślnik — widać, że pole czeka, ale nie krzyczy. */
.ssc-ipc-bar-v.is-empty {
    color: #CBD5E1 !important;
    opacity: 1 !important;
    font-weight: 600 !important;
}
/* Separatory między polami. W mockupie są osobnymi elementami <span class="sep">,
   ale rev7 nie wolno dotykać JS-a — więc kreska powstaje z obramowania sąsiada.
   Efekt ten sam, markup nietknięty. */
.ssc-ipc-deskbar .ssc-ipc-bar-item + .ssc-ipc-bar-item {
    border-left: 1px solid #E2E8F0 !important;
    padding-left: 22px !important;
}

/* Przycisk w pasku komputera: PEŁNY niebieski (rev6 miał odwrotkę — biały
   na niebieskim tle; ta kolorystyka nie występuje nigdzie indziej w serwisie). */
.ssc-ipc-deskbar .ssc-ipc-continue {
    background: #1E40DD !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 22px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: 0 3px 10px rgba(30,64,221,.28) !important;
    white-space: nowrap !important;
}
.ssc-ipc-deskbar .ssc-ipc-continue:hover { background: #152FA6 !important; color: #fff !important; }
.ssc-ipc-deskbar .ssc-ipc-continue[disabled] {
    background: #E2E8F0 !important;
    color: #94A3B8 !important;
    border: none !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}

/* ── 3. Pasek i przycisk na telefonie ─────────────────────────────────────── */
.ssc-ipc-sticky {
    background: #fff !important;
    border-top: 2px solid #1E40DD !important;
    box-shadow: 0 -6px 18px rgba(15,23,42,.12) !important;
    padding: 11px 13px !important;
    gap: 11px !important;
}
.ssc-ipc-sticky-t b { font-size: 14px !important; font-weight: 800 !important; color: #0F172A !important; line-height: 1.25 !important; }
.ssc-ipc-sticky-t span { display: block !important; font-size: 12px !important; color: #64748B !important; line-height: 1.3 !important; }

/* Selektor dwuczłonowy bije bazową .ssc-ipc-btn-primary (patrz nagłówek sekcji). */
.ssc-ipc-sticky .ssc-ipc-continue {
    background: #1E40DD !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 11px 18px !important;
    font-size: 14.5px !important;
    font-weight: 800 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: 0 3px 10px rgba(30,64,221,.28) !important;
    white-space: nowrap !important;
}
.ssc-ipc-sticky .ssc-ipc-continue:hover { background: #152FA6 !important; color: #fff !important; }
/* Trójczłonowy, żeby pewnie pobić .ssc-ipc-btn-primary:disabled (0,2,0). */
.ssc-ipc-sticky .ssc-ipc-continue[disabled] {
    background: #E2E8F0 !important;
    color: #94A3B8 !important;
    border: none !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   POTWIERDZENIE PO REZERWACJI (06.08.2026)
   Dopisane NA KOŃCU pliku - zero zmian w istniejących regułach. Nowe klasy
   występują wyłącznie w bloku, który pojawia się po udanej rezerwacji, więc
   nie mają jak wpłynąć na wygląd kalendarza ani listy godzin.
   ═══════════════════════════════════════════════════════════════════════ */

.ssc-ipc-booked { text-align: center; padding: 8px 4px; }

.ssc-ipc-booked-title {
    font-size: 18px;
    font-weight: 700;
    color: #1F7A3D;
    margin-bottom: 6px;
}

.ssc-ipc-booked-when { font-size: 16px; margin-bottom: 4px; }

.ssc-ipc-booked-meet { margin: 16px 0 8px; min-height: 40px; }

.ssc-ipc-booked-more { margin-top: 12px; }

.ssc-ipc-btn {
    display: inline-block;
    padding: 10px 18px;
    border: 1px solid #3A4A9E;
    border-radius: 8px;
    background: #fff;
    color: #3A4A9E;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.ssc-ipc-btn:hover { background: #F2F4FF; }

.ssc-ipc-btn--primary {
    background: #3A4A9E;
    color: #fff;
    border-color: #3A4A9E;
}

.ssc-ipc-btn--primary:hover { background: #2E3C82; color: #fff; }

/* ══════════════════════════════════════════════════════════════════════
   KARTA SESJI: STOS PRZYCISKÓW + PRZYCISK CZEKAJĄCY (06.08.2026)
   ──────────────────────────────────────────────────────────────────────
   Wg zaakceptowanego mockupu `mockup-karta-sesji-i-dymek.html`, sekcje A i B.
   Dopisane NA KOŃCU pliku - zero zmian w istniejących regułach.

   WAGI SELEKTORÓW (lekcja z dzisiejszych dwóch errat dymka - waga liczona,
   nie zgadywana; każde `:not()` też się dolicza):

     panel, akapity  `.woocommerce-account .woocommerce-MyAccount-content p`
                     → (0,2,1) `!important`
     panel, odnośniki `... a:not(.button):not(.ssc-tab-link):not([class*="-btn"])
                       :not([class*="-button"]):not([class*="__action"])`
                     → (0,7,1) `!important`, wariant :hover (0,8,1)
     panel, przyciski `... button[type="submit"]` → (0,3,1) `!important`

   Jak omijamy każdą z nich - ŚWIADOMIE, nie przypadkiem:

   1. Zdanie „Przygotowujemy link…" to `<div>`, NIE `<p>` - reguła akapitów
      panelu w ogóle go nie dotyczy. Wybór elementu zamiast wojny na wagi.
   2. „Dołącz do spotkania" (gotowy) to odnośnik z klasą
      `ssc-per-sub-action-btn` - zawiera ciąg `-btn`, czyli WPADA w wykluczenie
      `:not([class*="-btn"])` reguły odnośników. Panel go nie maluje.
   3. Przycisk czekający to `<button type="button">`, a reguła panelu celuje
      wyłącznie w `button[type="submit"]` - nie trafia. Zostaje globalne
      `button {…}` motywu Padeliva (0,0,1); reguła niżej ma (0,3,2) plus
      `!important`, więc wygrywa z zapasem.

   Żadna z tych reguł nie musi więc bić reguły panelu „na siłę" - trzy z czterech
   omijamy doborem elementu i klasy, a jedyną realną konkurencję (motyw) bijemy
   wagą wyliczoną, nie na oko.
   ══════════════════════════════════════════════════════════════════════ */

/* Stos przycisków: jednakowa szerokość, równy odstęp, jeden pod drugim. */
.ssc-ipc-actions-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 18px;
}

/* Kotwica dymka potwierdzenia siedzi w stosie - musi zajmować całą szerokość,
   inaczej „Odwołaj termin" byłby węższy od „Dołącz do spotkania".
   Pozycjonowanie samego dymka (position: relative) zostaje nietknięte. */
.ssc-ipc-actions-stack .ssc-confirm {
    display: block;
    width: 100%;
}

.ssc-ipc-actions-stack .ssc-per-sub-action-btn {
    width: 100%;
}

/* ── Przycisk czekający na adres spotkania ──────────────────────────────
   Klasa stanu wyłączonego jest ISTNIEJĄCA (`ssc-per-sub-action-btn--disabled`,
   ta sama co przy „Kontynuuj zajęcia") - tu tylko dorównujemy jej kształt do
   pozostałych przycisków w stosie, żeby po zapaleniu nic nie drgnęło.        */
body.woocommerce-account .woocommerce-MyAccount-content button.ssc-ipc-btn-wait,
button.ssc-ipc-btn-wait {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 10px !important;
    padding: 11px 16px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    background: transparent !important;
    border: 1.5px solid var(--ssc-per-sub-btn-disabled-border, #C7D2E5) !important;
    color: var(--ssc-per-sub-btn-disabled-text, #8590AC) !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    min-height: 0 !important;
    font-family: inherit !important;
}

/* Wyłączony ma NIE reagować - żadnego podświetlenia pod kursorem. */
body.woocommerce-account .woocommerce-MyAccount-content button.ssc-ipc-btn-wait:hover,
button.ssc-ipc-btn-wait:hover {
    background: transparent !important;
    color: var(--ssc-per-sub-btn-disabled-text, #8590AC) !important;
    border-color: var(--ssc-per-sub-btn-disabled-border, #C7D2E5) !important;
}

/* ── Zdanie wyjaśniające pod przyciskiem ────────────────────────────────
   Świadomie `<div>`, nie `<p>` - patrz punkt 1 w nagłówku sekcji.          */
.ssc-ipc-waitnote {
    margin-top: 8px;
    font-size: 12.5px;
    line-height: 1.4;
    color: #64748B;
    text-align: center;
}

.ssc-ipc-waitnote__dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #F59E0B;
    margin-right: 6px;
    vertical-align: 1px;
}

/* Blok z przyciskiem po rezerwacji: stała wysokość nie jest potrzebna, bo
   przycisk stoi tam od początku - zmienia się tylko jego stan i zdanie pod nim. */
.ssc-ipc-booked-meet {
    margin: 16px 0 8px;
}

/* ── Wąski ekran ────────────────────────────────────────────────────────
   Stos jest pionowy z natury, więc nic się nie rozjeżdża; wymuszamy tylko,
   żeby przyciski nie próbowały być szersze od karty.                        */
@media (max-width: 640px) {
    .ssc-ipc-actions-stack .ssc-per-sub-action-btn,
    button.ssc-ipc-btn-wait {
        max-width: 100% !important;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   KALENDARZ I GODZINY — WYŁĄCZNIE PANEL KLIENTA (06.08.2026)
   ──────────────────────────────────────────────────────────────────────
   Wg zaakceptowanego mockupu `mockup-kalendarz-i-godziny.html`.

   ═══ GRANICA: `.ssc-ipc-flow--panel` ═══
   Ten arkusz obsługuje PIĘĆ powierzchni, w tym TRZY, które sprzedają:
   publiczny lejek zapisu na zajęcia indywidualne, stronę sprzedaży planów
   treningowych i stronę sprzedaży wideoanalizy. Dlatego KAŻDA reguła poniżej
   zawiera klasę `.ssc-ipc-flow--panel`, którą noszą wyłącznie dwa kontenery
   w panelu klienta (wideoanaliza i konsultacja planu). Bez tej klasy żadna
   z tych reguł nie działa - strony sprzedażowe ich nie widzą.

   Do tego zapasowe zawężenie `body.woocommerce-account`: panel klienta zawsze
   siedzi pod adresem „Moje konto", strony sprzedażowe nigdy. Gdyby ta klasa
   z jakiegokolwiek powodu zniknęła, reguły przestaną działać i ekran wróci
   do dzisiejszego wyglądu - czyli awaria idzie w stronę bezpieczną.

   Żadna istniejąca reguła nie jest ruszona; to dopisek na końcu pliku.

   ═══ WAGI ═══
   Nowe reguły nie konkurują z regułami panelu konta:
   - kafle godzin i komórki kalendarza to `<button>` BEZ `type="submit"`,
     a panel maluje tylko `button[type="submit"]` (0,3,1) - nie trafia;
   - pasek „Prowadzi …", pole pustego dnia i szkielet to `<div>`, nie `<p>` -
     reguła akapitów panelu (0,2,1) ich nie dotyczy;
   - jedyna realna konkurencja to globalne `button {…}` motywu Padeliva (0,0,1)
     z `!important`; reguły kafli mają (0,4,2) plus `!important`, więc wygrywają
     z zapasem.
   Reguły kalendarza konkurują natomiast z WŁASNYMI regułami tego arkusza
   (`.ssc-ipc-cal-cell`, 0,1,0 z `!important`) - stąd `!important` po naszej
   stronie przy wyższej wadze.
   ══════════════════════════════════════════════════════════════════════ */

/* 1. Siatka godzin zamiast zawijanego rzędu. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)) !important;
    gap: 6px !important;
}

/* 2. Kafel godziny: mniejszy, lżejszy, sama godzina. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--sm {
    padding: 9px 6px !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    border: 1px solid #DBE3F2 !important;
    background: #fff !important;
    color: #0F172A !important;
    text-align: center !important;
    min-height: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    font-family: inherit !important;
}

/* 3. Kafel pod kursorem. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--sm:hover {
    border-color: #1E40DD !important;
    background: #F5F8FF !important;
    color: #0F172A !important;
}

/* 4. Kafel w trakcie rezerwowania - wypełniony kolorem marki, tym samym,
      którym kalendarz zaznacza wybrany dzień. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--busy {
    background: #1E40DD !important;
    border-color: #1E40DD !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* 5. Nazwisko przy kaflu - tylko gdy w dniu prowadzą różne osoby. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour__who {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: #64748B;
    margin-top: 3px;
}

/* 6. Pasek „Prowadzi …" nad listą godzin. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours-lead {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #475569;
    margin: 0 0 10px;
    padding: 8px 10px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 10px;
}

body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours-lead b {
    color: #0F172A;
    font-weight: 600;
}

body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours-lead__ico {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #1E40DD;
    flex: none;
}

/* 7. Dzień bez wolnych godzin. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-empty {
    background: #F8FAFC;
    border: 1px dashed #CBD5E1;
    border-radius: 10px;
    padding: 14px;
    text-align: center;
    font-size: 13px;
    line-height: 1.45;
    color: #64748B;
}

/* 8. Wczytywanie - puste kafle w docelowym układzie. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-skel {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    gap: 6px;
}

body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-skel i {
    display: block;
    height: 36px;
    border-radius: 8px;
    background: #EEF2F7;
    animation: sscIpcPanelPulse 1.1s ease-in-out infinite;
}

/* 9. Dzień dzisiejszy - obwódka. Reszta siatki kalendarza BEZ ZMIAN. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-cal-cell.is-today {
    box-shadow: inset 0 0 0 2px #1E40DD !important;
    font-weight: 700 !important;
}

/* 10. Telefon - cztery kolumny zamiast długiej kolumny na pół ekranu. */
@media (max-width: 640px) {
    body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid,
    body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-skel {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* Szanujemy ustawienie „ogranicz animacje" w systemie. */
@media (prefers-reduced-motion: reduce) {
    body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-skel i {
        animation: none;
    }
}

/* Klatki animacji szkieletu. Nazwa własna (`sscIpcPanelPulse`) - sama z siebie
   NIC nie maluje i nie da się jej „przypadkiem" użyć gdzie indziej; działa
   wyłącznie tam, gdzie odwołuje się do niej reguła 8, czyli w panelu. */
@keyframes sscIpcPanelPulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}

/* ══════════════════════════════════════════════════════════════════════
   ERRATA (06.08.2026): WYBÓR GODZINY W DWÓCH KROKACH — PANEL KLIENTA
   ──────────────────────────────────────────────────────────────────────
   Ta sama granica co w bloku wyżej: KAŻDA reguła zawiera `.ssc-ipc-flow--panel`
   plus zapasowe `body.woocommerce-account`. Strony sprzedażowe (publiczny lejek,
   sprzedaż planów, sprzedaż wideoanalizy) nie mają tej klasy i tych reguł nie
   widzą. Dopisek na końcu pliku, zero zmian w regułach istniejących.

   STAŁA WYSOKOŚĆ KAFLA to nie kosmetyka: kafel zaznaczony ma DWIE linie
   (godzina + „Wybieram"), a niezaznaczony jedną. Bez wspólnej wysokości
   zaznaczenie rozpychałoby rząd i przesuwało sąsiednie godziny - na telefonie
   szczególnie dotkliwie. Wysokość ustawiona z góry dla WSZYSTKICH kafli, więc
   siatka stoi równo niezależnie od stanu.
   ══════════════════════════════════════════════════════════════════════ */

/* 15. Wspólna wysokość i układ kafla - dwie linie mieszczą się bez rozpychania. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--sm {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    line-height: 1.15 !important;
}

/* 16. Godzina WYBRANA, jeszcze nie zarezerwowana - wypełniona kolorem marki,
       tym samym, którym kalendarz zaznacza wybrany dzień. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--pick {
    background: #1E40DD !important;
    border-color: #1E40DD !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* 17. Słowo „Wybieram" pod godziną - godzina zostaje czytelna. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour__pick {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-top: 2px;
    color: #DDE4FF;
}

/* ══════════════════════════════════════════════════════════════════════
   ERRATA (06.08.2026): POTWIERDZANIE GODZINY DYMKIEM — PANEL KLIENTA
   ──────────────────────────────────────────────────────────────────────
   Ta sama granica co w blokach wyżej: KAŻDA reguła zawiera
   `.ssc-ipc-flow--panel` plus zapasowe `body.woocommerce-account`. Publiczny
   lejek i obie strony sprzedażowe tych reguł nie widzą.

   ═══ DLACZEGO DYMEK KOTWICZY SIĘ DO SIATKI, A NIE DO KAFLA ═══
   Wspólny komponent umieszcza dymek nad elementem z klasą `ssc-confirm`.
   Gdyby był nim sam kafel (76 px szerokości), dymek szeroki na 270 px wyszedłby
   poza kartę przy pierwszej kolumnie i poza ekran telefonu przy ostatniej.
   Nie da się tego naprawić samym CSS-em, bo arkusz nie wie, w której kolumnie
   stoi kliknięty kafel.

   Rozwiązanie: zdejmujemy punkt odniesienia z kafla (`position: static`)
   i nadajemy go SIATCE (`position: relative`). Dymek liczy wtedy swoje
   położenie względem całego rzędu godzin i zawsze mieści się w karcie -
   w każdej kolumnie, na każdej szerokości ekranu. Której godziny dotyczy,
   mówi jego własna treść („Zarezerwować 11:00?"), a kafel pod spodem jest
   podświetlony.

   Skutek uboczny, świadomy: dymek zasłania fragment listy godzin. Ma własne
   tło i mocny cień, więc widać, że coś na nich LEŻY, a nie że zniknęły.
   ══════════════════════════════════════════════════════════════════════ */

/* 18. Punkt odniesienia przenosimy z kafla na siatkę. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid {
    position: relative !important;
}

/* 19. Opakowanie kafla przestaje być kotwicą i nie zmienia układu siatki. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour-wrap {
    position: static !important;
    display: block !important;
}

/* 20. Kafel wypełnia całą komórkę siatki, tak jak przed dołożeniem opakowania. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour-wrap .ssc-ipc-hour--sm {
    width: 100% !important;
}

/* 21. Dymek nad siatką: wyśrodkowany, nigdy szerszy niż karta. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid .ssc-confirm-pop {
    left: 50% !important;
    right: auto !important;
    -webkit-transform: translateX(-50%) !important;
    transform: translateX(-50%) !important;
    max-width: 100% !important;
}

/* 22. Strzałka na środku - wskazuje rząd godzin, którego dymek dotyczy. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid .ssc-confirm-pop::after {
    right: 50% !important;
    margin-right: -9px !important;
}

/* 23. Kafel z otwartym potwierdzeniem - podświetlony, żeby było widać,
       o którą godzinę chodzi. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--sm[aria-expanded="true"] {
    background: #1E40DD !important;
    border-color: #1E40DD !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* MARTWE PO TEJ ERRACIE, ZOSTAWIONE ŚWIADOMIE:
   reguły 16 i 17 (`.ssc-ipc-hour--pick`, `.ssc-ipc-hour__pick`) obsługiwały
   wzorzec „Wybieram", który właśnie zniknął - żaden kod nie nadaje już tych
   klas. Zostają, bo ich usunięcie znaczyłoby ruszanie istniejących linii
   arkusza, a to jest dokładnie ta klasa zmian, której w tym pliku unikamy.
   Nic nie malują, dopóki nikt nie nada tych klas.
   Reguła 15 (wspólna wysokość kafla 48 px) ZOSTAJE ŻYWA - kafle są teraz
   jednoliniowe, ale równa wysokość dalej trzyma siatkę spokojną. */

/* ══════════════════════════════════════════════════════════════════════
   ERRATA (06.08.2026): DYMEK PRZY KAFLU + WIDOCZNA GODZINA — PANEL KLIENTA
   ──────────────────────────────────────────────────────────────────────
   Ta sama granica: KAŻDA reguła zawiera `.ssc-ipc-flow--panel` plus zapasowe
   `body.woocommerce-account`.

   ═══ USTERKA 1: GRANAT NA GRANACIE ═══
   Godzina w kaflu siedzi w elemencie `.ssc-ipc-hh`, któremu arkusz nadaje
   `color: #1E40DD !important` (linia 841). Ta klasa powstała jako NAGŁÓWEK
   sekcji („Wybierz godzinę") w publicznym lejku i tam stoi na białym tle -
   dopiero my użyliśmy jej jako etykiety W ŚRODKU kafla. Gdy kafel robi się
   granatowy, granatowy napis znika.

   Wagi: reguła nagłówka (0,1,0) z `!important`; reguła niżej (0,4,2)
   z `!important` - wygrywa. Zamiast malować godzinę na biało w każdym stanie
   z osobna, zdejmujemy z niej WŁASNY kolor (`inherit`) i pozwalamy jej brać
   kolor z kafla. Dzięki temu wszystkie stany - zwykły, otwarty, „Rezerwuję…" -
   są poprawne z jednej reguły i nie trzeba pamiętać o kolejnych.

   Sprawdzone, czy problem nie występuje gdzie indziej: `.ssc-ipc-hh` w publicznym
   lejku i na stronach sprzedażowych jest używana wyłącznie jako NAGŁÓWEK na białym
   tle (ssc-individual-public-calendar.js:423), nigdy wewnątrz ciemnego elementu -
   tam kolizji nie ma i nic tam nie zmieniamy.

   ═══ USTERKA 2: DYMEK PRZY SWOIM KAFLU ═══
   Kotwica wraca na kafel (poprzednio była przeniesiona na całą siatkę, żeby dymek
   nie wychodził poza ekran - cel dobry, efekt zły). Teraz dymek wisi nad swoim
   kaflem, a mieszczenie się przy krawędzi załatwia pomiar w przeglądarce, wyłącznie
   na tym ekranie (patrz `nudgePop` w skryptach panelu). Strzałka przesuwa się
   o tyle samo w drugą stronę, więc dalej wskazuje kliknięty kafel.
   ══════════════════════════════════════════════════════════════════════ */

/* 24. Godzina bierze kolor z kafla - zamiast własnego, wymuszonego granatu.
       Przy okazji zdejmujemy z niej odstęp i układ nagłówka sekcji. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour--sm .ssc-ipc-hh {
    color: inherit !important;
    display: block !important;
    margin-bottom: 0 !important;
    gap: 0 !important;
    font-size: 13.5px !important;
    font-weight: inherit !important;
}

/* 25. Kotwica wraca na kafel. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour-wrap {
    position: relative !important;
}

/* 26. Siatka przestaje być punktem odniesienia. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hours--grid {
    position: static !important;
}

/* 27. Dymek wyśrodkowany NAD KAFLEM. Przesunięcie przy krawędzi dokłada
       skrypt (`margin-left`), więc tu ustawiamy tylko punkt wyjścia. */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour-wrap .ssc-confirm-pop {
    left: 50% !important;
    right: auto !important;
    -webkit-transform: translateX(-50%) !important;
    transform: translateX(-50%) !important;
    width: 260px !important;
    max-width: 86vw !important;
}

/* 28. Strzałka na środku dymka, a przy przesunięciu wraca nad kafel -
       o tyle samo pikseli w drugą stronę (zmienną ustawia skrypt). */
body.woocommerce-account .ssc-ipc-flow--panel .ssc-ipc-hour-wrap .ssc-confirm-pop::after {
    right: 50% !important;
    margin-right: calc(-9px + var(--ssc-pop-arrow-nudge, 0px)) !important;
}

/* ZASTĄPIONE PRZEZ POWYŻSZE, ZOSTAWIONE ŚWIADOMIE:
   reguły 18, 21 i 22 z poprzedniej erraty (kotwica na siatce i dymek nad całą
   siatką) są teraz nadpisywane przez reguły 26, 27 i 28. Mają tę samą wagę,
   więc rozstrzyga kolejność w pliku - nowe stoją niżej i wygrywają.
   Nie usuwam tamtych linii, bo usuwanie znaczyłoby ruszanie istniejącej treści
   arkusza, czego w tym pliku konsekwentnie unikamy. Gdyby kiedyś trzeba było
   wrócić do kotwiczenia na siatce, wystarczy usunąć blok 26-28. */
