.wpab-calendar-root { max-width: 720px; margin: 0 auto 1rem; font-family: sans-serif; }
.wpab-cal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:0.5rem; }
.wpab-cal-header .wpab-title { font-weight:700; }
.wpab-calendar-table { width:100%; border-collapse:collapse; }
.wpab-calendar-table th, .wpab-calendar-table td { border:1px solid #eee; padding:8px; vertical-align:top; height:90px; position:relative; }
.wpab-empty { background:#fafafa; }
.wpab-day { cursor:pointer; position:relative; }
.wpab-day .wpab-day-number { font-size:0.95rem; font-weight:600; }
.wpab-badge { position:absolute; right:6px; bottom:6px; background:#ff5d5d; color:#fff; padding:4px 8px; border-radius:12px; font-size:0.95rem; font-weight:700; }
.wpab-badge.wpab-badge-high { background:#1f9d55; color:#fff; }
.wpab-badge.wpab-badge-mid { background:#ffd24d; color:#222; }
.wpab-badge.wpab-badge-low { background:#d93025; color:#fff; }
.wpab-day.wpab-full-day .wpab-badge { background:#999; }
.wpab-day.wpab-holiday-day { background:#ececec; color:#777; cursor:default; }
.wpab-day.wpab-holiday-day .wpab-badge { background:#7a7a7a; }
.wpab-day.wpab-has-booking { background:#fff7e6; }
.wpab-day.wpab-past { background:#f5f5f5; color:#999; cursor:default; }
.wpab-overlay { position:fixed; left:0; top:0; right:0; bottom:0; background: rgba(0,0,0,0.5); display:flex; justify-content:center; align-items:flex-start; padding:24px 16px; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; z-index:9999; }
.wpab-modal { background:#fff; padding:14px; border-radius:6px; width:min(760px, calc(100vw - 32px)); max-height:calc(100vh - 48px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; box-sizing:border-box; box-shadow:0 8px 24px rgba(0,0,0,0.2); }
.wpab-slots { margin-bottom:8px; }
.wpab-slot-btn { margin:4px; padding:6px 8px; }
.wpab-slot-btn { min-height:40px; font-size:.94rem; }
.wpab-slot-btn.wpab-booked { background:#eee; color:#999; }
.wpab-close { display:inline-flex; align-items:center; justify-content:center; min-height:38px; min-width:108px; margin-top:8px; padding:7px 14px; border:1px solid #cfd8de; border-radius:10px; background:#fff; color:#324550; font-size:.9rem; font-weight:700; cursor:pointer; }
.wpab-close:hover, .wpab-close:focus-visible { border-color:#18343f; color:#18343f; }
.wpab-modal-intro { margin:0 0 10px; line-height:1.7; font-size:.95rem; }
.wpab-booking-picker { display:grid; gap:16px; align-items:start; }
.wpab-step-progress { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; }
.wpab-step-progress span { display:flex; align-items:center; justify-content:center; min-height:38px; padding:7px 9px; border-radius:999px; border:1px solid #dbe4ea; background:#f5f8fa; color:#5b6670; font-size:.84rem; font-weight:700; text-align:center; }
.wpab-step-progress span.is-active { background:#18343f; border-color:#18343f; color:#fff; }
.wpab-step-progress span.is-done { background:#e9f6ef; border-color:#b9e0c6; color:#22673c; }
.wpab-step-summary { display:flex; flex-wrap:wrap; gap:8px; padding:9px 11px; border:1px solid #e3e7ea; border-radius:12px; background:#fafcfd; color:#324550; font-size:.92rem; }
.wpab-step-summary span { display:inline-flex; align-items:center; min-height:30px; padding:4px 9px; border-radius:999px; background:#fff; border:1px solid #e7edf1; }
.wpab-step-panels { position:relative; min-height:280px; }
.wpab-step-panel { display:none; }
.wpab-step-panel.is-active { display:block; }
.wpab-step-head { margin-bottom:10px; }
.wpab-step-count { display:inline-block; margin-bottom:5px; color:#5b6670; font-size:.78rem; font-weight:700; letter-spacing:.06em; }
.wpab-menu-group { border:1px solid #e3e7ea; border-radius:12px; padding:10px; }
.wpab-menu-group h4, .wpab-time-title { margin:0 0 8px; font-size:.96rem; }
.wpab-menu-options { display:grid; gap:8px; }
.wpab-menu-option { display:flex; align-items:flex-start; gap:8px; padding:7px 9px; border-radius:10px; border:1px solid #edf0f2; cursor:pointer; font-size:.94rem; line-height:1.45; }
.wpab-menu-option input { margin-top:2px; }
.wpab-menu-option.is-disabled { opacity:.45; cursor:not-allowed; }
.wpab-menu-note, .wpab-menu-empty, .wpab-remaining { margin:0; color:#5b6670; font-size:.9rem; }
.wpab-booking-picker-times { border:1px solid #e3e7ea; border-radius:12px; padding:10px; background:#fafcfd; }
.wpab-slots { display:flex; flex-wrap:wrap; gap:8px; }
.wpab-slot-btn { margin:0; }
.wpab-step-actions { position:sticky; bottom:0; display:flex; justify-content:space-between; gap:10px; padding-top:10px; margin-top:4px; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 32%); }
.wpab-step-btn { min-height:42px; min-width:124px; padding:8px 14px; border:1px solid #18343f; border-radius:10px; background:#18343f; color:#fff; font-size:.94rem; font-weight:700; cursor:pointer; }
.wpab-step-btn.is-secondary { background:#fff; color:#18343f; }
.wpab-step-btn:disabled { opacity:.45; cursor:default; }
.wpab-success, .wpab-full, .wpab-taken { padding:10px; background:#e6ffed; border:1px solid #c8f7d6; margin-bottom:10px; }
.wpab-full, .wpab-taken { background:#fff0f0; border-color:#f5c2c2; }
.wpab-action-btn { min-height:44px; padding:10px 18px; font-size:1rem; border-radius:6px; }
.wpab-book-btn { min-width:160px; font-weight:700; }
.wpab-logout-btn { min-width:120px; }
.wpab-confirm-btn { min-height:44px; min-width:120px; padding:10px 18px; font-size:1rem; border-radius:6px; }

@media (max-width: 700px) {
    .wpab-overlay { padding:12px; }
    .wpab-modal { width:calc(100vw - 24px); max-height:calc(100vh - 24px); padding:12px; }
    .wpab-step-progress { grid-template-columns:1fr 1fr; }
    .wpab-step-actions { flex-direction:column; }
    .wpab-step-btn { width:100%; }
    .wpab-close { min-width:100px; }
}

.wpab-clinic-page {
    --wpab-ink: #1b2a2f;
    --wpab-accent: #146c6e;
    --wpab-accent-soft: #dff4f1;
    --wpab-sand: #f6f1ea;
    --wpab-line: rgba(20, 108, 110, 0.15);
    --wpab-white: #ffffff;
    color: var(--wpab-ink);
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 16px 56px;
}

.wpab-clinic-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.9fr);
    gap: 24px;
    padding: 32px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(20, 108, 110, 0.16), transparent 34%),
        linear-gradient(135deg, #fffdf8, #eef8f7);
    border: 1px solid var(--wpab-line);
    box-shadow: 0 24px 60px rgba(27, 42, 47, 0.08);
}

.wpab-clinic-kicker,
.wpab-clinic-section-head p {
    margin: 0 0 10px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--wpab-accent);
}

.wpab-clinic-hero h1,
.wpab-clinic-section h2 {
    margin: 0;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.wpab-clinic-hero h1 {
    font-size: clamp(2rem, 4vw, 3.6rem);
}

.wpab-clinic-subtitle {
    margin: 18px 0 10px;
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    font-weight: 700;
}

.wpab-clinic-lead,
.wpab-clinic-panel p,
.wpab-clinic-steps div {
    line-height: 1.9;
}

.wpab-clinic-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.wpab-clinic-primary,
.wpab-clinic-secondary,
.wpab-clinic-nav a,
.wpab-clinic-text-link {
    text-decoration: none;
}

.wpab-clinic-primary,
.wpab-clinic-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 999px;
    font-weight: 700;
}

.wpab-clinic-primary {
    color: var(--wpab-white);
    background: var(--wpab-accent);
}

.wpab-clinic-primary-large {
    min-width: min(100%, 320px);
    min-height: 58px;
    font-size: 1.05rem;
}

.wpab-clinic-secondary {
    color: var(--wpab-accent);
    background: var(--wpab-white);
    border: 1px solid var(--wpab-line);
}

.wpab-clinic-hero-card,
.wpab-clinic-panel {
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--wpab-line);
    border-radius: 24px;
    padding: 24px;
    backdrop-filter: blur(6px);
}

.wpab-clinic-hero-card h2,
.wpab-clinic-panel h3 {
    margin-top: 0;
}

.wpab-clinic-menu-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.wpab-clinic-menu-head {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wpab-clinic-menu-price {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--wpab-accent);
    letter-spacing: 0.01em;
}

.wpab-clinic-menu-description {
    margin: 0;
    color: rgba(27, 42, 47, 0.78);
    line-height: 1.75;
}

.wpab-clinic-hero-card ul {
    margin: 0;
    padding-left: 18px;
    line-height: 1.9;
}

.wpab-clinic-hero-card a,
.wpab-clinic-text-link {
    color: var(--wpab-accent);
    font-weight: 700;
}

.wpab-clinic-nav {
    position: sticky;
    top: 18px;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0 28px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--wpab-line);
    box-shadow: 0 16px 36px rgba(27, 42, 47, 0.08);
    backdrop-filter: blur(10px);
}

.wpab-clinic-nav a {
    color: var(--wpab-ink);
    padding: 10px 14px;
    border-radius: 999px;
    background: var(--wpab-sand);
    font-weight: 700;
}

.wpab-clinic-section {
    margin-top: 28px;
}

.wpab-clinic-section-head {
    margin-bottom: 16px;
}

.wpab-clinic-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.wpab-clinic-panel-wide {
    padding: 28px;
}

.wpab-clinic-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.wpab-clinic-steps li {
    position: relative;
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 14px;
    align-items: start;
    padding: 22px;
    border-radius: 24px;
    background: var(--wpab-white);
    border: 1px solid var(--wpab-line);
}

.wpab-clinic-steps span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: var(--wpab-accent-soft);
    color: var(--wpab-accent);
    font-size: 1.1rem;
    font-weight: 700;
}

.wpab-clinic-step-arrow {
    position: absolute;
    right: -18px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--wpab-accent);
    font-size: 1.8rem;
    line-height: 1;
    font-style: normal;
    font-weight: 700;
    z-index: 2;
}

.wpab-clinic-booking .wpab-calendar-root {
    max-width: 100%;
    margin-top: 20px;
}

.wpab-clinic-booking-note {
    margin-bottom: 0;
    color: rgba(27, 42, 47, 0.78);
}

@media (max-width: 900px) {
    .wpab-clinic-hero,
    .wpab-clinic-grid,
    .wpab-clinic-steps {
        grid-template-columns: 1fr;
    }

    .wpab-clinic-step-arrow {
        right: auto;
        left: 50%;
        top: auto;
        bottom: -18px;
        transform: translateX(-50%) rotate(90deg);
    }
}

@media (max-width: 640px) {
    .wpab-clinic-page {
        padding-left: 12px;
        padding-right: 12px;
    }

    .wpab-clinic-hero,
    .wpab-clinic-panel,
    .wpab-clinic-panel-wide,
    .wpab-clinic-steps li {
        padding: 20px;
    }

    .wpab-clinic-nav {
        top: 10px;
    }

    .wpab-clinic-steps li {
        grid-template-columns: 1fr;
    }
}
