/* Shared finishing layer. Streaming widgets retain their dedicated dimensions. */
body:not(.widget){line-height:1.55}
body:not(.widget) main,body:not(.widget) section,body:not(.widget) article,body:not(.widget) .grid>*{min-width:0}
body:not(.widget) h1,body:not(.widget) h2,body:not(.widget) h3{overflow-wrap:anywhere;text-wrap:balance}
body:not(.widget) p,body:not(.widget) label,body:not(.widget) .muted{overflow-wrap:anywhere}
body:not(.widget) img{max-width:100%}
body:not(.widget) input,body:not(.widget) select,body:not(.widget) textarea{max-width:100%;min-width:0}
body:not(.widget) textarea{resize:vertical}
body:not(.widget) .card{border-radius:16px;box-shadow:0 8px 24px #0000001a}
body:not(.widget) .card h2{line-height:1.35}
body:not(.widget) .actions{gap:10px;align-items:center;flex-wrap:wrap}
body:not(.widget) button,body:not(.widget) .button,body:not(.widget) .btn{min-height:44px;line-height:1.35;white-space:normal}
body:not(.widget) :focus-visible{outline:3px solid var(--accent,#28c7ed);outline-offset:3px}
body:not(.widget) .heading{margin-bottom:24px}
body:not(.widget) .heading h1{font-size:clamp(25px,3vw,38px);line-height:1.2}
body:not(.widget) .radio-feature-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
body:not(.widget) .radio-community-row{min-width:0}
body:not(.widget) .responsive-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border-radius:12px;scrollbar-width:thin}
body:not(.widget) .responsive-table:focus-visible{outline-offset:-3px}
body:not(.widget) .responsive-table table{min-width:600px}
body:not(.widget) .rank-table{overflow-x:auto}
body:not(.widget) .public-player-code textarea{width:100%;font:13px/1.6 ui-monospace,monospace}
body:not(.widget) dialog{max-width:min(820px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
body:not(.widget) .portal-header .header-inner{gap:24px;flex-wrap:wrap}
body:not(.widget) .portal-header .brand{min-width:0;max-width:100%}
body:not(.widget) .portal-header .brand img{max-width:min(420px,100%);height:auto;object-fit:contain}
body:not(.widget) .portal-header nav{gap:12px 20px}
body:not(.widget) .station-card{box-shadow:0 6px 22px #00000024;transition:border-color .18s,box-shadow .18s}
body:not(.widget) .station-card:hover{box-shadow:0 10px 28px #00000038}
body:not(.widget) .station-identity>div{min-width:0}
body:not(.widget) .station-identity h3{font-size:17px;line-height:1.4}
body:not(.widget) .station-card .actions .btn{white-space:normal}
body:not(.widget) .portal-menu-toggle{display:none}
.menu-backdrop{display:none}
@media(min-width:1100px){body:not(.widget) .portal-header .header-inner{flex-wrap:nowrap}body:not(.widget) .portal-header .brand img{max-width:320px}}
@media(max-width:1000px){body:not(.widget) .portal-header .header-inner{gap:16px}body:not(.widget) .portal-header nav{margin-left:0;width:100%}body:not(.widget) .radio-feature-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 body:not(.widget) .container{padding-left:16px;padding-right:16px}
 body:not(.widget) .public-shell{width:100%;padding:16px}
 body.radio-admin-layout .shell>header{gap:10px;flex-wrap:wrap;padding:14px 16px}
 body.radio-admin-layout .shell>header>span{flex:1;min-width:120px;font-size:14px;overflow-wrap:anywhere}
 body.radio-admin-layout main{padding:16px}
 body:not(.widget) .grid,body:not(.widget) .records,body:not(.widget) .intro,body:not(.widget) .home-lower{grid-template-columns:minmax(0,1fr)}
 body:not(.widget) .stations{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body:not(.widget) .signup-banner{padding:22px;align-items:flex-start;flex-direction:column}
 body:not(.widget) .section-title{flex-wrap:wrap}
 body:not(.widget) .card{padding:18px}
 body:not(.widget) input,body:not(.widget) select,body:not(.widget) textarea{font-size:16px}
 body:not(.widget) .portal-header .header-inner{justify-content:space-between}
 body:not(.widget) .portal-header .brand{flex:1}
 body:not(.widget) .portal-header .brand img{max-width:240px}
 body.portal-menu-ready .portal-menu-toggle{display:inline-flex}
 body.portal-menu-ready .portal-header nav{display:none;align-items:stretch;gap:8px}
 body.portal-menu-ready.portal-menu-open .portal-header nav{display:flex}
 body.portal-menu-ready .portal-header nav>a{min-height:44px;padding:10px 14px;border-radius:10px}
 body:not(.widget) footer{flex-wrap:wrap}
 body.menu-open .menu-backdrop{display:block;position:fixed;inset:0;background:#0009;z-index:80;border:0;border-radius:0}
 body.menu-open aside#menu{z-index:90;max-width:calc(100vw - 40px);overflow-y:auto;max-height:100dvh}
}
@media(max-width:480px){
 body:not(.widget) .stations,body:not(.widget) .home-lower .stations{grid-template-columns:minmax(0,1fr)}
 body:not(.widget) .card{border-radius:12px;padding:16px}
 body:not(.widget) .portal-header .brand img{max-width:200px}
 body:not(.widget) .portal-header .portal-menu-toggle{padding:9px 12px}
 body:not(.widget) .podium{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 body:not(.widget) .podium .station-card{width:100%}
 body:not(.widget) .actions>form{max-width:100%}
}
@media(prefers-reduced-motion:reduce){body:not(.widget) *,body:not(.widget) *::before,body:not(.widget) *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(min-width:761px) and (max-width:800px){body.menu-open .menu-backdrop{display:block;position:fixed;inset:0;background:#0009;z-index:80;border:0;border-radius:0}body.menu-open aside#menu{z-index:90;max-width:calc(100vw - 40px);overflow-y:auto;max-height:100dvh}}
body:not(.widget) .station-card .station-body{display:grid;grid-template-columns:minmax(64px,.75fr) minmax(0,1.25fr);align-items:center;gap:14px}
body:not(.widget) .station-card .station-info{min-width:0}
body:not(.widget) .station-card .station-logo{width:100%;height:112px;max-width:112px;object-fit:contain;margin:auto}
body:not(.widget) .station-card .station-info h3{font-size:18px;line-height:1.35;letter-spacing:0}
body:not(.widget) .station-card .metrics{font-size:14px;line-height:1.5;gap:8px}
body:not(.widget) .station-card .review-count{font-size:13px}
body:not(.widget) .station-card .rating{font-size:15px}
@media(max-width:480px){body:not(.widget) .station-card .station-body{grid-template-columns:90px minmax(0,1fr)}body:not(.widget) .station-card .station-logo{height:90px}body:not(.widget) .station-card .station-info h3{font-size:19px}}

/* Fluid controls and containers shared by the public site and administration. */
*,*::before,*::after{box-sizing:border-box}
html{width:100%;-webkit-text-size-adjust:100%}
body{min-width:0;margin:0}
main,.shell,.public-shell,.container,form,fieldset,dialog{min-width:0;max-width:100%}
img,video,canvas{max-width:100%}
audio{max-width:100%;min-width:0}
iframe{max-width:100%}
pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
input,select,textarea,button{font:inherit}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{min-width:0;max-width:100%}
button,.button,.btn{touch-action:manipulation}
body:not(.widget) .radio-page-content .radio-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1000px){body:not(.widget) .radio-page-content .radio-feature-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:800px){
 body:not(.widget) .public-shell{padding:0;width:100%}
 body:not(.widget) .public-shell>main{width:100%;padding:16px}
 body:not(.widget) .grid,body:not(.widget) .records,body:not(.widget) .intro,body:not(.widget) .home-lower{grid-template-columns:minmax(0,1fr)}
 body:not(.widget) .actions>*,body:not(.widget) .actions form{min-width:0;max-width:100%}
 body:not(.widget) .metrics{flex-wrap:wrap;min-width:0}
 body:not(.widget) input,body:not(.widget) select,body:not(.widget) textarea{font-size:16px}
 body:not(.widget) dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:16px}
 body:not(.widget) .radio-top-player .top-player-inner{min-width:0;max-width:100%}
 body:not(.widget) .radio-top-player .top-player-details{min-width:0;overflow-wrap:anywhere}
 body:not(.widget) .radio-top-player .top-player-buttons{flex-wrap:wrap;min-width:0}
 body:not(.widget) .radio-top-player .top-player-volume{min-width:0;max-width:100%}
}
@media(max-width:480px){
 body:not(.widget) .public-shell>main,body.radio-admin-layout main{padding:12px}
 body:not(.widget) .heading{margin-bottom:16px}
 body:not(.widget) h1{font-size:26px;line-height:1.25}
 body:not(.widget) .station-card .station-body{grid-template-columns:64px minmax(0,1fr);gap:12px}
 body:not(.widget) .station-card .station-logo{width:64px;height:64px}
 body:not(.widget) .station-card .station-info h3{font-size:17px}
 body:not(.widget) .actions>button,body:not(.widget) .actions>.button{flex:1 1 auto}
 body:not(.widget) .radio-final-footer .radio-discord-footer{max-width:100%;white-space:normal}
}
@media(hover:none){button,.button,.btn,summary{min-height:44px}}
