/* Calendar reuses the existing cards, forms and focus styles; layout rules stay scoped. */
.calendar-panel{min-width:0}.calendar-filters{align-items:end;gap:var(--space-3)}
.calendar-filters .field{min-width:9rem;flex:1 1 9rem}.calendar-heading{margin-top:var(--space-6)}
.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.calendar-weekday{padding:.6rem;text-align:center;background:var(--soft);font-size:.8rem;font-weight:600}
.calendar-day{min-width:0;min-height:7rem;padding:.45rem;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.calendar-day h3{font-size:.9rem;margin:0 0 .4rem}.calendar-day.is-outside{background:var(--canvas)}
.calendar-entry{display:block;padding:.45rem;margin-bottom:.35rem;border-radius:var(--radius-sm);background:var(--soft);color:var(--ink);text-decoration:none;overflow-wrap:anywhere;border-left:3px solid var(--brand)}
.calendar-entry small{display:block;font-size:.7rem}.calendar-entry span{font-size:.8rem;font-weight:600}.calendar-entry.is-cancelled span{text-decoration:line-through}
.calendar-agenda-item{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);min-width:0}.calendar-agenda-item:last-child{border-bottom:0}
.calendar-agenda-item h3{margin:.25rem 0;font-size:1.1rem}.calendar-agenda-item p{margin:.35rem 0}.calendar-labels{display:flex;flex-wrap:wrap;gap:.4rem;align-content:start;align-items:start;justify-content:end}
.calendar-agenda--mobile,.calendar-mobile-hint{display:none}.calendar-editor{display:grid;gap:var(--space-6);max-width:60rem}.calendar-editor .form-card{width:100%;max-width:none;margin:0}
.calendar-editor .form-actions{margin-top:0}.calendar-editor .recipient-picker{max-width:100%}.calendar-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:var(--space-6)}
.calendar-upcoming-list{list-style:none;padding:0;margin:0}.calendar-upcoming-list li{padding:.75rem 0;border-bottom:1px solid var(--line)}.calendar-upcoming-list li:last-child{border-bottom:0}.calendar-upcoming-list p{margin:.3rem 0}
.calendar-range-effect{padding:.75rem 1rem;border-left:3px solid var(--brand);background:var(--soft);margin:.75rem 0;border-radius:var(--radius-sm)}.calendar-range-effect p{margin:.35rem 0}
@media(max-width:47.99rem){.calendar-month{display:none}.calendar-agenda--mobile,.calendar-mobile-hint{display:block}.calendar-agenda-item{flex-direction:column;gap:.4rem}.calendar-labels{justify-content:start}.calendar-filters .field{min-width:0;flex-basis:100%}.calendar-heading{align-items:start;flex-direction:column}.calendar-editor{gap:var(--space-4)}}
.system-subnav { margin-bottom:var(--space-6); }
.nav-role { display:block; font-size:.7rem; line-height:1.3; color:var(--muted); }
.operation-subnav { margin-block:0 var(--space-6); }
.calendar-disclosure > summary { display:none; }
.calendar-mobile { display:none; }
@media(max-width:47.99rem) {
  .calendar-disclosure > summary { display:list-item; min-height:44px; padding-block:var(--space-2); color:var(--brand); font-weight:600; cursor:pointer; }
  .calendar-area { margin-block:var(--space-3); }
  .calendar-area .actions { margin-block:var(--space-2) var(--space-4); gap:var(--space-3); }
  .calendar-disclosure .calendar-filters { margin-block:var(--space-3); }
  .calendar-heading--month { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:var(--space-2); margin-block:var(--space-4); }
  .calendar-heading--month h2 { grid-column:2; grid-row:1; margin:0; text-align:center; font-size:1.1rem; }
  .calendar-heading--month .actions { display:contents; }
  .calendar-heading--month .calendar-previous { grid-column:1; grid-row:1; }
  .calendar-heading--month .calendar-next { grid-column:3; grid-row:1; }
  .calendar-heading--month .calendar-current { grid-column:1 / -1; grid-row:2; justify-self:center; min-height:44px; padding:var(--space-2) var(--space-3); font-size:.85rem; }
  .calendar-heading--month .calendar-previous,.calendar-heading--month .calendar-next { min-width:0; min-height:44px; padding:var(--space-2); }
  .calendar-mobile { display:block; }
  .calendar-enhanced .calendar-agenda--mobile,.calendar-enhanced .calendar-mobile-hint { display:none; }
  .calendar-mobile-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:var(--space-1); }
  .calendar-mobile-weekday { text-align:center; font-size:.75rem; font-weight:600; color:var(--muted); padding-block:var(--space-2); }
  .calendar-mobile-day { min-width:0; min-height:48px; border:1px solid transparent; border-radius:var(--radius-sm); padding:var(--space-1) 0; display:flex; flex-direction:column; align-items:center; justify-content:center; background:transparent; color:var(--ink); font-size:.9rem; cursor:pointer; }
  .calendar-mobile-day.is-outside { color:var(--muted); background:var(--canvas); }
  .calendar-mobile-day[aria-current="date"] { border-color:var(--brand); border-width:2px; font-weight:700; }
  .calendar-mobile-day[aria-pressed="true"] { background:var(--brand); color:var(--on-brand); font-weight:700; }
  .calendar-day-count { min-height:.8rem; font-size:.65rem; line-height:1; font-variant-numeric:tabular-nums; }
  .calendar-mobile-day:focus-visible { outline-offset:0; }
  .calendar-day-agenda { margin-top:var(--space-6); border-top:1px solid var(--line); padding-top:var(--space-4); }
  .calendar-day-agenda > .section-heading { flex-wrap:wrap; gap:var(--space-2); }
  .calendar-day-agenda h3 { margin:0; font-size:1rem; }
  .calendar-mobile-event { padding:var(--space-4) 0; }
  .calendar-mobile-event > div { width:100%; min-width:0; }
  .calendar-mobile-event h3 a { display:block; padding-block:var(--space-2); }
  .calendar-mobile-event .eyebrow { margin-bottom:0; }
  .calendar-mobile-event .form-actions { margin-top:var(--space-3); }
}
