@font-face{font-family:LocalMono;src:local('IBM Plex Mono'),local('SFMono-Regular'),local('Cascadia Code'),local('Consolas');font-display:swap}
:root{color-scheme:dark;--bg:#050a07;--panel:#0b120e;--panel-hover:#0e1b13;--green:#00f58c;--ink:#d5e9dc;--muted:#8aa394;--dim:#5b7565;--line:#1c3427;--amber:#e7bb6c;--red:#ef9f90;--font:LocalMono,'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button{color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}button:focus:not(:focus-visible){outline:none}input,select{color:var(--ink);background:transparent;min-width:0}select{cursor:pointer}option{background:#0b120e}button{background:none;border:0}p,h1,h2,h3{margin:0}button[hidden],[hidden]{display:none!important}.shell{max-width:1272px;margin:auto;padding:0 36px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-70px;left:20px;padding:12px;background:var(--green);color:var(--bg);z-index:99}.skip-link:focus{top:10px}.site-header{height:88px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{color:var(--green);font-size:23px;font-weight:750;letter-spacing:-1.6px;white-space:nowrap}.brand:hover{text-decoration:none}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;margin-right:10px;font-size:23px;vertical-align:0;letter-spacing:0}.brand-dot{color:var(--ink)}.header-context{font-size:10px;letter-spacing:1.2px;color:var(--muted);flex:1}.tiny-cross{color:var(--green);margin-right:9px}.site-header nav{display:flex;align-items:center;gap:24px}.text-button{font-size:11px;color:var(--muted);padding:6px 0;white-space:nowrap}.text-button:hover{color:var(--green)}.text-button span{margin-left:5px}.save-nav{border:1px solid var(--line);border-radius:5px;padding:8px 12px;font-size:11px;display:flex;align-items:center;gap:8px}.save-nav>span:first-child{color:var(--green);font-size:17px;line-height:1}.save-nav>span:last-child{border-left:1px solid var(--line);padding-left:9px;color:var(--muted)}.save-nav[aria-pressed=true]{background:#103321;border-color:var(--green)}.intro{display:grid;grid-template-columns:1fr 360px;align-items:center;gap:50px;padding:54px 0 42px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--muted);display:flex;align-items:center;gap:8px}.status-square{height:5px;width:5px;background:var(--green);box-shadow:0 0 9px #00f58c33}.intro h1{font-size:clamp(36px,4.5vw,61px);line-height:1.08;font-weight:500;letter-spacing:-3.5px;margin:20px 0}.intro h1>span:first-child{color:var(--green)}.cursor{color:var(--green);font-size:.75em;animation:blink 2s steps(1) infinite}.intro-copy>p{font-size:12px;color:var(--muted);line-height:1.9}.intro-side{border:1px solid var(--line);border-radius:6px;background:linear-gradient(135deg,#09160e80,transparent);padding:17px 20px}.signal-label{font-size:9px;color:var(--muted);letter-spacing:1px}.signal-label>span{color:var(--green);font-size:18px;margin-right:7px;line-height:1}.signal-art{height:135px;position:relative;display:grid;place-items:center;overflow:hidden;background-image:radial-gradient(#254331 1px,transparent 1px);background-size:13px 13px;margin:12px 0}.signal-floor{display:grid;grid-template-columns:repeat(6,26px);gap:5px;transform:perspective(420px) rotateX(40deg) rotateZ(-17deg);filter:drop-shadow(0 4px 8px #000);margin-top:-8px}.signal-floor span{height:21px;border:1px solid #386d4e;background:#0b2116}.signal-floor span:nth-child(3n+1){background:#06462b;border-color:#00c67588}.signal-floor span:nth-child(7){background:var(--green);border-color:var(--green);box-shadow:0 0 17px #00f58c75}.signal-floor span:nth-child(16){background:var(--green);border-color:var(--green);box-shadow:0 0 17px #00f58c50}.art-caption{position:absolute;bottom:1px;right:4px;font-size:8px;letter-spacing:1.4px;color:var(--green)}.intro-meta{padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.intro-meta>span:first-child{color:var(--green)}.meta-separator{margin:0 12px;color:var(--dim)}.coverage-note{display:flex;align-items:center;gap:12px;padding:14px 17px;border:1px solid #51462d;border-left:2px solid var(--amber);border-radius:3px;background:#c28b2610;font-size:10px;line-height:1.8}.coverage-note p{flex:1;color:#b7aa8e}.coverage-note strong{font-weight:500;color:#e4ce9e}.note-icon{width:16px;height:16px;border:1px solid #75603f;border-radius:50%;color:var(--amber);display:grid;place-items:center;flex-shrink:0;font-size:10px;line-height:1}.coverage-note .text-button{color:var(--amber);font-size:10px}.finder{margin-top:32px}.finder-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.day-switch{display:flex;gap:3px;background:#0c150f;padding:4px;border-radius:5px;border:1px solid var(--line)}.day-button{min-width:52px;padding:7px 11px;font-size:11px;color:var(--muted);border-radius:3px}.day-button[aria-pressed=true]{color:var(--bg);background:var(--green);font-weight:650}.day-button:hover:not([aria-pressed=true]){background:#183322;color:var(--green)}.weekly-label{font-size:9px;letter-spacing:1px;color:var(--muted);display:flex;align-items:center;gap:7px}.outline-dot{border:1px solid var(--green);height:5px;width:5px;border-radius:50%}.weekly-label .muted{color:var(--dim);margin-left:4px}.filter-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,200px) 126px 155px 40px;gap:9px}.search-field,.control,.reset-button{height:51px;border:1px solid var(--line);border-radius:4px;background:#0b120e}.search-field{display:flex;align-items:center;gap:10px;padding:0 13px}.search-field>span:first-child{font-size:24px;color:var(--dim)}.search-field input{border:0;outline:none;width:100%;font-size:11px}.search-field:focus-within,.control:focus-within{border-color:var(--green)}.search-field input::placeholder{color:var(--dim)}.control{padding:6px 11px;display:flex;flex-direction:column;gap:0}.control>span{font-size:8px;color:var(--muted);letter-spacing:.8px;text-transform:uppercase}.control select,.control input{width:100%;border:0;outline:0;padding:0;font-size:11px;height:24px;line-height:24px}.time-control input::-webkit-calendar-picker-indicator{filter:opacity(.6);cursor:pointer}.reset-button{font-size:24px;color:var(--muted)}.reset-button:hover{color:var(--green);border-color:var(--green)}.input-error{font-size:11px;margin-top:10px;color:var(--red)}.room-section{padding:30px 0 50px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.section-heading>div:first-child{display:flex;align-items:center;gap:14px}.section-heading h2{font-weight:500;font-size:14px;letter-spacing:-.4px}.result-meta{font-size:9px;color:var(--muted)}.result-controls{display:flex;align-items:center;gap:16px;font-size:10px;color:var(--muted)}.match-control{display:flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer}.match-control input{accent-color:var(--green);height:12px;width:12px;margin:0}.result-controls select{font-size:10px;border:0;padding:4px 0;color:var(--muted);max-width:155px}.timeline-legend{display:flex;align-items:center;gap:16px;font-size:8px;letter-spacing:.1px;color:var(--muted);padding-bottom:16px}.timeline-legend span{display:flex;align-items:center;gap:6px}.timeline-legend i{display:inline-block;width:7px;height:7px;border-radius:1px}.legend-window{background:var(--green)}.legend-class{background:#9b8352}.legend-buffer{margin-left:auto;color:var(--dim)}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.room-card{border:1px solid var(--line);border-radius:6px;background:var(--panel);position:relative;overflow:hidden;transition:background .15s,border-color .15s;animation:appear .3s ease both}.room-card:hover{border-color:#3a684d;background:var(--panel-hover)}.room-card::before{content:'';display:block;height:2px;background:#00f58c77}.room-card.later::before{background:#8e9b6966}.room-card.no-window::before{background:#9b835266}.room-card-top{padding:13px 16px 9px;display:flex;justify-content:space-between;align-items:center}.card-badge{font-size:8px;letter-spacing:1px;color:var(--green);display:inline-flex;align-items:center;gap:6px}.card-badge::before{content:'';display:inline-block;width:4px;height:4px;background:currentColor}.later .card-badge,.no-window .card-badge{color:var(--amber)}.favorite-button{width:28px;height:28px;display:grid;place-items:center;color:var(--dim);font-size:21px;padding:0;line-height:1;border-radius:3px}.favorite-button:hover,.favorite-button[aria-pressed=true]{color:var(--green);background:#143221}.room-card-main{display:block;text-align:left;width:100%;padding:0 17px 16px}.room-code{display:flex;justify-content:space-between;align-items:center;background-image:radial-gradient(#284a352e 1px,transparent 1px);background-size:9px 9px;padding:12px 0 9px;min-height:81px}.building-code{font-size:12px;color:var(--muted);letter-spacing:.7px;line-height:1.4;max-width:55%}.building-code small{font-size:8px;display:block;color:var(--dim);margin-top:5px;letter-spacing:.6px}.room-number{font-size:42px;color:var(--green);letter-spacing:-2px;line-height:1;font-weight:400;max-width:58%;overflow:hidden;text-overflow:ellipsis}.no-window .room-number{color:var(--dim)}.card-divider{height:1px;background:var(--line);margin:7px 0 14px}.window-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.window-duration{font-size:25px;letter-spacing:-1px;color:var(--ink);line-height:1.3}.window-duration small{font-size:10px;color:var(--muted);letter-spacing:0;margin-left:6px}.window-arrow{color:var(--green);font-size:19px}.window-time{font-size:10px;color:var(--muted);margin-top:4px;min-height:16px}.window-time strong{color:var(--green);font-weight:400}.room-timeline{position:relative;height:12px;margin-top:20px;background:#17251c;overflow:hidden;border-radius:2px;isolation:isolate}.timeline-block{position:absolute;height:100%;top:0;background:#b79a5b88;min-width:1px}.timeline-gap{position:absolute;height:100%;top:0;background:#00f58c2a;border-bottom:2px solid #00f58c55}.timeline-selected{background:#00f58c99;border-bottom-color:var(--green);z-index:1}.timeline-marker{position:absolute;top:0;bottom:0;border-left:1px solid var(--ink);z-index:2}.timeline-times{display:flex;justify-content:space-between;font-size:8px;color:var(--dim);margin-top:5px}.card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:12px;margin-top:11px;border-top:1px solid var(--line);font-size:8px;color:var(--dim);letter-spacing:.2px}.card-foot>span:last-child{color:var(--muted)}.empty-state{text-align:center;border:1px dashed var(--line);padding:60px 20px;color:var(--muted);border-radius:5px}.empty-state>span{font-size:35px;color:var(--dim)}.empty-state h3{font-size:16px;color:var(--ink);font-weight:500;margin:12px}.empty-state p{font-size:11px;margin-bottom:20px}.primary-button{background:var(--green);color:var(--bg);padding:10px 15px;border-radius:3px;font-size:11px}.noscript-note{padding:24px;border:1px solid var(--line)}.site-footer{border-top:1px solid var(--line);padding:28px 0 35px;display:grid;grid-template-columns:1fr 1fr auto;gap:20px;font-size:9px;color:var(--dim)}.footer-brand{font-size:17px;letter-spacing:-1px;color:var(--muted)}.site-footer p{margin-top:6px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.footer-links .text-button,.footer-links a{font-size:9px;color:var(--muted);padding:0}.footer-links a:hover{color:var(--green)}.footer-note{font-size:8px;line-height:2;align-self:center;max-width:240px}dialog{border:1px solid #305d40;border-radius:8px;background:var(--panel);color:var(--ink);padding:0;width:min(620px,calc(100% - 28px));max-height:85dvh;box-shadow:0 20px 90px #000c;font:inherit}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.dialog-inner{padding:34px;position:relative}.close-dialog{position:absolute;top:12px;right:14px;width:30px;height:30px;font-size:25px;line-height:1;color:var(--muted);border-radius:3px}.close-dialog:hover{color:var(--green);background:#143221}.about-content h2,.detail-title{font-size:32px;font-weight:450;line-height:1.2;letter-spacing:-1.5px;margin:20px 0;color:var(--green)}.about-content p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:15px}.about-content strong{color:var(--ink);font-weight:500}.about-content h3,.detail-section-title{font-size:11px;letter-spacing:.7px;text-transform:uppercase;font-weight:500;color:var(--ink);margin-top:26px}.source-link{display:block;margin-top:10px;font-size:11px}.about-downloads{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;display:flex;gap:22px;font-size:10px}.term-status{color:var(--amber)!important}.detail-location{color:var(--muted);font-size:11px}.detail-summary{background:#10271a;border:1px solid #205636;border-radius:4px;padding:15px;margin-top:20px;font-size:12px;color:var(--green)}.detail-notice{font-size:10px;color:var(--muted);margin-top:14px;line-height:1.9}.detail-events{margin:12px 0;padding:0;list-style:none}.detail-event{padding:12px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:115px 1fr;gap:12px;font-size:10px}.detail-event-time{color:var(--amber)}.detail-event a{color:var(--ink)}.detail-event small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.detail-empty{font-size:11px;color:var(--muted);padding-top:12px}.detail-window{font-size:11px;color:var(--green);padding:9px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.detail-source{margin-top:22px;font-size:10px;display:block}.dialog-day{color:var(--muted);font-size:10px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);border:1px solid #397e50;padding:10px 16px;box-shadow:0 5px 20px #0009;background:#102219;color:var(--green);border-radius:4px;font-size:11px;z-index:10;max-width:calc(100% - 30px);text-align:center}.stale-banner{color:var(--amber);font-size:10px;margin:14px 0 0}.load-error{padding:25px;border:1px solid #744d3e;border-radius:4px;color:var(--red)}
@keyframes blink{0%,60%,100%{opacity:1}61%,99%{opacity:0}}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.shell{max-width:1400px}.room-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1000px){.shell{padding:0 25px}.header-context{font-size:8px;letter-spacing:.7px}.site-header{gap:22px}.intro{grid-template-columns:1fr 300px;gap:25px}.filter-row{grid-template-columns:minmax(130px,1fr) 170px 115px 140px 38px}.coverage-note .text-button{display:none}.section-heading>div:first-child{gap:10px}.result-meta{font-size:8px}.result-controls{gap:12px}.room-grid{gap:12px}.room-card-top{padding:10px 13px 6px}.room-card-main{padding:0 13px 14px}.room-number{font-size:36px}.building-code{font-size:10px}.window-duration{font-size:23px}.window-time{font-size:9px}.site-footer{grid-template-columns:1fr 1fr}.footer-note{grid-column:1/-1;max-width:none}.footer-note br{display:none}}
@media(max-width:760px){.shell{padding:0 20px}.site-header{height:72px}.header-context{display:none}.site-header nav{margin-left:auto;gap:20px}.brand{font-size:21px}.intro{grid-template-columns:1fr 235px;padding:40px 0 30px;gap:20px}.intro h1{font-size:42px;letter-spacing:-2.5px}.intro-side{padding:12px}.signal-label{font-size:7px;letter-spacing:.2px}.signal-art{height:115px}.intro-meta{font-size:8px}.meta-separator{margin:0 7px}.eyebrow{font-size:8px;letter-spacing:1px}.intro-copy>p{font-size:10px}.coverage-note{padding:12px;font-size:9px;align-items:flex-start}.note-icon{margin-top:3px}.finder-top{flex-wrap:wrap}.weekly-label{font-size:8px}.weekly-label .muted{display:none}.filter-row{grid-template-columns:minmax(130px,1fr) minmax(120px,1fr) 40px}.search-field{grid-column:1/3}.control:nth-of-type(2){grid-row:2;grid-column:1}.time-control{grid-row:2;grid-column:2}.control:nth-of-type(4){grid-row:3;grid-column:1/3}.reset-button{grid-column:3;grid-row:1/4;height:100%;font-size:23px}.filter-row{grid-template-columns:1fr 1fr 40px}.control:nth-of-type(2){grid-column:1}.time-control{grid-column:2}.filter-row .control{height:48px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.section-heading{align-items:flex-start}.section-heading>div:first-child{flex-direction:column;gap:3px;align-items:flex-start}.result-controls{gap:8px;flex-direction:column;align-items:flex-end}.result-controls select{padding:0;font-size:9px}.match-control{font-size:9px}.legend-buffer{display:none}.room-section{padding-top:24px}.room-card-main{padding:0 13px 12px}.room-card-top{padding:10px 10px 5px}.room-code{min-height:72px}.room-number{font-size:35px}.building-code{font-size:10px}.card-foot{font-size:7px}.window-duration{font-size:23px}.window-duration small{font-size:8px}.window-time{font-size:9px}.card-foot>span:first-child{max-width:65%}.dialog-inner{padding:30px 23px}.detail-event{grid-template-columns:100px 1fr}}
@media(max-width:480px){.shell{padding:0 16px}.site-header nav{gap:12px}.site-header nav>.text-button{display:none}.brand{font-size:22px}.save-nav{padding:7px 10px}.intro{display:block;padding:34px 0 26px}.intro h1{font-size:46px;margin:18px 0 15px}.intro-side{display:none}.intro-copy>p{font-size:11px}.eyebrow{font-size:8px}.coverage-note{font-size:9px;line-height:1.9}.finder{margin-top:25px}.finder-top{gap:10px;margin-bottom:12px}.day-switch{width:100%;justify-content:space-between}.day-button{min-width:0;flex:1;padding:8px}.weekly-label{font-size:7px;width:100%}.weekly-label .muted{display:inline;margin-left:auto;font-size:7px}.filter-row{gap:7px;grid-template-columns:1fr 1fr 36px}.search-field input{font-size:10px}.search-field{padding:0 10px}.room-grid{gap:9px}.room-card-top{padding:8px 8px 4px}.card-badge{font-size:6px;letter-spacing:.5px;gap:4px}.favorite-button{width:24px;height:24px;font-size:19px}.room-card-main{padding:0 10px 11px}.room-code{min-height:67px;padding:8px 0}.building-code{font-size:9px;letter-spacing:0;max-width:50%}.building-code small{font-size:6px;letter-spacing:0}.room-number{font-size:30px;letter-spacing:-1.8px;max-width:55%}.card-divider{margin:5px 0 11px}.window-duration{font-size:20px}.window-duration small{display:block;font-size:7px;margin:1px 0 0;letter-spacing:.2px}.window-arrow{font-size:16px}.window-time{font-size:8px;margin-top:5px;line-height:1.6;min-height:25px}.room-timeline{margin-top:10px;height:10px}.timeline-times{font-size:6px}.card-foot{font-size:6px;padding-top:8px;margin-top:8px;letter-spacing:0}.timeline-legend{font-size:7px;gap:12px}.timeline-legend i{width:6px;height:6px}.section-heading h2{font-size:13px}.result-meta{font-size:7px}.result-controls{font-size:8px}.site-footer{padding-top:23px;font-size:8px}.footer-brand{font-size:16px}.footer-links .text-button,.footer-links a{font-size:8px}.footer-note{font-size:7px}.about-content h2,.detail-title{font-size:28px}.about-downloads{flex-direction:column;gap:10px}.detail-event{grid-template-columns:1fr;gap:4px}.detail-event-time{font-size:10px}}
.intro h1>span:first-of-type{color:var(--green)}.room-card{animation:none}
.search-hint{font-size:10px;color:var(--muted);line-height:1.8;margin-top:10px}.catalog-button{border:1px solid var(--line);border-radius:3px;padding:4px 9px;color:var(--muted);font-size:10px;white-space:nowrap}.catalog-button[aria-pressed=true]{border-color:#2a7349;color:var(--green);background:#102a1a}.catalog-button:hover{border-color:var(--green);color:var(--green)}.control:has(select:disabled){opacity:.55}.match-control:has(input:disabled){opacity:.55}.selected-status{color:var(--amber);border-left:2px solid var(--amber);padding-left:10px;font-size:11px;line-height:1.8;margin-top:15px}
@media(max-width:760px){.reset-button{grid-row:1;height:51px}.time-control{grid-column:2/4}.control:nth-of-type(4){grid-column:1/4}.timeline-legend .legend-buffer{display:none}}
@media(max-width:480px){.intro h1{font-size:clamp(35px,10.8vw,46px)}.room-grid{grid-template-columns:1fr;gap:14px}.room-card-top{padding:12px 16px 6px}.card-badge{font-size:9px;letter-spacing:.7px;gap:6px}.favorite-button{font-size:23px;width:30px;height:30px}.room-card-main{padding:0 17px 15px}.room-code{min-height:85px;padding:12px 0}.building-code{font-size:12px;letter-spacing:.5px}.building-code small{font-size:8px;letter-spacing:.4px}.room-number{font-size:45px;letter-spacing:-2px}.window-duration{font-size:28px}.window-duration small{display:inline;font-size:9px;margin-left:6px}.window-arrow{font-size:20px}.window-time{font-size:11px;min-height:18px}.room-timeline{height:12px;margin-top:18px}.timeline-times{font-size:8px}.card-foot{font-size:8px;padding-top:12px;margin-top:10px}.timeline-legend{font-size:8px}.result-meta{font-size:8px}.control>span{font-size:9px}.control select,.control input{font-size:12px}.coverage-note{font-size:10px}.search-field input{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
