.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:start; padding-top:4rem; z-index:9999; }
.wpab-modal { background:#fff; padding:16px; border-radius:6px; width:360px; 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:42px; font-size:1rem; }
.wpab-slot-btn.wpab-booked { background:#eee; color:#999; }
.wpab-close { margin-top:8px; }
.wpab-mini-form input { width:100%; box-sizing:border-box; margin-bottom:6px; }
.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; }

.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-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(2, minmax(0, 1fr));
    gap: 18px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.wpab-clinic-steps li {
    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-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;
    }
}

@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;
    }
}
