:root {
    --app-bg: #070b14;
    --app-surface: rgba(18, 25, 40, .82);
    --app-surface-2: #121a2b;
    --app-border: rgba(255,255,255,.09);
    --app-primary: #7c5cff;
    --app-primary-2: #20d6c7;
    --app-muted: #9aa6b8;
    --bottom-nav-height: 76px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 0%, rgba(124,92,255,.18), transparent 28%),
        radial-gradient(circle at 90% 15%, rgba(32,214,199,.12), transparent 24%),
        var(--app-bg);
    color: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    padding-bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));
}
a { color: #b7a8ff; }
.app-main { min-height: 70vh; }
.desktop-header { background: rgba(7,11,20,.78); backdrop-filter: blur(18px); border-bottom: 1px solid var(--app-border); }
.brand-mark { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 14px; background: linear-gradient(135deg,var(--app-primary),var(--app-primary-2)); box-shadow: 0 10px 35px rgba(124,92,255,.3); }
.eyebrow { color: #a9b5c9; font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.text-gradient { background: linear-gradient(90deg,#fff,#a998ff 48%,#68e8de); -webkit-background-clip: text; color: transparent; }
.btn-primary { --bs-btn-bg: var(--app-primary); --bs-btn-border-color: var(--app-primary); --bs-btn-hover-bg: #6949f4; --bs-btn-hover-border-color: #6949f4; box-shadow: 0 10px 30px rgba(124,92,255,.25); }
.btn-soft { background: rgba(255,255,255,.07); color:#fff; border:1px solid var(--app-border); }
.btn-soft:hover { background: rgba(255,255,255,.12); color:#fff; }
.glass-card { background: linear-gradient(180deg, rgba(23,31,49,.92), rgba(13,19,31,.9)); border: 1px solid var(--app-border); border-radius: 22px; box-shadow: 0 18px 60px rgba(0,0,0,.2); }
.hero-section { overflow:hidden; }
.hero-section h1 { line-height: 1.03; }
.hero-device-card { max-width: 390px; margin-inline:auto; padding:18px; border-radius:34px; background: linear-gradient(180deg,#17213a,#0c1220); border:1px solid rgba(255,255,255,.13); box-shadow:0 35px 90px rgba(0,0,0,.42); transform: rotate(1.8deg); }
.device-topbar { display:flex; gap:5px; justify-content:center; margin-bottom:14px; }
.device-topbar span { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.24); }
.device-search { display:flex; gap:9px; align-items:center; background:rgba(255,255,255,.06); color:#8f9aae; border-radius:14px; padding:12px 14px; font-size:.85rem; }
.now-live-card { margin-top:14px; min-height:255px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:24px; background:radial-gradient(circle at 50% 20%,rgba(124,92,255,.6),transparent 38%), linear-gradient(145deg,#1f2a49,#11182a); position:relative; overflow:hidden; }
.live-pill { display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:800; letter-spacing:.08em; color:#ff8e9e; }
.live-pill span { width:7px; height:7px; border-radius:50%; background:#ff4d67; box-shadow:0 0 0 5px rgba(255,77,103,.13); }
.station-orb { width:90px; height:90px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.12); margin:22px 0 12px; font-size:2rem; }
.now-live-card small { color:#9da8bc; margin-top:3px; }
.now-live-card .btn { width:48px; height:48px; margin-top:18px; }
.device-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:14px; }
.device-row div { display:flex; flex-direction:column; gap:6px; align-items:center; padding:12px 4px; background:rgba(255,255,255,.04); border-radius:14px; font-size:.68rem; color:#9ca8bb; }
.device-row i { color:#fff; font-size:1.1rem; }
.category-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.category-card { min-height:110px; display:flex; flex-direction:column; justify-content:space-between; padding:18px; color:#fff; text-decoration:none; border-radius:20px; border:1px solid var(--app-border); background:linear-gradient(145deg,rgba(124,92,255,.14),rgba(255,255,255,.025)); transition:.2s ease; }
.category-card:hover { transform:translateY(-3px); border-color:rgba(124,92,255,.5); color:#fff; }
.category-card i { font-size:1.45rem; }
.category-card span { font-weight:700; }
.station-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.station-card { overflow:hidden; transition:.2s ease; }
.station-card:hover { transform:translateY(-4px); border-color:rgba(124,92,255,.4); }
.station-art { aspect-ratio:1/1; display:block; position:relative; overflow:hidden; background:linear-gradient(145deg,#1b2743,#101727); }
.station-art img { width:100%; height:100%; object-fit:cover; }
.station-placeholder { width:100%; height:100%; display:grid; place-items:center; font-size:3rem; color:#8e7aff; }
.verified-badge { position:absolute; top:12px; right:12px; color:#5ccfff; font-size:1.15rem; filter:drop-shadow(0 2px 8px rgba(0,0,0,.6)); }
.station-card-body { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px; }
.min-w-0 { min-width:0; }
.station-play { flex:0 0 auto; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; border:0; background:#fff; color:#111; font-size:1.15rem; }
.directory-hero { background:linear-gradient(180deg,rgba(124,92,255,.12),transparent); }
.search-shell { max-width:720px; position:relative; }
.search-shell i { position:absolute; left:18px; top:50%; transform:translateY(-50%); color:#8f9aaf; }
.search-shell .form-control { padding:16px 18px 16px 48px; border-radius:18px; background:rgba(255,255,255,.06); border:1px solid var(--app-border); color:#fff; }
.search-shell .form-control::placeholder { color:#7f8b9f; }
.player-shell { overflow:hidden; }
.player-shell video { aspect-ratio:16/9; background:#000; display:block; }
.audio-visual { min-height:430px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 30%,rgba(124,92,255,.45),transparent 32%),linear-gradient(145deg,#1a2644,#0c1220); }
.audio-logo { width:150px; height:150px; border-radius:36px; display:grid; place-items:center; overflow:hidden; background:rgba(255,255,255,.09); font-size:3.6rem; box-shadow:0 30px 65px rgba(0,0,0,.35); }
.audio-logo img { width:100%; height:100%; object-fit:cover; }
.wave-bars { display:flex; align-items:center; gap:5px; height:60px; margin-top:32px; }
.wave-bars span { width:4px; height:18px; border-radius:8px; background:linear-gradient(var(--app-primary-2),var(--app-primary)); animation:wave 1.1s ease-in-out infinite alternate; }
.wave-bars span:nth-child(2n){animation-delay:.15s}.wave-bars span:nth-child(3n){animation-delay:.3s}.wave-bars span:nth-child(4n){animation-delay:.45s}
@keyframes wave { to { height:54px; } }
.main-play-btn { width:62px; height:62px; font-size:1.7rem; }
.station-details div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-top:1px solid var(--app-border); }
.station-details dt { color:#8995a9; font-weight:500; }
.station-details dd { margin:0; font-weight:600; text-align:right; }
.verified-text { color:#65d2ff; font-size:.85rem; }
.auth-card { max-width:520px; }
.form-control,.form-select,.modal-content { background-color:#101827; border-color:var(--app-border); color:#fff; }
.form-control:focus,.form-select:focus { background-color:#101827; color:#fff; border-color:var(--app-primary); box-shadow:0 0 0 .25rem rgba(124,92,255,.18); }
.form-text { color:#7f8b9e; }
.stat-card { padding:20px; display:grid; gap:4px; }
.stat-card i { color:#8d79ff; font-size:1.4rem; }
.stat-card strong { font-size:1.8rem; }
.stat-card span { color:#8e9aae; }
.empty-icon { width:78px; height:78px; margin:auto; display:grid; place-items:center; border-radius:24px; background:rgba(124,92,255,.12); color:#9b88ff; font-size:2rem; }
.mini-player { position:fixed; left:50%; transform:translateX(-50%); bottom:calc(var(--bottom-nav-height) + 12px + env(safe-area-inset-bottom)); width:min(650px,calc(100% - 24px)); z-index:1035; display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:18px; background:rgba(17,24,39,.96); border:1px solid var(--app-border); backdrop-filter:blur(18px); box-shadow:0 14px 50px rgba(0,0,0,.45); }
.mini-player-art { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,var(--app-primary),var(--app-primary-2)); }
.mini-player-meta { flex:1; }
.mini-play-btn { width:42px; height:42px; }
.mobile-bottom-nav { position:fixed; left:0; right:0; bottom:0; z-index:1040; height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom)); padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:rgba(8,12,21,.94); border-top:1px solid var(--app-border); backdrop-filter:blur(18px); display:grid; grid-template-columns:repeat(5,1fr); }
.mobile-bottom-nav a { color:#758198; text-decoration:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; font-size:.67rem; }
.mobile-bottom-nav a i { font-size:1.18rem; }
.mobile-bottom-nav a.active { color:#fff; }
.toast { background:#182136; color:#fff; }
@media (min-width:992px){body{padding-bottom:0}.mini-player{bottom:24px}.hero-section{padding-top:20px}.mobile-bottom-nav{display:none!important}}
@media (max-width:991.98px){.category-grid{grid-template-columns:repeat(3,1fr)}.station-grid{grid-template-columns:repeat(3,1fr)}.hero-device-card{margin-top:10px}.audio-visual{min-height:350px}}
@media (max-width:575.98px){.hero-section h1{font-size:2.55rem}.hero-section .lead{font-size:1rem}.hero-device-card{border-radius:26px;padding:14px}.category-grid{grid-template-columns:repeat(2,1fr)}.category-card{min-height:94px}.station-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.station-card-body{padding:11px}.station-play{width:38px;height:38px}.audio-visual{min-height:300px}.audio-logo{width:120px;height:120px;border-radius:28px}.player-info{align-items:flex-start!important}.main-play-btn{width:56px;height:56px}.display-5{font-size:2.25rem}}

/* v1.1.0 — ads, sharing, install experience, featured ordering and premium navigation */
.app-footer { background:rgba(7,11,20,.72); margin-top:24px; }
.app-footer a,.app-footer .btn-link { color:#aeb9ca; text-decoration:none; }
.app-footer a:hover,.app-footer .btn-link:hover { color:#fff; }
.ad-global { padding-top:14px; }
.mgid-ad-slot { min-height:90px; margin:10px 0 18px; padding:10px; border-radius:18px; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.055); overflow:hidden; }
.ad-label { display:block; margin-bottom:6px; color:#667289; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; text-align:center; }
.featured-badge { position:absolute; left:10px; top:10px; z-index:2; display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:999px; color:#2a2100; background:rgba(255,215,80,.94); font-size:.64rem; font-weight:800; box-shadow:0 8px 24px rgba(0,0,0,.28); }
.featured-inline { color:#ffd85a; font-size:.74rem; font-weight:700; }
.directory-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; color:#fff; }
.share-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.share-label { color:#8793a7; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-right:3px; }
.share-btn { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--app-border); border-radius:12px; background:rgba(255,255,255,.055); color:#fff; text-decoration:none; transition:.18s ease; }
.share-btn:hover { transform:translateY(-2px); color:#fff; background:rgba(255,255,255,.11); }
.share-btn.whatsapp:hover { background:#1fae5b; border-color:#1fae5b; }
.share-btn.facebook:hover { background:#1877f2; border-color:#1877f2; }
.share-btn.telegram:hover { background:#229ed9; border-color:#229ed9; }
.share-btn.x-twitter:hover { background:#000; border-color:#333; }
.install-feature { display:flex; align-items:center; gap:18px; padding:22px; }
.install-feature-icon { width:66px; height:66px; flex:0 0 auto; display:grid; place-items:center; border-radius:20px; background:linear-gradient(135deg,var(--app-primary),var(--app-primary-2)); font-size:1.8rem; }
.background-play-card { display:flex; align-items:center; gap:14px; padding:16px; }
.background-play-card>i { width:48px; height:48px; display:grid; place-items:center; flex:0 0 auto; border-radius:16px; background:rgba(124,92,255,.14); color:#a996ff; font-size:1.4rem; }
.background-play-card p { color:#8f9aae; font-size:.86rem; }
.external-player-callout { background:radial-gradient(circle at 50% 30%,rgba(124,92,255,.36),transparent 38%),linear-gradient(145deg,#17233c,#0b111e); }
.external-player-callout>div { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:28px; }
.external-player-callout i { font-size:2.5rem; color:#a38fff; margin-bottom:12px; }
.install-nudge { position:fixed; right:18px; bottom:24px; z-index:1055; width:min(430px,calc(100% - 28px)); display:flex; align-items:center; gap:12px; padding:12px; border-radius:18px; background:rgba(17,24,39,.97); border:1px solid var(--app-border); box-shadow:0 18px 60px rgba(0,0,0,.5); backdrop-filter:blur(18px); }
.install-nudge-icon { width:46px; height:46px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,var(--app-primary),var(--app-primary-2)); }
.install-nudge>div:nth-child(2) { min-width:0; flex:1; }
.install-nudge small { display:block; color:#8d99ac; line-height:1.25; }
.install-nudge .btn-close { flex:0 0 auto; }
.cookie-consent { position:fixed; left:18px; right:18px; bottom:18px; z-index:1060; max-width:920px; margin:auto; padding:16px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-radius:18px; background:rgba(16,24,39,.98); border:1px solid var(--app-border); box-shadow:0 20px 70px rgba(0,0,0,.52); }
.cookie-consent p { color:#8f9aad; font-size:.84rem; }
.ios-install-steps { display:flex; align-items:center; justify-content:center; gap:12px; padding:16px; border-radius:16px; background:rgba(255,255,255,.05); }
.ios-install-steps span { display:flex; align-items:center; gap:7px; }
.settings-panel { padding:20px; border-radius:18px; background:rgba(255,255,255,.035); border:1px solid var(--app-border); }
.order-input { width:72px; }
.policy-content { color:#c6cfdd; line-height:1.75; }
.policy-content h2 { color:#fff; }
.premium-accordion .accordion-item { background:transparent; border-color:var(--app-border); }
.premium-accordion .accordion-button { background:rgba(255,255,255,.035); color:#fff; box-shadow:none; }
.premium-accordion .accordion-button:not(.collapsed) { background:rgba(124,92,255,.11); color:#fff; }
.premium-accordion .accordion-body { color:#9ba7b9; background:rgba(255,255,255,.02); }
.breadcrumb a { color:#9e8cff; text-decoration:none; }
.mini-player-art { color:#fff; text-decoration:none; overflow:hidden; }
.mini-player-art img { width:100%; height:100%; object-fit:cover; }
.mobile-bottom-nav button { color:#758198; border:0; background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; font-size:.67rem; }
.mobile-bottom-nav button i { font-size:1.18rem; }
.app-loading #appMain { opacity:.5; pointer-events:none; }
#appMain { transition:opacity .18s ease; }

@media (max-width:991.98px){
  .install-nudge { bottom:calc(var(--bottom-nav-height) + 88px + env(safe-area-inset-bottom)); left:14px; right:14px; width:auto; }
  .cookie-consent { bottom:calc(var(--bottom-nav-height) + 12px + env(safe-area-inset-bottom)); flex-direction:column; align-items:stretch; }
  .cookie-consent .d-flex { justify-content:flex-end; }
  .install-feature { align-items:flex-start; flex-wrap:wrap; }
  .background-play-card { align-items:flex-start; flex-wrap:wrap; }
}
@media (max-width:575.98px){
  .share-label { width:100%; }
  .share-btn { width:40px; height:40px; }
  .install-feature-icon { width:54px; height:54px; border-radius:17px; }
  .directory-toolbar { align-items:flex-start; flex-direction:column; }
  .external-player-callout>div { padding:18px; }
}

/* v1.2.0 — instant station catalogue management */
#stationCatalogue { transition: opacity .18s ease, transform .18s ease; }
#stationCatalogue.catalogue-refreshing { opacity:.55; transform:translateY(2px); pointer-events:none; }
.station-auto-form .auto-save-state { width:22px; flex:0 0 22px; display:grid; place-items:center; }
.station-auto-form .spinner-border { width:.9rem; height:.9rem; }
.delete-warning-icon { width:58px; height:58px; display:grid; place-items:center; margin-bottom:16px; border-radius:18px; background:rgba(220,53,69,.12); color:#ff7180; font-size:1.45rem; }
@media (max-width:575.98px){.station-auto-form{min-width:205px}.order-input{width:68px}}

/* v1.3.0 — Stream254 branding and station cover management */
.site-brand { display:flex; align-items:center; padding:0; margin:0; }
.site-brand img { display:block; width:auto; height:58px; object-fit:contain; }
.footer-brand { display:flex; align-items:center; gap:12px; }
.footer-brand img { width:58px; height:58px; object-fit:contain; border-radius:14px; }
.install-nudge-icon { overflow:hidden; background:#050705; }
.install-nudge-icon img { width:100%; height:100%; object-fit:cover; }
.station-art { aspect-ratio:16/10; }
.admin-station-thumb { width:58px; height:42px; flex:0 0 auto; border-radius:10px; object-fit:cover; background:#070b14; border:1px solid var(--app-border); }
.station-cover-editor { display:grid; grid-template-columns:minmax(210px, .8fr) minmax(0, 1.6fr); gap:18px; padding:16px; border-radius:18px; background:rgba(255,255,255,.035); border:1px solid var(--app-border); }
.station-cover-preview { aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:#070b14; border:1px solid var(--app-border); align-self:start; }
.station-cover-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.station-cover-fields { display:grid; align-content:start; gap:14px; }
.station-cover-fields input[type="file"]::file-selector-button { background:rgba(255,255,255,.08); color:#fff; border:0; border-right:1px solid var(--app-border); margin-right:12px; }
.audio-visual { position:relative; isolation:isolate; overflow:hidden; }
.audio-cover-backdrop { position:absolute; inset:-25px; z-index:-2; background-image:linear-gradient(rgba(7,11,20,.48),rgba(7,11,20,.82)),var(--station-cover); background-size:cover; background-position:center; filter:blur(18px) saturate(.85); transform:scale(1.08); opacity:.72; }
.audio-visual::after { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 50% 30%,rgba(124,92,255,.25),transparent 38%),linear-gradient(180deg,rgba(7,11,20,.12),rgba(7,11,20,.48)); }

@media (max-width:767.98px){
  .station-cover-editor { grid-template-columns:1fr; }
  .station-cover-preview { max-height:240px; }
}
@media (max-width:575.98px){
  .site-brand img { height:52px; }
  .footer-brand img { width:52px; height:52px; }
}

/* v1.3.0 — Stream254 analytics dashboard and code settings */
.analytics-dashboard { overflow:hidden; }
.analytics-kpi { height:100%; min-height:118px; display:flex; flex-direction:column; justify-content:center; padding:18px; border-radius:18px; background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018)); border:1px solid rgba(255,255,255,.07); }
.analytics-kpi i { width:34px; height:34px; display:grid; place-items:center; margin-bottom:10px; border-radius:11px; color:#b9adff; background:rgba(124,92,255,.14); }
.analytics-kpi strong { font-size:1.65rem; line-height:1; }
.analytics-kpi span { margin-top:7px; color:#8e9aae; font-size:.78rem; }
.analytics-chart-wrap,.analytics-list { padding:18px; border-radius:20px; border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.025); }
.analytics-bars { height:210px; display:flex; align-items:stretch; gap:5px; overflow-x:auto; padding:8px 2px 0; scrollbar-width:thin; }
.analytics-day { min-width:22px; flex:1 0 22px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:6px; }
.analytics-day-columns { width:100%; height:174px; display:flex; align-items:flex-end; justify-content:center; gap:2px; }
.analytics-day .bar { width:42%; min-height:2px; border-radius:5px 5px 2px 2px; transition:.2s ease; }
.analytics-day .bar.views { background:linear-gradient(180deg,#9d8cff,#6f55ff); }
.analytics-day .bar.plays { background:linear-gradient(180deg,#58df9c,#19a965); }
.analytics-day:hover .bar { filter:brightness(1.18); }
.analytics-day small { color:#68748a; font-size:.58rem; }
.analytics-legend { display:flex; gap:12px; color:#8e9aae; font-size:.72rem; }
.analytics-legend span { display:flex; align-items:center; gap:5px; }
.analytics-legend i { width:8px; height:8px; border-radius:50%; }
.analytics-legend i.views { background:#826dff; }
.analytics-legend i.plays { background:#27bf79; }
.analytics-list h3 { margin-bottom:13px; }
.analytics-list-row { min-height:52px; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 0; border-top:1px solid rgba(255,255,255,.06); }
.analytics-list-row:first-of-type { border-top:0; }
.analytics-list-row .rank { width:26px; height:26px; display:grid; place-items:center; border-radius:9px; background:rgba(124,92,255,.14); color:#b7aaff; font-size:.72rem; font-weight:800; }
.analytics-list-row b,.analytics-source b { color:#fff; font-size:.82rem; }
.analytics-source { display:flex; justify-content:space-between; gap:12px; padding:6px 0; color:#a0acbe; font-size:.78rem; }
.code-textarea { min-height:170px; font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace; font-size:.78rem; line-height:1.55; tab-size:2; }
@media (max-width:575.98px) {
    .analytics-kpi { min-height:102px; padding:14px; }
    .analytics-kpi strong { font-size:1.4rem; }
    .analytics-chart-wrap,.analytics-list { padding:14px; }
    .analytics-bars { height:180px; }
    .analytics-day-columns { height:145px; }
}
