/* ══════════════════════════════════════════════════════════
   calendar.css
══════════════════════════════════════════════════════════ */
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.cal-toolbar-left{display:flex;align-items:center;gap:10px}
.year-nav{display:flex;align-items:center;gap:6px}
.year-nav button{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border2);background:var(--surface);color:var(--text);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.year-nav button:hover{background:var(--surface2)}
.year-label{font-size:18px;font-weight:600;min-width:52px;text-align:center}
.legend-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.leg{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text2)}
.leg-dot{width:12px;height:8px;border-radius:2px;flex-shrink:0}

.months-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){.months-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.months-grid{grid-template-columns:1fr}}

.month-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.month-head{padding:8px 12px;font-size:12px;font-weight:600;border-bottom:1px solid var(--border);background:var(--surface2);display:flex;justify-content:space-between;align-items:center}
.month-head-stats{font-size:10px;font-weight:400;color:var(--text3)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;padding:4px;background:var(--border)}
.day-hd{background:var(--surface);text-align:center;font-size:9px;font-weight:600;color:var(--text3);padding:4px 2px;letter-spacing:.04em}
.day-cell{background:var(--surface);cursor:pointer;padding:3px 2px;min-height:48px;position:relative;transition:background .1s;-webkit-tap-highlight-color:transparent}
.day-cell:active{background:var(--accent-light)}
.day-cell.empty{background:var(--bg);cursor:default}
.day-cell.selected{outline:2px solid var(--accent);outline-offset:-1px;z-index:1}
.day-num{font-size:9px;font-weight:600;text-align:center;padding:1px 0 2px;line-height:1}
.day-num.wd{color:var(--text)}
.day-num.we{color:var(--text3)}
.day-num.hol-num{color:var(--danger)}
.day-shift-bar{height:4px;border-radius:1px;margin:1px 2px;transition:background .2s}
.ds-t1{background:var(--t1)}
.ds-t2{background:var(--t2)}
.ds-off{background:var(--border);opacity:.5}
.ds-hol{background:var(--danger);opacity:.4}
.day-hrs{font-size:8px;text-align:center;color:var(--text3);margin-top:1px;font-variant-numeric:tabular-nums;font-family:'DM Mono',monospace}
.day-cell.state-op{background:var(--surface)}
.day-cell.state-partial{background:color-mix(in srgb,var(--accent-light) 40%,var(--surface))}
.day-cell.state-off{background:var(--surface2)}
.day-cell.state-hol{background:var(--danger-light)}
.day-cell.state-we-op{background:color-mix(in srgb,var(--accent2-light) 50%,var(--surface))}
