@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--font-sans: "Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--app-bg: #0f1115;--app-surface: #171b22;--app-surface-2: #202630;--app-surface-3: #29313c;--app-text: #f4f7fb;--app-muted: #aab3bf;--app-border: #343d49;--app-border-strong: #566172;--app-accent-default: #4fc3a7;--app-accent: var(--app-user-tint, var(--app-accent-default));--app-accent-soft: color-mix(in srgb, var(--app-accent) 18%, transparent);--app-warning: #f0b35a;--app-danger: #e47769;--app-ok: #76c78b;--app-panel: color-mix(in srgb, var(--app-surface) 92%, transparent);--app-panel-strong: color-mix(in srgb, var(--app-surface-2) 96%, transparent);--app-control-bg: color-mix(in srgb, var(--app-surface-2) 88%, transparent);--app-control-hover: color-mix(in srgb, var(--app-surface-3) 84%, transparent);--app-shadow-soft: 0 14px 40px rgba(0, 0, 0, .24);--app-shadow-strong: 0 24px 70px rgba(0, 0, 0, .36);--app-radius-card: 8px;--app-radius-control: 8px;--app-radius-shell: 10px;--app-page-max: 1220px;--app-bg-pattern: linear-gradient(180deg, color-mix(in srgb, var(--app-surface-2) 54%, transparent) 0%, transparent 330px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--app-border) 14%, transparent) 0 1px, transparent 1px 42px), repeating-linear-gradient(0deg, color-mix(in srgb, var(--app-border) 10%, transparent) 0 1px, transparent 1px 42px), var(--app-bg);color-scheme:dark}:root[data-theme=day]{--app-bg: #f4f6f8;--app-surface: #ffffff;--app-surface-2: #eef2f5;--app-surface-3: #e1e7ed;--app-text: #15263f;--app-muted: #5d6875;--app-border: #cbd3dc;--app-border-strong: #929daa;--app-accent-default: #1b756b;--app-accent: var(--app-user-tint, var(--app-accent-default));--app-accent-soft: color-mix(in srgb, var(--app-accent) 14%, transparent);--app-warning: #b8752e;--app-danger: #b94c45;--app-ok: #347b4b;--app-panel: color-mix(in srgb, var(--app-surface) 96%, transparent);--app-panel-strong: color-mix(in srgb, var(--app-surface-2) 86%, #ffffff);--app-control-bg: color-mix(in srgb, var(--app-surface) 88%, var(--app-surface-2));--app-control-hover: color-mix(in srgb, var(--app-surface-3) 64%, #ffffff);--app-shadow-soft: 0 14px 34px rgba(27, 37, 49, .12);--app-shadow-strong: 0 24px 60px rgba(27, 37, 49, .18);--app-bg-pattern: linear-gradient(180deg, color-mix(in srgb, var(--app-surface-3) 52%, transparent) 0%, transparent 330px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--app-border) 28%, transparent) 0 1px, transparent 1px 42px), repeating-linear-gradient(0deg, color-mix(in srgb, var(--app-border) 20%, transparent) 0 1px, transparent 1px 42px), var(--app-bg);color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}html,body{margin:0;padding:0;scroll-behavior:smooth}body{font-family:var(--font-sans);line-height:1.45;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--app-bg-pattern);color:var(--app-text)}a{color:var(--app-accent);text-underline-offset:.16em}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:var(--app-radius-control);border:1px solid var(--app-border);background:color-mix(in srgb,var(--app-accent-soft) 80%,transparent);color:var(--app-text);padding:8px 12px;font-weight:600;text-decoration:none}.theme-toggle--compact{min-height:36px;border-radius:999px;padding:6px 10px;font-size:.8rem}.theme-toggle span[aria-hidden=true]{font-size:1rem;line-height:1}.theme-toggle:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}:where(a,button,input,select,textarea,summary,[role=button]):focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--app-accent) 34%,transparent);color:var(--app-text)}input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{border:1px solid var(--app-border);border-radius:var(--app-radius-control);background:var(--app-control-bg);color:var(--app-text)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--app-muted) 76%,transparent)}input[type=range]{accent-color:var(--app-accent)}input[type=color]{cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.station-info{padding:20px;color:var(--app-text);overflow-y:auto;margin-top:20px;border:1px solid var(--app-border);border-radius:var(--app-radius-card);background:var(--app-panel);width:100%;box-sizing:border-box;text-align:center}.tracks-container{display:flex;flex-direction:column;gap:12px;align-items:center}.current-track{display:flex;align-items:center;justify-content:center;gap:15px;padding:15px 25px;border-radius:8px;border:1px solid color-mix(in srgb,var(--app-border) 78%,transparent);background:var(--app-panel-strong);margin-bottom:8px;transition:all .3s ease;width:100%;box-sizing:border-box}.previous-track{opacity:.8}.track-icon{display:none}.track-details{flex:1;display:flex;flex-direction:column;gap:5px;text-align:center}.track-label{font-size:.8rem;color:var(--app-accent);margin:0;text-transform:uppercase;font-weight:700}.track-name{font-size:1.2em;font-weight:700;margin:0;color:var(--app-text)}.artist-name{font-size:1em;color:var(--app-muted);margin:0}.album-name{font-size:.9em;color:color-mix(in srgb,var(--app-muted) 82%,transparent);margin:0}.now-playing{font-size:.8em;color:var(--app-muted)}.error-message{padding:15px;background:color-mix(in srgb,var(--app-danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--app-danger) 40%,transparent);border-radius:var(--app-radius-card)}.error-message p{margin:5px 0;color:color-mix(in srgb,var(--app-danger) 74%,var(--app-text))}.error-message p:first-child{color:var(--app-danger);font-weight:700}.current-program{border:1px solid color-mix(in srgb,var(--app-border) 78%,transparent);background:var(--app-panel-strong);border-radius:var(--app-radius-card);padding:15px 25px;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;width:100%;box-sizing:border-box}.program-icon{display:none}.program-info{display:flex;flex-direction:column;gap:5px;text-align:center;width:100%}.program-line{margin:0}.program-name{font-size:1.2em;font-weight:700;margin:0;color:var(--app-text)}.program-host{font-size:1em;color:var(--app-muted);margin:0}.program-time{font-size:.9em;color:color-mix(in srgb,var(--app-muted) 82%,transparent);margin:0;font-family:monospace}.next-program{margin-top:8px;font-size:.9em;color:color-mix(in srgb,var(--app-muted) 82%,transparent);opacity:.8}.current-program span{color:color-mix(in srgb,var(--app-muted) 82%,transparent)}.program-line:first-child span,.program-line:first-child .program-host{color:var(--app-text)!important}.location-sort-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;color:var(--app-muted);font-size:.82rem}.location-sort-status span{min-width:0}.location-sort-status button{min-height:32px;border-radius:8px;border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-text);padding:0 10px}.route-loading{min-height:100vh;display:grid;place-items:center;padding:24px;color:var(--app-text);background:var(--app-bg);font-family:var(--font-sans)}.app-skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:10px 12px;border-radius:var(--app-radius-control);border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-text);text-decoration:none;font-weight:700;transform:translateY(-140%);transition:transform .14s ease}.app-skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--app-accent);outline-offset:2px}#app-main-content:focus{outline:none}.app-error-boundary{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:12px;padding:24px;text-align:center;color:var(--app-text);background:var(--app-bg-pattern)}.app-error-boundary-kicker{margin:0;color:var(--app-muted);letter-spacing:.08em;font-size:.8rem;text-transform:uppercase}.app-error-boundary h1{margin:0;font-size:clamp(1.85rem,2.8vw,2.35rem)}.app-error-boundary p{margin:0;max-width:56ch;color:var(--app-muted)}.app-error-boundary-message{color:color-mix(in srgb,var(--app-accent) 70%,var(--app-text))!important;font-weight:600}.app-error-boundary-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.app-error-boundary-actions button{min-height:40px;border-radius:var(--app-radius-control);border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-text);padding:8px 12px;font-weight:600}.app-error-boundary-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.app-error-boundary-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:var(--app-radius-control);border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-text);text-decoration:none;padding:8px 12px;font-weight:600}.not-found-page{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:10px;padding:24px;text-align:center;color:var(--app-text);background:var(--app-bg-pattern)}.not-found-kicker{margin:0;color:var(--app-muted);letter-spacing:.08em;font-size:.8rem;text-transform:uppercase}.not-found-page h1{margin:0;font-size:clamp(2rem,3vw,2.5rem)}.not-found-page p{margin:0;color:var(--app-muted);max-width:44ch}.not-found-links{margin-top:6px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.not-found-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:var(--app-radius-control);border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-text);text-decoration:none;padding:8px 12px;font-weight:600}.command-palette-trigger{position:fixed;right:18px;bottom:18px;z-index:1200;border-radius:999px;border:1px solid var(--app-border);background:color-mix(in srgb,var(--app-accent-soft) 72%,transparent);color:var(--app-text);min-width:54px;min-height:42px;font-size:.8rem;font-weight:700;letter-spacing:.04em}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 24px;background:color-mix(in srgb,var(--app-bg) 58%,#02060c 42%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.command-palette-panel{width:min(920px,100%);max-height:84vh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;border-radius:16px;border:1px solid var(--app-border);background:color-mix(in srgb,var(--app-surface) 90%,#000 10%);box-shadow:0 30px 90px #0006;padding:14px}.command-palette-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.command-palette-header p{margin:0;color:var(--app-muted);font-size:.86rem;letter-spacing:.04em;text-transform:uppercase}.command-palette-header button{border-radius:8px;border:1px solid var(--app-border);background:transparent;color:var(--app-text);padding:6px 10px}.command-palette-input{width:100%;border-radius:11px;border:1px solid var(--app-border);background:color-mix(in srgb,var(--app-bg) 68%,transparent);color:var(--app-text);padding:12px}.command-palette-results{list-style:none;margin:0;padding:0;overflow:auto;display:grid;gap:8px}.command-palette-item{width:100%;border-radius:11px;border:1px solid color-mix(in srgb,var(--app-border) 72%,transparent);background:color-mix(in srgb,var(--app-bg) 28%,transparent);color:var(--app-text);display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:10px 12px}.command-palette-item.is-active{border-color:color-mix(in srgb,var(--app-accent) 62%,var(--app-border));background:color-mix(in srgb,var(--app-accent-soft) 58%,transparent)}.command-palette-item-main{display:grid;gap:3px;min-width:0}.command-palette-item-main strong,.command-palette-item-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-item-main small{color:var(--app-muted);font-size:.78rem}.command-palette-item-section{flex-shrink:0;border-radius:999px;border:1px solid color-mix(in srgb,var(--app-border) 72%,transparent);color:var(--app-muted);font-size:.72rem;padding:4px 8px;text-transform:uppercase;letter-spacing:.04em}.command-palette-empty{border:1px dashed var(--app-border);border-radius:10px;color:var(--app-muted);padding:16px;text-align:center}.command-palette-footer{display:flex;flex-wrap:wrap;gap:10px;color:var(--app-muted);font-size:.76rem}.command-palette-status{margin:0;color:var(--app-accent);font-size:.82rem}@media(max-width:760px){.command-palette-trigger{right:12px;bottom:12px;min-height:38px;min-width:46px;font-size:.72rem}.command-palette-overlay{padding:6vh 10px 16px}.command-palette-panel{max-height:88vh;border-radius:12px;padding:10px}.command-palette-item{padding:10px}.command-palette-item-section{display:none}}.command-palette-trigger{border-radius:var(--app-radius-control);border-color:color-mix(in srgb,var(--app-accent) 46%,var(--app-border));background:linear-gradient(135deg,color-mix(in srgb,var(--app-accent) 30%,var(--app-control-bg)),var(--app-control-bg));box-shadow:var(--app-shadow-soft)}.command-palette-overlay{background:color-mix(in srgb,var(--app-bg) 72%,#000 28%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.command-palette-panel{border-radius:var(--app-radius-shell);border-color:var(--app-border);background:linear-gradient(180deg,var(--app-panel-strong),var(--app-panel));box-shadow:var(--app-shadow-strong)}.command-palette-header button,.command-palette-input,.command-palette-item,.command-palette-item-section,.command-palette-empty{border-radius:var(--app-radius-control);border-color:var(--app-border);background:var(--app-control-bg)}.command-palette-item:hover,.command-palette-header button:hover{background:var(--app-control-hover)}.command-palette-item.is-active{border-color:color-mix(in srgb,var(--app-accent) 58%,var(--app-border));background:color-mix(in srgb,var(--app-accent) 16%,var(--app-control-bg));box-shadow:inset 3px 0 0 var(--app-accent)}
