/* RadioAtlas v3 - Mappa protagonista. Layout originale ispirato alle interfacce map-first. */
:root {
  color-scheme: dark;
  --bg:#070f19;
  --surface:#101e2a;
  --surface-alt:#0c1824;
  --text:#f0f7fa;
  --muted:#8ca5b2;
  --teal:#61e7d1;
  --teal-strong:#9bf7e3;
  --border:rgba(137,181,197,.15);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:radial-gradient(ellipse 54% 66% at 41% 44%,rgba(16,47,66,.22),transparent 82%),#070f19;overflow-x:hidden;font-size:14px}
/* Slim, site-matched scrollbars: browser page and station list. */
html{scrollbar-width:thin;scrollbar-color:#318e9b #081622}
html::-webkit-scrollbar,body::-webkit-scrollbar{width:7px;height:7px}
html::-webkit-scrollbar-track,body::-webkit-scrollbar-track{background:#081622}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#288ca3,#49d5c5);border-radius:12px}
html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover{background:#67e7d4}
.radio-list{scrollbar-width:thin;scrollbar-color:#318e9b #0a1c29}
.radio-list::-webkit-scrollbar{width:6px}
.radio-list::-webkit-scrollbar-track{background:#0a1c29}
.radio-list::-webkit-scrollbar-thumb{background:#318e9b;border-radius:12px}
.radio-list::-webkit-scrollbar-thumb:hover{background:#58d7c6}

button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.38}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.noise{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.33;background-image:radial-gradient(rgba(196,222,230,.10) .55px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(to bottom,transparent 2%,black 25%,transparent 90%)}

/* Top bar */
.site-header{position:relative;z-index:9;height:76px;padding:0 clamp(20px,3vw,50px);max-width:1800px;margin:auto;display:flex;align-items:center;gap:clamp(20px,3vw,55px);border-bottom:1px solid rgba(129,169,188,.11)}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0;min-width:204px}
.brand-symbol{display:grid;place-items:center;width:42px;height:42px;position:relative;border:1.6px solid var(--teal);border-radius:50%;transform:rotate(-19deg);box-shadow:inset 0 0 16px rgba(73,219,198,.07)}
.brand-symbol:before,.brand-symbol:after{content:"";position:absolute;width:12px;height:100%;border-left:1px solid var(--teal);border-right:1px solid var(--teal);border-radius:50%}
.brand-symbol:after{width:100%;height:13px;border-left:0;border-right:0;border-top:1px solid var(--teal);border-bottom:1px solid var(--teal)}
.brand-symbol span{width:5px;height:5px;position:absolute;top:3px;right:5px;background:#e5fffa;border-radius:50%;box-shadow:0 0 11px var(--teal)}
.brand-text{font-size:17px;letter-spacing:.09em;font-weight:850;line-height:1.04}
.brand-text>span{color:var(--teal);font-weight:350}
.brand-text small{display:block;margin-top:6px;font-size:7px;font-weight:700;color:#8ca6b5;letter-spacing:.23em}
.top-nav{display:flex;align-items:center;gap:17px}
.view-switch{display:flex;align-items:center;gap:3px;padding:4px;background:#0d1a27;border:1px solid rgba(121,166,183,.17);border-radius:10px}
.view-button{display:flex;align-items:center;justify-content:center;gap:7px;height:34px;min-width:92px;padding:0 14px;border:0;background:transparent;color:#839dac;border-radius:7px;font-size:12px;font-weight:670;transition:background .16s,color .16s}
.view-button.is-active{background:#254a52;color:#c2fff2;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.view-button:hover{color:#e8fff7}
.view-icon{font-size:15px;line-height:1}
.nav-button,.about-link{font-size:12px;white-space:nowrap;color:#93a9b6;border:0;background:transparent;padding:10px 8px;font-weight:650}
.nav-button:hover,.about-link:hover{color:var(--teal-strong)}
.favorite-glyph{font-size:19px;vertical-align:-2px;line-height:0;margin-right:4px}
.fav-count{display:inline-block;margin-left:5px;border-radius:10px;padding:2px 6px;background:#224b47;color:#a5ffe9;font-size:10px}
.on-air-pill{display:flex;align-items:center;gap:9px;margin-left:auto;color:#89b9b8;font-size:10px;letter-spacing:.115em;font-weight:700;white-space:nowrap}
.status-led{display:inline-block;width:6px;height:6px;border-radius:50%;background:#5becb6;box-shadow:0 0 12px #5becb6}

/* Main map-first viewport */
.site-content{position:relative;z-index:1;max-width:1800px;margin:auto;padding:18px clamp(16px,2.2vw,38px) 139px}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(322px,355px);gap:15px;height:clamp(650px,calc(100vh - 182px),790px)}
.globe-column{grid-column:1;min-width:0;min-height:0;position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(115,167,194,.10);border-radius:17px;background:radial-gradient(ellipse 52% 54% at 60% 45%,#102b3d 0%,#0a1c2b 40%,#081522 67%,#07131f 100%)}
.globe-column:before{content:"";position:absolute;pointer-events:none;inset:0;background:radial-gradient(circle at 68% 46%,transparent 20%,rgba(4,13,24,.18) 75%),linear-gradient(90deg,rgba(5,13,22,.30),transparent 40%);z-index:0}
.space-stars{position:absolute;inset:0;z-index:0;opacity:.48;background-image:radial-gradient(circle at 10% 18%,rgba(220,248,249,.8) 1px,transparent 2px),radial-gradient(circle at 74% 14%,rgba(190,221,241,.75) .8px,transparent 2px),radial-gradient(circle at 29% 84%,rgba(160,218,224,.66) .7px,transparent 2px);background-size:191px 173px,259px 211px,337px 241px}
.globe-topbar{position:absolute;z-index:4;top:24px;left:29px;right:27px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.globe-caption,.globe-state{font-size:10px;letter-spacing:.12em;font-weight:780;white-space:nowrap;color:#aac4d0}
.globe-state{color:#60d9c0;font-size:9px;letter-spacing:.095em}
.orbit-ornament{font-size:13px;color:var(--teal);margin-right:8px}
.globe-art{position:absolute;inset:33px 0 44px 107px;touch-action:none;overflow:hidden;z-index:1}
.globe-art:before{content:none}
.globe-art canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#earthCanvas{z-index:1;pointer-events:none}
#markerCanvas{z-index:2;cursor:grab;touch-action:none}
#markerCanvas:active{cursor:grabbing}
.orbit{position:absolute;pointer-events:none;border:1px solid rgba(91,154,177,.105);width:91%;height:69%;top:15%;left:4.5%;border-radius:50%;transform:rotate(-23deg)}
.orbit-two{transform:rotate(47deg);width:83%;height:91%;top:5%;left:8.5%;opacity:.7}
.intro-column{position:absolute;left:30px;top:107px;width:225px;bottom:65px;z-index:3;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.intro-column button,.intro-column input,.intro-column form,.intro-column .country-shortcuts{pointer-events:auto}
.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 24px;color:#6fe5d0;font-weight:800;letter-spacing:.14em;font-size:9px;white-space:nowrap}
.eyebrow-dash{width:15px;height:1px;background:var(--teal);flex-shrink:0}
h1{margin:0;color:#f2f9fb;font-size:clamp(31px,3.1vw,43px);line-height:1.1;letter-spacing:-.045em;font-weight:750}
h1 em{font-style:normal;color:#7ef3db}
.intro-copy{color:#99b0bd;font-size:12px;line-height:1.7;margin:19px 0 25px;max-width:218px}
.global-search{width:100%;display:flex;align-items:center;height:43px;background:rgba(14,35,49,.95);border:1px solid #315061;border-radius:9px;box-shadow:0 5px 18px rgba(0,0,0,.1)}
.global-search:focus-within{border-color:#5cdbbf}
.search-icon{width:16px;height:16px;flex-shrink:0;margin:0 9px 0 11px;color:#89c6c5}
.global-search input{background:transparent;border:0;outline:0;min-width:0;width:100%;color:#eefaf6;font-size:11px;padding:0}
.global-search input::placeholder{color:#819ba9}
.global-search>button{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;margin:0 6px 0 4px;color:#061b24;border-radius:7px;background:#6de6d2;border:0}
.global-search>button svg{width:16px;height:16px}
.search-hint{font-size:9px;letter-spacing:.11em;font-weight:750;color:#718f9e;margin:22px 0 9px}
.country-shortcuts{display:flex;flex-wrap:wrap;gap:6px;max-width:235px}
.shortcut{display:flex;gap:6px;align-items:center;background:rgba(12,30,46,.72);color:#a4bfc9;border:1px solid rgba(129,175,194,.18);font-size:10px;font-weight:640;padding:7px 8px;border-radius:6px;transition:background .12s,border-color .12s,color .12s}
.shortcut:hover,.shortcut.active{color:#d5fff5;background:rgba(32,93,94,.66);border-color:rgba(78,229,198,.56)}
.shortcut-flag{font-size:12px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid rgba(128,168,185,.18);padding-top:15px}
.metric strong{font-size:22px;letter-spacing:-.04em;display:block;color:#effafc;font-weight:750;white-space:nowrap}
.metric span{display:block;font-size:9px;color:#789cac;margin-top:3px}
.map-hint{position:absolute;z-index:3;bottom:35px;left:50%;transform:translateX(-50%);white-space:nowrap;background:rgba(5,16,27,.82);color:#aac9d0;font-size:10px;letter-spacing:.015em;padding:9px 13px;border:1px solid rgba(113,168,185,.15);border-radius:28px;pointer-events:none}
.map-hint-divider{color:#65818d;margin:0 4px}
.click-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:#67f3cb;box-shadow:0 0 10px #61e9c2;margin-right:7px}
.map-tooltip{position:absolute;z-index:5;pointer-events:none;background:rgba(7,21,34,.98);border:1px solid rgba(91,215,190,.42);box-shadow:0 15px 35px rgba(0,0,0,.32);border-radius:10px;padding:10px 14px;color:#eefff8;font-size:12px;white-space:nowrap}
.map-tooltip small{display:block;color:#88b4c0;margin-top:4px}
.globe-controls{position:absolute;z-index:5;bottom:35px;left:30px;right:30px;display:flex;justify-content:flex-end;align-items:center;gap:12px}
.rotation-note{color:#8cacb8;font-size:10px;letter-spacing:.02em;margin-right:14px}
.spin-ring{display:inline-block;width:12px;height:12px;vertical-align:-2px;border:1px solid #5ad5cc;border-right-color:transparent;border-radius:50%;margin-right:7px;animation:spin 4s linear infinite}
.spin-ring.paused{animation-play-state:paused;opacity:.4}
@keyframes spin{to{transform:rotate(360deg)}}
.globe-buttons{display:flex;gap:5px}
.globe-buttons button{width:35px;height:35px;display:grid;place-items:center;padding:0;background:rgba(12,33,47,.94);border:1px solid rgba(126,177,192,.24);border-radius:8px;font-size:19px;color:#adc7ce;line-height:1;transition:background .12s,color .12s}
.globe-buttons button:hover{background:#294550;color:#8ef0db}
.map-coordinates{position:absolute;z-index:3;bottom:14px;left:29px;right:28px;display:flex;justify-content:space-between;color:#526f80;font-size:8px;letter-spacing:.2em;pointer-events:none}

/* Radio directory */
.directory-column{grid-column:2;position:relative;display:flex;min-height:0;min-width:0;flex-direction:column;overflow:hidden;border-radius:16px;background:linear-gradient(160deg,rgba(18,37,51,.96),rgba(10,24,36,.98));border:1px solid rgba(126,174,193,.20);box-shadow:0 12px 38px rgba(0,0,0,.13)}
.directory-header{padding:25px 22px 19px;border-bottom:1px solid var(--border)}
.directory-heading-top{display:flex;justify-content:space-between;align-items:center}
.eyebrow.tiny{font-size:9px;margin:0;letter-spacing:.16em}
.directory-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6bebba;box-shadow:0 0 12px rgba(106,235,186,.8)}
.country-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:21px 0}
.country-title-row h2{font-size:36px;line-height:1.1;letter-spacing:-.045em;margin:0;font-weight:750}
.country-title-row p{font-size:11px;color:#8ba5b6;margin:8px 0 0}
.country-flag{display:grid;place-items:center;font-size:27px;flex:0 0 48px;height:48px;border:1px solid rgba(132,191,205,.12);border-radius:12px;background:#142f3e}
.selector-line{position:relative}
.selector-line select{width:100%;height:43px;border:1px solid #37576b;background:#0f2a3b;border-radius:9px;color:#dbeef2;appearance:none;padding:0 32px 0 13px;outline:0;font-size:11px}
.selector-line select:hover,.selector-line select:focus{border-color:#4aa99d}
.selector-line svg{position:absolute;right:13px;top:13px;width:17px;height:17px;color:#a0bac3;pointer-events:none}
.directory-filters{display:flex;gap:8px;margin-top:10px}
.directory-filters input,.directory-filters select{height:37px;min-width:0;background:#0e2433;border:1px solid rgba(125,171,189,.19);border-radius:8px;font-size:10px;color:#d7e7eb;padding:0 10px;outline:0}
.directory-filters input{width:53%;flex:1}
.directory-filters select{width:47%;flex:.9}
.directory-filters input::placeholder{color:#738f9f}
.directory-results-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 21px 10px;font-weight:760;color:#9ab0be;font-size:9px;letter-spacing:.09em}
.source-badge{color:#74dfc8;font-size:8px;letter-spacing:.02em;white-space:nowrap}
.source-badge.fallback{color:#dac396}
.radio-list{flex:1;min-height:0;overflow:auto;padding:4px 12px 9px;scrollbar-width:thin;scrollbar-color:#318e9b #0a1c29}
.radio-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 9px;min-width:0;border:1px solid transparent;border-bottom-color:rgba(129,170,189,.13);border-radius:9px;transition:background .12s,border-color .12s}
.radio-card:hover{background:rgba(54,97,111,.19);border-color:rgba(134,185,197,.13)}
.radio-logo{width:43px;height:43px;display:grid;place-items:center;overflow:hidden;flex-shrink:0;border-radius:10px;background:linear-gradient(135deg,#1a5760,#183847);color:#9be9de;font-size:19px;border:1px solid rgba(137,184,193,.18);font-weight:750}
.radio-logo img{display:block;width:100%;height:100%;object-fit:contain;background:#f4f7f8;padding:2px}
.radio-main{min-width:0}
.radio-name-line{display:flex;align-items:center;gap:6px;min-width:0}
.radio-name{font-size:12px;font-weight:740;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#ecf6f9}
.radio-verified{font-size:8px;padding:2px 5px;color:#8af5d6;background:rgba(56,156,125,.25);border-radius:4px}
.radio-detail{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7e9eae;font-size:10px}
.radio-actions{display:flex;gap:4px;align-items:center}
.heart-button,.open-radio,.listen-button{width:27px;height:28px;padding:0;border:1px solid rgba(131,182,197,.18);background:rgba(25,54,71,.73);color:#8fb6c4;border-radius:7px;display:grid;place-items:center}
.heart-button:hover,.open-radio:hover{color:var(--teal);border-color:rgba(100,227,203,.56)}
.heart-button.is-fav{color:#6ce4c8;background:rgba(44,126,103,.25)}
.heart-button svg,.open-radio svg{width:15px;height:15px}
.listen-button{background:rgba(59,194,164,.18);border-color:rgba(84,228,188,.36);color:#96ffe1}
.listen-button:hover{background:rgba(72,189,161,.33)}
.radio-empty{padding:34px 12px;color:#9cb5c0;text-align:center;font-size:12px;line-height:1.7}
.radio-empty b{display:block;color:#edf6f8;font-size:15px;margin-bottom:8px}
.directory-footer{padding:11px 18px;border-top:1px solid var(--border);text-align:center}
.directory-footer p{margin:5px 0;color:#718d9c;font-size:9px;line-height:1.5}
.load-more{border:1px solid rgba(93,202,174,.28);background:#163842;color:#b2f5df;border-radius:8px;padding:10px 12px;font-size:11px;font-weight:700;width:100%}
.load-more:hover{background:#215057}
.skeleton{height:57px;margin:8px 0;border-radius:8px;background:linear-gradient(100deg,rgba(70,97,114,.09),rgba(139,184,199,.18),rgba(70,97,114,.09));background-size:220% 100%;animation:skeleton 1.5s linear infinite}
@keyframes skeleton{to{background-position-x:-220%}}

/* Bottom explanation + persistent audio */
.bottom-information{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px;border-top:1px solid rgba(120,162,177,.15);padding:25px 8px 0;margin-top:29px}
.infobox{display:flex;align-items:flex-start;gap:13px}
.infobox-symbol{flex:0 0 35px;height:35px;display:grid;place-items:center;border:1px solid rgba(87,216,183,.27);background:rgba(33,84,85,.22);border-radius:10px;color:#73e6d0;font-size:22px}
.infobox h3{margin:2px 0 7px;color:#dcebf1;font-size:12px;font-weight:750}
.infobox p{margin:0;color:#819aaa;font-size:10px;line-height:1.6}
.site-credit{margin:30px 7px 4px;padding:17px 3px 1px;border-top:1px solid rgba(107,170,181,.17);color:#8199a7;font-size:10px;line-height:1.55;display:flex;justify-content:space-between;align-items:center;gap:12px}
.footer-brand{color:#8eaab4;font-size:9px;font-weight:560;letter-spacing:.025em;white-space:nowrap}
.footer-links{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 12px;text-align:right}
.footer-divider{color:#4c9e9d;font-size:12px}
.wemavi-credit{white-space:nowrap;font-size:10px;letter-spacing:.015em;color:#7d98a7}
.site-credit a{color:#8ae3d0;text-decoration:none;font-weight:700;letter-spacing:.02em;transition:color .18s ease,border-color .18s ease;border-bottom:1px solid transparent}
.site-credit a:hover,.site-credit a:focus-visible{color:#bbfff0;border-bottom-color:currentColor}
.site-credit a.footer-email,.site-credit a.footer-email:hover,.site-credit a.footer-email:focus-visible{color:#8ccdc7;text-decoration:none;border-bottom:0;letter-spacing:0}
@media(max-width:680px){.site-credit{flex-wrap:wrap;gap:7px;margin-top:23px;padding-top:13px}.footer-brand{font-size:9px}.footer-links{width:100%;gap:6px 11px}.wemavi-credit{font-size:9px}}
@media(max-width:390px){.footer-links{gap:6px 8px}.footer-email{font-size:9px}.wemavi-credit{font-size:9px}}
.player-dock{position:fixed;bottom:0;left:0;right:0;z-index:12;height:86px;display:flex;align-items:center;gap:15px;padding:12px clamp(22px,3.2vw,54px);background:linear-gradient(100deg,rgba(11,27,40,.98),rgba(7,21,33,.99));border-top:1px solid rgba(127,178,194,.23);box-shadow:0 -10px 35px rgba(0,0,0,.3);backdrop-filter:blur(18px)}
.player-art{flex:0 0 51px;height:51px;display:grid;place-items:center;border:1px solid rgba(87,205,180,.35);background:radial-gradient(circle at center,#225d65,#0f2938 70%);border-radius:11px}
.audio-bars{height:21px;display:flex;align-items:center;gap:3px}
.audio-bars i{width:3px;height:8px;background:#61e6d0;border-radius:4px}
.audio-bars i:nth-child(2){height:17px}.audio-bars i:nth-child(3){height:23px}.audio-bars i:nth-child(4){height:12px}.audio-bars i:nth-child(5){height:18px}
.player-dock.is-playing .audio-bars i{animation:bounce 630ms ease-in-out infinite alternate}
.player-dock.is-playing .audio-bars i:nth-child(even){animation-delay:220ms}
.player-dock.is-playing .audio-bars i:nth-child(3){animation-delay:380ms}
@keyframes bounce{to{height:5px}}
.player-identity{min-width:0;flex:1}
.player-identity strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-identity span{display:block;font-size:10px;color:#88a8b6;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-center{display:flex;align-items:center;gap:15px}
.player-play{height:43px;width:43px;border-radius:50%;background:#61e7d1;color:#073036;border:0;display:grid;place-items:center;font-weight:800;font-size:15px;padding-left:3px}
.player-status{min-width:118px;color:#9abcc1;font-size:9px;letter-spacing:.11em}
.player-status span:first-child{width:7px;height:7px;display:inline-block;margin-right:8px;background:#6a8790;border-radius:50%}
.player-dock.is-playing .player-status span:first-child{background:#60e8ba;box-shadow:0 0 10px #60e8ba}
.player-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 190px}
.volume-label{font-size:9px;font-weight:750;color:#94aeb8}
#playerVolume{width:80px;height:5px;accent-color:var(--teal);cursor:pointer}
.player-site{color:#66e6cc;font-size:9px;letter-spacing:.09em;font-weight:760;white-space:nowrap}
.toast{position:fixed;bottom:102px;left:50%;transform:translateX(-50%);z-index:20;color:#edfff6;font-size:12px;max-width:min(90vw,420px);text-align:center;padding:12px 16px;background:#173947;border:1px solid #398f87;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.34)}

/* Alternate directory mode, inspired by the Mappa / Classifica switch. */
body.list-mode .hero-grid{grid-template-columns:260px minmax(0,1fr)}
body.list-mode .globe-column{background:linear-gradient(160deg,#0e2534,#081724)}
body.list-mode .globe-art,body.list-mode .globe-topbar,body.list-mode .globe-controls,body.list-mode .map-coordinates{display:none}
body.list-mode .intro-column{left:19px;right:19px;top:33px;bottom:28px;width:auto}
body.list-mode .intro-column h1{font-size:36px}
body.list-mode .intro-copy{margin:20px 0}
body.list-mode .country-shortcuts{max-width:100%}
body.list-mode .directory-column{grid-column:2}
body.list-mode .radio-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;column-gap:8px;padding:8px 20px}
body.list-mode .radio-empty{grid-column:1/-1}
body.list-mode .directory-header{padding:19px 25px 16px}
body.list-mode .country-title-row{margin:13px 0}
body.list-mode .country-title-row h2{font-size:30px}
body.list-mode .directory-filters{max-width:670px}

@media(max-width:1250px){
  .site-header{gap:22px}.on-air-pill{font-size:9px}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(300px,330px);gap:11px}
  .globe-art{left:81px}.intro-column{left:23px;width:204px}
  .intro-copy{font-size:11px}.eyebrow{font-size:8px}h1{font-size:36px}
  .globe-controls{left:23px;right:23px}.globe-topbar{left:23px;right:23px}
  .metrics strong{font-size:18px}
  .directory-header{padding:22px 16px 16px}
  .directory-results-bar{padding-left:16px;padding-right:16px}
  .map-coordinates{left:23px;right:23px}
}
@media(max-width:980px){
  .site-header{height:72px;padding:0 20px;gap:15px}.brand{min-width:170px}.brand-symbol{width:37px;height:37px}.brand-text{font-size:15px}
  .on-air-pill{display:none}.top-nav{margin-left:auto;gap:10px}
  .site-content{padding:13px 19px 130px}
  .hero-grid{height:auto;display:grid;grid-template-columns:1fr;gap:14px}
  .globe-column{grid-column:1;height:590px}
  .globe-art{inset:33px 0 42px 110px}
  .intro-column{top:90px;width:225px;bottom:60px;left:27px}
  .intro-copy{display:none}
  .directory-column{grid-column:1;height:535px}
  .radio-list{padding-left:18px;padding-right:18px}
  .directory-header{padding:22px 25px 17px}
  body.list-mode .hero-grid{grid-template-columns:1fr}
  body.list-mode .globe-column{height:auto;min-height:215px}
  body.list-mode .intro-column{position:relative;top:auto;bottom:auto;left:auto;right:auto;padding:26px;width:auto}
  body.list-mode .intro-upper{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px 18px}
  body.list-mode .intro-column h1{font-size:30px;grid-row:2 / 4}
  body.list-mode .intro-copy{grid-column:2;margin:0}
  body.list-mode .global-search{grid-column:2}
  body.list-mode .search-hint,body.list-mode .country-shortcuts,body.list-mode .metrics{display:none}
  body.list-mode .directory-column{grid-column:1}
}
@media(max-width:660px){
  .site-header{height:66px;padding:0 14px;gap:7px}
  .brand{gap:8px;min-width:0}.brand-symbol{width:32px;height:32px}.brand-text{font-size:13px;letter-spacing:.06em}.brand-text small{font-size:5px;letter-spacing:.2em}
  .top-nav{gap:5px}.view-switch{padding:3px}.view-button{min-width:0;height:32px;padding:0 9px;font-size:10px}.view-icon{font-size:12px}
  .nav-button{padding:4px}.favorite-label,.about-link{display:none}.favorite-glyph{font-size:23px;margin:0}.fav-count{margin-left:0}
  .site-content{padding:11px 12px 120px}
  .globe-column{height:592px;border-radius:13px}
  .globe-topbar{top:15px;left:17px;right:16px}
  .globe-caption,.globe-state{font-size:8px;letter-spacing:.07em}.orbit-ornament{margin-right:4px}
  .intro-column{top:53px;bottom:auto;left:18px;right:18px;width:auto;display:block}
  .intro-upper{display:block}
  .eyebrow{font-size:8px;margin-bottom:11px}
  h1{font-size:31px;line-height:1.02}
  h1 br{display:none}h1 em:before{content:' '}
  .intro-copy{display:none}
  .global-search{margin-top:16px;height:39px;max-width:100%}
  .search-hint{margin:10px 0 7px;font-size:8px}
  .country-shortcuts{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:3px;scrollbar-width:none}
  .country-shortcuts::-webkit-scrollbar{display:none}
  .shortcut{white-space:nowrap;flex-shrink:0;padding:6px 7px;font-size:9px}
  .metrics{display:none}
  .globe-art{inset:183px 0 51px 0}
  .orbit{opacity:.5}
  .map-hint{bottom:10px;font-size:9px;padding:8px 11px}
  .globe-controls{bottom:34px;left:15px;right:15px}
  .rotation-note{font-size:9px;margin-right:0;white-space:nowrap}
  .globe-buttons{gap:4px}.globe-buttons button{height:31px;width:31px;font-size:17px}
  .map-coordinates{left:16px;right:16px;bottom:9px;font-size:7px}
  .directory-column{height:540px;border-radius:13px}
  .directory-header{padding:20px 16px 15px}
  .country-title-row{margin:15px 0}.country-title-row h2{font-size:30px}
  .radio-list{padding:0 8px 8px}
  .directory-results-bar{padding:13px 16px 9px}
  .directory-footer{padding:10px 12px}
  .bottom-information{grid-template-columns:1fr;gap:18px;margin-top:22px;padding-top:22px}
  .player-dock{height:77px;padding:10px 15px;gap:10px}
  .player-art{width:43px;height:43px;flex-basis:43px}
  .player-identity strong{font-size:11px}.player-identity span{font-size:9px;margin-top:5px}
  .player-center{gap:0}.player-play{height:40px;width:40px}
  .player-status,.player-right{display:none}
  body.list-mode .globe-column{height:auto;min-height:0}
  body.list-mode .intro-column{padding:24px 19px}
  body.list-mode .intro-upper{display:block}
  body.list-mode .intro-column h1{font-size:28px}
  body.list-mode .intro-copy{display:block;font-size:11px;margin:10px 0}
  body.list-mode .global-search{max-width:100%}
  body.list-mode .radio-list{display:block}
  body.list-mode .directory-column{height:570px}
  body.list-mode .directory-header{padding:18px 15px}
  .toast{bottom:87px}
}
@media(max-width:385px){
  .brand-text small{display:none}.brand-text{font-size:12px}.brand-symbol{width:28px;height:28px}
  .view-button{padding:0 6px}.nav-button{padding:0}
  .globe-column{height:545px}.globe-art{inset:170px 0 51px}
  .globe-controls{bottom:32px}.globe-buttons button{width:29px;height:29px}
  .map-hint{font-size:8px}.rotation-note{font-size:8px}
  .directory-filters{flex-wrap:wrap}.directory-filters input,.directory-filters select{width:100%;flex:1 0 100%;height:35px}
  .directory-column{height:584px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* MediaLiveMap V4 - modalità Radio / TV e video autorizzati */
.media-switch{display:flex;flex:0 0 auto;gap:4px;align-items:center;padding:4px;background:rgba(12,28,40,.98);border:1px solid rgba(115,169,182,.24);border-radius:11px}
.media-button{height:36px;min-width:91px;display:flex;justify-content:center;align-items:center;gap:9px;padding:0 15px;border:0;border-radius:8px;background:transparent;color:#a0b8c3;font-weight:760;font-size:12px;transition:background .15s,color .15s}
.media-button>span{font-size:17px;line-height:1}
.media-button:hover{background:rgba(61,107,119,.32);color:#f3ffff}
.media-button.is-active{background:linear-gradient(120deg,#4be1c2,#8beed9);color:#0c3034;box-shadow:0 2px 12px rgba(35,229,191,.13)}
#modeTV.is-active{background:linear-gradient(125deg,#75d9ee,#7ee8cb)}
body.tv-mode .directory-live-dot{background:#7fddf8;box-shadow:0 0 11px #72d4ef}
body.tv-mode .radio-logo{background:linear-gradient(140deg,#244459,#182f45)}
body.tv-mode .globe-caption{color:#b6d2de}
body.tv-mode .metric:nth-child(3) strong{color:#8cead7}
.mode-prompt{font-size:9px;font-weight:770;color:#9ac4d0;letter-spacing:.14em}
.radio-card.is-tv .radio-logo{font-size:22px}
.radio-card.is-tv .radio-detail{max-width:100%}
.radio-card .open-radio{flex-shrink:0}
.retry-tv-button{margin-top:14px;border:1px solid rgba(123,212,199,.39);background:rgba(39,90,93,.24);color:#b8fbe9;border-radius:7px;padding:10px 14px;font-weight:770;font-size:11px}
.retry-tv-button:hover{background:#2b6666}
.video-overlay{position:fixed;inset:0;display:grid;place-items:center;z-index:50;padding:25px 16px;background:rgba(1,10,18,.86);backdrop-filter:blur(15px)}
.video-dialog{width:min(100%,960px);max-height:96vh;overflow:auto;background:linear-gradient(160deg,#142a3b,#081421);border:1px solid rgba(107,209,206,.33);border-radius:19px;box-shadow:0 40px 130px rgba(0,0,0,.57)}
.video-header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 22px}
.video-header p{margin:0 0 8px;color:#72dfcb;font-weight:770;letter-spacing:.16em;font-size:9px}
.video-header h2{margin:0;color:#ecf8fb;font-weight:760;letter-spacing:-.025em;font-size:22px}
.video-close{flex:0 0 37px;height:37px;border-radius:9px;background:#213c4c;color:#cde5e9;border:1px solid rgba(139,186,201,.24);font-size:16px;display:grid;place-items:center}
.video-close:hover{background:#31586a}
.video-screen{width:100%;aspect-ratio:16/9;background:#010409;overflow:hidden;border-top:1px solid #203747;border-bottom:1px solid #203747}
.video-screen iframe{display:block;width:100%;height:100%;border:0;background:#000}
.video-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;font-size:11px;line-height:1.5;color:#89acb9}
.video-footer a{color:#83eed4;font-weight:750;white-space:nowrap}
@media(max-width:1450px){
  .site-header{gap:clamp(10px,1.8vw,25px)}
  .brand{min-width:183px}
  .top-nav{gap:12px}
  .media-button{min-width:77px;padding:0 12px}
  .on-air-pill{display:none}
}
@media(max-width:980px){
  .site-header{gap:9px}
  .brand{min-width:170px}
  .media-button{min-width:65px;padding:0 10px;font-size:11px;gap:6px}
  .top-nav{gap:8px}
  .about-link{display:none}
}
@media(max-width:660px){
  .site-header{height:106px;flex-wrap:wrap;align-content:center;align-items:center;justify-content:space-between;gap:5px 7px;padding:7px 14px}
  .brand{order:1;flex:1 1 calc(100% - 145px)}
  .nav-button{order:2}
  .media-switch{order:3;flex:1 1 46%;padding:3px;justify-content:stretch}
  .media-button{flex:1;min-width:0;height:30px;padding:0 8px}
  .top-nav{order:4;margin:0;flex:1 0 auto;justify-content:flex-end}
  .view-button{height:30px;min-width:0;padding:0 10px}
  .site-content{padding-top:10px}
  .video-overlay{padding:12px}
  .video-header{padding:14px}
  .video-header h2{font-size:17px}
  .video-footer{padding:14px;align-items:flex-start;flex-direction:column;gap:7px;font-size:10px}
}
@media(max-width:375px){
  .media-button{font-size:10px;gap:4px}
  .view-button{font-size:9px;padding:0 7px}
  .brand-text{font-size:12px}
  .globe-caption{font-size:7px}
}

.radio-site-link{display:inline-flex;align-items:center;margin-top:7px;font-size:9px;font-weight:750;letter-spacing:.02em;color:#77dccc;text-decoration:none;white-space:nowrap}
.radio-site-link:hover{text-decoration:underline;color:#acfbe8;text-underline-offset:2px}


/* MediaLiveMap V5: card selezionabili e opzioni di riproduzione esplicite */
.directory-hint{font-size:9px;line-height:1.5;color:#819ead;padding:1px 20px 10px;border-bottom:1px solid rgba(126,174,193,.07)}
.directory-hint b{color:#a8d9d4;font-weight:720}
.radio-card{grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:9px 8px;}
.radio-card.is-selected{border-color:rgba(69,213,191,.56);background:rgba(31,88,93,.22);box-shadow:inset 0 0 0 1px rgba(69,213,191,.06)}
.station-select{display:grid;grid-template-columns:43px minmax(0,1fr) 10px;align-items:center;gap:9px;min-width:0;width:100%;padding:2px 0;text-align:left;background:transparent;border:0;color:inherit;cursor:pointer;border-radius:6px}
.station-select:hover .radio-name,.station-select:focus-visible .radio-name{color:#a9ffeb}
.station-select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.station-select .radio-main{display:block;min-width:0}
.station-select .radio-name-line{display:flex;min-width:0;align-items:center}
.station-select .radio-logo{flex-shrink:0}
.station-chevron{font-size:15px;color:#92b7be;text-align:center;transition:transform .15s}
.radio-card.is-selected .station-chevron{color:var(--teal)}
.station-availability{display:block;font-size:9px;margin-top:5px;font-weight:720;color:#9eb4c2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.station-availability.is-ready{color:#83f4ce}
.station-availability.is-external{color:#87b4be}
.radio-actions{gap:5px}
.radio-actions .radio-site-link{display:grid;place-items:center;margin:0;width:29px;height:29px;border:1px solid rgba(131,182,197,.22);border-radius:7px;background:rgba(25,54,71,.73);color:#a2d1d7}
.radio-actions .radio-site-link:hover{background:rgba(66,145,150,.26);border-color:rgba(107,239,214,.57)}
.radio-actions .radio-site-link svg{width:16px;height:16px}
.station-details{grid-column:1/-1;margin:1px 1px 3px 0;padding:12px 12px 13px;border-radius:9px;background:rgba(4,19,30,.69);border:1px solid rgba(104,181,187,.16)}
.detail-state{font-size:9px;color:#a4bbcb;font-weight:780;letter-spacing:.055em;line-height:1.45}
.detail-state.is-ready{color:#88f2cf}
.station-details p{font-size:11px;color:#aac0cb;line-height:1.62;margin:9px 0 12px}
.station-detail-actions{display:flex;flex-wrap:wrap;gap:7px}
.station-detail-actions a,.station-detail-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:7px;font-size:10px;line-height:1.3;font-weight:750;padding:8px 11px;text-decoration:none;cursor:pointer}
.station-primary{background:var(--teal);border:1px solid var(--teal);color:#05272c}
.station-primary:hover{background:#a2ffe9;color:#05272c}
.station-secondary{background:#122f3c;border:1px solid rgba(115,181,187,.35);color:#b8dedd}
.station-secondary:hover{background:#214656;color:#e0ffff}
.zoom-level{display:inline-flex;align-items:center;justify-content:center;height:35px;min-width:46px;padding:0 4px;font-size:10px;color:#97c1c6;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.02em;background:rgba(10,31,42,.55);border-radius:7px;border:1px solid rgba(126,177,192,.14)}
.globe-buttons button:disabled{opacity:.35;cursor:default}
@media(max-width:670px){.directory-hint{padding:0 14px 9px}.radio-card{padding:9px 7px}.station-select{grid-template-columns:38px minmax(0,1fr) 8px;gap:8px}.station-select .radio-logo{width:38px;height:38px}.station-details p{font-size:10px}.station-availability{font-size:9px}.zoom-level{height:31px;min-width:40px;font-size:9px}}
@media(max-width:390px){.zoom-level{min-width:37px}.globe-buttons{gap:3px}}

.radio-card{cursor:pointer}
.station-details{cursor:default}

/* === MEDIALIVEMAP V6: GIORNALI / TERRITORI === */
.news-mode:not(.has-audio) .player-dock{display:none}
.news-mode:not(.has-audio) .site-content{padding-bottom:48px}
.news-mode .directory-hint b{color:#9be9d6}
.news-mode .radio-card.is-news{border-bottom-color:rgba(120,171,185,.15)}
.news-mode .radio-card.is-news .station-availability{color:#83dfd6}
.news-mode .radio-card.is-news.is-selected{background:rgba(31,73,86,.28)}
.news-mode .radio-card.is-news .radio-logo{background:linear-gradient(145deg,#21434f,#112738);color:#80daca}
.news-mode .directory-filters #genreFilter{display:none}
.news-mode .directory-filters #stationSearch{width:100%;flex:1}
.news-coverage{font-size:8px;letter-spacing:.06em;color:#d2d1b5;border:1px solid rgba(220,206,154,.20);border-radius:4px;padding:3px 4px;white-space:nowrap}
.newspaper-location{display:flex;align-items:center;gap:8px;margin-top:9px}
.newspaper-location[hidden]{display:none!important}
.newspaper-location select{width:50%;min-width:0;height:36px;padding:0 10px;border-radius:8px;border:1px solid rgba(125,176,195,.23);background:#102336;color:#dbe8ef;font-size:10.5px;cursor:pointer}
.newspaper-location select:disabled{opacity:.5;cursor:default}
.news-mode #listFooterNote{color:#829daa}
@media(max-width:1450px){.media-switch .media-button{min-width:60px;padding-left:10px;padding-right:10px}}
@media(max-width:980px){.media-switch .media-button{min-width:0;padding-left:8px;padding-right:8px}.media-switch{gap:1px}}
@media(max-width:660px){.media-switch{flex:1 1 60%;gap:2px}.media-switch .media-button{padding:0 5px;font-size:10px}.newspaper-location select{font-size:10px}}
@media(max-width:390px){.media-switch .media-button{font-size:9px}.newspaper-location{flex-direction:column}.newspaper-location select{width:100%}}

.news-mode .radio-logo svg{width:23px;height:23px;display:block;color:#9fe9db}
@media(max-width:660px){
  .news-mode .directory-column{height:auto;max-height:none;overflow:visible}
  .news-mode .radio-list{flex:auto;overflow:visible;max-height:none}
  .news-mode .directory-footer{position:static}
}

/* V7: quarta modalità e cataloghi CSV. */
.media-switch{gap:3px}
.media-switch .media-button{min-width:72px;padding:0 10px}
.webcam-mode .directory-hint b{color:#9be9d6}
.webcam-mode:not(.has-audio) .player-dock{display:none}
.webcam-mode:not(.has-audio) .site-content{padding-bottom:48px}
.webcam-location{display:flex;align-items:center;gap:8px;margin-top:9px}
.webcam-location[hidden]{display:none!important}
.webcam-location select{width:50%;min-width:0;height:36px;padding:0 10px;border-radius:8px;border:1px solid rgba(125,176,195,.23);background:#102336;color:#dbe8ef;font-size:10.5px;cursor:pointer}
.webcam-location select:disabled{opacity:.5}
.webcam-mode .radio-card.is-webcam.is-selected{background:rgba(31,73,86,.29)}
.webcam-mode .radio-card.is-webcam .radio-logo{background:linear-gradient(145deg,#1d4253,#11283e);color:#8ae8d7}
.webcam-mode .radio-card .station-availability{color:#9bd2e2}
@media(max-width:1450px){.media-switch .media-button{min-width:62px;padding:0 9px}}
@media(max-width:980px){.media-switch .media-button{min-width:0;padding:0 7px;font-size:10.5px}}
@media(max-width:660px){
 .site-header{height:114px}
 .media-switch{order:3;flex:1 1 100%;width:100%;justify-content:stretch}
 .media-switch .media-button{flex:1;min-width:0;padding:0 5px;font-size:10px;gap:3px}
 .media-switch .media-button>span{font-size:14px}
 .webcam-location select{font-size:10px}
 .webcam-mode .directory-column{height:auto;max-height:none;overflow:visible}
 .webcam-mode .radio-list{flex:auto;overflow:visible;max-height:none}
}
@media(max-width:385px){.media-switch .media-button{font-size:9px}.webcam-location{flex-direction:column}.webcam-location select{width:100%}}
/* Mobile V7: logo e controlli in prima riga, quattro sezioni nella seconda. */
@media(max-width:660px){
 .site-header{height:108px;align-content:space-around;justify-content:space-between}
 .site-header .brand{order:1;flex:1 1 auto;min-width:0}
 .site-header .top-nav{order:2;flex:0 0 auto;margin-left:auto;gap:4px}
 .site-header .media-switch{order:3;flex:1 1 100%;width:100%;margin:0}
}
@media(max-width:370px){
 .site-header{padding-left:9px;padding-right:9px}
 .site-header .view-button{padding:0 5px}
 .site-header .brand-text{font-size:11px}
}

/* MediaLiveMap V9: additional provider directory links, outside our curated webcam count. */
.webcam-discovery{display:flex;flex-direction:column;gap:3px;margin:8px 12px 0;padding:10px 12px;border-radius:11px;background:linear-gradient(120deg,rgba(34,106,105,.20),rgba(18,53,73,.55));border:1px solid rgba(77,218,195,.23)}
.webcam-discovery[hidden]{display:none!important}
.webcam-discovery>a{color:#8ff9dd;font-weight:780;font-size:11px;line-height:1.35;text-decoration:none}
.webcam-discovery>a:hover{text-decoration:underline;text-underline-offset:3px}
.webcam-discovery>small{color:#7e9caa;font-size:9px;line-height:1.4}
@media(max-width:670px){.webcam-discovery{margin:8px 8px 0;padding:9px 11px}}

/* V9.3: consistent media-status pills. */
.globe-state,.source-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;border:1px solid rgba(90,219,194,.23);background:rgba(21,69,70,.30);color:#84e7d3;font-weight:770;letter-spacing:.075em;white-space:nowrap}
.globe-state{padding:7px 10px;font-size:9px}
.source-badge{padding:5px 9px;font-size:8px}
.globe-state::before,.source-badge::before{content:"";display:inline-block;flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:#58e1c7;box-shadow:0 0 8px rgba(78,221,189,.42)}
.globe-state[data-state="updating"],.source-badge[data-state="updating"]{color:#94aebb;border-color:rgba(127,166,184,.18);background:rgba(23,49,65,.44)}
.globe-state[data-state="updating"]::before,.source-badge[data-state="updating"]::before{background:#85adbc;box-shadow:none}
.globe-state[data-state="featured"],.source-badge[data-state="featured"]{color:#d7c99a;border-color:rgba(208,187,118,.23);background:rgba(92,75,36,.18)}
.globe-state[data-state="featured"]::before,.source-badge[data-state="featured"]::before{background:#d4bd79;box-shadow:none}
.globe-state[data-state="saved"],.source-badge[data-state="saved"]{color:#a9d9df}
@media(max-width:660px){.globe-state{font-size:7.3px;letter-spacing:.03em;padding:5px 7px;gap:5px}.globe-state::before{width:5px;height:5px;flex-basis:5px}.source-badge{font-size:8px;padding:4px 7px}}

/* MediaLiveMap branding: keep the longer name legible without crowding controls. */
.brand{min-width:224px}
.brand-text{font-size:16px;letter-spacing:.045em;white-space:nowrap}
.brand-text small{letter-spacing:.20em}
@media(max-width:1250px){.brand{min-width:198px}.brand-text{font-size:15px}}
@media(max-width:980px){.brand{min-width:180px}.brand-text{font-size:14px}}
@media(max-width:660px){.site-header .brand{min-width:0}.site-header .brand-text{font-size:13px;letter-spacing:.015em}}
@media(max-width:370px){.site-header .brand-text{font-size:11.5px}}

/* Brief footer privacy and content link. */
.site-credit a.footer-legal{font-weight:550;color:#a3b9c1;text-decoration:none;border-bottom:0}
.site-credit a.footer-legal:hover,.site-credit a.footer-legal:focus-visible{color:#80e1d1;text-decoration:none;border-bottom:0}
