/* Month agenda shares the dashboard's terrain and status tokens. */
.view-switch{display:flex;gap:3px;padding:3px;border:1px solid #434038;border-radius:8px;background:#111317;flex:none}
.view-switch button{display:flex;align-items:center;gap:6px;padding:7px 12px;border:0;background:none;color:var(--muted);font-size:12px}
.view-switch button[aria-pressed=true]{background:#3c3221;color:#f1d59e}
.view-switch .ui-icon{width:16px;height:16px}
.header-context{display:none}
.calendar-panel{position:absolute;top:83px;bottom:24px;left:18px;right:18px;z-index:5;background:#111317;border:1px solid #3b3a34;border-radius:12px;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.calendar-panel[hidden]{display:none}
#dashboard[data-view=calendar].has-selection .calendar-panel{right:calc(var(--right) + 36px)}
#dashboard[data-view=calendar] #globe,#dashboard[data-view=calendar] .world-vignette{visibility:hidden}
#dashboard[data-view=calendar] :is(#explorer,#explorerOpen,.map-hud,#mapSummary,#hoverCard,#routeMapStatus,#weatherLegend,#tileStatus,#globeFailure,.map-attribution){display:none!important}
.calendar-toolbar{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:17px 18px 13px;flex:none;flex-wrap:wrap}
.calendar-heading{display:flex;align-items:center;gap:10px}
.calendar-heading h2{font-size:22px;font-weight:550;letter-spacing:-.5px;text-transform:capitalize;margin:0}
.calendar-heading p{font-size:11px;color:var(--muted);margin:4px 0 0}
.calendar-navigation{display:flex;align-items:center;gap:5px}
.calendar-navigation button{min-width:34px;min-height:34px;padding:6px 10px;font-size:11px}
.calendar-navigation .icon-button{width:34px;padding:6px}
.calendar-filters{display:flex;align-items:center;gap:8px;padding:0 18px 13px;flex:none}
.calendar-search{position:relative;flex:1;max-width:310px}
.calendar-search>.ui-icon{position:absolute;left:10px;top:10px;width:16px;height:16px;color:var(--muted)}
.calendar-search input{width:100%;padding:8px 10px 8px 34px;height:36px;font-size:12px}
.calendar-filters select{height:36px;font-size:12px;max-width:150px}
.calendar-key{margin-left:auto;display:flex;gap:13px;color:var(--muted);font-size:10px}
.calendar-key span{white-space:nowrap;display:flex;align-items:center;gap:5px}
.calendar-key i{width:6px;height:6px;border-radius:2px;background:var(--indoor)}
.calendar-key .outdoor{background:var(--outdoor)}
.calendar-key .mixed{background:var(--mixed)}
.calendar-scroll{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;flex:1}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:sticky;top:0;z-index:1;background:#191b20;border-top:1px solid #35363b;border-bottom:1px solid #35363b}
.calendar-weekdays span{padding:10px 12px;color:#b6b6b1;font-size:11px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--calendar-weeks,5),minmax(88px,1fr));height:calc(100% - 36px)}
.calendar-cell{min-width:0;padding:4px;border-right:1px solid #303238;border-bottom:1px solid #303238;background:#14161a}
.calendar-cell:nth-child(7n){border-right:0}
.calendar-cell:nth-child(7n),.calendar-cell:nth-child(7n - 1){background:#191b20}
.calendar-cell.outside{background:#101216}
.calendar-cell.outside .calendar-day-number{color:#787b82}
.calendar-cell.selected{box-shadow:inset 0 0 0 1px #ad8a4c}
.calendar-day-number{display:inline-flex;align-items:center;justify-content:center;min-height:22px;min-width:24px;padding:2px;border:0;border-radius:6px;background:transparent;color:#d3d4d7;font-size:12px;margin-bottom:1px}
.calendar-cell.today .calendar-day-number{background:#d3ab60;color:#101216;font-weight:700}
.calendar-cell-events{display:flex;flex-direction:column;gap:3px}
.calendar-event{display:block;width:100%;min-width:0;border:0;border-left:3px solid var(--event-colour);border-radius:4px;background:#25282e;padding:3px 6px;text-align:left;line-height:1.3;color:#e5e5e1}
.calendar-event-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.calendar-event:not(.full){padding:2px 5px;line-height:1.15}
.calendar-event strong{display:block;font-size:11px;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.calendar-event-main>span{font-size:10px;color:#bdbebd;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.calendar-event:hover{background:#383c44}
.calendar-event.cancelled strong{text-decoration:line-through;color:#aaa}
.calendar-event.error{background:var(--error-wash);box-shadow:inset 0 0 0 1px var(--error-border)}
.calendar-event.qualified .calendar-event-main>span{color:#d6bd88}
.calendar-more{border:0;background:transparent;text-align:left;font-size:11px;color:#e0b15a;padding:2px 7px;min-height:20px}
.calendar-footer{flex:none;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #3b3a34;background:#14161a;color:#b7b8b6;font-size:10px;line-height:1.5}
#calendarProblems{color:var(--error-text);white-space:nowrap}
.calendar-mobile-day{display:none}
.calendar-day-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 40px);padding:0;overflow:hidden}
.calendar-day-dialog[open]{display:flex;flex-direction:column}
.calendar-day-dialog>.modal-heading{flex:none;margin:0;padding:18px 20px;border-bottom:1px solid #35363b}
.calendar-day-dialog>.modal-heading h2{margin:0}
.calendar-day-dialog h2{font-size:20px;text-transform:capitalize}
#calendarDayEvents{display:flex;flex-direction:column;gap:9px;margin:0;padding:14px 20px 20px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
#calendarDayEvents>.calendar-event{flex-shrink:0}
.calendar-event.full{padding:11px 13px;position:relative;display:flex;flex-direction:column;gap:7px}
.calendar-event.full strong{font-size:14px;white-space:normal;padding-right:50px}
.calendar-event.full .calendar-event-main>span{font-size:12px;white-space:normal}
.calendar-event-title{font-size:11px;color:#c9c9c3;overflow-wrap:anywhere}
.calendar-event.full small{font-size:11px;line-height:1.45;color:#d6bd88}
.calendar-event-open{position:absolute;right:9px;top:12px;font-size:10px;color:#e0b15a;display:flex;align-items:center;gap:3px}
.calendar-event-open .ui-icon{width:12px;height:12px}
.calendar-empty{color:var(--muted);font-size:13px;line-height:1.6}
.calendar-panel button:focus-visible,.calendar-day-dialog button:focus-visible,.view-switch button:focus-visible{outline:2px solid #e0b15a;outline-offset:2px}
@media(max-width:1199px) and (min-width:901px){
  .topbar{gap:12px}.view-switch button{padding:7px 9px}.calendar-panel{left:14px;right:14px}
  #dashboard[data-view=calendar].has-selection .calendar-panel{right:calc(var(--right) + 28px)}
  #dashboard[data-view=calendar].has-selection .calendar-key{display:none}
}
@media(max-width:900px){
  .view-switch{display:none}
  .mobile-nav{left:12px;right:12px;transform:none;justify-content:space-around;gap:2px}
  .mobile-nav button{font-size:11px;padding:7px 6px;gap:4px}
  .mobile-nav [data-about-open]{flex:0 0 22px;padding:4px}
  .calendar-panel,#dashboard[data-view=calendar].has-selection .calendar-panel{top:112px;bottom:60px;left:12px;right:12px}
  #dashboard[data-pane=detail] .calendar-panel{display:none}
  #dashboard[data-pane=calendar] .inspector{display:none}
  .calendar-toolbar{padding:12px 12px 10px;gap:10px}
  .calendar-heading h2{font-size:19px}.calendar-heading p{font-size:10px}
  .calendar-navigation{gap:3px}.calendar-navigation button{padding:6px 8px}
  .calendar-filters{padding:0 12px 10px;gap:7px}.calendar-search{max-width:none}
  .calendar-key{display:none}
  .calendar-weekdays span{padding:9px 0;text-align:center;font-size:10px}
  .calendar-grid{grid-template-rows:repeat(var(--calendar-weeks,5),minmax(74px,1fr))}
  .calendar-cell{padding:4px 2px 5px;text-align:center}
  .calendar-day-number{margin:0;min-height:29px;min-width:29px}
  .calendar-cell-events{display:none}
  .calendar-mobile-day{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:100%;min-height:39px;padding:3px 0;background:none;border:0;color:#d4d4cf;font-size:9px}
  .calendar-dots{display:flex;align-items:center;gap:3px}
  .calendar-dots i{height:4px;width:4px;border-radius:50%}
  .calendar-no-events{color:#555a62}
  .calendar-footer{font-size:9px;padding:8px 10px;flex-wrap:wrap;gap:3px}
  .calendar-day-dialog>.modal-heading{padding:16px}
  #calendarDayEvents{padding:12px 16px 16px}
}
@media(max-width:380px){.calendar-heading h2{font-size:17px}.calendar-navigation button{padding:5px 7px;min-width:30px}.calendar-navigation .icon-button{width:30px}.mobile-nav button{font-size:10px;padding:6px 4px}.mobile-nav .ui-icon{width:14px;height:14px}.calendar-filters select{max-width:106px;font-size:11px}}
