:root { --schedule-bg: #090a0d; --schedule-panel: #111318; --schedule-line: #282b33; --schedule-muted: #7d818c; --schedule-text: #f1f2f4; --schedule-orange: #ff762b; --schedule-pink: #ff4d9d; }
.schedule-body { overflow: hidden; background: var(--schedule-bg); color: var(--schedule-text); }
.schedule-site-shell { max-width: none; min-height: 100vh; background: radial-gradient(circle at 12% -8%, rgba(255,118,43,.14), transparent 27%), radial-gradient(circle at 90% -12%, rgba(255,77,157,.10), transparent 25%), var(--schedule-bg); }
.schedule-site-shell > .site-header { z-index: 40; border-color: var(--schedule-line); background: rgba(10,11,14,.92); }
.schedule-site-shell .site-brand, .schedule-site-shell .desktop-nav a { color: #f1f2f4; }
.schedule-app { height: calc(100vh - 76px); width: min(1600px, 100%); margin: 0 auto; padding: 0 clamp(14px,3vw,42px) 14px; display: grid; grid-template-rows: 78px 50px minmax(0,1fr) 36px; font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.schedule-app button, .schedule-app a { color: inherit; font: inherit; }
.schedule-app button { cursor: pointer; }
.schedule-app a { text-decoration: none; }

.schedule-topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--schedule-line); }
.schedule-brand-block { display: flex; align-items: center; gap: 13px; }
.schedule-brand-dot { width: 10px; height: 36px; border-radius: 99px; background: linear-gradient(var(--schedule-orange),var(--schedule-pink)); box-shadow: 0 0 28px rgba(255,95,83,.35); }
.schedule-brand-block p { margin: 0 0 5px; color: var(--schedule-muted); font-size: 8px; font-weight: 800; letter-spacing: .18em; }
.schedule-brand-block h1 { margin: 0; font-size: clamp(21px,2vw,30px); line-height: 1; letter-spacing: -.045em; color: #f1f2f4; }
.schedule-brand-block h1 i { color: var(--schedule-pink); font-style: normal; }
.schedule-top-actions { display: flex; align-items: center; gap: 14px; }
.schedule-weekend-dates { color: #a7a9b1; font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.schedule-top-actions button { height: 34px; padding: 0 13px; display: flex; align-items: center; gap: 8px; border: 1px solid #393c45; border-radius: 8px; background: #181a20; color: #d9dbe0; font-size: 10px; font-weight: 750; }
.schedule-top-actions button:hover { border-color: #5b5f6b; background: #1d2027; }
.schedule-top-actions button span { width: 7px; height: 7px; border-radius: 50%; background: #ff405d; box-shadow: 0 0 0 4px rgba(255,64,93,.12); }

.schedule-controls { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.schedule-filters { display: flex; align-items: center; gap: 5px; }
.schedule-filters button { height: 30px; padding: 0 10px; display: flex; align-items: center; gap: 7px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--schedule-muted); font-size: 9px; font-weight: 700; }
.schedule-filters button:hover { color: #c7c9cf; background: #13151a; }
.schedule-filters button.active { color: #fff; border-color: #343740; background: #1b1d24; }
.schedule-filters i { width: 6px; height: 6px; border-radius: 2px; background: linear-gradient(135deg,#8b7cff,#46b8ff); }
.schedule-filters i.herofest { background: var(--schedule-pink); }
.schedule-filters i.community { background: var(--schedule-orange); }
.schedule-filters i.hours { background: #f3f3f3; }
.schedule-filters i.all { background: linear-gradient(135deg,var(--schedule-orange) 0 50%,var(--schedule-pink) 50%); }
.schedule-status { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 13px; color: #7c808a; font-size: 8px; font-weight: 750; letter-spacing: .02em; }
.schedule-live-clock { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; color: #b6b9c0; font-variant-numeric: tabular-nums; }
.schedule-live-clock i { width: 5px; height: 5px; border-radius: 50%; background: #ff405d; box-shadow: 0 0 0 3px rgba(255,64,93,.12); }
.schedule-live-clock b { font: inherit; }
.schedule-next-event { min-width: 0; max-width: 370px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-next-event b { margin-right: 4px; color: var(--schedule-orange); font-size: 7px; letter-spacing: .12em; }
.schedule-mobile-days { display: none; }

.schedule-calendar-shell { min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--schedule-line); border-radius: 12px; background: var(--schedule-panel); box-shadow: 0 24px 80px rgba(0,0,0,.38); }
.schedule-day-strip { height: 61px; display: grid; grid-template-columns: 70px repeat(3,minmax(300px,1fr)); min-width: 1000px; border-bottom: 1px solid var(--schedule-line); background: #121419; }
.schedule-corner { display: flex; align-items: flex-end; padding: 0 12px 13px; border-right: 1px solid var(--schedule-line); color: #555963; font-size: 7px; font-weight: 900; letter-spacing: .16em; }
.schedule-day-title { padding: 12px 17px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-content: center; border-right: 1px solid var(--schedule-line); position: relative; }
.schedule-day-title:last-child { border-right: 0; }
.schedule-day-title.today { background: linear-gradient(100deg,rgba(255,118,43,.08),rgba(255,77,157,.025)); }
.schedule-day-title.today::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg,var(--schedule-orange),var(--schedule-pink)); }
.schedule-day-title span { font-size: 13px; font-weight: 800; letter-spacing: -.02em; }
.schedule-day-title strong { grid-row: 2; color: #747883; font-size: 8px; letter-spacing: .11em; }
.schedule-day-title small { grid-column: 2; grid-row: 1/3; align-self: center; padding: 5px 8px; border-radius: 99px; color: #ff9b65; background: rgba(255,118,43,.12); font-size: 7px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

.schedule-calendar-scroll { height: calc(100% - 61px); overflow: auto; scrollbar-color: #343740 #111318; scrollbar-width: thin; }
.schedule-calendar-body { min-width: 1000px; display: grid; grid-template-columns: 70px repeat(3,minmax(300px,1fr)); position: relative; }
.schedule-time-axis { position: sticky; left: 0; z-index: 5; height: 100%; border-right: 1px solid var(--schedule-line); background: #101217; }
.schedule-time-axis time { position: absolute; right: 12px; transform: translateY(-6px); color: #696d76; font-size: 9px; font-weight: 700; font-variant-numeric: tabular-nums; }
.schedule-day-canvas { height: 100%; position: relative; border-right: 1px solid var(--schedule-line); background-color: #111318; background-image: repeating-linear-gradient(to bottom,transparent 0,transparent 63.5px,rgba(255,255,255,.04) 64px,rgba(255,255,255,.04) 64.5px),repeating-linear-gradient(to bottom,transparent 0,transparent 128px,rgba(255,255,255,.10) 128.5px,rgba(255,255,255,.10) 129px); }
.schedule-day-canvas:last-child { border-right: 0; }
.schedule-day-canvas.today { background-color: #13151b; box-shadow: inset 0 0 60px rgba(255,118,43,.025); }
.schedule-event-stack { position: absolute; left: 7px; right: 7px; z-index: 2; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; }
.schedule-event-stack .schedule-calendar-event:only-child { grid-column: 1/-1; }
.schedule-calendar-event { min-height: 34px; padding: 4px 6px; display: grid; grid-template-columns: 34px 3px minmax(0,1fr) 9px; align-items: center; gap: 6px; border: 1px solid color-mix(in srgb,var(--event-color) 27%,#292c34); border-radius: 6px; background: color-mix(in srgb,var(--event-color) 8%,#181a20); transition: border-color .15s,background .15s,transform .15s; }
.schedule-calendar-event:hover { z-index: 4; transform: translateX(2px); border-color: color-mix(in srgb,var(--event-color) 50%,#333640); background: color-mix(in srgb,var(--event-color) 13%,#1a1c23); }
.schedule-calendar-event.herofest { background: linear-gradient(90deg,rgba(255,77,157,.13),rgba(255,77,157,.035)); }
.schedule-calendar-event.community { background: linear-gradient(90deg,rgba(255,118,43,.18),rgba(255,118,43,.045)); }
.schedule-calendar-event.hours { background: rgba(255,255,255,.065); border-style: dashed; }
.schedule-event-time { color: color-mix(in srgb,var(--event-color) 78%,white); font-size: 8px; font-weight: 900; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.schedule-event-color { width: 3px; align-self: stretch; border-radius: 3px; background: var(--event-color); box-shadow: 0 0 9px color-mix(in srgb,var(--event-color) 45%,transparent); }
.schedule-event-text { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1px; }
.schedule-event-text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #e8e9ec; font-size: 8px; font-weight: 790; }
.schedule-event-text small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #777b85; font-size: 6.5px; }
.schedule-external { color: #51555e; font-size: 7px; }
.schedule-current-line { position: absolute; left: -1px; right: -1px; z-index: 10; height: 1px; background: #ff405d; pointer-events: none; box-shadow: 0 0 9px rgba(255,64,93,.55); }
.schedule-current-line::before { content: ""; position: absolute; left: -4px; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: #ff405d; }
.schedule-current-line span { position: absolute; left: 8px; top: -10px; padding: 3px 5px; color: white; background: #ff405d; border-radius: 4px; font-size: 7px; font-weight: 900; font-variant-numeric: tabular-nums; }

.schedule-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #5e626c; font-size: 8px; }
.schedule-footer > div { display: flex; gap: 16px; }
.schedule-footer a { color: #858993; font-weight: 700; }
.schedule-footer a:hover { color: #fff; }

@media (max-width:760px) {
  .schedule-body { overflow: auto; }
  .schedule-site-shell > .site-header { position: relative; }
  .schedule-app { height: calc(100vh - 68px); grid-template-rows: 72px auto minmax(0,1fr) 46px; padding-left: 8px; padding-right: 8px; }
  .schedule-weekend-dates { display: none; }
  .schedule-top-actions button { padding: 0 9px; }
  .schedule-controls { align-items: stretch; padding: 8px 0; flex-direction: column; gap: 7px; }
  .schedule-filters { max-width: 100%; overflow-x: auto; }
  .schedule-filters button { white-space: nowrap; }
  .schedule-status { justify-content: space-between; padding: 0 4px; }
  .schedule-next-event { max-width: 62vw; }
  .schedule-mobile-days { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; }
  .schedule-mobile-days button { height: 30px; display: flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid #292c33; border-radius: 6px; background: #121419; color: #747883; font-size: 8px; }
  .schedule-mobile-days button strong { color: #a3a6ae; font-size: 9px; }
  .schedule-mobile-days button.active { border-color: #555963; color: #fff; background: #1b1d24; box-shadow: inset 0 -2px var(--schedule-orange); }
  .schedule-day-strip,.schedule-calendar-body { min-width: 0; grid-template-columns: 58px minmax(0,1fr); }
  .schedule-day-title:not(.selected),.schedule-day-canvas:not(.selected) { display: none; }
  .schedule-corner { padding-left: 8px; }
  .schedule-calendar-event { grid-template-columns: 32px 3px minmax(0,1fr); }
  .schedule-external { display: none; }
  .schedule-footer { align-items: flex-start; padding-top: 7px; }
  .schedule-footer > div { flex-direction: column; gap: 3px; align-items: flex-end; }
}

@media (prefers-reduced-motion:reduce) { .schedule-app * { scroll-behavior: auto!important; transition: none!important; } }
