/* calendar.css — DIRECT ACTION Calendar (forked 2026-10-28; owner, 2026-10-23). The month grid, the legend and the event window. Each event carries
   its series' (or your clan's) data colour from tourney.css as a bar beside its text, never as the text colour. Tokens only. */

.cal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--rv-s-5);align-items:start}
.cal-legend{position:sticky;top:calc(var(--cb-nav-h) + var(--rv-s-4));display:flex;flex-direction:column;gap:var(--rv-s-4);padding:var(--rv-s-4);background:var(--rv-surface-1);border:1px solid var(--rv-border-1)}
.cal-legend__head{display:flex;align-items:center;justify-content:space-between;gap:var(--rv-s-2)}
.cal-legend__h{margin:0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h2);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-strong)}
.cal-legend__all{display:flex;gap:var(--rv-s-1)}
.cal-lg{display:flex;flex-direction:column;gap:var(--rv-s-1)}
.cal-lg + .cal-lg{padding-top:var(--rv-s-4);border-top:1px solid var(--rv-border-1)}
.cal-lg__t{margin:0 0 var(--rv-s-1);font-size:var(--rv-fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim)}
.cal-lg__note{margin:0;font-size:var(--rv-fs-small);color:var(--rv-text-dim);line-height:1.5}
/* one row per thing to follow: its colour, its name, how many this month, a switch */
.cal-sw{display:grid;grid-template-columns:var(--rv-s-3) minmax(0,1fr) auto auto;align-items:center;gap:var(--rv-s-2);padding:var(--rv-s-2);border-radius:var(--rv-r-md);cursor:pointer;font-size:var(--rv-fs-small);color:var(--rv-text)}
.cal-sw:hover{background:var(--rv-surface-2)}
.cal-sw__c{width:var(--rv-s-3);height:var(--rv-s-3);background:var(--c);border:1px solid var(--rv-border-2)}
.cal-sw__n{font-size:var(--rv-fs-micro);color:var(--rv-text-dim);font-variant-numeric:tabular-nums}
.cal-sw input{position:absolute;opacity:0;width:1px;height:1px}
.cal-sw__s{position:relative;width:calc(var(--rv-s-6) + 2px);height:var(--rv-s-4);border-radius:var(--rv-r-full);background:var(--rv-surface-3);border:1px solid var(--rv-border-2);transition:background-color 120ms}
.cal-sw__s::after{content:"";position:absolute;top:1px;left:1px;width:calc(var(--rv-s-4) - 4px);height:calc(var(--rv-s-4) - 4px);border-radius:var(--rv-r-full);background:var(--rv-text-dim);transition:transform 120ms,background-color 120ms}
.cal-sw input:checked + .cal-sw__s{background:var(--rv-accent);border-color:var(--rv-accent)}
.cal-sw input:checked + .cal-sw__s::after{transform:translateX(var(--rv-s-4));background:#fff}
.cal-sw input:focus-visible + .cal-sw__s{outline:2px solid var(--rv-focus);outline-offset:2px}
.cal-sw.is-off{color:var(--rv-text-dim)}
.cal-sw.is-off .cal-sw__c{opacity:.35}
.cal-sw[aria-disabled="true"]{cursor:default;opacity:.55}
.cal-sw[aria-disabled="true"]:hover{background:transparent}

.cal-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--rv-s-3);margin-bottom:var(--rv-s-4)}
.cal-nav{display:flex;align-items:center;gap:var(--rv-s-2)}
.cal-title{margin:0 0 0 var(--rv-s-3);font-family:var(--cb-font-display);font-size:var(--rv-fs-h1);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-strong)}
.cal-foot{margin-top:var(--rv-s-4)}

