:root{color-scheme:dark;--bg:#0d1012;--panel:#161b1e;--panel2:#1b2225;--line:#293136;--text:#f2f5f3;--sub:#93a09f;--mint:#c5ff68;--mint-dim:#273823;font-family:Inter,-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;-webkit-font-smoothing:antialiased}
button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.5;cursor:wait}
button:focus-visible,input:focus-visible,.dropzone:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
[hidden]{display:none!important}.app-shell{min-height:100dvh;display:flex}.sidebar{width:216px;flex:0 0 216px;border-right:1px solid var(--line);padding:27px 15px;display:flex;flex-direction:column;gap:42px;position:sticky;top:0;height:100dvh}
.logo{display:flex;align-items:center;gap:10px;padding:0 9px}.logo-symbol,.brandmark{display:grid;place-items:center;background:var(--mint);color:#102013;border-radius:11px;width:38px;height:38px;font-size:26px;font-weight:950;letter-spacing:-3px;padding-right:4px;line-height:1}.logo-symbol span,.brandmark span{color:#5b862b}
.logo-text{font-size:17px;line-height:1;font-weight:890;letter-spacing:-.65px}.logo-text small{display:block;color:var(--sub);font-size:10px;margin-top:4px;letter-spacing:1.7px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-link{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:0;border-radius:11px;background:transparent;color:#a1adaf;padding:13px 14px;font-weight:650}.side-link svg{width:19px;height:19px}.side-link.active{background:var(--mint-dim);color:var(--mint)}.side-link:hover:not(.active){background:#1e2528;color:white}
.main-area{flex:1;min-width:0}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px}.topbar-title{font-size:12px;letter-spacing:1.2px;font-weight:850;color:#b4bfbd}.mobile-wordmark{display:none}.top-actions{display:flex;align-items:center;gap:14px}.pill-live{display:inline-flex;align-items:center;gap:8px;border:1px solid #384e38;border-radius:999px;padding:7px 11px;color:#b9e6a0;font-size:10px;font-weight:850;white-space:nowrap}.pill-live i,.status-dot{display:block;border-radius:50%;background:var(--mint);width:7px;height:7px;flex:none}.pill-live.off{color:#d3a3a1;border-color:#593b3c}.pill-live.off i{background:#e68e89}.round-btn{width:35px;height:35px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;background:transparent;color:#9faeaf}.round-btn svg{width:17px;height:17px}.round-btn:hover{color:white;background:#22282d}
.content{max-width:1110px;margin:auto;padding:36px 36px 65px}.view{display:none}.view.active{display:block}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 24px}.page-heading h1{font-size:31px;letter-spacing:-1.5px;line-height:1.2;margin:0;font-weight:820}
.hero{background:var(--panel);border:1px solid var(--line);border-radius:19px;padding:28px}.hero-center{display:flex;align-items:center;gap:24px;min-width:0}.hero-disc{width:112px;height:112px;flex:0 0 112px;border-radius:16px;background:linear-gradient(145deg,#263f2d,#172f28);display:grid;place-items:center}.disc-core{font-weight:950;font-size:58px;color:var(--mint);letter-spacing:-7px;padding-right:7px}.disc-core span{color:#a1b56c}.hero-track{min-width:0;flex:1}.tiny-label{color:var(--mint);font-size:11px;letter-spacing:.2px;font-weight:700}.hero-track h2{font-size:clamp(19px,2.5vw,29px);font-weight:780;line-height:1.15;letter-spacing:-.9px;margin:10px 0 6px;overflow-wrap:anywhere}.hero-track p{color:var(--sub);margin:0;font-size:14px}.equalizer{display:none}.hero-bottom{display:flex;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.action-primary,.action-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:10px;min-height:46px;padding:0 18px;font-weight:760;border:1px solid transparent}.action-primary{background:var(--mint);color:#172218}.action-secondary{background:#242c2f;color:#e3eae9;border-color:#384246}.action-primary svg,.action-secondary svg{width:18px;height:18px}.action-primary:hover{background:#d5ff94}.action-secondary:hover{background:#30383a}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:12px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}.metric-label{display:block;color:var(--sub);font-size:12px;margin-bottom:10px}.metric strong{display:block;font-size:29px;letter-spacing:-1px;line-height:1.15;font-weight:790;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.actions-row{display:flex;align-items:stretch;gap:9px;margin-top:22px}.quick-card,.refresh-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:45px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:#e0e8e4;font-weight:700;font-size:13px;padding:0 16px}.quick-card svg,.refresh-button svg{width:18px;height:18px}.quick-card:hover,.refresh-button:hover{border-color:#596c57;background:#202a27}.refresh-button{width:46px;flex:0 0 46px;padding:0}.status-strip{display:flex;align-items:center;gap:9px;margin-top:24px;color:var(--sub);font-size:12px}.status-dot{width:6px;height:6px}.memory-status{margin-left:auto;font-variant-numeric:tabular-nums}
.counter{display:inline-flex;font-size:14px;color:var(--sub);font-weight:600;letter-spacing:0;vertical-align:middle;background:#20282b;border-radius:999px;padding:5px 10px}.small-btn{border:0;border-radius:10px;background:var(--mint);color:#172218;padding:11px 15px;font-size:13px;font-weight:760}.search-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:0 14px;margin-bottom:14px;height:47px}.search-wrap svg{flex:none;color:#8e9e9f;width:18px;height:18px}.search-wrap input{background:transparent;border:0;outline:0;color:var(--text);width:100%;min-width:0;font-size:14px}.search-wrap input::placeholder{color:#758584}.track-list{display:flex;flex-direction:column;gap:7px}.song-row{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:11px 12px;min-width:0}.song-icon{width:39px;height:39px;flex:0 0 39px;border-radius:9px;background:#29372e;display:grid;place-items:center;color:var(--mint);font-size:19px}.song-details{flex:1;min-width:0}.song-details strong{display:block;font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:5px;font-weight:750}.song-details small{display:block;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-duration{color:var(--sub);font-size:12px}.song-actions{display:flex;gap:3px}.icon-btn{background:transparent;border:1px solid transparent;color:#a3b1ae;border-radius:9px;width:35px;height:35px;display:grid;place-items:center}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{background:#2a3538;color:white}.icon-btn.danger:hover{background:#442728;color:#ffb2b2}.empty-state{text-align:center;padding:65px 20px;color:var(--sub)}.empty-state strong{display:block;color:var(--text);font-size:17px;margin-bottom:16px}
.dropzone{min-height:215px;display:flex;flex-direction:column;gap:12px;justify-content:center;align-items:center;border:1.5px dashed #43564a;border-radius:16px;background:#151e1b;text-align:center;padding:24px;transition:background .2s,border-color .2s}.dropzone svg{width:27px;height:27px;color:var(--mint)}.dropzone strong{font-size:19px}.dropzone small{font-size:12px;color:var(--sub)}.dropzone:hover,.dropzone.dragover{background:#1d2a22;border-color:var(--mint)}.upload-info{margin-top:15px;font-size:12px;color:var(--sub);line-height:1.5}.upload-queue{display:grid;gap:9px;margin-top:14px}.upload-job{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:12px}.upload-job i{font-size:18px;font-style:normal;color:var(--mint)}.upload-job>div{flex:1;min-width:0}.upload-job strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.upload-job small{display:block;color:var(--sub);margin-top:5px;font-size:12px}.upload-progress{margin-top:8px;height:3px;border-radius:2px;background:#35403a;overflow:hidden}.upload-progress span{display:block;height:100%;width:0;background:var(--mint);transition:width .2s}
.mobile-nav{display:none}.toast{position:fixed;z-index:150;left:50%;bottom:24px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:var(--mint);color:#172218;border-radius:11px;padding:12px 17px;font-size:13px;font-weight:750;max-width:calc(100vw - 34px);box-shadow:0 12px 35px #0007;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#ffd2d2;color:#481f20}.modal{position:fixed;inset:0;z-index:200;background:#030709c7;display:grid;place-items:center;padding:20px;backdrop-filter:blur(7px)}.modal-dialog{border:1px solid #3c4c4e;border-radius:16px;background:var(--panel);width:min(370px,100%);padding:24px}.modal-dialog h3{margin:0;font-size:22px}.modal-dialog p{color:var(--sub);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.modal-actions{display:flex;gap:9px;margin-top:20px}.modal-actions button{flex:1;border-radius:10px;border:1px solid var(--line);background:#263033;color:var(--text);padding:12px;font-weight:700}.modal-actions button:last-child{background:#db6c69;border-color:transparent;color:#180c0c}
/* Compact login */
.login-body{min-height:100dvh;background:var(--bg)}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:22px}.auth-card{width:min(370px,100%);padding:30px;background:var(--panel);border:1px solid var(--line);border-radius:17px}.brandline{display:flex;gap:11px;align-items:center;margin-bottom:28px}.brandline .brandmark{width:41px;height:41px;border-radius:10px;font-size:26px}.brandline strong{font-size:17px;font-weight:890;letter-spacing:-.8px}.brandline small{display:block;font-size:10px;color:var(--sub);letter-spacing:1.4px;margin-top:2px}.auth-card h1{font-size:28px;letter-spacing:-1px;margin:0 0 24px}.login-form label{font-size:12px;color:var(--sub);display:block;margin-bottom:9px}.login-form input{display:block;width:100%;min-height:47px;border-radius:10px;border:1px solid #455551;background:#101619;color:white;padding:0 13px;outline:0}.login-form input:focus{border-color:var(--mint)}.login-form button{display:block;width:100%;margin-top:11px;min-height:47px;background:var(--mint);border:0;border-radius:10px;color:#172218;font-size:14px;font-weight:780}.login-error{margin:0 0 17px;padding:11px 12px;background:#43252b;border:1px solid #7c3b46;border-radius:9px;color:#ffbdc4;font-size:13px}
@media(max-width:750px){.sidebar{display:none}.topbar{height:62px;padding:0 19px}.desktop-wordmark{display:none}.mobile-wordmark{display:inline;font-size:20px;letter-spacing:-1.2px;font-weight:900;color:var(--text)}.mobile-wordmark span{color:var(--mint)}.top-actions{gap:12px}.pill-live{font-size:9px}.content{padding:28px 17px calc(100px + env(safe-area-inset-bottom))}.page-heading{margin-bottom:17px}.page-heading h1{font-size:29px}.hero{padding:17px;border-radius:15px}.hero-center{gap:15px}.hero-disc{width:79px;height:79px;flex-basis:79px;border-radius:12px}.disc-core{font-size:45px;letter-spacing:-6px}.hero-track h2{font-size:20px;letter-spacing:-.5px;margin:7px 0 4px}.hero-track p{font-size:12px}.tiny-label{font-size:10px}.hero-bottom{margin-top:18px;padding-top:15px}.action-primary,.action-secondary{min-height:44px;font-size:13px}.action-primary{flex:1;padding:0 11px}.action-secondary{padding:0 12px}.metrics{gap:8px;margin-top:9px}.metric{padding:13px 10px;border-radius:12px}.metric-label{font-size:11px;margin-bottom:9px}.metric strong{font-size:22px;letter-spacing:-.6px}.actions-row{gap:7px;margin-top:16px}.quick-card{flex:1;min-width:0;padding:0 7px;font-size:12px;gap:6px}.quick-card svg{height:17px;width:17px}.refresh-button{width:42px;flex-basis:42px}.status-strip{margin-top:18px;font-size:11px}.memory-status{display:none}.mobile-nav{position:fixed;z-index:80;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom));padding:5px 17px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#13191bef;backdrop-filter:blur(18px);display:flex;justify-content:space-around;align-items:center}.mobile-link{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:0;background:transparent;color:#8d9c9b;font-size:10px;font-weight:650;padding:4px}.mobile-link svg{width:20px;height:20px}.mobile-link.active{color:var(--mint)}.toast{bottom:calc(75px + env(safe-area-inset-bottom))}.song-row{gap:9px;padding:9px}.song-icon{width:35px;height:35px;flex-basis:35px}.song-duration{display:none}.icon-btn{width:32px;height:33px}.dropzone{min-height:195px}.auth-card{padding:26px}.auth-wrap{padding:18px}}
@media(max-width:360px){.quick-card{font-size:11px}.quick-card svg{display:none}.hero-disc{width:66px;height:66px;flex-basis:66px}.hero-track h2{font-size:17px}.metric strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Jingle library: compact controls */
.jingle-settings{font-size:12px;color:var(--sub);margin:-3px 0 14px}.jingle-state{font-size:12px;color:var(--sub);margin-top:12px;min-height:18px}@media(max-width:750px){.mobile-nav{padding-left:8px;padding-right:8px}.mobile-link{font-size:9px}.mobile-link svg{width:19px;height:19px}}
/* Director extensions */
.rotation-settings{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:13px 15px;margin-bottom:11px}
.rotation-settings>div{display:flex;flex-direction:column;gap:5px}.rotation-settings strong{font-size:13px}.rotation-settings span{font-size:11px;color:var(--sub)}.rotation-settings b{color:#d9e6e0;font-weight:650}
.small-outline{background:#242c2f;border:1px solid #354045;border-radius:9px;color:var(--text);padding:9px 11px;font-size:12px;font-weight:690;white-space:nowrap}
.tier-filter{display:flex;gap:7px;overflow:auto;margin-bottom:11px}.tier-filter button{flex:none;border:1px solid var(--line);background:var(--panel);color:var(--sub);border-radius:20px;padding:7px 12px;font-size:12px;font-weight:700}.tier-filter button.active{color:#1a2e18;background:var(--mint);border-color:var(--mint)}
.tier-selector{max-width:105px;margin-top:6px;border:1px solid #34433d;background:#202c27;color:#d2e5d7;border-radius:7px;padding:4px 6px;font-size:11px;outline:0}.tier-selector:focus{border-color:var(--mint)}
.section-line{margin-top:30px;margin-bottom:13px}.section-line h2{font-size:17px;margin:0}.small-hint{font-size:12px;color:var(--sub);margin:-10px 0 17px}
.programme-form{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:15px;display:grid;gap:12px}.programme-form label,.form-modal label{display:grid;gap:6px;font-size:12px;color:var(--sub)}.programme-form input,.programme-form select,.form-modal input{width:100%;border:1px solid #394649;border-radius:9px;background:#11171a;color:var(--text);height:42px;padding:8px 10px;font-size:14px;min-width:0}.programme-form input:focus,.programme-form select:focus,.form-modal input:focus{border-color:var(--mint);outline:0}.programme-form .small-btn{justify-self:start}.form-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px;min-width:0}
.programmes{display:grid;gap:8px;margin-top:12px}.programme-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border:1px solid var(--line);background:var(--panel);border-radius:10px}.programme-row strong{display:block;font-size:13px;margin-bottom:5px}.programme-row small{font-size:11px;color:var(--sub)}
.form-modal{display:grid;gap:12px}.form-modal h3{margin:0}.form-modal p{margin:0}.form-modal .modal-actions{margin-top:5px}
@media(max-width:750px){.mobile-link{min-width:0}.mobile-link span{font-size:9px}.song-actions{flex-wrap:wrap;justify-content:flex-end;max-width:156px}.song-row{gap:6px}.song-details strong{font-size:12px}.programme-form{padding:12px}.form-grid{grid-template-columns:1fr 1fr}.rotation-settings{padding:11px}.rotation-settings span{line-height:1.4}.small-outline{padding:8px}}

/* Единственная фирменная обложка для ВСЕХ треков. Встроенные изображения MP3 не используются. */
.station-cover{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.hero-disc{overflow:hidden;background:#12201e}
.song-icon{overflow:hidden;padding:0!important;background:#12201e!important}
.song-icon img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* VOLNA_IOS_ZOOM_FIX: Safari must not auto-zoom form fields. */
@media (pointer: coarse) {
  input:not([type="file"]),select,textarea { font-size:16px !important; }
}

/* VOLNA_HIDDEN_TRACK_CSS: reversible hide from radio rotation. */
.song-row.is-hidden{background:#11171a;border-color:#283236}
.song-row.is-hidden .song-icon{opacity:.55}
.song-row.is-hidden .song-details strong{color:#81908e}
.hidden-marker{display:inline-block;margin-top:5px;color:#d7bd7b;font-weight:700;font-size:11px}
.visibility-btn.is-hidden{color:#c9a755;background:#302b1d;border:1px solid #5e4e2a}
.visibility-btn:disabled{opacity:.4}
.song-row.is-hidden .song-actions button[disabled]{opacity:.3}
@media(max-width:750px){.song-actions{max-width:190px}.song-details{min-width:90px}}

.jingle-beat-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}
.jingle-beat-tools button{font-size:14px;padding:10px 14px}

/* VOLNA_SHOWS_2026: compact two-line live display and show controls */
.hero-track{min-width:0;overflow:hidden}
.hero-track h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;max-height:2.5em}
.hero-track p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.reserve-row .song-details{min-width:0;overflow:hidden}
.reserve-row .song-details strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reserve-row .song-details small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reserve-row .song-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.reserve-row .small-outline{padding:8px 10px}
.compact-line{display:flex;align-items:center;justify-content:space-between}
.intro-collection{display:flex;flex-wrap:wrap;gap:7px}
.intro-item{display:flex;gap:8px;align-items:center;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:11px;padding:5px 8px 5px 11px}
.intro-item span{font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:180px}
.intro-item button{flex:none}
#showEditForm{display:grid;gap:12px}
.show-modal-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:750px){.reserve-row .song-actions{max-width:190px}.reserve-row{gap:7px}.reserve-row .song-icon{width:38px;height:38px;flex-basis:38px}.reserve-row .song-details{flex:1 1 110px}.hero-track p{font-size:12px}}\n.programme-details{margin-top:14px}.programme-details summary{cursor:pointer;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:13px 15px;font-size:13px;font-weight:700}.programme-details summary::-webkit-details-marker{display:none}.programme-details summary::after{content:'+';float:right;color:var(--mint)}.programme-details[open] summary{border-radius:11px 11px 0 0}.programme-details[open] summary::after{content:'−'}.programme-details .programme-form{border-radius:0 0 11px 11px;border-top:0}.programme-details select{font-size:16px}

/* VOLNA AIR HISTORY: compact by default; no extra bottom-nav button. */
.air-history{margin-top:17px;background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}
.air-history>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:15px 16px;font-size:14px;font-weight:750;color:var(--text)}
.air-history>summary::-webkit-details-marker{display:none}
.air-history>summary:after{content:'⌄';color:var(--sub);font-size:20px;margin-left:auto;line-height:15px}
.air-history[open]>summary:after{transform:rotate(180deg)}
.history-count{font-size:11px;color:var(--sub);font-weight:500;margin-left:9px;margin-right:6px}
.history-filters{display:flex;gap:7px;padding:0 13px 13px}
.history-filters button{border:1px solid var(--line);background:transparent;color:var(--sub);font-size:12px;border-radius:9px;padding:8px 12px}
.history-filters button.active{background:var(--mint);border-color:var(--mint);color:#132015;font-weight:750}
.history-items{padding:0 14px 6px}
.history-row{display:flex;gap:11px;align-items:center;border-top:1px solid var(--line);padding:11px 0;min-width:0}
.history-icon{width:33px;height:33px;flex:0 0 33px;border-radius:8px;background:#263529;color:var(--mint);display:grid;place-items:center}
.history-detail{flex:1;min-width:0}
.history-detail strong,.history-detail small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-detail strong{font-size:13px;font-weight:750}
.history-detail small{font-size:11px;color:var(--sub);margin-top:3px}
.history-time{color:var(--sub);font-size:11px;flex:0 0 auto;font-variant-numeric:tabular-nums}
.history-empty{color:var(--sub);font-size:13px;padding:18px 0;text-align:center}

/* VOLNA voice-only jingles v1 */
.jingle-beat-tools, #beatStatus, #beatInput {display:none!important;}
