.calendar-layout{max-width:1440px;margin:auto;padding:32px 24px}.calendar-note{color:var(--muted)}.calendar-layout button,.calendar-layout select,.calendar-layout input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:10px;min-height:42px}.calendar-layout button{cursor:pointer}.calendar-layout button:hover{border-color:var(--accent)}.calendar-layout button:disabled{opacity:.4;cursor:default}.calendar-filters{grid-template-columns:repeat(6,minmax(0,1fr))}.calendar-layout label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px}.calendar-layout select,.calendar-layout input{width:100%;min-width:0}.calendar-search{grid-column:span 3}.calendar-filters button{align-self:end}.calendar-note{font-size:12px;line-height:1.7}.calendar-summary{display:flex;justify-content:space-between;align-items:center;margin:26px 0 18px;gap:15px}.calendar-summary label{flex-direction:row;align-items:center}.calendar-summary select{width:auto}.month-heading{margin:26px 0 14px;font-size:18px}.meeting{display:grid;grid-template-columns:100px 1fr auto;gap:20px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:20px;margin-bottom:10px}.meeting time{font:13px var(--mono);color:var(--accent)}.meeting h3{font-size:15px;margin-bottom:6px}.meeting a{color:var(--ink);text-decoration:none}.meeting a:hover{text-decoration:underline;color:var(--accent)}.meeting p{margin:4px 0;color:var(--muted)}.meeting details{margin-top:10px;color:var(--ink-2);font-size:12px}.meeting summary{cursor:pointer}.badge{display:inline-block;border:1px solid var(--line-strong);padding:4px 8px;border-radius:4px;height:fit-content;white-space:nowrap;color:var(--accent);font:12px var(--mono)}.calendar-pagination{text-align:center;margin:24px}#monthControls{display:flex;gap:20px;align-items:center;justify-content:center;margin-bottom:20px}#monthControls[hidden]{display:none}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.day{min-height:140px;background:var(--surface);padding:8px;overflow:hidden}.day.blank{background:var(--bg)}.day strong{display:block;color:var(--muted);margin-bottom:6px}.day .day-meeting{display:block;color:var(--ink);font-size:11px;padding:5px;background:var(--raised);margin:4px 0;border-radius:3px;text-decoration:none;overflow-wrap:anywhere}.weekday{padding:8px;background:var(--bg);color:var(--muted);text-align:center}.empty{padding:50px 20px;text-align:center;border:1px solid var(--line);border-radius:8px;color:var(--muted)}@media(max-width:700px){.calendar-layout{padding:20px 16px}.calendar-search{grid-column:span 2}.meeting{grid-template-columns:72px 1fr;gap:12px;padding:14px}.meeting .badge{grid-column:2;justify-self:start}.calendar-summary{align-items:start}.month-grid{grid-template-columns:1fr;background:transparent;border:0;gap:8px}.weekday,.day.blank{display:none}.day{min-height:70px;border:1px solid var(--line);border-radius:6px}.day .day-meeting{font-size:13px}.day:has(.no-meetings){display:none}}

.meeting-date{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:start;min-height:68px;padding:10px 4px;background:var(--accent-soft);border-radius:6px;color:var(--accent);text-align:center}.date-days{font:500 21px/1.2 var(--mono);white-space:nowrap;letter-spacing:-1px}.date-month{font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:1px;margin-top:4px}.date-cross-month time{font-size:12px;white-space:nowrap}.date-to{color:var(--muted);font-size:10px;line-height:1.5}

#programmeDialog { border-radius:8px; }
.programme-header h2 { overflow-wrap:anywhere; }
.programme-header button { flex-shrink:0; }
.meeting-info-section { padding:20px 0; border-top:1px solid var(--line); }
.meeting-info-section h3 { font-size:14px; margin-bottom:12px; }
.meeting-links { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.meeting-links a,.meeting-contact a { color:var(--accent); overflow-wrap:anywhere; }
.meeting-links span { display:block; color:var(--muted); font-size:12px; }
.meeting-contact { padding:12px 0; overflow-wrap:anywhere; }
.meeting-contact + .meeting-contact { border-top:1px solid var(--line-soft); }
.meeting-contact p { margin:5px 0; }
.meeting-contact strong { font-size:14px; }

.calendar-layout .meeting-title{border:0;background:none;padding:0;min-height:0;text-align:left;font:600 15px/1.5 var(--sans);color:var(--ink)}.calendar-layout .meeting-title:hover{color:var(--accent)}.calendar-layout .programme-trigger{border:0;background:none;padding:8px 0;color:var(--accent);font-size:12px}.calendar-layout .day-meeting{width:100%;text-align:left;border:1px solid transparent;min-height:36px;cursor:pointer;font-family:var(--sans)}#programmeDialog{width:min(680px,calc(100% - 28px));max-height:85vh;padding:24px;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;overflow-y:auto}#programmeDialog::backdrop{background:rgba(0,0,0,.7)}.programme-header{display:flex;align-items:start;justify-content:space-between;gap:20px}.programme-header h2{font-size:22px}.programme-header button{padding:10px 14px;min-height:44px;color:var(--ink);background:var(--raised);border:1px solid var(--line-strong);border-radius:6px;cursor:pointer}#programmeMeta{color:var(--muted)}.programme-group{margin:24px 0}.programme-group h3{font-size:14px;color:var(--accent);margin-bottom:12px}.programme-group ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.programme-group li{padding:7px 10px;background:var(--raised);border:1px solid var(--line);border-radius:5px;font-size:13px}#programmeSource{color:var(--accent)}body:has(#programmeDialog[open]){overflow:hidden}
@media(max-width:1100px){.calendar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-search{grid-column:span 2}}

/* Compact meeting rows: date, meeting, actions and ranking category on one line. */
.calendar-key{margin:4px 0 0;color:var(--muted);font-size:12px}
.meeting{grid-template-columns:96px minmax(0,1fr) auto 44px;align-items:center;gap:16px;padding:12px 16px;margin-bottom:6px}
.meeting-main h3{margin:0}
.meeting-main p{margin:2px 0 0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-layout .meeting-title{font-size:14px;line-height:1.4}
.meeting-date,.meeting-date.date-cross-month{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:6px;min-height:0;padding:0;background:none;text-align:left;align-self:center}
.meeting-date .date-days{font-size:15px;letter-spacing:0}
.meeting-date .date-month{margin:0;font-size:11px}
.date-cross-month{flex-wrap:wrap;column-gap:4px;row-gap:0}
.date-cross-month time{font-size:12px}
.meeting-actions{display:flex;align-items:center;gap:0}
.calendar-layout .meeting-actions .programme-trigger{min-height:32px;padding:0 10px;color:var(--accent);font-size:12px}
.meeting-actions .programme-trigger+.programme-trigger{border-left:1px solid var(--line-strong)!important;border-radius:0}
.meeting .badge{justify-self:end;padding:2px 6px;font-size:11px}
@media(max-width:700px){
  .meeting{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"date actions badge" "main main main";gap:2px 8px;padding:10px 14px}
  .meeting-date{grid-area:date}.meeting-main{grid-area:main}.meeting .badge{grid-area:badge;grid-column:auto}.meeting-actions{grid-area:actions;margin-right:-4px}
  .meeting-main p{white-space:normal}
}
