/* =====================================================================
   Randevu Merkezi — panel teması
   Koyu ton odaklı, cam efektli (glassmorphic) tasarım dili.
   Tema: <html data-theme="dark|light"> (tercih: localStorage rm_theme_pref)
   Bootstrap 5.3 bileşenleri aşağıdaki token'larla yeniden renklendirilir.
   ===================================================================== */

:root,
[data-theme="dark"] {
    --primary: #7C3AED;          /* Ana marka rengi — mor / indigo */
    --primary-hover: #6D28D9;
    --primary-text: #A78BFA;     /* Koyu zeminde okunur mor (link, outline buton) */
    --primary-soft: rgba(124, 58, 237, 0.16);
    --primary-rgb: 124, 58, 237;

    --bg-main: #0B0F19;          /* Derin gece mavisi */
    --bg-card: rgba(18, 24, 38, 0.85);
    --bg-elev: #121826;          /* Modal, dropdown */
    --bg-input: rgba(255, 255, 255, 0.04);
    --bg-hover: rgba(255, 255, 255, 0.04);

    --text: #F8FAFC;
    --text-dim: #94A3B8;
    --border: rgba(255, 255, 255, 0.08);

    --success: #10B981;          /* Zümrüt yeşili */
    --accent: #06B6D4;           /* Camgöbeği */
    --warning: #F59E0B;          /* Amber */
    --danger: #F43F5E;           /* Gül kırmızı */
    --neutral: rgba(255, 255, 255, 0.15);

    --sidebar-bg: rgba(10, 14, 24, 0.92);
    --sidebar-fg: #94A3B8;
    --sidebar-active: rgba(124, 58, 237, 0.18);
    --glow: 0 0 0 1px rgba(124, 58, 237, 0.45), 0 10px 30px rgba(124, 58, 237, 0.18);
    --shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
    --radius: 14px;
    --sidebar-w: 252px;
}

[data-theme="light"] {
    --primary-text: #6D28D9;
    --primary-soft: rgba(124, 58, 237, 0.10);
    --bg-main: #F4F5FB;
    --bg-card: rgba(255, 255, 255, 0.92);
    --bg-elev: #FFFFFF;
    --bg-input: #FFFFFF;
    --bg-hover: rgba(15, 23, 42, 0.035);
    --text: #0F172A;
    --text-dim: #64748B;
    --border: rgba(15, 23, 42, 0.09);
    --neutral: rgba(15, 23, 42, 0.12);
    --sidebar-bg: #0F1424;
    --sidebar-fg: #A3AEC2;
    --sidebar-active: rgba(124, 58, 237, 0.28);
    --shadow: 0 6px 24px rgba(15, 23, 42, 0.08);
    --glow: 0 0 0 1px rgba(124, 58, 237, 0.35), 0 10px 30px rgba(124, 58, 237, 0.12);
}

/* ---------- Bootstrap token eşlemesi ---------- */
[data-theme] {
    --bs-body-bg: var(--bg-main);
    --bs-body-color: var(--text);
    --bs-emphasis-color: var(--text);
    --bs-secondary-color: var(--text-dim);
    --bs-tertiary-color: var(--text-dim);
    --bs-secondary-bg: var(--bg-hover);
    --bs-tertiary-bg: var(--bg-hover);
    --bs-border-color: var(--border);
    --bs-border-color-translucent: var(--border);
    --bs-heading-color: var(--text);
    --bs-link-color: var(--primary-text);
    --bs-link-hover-color: var(--primary);
    --bs-link-color-rgb: var(--primary-rgb);
    --bs-link-hover-color-rgb: var(--primary-rgb);
    --bs-primary: var(--primary);
    --bs-primary-rgb: 124, 58, 237;
    --bs-success-rgb: 16, 185, 129;
    --bs-info-rgb: 6, 182, 212;
    --bs-warning-rgb: 245, 158, 11;
    --bs-danger-rgb: 244, 63, 94;
    --bs-primary-bg-subtle: var(--primary-soft);
    --bs-primary-text-emphasis: var(--primary-text);
    --bs-success-bg-subtle: rgba(16, 185, 129, 0.14);
    --bs-success-text-emphasis: #34D399;
    --bs-info-bg-subtle: rgba(6, 182, 212, 0.14);
    --bs-info-text-emphasis: #22D3EE;
    --bs-warning-bg-subtle: rgba(245, 158, 11, 0.14);
    --bs-warning-text-emphasis: #FBBF24;
    --bs-danger-bg-subtle: rgba(244, 63, 94, 0.14);
    --bs-danger-text-emphasis: #FB7185;
    --bs-success-border-subtle: rgba(16, 185, 129, 0.35);
    --bs-info-border-subtle: rgba(6, 182, 212, 0.35);
    --bs-warning-border-subtle: rgba(245, 158, 11, 0.35);
    --bs-danger-border-subtle: rgba(244, 63, 94, 0.35);
    --bs-primary-border-subtle: rgba(124, 58, 237, 0.35);
    --bs-focus-ring-color: rgba(124, 58, 237, 0.3);
}
[data-theme="light"] {
    --bs-success-text-emphasis: #047857;
    --bs-info-text-emphasis: #0E7490;
    --bs-warning-text-emphasis: #B45309;
    --bs-danger-text-emphasis: #BE123C;
}

