.apple-music-login{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;max-width:400px;margin:0 auto}@media(min-width:768px){.apple-music-login{max-width:600px}}.login-logo{max-width:300px;width:100%;height:auto;margin-bottom:30px}@media(min-width:768px){.login-logo{max-width:500px}}.login-description{color:#aaa;margin-bottom:30px;line-height:1.5}.apple-music-button{background:linear-gradient(135deg,#fc3c44,#e91e63);color:#fff;border:none;padding:16px 40px;border-radius:30px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #fc3c4466}.apple-music-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #fc3c4480}.apple-music-button:disabled{opacity:.7;cursor:not-allowed}.login-error{color:#f44;margin-top:20px;font-size:14px}.login-note{color:#666;font-size:12px;margin-top:30px;line-height:1.5}.auth-gate-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background-color:#000;color:#0f0}.auth-gate-loading p{margin-top:20px;font-size:14px}.loading-spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#0f0;border-radius:50%;animation:spin 1s linear infinite}.auth-gate-login{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#000}.scrolling-text-container{overflow:hidden;white-space:nowrap;position:relative}.scrolling-text{display:inline-block;white-space:nowrap}.scrolling-text.animate{animation:scroll-text-marquee var(--scroll-duration, 10s) linear infinite}@keyframes scroll-text-marquee{0%,30%{transform:translate(0)}97%{transform:translate(-110%)}97.1%,to{transform:translate(0)}}.lcd-display{background:#111;border-radius:8px;padding:4px;box-shadow:inset 0 2px 10px #000c}.lcd-screen{background:#1a1a1a;border-radius:6px;padding:16px 20px;font-family:Courier New,monospace;color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.6);min-height:120px;display:flex;flex-direction:column;justify-content:space-between}.lcd-station{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:#0c0;margin-bottom:8px}.lcd-main{flex:1;display:flex;flex-direction:column;justify-content:center}.lcd-line1{font-size:22px;font-weight:700;margin-bottom:4px}.lcd-line2{font-size:16px;color:#0c0}.lcd-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;color:#090}.lcd-time{font-variant-numeric:tabular-nums}.lcd-show{text-transform:uppercase;letter-spacing:1px}.station-dial{padding:16px 0}.preset-carousel{overflow:hidden;position:relative;touch-action:pan-y;-webkit-user-select:none;user-select:none}.preset-track{display:flex;transition:transform .3s ease}.preset-page{min-width:100%;flex-shrink:0;position:relative;overflow:hidden}.preset-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;transition:opacity .2s ease}.preset-page.editing .preset-buttons{opacity:.4}.preset-button{background:linear-gradient(180deg,#444,#222);border:2px solid #555;border-radius:8px;padding:10px 8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;touch-action:manipulation}.preset-button:hover:not(:disabled){background:linear-gradient(180deg,#555,#333);border-color:#666}.preset-button.active{background:linear-gradient(180deg,#060,#030);border-color:#0f0;box-shadow:0 0 10px #00ff004d}.preset-button:disabled{opacity:.5;cursor:not-allowed}.preset-button.empty .preset-station-id{color:#666}.preset-station-id{font-size:14px;font-weight:700;font-family:Courier New,monospace;color:#0f0;text-shadow:0 0 5px rgba(0,255,0,.5);line-height:1}.saved-indicator{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;border-radius:6px;font-size:12px;font-weight:700;font-family:Courier New,monospace;color:#0f0;animation:saved-fade 1s ease-out forwards}.clearing-indicator{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;border-radius:6px;font-size:12px;font-weight:700;font-family:Courier New,monospace;color:#f44;animation:saved-fade 1s ease-out forwards}@keyframes saved-fade{0%{opacity:1}70%{opacity:1}to{opacity:0}}.edit-remove-button{position:absolute;top:2px;right:2px;z-index:2;width:36px;height:36px;border-radius:50%;background:linear-gradient(180deg,#444,#222);border:1px solid #555;color:#f44;font-size:18px;font-family:Courier New,monospace;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .2s ease}.edit-remove-button:hover{background:linear-gradient(180deg,#555,#333);border-color:#f44;box-shadow:0 0 6px #ff44444d}.add-page{display:flex;align-items:center;justify-content:center;min-height:88px}.add-page-button{width:56px;height:56px;border-radius:50%;background:linear-gradient(180deg,#444,#222);border:1px solid #555;color:#0f0;font-size:28px;font-family:Courier New,monospace;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .2s ease}.add-page-button:hover{background:linear-gradient(180deg,#555,#333);border-color:#0f0;box-shadow:0 0 10px #00ff004d}.preset-pagination{display:flex;align-items:center;justify-content:center;padding:8px 0 0}.preset-dots{display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.preset-dot{width:8px;height:8px;border-radius:50%;border:1px solid #555;background:#333;cursor:pointer;padding:0;transition:all .2s ease}.preset-dot.active{background:#0f0;border-color:#0f0;box-shadow:0 0 6px #0f06}.preset-dot:hover:not(.active){background:#555;border-color:#888}.like-button{position:absolute;top:12px;right:12px;width:44px;height:44px;border:none;border-radius:50%;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff;z-index:10}.like-button:hover{background:#000c;transform:scale(1.05)}.like-button:active{transform:scale(.95)}.like-button.liked{color:#0f0}.like-button.liked:hover{color:#0d0}.like-button.loading{opacity:.6;cursor:not-allowed}.like-button:disabled{cursor:not-allowed}.like-button svg{width:20px;height:20px;transition:all .2s ease}.now-playing{display:flex;justify-content:center;padding:20px 0}.artwork-container{position:relative;width:100%;max-width:100%}.artwork{width:100%;max-width:100%;aspect-ratio:1;border-radius:12px;box-shadow:0 8px 30px #00000080;object-fit:cover}.artwork-placeholder{width:100%;max-width:100%;aspect-ratio:1;border-radius:12px;background:linear-gradient(135deg,#2a2a2a,#1a1a1a);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 30px #00000080}.artwork-placeholder span{font-size:64px}.artwork-placeholder-logo{width:100%;max-width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover;box-shadow:0 8px 30px #00000080}.artwork-placeholder.commercial{background:linear-gradient(135deg,#3a3a00,#1a1a00)}.commercial-label{margin-top:10px;font-size:12px;color:#fc0;letter-spacing:2px;text-transform:uppercase}.radio-player{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.radio-body{background:linear-gradient(180deg,#2a2a2a,#1a1a1a);border-radius:20px;padding:60px 24px 24px;max-width:420px;width:100%;box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff1a;border:1px solid #333;position:relative}.power-button{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:linear-gradient(180deg,#444,#222);border:2px solid #555;color:#0f0;font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.power-button:hover{background:linear-gradient(180deg,#555,#333);box-shadow:0 0 10px #00ff004d}.playback-controls{display:flex;justify-content:center;padding:16px}.radio-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:#0f0;font-family:Courier New,monospace}.radio-error{background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:8px;padding:12px;margin-top:16px;color:#f44;font-size:14px;text-align:center}.tap-to-play-overlay{position:absolute;inset:0;background:#000000d9;border-radius:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;transition:background .2s ease}.tap-to-play-overlay:hover{background:#000000bf}.tap-to-play-content{text-align:center;color:#0f0}.tap-to-play-icon{font-size:64px;margin-bottom:16px;text-shadow:0 0 20px rgba(0,255,0,.5)}.tap-to-play-text{font-family:Courier New,monospace;font-size:18px;text-transform:uppercase;letter-spacing:2px}.artwork-container{position:relative}.paused-overlay{position:absolute;inset:0;background:#000000b3;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:50;transition:background .2s ease}.paused-overlay:hover{background:#0009}.paused-content{text-align:center}.paused-icon{font-size:80px;color:#0f0;text-shadow:0 0 30px rgba(0,255,0,.6);transition:transform .2s ease}.paused-overlay:hover .paused-icon{transform:scale(1.1)}.seek-buttons{display:flex;justify-content:center;gap:24px;padding:12px 0}.seek-button{background:linear-gradient(180deg,#444,#222);border:2px solid #555;border-radius:50%;width:44px;height:44px;color:#0f0;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-shadow:0 0 5px rgba(0,255,0,.5)}.seek-button:hover:not(:disabled){background:linear-gradient(180deg,#555,#333);border-color:#0f0;box-shadow:0 0 10px #00ff004d}.seek-button:disabled{opacity:.3;cursor:not-allowed}.logout-button{display:block;margin:16px auto 0;padding:8px 16px;background:transparent;border:1px solid #444;border-radius:4px;color:#888;font-family:Courier New,monospace;font-size:12px;cursor:pointer;transition:all .2s ease}.logout-button:hover{border-color:#0f0;color:#0f0}.volume-control{display:flex;align-items:center;gap:12px;padding:16px}.volume-icon{font-size:20px;width:24px;text-align:center}.volume-slider{flex:1;height:8px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#00ff00 0%,#00ff00 var(--volume-percent, 70%),#333 var(--volume-percent, 70%),#333 100%);border-radius:4px;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:linear-gradient(180deg,#666,#444);border:2px solid #00ff00;border-radius:50%;cursor:pointer;box-shadow:0 2px 5px #0000004d}.volume-slider::-moz-range-thumb{width:20px;height:20px;background:linear-gradient(180deg,#666,#444);border:2px solid #00ff00;border-radius:50%;cursor:pointer;box-shadow:0 2px 5px #0000004d}.volume-value{font-size:12px;color:#0f0;min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.play-pause-button{width:60px;height:60px;border-radius:50%;background:linear-gradient(180deg,#444,#222);border:3px solid #00ff00;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0006}.play-pause-button:hover:not(:disabled){background:linear-gradient(180deg,#555,#333);box-shadow:0 0 20px #00ff004d}.play-pause-button:active:not(:disabled){transform:scale(.95)}.play-pause-button:disabled{opacity:.5;cursor:not-allowed}.play-pause-button.loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 10px #00ff004d}50%{box-shadow:0 0 20px #0f09}}.play-icon,.pause-icon{font-size:24px;color:#0f0;text-shadow:0 0 10px rgba(0,255,0,.5)}.loading-indicator{font-size:24px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#1a1a2e,#0a0a0a);min-height:100vh;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root,.app{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#444;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}:focus-visible{outline:2px solid #00ff00;outline-offset:2px}button{font-family:inherit;font-size:inherit}::selection{background:#00ff004d;color:#fff}
