/* ══════════════════════════════════════
   AGENDA — css/agenda.css
══════════════════════════════════════ */
.agenda-layout { display:grid; grid-template-columns:220px 1fr 240px; flex:1; min-height:0; overflow:hidden; }

/* ── Left sidebar ── */
.agenda-left { border-right:1px solid var(--b); background:var(--s1); overflow-y:auto; }
.mini-cal { padding:14px; }
.mc-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.mc-month { font-size:12px; font-weight:700; }
.mc-nav-btn { background:none; border:none; color:var(--m2); cursor:pointer; font-size:14px; padding:2px 7px; border-radius:5px; transition:color .15s; }
.mc-nav-btn:hover { color:var(--t); }
.mc-day-headers { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:3px; }
.mc-day-hd { text-align:center; font-size:9px; font-weight:600; color:var(--m); font-family:var(--mo); padding:2px 0; }
.mc-days-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.mc-day { text-align:center; font-size:10px; padding:5px 2px; border-radius:5px; cursor:pointer; color:var(--m2); font-family:var(--mo); position:relative; transition:all .15s; }
.mc-day:hover { background:var(--s2); color:var(--t); }
.mc-day.today    { background:var(--bd); color:var(--blue); font-weight:700; }
.mc-day.selected { background:var(--blue); color:#fff; font-weight:700; }
.mc-day.has-appts::after { content:''; position:absolute; bottom:2px; left:50%; transform:translateX(-50%); width:3px; height:3px; background:var(--blue); border-radius:50%; }
.mc-day.selected::after  { background:rgba(255,255,255,.6); }
.mc-day.other-month { opacity:.25; }
.agenda-left-sec { padding:0 14px 14px; }
.als-label { font-size:9px; font-weight:700; color:var(--m); letter-spacing:.12em; text-transform:uppercase; margin-bottom:9px; font-family:var(--mo); }
.prof-item { display:flex; align-items:center; gap:7px; padding:5px 0; cursor:pointer; }
.prof-cb { width:13px; height:13px; border-radius:3px; border:1.5px solid; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; flex-shrink:0; }
.prof-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.prof-name { font-size:12px; font-weight:500; flex:1; }
.prof-count { font-size:10px; color:var(--m); font-family:var(--mo); }
.agenda-stat { display:flex; justify-content:space-between; align-items:center; padding:5px 0; border-bottom:1px solid var(--b); font-size:11px; }
.agenda-stat:last-child { border-bottom:none; }
.ast-key { color:var(--m2); }
.ast-val { font-weight:700; font-family:var(--mo); }
.ast-val.blue   { color:var(--blue); }
.ast-val.green  { color:var(--green); }
.ast-val.amber  { color:var(--amber); }
.ast-val.red    { color:var(--red); }

/* ── Calendar main ── */
.cal-main { display:flex; flex-direction:column; overflow:hidden; }
.cal-toolbar { padding:10px 16px; border-bottom:1px solid var(--b); background:var(--s1); display:flex; align-items:center; gap:10px; flex-shrink:0; flex-wrap:wrap; }
.cal-nav-group { display:flex; align-items:center; gap:4px; }
.cal-nav-btn { background:var(--s2); border:1px solid var(--b2); color:var(--m2); border-radius:7px; padding:5px 10px; font-size:12px; cursor:pointer; transition:all .15s; }
.cal-nav-btn:hover { color:var(--t); }
.cal-date-label { font-size:15px; font-weight:800; letter-spacing:-.3px; }
.view-switch { display:flex; background:var(--s2); border:1px solid var(--b2); border-radius:8px; overflow:hidden; margin-left:auto; }
.view-btn { font-size:11px; font-weight:600; padding:6px 13px; cursor:pointer; color:var(--m2); border:none; background:transparent; transition:all .15s; }
.view-btn.active { background:var(--blue); color:#fff; }
.cal-legend { display:flex; gap:12px; padding:8px 16px; border-bottom:1px solid var(--b); background:var(--s1); flex-shrink:0; flex-wrap:wrap; }
.legend-item { display:flex; align-items:center; gap:4px; font-size:10px; color:var(--m2); }
.legend-dot { width:7px; height:7px; border-radius:2px; flex-shrink:0; }

/* Week grid */
.week-grid-wrap { flex:1; overflow:auto; }
.week-day-headers { display:grid; grid-template-columns:46px repeat(6,1fr); border-bottom:1px solid var(--b); background:var(--s1); position:sticky; top:0; z-index:5; }
.week-day-hd { padding:9px 8px; text-align:center; border-right:1px solid var(--b); cursor:pointer; transition:background .15s; }
.week-day-hd:last-child { border-right:none; }
.week-day-hd.today .day-num { background:var(--blue); color:#fff; border-radius:50%; }
.week-day-hd.selected { background:var(--bd); }
.day-weekname { font-size:9px; font-weight:700; color:var(--m); letter-spacing:.08em; font-family:var(--mo); }
.day-num { font-size:18px; font-weight:900; letter-spacing:-.5px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; margin:2px auto 1px; font-family:var(--mo); transition:all .2s; }
.day-cnt { font-size:9px; color:var(--m); }
.week-time-body { display:grid; grid-template-columns:46px repeat(6,1fr); }
.time-gutter { border-right:1px solid var(--b); }
.time-slot-gutter { height:56px; border-bottom:1px solid var(--b); display:flex; align-items:flex-start; padding:3px 5px; }
.time-slot-label { font-size:9px; color:var(--m); font-family:var(--mo); white-space:nowrap; padding-top:2px; }
.day-col { border-right:1px solid var(--b); position:relative; }
.day-col:last-child { border-right:none; }
.day-time-slot { height:56px; border-bottom:1px solid var(--b); cursor:pointer; transition:background .15s; }
.day-time-slot:hover { background:rgba(59,142,255,.04); }
/* Appointment blocks */
.appt-block { position:absolute; left:3px; right:3px; border-radius:7px; padding:5px 7px; cursor:pointer; overflow:hidden; transition:all .15s; z-index:20; border:1px solid rgba(255,255,255,.1); }
.appt-block:hover { transform:scale(1.02); z-index:21; }
.ab-blue   { background:var(--blue); color:#fff; border-left:4px solid rgba(0,0,0,.2); }
.ab-green  { background:var(--green); color:#fff; border-left:4px solid rgba(0,0,0,.2); }
.ab-purple { background:var(--purple); color:#fff; border-left:4px solid rgba(0,0,0,.2); }
.ab-amber  { background:var(--amber); color:#000; border-left:4px solid rgba(0,0,0,.2); }
.ab-red    { background:var(--red); color:#fff; border-left:4px solid rgba(0,0,0,.2); }
.ab-teal   { background:var(--teal); color:#fff; border-left:4px solid rgba(0,0,0,.2); }
.ab-blue .ab-time, .ab-green .ab-time, .ab-purple .ab-time, .ab-red .ab-time { color:rgba(255,255,255,.8); }
.ab-amber .ab-time { color:rgba(0,0,0,.6); }
.ab-time    { font-size:8px; font-weight:700; font-family:var(--mo); opacity:.8; }
.ab-name    { font-size:10px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ab-service { font-size:9px; opacity:.7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* Now line */
.now-line { position:absolute; left:0; right:0; height:2px; background:var(--red); z-index:10; pointer-events:none; }
.now-line::before { content:''; position:absolute; left:-4px; top:-4px; width:9px; height:9px; background:var(--red); border-radius:50%; }

/* ── Right panel ── */
.agenda-right { border-left:1px solid var(--b); background:var(--s1); overflow-y:auto; }
.ar-sec { padding:13px 14px; border-bottom:1px solid var(--b); }
.ar-sec:last-child { border-bottom:none; }
.ar-label { font-size:9px; font-weight:700; color:var(--m); letter-spacing:.12em; text-transform:uppercase; margin-bottom:9px; font-family:var(--mo); }
.sel-appt-card { background:var(--bd); border:1px solid rgba(59,142,255,.25); border-radius:10px; padding:12px; }
.sac-time { font-size:11px; font-weight:700; color:var(--blue); font-family:var(--mo); }
.sac-name { font-size:13px; font-weight:800; margin:2px 0; }
.sac-sub  { font-size:11px; color:var(--m2); }
.ar-actions { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.ar-actions .btn { width:100%; justify-content:center; }