body {
    background: var(--bg-main); color: var(--text);
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
}
body.rm-panel {
    background:
        radial-gradient(1200px 600px at 100% -10%, rgba(124, 58, 237, 0.10), transparent 60%),
        radial-gradient(900px 500px at -10% 110%, rgba(6, 182, 212, 0.06), transparent 60%),
        var(--bg-main);
    background-attachment: fixed;
}
.text-muted, .form-text { color: var(--text-dim) !important; }
a { color: var(--primary-text); }
hr { border-color: var(--border); opacity: 1; }
code { color: var(--accent); }

/* ---------- Butonlar ---------- */
.btn { border-radius: 10px; font-weight: 500; }
.btn-primary {
    --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary);
    --bs-btn-hover-bg: var(--primary-hover); --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-active-bg: var(--primary-hover); --bs-btn-active-border-color: var(--primary-hover);
    --bs-btn-disabled-bg: var(--primary); --bs-btn-disabled-border-color: var(--primary);
    --bs-btn-focus-shadow-rgb: 124, 58, 237;
    box-shadow: 0 4px 14px rgba(124, 58, 237, 0.30);
}
.btn-outline-primary {
    --bs-btn-color: var(--primary-text); --bs-btn-border-color: rgba(124, 58, 237, 0.55);
    --bs-btn-hover-bg: var(--primary); --bs-btn-hover-border-color: var(--primary); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--primary-hover); --bs-btn-active-border-color: var(--primary-hover);
}
.btn-success { --bs-btn-bg: var(--success); --bs-btn-border-color: var(--success); --bs-btn-hover-bg: #059669; --bs-btn-hover-border-color: #059669; --bs-btn-active-bg: #047857; }
.btn-outline-success { --bs-btn-color: var(--success); --bs-btn-border-color: rgba(16,185,129,.55); --bs-btn-hover-bg: var(--success); --bs-btn-hover-border-color: var(--success); --bs-btn-hover-color: #fff; }
.btn-danger { --bs-btn-bg: var(--danger); --bs-btn-border-color: var(--danger); --bs-btn-hover-bg: #E11D48; --bs-btn-hover-border-color: #E11D48; --bs-btn-active-bg: #BE123C; }
.btn-outline-danger { --bs-btn-color: var(--danger); --bs-btn-border-color: rgba(244,63,94,.55); --bs-btn-hover-bg: var(--danger); --bs-btn-hover-border-color: var(--danger); --bs-btn-hover-color: #fff; }
.btn-warning { --bs-btn-bg: var(--warning); --bs-btn-border-color: var(--warning); --bs-btn-hover-bg: #D97706; --bs-btn-hover-border-color: #D97706; }
.btn-light, .btn-outline-secondary, .btn-outline-dark {
    --bs-btn-bg: var(--bg-hover); --bs-btn-color: var(--text); --bs-btn-border-color: var(--border);
    --bs-btn-hover-bg: var(--primary-soft); --bs-btn-hover-color: var(--text); --bs-btn-hover-border-color: rgba(124,58,237,.4);
    --bs-btn-active-bg: var(--primary-soft); --bs-btn-active-color: var(--text); --bs-btn-active-border-color: rgba(124,58,237,.4);
}
.btn-dark { --bs-btn-bg: #1E293B; --bs-btn-border-color: #334155; --bs-btn-hover-bg: #334155; --bs-btn-hover-border-color: #475569; }
.btn-link { --bs-btn-color: var(--primary-text); --bs-btn-hover-color: var(--primary); }

/* ---------- Kartlar (cam efekti) ---------- */
.card {
    --bs-card-bg: var(--bg-card);
    --bs-card-border-color: var(--border);
    --bs-card-cap-bg: transparent;
    --bs-card-color: var(--text);
    border-radius: var(--radius);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--shadow);
}
.card-header { font-weight: 600; border-bottom-color: var(--border); padding: .85rem 1rem; }
.card-footer { background: transparent !important; border-top-color: var(--border); }

.stat-card { transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease; }
a.stat-card:hover, .stat-card:hover { transform: translateY(-2px); box-shadow: var(--glow); border-color: rgba(124,58,237,.45); }
.stat-card .stat-value { font-size: 1.75rem; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; }
.stat-card .stat-label { color: var(--text-dim); font-size: .85rem; }
.stat-card .stat-icon { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }

/* ---------- Form ---------- */
.form-control, .form-select {
    background-color: var(--bg-input); border-color: var(--border); color: var(--text); border-radius: 10px;
}
.form-control:focus, .form-select:focus {
    background-color: var(--bg-input); color: var(--text);
    border-color: var(--primary); box-shadow: 0 0 0 .2rem var(--primary-soft);
}
.form-control::placeholder { color: var(--text-dim); opacity: .7; }
.form-control:disabled, .form-select:disabled { background-color: var(--bg-hover); opacity: .7; }
.form-check-input { background-color: var(--bg-input); border-color: rgba(148,163,184,.45); }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.form-check-input:focus { border-color: var(--primary); box-shadow: 0 0 0 .2rem var(--primary-soft); }
.form-control-color { padding: .25rem; }
[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="time"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="datetime-local"]::-webkit-calendar-picker-indicator { filter: invert(.8); }

/* ---------- Tablo, liste, sekme, sayfalama ---------- */
.table {
    --bs-table-bg: transparent; --bs-table-color: var(--text); --bs-table-border-color: var(--border);
    --bs-table-hover-bg: var(--bg-hover); --bs-table-hover-color: var(--text);
    --bs-table-striped-bg: var(--bg-hover);
}
.table > thead th { color: var(--text-dim); font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.table > :not(caption) > * > * { vertical-align: middle; }
.table-success { --bs-table-bg: rgba(16,185,129,.15); --bs-table-color: var(--text); }
.list-group { --bs-list-group-bg: transparent; --bs-list-group-color: var(--text); --bs-list-group-border-color: var(--border); --bs-list-group-action-hover-bg: var(--bg-hover); --bs-list-group-action-hover-color: var(--text); --bs-list-group-action-color: var(--text); }
.nav-tabs { --bs-nav-tabs-border-color: var(--border); --bs-nav-tabs-link-active-bg: transparent; --bs-nav-tabs-link-active-color: var(--primary-text); --bs-nav-tabs-link-active-border-color: transparent transparent var(--primary); --bs-nav-tabs-link-hover-border-color: transparent; --bs-nav-link-color: var(--text-dim); --bs-nav-link-hover-color: var(--text); }
.nav-tabs .nav-link { border-width: 0 0 2px; font-weight: 500; }
.nav-tabs .nav-link.active { border-bottom: 2px solid var(--primary); }
.pagination { --bs-pagination-bg: var(--bg-card); --bs-pagination-color: var(--text); --bs-pagination-border-color: var(--border); --bs-pagination-hover-bg: var(--primary-soft); --bs-pagination-hover-color: var(--text); --bs-pagination-hover-border-color: var(--border); --bs-pagination-active-bg: var(--primary); --bs-pagination-active-border-color: var(--primary); --bs-pagination-disabled-bg: transparent; --bs-pagination-disabled-color: var(--text-dim); --bs-pagination-disabled-border-color: var(--border); --bs-pagination-focus-box-shadow: 0 0 0 .2rem var(--primary-soft); }
.accordion { --bs-accordion-bg: var(--bg-card); --bs-accordion-color: var(--text); --bs-accordion-border-color: var(--border); --bs-accordion-btn-color: var(--text); --bs-accordion-btn-bg: transparent; --bs-accordion-active-bg: var(--primary-soft); --bs-accordion-active-color: var(--text); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem var(--primary-soft); }
.accordion-item:first-of-type, .accordion-item:last-of-type { border-radius: var(--radius); }
[data-theme="dark"] .accordion-button::after { filter: invert(1) grayscale(1) brightness(1.6); }

/* ---------- Modal, dropdown, toast, alert ---------- */
.modal { --bs-modal-bg: var(--bg-elev); --bs-modal-color: var(--text); --bs-modal-border-color: var(--border); --bs-modal-header-border-color: var(--border); --bs-modal-footer-border-color: var(--border); --bs-modal-border-radius: var(--radius); }
.modal-backdrop { --bs-backdrop-bg: #020617; --bs-backdrop-opacity: .7; }
.dropdown-menu { --bs-dropdown-bg: var(--bg-elev); --bs-dropdown-color: var(--text); --bs-dropdown-border-color: var(--border); --bs-dropdown-link-color: var(--text); --bs-dropdown-link-hover-bg: var(--primary-soft); --bs-dropdown-link-hover-color: var(--text); --bs-dropdown-divider-bg: var(--border); border-radius: 12px; box-shadow: var(--shadow); }
.alert { border-radius: 12px; }
.alert-light { --bs-alert-bg: var(--bg-hover); --bs-alert-color: var(--text); --bs-alert-border-color: var(--border); }
.alert-primary { --bs-alert-bg: var(--primary-soft); --bs-alert-color: var(--text); --bs-alert-border-color: rgba(124,58,237,.35); }
.btn-close { --bs-btn-close-color: var(--text); }
[data-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* Rozetler — durum renkleri */
.badge { font-weight: 600; letter-spacing: .01em; padding: .38em .6em; border-radius: 6px; }
.text-bg-dark { background-color: #334155 !important; color: #F8FAFC !important; }
.text-bg-secondary { background-color: rgba(148, 163, 184, .25) !important; color: var(--text) !important; }
.text-bg-light { background-color: var(--bg-hover) !important; color: var(--text) !important; }
.text-bg-warning { color: #1F1300 !important; }
.text-bg-info { color: #032B33 !important; }

/* ---------- Yerleşim: kenar çubuğu + üst bar ---------- */
.rm-layout { display: flex; min-height: 100vh; }
.rm-sidebar {
    width: var(--sidebar-w);
    background: var(--sidebar-bg);
    border-right: 1px solid var(--border);
    color: var(--sidebar-fg);
    display: flex; flex-direction: column;
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
@media (min-width: 992px) { .rm-sidebar { position: sticky; top: 0; height: 100vh; flex-shrink: 0; } }
@media (max-width: 991.98px) { .rm-sidebar.offcanvas-lg { --bs-offcanvas-width: 280px; --bs-offcanvas-bg: #0B0F19; --bs-offcanvas-border-color: var(--border); } }

.rm-brand { display: flex; align-items: center; justify-content: space-between; padding: 18px 18px 14px; border-bottom: 1px solid rgba(255,255,255,.06); }
.rm-brand a { color: #F8FAFC; font-weight: 700; display: flex; gap: 10px; align-items: center; min-width: 0; letter-spacing: -.01em; }
.rm-brand a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-brand-icon {
    width: 34px; height: 34px; border-radius: 10px; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 1.05rem;
    background: linear-gradient(135deg, #7C3AED, #06B6D4); box-shadow: 0 4px 14px rgba(124,58,237,.45);
}
.rm-nav { padding: 10px; overflow-y: auto; flex: 1; }
.rm-nav-section { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: #64748B; padding: 16px 10px 6px; }
.rm-nav-link {
    display: flex; align-items: center; gap: 10px; color: var(--sidebar-fg); text-decoration: none;
    padding: 9px 12px; border-radius: 10px; font-size: .92rem; margin-bottom: 2px; position: relative;
    transition: background .15s, color .15s;
}
.rm-nav-link i { font-size: 1.05rem; width: 20px; text-align: center; }
.rm-nav-link:hover { background: rgba(255,255,255,.05); color: #F8FAFC; }
.rm-nav-link.active { background: var(--sidebar-active); color: #F8FAFC; }
.rm-nav-link.active::before { content: ""; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--primary); box-shadow: 0 0 12px var(--primary); }
.rm-nav-link.active i { color: #C4B5FD; }
.rm-sidebar-footer { padding: 12px 18px; color: #475569; border-top: 1px solid rgba(255,255,255,.06); }

.rm-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rm-topbar {
    display: flex; align-items: center; gap: 8px; padding: 10px 22px;
    position: sticky; top: 0; z-index: 1020;
    background: color-mix(in srgb, var(--bg-main) 78%, transparent);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--border);
}
.rm-topbar h1 { font-weight: 700; letter-spacing: -.01em; }
.rm-icon-btn {
    width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-hover);
    color: var(--text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.rm-icon-btn:hover { border-color: rgba(124,58,237,.45); background: var(--primary-soft); }
.rm-content { padding: 22px; }
@media (max-width: 575.98px) { .rm-content { padding: 12px; } .rm-topbar { padding: 10px 12px; } }

/* Mobil alt navigasyon (≤ 768px) */
.nav-mobile-bottom { display: none; }
@media (max-width: 767.98px) {
    .nav-mobile-bottom {
        display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
        background: color-mix(in srgb, var(--bg-elev) 88%, transparent);
        backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
        border-top: 1px solid var(--border);
        padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
    }
    .nav-mobile-bottom a, .nav-mobile-bottom button {
        flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px;
        color: var(--text-dim); text-decoration: none; font-size: .68rem; background: none; border: 0; padding: 4px 0; position: relative;
    }
    .nav-mobile-bottom i { font-size: 1.25rem; }
    .nav-mobile-bottom .active { color: var(--primary-text); }
    .nav-mobile-bottom .badge { position: absolute; top: 0; left: 55%; font-size: .6rem; }
    body.rm-panel .rm-content { padding-bottom: 84px; }
    .toast-container { bottom: 70px !important; }
    .rm-topbar .btn-new-appointment { display: none !important; }
}

/* ---------- Bileşenler ---------- */
.doctor-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; box-shadow: 0 0 0 2px rgba(255,255,255,.06); }
.perm-group { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: var(--bg-card); height: 100%; }
.perm-group h6 { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-dim); }
.perm-matrix .form-check { margin-bottom: .35rem; }

.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 6px; }
.slot-grid .btn { font-variant-numeric: tabular-nums; }
.slot-grid .btn.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.slot-grid .btn.booked { background: var(--neutral); color: var(--text-dim); border-color: transparent; text-decoration: line-through; opacity: .7; }

.timeline { list-style: none; padding-left: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 14px 22px; border-left: 2px solid var(--border); margin-left: 6px; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 10px rgba(124,58,237,.6); }
.timeline li:last-child { border-left-color: transparent; }

.code-box { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; background: #060912 !important; color: #C4B5FD !important; border: 1px solid var(--border) !important; border-radius: 10px; padding: 12px; white-space: pre-wrap; word-break: break-all; }
.text-truncate-200 { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.empty-state { text-align: center; padding: 42px 16px; color: var(--text-dim); }
.empty-state i { font-size: 2.4rem; display: block; margin-bottom: 8px; color: var(--primary-text); opacity: .6; }

/* Yetkisiz kullanıcıdan gizlenen hassas veri */
.blurred-data { filter: blur(5px); user-select: none; pointer-events: none; }

/* Kaydedilmemiş değişiklik çubuğu */
.global-floating-save-bar {
    position: fixed; left: 50%; bottom: 20px; z-index: 1040;
    transform: translate(-50%, calc(100% + 120px)); transition: transform .25s ease, opacity .2s ease, visibility .25s;
    opacity: 0; visibility: hidden; pointer-events: none;
    display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 18px;
    background: var(--bg-elev); border: 1px solid rgba(124,58,237,.45); border-radius: 14px; box-shadow: var(--glow), var(--shadow);
    max-width: calc(100% - 24px);
}
.global-floating-save-bar.show { transform: translate(-50%, 0); opacity: 1; visibility: visible; pointer-events: auto; }
@media (max-width: 767.98px) { .global-floating-save-bar { bottom: 78px; } }

/* Oranlı yığılmış çubuk (rapor) */
.ratio-stacked-bar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: var(--neutral); }
.ratio-stacked-bar > span { display: block; height: 100%; }

/* ---------- FullCalendar ---------- */
.fc {
    --fc-border-color: var(--border);
    --fc-page-bg-color: transparent;
    --fc-neutral-bg-color: var(--bg-hover);
    --fc-neutral-text-color: var(--text-dim);
    --fc-today-bg-color: rgba(124, 58, 237, 0.08);
    --fc-now-indicator-color: var(--danger);
    --fc-list-event-hover-bg-color: var(--bg-hover);
    --fc-button-bg-color: var(--bg-hover);
    --fc-button-border-color: var(--border);
    --fc-button-text-color: var(--text);
    --fc-button-hover-bg-color: var(--primary-soft);
    --fc-button-hover-border-color: rgba(124,58,237,.45);
    --fc-button-active-bg-color: var(--primary);
    --fc-button-active-border-color: var(--primary);
    --fc-highlight-color: rgba(124, 58, 237, 0.18);
    color: var(--text);
}
.fc .fc-button { border-radius: 9px; text-transform: none; font-weight: 500; }
.fc .fc-button-primary:not(:disabled).fc-button-active { color: #fff; }
.fc .fc-toolbar-title { font-size: 1.1rem; font-weight: 700; }
.fc .fc-col-header-cell-cushion, .fc .fc-daygrid-day-number, .fc .fc-timegrid-slot-label-cushion { color: var(--text-dim); text-decoration: none; }
.fc .fc-list-day-cushion { background: var(--bg-hover); }
.fc-event { cursor: pointer; border-radius: 6px; }
.fc-event.status-requested { border-style: dashed !important; }
.fc-event.status-completed { opacity: .6; }
.fc-event.status-no_show { opacity: .45; text-decoration: line-through; }
@media (max-width: 767.98px) { .fc .fc-toolbar { flex-direction: column; gap: 8px; } }

/* ---------- Giriş / kurulum sayfaları ---------- */
body.rm-auth {
    min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px;
    background:
        radial-gradient(700px 400px at 20% 10%, rgba(124, 58, 237, 0.28), transparent 60%),
        radial-gradient(600px 400px at 85% 90%, rgba(6, 182, 212, 0.16), transparent 60%),
        var(--bg-main);
}
.rm-auth-card {
    background: var(--bg-card); border: 1px solid var(--border); border-radius: 18px; padding: 32px;
    width: 100%; max-width: 420px; box-shadow: var(--shadow);
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.rm-auth-card.rm-auth-wide { max-width: 760px; }
.rm-auth-logo {
    width: 56px; height: 56px; border-radius: 16px; margin: 0 auto; font-size: 1.6rem; color: #fff;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #7C3AED, #06B6D4); box-shadow: 0 8px 26px rgba(124,58,237,.45);
}

/* ---------------------------------------------------------------- Randevu ekranı tasarım seçici */
.tasarim-kart { display: block; height: 100%; cursor: pointer; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: var(--bg-card); transition: border-color .15s, box-shadow .15s, transform .15s; }
.tasarim-kart:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--primary) 50%, transparent); }
.tasarim-kart input { position: absolute; opacity: 0; pointer-events: none; }
.tasarim-kart:has(input:checked) { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.tasarim-kart:has(input:focus-visible) { box-shadow: 0 0 0 3px var(--primary-soft); }
.tasarim-bilgi { padding: 10px 12px; }
.tasarim-onizleme { position: relative; height: 128px; padding: 0 0 10px; overflow: hidden; --ti-bg: #fff; --ti-bas: var(--ti-renk); --ti-on: color-mix(in srgb, var(--ti-renk) 14%, #fff); --ti-dolu: #e5e7eb; --ti-cizgi: #e5e7eb; --ti-yuvarlak: 3px; background: var(--ti-bg); }
.tasarim-onizleme .ti-bas { height: 30px; background: var(--ti-bas); display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 0 10px; }
.tasarim-onizleme .ti-bas i { display: block; height: 5px; width: 46%; border-radius: 3px; background: rgba(255,255,255,.85); }
.tasarim-onizleme .ti-bas i + i { width: 28%; opacity: .6; }
.tasarim-onizleme .ti-kart { height: 16px; margin: 8px 10px 6px; border-radius: var(--ti-yuvarlak); border: 1px solid var(--ti-cizgi); }
.tasarim-onizleme .ti-gunler { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; padding: 0 10px; }
.tasarim-onizleme .ti-gunler i { aspect-ratio: 1; border-radius: var(--ti-yuvarlak); background: var(--ti-dolu); opacity: .55; max-height: 12px; }
.tasarim-onizleme .ti-gunler i.on { background: var(--ti-on); opacity: 1; }
.tasarim-onizleme .ti-gunler i.sec { background: var(--ti-renk); opacity: 1; }
.tasarim-onizleme .ti-saatler { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 8px 10px 0; }
.tasarim-onizleme .ti-saatler b { height: 11px; border-radius: var(--ti-yuvarlak); border: 1px solid var(--ti-renk); }
.tasarim-onizleme .ti-saatler b.sec { background: var(--ti-renk); }
.tasarim-onizleme .ti-saatler b.dolu { border-color: var(--ti-dolu); background: var(--ti-dolu); }
.tasarim-onizleme .ti-rozet { position: absolute; z-index: 1; bottom: 6px; right: 6px; font-size: .62rem; padding: 2px 6px; border-radius: 99px; background: rgba(15,23,42,.75); color: #fff; }
.ti-varsayilan { filter: saturate(.85); }
/* Klasik */
.ti-classic .ti-bas { background: linear-gradient(135deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 78%, #000)); }
/* Zarif */
.ti-elegant { --ti-bg: #fbf8f3; --ti-bas: transparent; --ti-on: transparent; --ti-dolu: #efe9e0; --ti-cizgi: #e8dfd2; --ti-yuvarlak: 1px; }
.ti-elegant .ti-bas { align-items: center; border-bottom: 1px solid var(--ti-vurgu, #d9c6a5); }
.ti-elegant .ti-bas i { background: #2b2620; }
.ti-elegant .ti-gunler i { border-radius: 50%; }
.ti-elegant .ti-gunler i.on { border: 1px solid color-mix(in srgb, var(--ti-renk) 40%, #e8dfd2); }
.ti-elegant .ti-kart { border: 0; border-bottom: 1px solid var(--ti-cizgi); border-radius: 0; }
.ti-elegant .ti-saatler b { border-color: #e8dfd2; }
/* Gece */
.ti-night { --ti-bg: #0e1424; --ti-bas: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--ti-renk) 55%, #0e1424), #0e1424 70%); --ti-on: color-mix(in srgb, var(--ti-renk) 25%, transparent); --ti-dolu: rgba(255,255,255,.08); --ti-cizgi: rgba(255,255,255,.1); --ti-yuvarlak: 4px; }
.ti-night .ti-gunler i.sec, .ti-night .ti-saatler b.sec { box-shadow: 0 0 8px color-mix(in srgb, var(--ti-renk) 80%, transparent); }
/* Sade */
.ti-minimal { --ti-bas: #fff; --ti-on: transparent; --ti-dolu: #f1f2f4; --ti-cizgi: #eceef1; --ti-yuvarlak: 99px; }
.ti-minimal .ti-bas i { background: #111827; }
.ti-minimal .ti-kart { height: 22px; background: #f6f7f9; border: 0; border-radius: 6px; }
.ti-minimal .ti-gunler i.on { background: radial-gradient(circle at 50% 78%, var(--ti-renk) 0 1.5px, transparent 2px); }
.ti-minimal .ti-gunler i.sec { background: #111827; }
.ti-minimal .ti-saatler b { border-color: #e5e7eb; }
.ti-minimal .ti-saatler b.sec { background: #111827; border-color: #111827; }
/* Canlı */
.ti-vivid { --ti-bg: #fff; --ti-bas: linear-gradient(135deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 45%, var(--ti-vurgu, #f472b6))); --ti-dolu: #f1f0f7; --ti-yuvarlak: 5px; }
.ti-vivid .ti-bas { border-radius: 0 0 14px 14px; }
.ti-vivid .ti-kart { border: 0; background: #f5f3ff; }
.ti-vivid .ti-saatler b { border: 0; background: var(--ti-on); }
.ti-vivid .ti-saatler b.sec, .ti-vivid .ti-gunler i.sec { background: linear-gradient(135deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 50%, var(--ti-vurgu, #f472b6))); }

/* Yerleşim çizimleri (şerit / liste / hafta / bölünmüş) */
.tasarim-onizleme .ti-premium { top: 6px; bottom: auto; right: 6px; background: linear-gradient(135deg, #1f2937, #4b5563); letter-spacing: .02em; }
.tasarim-onizleme .ti-serit { display: flex; gap: 4px; padding: 10px 10px 2px; }
.tasarim-onizleme .ti-serit i { flex: 1; height: 26px; border-radius: var(--ti-yuvarlak); border: 1px solid var(--ti-cizgi); background: var(--ti-bg); }
.tasarim-onizleme .ti-serit i.on { border-color: color-mix(in srgb, var(--ti-renk) 35%, var(--ti-cizgi)); }
.tasarim-onizleme .ti-serit i.sec { background: var(--ti-renk); border-color: var(--ti-renk); }
.tasarim-onizleme .ti-liste { display: grid; gap: 5px; padding: 9px 10px 0; }
.tasarim-onizleme .ti-liste b { position: relative; height: 18px; border-bottom: 1px solid var(--ti-cizgi); }
.tasarim-onizleme .ti-liste b::before { content: ""; position: absolute; left: 0; top: 2px; width: 12px; height: 12px; border-radius: 2px; background: var(--ti-renk); opacity: .8; }
.tasarim-onizleme .ti-liste b u { position: absolute; left: 18px; top: 5px; width: 44%; height: 5px; border-radius: 3px; background: var(--ti-dolu); }
.tasarim-onizleme .ti-liste b.sec { border-left: 2px solid var(--ti-renk); padding-left: 2px; }
.tasarim-onizleme .ti-hafta { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; padding: 8px 10px 0; }
.tasarim-onizleme .ti-hafta span { display: grid; gap: 3px; align-content: start; }
.tasarim-onizleme .ti-hafta i { height: 8px; border-radius: 99px; border: 1px solid color-mix(in srgb, var(--ti-renk) 40%, var(--ti-cizgi)); }
.tasarim-onizleme .ti-hafta i.g { height: 14px; border: 0; border-radius: 4px; background: var(--ti-dolu); }
.tasarim-onizleme .ti-hafta i.sec { background: var(--ti-renk); border-color: var(--ti-renk); }
.tasarim-onizleme .ti-hafta .bos i.g { opacity: .45; }
.tasarim-onizleme .ti-bol { display: grid; grid-template-columns: 1.3fr 1fr; gap: 6px; padding: 8px 10px 0 0; }
.tasarim-onizleme .ti-bol .ti-gunler { padding-right: 0; }
.tasarim-onizleme .ti-dikey { display: grid; gap: 4px; align-content: start; border-left: 1px solid var(--ti-cizgi); padding-left: 6px; }
.tasarim-onizleme .ti-dikey b { height: 11px; border-radius: var(--ti-yuvarlak); border: 1px solid var(--ti-cizgi); }
.tasarim-onizleme .ti-dikey b.sec { background: var(--ti-renk); border-color: var(--ti-renk); }

/* Premium tasarım önizlemeleri */
.ti-platin { --ti-bg: #fff; --ti-bas: linear-gradient(120deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 78%, #000)); --ti-on: #fff; --ti-dolu: #eef1f5; --ti-cizgi: #e3e7ee; --ti-yuvarlak: 3px; }
.ti-platin .ti-bas { border-bottom: 2px solid var(--ti-vurgu); }
.ti-platin .ti-bol .ti-gunler { background: #f4f6f9; padding: 4px; border-radius: 4px; margin-left: 10px; }
.ti-platin .ti-gunler i.on { border: 1px solid #e3e7ee; }
.ti-obsidyen { --ti-bg: var(--ti-vurgu); --ti-bas: transparent; --ti-on: transparent; --ti-dolu: rgba(255,255,255,.06); --ti-cizgi: color-mix(in srgb, var(--ti-renk) 25%, transparent); --ti-yuvarlak: 0; }
.ti-obsidyen .ti-bas { align-items: center; border-bottom: 1px solid color-mix(in srgb, var(--ti-renk) 50%, transparent); }
.ti-obsidyen .ti-bas i { background: var(--ti-renk); }
.ti-obsidyen .ti-kart { border: 0; height: 6px; }
.ti-obsidyen .ti-gunler i { border-radius: 50%; }
.ti-obsidyen .ti-gunler i.on { background: radial-gradient(circle at 50% 80%, var(--ti-renk) 0 1px, transparent 1.5px), transparent; box-shadow: inset 0 -1px 0 transparent; opacity: 1; }
.ti-obsidyen .ti-saatler b { border-color: var(--ti-cizgi); }
.ti-obsidyen .ti-saatler b.sec { background: var(--ti-renk); }
.ti-safir { --ti-bg: #f3f6fc; --ti-bas: linear-gradient(135deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 68%, var(--ti-vurgu))); --ti-dolu: #e6ecf7; --ti-cizgi: transparent; --ti-yuvarlak: 5px; }
.ti-safir .ti-bas { height: 36px; border-radius: 0 0 12px 12px; }
.ti-safir .ti-serit i { background: #fff; box-shadow: 0 1px 3px rgba(15,27,61,.1); }
.ti-safir .ti-serit i.sec { background: linear-gradient(160deg, var(--ti-renk), color-mix(in srgb, var(--ti-renk) 62%, var(--ti-vurgu))); }
.ti-safir .ti-saatler b { border: 0; background: #fff; box-shadow: 0 1px 2px rgba(15,27,61,.1); }
.ti-safir .ti-saatler b.sec { background: var(--ti-renk); }
.ti-zumrut { --ti-bg: #faf7f0; --ti-bas: var(--ti-renk); --ti-dolu: #e9e2d2; --ti-cizgi: #e6dfd0; --ti-yuvarlak: 2px; }
.ti-zumrut .ti-bas { border-bottom: 3px double var(--ti-vurgu); }
.ti-zumrut .ti-bas i { background: #f7f2e6; }
.ti-zumrut .ti-liste b::before { background: transparent; border: 1px solid var(--ti-renk); border-radius: 6px 6px 1px 1px; }
.ti-inci { --ti-bg: #fffcfa; --ti-bas: linear-gradient(135deg, #fff, color-mix(in srgb, var(--ti-vurgu) 75%, #fff) 40%, #f2eef6); --ti-dolu: #f7efec; --ti-cizgi: #f0e4e0; --ti-yuvarlak: 99px; }
.ti-inci .ti-bas { align-items: center; }
.ti-inci .ti-bas i { background: var(--ti-renk); opacity: .7; }
.ti-inci .ti-hafta i.g { background: transparent; border: 0; height: 12px; box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--ti-renk) 30%, transparent); }
.ti-rezerve { --ti-bg: #fff; --ti-bas: #fff; --ti-dolu: #f1f3f4; --ti-cizgi: #dadce0; --ti-yuvarlak: 4px; }
.ti-rezerve .ti-bas { border-bottom: 3px solid var(--ti-renk); }
.ti-rezerve .ti-bas i { background: #3c4043; }
.ti-rezerve .ti-serit i.sec { background: var(--ti-vurgu); border-color: var(--ti-renk); }
.ti-rezerve .ti-saatler b { border-color: #dadce0; }
.ti-rezerve .ti-saatler b.sec { background: var(--ti-vurgu); border-color: var(--ti-renk); }
.ti-rezerve .ti-saatler b.dolu { visibility: hidden; }

/* Tasarım renkleri tablosu */
.tasarim-renkleri .tr-satir { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border); }
.tasarim-renkleri .tr-satir:last-child { border-bottom: 0; }
.tasarim-renkleri .tr-ornek { width: 34px; height: 22px; border-radius: 6px; flex-shrink: 0; background: linear-gradient(135deg, var(--a) 0 55%, var(--v) 55%); box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.tasarim-renkleri input[type="color"] { width: 42px; height: 30px; padding: 2px; }
