.network-directory {
  min-height: 65vh;
  padding: 1.75rem 0 2rem;
  color: #eaf3ff;
  background: radial-gradient(ellipse at top right, #122b48, transparent 60%), #060d20;
  font-family: 'Segoe UI', sans-serif;
}
body:has(.network-directory) { background: #060d20; }
.network-shell { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; }
.network-intro { margin-bottom: 1.5rem; }
.network-intro h1 { margin: 0.5rem 0; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 750; line-height: 1.15; }
.network-intro p { margin: 0; max-width: 700px; color: #afc7e2; line-height: 1.6; }
.network-back { display: inline-flex; align-items: center; min-height: 44px; color: #80dfe4; text-decoration: underline; }
.net-schedule { border: 1px solid #285367; border-radius: 12px; padding: 1.15rem; background: linear-gradient(130deg, rgba(12, 33, 53, 0.92), rgba(6, 17, 34, 0.96)); color: #eaf3ff; }
.net-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
.net-eyebrow { margin: 0 0 0.25rem; color: #80dfe4; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.15em; }
.net-heading h2 { margin: 0; font-size: 1.3rem; font-weight: 700; }
.net-schedule .net-link { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; color: #80dfe4; font-size: 0.85rem; text-decoration: underline; text-underline-offset: 3px; }
.net-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; margin-top: 0.8rem; }
.net-controls a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0.5rem 0.7rem; border: 1px solid #36556b; border-radius: 7px; background: #102437; color: #d2e8f6; font-size: 0.85rem; text-decoration: none; }
.net-controls a:hover { border-color: #5eead4; }
.net-controls a[aria-disabled='true'] { opacity: 0.45; cursor: default; }
.net-controls label { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin-left: auto; color: #afc7e2; font-size: 0.8rem; }
.net-controls input { min-height: 44px; max-width: 100%; padding: 0.4rem 0.6rem; border: 1px solid #36556b; border-radius: 7px; background: #102437; color: #eaf3ff; color-scheme: dark; font-size: 16px; }
.net-date-line { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.25rem 1rem; margin: 1rem 0 0.65rem; }
.net-date-line h3 { margin: 0; font-size: 1rem; text-transform: capitalize; font-weight: 700; }
.net-date-line > span { font-size: 0.75rem; color: #afc7e2; }
.net-list { display: grid; gap: 0.45rem; }
.net-event { border: 1px solid #263e55; border-radius: 8px; background: rgba(7, 19, 35, 0.75); }
.net-event summary { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; min-height: 52px; padding: 0.65rem 2rem 0.65rem 0.8rem; cursor: pointer; list-style: none; }
.net-event summary::after { position: absolute; right: 0.7rem; top: 0.8rem; content: '+'; color: #80dfe4; font-size: 1rem; }
.net-event[open] summary::after { content: '−'; }
.net-event summary::-webkit-details-marker { display: none; }
.net-event time { color: #80dfe4; font-size: 0.85rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.net-event__title { font-size: 0.9rem; font-weight: 600; overflow-wrap: anywhere; }
.net-status { color: #afc7e2; font-size: 0.7rem; }
.net-event[data-state='current'] { border-color: #5eead4; }
.net-event[data-state='current'] .net-status { color: #5eead4; }
.net-event[data-state='past'] { opacity: 0.72; }
.net-event__details { border-top: 1px solid #263e55; padding: 0.5rem 0.8rem 0.8rem; }
.net-event__details p { margin: 0.3rem 0; color: #afc7e2; font-size: 0.85rem; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
.net-source, .net-feedback { margin: 0.6rem 0 0; color: #91abc6; font-size: 0.73rem; line-height: 1.5; }
.net-feedback:empty, .net-source:empty { display: none; }
.net-empty { color: #afc7e2; font-size: 0.9rem; line-height: 1.6; }
.net-schedule :focus-visible, .network-directory :focus-visible { outline: 3px solid #5eead4; outline-offset: 3px; }
.landing-networks { margin-top: 0.6rem; margin-bottom: 1rem; }
.network-calendar, .network-contact { margin-top: 1.5rem; padding: 1rem; border: 1px solid #285367; border-radius: 12px; background: #0b1c30; }
.network-calendar summary { min-height: 44px; padding: 0.6rem; cursor: pointer; }
.network-calendar iframe { width: 100%; height: 650px; border: 0; border-radius: 6px; background: #fff; }
.network-calendar a, .network-contact a { display: inline-flex; align-items: center; min-height: 44px; color: #80dfe4; text-decoration: underline; margin-right: 1rem; }
.network-contact h2 { margin: 0 0 0.5rem; font-weight: 700; font-size: 1.1rem; }
.network-contact p { margin: 0; color: #afc7e2; }
@media(max-width:600px) {
  .network-directory { padding-top: 0.5rem; }
  .net-schedule { padding: 0.85rem; }
  .net-controls label { width: 100%; margin: 0; }
  .net-event summary { grid-template-columns: 44px minmax(0, 1fr); gap: 0.35rem 0.6rem; }
  .net-status { grid-column: 2; }
  .network-calendar iframe { height: 70svh; min-height: 400px; }
}
.net-category { display: block; color: #80dfe4; font-size: 0.7rem; font-weight: 500; margin-bottom: 0.2rem; }
.calendar-public-tabs { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0; }
.calendar-public-tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1rem; border: 1px solid #285367; border-radius: 7px; color: #80dfe4; text-decoration: none; }
.calendar-public-tabs a[aria-current] { background: #102c3c; border-color: #5eead4; }
.calendar-month { margin-top: 1.25rem; border: 1px solid #285367; border-radius: 10px; overflow: hidden; }
.calendar-month__hint { margin: 0; padding: 0.8rem 1rem; color: #afc7e2; background: #09182a; font-size: 0.82rem; }
.calendar-dialog { box-sizing: border-box; width: min(560px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 1.25rem; border: 1px solid #387083; border-radius: 14px; background: #09182a; color: #eaf3ff; box-shadow: 0 24px 100px #0009; font: 1rem/1.6 'Segoe UI', sans-serif; overflow-y: auto; overflow-wrap: anywhere; }
.calendar-dialog::backdrop { background: #020816c9; backdrop-filter: blur(4px); }
body.calendar-dialog-open { overflow: hidden; }
.calendar-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.calendar-dialog h2 { margin: 0; font-size: 1.35rem; font-weight: 750; line-height: 1.3; }
.calendar-dialog__close, .calendar-dialog__choice, .calendar-dialog__back { min-height: 44px; padding: 0.6rem 0.8rem; border: 1px solid #36556b; border-radius: 7px; background: #102c3c; color: #eaf3ff; font: inherit; cursor: pointer; }
.calendar-dialog__close { flex: 0 0 auto; margin-top: -0.3rem; }
.calendar-dialog__date, .calendar-dialog dt { color: #80dfe4; }
.calendar-dialog dl { display: grid; gap: 0.9rem; }
.calendar-dialog dt { font-size: 0.8rem; font-weight: 650; }
.calendar-dialog dd { margin: 0.2rem 0 0; white-space: pre-line; }
.calendar-dialog a { color: #8bd5ff; text-underline-offset: 3px; }
.calendar-dialog__official { display: inline-flex; align-items: center; min-height: 44px; }
.calendar-dialog__choices { display: grid; gap: 0.65rem; }
.calendar-dialog__choice { width: 100%; text-align: left; }
.calendar-dialog__choice span { display: block; color: #80dfe4; font-size: 0.8rem; }
.calendar-dialog :focus-visible { outline: 3px solid #5eead4; outline-offset: 3px; }
.calendar-month__nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.6rem; padding: 0.8rem; background: #0b1c30; }
.calendar-month__nav a { display: inline-flex; align-items: center; min-height: 44px; color: #80dfe4; padding: 0.4rem; }
.calendar-month__nav h2 { margin: 0; font-size: 1.1rem; font-weight: 700; text-transform: capitalize; }
.calendar-month__grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-weekday { padding: 0.5rem; text-align: center; background: #102437; color: #afc7e2; font-size: 0.8rem; }
.calendar-day { min-width: 0; min-height: 105px; padding: 0.45rem; border-top: 1px solid #263e55; border-right: 1px solid #263e55; background: #09182a; }
.calendar-day > a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; color: #d2e8f6; border-radius: 6px; }
.calendar-day.is-today > a { background: #5eead4; color: #04111f; }
.calendar-day ul { list-style: none; margin: 0; padding: 0; }
.calendar-day li a { display: block; color: #afc7e2; font-size: 0.72rem; margin-top: 0.3rem; line-height: 1.4; overflow-wrap: anywhere; }
.calendar-day.is-outside { opacity: 0.4; }
@media(max-width:600px) { .calendar-month__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0.25rem; } .calendar-month__nav h2 { grid-row: 1; grid-column: 1 / -1; text-align: center; } .calendar-month__nav a { font-size: 0.8rem; } .calendar-month__nav a:last-child { justify-self: end; } .calendar-day { min-height: 74px; padding: 0.2rem; } .calendar-day li { display: none; } .calendar-day .calendar-count { display: block; color: #80dfe4; font-size: 0.65rem; } .calendar-weekday { padding: 0.4rem 0; font-size: 0.65rem; } }
@media(min-width:601px) { .calendar-count { display: none; } }
