:root{--w1-player-height:94px;color-scheme:dark;--night:#080e16;--line:rgba(189,220,240,.2);--ice:#f4f7fa;--soft:#9eb2c1;--red:#f32e48;--cyan:#9bd9f3;font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--night);color:var(--ice)}body{padding-top:var(--w1-player-height)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}a{color:inherit}
.shell{height:calc(100dvh - var(--w1-player-height));min-height:450px;display:block;overflow:hidden}.live-dot{display:block;width:7px;height:7px;background:var(--red);border-radius:50%;box-shadow:0 0 14px #ff3158a6}
main{height:100%;position:relative;isolation:isolate;overflow:hidden;min-height:0;background:radial-gradient(circle at 40% 42%,#203e55 0,#0e2032 48%,#07101a 90%)}.map-stage{position:absolute;inset:0;min-height:0;isolation:isolate;overflow:hidden}#map{position:absolute;z-index:0;inset:0;background:#102536}.maplibregl-canvas{outline:none!important}.maplibregl-control-container .maplibregl-ctrl-attrib{font-size:10px!important;background:#0b1928b8!important;color:#d3dbe3!important}.maplibregl-control-container a{color:#bdd6e6!important}.leaflet-container{background:#203a4c}.leaflet-control-attribution{font-size:9px!important}
.map-scrim{pointer-events:none;position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(6,13,22,.87),rgba(6,13,22,.40) 25%,transparent 54%);height:100%}
.intro{pointer-events:none;position:absolute;z-index:2;top:clamp(35px,7vh,76px);left:clamp(22px,4vw,62px);width:min(360px,30%);text-shadow:0 2px 22px #000b}.eyebrow{font-size:10px;color:#a6dbe9;letter-spacing:.15em;font-weight:900;display:flex;align-items:center;gap:9px}.eyebrow span{display:inline-block;width:24px;height:2px;background:var(--red)}.intro h1{font-size:clamp(34px,4vw,64px);letter-spacing:-.065em;line-height:.97;margin:20px 0 18px;font-weight:950}.intro h1 em{font-style:normal;color:#ff5066}.intro p{font-size:13px;color:#cfdae2;line-height:1.75;max-width:260px;margin:0}
.map-ui{position:absolute;z-index:5;left:clamp(22px,4vw,62px);bottom:34px;max-width:calc(100% - 390px)}.map-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.map-button{border:1px solid rgba(170,211,234,.34);border-radius:10px;padding:11px 14px;min-height:42px;background:#101e2ee9;color:#eaf2f8;box-shadow:0 3px 15px #0006;font-size:12px;font-weight:800;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:8px}.map-button:hover{background:#254057;border-color:#9fd3ec}.map-button.primary{background:#d92940;border-color:#ed445b;color:#fff}.map-button.primary:hover{background:#ef3f58}.map-button.square{font-size:21px;line-height:1;min-width:42px;padding:8px 12px}.map-status{font-size:11px;color:#d1e1eb;line-height:1.6;margin-top:10px;min-height:18px}.map-status.error{color:#ffd8dc}.map-status a{color:#fff;text-decoration:underline}.maphelp{font-size:10px;margin:5px 0 0;line-height:1.4;color:#c2d5e1}
.program-card{position:absolute;z-index:7;right:clamp(16px,3.8vw,56px);top:26px;bottom:26px;max-height:515px;width:min(330px,32vw);display:flex;flex-direction:column;padding:23px;border:1px solid rgba(177,210,230,.28);border-radius:17px;background:#0d1a29f0;backdrop-filter:blur(16px);box-shadow:0 15px 45px #0008}.program-head{display:flex;align-items:center;justify-content:space-between}.accent{font-size:10px;font-weight:900;letter-spacing:.17em;color:#fa5569}.program-card h2{font-size:clamp(19px,2vw,25px);letter-spacing:-.05em;margin:12px 0 16px;font-weight:900}.program-content{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 4px 10px 0;flex:1;min-height:80px;overflow-y:auto;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:#3c6176 transparent;color:#e4ecf1;font-size:13px;line-height:1.6}.program-content h3{font-size:16px;line-height:1.3;margin:9px 0;font-weight:850;color:#fff}.program-content p{margin:0 0 12px}.program-content ul,.program-content ol{margin:0 0 14px;padding-left:21px}.program-content li{margin:4px 0}.program-content a{color:#95d9f4;text-decoration:underline}.program-content .empty{color:#9aabba}.program-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:15px;color:#9bb3c4;font-size:9px;letter-spacing:.06em;font-weight:750}.program-bottom a{text-decoration:none;color:#cfdfec}.program-bottom a:hover{text-decoration:underline}

.player{z-index:100;position:fixed;inset:0 0 auto;display:flex;align-items:center;gap:20px;padding:12px clamp(18px,3.6vw,54px);height:var(--w1-player-height);width:100%;background:#0a141f;border-bottom:1px solid var(--line);box-shadow:0 5px 22px #0008;min-height:0}.player-logo{width:57px;height:57px;object-fit:contain;border:3px solid #fff;border-radius:50%;background:#05070a;box-shadow:0 0 0 1px rgba(255,255,255,.22),0 2px 12px rgba(0,0,0,.5);flex:none}.player-titles{display:flex;flex-direction:column;min-width:0;flex:1;gap:6px}.player-titles strong{font-size:11px;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-titles span:not(.red){font-size:14px;color:#b3c4cf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.red{color:#f54660}.play{width:54px;height:54px;min-width:54px;border:0;border-radius:50%;display:grid;place-items:center;background:#f8fafc;color:#0b1620;font-size:23px;font-weight:900;transition:.2s}.play:hover{transform:scale(1.06)}.player-extra{display:flex;align-items:center;gap:12px;font-size:10px;color:#98b4c6}.player-extra input{width:105px;accent-color:#f33d59}.player-extra a{text-decoration:none;white-space:nowrap}.player-extra a:hover{text-decoration:underline}
/* Sichtbares W1-Schild, unverrückbar am festen Standort. */
.w1-marker{width:144px;height:160px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;cursor:pointer;filter:drop-shadow(0 7px 17px rgba(0,0,0,.85));user-select:none}
.w1-marker-flag{width:124px;min-height:124px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:linear-gradient(150deg,#fb3852 0%,#ba102e 100%);border:4px solid white;border-radius:22px;box-shadow:0 0 0 5px rgba(240,25,56,.28),inset 0 -7px 12px #6e082344;overflow:hidden}
.w1-marker-logo{width:82px;height:82px;border-radius:50%;object-fit:cover;display:block;background:#050508;box-shadow:0 0 0 3px white,0 4px 12px #0009}
.w1-marker-label{font-size:16px;font-weight:950;line-height:1;letter-spacing:.045em;color:#fff;text-align:center;text-shadow:0 1px 4px #66031c;white-space:nowrap}
.w1-marker-stem{width:6px;height:12px;background:#fff;box-shadow:0 2px 8px #0009}
.w1-marker-point{width:17px;height:17px;border-radius:50%;background:#ed2946;border:4px solid white;box-shadow:0 0 0 4px rgba(240,25,56,.24);margin-top:0}
.w1-marker:hover .w1-marker-flag{filter:brightness(1.12)}
.w1-marker:focus-visible{outline:3px solid #5ce5f0;outline-offset:4px;border-radius:18px}
.w1-leaflet-icon{border:0!important;background:transparent!important}
.w1-leaflet-icon .w1-marker{pointer-events:none}
/* Eigene Ortsinformation: keine Google-Details, keine fremde Fehleranzeige. */
.w1-location-card{position:absolute;z-index:15;top:18px;left:50%;transform:translateX(-50%);width:min(285px,calc(100% - 24px));border-radius:15px;border:1px solid rgba(218,233,241,.35);padding:16px;background:#0e1b2cf5;color:#f6faff;box-shadow:0 14px 55px #000a;backdrop-filter:blur(16px)}
.w1-location-card[hidden]{display:none!important}
.location-close{position:absolute;right:9px;top:6px;background:transparent;color:white;border:0;font-size:27px;line-height:1;padding:2px 6px}
.location-header{display:flex;gap:11px;align-items:center;padding-right:18px}
.location-header img{width:50px;height:50px;object-fit:contain;flex:none}
.location-header b{display:block;font-size:15px;letter-spacing:.05em}
.location-header span{display:block;font-size:11px;color:#afc3d0;margin-top:4px}
.w1-location-card p{font-size:12px;line-height:1.5;color:#d2dde4;margin:13px 0}
.location-listen{border:0;background:#e6314c;color:white;border-radius:9px;padding:10px 15px;font-weight:800;font-size:12px;width:100%}
.location-listen:hover{background:#fa4860}
/* Fallback ohne WebGL: eine richtige interaktive Leaflet-Karte. */
.map-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;padding:32px;color:white;background:#152538;text-align:center}
.map-unavailable p{max-width:310px;font-size:13px;line-height:1.6;color:#b8c9d9}
.map-unavailable a{color:#9ce6ff;font-weight:800;font-size:12px}
.maplibregl-ctrl-attrib,.leaflet-control-attribution{background:rgba(7,17,27,.92)!important;color:#e5eef5!important;border-radius:5px;font-size:10px!important;line-height:1.6!important;padding:3px 6px!important;max-width:min(440px,75vw);white-space:normal!important}
.leaflet-control-attribution a{color:#b4e3fc!important}
@media(max-width:760px){.w1-location-card{left:12px;top:84px;transform:none;width:min(275px,calc(100% - 24px));padding:13px}.maplibregl-ctrl-attrib,.leaflet-control-attribution{font-size:9px!important;max-width:70vw}}


@media(max-width:1010px){.map-ui{max-width:calc(100% - 335px)}.program-card{width:300px;padding:17px;right:15px}.intro{width:34%}.map-button{padding:9px 11px;font-size:11px}.maphelp{display:none}}
@media(max-width:760px){
  /* Mobile: Karte zuerst, News darunter. Kein Overlay auf dem W1-Standort. */
  :root{--w1-player-height:76px}
  html,body{height:auto;min-height:100%;overflow-x:hidden}
  .shell{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - var(--w1-player-height));overflow:visible}
  main{position:relative;display:flex;flex-direction:column;overflow:visible;flex:1;min-height:0}
  .map-stage{position:relative;inset:auto;flex:none;height:clamp(360px,65svh,680px);min-height:360px;overflow:hidden;isolation:isolate}
  #map{position:absolute;inset:0;width:100%;height:100%}
  .intro{top:16px;left:17px;width:calc(100% - 34px)}
  .intro h1{font-size:clamp(28px,7vw,36px);letter-spacing:-.06em;margin:9px 0}
  .intro p{display:none}
  .map-scrim{background:linear-gradient(180deg,#071321cf,transparent 32%,transparent 76%,#07132191)}
  .map-ui{left:10px;right:10px;bottom:10px;max-width:none}
  .map-actions{gap:5px}
  .map-button{padding:8px 9px;min-height:35px;font-size:11px}
  .map-button.square{min-width:35px;min-height:35px;padding:6px 9px;font-size:18px}
  .map-status{font-size:10px;margin-top:5px;min-height:12px}
  .program-card{position:relative;z-index:3;inset:auto;right:auto;left:auto;bottom:auto;top:auto;flex:none;width:auto;max-width:none;max-height:none;margin:0;padding:18px 18px 19px;border:0;border-top:1px solid rgba(177,210,230,.28);border-radius:0;background:#0d1a29;box-shadow:none;backdrop-filter:none}
  .program-card h2{font-size:22px;margin:8px 0 12px}
  .program-content{flex:none;min-height:42px;max-height:none;overflow:visible;font-size:14px;line-height:1.65;padding:12px 2px 10px 0}
  .program-content h3{font-size:17px}
  .program-bottom{margin-top:11px;font-size:10px}
  
  .player{position:fixed;top:0;bottom:auto;left:0;right:0;flex:none;height:var(--w1-player-height);z-index:100;gap:9px;padding:7px 11px;box-shadow:0 5px 18px #0009}
  .player-logo{width:46px;height:46px;flex:none}
  .player-titles strong{font-size:9px}.player-titles span:not(.red){font-size:11px}
  .play{width:47px;height:47px;min-width:47px}
  .player-extra{display:flex;flex:0 0 62px;gap:0;min-width:0;margin-left:0}
  .player-extra label,.player-extra a{display:none}
  .player-extra input{width:62px;min-width:0}
}
@media(max-width:400px){
  .map-stage{height:clamp(390px,70svh,700px)}
  .map-actions{gap:4px}.map-button{font-size:10px;padding:7px 8px}
  .intro h1{font-size:29px}
}
@media(max-height:660px) and (min-width:761px){.program-card{max-height:calc(100% - 24px);top:12px;bottom:12px}.intro{top:25px}.map-ui{bottom:12px}.shell{min-height:460px}.intro h1{font-size:45px}}

/* Exakte, redaktionell wählbare Schriftgrößen für veröffentlichte News. */
.program-content .w1-fs-10{font-size:10px}
.program-content .w1-fs-11{font-size:11px}
.program-content .w1-fs-12{font-size:12px}
.program-content .w1-fs-13{font-size:13px}
.program-content .w1-fs-14{font-size:14px}
.program-content .w1-fs-15{font-size:15px}
.program-content .w1-fs-16{font-size:16px}
.program-content .w1-fs-17{font-size:17px}
.program-content .w1-fs-18{font-size:18px}
.program-content .w1-fs-19{font-size:19px}
.program-content .w1-fs-20{font-size:20px}
.program-content .w1-fs-21{font-size:21px}
.program-content .w1-fs-22{font-size:22px}
.program-content .w1-fs-23{font-size:23px}
.program-content .w1-fs-24{font-size:24px}
.program-content .w1-fs-26{font-size:26px}
.program-content .w1-fs-28{font-size:28px}
.program-content .w1-fs-30{font-size:30px}
.program-content .w1-fs-32{font-size:32px}
.program-content .w1-fs-34{font-size:34px}
.program-content .w1-fs-36{font-size:36px}
.program-content .w1-fs-40{font-size:40px}
.program-content .w1-fs-44{font-size:44px}
.program-content .w1-fs-48{font-size:48px}
