:root{
  --cza-bg:#0b0b0d;
  --cza-panel:#121218;
  --cza-panel-2:#171720;
  --cza-border:rgba(255,255,255,.10);
  --cza-text:rgba(255,255,255,.92);
  --cza-muted:rgba(255,255,255,.60);
  --cza-accent:#ffffff;
}

.cza-body{ background:var(--cza-bg); color:var(--cza-text); }
.cza-shell{ display:flex; min-height:100vh; }
.cza-sidebar{
  width: 290px; background: linear-gradient(180deg, #0b0b0d, #070709);
  border-right:1px solid var(--cza-border);
  padding:18px 14px;
  position:sticky; top:0; height:100vh; overflow:auto;
}
.cza-brand{ display:flex; gap:12px; align-items:center; padding:8px 10px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid var(--cza-border); }
.cza-logo{ width:44px; height:44px; border-radius:12px; object-fit:cover; }
.cza-brand-title{ font-weight:700; letter-spacing:.4px; }
.cza-brand-sub{ font-size:12px; color:var(--cza-muted); margin-top:-2px; }

.cza-nav{ margin-top:16px; }
.cza-nav-title{ margin:14px 8px 6px; font-size:12px; color:var(--cza-muted); text-transform:uppercase; letter-spacing:.08em; }
.cza-nav-link{
  display:block; padding:10px 12px; margin:4px 6px;
  border-radius:12px; color:var(--cza-text); text-decoration:none;
  border:1px solid transparent;
}
.cza-nav-link:hover{ background:rgba(255,255,255,.06); border-color:var(--cza-border); }

.cza-main{ flex:1; }
.cza-topbar{
  position:sticky; top:0; z-index:20;
  background:rgba(11,11,13,.92); backdrop-filter: blur(10px);
  border-bottom:1px solid var(--cza-border);
  padding:14px 18px; display:flex; justify-content:space-between; align-items:center;
}
.cza-page-title{ font-size:18px; font-weight:700; }
.cza-user{ margin-left:10px; color:var(--cza-muted); }

.cza-content{ padding:18px; }

.cza-card{
  background:rgba(255,255,255,.04);
  border:1px solid var(--cza-border);
  border-radius:18px;
  box-shadow: 0 12px 35px rgba(0,0,0,.35);
}
.cza-card .card-header{ background:transparent; border-bottom:1px solid var(--cza-border); }
.cza-pill{ padding:6px 10px; border-radius:999px; font-weight:600; font-size:12px; display:inline-block; }
.cza-paid{ background: rgba(46, 204, 113, .20); color:#b9f6d0; border:1px solid rgba(46,204,113,.35); }
.cza-partial{ background: rgba(241, 196, 15, .18); color:#fff3bf; border:1px solid rgba(241,196,15,.35); }
.cza-unpaid{ background: rgba(231, 76, 60, .18); color:#ffd0cc; border:1px solid rgba(231,76,60,.35); }

/* FullCalendar dark tweaks */
.fc{
  --fc-border-color: rgba(255,255,255,.12);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(255,255,255,.04);
  --fc-today-bg-color: rgba(255,255,255,.05);
  --fc-list-event-hover-bg-color: rgba(255,255,255,.06);
}
.fc .fc-toolbar-title{ font-size:18px; }
.fc .fc-timegrid-slot-label, .fc .fc-col-header-cell-cushion{ color: rgba(255,255,255,.65); }
.fc .fc-timegrid-axis-cushion{ color: rgba(255,255,255,.65); }

/* Teacher colors */
.cza-color-green{ background: rgba(46, 204, 113, .9) !important; border-color: rgba(46, 204, 113, 1) !important; }
.cza-color-red{ background: rgba(231, 76, 60, .9) !important; border-color: rgba(231, 76, 60, 1) !important; }
.cza-color-purple{ background: rgba(155, 89, 182, .9) !important; border-color: rgba(155, 89, 182, 1) !important; }
.cza-color-blue{ background: rgba(52, 152, 219, .9) !important; border-color: rgba(52, 152, 219, 1) !important; }
.cza-color-orange{ background: rgba(230, 126, 34, .9) !important; border-color: rgba(230, 126, 34, 1) !important; }
.cza-color-teal{ background: rgba(26, 188, 156, .9) !important; border-color: rgba(26, 188, 156, 1) !important; }
.cza-color-pink{ background: rgba(233, 30, 99, .9) !important; border-color: rgba(233, 30, 99, 1) !important; }
.cza-color-brown{ background: rgba(121, 85, 72, .9) !important; border-color: rgba(121, 85, 72, 1) !important; }
.cza-color-gray{ background: rgba(149, 165, 166, .9) !important; border-color: rgba(149, 165, 166, 1) !important; }

.cza-legend{ display:inline-flex; align-items:center; gap:.5rem; padding:.25rem .5rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; font-size:.85rem; color: rgba(255,255,255,.85); }
.cza-legend-dot{ width:12px; height:12px; border-radius:999px; display:inline-block; border:1px solid rgba(0,0,0,.25); }

.select2-container--default .select2-selection--multiple{
  background: rgba(255,255,255,.04);
  border:1px solid var(--cza-border);
  border-radius: 12px;
  min-height: 44px;
  padding: 6px 8px;
}
.select2-container--default .select2-search--inline .select2-search__field{ color:var(--cza-text); }
.select2-container--default .select2-results__option{ color:#111; } /* dropdown uses light bg */
