/* Редактор медиаэкрана КС54 */
:root{
  --bg:#060B1A;--surface:#0D1634;--surface2:#13204A;--line:#22305C;--text:#EEF2FA;--muted:#A3AFCC;
  --orange:#FF7614;--blue:#005EAA;--cyan:#2EE6D6;--green:#C4F03A;--red:#FF6B5E;--gold:#FFD23F;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:500 15px/1.4 "Golos Text",Manrope,system-ui,sans-serif}
body{min-height:100vh}
[hidden]{display:none!important}
a{color:var(--orange)}
button,input,select,textarea{font:inherit;color:inherit}
.muted{color:var(--muted)}
.small{font-size:13px}
.err{color:var(--red);font-weight:700;min-height:1.4em}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:2px solid var(--line);border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--surface);color:var(--text);font-weight:800;cursor:pointer;text-decoration:none;white-space:nowrap;user-select:none;transition:filter .15s,background .15s}
.btn:hover{filter:brightness(1.15)}
.btn:disabled{opacity:.45;cursor:default;filter:none}
.btn-primary{background:var(--orange);border-color:var(--orange);color:#012673}
.btn-blue{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-green{background:var(--green);border-color:var(--green);color:#012673}
.btn-danger{background:transparent;border-color:#5A2333;color:#FF8A96}
.btn-ghost{background:transparent}
.btn-big{min-height:52px;font-size:17px;padding:0 22px}
.btn-small{min-height:34px;padding:0 10px;font-size:13px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.btn-icon{min-width:38px;min-height:38px;padding:0;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.btn-urgent{background:transparent;border-color:#C8102E;color:#FF6B78}
.btn-urgent.on{background:#C8102E;color:#fff;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(200,16,46,.35)}}

/* вход */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;padding:32px;border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);background:var(--surface);border:2px solid var(--line)}
.login-box h1{margin:4px 0 0;font:800 24px Unbounded,sans-serif}
.login-box p{margin:0}
.login-logo{width:72px;height:72px;border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);background:#fff;display:flex;align-items:center;justify-content:center}
.login-logo img{width:56px}

/* шапка */
.top{position:sticky;top:0;z-index:30;background:rgba(11,18,38,.97);border-bottom:2px solid var(--line);padding:8px 16px;display:flex;flex-direction:column;gap:8px}
.top-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font:700 16px Unbounded,sans-serif}
.brand img{width:34px;height:34px;padding:4px;border-radius:0;background:#fff;object-fit:contain}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tabs button{min-height:40px;padding:0 14px;border:0;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:transparent;color:var(--muted);font-weight:800;cursor:pointer}
.tabs button.on{background:var(--surface2);color:var(--text)}
.save-state{margin-left:auto;font-weight:800;font-size:14px;color:var(--green);display:flex;align-items:center;gap:6px}
.save-state::before{content:'';width:9px;height:9px;border-radius:50%;background:currentColor}
.save-state.saving{color:var(--gold)}
.save-state.error{color:var(--red)}
.mode{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700}
.mode select{min-height:42px;padding:0 10px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid var(--line);background:var(--surface);font-weight:800}
.mode em{font-style:normal;color:var(--muted);font-size:13px}

/* вид слайдов: 3 колонки */
.view{padding:16px}
.view.narrow{max-width:980px;margin:0 auto}
.slides-view{display:grid;grid-template-columns:280px minmax(0,1fr) minmax(320px,40%);gap:16px;align-items:start}
.lib{position:sticky;top:120px;max-height:calc(100vh - 136px);overflow:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}
.btn-add{width:100%}
.lib-group{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.lib-group h3{margin:6px 0 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.lib-item{display:flex;align-items:center;gap:10px;padding:6px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid transparent;background:var(--surface);cursor:pointer;text-align:left;width:100%}
.lib-item:hover{border-color:var(--line)}
.lib-item.on{border-color:var(--orange)}
.lib-item .nm{font-weight:700;font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.chips{display:flex;gap:4px;margin-top:3px;flex-wrap:wrap}
.chip{font-size:11px;font-weight:800;padding:1px 6px;border-radius:0;background:var(--line);color:var(--muted)}
.chip.c-normal{background:#2a3c75;color:#c8d6ff}.chip.c-event{background:#5a3417;color:#ffd0b2}.chip.c-quiet{background:#1e4148;color:#b7f1f8}
.chip.off{opacity:.5;text-decoration:line-through}

/* миниатюры: настоящий слайд, уменьшенный */
.thumb{position:relative;flex-shrink:0;overflow:hidden;border-radius:0;background:#000}
.thumb>.th-in{position:absolute;left:0;top:0;width:2000px;height:1600px;transform-origin:0 0;pointer-events:none}
.th-s{width:80px;height:64px}
.th-m{width:100%;aspect-ratio:5/4;height:auto}

/* редактор */
.editor{min-width:0;display:flex;flex-direction:column;gap:14px}
.card{background:var(--surface);border:2px solid var(--line);border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);padding:16px;display:flex;flex-direction:column;gap:12px}
.card h2{margin:0;font:700 18px Unbounded,sans-serif}
.card h3{margin:0;font-size:16px;font-weight:800}
.ed-head{display:flex;flex-direction:column;gap:10px}
.ed-type{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cyan)}
.ed-actions{display:flex;flex-wrap:wrap;gap:8px}
.inpl{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-weight:700}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}

/* поля */
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld>span{font-weight:700;font-size:14px;color:#D5DAEA}
.fld input[type=text],.fld input[type=password],.fld input[type=number],.fld input[type=date],.fld input[type=time],.fld input[type=datetime-local],.fld input[type=url],.fld select,.fld textarea,input.inp,select.inp{
  width:100%;min-height:44px;padding:9px 12px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid var(--line);background:var(--bg);color:var(--text);font-size:16px;outline:none}
.fld textarea{resize:vertical;line-height:1.4}
.card>textarea{width:100%;padding:10px 12px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px dashed var(--blue);background:var(--bg);color:var(--text);outline:none;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus{border-color:var(--blue)}
.mono{font-family:'JetBrains Mono',monospace!important}
.hint{font-size:13px;color:var(--muted)}
.hint.warn{color:var(--gold);font-weight:700}
.note{padding:10px 12px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#10284a;border:1px solid #23477d;color:#cfe0ff;font-size:14px}
.check{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer;min-height:40px}
.check input{width:22px;height:22px;accent-color:var(--orange)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}

/* списки */
.list{display:flex;flex-direction:column;gap:10px}
.li{border:2px solid var(--line);border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);padding:12px;display:flex;flex-direction:column;gap:10px;background:#0F1834}
.li-head{display:flex;align-items:center;gap:8px}
.li-head b{flex:1;font-size:14px;color:var(--muted)}
.li-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.li.compact{padding:8px}
.li.compact{flex-direction:row;align-items:flex-end;gap:8px}
.li.compact .li-grid{flex:1;min-width:0;grid-template-columns:76px 52px 128px minmax(0,1.3fr) minmax(0,1fr);gap:6px;align-items:end}
.li.compact .fld>span{font-size:12px}
.li.compact .fld input,.li.compact .fld select{min-height:38px;padding:6px 8px;font-size:15px}

/* картинки и QR */
.img-fld{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.img-fld .ph{width:96px;height:72px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted);font-size:12px;flex-shrink:0}
.img-fld .ph img{width:100%;height:100%;object-fit:cover}
.qr-prev{width:72px;height:72px;border-radius:0;background:#fff;padding:3px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#012673;font-weight:800;font-size:12px}
.qr-prev img{width:100%;height:100%;object-fit:contain}
.file-btn{position:relative;overflow:hidden}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}

/* превью */
.preview-pane{position:sticky;top:120px;display:flex;flex-direction:column;gap:10px;min-width:0}
.preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.preview{position:relative;width:100%;aspect-ratio:5/4;background:#000;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);overflow:hidden;border:2px solid var(--line)}
.preview-stage{position:absolute;left:0;top:0;width:2000px;height:1600px;transform-origin:0 0}
.warn-box{padding:10px 12px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#3a2a07;border:1px solid #7a5a12;color:#FFD98A;font-weight:700;font-size:14px}
.warn-box.bad{background:#3d0f18;border-color:#8a2234;color:#FFB3BD}

/* плейлисты */
.pl-tabs{display:flex;gap:8px;flex-wrap:wrap}
.pl-tabs button{min-height:46px;padding:0 18px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid var(--line);background:var(--surface);font-weight:800;cursor:pointer}
.pl-tabs button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.pl-list{display:flex;flex-direction:column;gap:8px}
.pl-item{display:grid;grid-template-columns:28px 90px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--surface);border:2px solid var(--line)}
.pl-item.dragging{opacity:.4}
.pl-item.drop-before{box-shadow:0 -4px 0 var(--orange)}
.pl-item.off{opacity:.55}
.pl-item .handle{cursor:grab;color:var(--muted);font-size:22px;text-align:center;user-select:none}
.pl-item .nm{font-weight:800;cursor:pointer}
.pl-item .nm:hover{text-decoration:underline}
.pl-ctrl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pl-ctrl input[type=number]{width:70px;min-height:38px;padding:4px 8px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid var(--line);background:var(--bg);font-size:15px}
.pl-ctrl select{min-height:38px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border:2px solid var(--line);background:var(--bg);padding:0 6px;font-size:14px}
.toggle{position:relative;width:52px;height:30px;flex-shrink:0;cursor:pointer}
.toggle input{opacity:0;width:0;height:0}
.toggle span{position:absolute;inset:0;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--line);transition:.2s}
.toggle span::after{content:'';position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s}
.toggle input:checked+span{background:var(--green)}
.toggle input:checked+span::after{transform:translateX(22px)}

/* модальные окна */
.modal{position:fixed;inset:0;z-index:100;background:rgba(3,6,16,.78);display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;overflow:auto}
.modal-box{width:100%;max-width:1100px;background:var(--bg);border:2px solid var(--line);border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);padding:20px;display:flex;flex-direction:column;gap:14px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.modal-head h2{margin:0;font:700 20px Unbounded,sans-serif}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.gal-item{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);border:2px solid var(--line);background:var(--surface);cursor:pointer;text-align:left}
.gal-item:hover{border-color:var(--orange)}
.gal-item b{font-size:15px}
.gal-item span{font-size:13px;color:var(--muted)}
.urg-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}

/* таблица разбора Excel */
.parse-table{width:100%;border-collapse:collapse;font-size:14px}
.parse-table th,.parse-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.parse-table th{color:var(--muted);font-size:12px;text-transform:uppercase}
.tbl-wrap{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}

/* команды турнира */
.team{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:8px;align-items:center;padding:8px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#0F1834;border:2px solid var(--line)}
.team .pts{display:flex;gap:6px;flex-wrap:wrap}
.team .pts .btn{min-width:52px;min-height:46px;font-size:18px}
.team input.inp{min-height:46px}
.pts-n{width:64px!important}

/* фото */
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.photos .ph{position:relative;aspect-ratio:1;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);overflow:hidden;background:var(--line)}
.photos .ph img{width:100%;height:100%;object-fit:cover}
.photos .ph button{position:absolute;right:4px;top:4px}

/* расписание */
.sched-day{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#0F1834;border:2px solid var(--line)}
.sched-day h4{margin:0;font-size:15px}
.sched-row{display:grid;grid-template-columns:110px 110px minmax(0,1fr) auto;gap:8px;align-items:center}
.days{display:flex;gap:6px;flex-wrap:wrap}
.days label{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--surface2);font-weight:700;cursor:pointer}
.backup-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;max-width:90vw;padding:12px 18px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--surface2);border:2px solid var(--line);font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.toast.bad{border-color:var(--red);color:#FFB3BD}

.back-btn{display:none}

/* планшет */
@media (max-width:1250px){
  .slides-view{grid-template-columns:240px minmax(0,1fr)}
  .preview-pane{grid-column:2;position:static;order:-1}
  .editor{grid-column:2}
  .lib{grid-row:1 / span 2}
}
/* телефон */
@media (max-width:800px){
  html,body{font-size:15px}
  .view{padding:10px}
  .top{padding:6px 10px;position:static}
  .brand span{display:none}
  .tabs{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}
  .tabs button{flex:1;padding:0 8px;font-size:14px}
  .save-state{font-size:13px}
  .top-controls .btn{flex:1 1 40%;min-width:0;white-space:normal;text-align:center;line-height:1.15;padding:4px 8px}
  #jumpBtn{display:none}
  .mode{width:100%}
  .mode select{flex:1}
  .slides-view{display:flex;flex-direction:column}
  .lib{position:static;max-height:none;width:100%}
  .lib .th-s{width:96px;height:77px}
  .slides-view .editor,.slides-view .preview-pane{display:none}
  body.m-edit .slides-view .lib{display:none}
  body.m-edit .slides-view .editor,body.m-edit .slides-view .preview-pane{display:flex;width:100%}
  body.m-edit .slides-view .preview-pane{order:-1}
  .back-btn{display:inline-flex}
  .row2,.row3{grid-template-columns:1fr}
  .li.compact .li-grid{grid-template-columns:1fr 64px 1.2fr}
  .li.compact .li-grid>.fld:nth-child(4),.li.compact .li-grid>.fld:nth-child(5){grid-column:1 / -1}
  .li.compact{align-items:stretch}
  .pl-item{grid-template-columns:22px 70px minmax(0,1fr)}
  .pl-ctrl{grid-column:1 / -1;justify-content:flex-start}
  .urg-grid{grid-template-columns:1fr}
  .sched-row{grid-template-columns:1fr 1fr}
  .sched-row select,.sched-row .btn{grid-column:span 1}
  .team{grid-template-columns:1fr 70px}
  .team .pts{grid-column:1 / -1}
  .modal{padding:8px}
  .modal-box{padding:14px}
  .gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* рубрики в списке слайдов */
.lib-search{min-height:40px!important;font-size:14px!important}
.lib-rub{border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#0F1834;border:2px solid var(--line)}
.lib-rub>summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer;list-style:none}
.lib-rub>summary::-webkit-details-marker{display:none}
.lib-rub>summary b::before{content:'▸ ';color:var(--muted)}
.lib-rub[open]>summary b::before{content:'▾ '}
.lib-rub-list{display:flex;flex-direction:column;gap:6px;padding:0 6px 8px}
.lib-item.is-off{opacity:.5}
.rub-note .check{font-weight:800}
.pl-item.is-rub{border-color:#2d4a86}
.pl-item.is-every{border-style:dashed}
.rub-sub{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:3px}
.rub-sub select{min-height:30px;border-radius:0;border:2px solid var(--line);background:var(--bg);font-size:13px;padding:0 4px}
/* команды и заявки */
.tabs button[data-badge]:not([data-badge=""])::after{content:attr(data-badge);margin-left:6px;padding:1px 7px;border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:var(--red);color:#fff;font-size:12px}
.club-card>summary{display:flex;align-items:center;gap:10px;cursor:pointer;flex-wrap:wrap;list-style:none}
.club-card>summary::-webkit-details-marker{display:none}
.club-card>summary b{font:700 17px Unbounded,sans-serif}
.club-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}
.app-new{border-color:var(--orange)}
