:root{--bg:#F5F7FA;--bg-card:#ffffff;--bg-overlay:rgba(15, 30, 39, 0.85);--text-primary:#1D3341;--text-secondary:#5a7a8a;--accent:#2B84A2;--accent-hover:#256f89;--accent-light:rgba(43, 132, 162, 0.15);--border:#dde6ec;--shadow-sm:0 1px 4px rgba(29, 51, 65, 0.08);--shadow-md:0 4px 24px rgba(29, 51, 65, 0.12);--shadow-lg:0 8px 40px rgba(29, 51, 65, 0.18);--radius-card:20px;--radius-btn:50%;--status-live:#22c55e;--status-off:#ef4444;--status-buf:#f59e0b;--header-height:60px;--font:'Inter','Segoe UI',system-ui,sans-serif;--transition:0.2s ease}[data-theme=dark]{--bg:#0b1820;--bg-card:#1D3341;--bg-overlay:rgba(5, 12, 18, 0.90);--text-primary:#e8f0f5;--text-secondary:#7da0b0;--accent:#3a9fc0;--accent-hover:#2B84A2;--accent-light:rgba(58, 159, 192, 0.18);--border:#2a4555;--shadow-sm:0 1px 4px rgba(0, 0, 0, 0.25);--shadow-md:0 4px 24px rgba(0, 0, 0, 0.40);--shadow-lg:0 8px 40px rgba(0, 0, 0, 0.55)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);min-height:100dvh;min-height:100vh;display:flex;flex-direction:column;transition:background var(--transition),color var(--transition);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button{cursor:pointer;border:none;background:0 0;font-family:inherit}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}input[type=range]{cursor:pointer}#app{display:flex;flex-direction:column;min-height:100dvh;min-height:100vh}.app-header{height:var(--header-height);background:#1d3341;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;flex-shrink:0}.gov-link{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;opacity:.92;transition:opacity var(--transition)}.gov-link:hover{opacity:1;text-decoration:none}.gov-logo{height:32px;width:auto;object-fit:contain}.player-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.station-card{background:var(--bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:2rem 2rem 1.75rem;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:1.25rem;border:1px solid var(--border);transition:background var(--transition),border-color var(--transition)}.station-art-wrapper{position:relative;width:160px;height:160px}.station-art{width:160px;height:160px;border-radius:50%;background:var(--accent-light);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.station-logo{width:100px;height:100px;object-fit:contain;position:relative;z-index:2}.art-ring{position:absolute;inset:-8px;border-radius:50%;border:3px solid var(--accent);opacity:0;transition:opacity .4s}[data-playing=true] .art-ring{opacity:1;animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.06);opacity:.4}}.visualizer{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;pointer-events:none;z-index:3;opacity:0;transition:opacity .4s}[data-playing=true] .visualizer{opacity:1}.station-info{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem}.station-name{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}.station-desc{font-size:.875rem;color:var(--text-secondary)}.now-playing-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.live-badge{font-size:.65rem;font-weight:700;letter-spacing:.08em;padding:.2rem .5rem;border-radius:4px;background:var(--status-live);color:#fff;opacity:0;transition:opacity .4s}[data-stream-online=true] .live-badge{opacity:1}.now-playing-text{font-size:.825rem;color:var(--text-secondary);font-style:italic;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-controls{display:flex;align-items:center;justify-content:center}.play-btn{width:76px;height:76px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--transition),transform .1s,box-shadow var(--transition);box-shadow:0 4px 20px rgba(43,132,162,.45);position:relative;flex-shrink:0}.play-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 6px 28px rgba(43,132,162,.55)}.play-btn:active:not(:disabled){transform:scale(.94)}.play-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.play-btn:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.play-btn .icon-loading,.play-btn .icon-pause,.play-btn .icon-play{position:absolute;width:28px;height:28px}.play-btn .icon-play{display:block;transform:translateX(2px)}.play-btn .icon-pause{display:none}.play-btn .icon-loading{display:none;animation:spin .8s linear infinite}[data-playing=true] .play-btn .icon-play{display:none}[data-playing=true] .play-btn .icon-pause{display:block}[data-buffering=true] .play-btn .icon-play{display:none}[data-buffering=true] .play-btn .icon-pause{display:none}[data-buffering=true] .play-btn .icon-loading{display:block}@keyframes spin{to{transform:rotate(360deg)}}.volume-row{display:flex;align-items:center;gap:.75rem;width:100%}.icon-btn{width:36px;height:36px;border-radius:8px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color var(--transition),background var(--transition)}.icon-btn:hover{color:var(--accent);background:var(--accent-light)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn .icon{width:20px;height:20px}.icon-btn .icon-vol-high{display:block}.icon-btn .icon-vol-low{display:none}.icon-btn .icon-vol-mute{display:none}[data-muted=true] .icon-btn .icon-vol-high{display:none}[data-muted=true] .icon-btn .icon-vol-mute{display:block}[data-vol-low=true] .icon-btn .icon-vol-high{display:none}[data-vol-low=true] .icon-btn .icon-vol-low{display:block}.volume-slider-wrap{flex:1}.volume-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--vol,80%),var(--border) var(--vol,80%));outline:0;transition:background var(--transition)}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer;transition:transform .1s}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer}.volume-pct{font-size:.75rem;color:var(--text-secondary);min-width:2.5rem;text-align:right;font-variant-numeric:tabular-nums}.stream-status-row{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--status-buf);flex-shrink:0;transition:background .4s}[data-stream-online=true] .status-dot{background:var(--status-live);animation:dot-blink 2s ease infinite}[data-stream-online=false] .status-dot{background:var(--status-off);animation:none}@keyframes dot-blink{0%,100%{opacity:1}50%{opacity:.4}}.stream-meta{font-size:.775rem;color:var(--text-secondary);min-height:1rem}.app-footer{padding:1rem;text-align:center;font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border);flex-shrink:0}.app-footer a:hover{color:var(--accent)}.overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.overlay[hidden]{display:none}.overlay-card{background:var(--bg-card);border-radius:var(--radius-card);padding:2.5rem 2rem;max-width:340px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.overlay-icon{width:56px;height:56px;color:var(--text-secondary)}.overlay-icon svg{width:100%;height:100%}.overlay-card h2{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.overlay-card p{font-size:.875rem;color:var(--text-secondary);line-height:1.6}.retry-btn{margin-top:.5rem;padding:.625rem 1.75rem;background:var(--accent);color:#fff;border-radius:10px;font-size:.875rem;font-weight:600;font-family:inherit;transition:background var(--transition),transform .1s}.retry-btn:hover{background:var(--accent-hover)}.retry-btn:active{transform:scale(.97)}.retry-btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.header-actions{display:flex;align-items:center;gap:.25rem}#install-btn,#theme-toggle{color:rgba(255,255,255,.75)}#install-btn:hover,#theme-toggle:hover{color:#fff;background:rgba(255,255,255,.1)}.install-btn-labeled{width:auto;padding:0 .75rem 0 .5rem;gap:.35rem}.install-btn-text{font-size:.8rem;font-weight:600}#theme-toggle .icon-moon{display:block}#theme-toggle .icon-sun{display:none}[data-theme=dark] #theme-toggle .icon-moon{display:none}[data-theme=dark] #theme-toggle .icon-sun{display:block}@media (max-width:480px){.station-card{padding:2rem 1.25rem 1.75rem;border-radius:16px;max-width:100%}.play-btn{width:68px;height:68px}.play-btn .icon-loading,.play-btn .icon-pause,.play-btn .icon-play{width:26px;height:26px}}@media (min-height:700px){.station-art-wrapper{width:180px;height:180px}.station-art{width:180px;height:180px}.station-logo{width:112px;height:112px}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;transition-duration:0s!important}}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}