/* ============================================================
   /coach-calendar — Calendario del Coach (admin). Prefijo cc-, tokens scoped a .cc-root.
   Overlay de detalle z-index 1300 (debajo de MudDialog 1400: el confirm de cancelar va encima);
   el modal de reprogramar (coach-reschedule.css) va a 1350.
   ============================================================ */
.cc-root{
  --cc-ink:#0f172a;--cc-muted:#64748b;--cc-line:#e5e7eb;--cc-bg:#f8fafc;--cc-blue:#155EEF;
  --cc-p1:#155EEF;--cc-p1-soft:#eef4ff;
  --cc-p2:#0E9384;--cc-p2-soft:#e6f6f4;
  --cc-p3:#7F56D9;--cc-p3-soft:#f4f0ff;
  --cc-red:#dc2626;
  font-family:'Sora',system-ui,sans-serif;color:var(--cc-ink);
  margin:0 -16px;padding:4px 16px 32px;
}
@media(min-width:600px){.cc-root{margin:0 -24px;padding:4px 24px 32px}}
.cc-root *{box-sizing:border-box}
.cc-root h2,.cc-root h3{margin:0;font-family:'Space Grotesk',sans-serif}
.cc-root button{font-family:inherit;cursor:pointer}

/* ── Toolbar ── */
.cc-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cc-nav,.cc-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cc-title{font-size:22px;margin-left:6px !important}
.cc-loading{font-size:12px;color:var(--cc-muted)}
.cc-btn{border:1px solid var(--cc-line);background:#fff;color:var(--cc-ink);border-radius:10px;padding:8px 13px;font-size:13px;font-weight:700}
.cc-btn:hover{border-color:var(--cc-blue)}
.cc-btn:disabled{opacity:.55;cursor:default}
.cc-icon{width:36px;padding:8px 0;font-size:17px;line-height:1}
.cc-primary{background:var(--cc-blue);border-color:var(--cc-blue);color:#fff}
.cc-danger{color:var(--cc-red)}
.cc-danger:hover{border-color:var(--cc-red);background:#fef2f2}
.cc-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--cc-muted);cursor:pointer;white-space:nowrap;margin:0}
.cc-root .cc-check input{width:16px;height:16px;margin:0;padding:0;flex:none;accent-color:var(--cc-blue)}
.cc-seg{display:flex;border:1px solid var(--cc-line);border-radius:10px;overflow:hidden;background:#fff}
.cc-seg button{border:none;background:transparent;padding:8px 14px;font-size:13px;font-weight:700;color:var(--cc-muted)}
.cc-seg .cc-seg-on{background:var(--cc-ink);color:#fff}

.cc-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--cc-muted);margin-bottom:12px}
.cc-legend span{display:flex;align-items:center;gap:6px}
.cc-dot{width:10px;height:10px;border-radius:3px;display:inline-block;background:var(--cc-c)}
.cc-tz{margin-left:auto}

/* Paleta por fase (la usan chips, bloques, puntos y badge) */
.cc-p1{--cc-c:var(--cc-p1);--cc-s:var(--cc-p1-soft)}
.cc-p2{--cc-c:var(--cc-p2);--cc-s:var(--cc-p2-soft)}
.cc-p3{--cc-c:var(--cc-p3);--cc-s:var(--cc-p3-soft)}

/* ── Mes ── */
.cc-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--cc-line);border-radius:16px;overflow:hidden;background:#fff}
.cc-wd{padding:9px 8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--cc-muted);background:var(--cc-bg);border-bottom:1px solid var(--cc-line)}
.cc-day{min-height:112px;padding:6px;border-right:1px solid var(--cc-line);border-bottom:1px solid var(--cc-line);display:flex;flex-direction:column;gap:3px;min-width:0}
.cc-day:nth-child(7n+7){border-right:none}
.cc-out{background:#fbfcfe}
.cc-out .cc-day-num{color:#cbd5e1}
.cc-day-num{font-size:12px;font-weight:700;color:var(--cc-muted);margin-bottom:2px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.cc-today .cc-day-num{background:var(--cc-blue);color:#fff}
.cc-chip{display:block;width:100%;text-align:left;border:none;border-left:3px solid var(--cc-c);background:var(--cc-s);color:var(--cc-ink);border-radius:6px;padding:3px 6px;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-chip:hover{filter:brightness(.96)}
.cc-chip b{color:var(--cc-c);font-weight:800}
.cc-more{border:none;background:none;color:var(--cc-blue);font-size:11.5px;font-weight:800;text-align:left;padding:2px 4px}
.cc-cancelled{--cc-c:#94a3b8;--cc-s:#f1f5f9;text-decoration:line-through;color:#94a3b8 !important}
.cc-completed{opacity:.72}

/* ── Semana ── */
.cc-week-scroll{overflow-x:auto;border:1px solid var(--cc-line);border-radius:16px;background:#fff}
.cc-week{min-width:760px}
.cc-week-head,.cc-week-body{display:grid;grid-template-columns:58px repeat(7,minmax(0,1fr))}
.cc-week-head{border-bottom:1px solid var(--cc-line);background:var(--cc-bg)}
.cc-week-day{padding:8px;text-align:center;font-size:11px;color:var(--cc-muted);text-transform:uppercase;font-weight:800;letter-spacing:.05em}
.cc-week-day strong{display:block;font-size:18px;color:var(--cc-ink);letter-spacing:0;margin-top:2px}
.cc-week-day.cc-today strong{color:var(--cc-blue)}
.cc-week-body{--cc-row:52px}
.cc-hours{display:grid;grid-template-rows:repeat(var(--cc-rows),var(--cc-row))}
.cc-hour{font-size:10.5px;color:var(--cc-muted);text-align:right;padding:2px 8px 0 0;transform:translateY(-7px)}
.cc-hour:first-child{transform:none}
.cc-col{position:relative;display:grid;grid-template-rows:repeat(var(--cc-rows),var(--cc-row));border-left:1px solid var(--cc-line)}
.cc-slot-line{border-top:1px solid #f1f5f9}
.cc-block{position:absolute;left:3px;right:3px;border:none;border-left:3px solid var(--cc-c);background:var(--cc-s);border-radius:7px;padding:4px 6px;text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:1px;font-size:11px;color:var(--cc-ink)}
.cc-block:hover{filter:brightness(.96);z-index:2}
.cc-block b{color:var(--cc-c);font-size:11px}
.cc-block span{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-block small{color:var(--cc-muted);font-size:10.5px}

.cc-empty{text-align:center;color:var(--cc-muted);font-size:13px;padding:18px 0}

/* ── Detalle ── */
.cc-overlay{position:fixed;inset:0;background:rgba(15,23,42,.38);display:flex;align-items:center;justify-content:center;z-index:1300;padding:16px}
.cc-modal{width:min(480px,96vw);background:#fff;border-radius:20px;padding:22px;box-shadow:0 24px 70px rgba(15,23,42,.28)}
.cc-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.cc-modal-head h3{font-size:19px;margin-top:8px}
.cc-modal-sub{font-size:12.5px;color:var(--cc-muted);margin-top:2px}
.cc-badge{display:inline-block;font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;background:var(--cc-s);color:var(--cc-c)}
.cc-close{border:none;background:#f1f5f9;width:34px;height:34px;border-radius:50%;font-size:14px;flex-shrink:0}
.cc-facts{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:0 0 14px;font-size:13px}
.cc-facts dt{color:var(--cc-muted);font-weight:600}
.cc-facts dd{margin:0;font-weight:600}
.cc-facts a{color:var(--cc-blue);font-weight:800;text-decoration:none}
.cc-muted{color:var(--cc-muted);font-weight:500}
.cc-hint{background:#fff7ed;color:#9a3412;font-size:12.5px;border-radius:10px;padding:9px 11px;margin-bottom:12px}
.cc-modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

@media(max-width:700px){
  .cc-title{font-size:18px;width:100%;margin:6px 0 0 !important;order:5}
  .cc-day{min-height:78px;padding:4px}
  .cc-chip{font-size:10.5px;padding:2px 4px}
  .cc-chip b{display:none}
  .cc-tz{margin-left:0;width:100%}
}
