/* Calendar. Tokens only. Mobile first: month is a day list on phones, a 7-column grid from 900px. */
.cal-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.cal-nav{display:flex;gap:6px}
.cal-title{font-size:18px;margin:4px 0 12px}
.cal-day{scroll-margin-top:72px}
.cal-day.today{border-left:4px solid var(--accent)}
.cal-day.focus{box-shadow:0 0 0 2px var(--sand),var(--shadow)}
.cal-dh{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:baseline}
.cal-dh b{font-weight:500;font-size:13px}
.cal-dh span{font-weight:500}
.cal-f{margin-top:10px}
.cal-f summary{cursor:pointer;color:var(--ink2);font-size:13px;font-weight:500}
.cal-f dl{display:grid;gap:4px 14px;margin:10px 0 0;font-size:14px}
.cal-f dt{color:var(--ink2);font-size:12px;font-weight:600;margin-top:6px}
.cal-f dd{margin:0;line-height:1.45;overflow-wrap:anywhere}
@media (min-width:900px){.cal-f dl{grid-template-columns:200px 1fr}.cal-f dt{margin-top:0}}
.cal-cards,.cal-tasks{margin-top:10px}

.cal-month{padding:8px}
.cal-head{display:none}
.cal-grid{display:grid;gap:3px}
.cal-cell{display:grid;grid-template-columns:64px 1fr auto;gap:8px;align-items:baseline;padding:8px 10px;border-radius:var(--r3);text-decoration:none;color:var(--ink);background:var(--bg)}
.cal-cell.out{display:none}
.cal-cell.has{background:var(--paper)}
.cal-cell.today{outline:2px solid var(--accent)}
.cal-cell b{font-weight:500;font-size:13px;color:var(--ink2)}
.cal-cell.has b,.cal-cell.today b{color:var(--ink)}
.cal-hl{font-size:13px;line-height:1.35;min-height:1px}
.cal-cell.promo-s .cal-hl{font-weight:500}
.cal-n{font-size:12px;color:var(--ink2)}
/* Continuous promo bar: shown once at the start of a run, then a plain line carries it
   through the following days until the promo changes (brief: calendar.js month()). */
.cal-cell.promo{position:relative}
.cal-cell.promo::after{content:'';position:absolute;left:0;right:0;bottom:5px;height:3px;background:var(--sand)}
.cal-cell.promo-s::after{left:10px;border-radius:2px 0 0 2px}
.cal-cell.promo-e::after{right:10px;border-radius:0 2px 2px 0}
@media (min-width:900px){
  .cal-head{display:grid;grid-template-columns:repeat(7,1fr);font-size:12px;font-weight:600;color:var(--ink2);padding:0 6px 6px}
  .cal-grid{grid-template-columns:repeat(7,1fr)}
  .cal-cell{display:flex;flex-direction:column;gap:4px;min-height:92px;align-items:stretch;border:1px solid var(--line)}
  .cal-cell.out{display:flex;background:var(--white);color:var(--ink2);border-color:transparent}
  .cal-cell.today{border:1px solid var(--line);outline:2px solid var(--accent);outline-offset:-1px}
  .cal-dow{display:none}
  .cal-hl{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .cal-cell.promo::after{left:0;right:0;bottom:8px}
  .cal-cell.promo-s::after{left:10px}
  .cal-cell.promo-e::after{right:10px}
}
.sub .num{white-space:nowrap}
