:root{--font-main: "IBM Plex Sans", "Noto Sans", sans-serif;--bg-main: linear-gradient(145deg, #102a43 0%, #0b1f33 60%, #081623 100%);--bg-card: rgba(10, 26, 42, .8);--bg-input: rgba(16, 42, 67, .65);--text-main: #f0f4f8;--text-soft: #bcccdc;--border-main: rgba(240, 244, 248, .18);--accent: #38b2ac;--accent-2: #f9a825;--danger: #ff6b6b}body[data-theme=sunset]{--bg-main: linear-gradient(145deg, #4a1820 0%, #2c0f18 60%, #1d0a12 100%);--bg-card: rgba(60, 18, 25, .82);--bg-input: rgba(97, 30, 43, .62);--accent: #ff8a5b;--accent-2: #ffd166}body[data-theme=graphite]{--bg-main: linear-gradient(145deg, #242a33 0%, #1a2028 60%, #12171e 100%);--bg-card: rgba(26, 32, 40, .84);--bg-input: rgba(45, 53, 63, .68);--accent: #7fb3ff;--accent-2: #95d5b2}:root,body{font-family:var(--font-main);color:var(--text-main);background:var(--bg-main)}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}.app{max-width:980px;margin:0 auto;padding:22px 16px 36px}.hero{margin-bottom:14px}.hero h1{margin:0}.hero p{margin:8px 0 0;color:var(--text-soft)}.panel,.mini-player,.settings-modal{background:var(--bg-card);border:1px solid var(--border-main);border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 12px 38px #0000003d}.panel{padding:16px}.topbar{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:12px}.search-wrap{position:relative}.suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;display:grid;gap:4px;padding:8px;border-radius:12px;border:1px solid var(--border-main);background:#0b1f33f5}.suggestion{display:flex;justify-content:space-between;width:100%}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.recommendations{margin:4px 0 10px;border:1px solid rgba(127,179,255,.28);border-radius:12px;padding:10px;background:#7fb3ff14}.recommendations-head{display:grid;gap:3px;margin-bottom:8px}.recommendations-head small{color:var(--text-soft)}.recommendation-list{display:flex;flex-wrap:wrap;gap:6px}.recommendation-item{font-size:13px}input,button,select{border-radius:10px;border:1px solid rgba(240,244,248,.25);padding:10px 12px;background:var(--bg-input);color:var(--text-main)}button{cursor:pointer;transition:transform .16s ease,border-color .2s ease,background .2s ease}button:hover{transform:translateY(-1px);border-color:#f0f4f87a}button.active{border-color:#38b2acbf;background:#38b2ac40}button:disabled{opacity:.52;transform:none;cursor:not-allowed}.station-list{display:grid;gap:8px;max-height:420px;overflow:auto;padding-right:2px}.station{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px;border-radius:10px;border:1px solid rgba(240,244,248,.14);background:#243b538c}.station.active{border-color:#38b2acb3;background:#38b2ac2e}.favorite-btn{min-width:42px;font-size:19px;line-height:1}.favorite-btn.active{color:#ff8fab;border-color:#ff8fabcc;background:#ff8fab24}.meta{font-size:12px;color:var(--text-soft)}.player{margin-top:12px;border-top:1px solid rgba(240,244,248,.14);padding-top:10px;display:grid;gap:8px}.player-row{display:grid;grid-template-columns:auto auto auto 1fr;gap:8px;align-items:center}.compact-only{max-width:560px}.mini-player{padding:14px;display:grid;gap:10px}.mini-title{display:grid;gap:4px}.mini-title small{color:var(--text-soft)}.mini-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:60}.settings-modal{width:min(740px,100%);max-height:88vh;overflow:auto;padding:14px;display:grid;gap:14px}.settings-head{display:flex;justify-content:space-between;align-items:center}.settings-group{display:grid;gap:8px}.settings-group h3{margin:0}.theme-row,.language-buttons{display:flex;flex-wrap:wrap;gap:6px}.genre-grid{display:grid;gap:8px}.genre-item{display:flex;gap:6px}.danger{border-color:#ff6b6b99;color:#ffd5d5}.genre-add-row{display:grid;grid-template-columns:1fr auto;gap:8px}@media(max-width:700px){.topbar{grid-template-columns:1fr}.actions{display:grid;grid-template-columns:1fr 1fr}.player-row{grid-template-columns:1fr 1fr}}
