/* Beatmusik-FM V4.3 – bewusst getrennte Mobile-Optimierung.
   Nur Darstellung / Bedienbarkeit: keine Änderungen an Stream, API, Daten oder Berechtigungen. */

@media (max-width: 1090px) {
  /* Die breiten Hero-Glow-Pseudoelemente dürfen kein seitliches Scrollen auslösen. */
  body.bm40-neon-public #bmMainContent{overflow-x:clip}
  /* Ein vertikal scrollbareres Mobilmenü statt überlangen Menüs auf kleinen Displays. */
  body.bm40-neon-public .navbar .navlinks.bm33-navlinks.open {
    max-height: calc(100dvh - 75px - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: max(16px,env(safe-area-inset-bottom, 0px));
    box-shadow: 0 22px 45px rgba(0,0,0,.82);
  }
  body.bm40-neon-public .navbar .bm33-nav-group>summary,
  body.bm40-neon-public .navbar .navlinks.bm33-navlinks>a,
  body.bm40-neon-public .navbar .navlinks.bm33-navlinks>button {
    min-height: 46px; display:flex; align-items:center;
  }
  body.bm40-neon-public .navbar .bm33-nav-panel :is(a,button){min-height:44px}
}
@media (max-width: 860px) {
  /* Die Verwaltungs-Seite hat kein Hamburger-Menü: Links hier sichtbar lassen. */
  body.bm-admin-shell .navbar .nav-inner,
  body.bm40-neon-public .navbar .nav-inner:has(.navlinks:not(.bm33-navlinks)) {
    height:auto; min-height:68px; flex-wrap:wrap; gap:8px 12px; padding-block:9px;
  }
  body.bm-admin-shell .navbar .navlinks,
  body.bm40-neon-public .navbar .navlinks:not(.bm33-navlinks) {
    display:flex; position:static; order:3; width:100%; flex-basis:100%;
    flex-direction:row; justify-content:flex-start; align-items:center;
    gap:6px; margin:0; padding:4px 0 0; background:transparent; border:0;
    box-shadow:none; overflow-x:auto; max-width:100%;
  }
  body.bm-admin-shell .navbar .navlinks a,
  body.bm40-neon-public .navbar .navlinks:not(.bm33-navlinks) a {
    display:inline-flex; flex:none; align-items:center; min-height:40px;
    padding:8px 12px; border:1px solid rgba(194,255,82,.26);
    border-radius:11px; background:rgba(198,255,90,.065);
    color:#eef7e4; font-size:12px; white-space:nowrap;
  }
  .bm-admin-shell .navbar .nav-actions{margin-left:auto; min-width:0}
  .bm-admin-shell .navbar .nav-actions .dotbadge{max-width:33vw;overflow:hidden;text-overflow:ellipsis}
  .bm-admin-shell .admin-toolbar{flex-wrap:wrap}
  .bm-admin-shell .admin-toolbar #adminLogout{min-height:42px}
  .bm-admin-shell #tabs{
    position:relative; display:flex; flex-wrap:nowrap; overflow-x:auto;
    scroll-snap-type:x proximity; overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch; scrollbar-width:thin;
    gap:8px; padding:10px 9px 12px; margin:14px 0;
  }
  .bm-admin-shell #tabs .btn{scroll-snap-align:start; flex:none; min-height:42px; font-size:12px; padding:10px 13px}
  .bm-admin-shell .admin-grid,.bm-admin-shell .form-grid{grid-template-columns:minmax(0,1fr)}
  .bm-admin-shell .admin-entry,.bm-admin-shell .admin-card,
  .bm-admin-shell #adminPanel,.bm-admin-shell .adm26-box{min-width:0}
  .bm-admin-shell .admin-list{max-height:60dvh}
  .bm-admin-shell input,.bm-admin-shell select,.bm-admin-shell textarea{max-width:100%;min-width:0}
}
@media (max-width: 700px) {
  /* Layout: mehr Nutzfläche, weniger Leerraum. */
  .bm40-neon-public .container,.bm-admin-shell .container{padding-inline:clamp(12px,4vw,19px)}
  .bm40-neon-public .section{padding-block:21px}
  .bm40-neon-public .section-title{align-items:flex-start;flex-wrap:wrap;row-gap:9px;margin-bottom:15px}
  .bm40-neon-public .section-title h2{font-size:clamp(23px,6.5vw,29px);line-height:1.12}
  .bm40-neon-public .section-title p{font-size:12px;line-height:1.55}
  .bm40-neon-public .card,.bm40-neon-public .bm33-program-card{border-radius:16px}
  body.bm40-neon-public[data-theme="festival"] .hero{grid-template-columns:minmax(0,1fr);padding:27px clamp(12px,4vw,19px) 23px;gap:23px}
  .bm40-neon-public .hero h1{font-size:clamp(42px,11.4vw,63px);margin:12px 0}
  .bm40-neon-public .hero p.lead{font-size:13px;line-height:1.62;margin-bottom:16px}
  .bm40-neon-public .hero-buttons{gap:9px}
  .bm40-neon-public .hero-buttons>.btn{min-height:45px;padding:11px 13px;font-size:12px}
  .bm40-neon-public .hero-proof{margin-top:18px;font-size:11px;row-gap:9px}
  .bm40-neon-public .bm40-app-callout{margin-top:13px}
  .bm40-neon-public .bm40-app-help{font-size:11px}
  .bm40-neon-public .player-shell{width:100%;max-width:430px;margin:0 auto;min-width:0;transform:none}
  .bm40-neon-public .player{padding:16px 15px 12px}
  .bm40-neon-public .dj-art-wrap{height:202px}
  .bm40-neon-public .orbit{width:175px;height:175px}
  .bm40-neon-public .floating-note{padding:8px;left:8px}
  .bm40-neon-public .floating-note.two{right:10px;top:115px}
  .bm40-neon-public .player-info h3{font-size:clamp(17px,5.5vw,23px);overflow-wrap:anywhere}
  .bm40-neon-public .player-info p{overflow-wrap:anywhere}
  .bm40-neon-public .player-bottom{gap:8px;margin-top:12px}
  .bm40-neon-public .player .play{width:51px;height:51px;min-width:51px}
  .bm40-neon-public .volume-wrap input{width:75px}
  .bm40-neon-public .bm42-like-button{min-height:44px}
  .bm40-neon-public .bm33-home-highlights{padding:14px clamp(12px,4vw,19px) 25px}
  .bm40-neon-public .bm33-news-tile{min-height:112px}
  .bm40-neon-public :is(.bm38-event-filters,.bm39-filterbar,.bm-news-filters,.release-tabs){max-width:100%;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain}
  .bm40-neon-public :is(.bm38-filter,.bm39-filter,.bm-news-filter,.release-tab){min-height:42px;flex-shrink:0}
  .bm40-neon-public .bm38-home-events,.bm40-neon-public .bm33-news-grid{grid-template-columns:minmax(0,1fr)}
  .bm40-neon-public .bm31-team-grid{gap:12px}
  .bm40-neon-public .bm31-team-card{min-width:0}
  .bm40-neon-public .bm-history-now{min-width:0}
  .bm40-neon-public .bm-history-now-text{min-width:0}
  .bm40-neon-public .bm-history-now-text h3{overflow-wrap:anywhere}
  .bm40-neon-public .bm-history-track-copy{min-width:0}
  .bm40-neon-public .bm-history-track-copy strong{overflow-wrap:anywhere}
  .bm40-neon-public .shout-card .shout-compose{font-size:16px}
  .bm40-neon-public .bm39-lightbox{padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
  .bm-admin-shell .admin-wrap{padding-top:17px;padding-bottom:90px}
  .bm-admin-shell #adminPanel{padding:12px}
  .bm-admin-shell .admin-toolbar .notice{line-height:1.5}
  .bm-admin-shell .adm26-grid{grid-template-columns:minmax(0,1fr)}
  .bm-admin-shell .adm26-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-admin-shell .adm26-stat{min-width:0}
}
@media (max-width: 470px) {
  body.bm40-neon-public .topline,body.bm-admin-shell .topline{font-size:9px;letter-spacing:.035em;padding:7px 9px}
  body.bm40-neon-public .navbar .nav-inner{height:61px;padding-block:0;gap:5px}
  body.bm40-neon-public .navbar .brand b{font-size:clamp(14px,4.2vw,18px)}
  body.bm40-neon-public .navbar .brand-mark{width:30px;height:30px;flex:none}
  body.bm40-neon-public .navbar .bm-v251-actions{gap:5px}
  body.bm40-neon-public .navbar .bm-v251-wish,
  body.bm40-neon-public .navbar .bm-v251-account-trigger,
  body.bm40-neon-public .navbar .mobile-menu{min-width:42px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  body.bm40-neon-public .navbar .navlinks.bm33-navlinks.open{max-height:calc(100dvh - 61px - env(safe-area-inset-bottom,0px));padding:10px 13px max(14px,env(safe-area-inset-bottom,0px))}
  body.bm40-neon-public .navbar .bm-v251-account-menu{right:-49px;max-width:calc(100vw - 22px);min-width:205px}
  .bm40-neon-public .hero-buttons>.btn{width:100%}
  .bm40-neon-public .hero-proof{justify-content:flex-start}
  .bm40-neon-public .bm40-app-button{min-height:45px}
  .bm40-neon-public .dj-art-wrap{height:181px}
  .bm40-neon-public .orbit{height:157px;width:157px;padding:6px}
  .bm40-neon-public .dj-caption{max-width:95%}
  .bm40-neon-public .player-ribbon{font-size:7px;letter-spacing:0;gap:3px}
  .bm40-neon-public .volume-wrap{max-width:92px}
  .bm40-neon-public .volume-wrap input{width:64px}
  .bm40-neon-public .bm42-like-inline{gap:6px;margin-top:9px}
  .bm40-neon-public .bm42-inline-count{font-size:10px}
  .bm40-neon-public .section-title h2{font-size:24px}
  .bm40-neon-public .bm31-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm40-neon-public .bm31-photo-ring{height:min(27vw,108px);width:min(27vw,108px)}
  .bm40-neon-public .bm31-team-info h3{font-size:15px}
  .bm40-neon-public .bm31-team-card{padding:12px 8px}
  .bm40-neon-public .bm39-gallery-grid{grid-template-columns:minmax(0,1fr)}
  .bm40-neon-public .bm42-layout{grid-template-columns:minmax(0,1fr)}
  .bm-admin-shell .adm26-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-admin-shell .adm26-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-admin-shell .adm26-shortcut{padding:10px}
  .bm-admin-shell .adm26-box-head{flex-wrap:wrap;gap:9px}
  .bm-admin-shell #adminPanel .admin-entry{flex-wrap:wrap;gap:10px}
  .bm-admin-shell #adminPanel .admin-entry .btn{min-height:40px}
  .bm-admin-shell input.field,.bm-admin-shell textarea.field,.bm-admin-shell select.field,
  .bm40-neon-public input.field,.bm40-neon-public textarea.field,.bm40-neon-public select.field{font-size:16px}
  .bm40-neon-public .sticky-player{padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}
  .bm40-neon-public .sticky-inner{gap:8px}
  .bm40-neon-public .sticky-title{min-width:0;max-width:calc(100vw - 135px)}
  .bm40-neon-public .sticky-title b,.bm40-neon-public .sticky-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bm40-neon-public .sticky-play{height:45px;width:45px;min-width:45px}
  .bm40-neon-public .bm-v25-top{bottom:calc(82px + env(safe-area-inset-bottom,0px))}
}
@media (max-width: 355px) {
  body.bm40-neon-public .navbar .brand{gap:5px}
  body.bm40-neon-public .navbar .brand b{font-size:13px}
  body.bm40-neon-public .navbar .bm-v251-actions{gap:3px}
  body.bm40-neon-public .navbar .bm-v251-wish,
  body.bm40-neon-public .navbar .bm-v251-account-trigger,
  body.bm40-neon-public .navbar .mobile-menu{min-width:39px;padding-inline:6px}
  .bm40-neon-public .player-ribbon span:nth-child(2n){display:none}
  .bm-admin-shell .adm26-shortcuts{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion: reduce) {
  .bm40-neon-public .orbit,
  .bm40-neon-public .bm31-photo-ring,
  .bm40-neon-public .player .wave span{animation:none!important}
}
