:root{
  --bg:#f5f7fb;
  --panel:#fff;
  --ink:#172033;
  --muted:#7b8496;
  --line:#e7eaf0;
  --brand:#5b5bd6;
  --brand2:#7474e8;
}
*{box-sizing:border-box}
body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}
a{text-decoration:none}
.app-shell{min-height:100vh;display:flex}
.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#111827;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:1040}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:20px;padding:8px 10px 22px}
.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#7c3aed,#4f46e5)}
.sidebar .nav-link{color:#cbd5e1;border-radius:10px;padding:10px 12px;font-weight:600;font-size:14px}
.sidebar .nav-link:hover{background:#1f2937;color:#fff}
.main{margin-left:255px;min-height:100vh;width:calc(100% - 255px)}
.topbar{height:76px;padding:0 28px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1000;backdrop-filter:blur(12px)}
.content{padding:28px}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#4338ca;font-weight:800}
.card{border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 14px rgba(15,23,42,.03)}
.stat-card{padding:20px}
.stat-label{font-size:13px;color:var(--muted);font-weight:600}
.stat-value{font-size:28px;font-weight:800;margin-top:6px}
.btn{border-radius:10px;font-weight:600}
.btn-primary{background:var(--brand);border-color:var(--brand)}
.table>:not(caption)>*>*{padding:.9rem .8rem;vertical-align:middle}
.form-control,.form-select{border-radius:10px;border-color:#dfe3eb;min-height:44px}
.form-control:focus,.form-select:focus{border-color:#a5b4fc;box-shadow:0 0 0 .2rem rgba(99,102,241,.12)}
.page-auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#e0e7ff 0,transparent 36%),#f8fafc;padding:24px}
.auth-card{max-width:470px;width:100%;padding:32px;border-radius:22px}
.auth-logo{font-size:26px;font-weight:800}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;overflow:auto}
.day-col{background:#fff;border:1px solid var(--line);border-radius:14px;min-height:330px;padding:12px}
.day-title{font-weight:800;font-size:13px;margin-bottom:10px}
.appt{border-left:4px solid var(--dept,#6366f1);background:#f8fafc;border-radius:9px;padding:9px;margin-bottom:8px;font-size:12px}
.appt strong{display:block}
@media(max-width:991px){
 .sidebar{transform:translateX(-100%)}
 .main{margin-left:0;width:100%}
 .content{padding:18px}
 .topbar{padding:0 18px}
}


/* v1.2 Planning */
.sidebar .nav-link.active{background:#263244;color:#fff}
.nav-parent{border:0;background:transparent}
.nav-parent:focus{box-shadow:none}
.nav-submenu{padding-left:12px;margin:2px 0 6px 8px;border-left:1px solid #334155}
.nav-submenu .nav-link{padding:8px 12px;font-size:13px;color:#94a3b8}
.nav-submenu .nav-link:hover,.nav-submenu .nav-link.active{color:#fff;background:#1f2937}
.nav-chevron{font-size:13px;color:#64748b}

.planning-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:18px}
.planning-toolbar .view-switch{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px}
.planning-toolbar .view-switch .btn{border:0}
.planning-toolbar .view-switch .btn.active{background:#eef2ff;color:#4338ca}

#planningCalendar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}
.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.25rem}
.fc .fc-toolbar-title{font-size:1.1rem;font-weight:800}
.fc .fc-button{border-radius:9px!important;font-weight:700!important}
.fc .fc-button-primary{background:#5b5bd6!important;border-color:#5b5bd6!important}
.fc .fc-button-primary:not(:disabled):active,
.fc .fc-button-primary:not(:disabled).fc-button-active{background:#4444c7!important;border-color:#4444c7!important}
.fc-theme-standard td,.fc-theme-standard th{border-color:#e8ebf1!important}
.fc .fc-col-header-cell-cushion{padding:10px 4px;color:#172033;font-weight:700}
.fc .fc-timegrid-slot-label-cushion{font-size:12px;color:#7b8496}
.fc-event{cursor:pointer;border-radius:7px!important;border-width:0!important;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.fc-event-main{padding:2px 4px}
.fc .fc-daygrid-day-number{color:#334155;font-weight:600}
.fc .fc-day-today{background:#fafaff!important}

.filter-card{padding:16px;margin-bottom:16px}
.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}
@media(max-width:1200px){.filter-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.filter-grid{grid-template-columns:1fr}}