/* the month: seven columns, a head row, six weeks */
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--rv-border-1);gap:1px;border:1px solid var(--rv-border-1)}
.cal-wd{padding:var(--rv-s-2) var(--rv-s-3);background:var(--rv-surface-2);font-size:var(--rv-fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim)}
.cal-d{min-height:118px;display:flex;flex-direction:column;gap:var(--rv-s-1);padding:var(--rv-s-1) var(--rv-s-1) var(--rv-s-2);background:var(--rv-surface-1);min-width:0}
.cal-d--out{background:var(--rv-bg)}
.cal-d--out .cal-d__n{color:var(--rv-text-faint)}
.cal-d__n{align-self:flex-start;min-width:var(--rv-s-5);height:var(--rv-s-5);display:grid;place-items:center;padding:0 var(--rv-s-1);font-family:var(--cb-font-display);font-size:var(--rv-fs-h3);font-weight:700;color:var(--rv-text)}
.cal-d--today .cal-d__n{background:var(--rv-accent);color:#fff}
.cal-ev{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:var(--rv-s-1);width:100%;min-width:0;padding:2px var(--rv-s-1) 2px var(--rv-s-2);font-size:var(--rv-fs-micro);line-height:1.35;color:var(--rv-text-strong);background:var(--rv-surface-3);border-left:3px solid var(--c);cursor:pointer}
.cal-ev:hover{background:var(--rv-elev)}
.cal-ev:focus-visible{outline:2px solid var(--rv-focus);outline-offset:1px}
.cal-ev__t{flex:0 0 auto;font-family:var(--cb-font-mono);color:var(--rv-text-dim)}
.cal-ev__x{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev .cb-icon{flex:0 0 auto;width:var(--rv-s-3);height:var(--rv-s-3);color:var(--rv-text-dim)}
/* a sign-up date is quieter than the event itself: no fill, a thin bar */
.cal-ev--signup{background:transparent;border-left-width:2px;color:var(--rv-text)}
.cal-ev--signup:hover{background:var(--rv-surface-2)}
.cal-more{all:unset;cursor:pointer;padding:0 var(--rv-s-2);font-size:var(--rv-fs-micro);font-weight:700;color:var(--rv-text-dim)}
.cal-more:hover{color:var(--rv-text-strong)}
.cal-more:focus-visible{outline:2px solid var(--rv-focus)}

/* the list view */
.cal-list{display:flex;flex-direction:column;gap:var(--rv-s-5)}
.cal-day__h{margin:0 0 var(--rv-s-2);font-family:var(--cb-font-display);font-size:var(--rv-fs-h3);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-strong)}
.cal-day__h span{color:var(--rv-text-dim);font-weight:600}
.cal-row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:var(--rv-s-3);width:100%;padding:var(--rv-s-3) var(--rv-s-4);background:var(--rv-surface-1);border:1px solid var(--rv-border-1);border-left:3px solid var(--c);cursor:pointer}
.cal-row + .cal-row{margin-top:var(--rv-s-1)}
.cal-row:hover{border-color:var(--rv-border-2);border-left-color:var(--c)}
.cal-row:focus-visible{outline:2px solid var(--rv-focus);outline-offset:2px}
.cal-row__t{font-family:var(--cb-font-mono);font-size:var(--rv-fs-small);color:var(--rv-text-dim)}
.cal-row__x{display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-row__x b{font-size:var(--rv-fs-body);color:var(--rv-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-row__x span{font-size:var(--rv-fs-small);color:var(--rv-text-dim)}

/* the event window, centred */
.cal-dlg{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:var(--rv-s-5);background:var(--rv-scrim)}
.cal-dlg[hidden]{display:none}
.cal-dlg__box{width:min(560px,100%);max-height:100%;overflow-y:auto;background:var(--rv-surface-1);border:1px solid var(--rv-border-2);border-top:3px solid var(--c,var(--rv-accent))}
.cal-dlg__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--rv-s-3);padding:var(--rv-s-4) var(--rv-s-5);border-bottom:1px solid var(--rv-border-1)}
.cal-dlg__kind{font-size:var(--rv-fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim)}
.cal-dlg__t{margin:var(--rv-s-1) 0 0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h1);font-weight:800;line-height:1.1;color:var(--rv-text-strong)}
.cal-dlg__body{display:flex;flex-direction:column;gap:var(--rv-s-4);padding:var(--rv-s-5)}
.cal-dlg__when{display:flex;align-items:center;gap:var(--rv-s-2);font-size:var(--rv-fs-body);color:var(--rv-text-strong)}
.cal-dlg__when .cb-icon{color:var(--rv-text-dim)}
.cal-dlg__p{margin:0;font-size:var(--rv-fs-small);color:var(--rv-text);line-height:1.55}
.cal-dlg__foot{display:flex;flex-wrap:wrap;gap:var(--rv-s-2);padding:var(--rv-s-4) var(--rv-s-5);border-top:1px solid var(--rv-border-1)}

@media (max-width:959px){
  .cal-layout{grid-template-columns:1fr}
  .cal-legend{position:static}
  .cal-legend #calLegend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rv-s-4)}
  .cal-lg + .cal-lg{padding-top:0;border-top:0}
  .cal-d{min-height:92px}
  .cal-ev__t{display:none}
}
@media (max-width:559px){
  .cal-legend #calLegend{grid-template-columns:1fr}
  .cal-wd{padding:var(--rv-s-1);text-align:center}
  .cal-d{min-height:64px;padding:2px}
  .cal-ev{padding:2px;border-left-width:3px}
  .cal-ev__x,.cal-ev .cb-icon{display:none}
  .cal-ev{height:var(--rv-s-2);padding:0}
  .cal-title{font-size:var(--rv-fs-h2);margin-left:var(--rv-s-1)}
  .cal-row{grid-template-columns:70px minmax(0,1fr)}
  .cal-row > :last-child{display:none}
}
