:root {
    --bg-start: #0f172a;
    --bg-mid: #1e293b;
    --bg-end: #334155;
    --card: rgba(255,255,255,0.08);
    --border: rgba(255,255,255,0.14);
    --text: #f8fafc;
    --muted: #cbd5e1;
    --accent: #60a5fa;
    --accent-2: #93c5fd;
    --purple: #8b5cf6;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    min-height: 100vh;
    background: linear-gradient(135deg, var(--bg-start), var(--bg-mid), var(--bg-end));
    color: var(--text);
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

body::before,
body::after {
    content: "";
    position: fixed;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    filter: blur(20px);
    z-index: 0;
}
body::before { width: 260px; height: 260px; top: -80px; left: -80px; }
body::after { width: 320px; height: 320px; bottom: -100px; right: -100px; }

.app-shell { position: relative; z-index: 1; display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; gap: 20px; padding: 20px; }
.sidebar, .topbar, .glass-card { backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); background: var(--card); border: 1px solid var(--border); box-shadow: 0 18px 35px rgba(0,0,0,.25); }
.sidebar { border-radius: 24px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.content-wrap { display: flex; flex-direction: column; gap: 20px; }
.topbar { border-radius: 24px; padding: 20px 24px; }
.page-heading { font-size: 1.8rem; margin: 0; }
.brand-title { font-size: 1.7rem; font-weight: 800; color: white; }
.brand-subtitle { color: var(--muted); }
.status-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(96,165,250,.35); color: var(--accent-2); background: rgba(59,130,246,.15); padding: 10px 14px; border-radius: 999px; font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; }
.custom-link { color: white; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,0.04); border: 1px solid transparent; }
.custom-link:hover, .custom-link.active { color: white; background: rgba(96,165,250,.18); border-color: rgba(96,165,250,.25); }
.section-card { border-radius: 24px; padding: 22px; }
.table-dark-custom { --bs-table-bg: transparent; --bs-table-color: #fff; --bs-table-border-color: rgba(255,255,255,.09); }
.table-dark-custom tbody tr:hover { background: rgba(255,255,255,.04); }
.form-control, .form-select, textarea { background: rgba(15,23,42,.75) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.14) !important; }
.form-control::placeholder, textarea::placeholder { color: #94a3b8 !important; }
.form-control:focus, .form-select:focus, textarea:focus { border-color: rgba(96,165,250,.55) !important; box-shadow: 0 0 0 0.2rem rgba(96,165,250,.18) !important; }
.btn-primary { background: #3b82f6; border: none; }
.btn-primary:hover { background: #2563eb; }
.btn-outline-light { border-color: rgba(255,255,255,.25); }
.bg-purple { background-color: var(--purple) !important; }
.stat-card { border-radius: 22px; padding: 18px; min-height: 140px; display: flex; flex-direction: column; justify-content: space-between; }
.stat-label { color: var(--muted); font-size: .9rem; }
.stat-value { font-size: 2rem; font-weight: 800; }
.fc { color: white; }
.fc .fc-toolbar-title { color: white; font-size: 1.2rem; }
.fc-theme-standard td, .fc-theme-standard th, .fc-theme-standard .fc-scrollgrid { border-color: rgba(255,255,255,.1); }
.fc .fc-daygrid-day-number, .fc .fc-col-header-cell-cushion { color: white; text-decoration: none; }
.fc .fc-button-primary { background: rgba(59,130,246,.85); border-color: rgba(59,130,246,.85); }
.fc .fc-button-primary:not(:disabled):active, .fc .fc-button-primary:hover { background: #2563eb; border-color: #2563eb; }
.badge { padding: .6em .75em; }
.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-card { max-width: 460px; width: 100%; border-radius: 28px; padding: 34px; }
.small-muted { color: var(--muted); }
@media (max-width: 992px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; }
}
