/* ============================================================
           CSS VARIABLES — Light / Dark Theme
        ============================================================ */
        :root {
            --primary:        #0ea5e9;
            --primary-dark:   #0284c7;
            --primary-light:  #bae6fd;
            --accent:         #6366f1;
            --accent-dark:    #4f46e5;
            --success:        #10b981;
            --warning:        #f59e0b;
            --danger:         #ef4444;

            --bg:             #f0f4f8;
            --surface:        #ffffff;
            --surface2:       #f8fafc;
            --border:         #e2e8f0;
            --text:           #1e293b;
            --text-muted:     #64748b;
            --text-light:     #94a3b8;

            --shadow-sm:      0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
            --shadow:         0 4px 16px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.06);
            --shadow-lg:      0 20px 40px rgba(0,0,0,.14), 0 8px 16px rgba(0,0,0,.08);
            --radius-sm:      8px;
            --radius:         14px;
            --radius-lg:      20px;
            --glass-bg:       rgba(255,255,255,.75);
            --glass-border:   rgba(255,255,255,.5);
            --navbar-h:       68px;
        }

        [data-theme="dark"] {
            --bg:             #0f172a;
            --surface:        #1e293b;
            --surface2:       #0f172a;
            --border:         #334155;
            --text:           #f1f5f9;
            --text-muted:     #94a3b8;
            --text-light:     #64748b;
            --glass-bg:       rgba(30,41,59,.80);
            --glass-border:   rgba(255,255,255,.08);
            --shadow:         0 4px 16px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3);
            --shadow-lg:      0 20px 40px rgba(0,0,0,.5);
        }

        /* ============================================================
           ADMINLTE / BOOTSTRAP OVERRIDES — mantener nuestro diseño
        ============================================================ */
        /* Resetear todo lo que AdminLTE agrega innecesariamente en página pública */
        body,
        body.hold-transition,
        body.layout-top-nav,
        body.sidebar-mini {
            font-family: 'Inter', sans-serif !important;
            background: var(--bg) !important;
            color: var(--text) !important;
            padding-top: 0 !important;
            margin-left: 0 !important;
            min-height: 100vh;
        }
        .main-header,
        .main-sidebar,
        .content-wrapper,
        .main-footer,
        .wrapper {
            all: unset;
            display: revert;
        }
        /* Modales: Bootstrap maneja display via JS — no interferir */
        .modal-backdrop.show { opacity: .5; }
        /* Grid Bootstrap dentro del modal */
        .modal .row { display: flex; flex-wrap: wrap; margin: 0 -8px; }
        .modal [class*='col-'] { padding: 0 8px; }
        .col-md-4  { flex: 0 0 33.333333%; max-width: 33.333333%; }
        .col-md-5  { flex: 0 0 41.666667%; max-width: 41.666667%; }
        .col-md-6  { flex: 0 0 50%; max-width: 50%; }
        .col-md-7  { flex: 0 0 58.333333%; max-width: 58.333333%; }
        .col-6     { flex: 0 0 50%; max-width: 50%; }
        @media (max-width: 767px) {
            .col-md-4, .col-md-5, .col-md-6, .col-md-7 { flex: 0 0 100%; max-width: 100%; }
        }
        /* Botones de FullCalendar no heredar nuestros resets */
        .fc-button { all: unset; }

        /* ============================================================
           GLOBAL RESET
        ============================================================ */
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

        html, body {
            font-family: 'Inter', sans-serif;
            font-size: 15px;
            background: var(--bg);
            color: var(--text);
            min-height: 100vh;
            transition: background .3s, color .3s;
        }

        a { color: var(--primary); text-decoration: none; }
        a:hover { color: var(--primary-dark); }

        /* ============================================================
           ANIMATED BACKGROUND GRADIENT
        ============================================================ */
        .page-bg {
            position: fixed;
            inset: 0;
            z-index: 0;
            overflow: hidden;
            pointer-events: none;
        }
        .page-bg::before {
            content: '';
            position: absolute;
            width: 800px; height: 800px;
            top: -200px; left: -200px;
            background: radial-gradient(circle, rgba(14,165,233,.18) 0%, transparent 70%);
            animation: orb1 12s ease-in-out infinite alternate;
        }
        .page-bg::after {
            content: '';
            position: absolute;
            width: 600px; height: 600px;
            bottom: -100px; right: -100px;
            background: radial-gradient(circle, rgba(99,102,241,.15) 0%, transparent 70%);
            animation: orb2 10s ease-in-out infinite alternate;
        }
        @keyframes orb1 { from { transform: translate(0,0) scale(1); } to { transform: translate(80px,60px) scale(1.15); } }
        @keyframes orb2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-60px,-40px) scale(1.1); } }

        [data-theme="dark"] .page-bg::before { background: radial-gradient(circle, rgba(14,165,233,.12) 0%, transparent 70%); }
        [data-theme="dark"] .page-bg::after  { background: radial-gradient(circle, rgba(99,102,241,.10) 0%, transparent 70%); }

        /* ============================================================
           NAVBAR
        ============================================================ */
        .top-nav {
            position: fixed;
            top: 0; left: 0; right: 0;
            height: var(--navbar-h);
            z-index: 1000;
            background: var(--glass-bg);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-bottom: 1px solid var(--glass-border);
            display: flex;
            align-items: center;
            padding: 0 24px;
            box-shadow: var(--shadow-sm);
            transition: background .3s;
        }
        .nav-brand {
            display: flex;
            align-items: center;
            gap: 12px;
            flex: 1;
        }
        .nav-logo {
            width: 40px; height: 40px;
            border-radius: 10px;
            object-fit: contain;
            box-shadow: var(--shadow-sm);
        }
        .nav-brand-name {
            font-size: 1rem;
            font-weight: 700;
            letter-spacing: -.2px;
            color: var(--text);
            line-height: 1.2;
        }
        .nav-brand-name span {
            display: block;
            font-size: .72rem;
            font-weight: 400;
            color: var(--text-muted);
            letter-spacing: .2px;
        }
        .nav-actions { display: flex; align-items: center; gap: 10px; }

        /* Dark mode toggle */
        .theme-btn {
            width: 38px; height: 38px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--surface);
            color: var(--text-muted);
            cursor: pointer;
            display: flex; align-items: center; justify-content: center;
            font-size: .95rem;
            transition: all .2s;
            box-shadow: var(--shadow-sm);
        }
        .theme-btn:hover { color: var(--primary); border-color: var(--primary); transform: scale(1.05); }

        .badge-specialty {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            color: white;
            font-size: .7rem;
            font-weight: 600;
            padding: 5px 12px;
            border-radius: 20px;
            letter-spacing: .3px;
        }

        /* ============================================================
           PAGE WRAPPER
        ============================================================ */
        .page-wrapper {
            position: relative;
            z-index: 1;
            padding-top: calc(var(--navbar-h) + 28px);
            padding-bottom: 40px;
            min-height: 100vh;
        }
        .container-main {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

        /* ============================================================
           HERO HEADER (Doctor info strip)
        ============================================================ */
        .hero-header {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            border-radius: var(--radius-lg);
            padding: 28px 32px;
            display: flex;
            align-items: center;
            gap: 24px;
            margin-bottom: 28px;
            box-shadow: 0 8px 32px rgba(14,165,233,.35);
            position: relative;
            overflow: hidden;
        }
        .hero-header::before {
            content: '';
            position: absolute;
            top: -40px; right: -40px;
            width: 200px; height: 200px;
            background: rgba(255,255,255,.08);
            border-radius: 50%;
        }
        .hero-header::after {
            content: '';
            position: absolute;
            bottom: -60px; right: 80px;
            width: 150px; height: 150px;
            background: rgba(255,255,255,.05);
            border-radius: 50%;
        }
        .hero-avatar-wrap {
            position: relative;
            flex-shrink: 0;
        }
        .hero-avatar {
            width: 90px; height: 90px;
            border-radius: 50%;
            border: 4px solid rgba(255,255,255,.5);
            object-fit: cover;
            box-shadow: 0 4px 16px rgba(0,0,0,.25);
        }
        .hero-avatar-placeholder {
            width: 90px; height: 90px;
            border-radius: 50%;
            border: 4px solid rgba(255,255,255,.5);
            background: rgba(255,255,255,.2);
            display: flex; align-items: center; justify-content: center;
            font-size: 2.5rem;
            color: white;
            box-shadow: 0 4px 16px rgba(0,0,0,.25);
        }
        .hero-online-dot {
            position: absolute;
            bottom: 4px; right: 4px;
            width: 18px; height: 18px;
            background: #10b981;
            border-radius: 50%;
            border: 3px solid white;
        }
        .hero-info { flex: 1; }
        .hero-info h1 {
            font-size: 1.5rem;
            font-weight: 700;
            color: white;
            margin-bottom: 4px;
            letter-spacing: -.3px;
        }
        .hero-info .specialty-tag {
            display: inline-flex; align-items: center; gap: 6px;
            background: rgba(255,255,255,.2);
            color: white;
            font-size: .82rem;
            font-weight: 500;
            padding: 4px 12px;
            border-radius: 20px;
            margin-bottom: 10px;
        }
        .hero-meta {
            display: flex; flex-wrap: wrap; gap: 16px;
        }
        .hero-meta-item {
            display: flex; align-items: center; gap: 6px;
            color: rgba(255,255,255,.85);
            font-size: .82rem;
        }
        .hero-meta-item i { color: rgba(255,255,255,.7); }
        .hero-cta {
            flex-shrink: 0;
        }
        .btn-book-hero {
            background: white;
            color: var(--primary-dark);
            font-weight: 700;
            font-size: .88rem;
            padding: 11px 22px;
            border-radius: var(--radius-sm);
            border: none;
            cursor: pointer;
            display: flex; align-items: center; gap: 8px;
            box-shadow: 0 4px 12px rgba(0,0,0,.2);
            transition: all .2s;
            white-space: nowrap;
        }
        .btn-book-hero:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.25); }

        /* ============================================================
           GLASS CARD
        ============================================================ */
        .glass-card {
            background: var(--glass-bg);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid var(--glass-border);
            border-radius: var(--radius);
            box-shadow: var(--shadow);
            transition: box-shadow .3s, transform .3s;
        }
        .glass-card:hover {
            box-shadow: var(--shadow-lg);
        }

        /* ============================================================
           GRID LAYOUT
        ============================================================ */
        .main-grid {
            display: grid;
            grid-template-columns: 280px 1fr;
            gap: 24px;
            align-items: start;
        }

        /* ============================================================
           SIDEBAR (doctor profile)
        ============================================================ */
        .sidebar-profile {
            padding: 28px 20px;
            text-align: center;
            position: sticky;
            top: calc(var(--navbar-h) + 28px);
        }
        .profile-avatar-wrap { position: relative; display: inline-block; margin-bottom: 16px; }
        .profile-avatar {
            width: 100px; height: 100px;
            border-radius: 50%;
            border: 4px solid var(--primary-light);
            object-fit: cover;
            box-shadow: 0 4px 16px rgba(14,165,233,.3);
        }
        .profile-avatar-placeholder {
            width: 100px; height: 100px;
            border-radius: 50%;
            border: 4px solid var(--primary-light);
            background: linear-gradient(135deg, #e0f2fe 0%, #ede9fe 100%);
            display: flex; align-items: center; justify-content: center;
            font-size: 2.5rem;
            color: var(--primary);
            box-shadow: 0 4px 16px rgba(14,165,233,.2);
        }
        [data-theme="dark"] .profile-avatar-placeholder {
            background: linear-gradient(135deg, #0c4a6e 0%, #312e81 100%);
        }
        .profile-badge {
            position: absolute;
            bottom: 2px; right: 2px;
            width: 22px; height: 22px;
            background: var(--success);
            border-radius: 50%;
            border: 3px solid var(--surface);
        }
        .profile-name {
            font-size: 1.08rem;
            font-weight: 700;
            color: var(--text);
            margin-bottom: 4px;
        }
        .profile-specialty {
            display: inline-block;
            background: linear-gradient(135deg, rgba(14,165,233,.12) 0%, rgba(99,102,241,.12) 100%);
            color: var(--primary);
            font-size: .75rem;
            font-weight: 600;
            padding: 4px 12px;
            border-radius: 20px;
            margin-bottom: 20px;
        }
        [data-theme="dark"] .profile-specialty { color: #38bdf8; }
        
        .info-divider {
            height: 1px;
            background: var(--border);
            margin: 16px 0;
        }
        .info-item {
            display: flex; align-items: flex-start; gap: 10px;
            margin-bottom: 14px;
            text-align: left;
        }
        .info-icon {
            width: 34px; height: 34px;
            border-radius: 9px;
            display: flex; align-items: center; justify-content: center;
            font-size: .88rem;
            flex-shrink: 0;
        }
        .info-icon.blue  { background: rgba(14,165,233,.12); color: var(--primary); }
        .info-icon.purple{ background: rgba(99,102,241,.12); color: var(--accent); }
        .info-icon.green { background: rgba(16,185,129,.12); color: var(--success); }
        .info-text-label { font-size: .7rem; color: var(--text-muted); font-weight: 500; }
        .info-text-val   { font-size: .82rem; color: var(--text); font-weight: 600; }

        .btn-book-sidebar {
            width: 100%;
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            color: white;
            border: none;
            border-radius: var(--radius-sm);
            padding: 11px 0;
            font-size: .88rem;
            font-weight: 700;
            cursor: pointer;
            display: flex; align-items: center; justify-content: center; gap: 8px;
            box-shadow: 0 4px 14px rgba(14,165,233,.4);
            transition: all .25s;
            margin-top: 4px;
        }
        .btn-book-sidebar:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(14,165,233,.5); }

        /* ============================================================
           CALENDAR CARD
        ============================================================ */
        .calendar-card { overflow: hidden; }
        .calendar-header {
            padding: 18px 24px;
            display: flex; align-items: center; justify-content: space-between;
            border-bottom: 1px solid var(--border);
            background: linear-gradient(135deg, rgba(14,165,233,.06) 0%, rgba(99,102,241,.06) 100%);
        }
        .calendar-title {
            display: flex; align-items: center; gap: 10px;
            font-size: 1rem; font-weight: 700; color: var(--text);
        }
        .calendar-title i {
            width: 36px; height: 36px;
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            color: white;
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-size: .9rem;
        }
        .legend {
            display: flex; gap: 14px; flex-wrap: wrap;
        }
        .legend-item {
            display: flex; align-items: center; gap: 5px;
            font-size: .72rem; color: var(--text-muted); font-weight: 500;
        }
        .legend-dot {
            width: 10px; height: 10px;
            border-radius: 50%;
        }
        .legend-dot.free  { background: #10b981; }
        .legend-dot.busy  { background: #ef4444; }
        .legend-dot.now   { background: #f59e0b; }
        .calendar-body { padding: 16px; }

        /* FullCalendar overrides */
        .fc {
            font-family: 'Inter', sans-serif !important;
        }
        .fc-button-primary {
            font-family: 'Inter', sans-serif !important;
            font-size: .78rem !important;
            font-weight: 600 !important;
            padding: 6px 14px !important;
            border-radius: 8px !important;
            border: 1px solid var(--border) !important;
            background: var(--surface) !important;
            color: var(--text) !important;
            box-shadow: var(--shadow-sm) !important;
            transition: all .2s !important;
        }
        .fc-button-primary:hover, .fc-button-primary:focus {
            background: var(--primary-light) !important;
            color: var(--primary) !important;
            border-color: var(--primary) !important;
            box-shadow: 0 2px 8px rgba(14,165,233,.15) !important;
        }
        .fc-button-primary:not(:disabled).fc-button-active,
        .fc-button-primary:not(:disabled):active {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%) !important;
            color: white !important;
            border-color: transparent !important;
            box-shadow: 0 3px 10px rgba(14,165,233,.3) !important;
        }
        .fc-button-primary:disabled {
            background: var(--surface2) !important;
            border-color: var(--border) !important;
            color: var(--text-muted) !important;
            opacity: 0.6 !important;
        }
        .fc-toolbar-title {
            font-size: 1rem !important;
            font-weight: 700 !important;
            color: var(--text) !important;
        }
        .fc-col-header-cell {
            background: linear-gradient(135deg, rgba(14,165,233,.07) 0%, rgba(99,102,241,.07) 100%) !important;
            font-size: .78rem !important;
            font-weight: 600 !important;
            color: var(--text-muted) !important;
            padding: 8px 0 !important;
            border-color: var(--border) !important;
        }
        .fc-timegrid-slot { border-color: var(--border) !important; }
        .fc-timegrid-slot-label-cushion {
            font-size: .72rem !important;
            color: var(--text-muted) !important;
            padding: 0 6px !important;
        }
        .fc-daygrid-day, .fc-timegrid-col {
            border-color: var(--border) !important;
        }
        .fc-scrollgrid { border-color: var(--border) !important; border-radius: var(--radius-sm); overflow: hidden; }
        .fc-scrollgrid-section > td { border-color: var(--border) !important; }
        
        /* Event styling */
        .fc-timegrid-event-harness {
            padding: 2px 3px !important;
        }
        .fc-event {
            border-radius: 8px !important;
            font-size: .75rem !important;
            font-weight: 600 !important;
            border: none !important;
            padding: 0 !important;
            box-shadow: var(--shadow-sm) !important;
            cursor: pointer;
            transition: all .2s !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
        }
        .fc-event:hover {
            transform: translateY(-1px);
            box-shadow: var(--shadow) !important;
        }
        .fc-event-main {
            padding: 4px 6px !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            text-align: center !important;
            height: 100% !important;
            width: 100% !important;
            color: #ffffff !important;
            font-weight: 600 !important;
        }
        .fc-now-indicator-line { border-color: #f59e0b !important; border-width: 2px !important; }
        .fc-now-indicator-arrow { border-top-color: #f59e0b !important; }
        .fc-highlight { background: rgba(14,165,233,.15) !important; border: 2px dashed var(--primary) !important; }

        [data-theme="dark"] .fc-scrollgrid,
        [data-theme="dark"] .fc-col-header-cell,
        [data-theme="dark"] .fc-timegrid-slot,
        [data-theme="dark"] .fc-daygrid-day { background-color: var(--surface2) !important; }
        [data-theme="dark"] .fc-daygrid-day-number,
        [data-theme="dark"] .fc-col-header-cell-cushion { color: var(--text-muted) !important; }

        /* ============================================================
           BOOTSTRAP BUTTON OVERRIDES (contra sistema.css)
           En páginas públicas los botones deben usar el color
           del tema público, no los tokens de sistema.css.
        ============================================================ */
        .btn {
            display: inline-flex !important;
            align-items: center !important;
            gap: 0.4rem !important;
            font-weight: 600 !important;
            border-radius: var(--radius-sm) !important;
            padding: 0.45rem 1rem !important;
            font-size: 0.86rem !important;
            line-height: 1.5 !important;
            border: 1.5px solid transparent !important;
            box-shadow: var(--shadow-sm) !important;
            transition: all .2s !important;
            white-space: nowrap !important;
            cursor: pointer !important;
        }
        .btn:hover:not(:disabled) {
            transform: translateY(-1px) !important;
            box-shadow: var(--shadow) !important;
        }
        .btn:disabled {
            opacity: .55 !important;
            cursor: not-allowed !important;
            transform: none !important;
            box-shadow: none !important;
        }
        .btn-primary {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%) !important;
            color: #fff !important;
            border-color: transparent !important;
        }
        .btn-primary:hover {
            background: linear-gradient(135deg, var(--primary-dark) 0%, var(--accent-dark) 100%) !important;
        }
        .btn-light {
            background: var(--surface) !important;
            color: var(--text) !important;
            border: 1.5px solid var(--border) !important;
        }
        .btn-light:hover {
            background: var(--surface2) !important;
        }
        .btn-success {
            background: var(--success) !important;
            color: #fff !important;
        }
        .btn-danger {
            background: var(--danger) !important;
            color: #fff !important;
        }
        .btn-info {
            background: var(--primary) !important;
            color: #fff !important;
        }
        .btn-sm {
            padding: 0.3rem 0.75rem !important;
            font-size: 0.78rem !important;
            gap: 0.3rem !important;
        }

        /* ============================================================
           MODAL
        ============================================================ */
        .modal-premium .modal-content {
            border: none;
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
            overflow: hidden;
            font-family: 'Inter', sans-serif;
            background: var(--surface);
            color: var(--text);
        }
        .modal-premium .modal-header {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            border: none;
            padding: 20px 24px;
        }
        .modal-premium .modal-header .modal-title {
            font-weight: 700;
            font-size: 1rem;
            color: white;
            display: flex; align-items: center; gap: 10px;
        }
        .modal-premium .modal-header .modal-title i {
            width: 32px; height: 32px;
            background: rgba(255,255,255,.2);
            border-radius: 8px;
            display: flex; align-items: center; justify-content: center;
            font-size: .9rem;
        }
        .modal-premium .close {
            color: white;
            opacity: .8;
            text-shadow: none;
            font-size: 1.4rem;
        }
        .modal-premium .close:hover { opacity: 1; }
        .modal-premium .modal-body { padding: 24px; }
        .modal-premium .modal-footer {
            background: var(--surface2);
            border-top: 1px solid var(--border);
            padding: 16px 24px;
            gap: 10px;
        }

        /* Form controls */
        .form-section-title {
            font-size: .72rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .8px;
            color: var(--text-muted);
            margin-bottom: 10px;
            display: flex; align-items: center; gap: 6px;
        }
        .form-section-title::after {
            content: '';
            flex: 1;
            height: 1px;
            background: var(--border);
        }
        .form-label-premium {
            font-size: .76rem;
            font-weight: 600;
            color: var(--text-muted);
            margin-bottom: 5px;
            display: block;
        }
        .form-control-premium {
            width: 100%;
            background: var(--surface2);
            border: 1.5px solid var(--border);
            border-radius: var(--radius-sm);
            padding: 9px 13px;
            font-size: .88rem;
            font-family: 'Inter', sans-serif;
            color: var(--text);
            transition: border-color .2s, box-shadow .2s;
            outline: none;
        }
        .form-control-premium:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(14,165,233,.15);
            background: var(--surface);
        }
        .input-icon-wrap {
            position: relative;
        }
        .input-icon-wrap .input-icon {
            position: absolute;
            left: 11px; top: 50%; transform: translateY(-50%);
            color: var(--text-muted);
            font-size: .85rem;
            pointer-events: none;
        }
        .input-icon-wrap .form-control-premium { padding-left: 34px; }
        .form-group-premium { margin-bottom: 14px; }

        /* Radio buttons */
        .radio-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .radio-option {
            flex: 1;
            min-width: 100px;
        }
        .radio-option input { display: none; }
        .radio-option label {
            display: flex; align-items: center; justify-content: center; gap: 7px;
            padding: 9px 14px;
            border: 2px solid var(--border);
            border-radius: var(--radius-sm);
            font-size: .82rem;
            font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
            transition: all .2s;
            background: var(--surface2);
        }
        .radio-option input:checked + label {
            border-color: var(--primary);
            color: var(--primary);
            background: rgba(14,165,233,.08);
            box-shadow: 0 0 0 3px rgba(14,165,233,.1);
        }

        /* Buttons */
        .btn-premium {
            display: inline-flex; align-items: center; gap: 7px;
            padding: 10px 22px;
            border-radius: var(--radius-sm);
            font-size: .86rem;
            font-weight: 600;
            font-family: 'Inter', sans-serif;
            border: none;
            cursor: pointer;
            transition: all .2s;
        }
        .btn-primary-premium {
            background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
            color: white;
            box-shadow: 0 4px 14px rgba(14,165,233,.4);
        }
        .btn-primary-premium:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(14,165,233,.5); }
        .btn-secondary-premium {
            background: var(--surface);
            color: var(--text-muted);
            border: 1.5px solid var(--border);
        }
        .btn-secondary-premium:hover { color: var(--text); border-color: var(--text-muted); }
        .btn-ghost-premium {
            background: transparent;
            color: var(--text-muted);
            border: 1.5px solid var(--border);
        }
        .btn-ghost-premium:hover { background: var(--surface2); }

        /* Search results dropdown */
        .search-results-drop {
            position: absolute;
            top: 100%; left: 0; right: 0;
            background: var(--surface);
            border: 1.5px solid var(--border);
            border-top: none;
            border-radius: 0 0 var(--radius-sm) var(--radius-sm);
            box-shadow: var(--shadow);
            z-index: 9999;
            max-height: 200px;
            overflow-y: auto;
        }
        .search-result-item {
            display: flex; align-items: center; gap: 10px;
            padding: 10px 14px;
            cursor: pointer;
            transition: background .15s;
            border-bottom: 1px solid var(--border);
        }
        .search-result-item:last-child { border-bottom: none; }
        .search-result-item:hover { background: rgba(14,165,233,.07); }
        .search-result-avatar {
            width: 32px; height: 32px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--primary), var(--accent));
            display: flex; align-items: center; justify-content: center;
            color: white; font-size: .8rem; font-weight: 700;
            flex-shrink: 0;
        }
        .search-result-name { font-size: .84rem; font-weight: 600; color: var(--text); }
        .search-result-id   { font-size: .72rem; color: var(--text-muted); }

        /* Confirmation modal */
        .conf-check {
            width: 72px; height: 72px;
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 2rem;
            color: white;
            margin: 0 auto 20px;
            box-shadow: 0 8px 24px rgba(16,185,129,.4);
            animation: pop .4s cubic-bezier(.36,.07,.19,.97) both;
        }
        @keyframes pop {
            0%   { transform: scale(0); opacity: 0; }
            70%  { transform: scale(1.1); }
            100% { transform: scale(1); opacity: 1; }
        }
        .conf-detail-row {
            display: flex; align-items: center; justify-content: space-between;
            padding: 10px 0;
            border-bottom: 1px solid var(--border);
            font-size: .86rem;
        }
        .conf-detail-row:last-child { border-bottom: none; }
        .conf-detail-label { color: var(--text-muted); display: flex; align-items: center; gap: 7px; }
        .conf-detail-val   { font-weight: 700; color: var(--text); }
        .conf-alert {
            background: rgba(14,165,233,.08);
            border: 1px solid rgba(14,165,233,.2);
            border-radius: var(--radius-sm);
            padding: 10px 14px;
            font-size: .8rem;
            color: var(--primary);
            display: flex; align-items: center; gap: 8px;
            margin-top: 14px;
        }
        [data-theme="dark"] .conf-alert { color: #38bdf8; }

        /* ============================================================
           FOOTER
        ============================================================ */
        .page-footer {
            text-align: center;
            padding: 20px;
            font-size: .76rem;
            color: var(--text-muted);
            border-top: 1px solid var(--border);
            margin-top: 32px;
        }

        /* ============================================================
           RESPONSIVE
        ============================================================ */
        @media (max-width: 900px) {
            .main-grid { grid-template-columns: 1fr; }
            .sidebar-profile { position: static; }
            .hero-header { flex-direction: column; text-align: center; }
            .hero-meta { justify-content: center; }
            .hero-cta { width: 100%; }
            .btn-book-hero { width: 100%; justify-content: center; }
            .fc-header-toolbar { flex-direction: column; gap: 8px; }
            .fc-header-toolbar .fc-left,
            .fc-header-toolbar .fc-center,
            .fc-header-toolbar .fc-right { width: 100%; text-align: center; }
            .fc-toolbar-title { font-size: 0.95rem !important; }
            .calendar-header { flex-direction: column; gap: 8px; align-items: flex-start; }
        }
        @media (max-width: 576px) {
            .top-nav { padding: 0 12px; }
            .top-nav .badge-specialty { display: none !important; }
            .nav-brand-name span { display: none; }
            .container-main { padding: 0 10px; }
            .hero-header { padding: 16px; border-radius: var(--radius); }
            .hero-info h1 { font-size: 1rem; }
            .hero-avatar,
            .hero-avatar-placeholder { width: 60px; height: 60px; }
            .hero-meta { gap: 8px; font-size: 0.75rem; flex-direction: column; }
            .modal-premium .modal-body { padding: 12px; }
            .modal-premium .modal-footer { padding: 10px 12px; flex-direction: column; }
            .modal-premium .modal-footer .btn { width: 100%; }
            .btn-premium { width: 100%; justify-content: center; }
            .radio-group { flex-direction: column; }
            .fc-header-toolbar .fc-toolbar-chunk { flex-wrap: wrap; gap: 4px; }
            .fc-toolbar-title { font-size: 0.8rem !important; }
            .fc-button { font-size: 0.65rem !important; padding: 3px 6px !important; }
            .fc-view-harness { min-height: 400px !important; }
            .modal-dialog { margin: 6px; }
            .input-group { flex-wrap: wrap; }
            .input-group .form-control { border-radius: 4px !important; margin-bottom: 4px; min-width: 0; }
            .input-group .input-group-append,
            .input-group .input-group-prepend { width: 100%; }
            .input-group .input-group-append .btn,
            .input-group .input-group-prepend .btn,
            .input-group .input-group-append .input-group-text,
            .input-group .input-group-prepend .input-group-text { width: 100%; border-radius: 4px !important; }
            .modal .row .col-md-4,
            .modal .row .col-md-5,
            .modal .row .col-md-6,
            .modal .row .col-md-7,
            .modal .row .col-6 { flex: 0 0 100%; max-width: 100%; }
        }

        /* ============================================================
           FADE IN ANIMATION
        ============================================================ */
        .fade-up {
            animation: fadeUp .5s ease both;
        }
        .fade-up-1 { animation-delay: .05s; }
        .fade-up-2 { animation-delay: .12s; }
        .fade-up-3 { animation-delay: .20s; }
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(14px); }
            to   { opacity: 1; transform: translateY(0); }
        }