/* ===========================================================
   calendar.css — Team Calendar view (js/calendar.js).
   Namespace: .cal-view / .cal-grid / .cal-chip / .cal-mrow …
   (distinct from the Resources availability table's .cal/.cal-wrap).
   =========================================================== */
.cal-view{display:flex;flex-direction:column;gap:12px}

/* ---------- header ---------- */
.cal-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cal-nav{display:flex;align-items:center;gap:6px}
.cal-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}
.cal-mlabel{font-family:var(--fh);font-size:1.35rem;font-weight:600;margin:0}
.cal-sum{font-size:12px;white-space:nowrap}
.cal-filters .chip{white-space:nowrap}

/* ---------- month grid ---------- */
.cal-gridcard{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--bg);border-bottom:1px solid var(--line)}
.cal-dow div{padding:6px 8px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line)}
.cal-day{position:relative;background:var(--card);min-height:96px;padding:26px 4px 4px;display:flex;flex-direction:column;gap:2px;overflow:hidden;border-top:3px solid transparent}
.cal-day.we{background:#faf6ef}
.cal-day.out{background:#f6f2ea}
.cal-day.out>*{opacity:.55}
.cal-day.today{box-shadow:inset 0 0 0 2px var(--brand)}
.cal-day.freeze{border-top-color:#e8c9a8}   /* month-end freeze window */
.cal-dn{position:absolute;top:4px;right:5px;width:20px;height:20px;line-height:20px;text-align:center;font-size:11.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:50%}
.cal-day.today .cal-dn{background:var(--brand);color:#fff}
.cal-holband{font-size:10.5px;color:#8a4009;background:#fdf1e3;border-left:3px solid var(--brand);padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- event chips ---------- */
.cal-chip{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--chip-c,#b3a48d);background:var(--chip-bg,#f6f2ea);color:var(--ink);font-size:11px;line-height:1.5;padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cal-chip:hover{filter:brightness(.95)}
.cal-chip.done{opacity:.55;text-decoration:line-through}
.cal-more{border:0;background:none;color:var(--brand);font-size:10.5px;font-weight:600;text-align:left;padding:1px 5px;cursor:pointer;border-radius:4px}
.cal-more:hover{background:#fdf1e3}

/* type colours (shared by grid chips + day-modal rows) */
.cal-chip.t-deadline,.cal-mrow.t-deadline{--chip-c:#5b5348;--chip-bg:#f3efe7}
.cal-chip.t-deadline.overdue{--chip-c:var(--red);--chip-bg:#fdecea;color:#8f2a22;font-weight:700}
.cal-chip.t-start,.cal-mrow.t-start{--chip-c:var(--prog);--chip-bg:#eaf1fd}
.cal-chip.t-milestone,.cal-mrow.t-milestone{--chip-c:#9a6cc0;--chip-bg:#f4edfa}
.cal-chip.t-action,.cal-mrow.t-action{--chip-c:#b26a00;--chip-bg:#fdf3e3}
.cal-chip.t-risk,.cal-mrow.t-risk{--chip-c:var(--block);--chip-bg:#fdecea}
.cal-chip.t-absence,.cal-mrow.t-absence{--chip-c:#0e7490;--chip-bg:#e7f6f9}
.cal-chip.t-holiday,.cal-mrow.t-holiday{--chip-c:var(--brand);--chip-bg:#fdf1e3}
.cal-chip.t-reminder,.cal-mrow.t-reminder{--chip-c:#6b21a8;--chip-bg:#f3ebfb}

/* ---------- day modal ---------- */
.cal-daymodal h2{margin-bottom:2px}
.cal-mrows{display:flex;flex-direction:column;gap:4px;margin:4px 0 6px}
.cal-mrow{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid var(--line);border-left:3px solid var(--chip-c,#b3a48d);border-radius:8px;background:#fff;padding:7px 10px;font-size:12.5px;color:var(--ink)}
button.cal-mrow{cursor:pointer}
button.cal-mrow:hover{border-color:var(--line-2);background:#fbf7f0}
.cal-mrow .cal-mico{flex:none}
.cal-mrow .cal-mid{flex:none;font-size:11px}
.cal-mrow .cal-mlbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-mrow .cal-msub{flex:none;max-width:40%;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-mrow.done .cal-mlbl{opacity:.55;text-decoration:line-through}
.cal-mrow.overdue .cal-mlbl{color:var(--red);font-weight:600}
.cal-mrow .icon-btn,.cal-mrow .btn{flex:none}

/* ---------- legend footer ---------- */
.cal-key{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11.5px;padding:0 2px 6px}
.cal-key-i{display:inline-flex;align-items:center;gap:5px}
.cal-key-i i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.cal-key-i b{display:inline-block;min-width:18px;padding:0 4px;text-align:center;background:#fdf3d4;border-radius:4px;color:#9a5f08;font-size:10.5px}
.cal-key-sep{width:1px;height:14px;background:var(--line-2)}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .cal-day{min-height:72px;padding-top:22px}
  .cal-chip{font-size:10px}
  .cal-dow div{padding:5px 4px;font-size:10px}
  .cal-sum{white-space:normal}
}
