/* ============================================================
   КП Редактор — редактор (topbar, filmstrip, канвас, панели)
   ============================================================ */
.ed{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#efece7}
.ed-top{
  height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 14px;flex:none;z-index:20;
}
.ed-top .backb{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:var(--ink-2);padding:8px 11px;border-radius:9px}
.ed-top .backb:hover{background:var(--bg);color:var(--ink)}
.ed-title{
  border:1.5px solid transparent;background:transparent;font-weight:700;font-size:15px;padding:7px 10px;border-radius:8px;min-width:60px;max-width:340px;
}
.ed-title:hover{border-color:var(--line-2)}
.ed-title:focus{border-color:var(--accent);outline:none;background:#fff}
.save-ind{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px;white-space:nowrap}
.save-ind .ic{width:13px;height:13px}
.save-ind.saved{color:var(--ok)}
.ed-top .btns{margin-left:auto;display:flex;gap:8px;align-items:center}

.ed-body{flex:1;display:flex;min-height:0}

/* ---------- filmstrip ---------- */
.film{
  width:196px;flex:none;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;
}
.film-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:9px}
.thumb{
  position:relative;border-radius:10px;overflow:hidden;border:2px solid transparent;cursor:pointer;background:#faf8f5;transition:border .12s;flex:none;
}
.thumb:hover{border-color:var(--line-2)}
.thumb.on{border-color:var(--accent)}
.thumb .num{
  position:absolute;left:6px;top:6px;background:rgba(20,16,28,.62);color:#fff;font-size:10px;font-weight:700;
  width:19px;height:19px;border-radius:6px;display:flex;align-items:center;justify-content:center;z-index:2;
}
.thumb .mini{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden}
.thumb .mini .in{position:absolute;top:0;left:0;transform-origin:top left}
.thumb .tools{
  position:absolute;right:5px;top:5px;display:flex;flex-direction:column;gap:3px;z-index:3;opacity:0;transition:.12s;
}
.thumb:hover .tools,.thumb.dragover .tools{opacity:1}
.thumb .tools button{
  width:23px;height:23px;border-radius:6px;background:rgba(20,16,28,.68);color:#fff;display:flex;align-items:center;justify-content:center;
}
.thumb .tools button:hover{background:var(--accent)}
.thumb .tools button.del:hover{background:var(--bad)}
.thumb .tools .ic{width:12px;height:12px}
.thumb.dragging{opacity:.4}
.thumb .dropzone{position:absolute;inset:0;border:2.5px dashed var(--accent);background:rgba(0,170,255,.09);display:none;border-radius:8px;z-index:4}
.thumb.dragover .dropzone{display:block}
.film-add{
  margin:12px;border:1.7px dashed var(--line-2);border-radius:11px;padding:11px;display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:13px;font-weight:600;color:var(--ink-2);transition:.14s;
}
.film-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

/* ---------- канвас ---------- */
.canvas-wrap{
  flex:1;min-width:0;overflow:auto;display:flex;flex-direction:column;align-items:center;padding:34px 30px 60px;gap:0;
  background:
    radial-gradient(circle at 50% 0,rgba(0,170,255,.05),transparent 60%),
    #efece7;
}
.slide-frame{width:min(100%,960px);position:relative;transition:width .25s}
.slide-frame.mob{width:390px}
.frame-bar{
  display:flex;align-items:center;gap:6px;margin-bottom:12px;color:var(--ink-3);font-size:12px;justify-content:center;
}
.frame-bar .dev{display:flex;background:#fff;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.frame-bar .dev button{padding:6px 11px;display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12px;font-weight:600}
.frame-bar .dev button.on{background:var(--ink);color:#fff}
.frame-bar .ic{width:13px;height:13px}
.canvas-scale{position:relative;width:100%}
.canvas-scale .slide{width:100%;border-radius:6px;box-shadow:0 4px 26px rgba(20,16,28,.14);overflow:hidden}
.canvas-scale .slide [data-f]{outline:none;transition:box-shadow .12s,background .12s}
.editing .canvas-scale .slide [data-f]:hover{box-shadow:0 0 0 2px rgba(0,170,255,.4);background:rgba(0,170,255,.05);border-radius:4px;cursor:text}
.editing .canvas-scale .slide [data-f]:focus{box-shadow:0 0 0 2.5px var(--accent);background:rgba(255,255,255,.02);border-radius:4px}
.canvas-scale .slide [data-f]:empty:before{content:'Введите текст…';opacity:.3;pointer-events:none}
.canvas-hint{margin-top:14px;font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:9px 17px;border-radius:99px;box-shadow:var(--shadow)}
.canvas-hint .ic{width:14px;height:14px;color:var(--accent)}
.canvas-hint.pulse{animation:hintpulse 1.5s ease 4}
@keyframes hintpulse{0%,100%{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 7px rgba(0,170,255,.2),var(--shadow)}}
.canvas-hint .ic{width:13px;height:13px}

/* ---------- правая панель ---------- */
.panel{
  width:300px;flex:none;background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;
}
.panel-tabs{display:flex;border-bottom:1px solid var(--line);flex:none}
.panel-tabs button{
  flex:1;padding:13px 6px;font-size:13px;font-weight:600;color:var(--ink-3);position:relative;display:flex;align-items:center;justify-content:center;gap:7px;
}
.panel-tabs button.on{color:var(--ink)}
.panel-tabs button.on:after{content:'';position:absolute;left:18%;right:18%;bottom:-1px;height:2.5px;background:var(--accent);border-radius:3px}
.panel-tabs .ic{width:15px;height:15px}
.panel-body{flex:1;overflow-y:auto;padding:18px 18px 30px}
.pgroup{margin-bottom:20px}
.pgroup>h4{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:11px;
  display:flex;align-items:center;gap:7px;
}
.pgroup>h4 .ic{width:13px;height:13px}
.field.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.field .lab-row{display:flex;justify-content:space-between;align-items:center}
.arr-item{
  border:1px solid var(--line);border-radius:11px;padding:11px 12px 3px;margin-bottom:9px;background:#fdfcfa;position:relative;
}
.arr-item .rm{
  position:absolute;right:8px;top:8px;width:24px;height:24px;border-radius:7px;color:var(--ink-3);display:flex;align-items:center;justify-content:center;
}
.arr-item .rm:hover{background:#fdecec;color:var(--bad)}
.arr-item .rm .ic{width:13px;height:13px}
.arr-add{
  width:100%;border:1.5px dashed var(--line-2);border-radius:10px;padding:9px;font-size:12.5px;font-weight:600;color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;gap:7px;
}
.arr-add:hover{border-color:var(--accent);color:var(--accent)}
.arr-add .ic{width:13px;height:13px}
.img-ctl{display:flex;gap:9px;align-items:flex-start}
.img-ctl .prev{width:62px;height:62px;border-radius:9px;border:1px solid var(--line);object-fit:cover;background:#faf8f5}
.panel .field{margin-bottom:13px}
.panel .inp{padding:8px 11px;font-size:13px}
.panel textarea.inp{font-size:13px;min-height:60px}
.slide-acts{display:flex;gap:8px;margin-bottom:18px}
.slide-acts .btn{flex:1;font-size:12.5px;padding:8px 6px}
.color-row{display:flex;gap:9px;align-items:center}
.color-row input[type=color]{flex:none}
.color-row .inp{flex:1}
.saved-note{font-size:11px;color:var(--ok);margin-top:4px;display:flex;gap:5px;align-items:center}

/* выбор слайда в модалке */
.pick-grid{display:flex;flex-direction:column;gap:20px}
.pick-cat h5{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.pick-items{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.pick{
  border:1.5px solid var(--line);border-radius:11px;padding:13px 7px;display:flex;flex-direction:column;align-items:center;gap:8px;
  font-size:12px;font-weight:600;color:var(--ink-2);transition:.13s;text-align:center;background:#fff;
}
.pick:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.pick .ic{width:20px;height:20px;color:var(--accent)}
.pick .prem-dot{pointer-events:none}

/* модалка экспорта */
.exp-opt{
  display:flex;gap:14px;border:1.5px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;transition:.14s;margin-bottom:11px;align-items:flex-start;
}
.exp-opt:hover{border-color:var(--accent);background:var(--accent-soft)}
.exp-opt .ic{width:22px;height:22px;color:var(--accent);margin-top:2px}
.exp-opt b{font-size:14.5px;display:block;margin-bottom:3px}
.exp-opt span{font-size:12.5px;color:var(--ink-2);line-height:1.4;display:block}
.exp-left{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:7px;margin-bottom:14px;padding:10px 13px;background:var(--bg);border-radius:10px}
.exp-left .ic{width:14px;height:14px;color:var(--accent)}

/* предпросмотр-презентация */
.preview-full{position:fixed;inset:0;background:#17131f;z-index:2500;display:flex;flex-direction:column;animation:fin .2s}
.pv-top{display:flex;align-items:center;gap:12px;padding:13px 18px;color:#fff}
.pv-top .t{font-weight:700;font-size:14px}
.pv-top .btns{margin-left:auto;display:flex;gap:8px}
.pv-top .pg{color:rgba(255,255,255,.6);font-size:13px;font-variant-numeric:tabular-nums}
.pv-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 68px;position:relative}
.pv-stage .slide{width:min(92vw * .625, calc((100vh - 110px) * 1.6), 1180px);border-radius:8px;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.pv-nav{
  position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;transition:.14s;
}
.pv-nav:hover{background:var(--accent)}
.pv-nav.l{left:14px}.pv-nav.r{right:14px}
.pv-nav[disabled]{opacity:.25;cursor:default}
.pv-stage.mob .slide{width:390px}
.pv-devbtn{display:flex;gap:5px;background:rgba(255,255,255,.1);border-radius:9px;overflow:hidden}
.pv-devbtn button{padding:7px 11px;color:rgba(255,255,255,.7);display:flex;gap:6px;align-items:center;font-size:12px;font-weight:600}
.pv-devbtn button.on{background:#fff;color:var(--ink)}

@media(max-width:1100px){.panel{width:270px}.film{width:170px}}
@media(max-width:920px){
  .ed-body{flex-direction:column;overflow:auto}
  .film{width:100%;flex-direction:row;border-right:none;border-bottom:1px solid var(--line)}
  .film-list{flex-direction:row;padding:10px;overflow-x:auto;overflow-y:hidden}
  .thumb{width:128px}
  .thumb .mini{aspect-ratio:16/10}
  .film-add{margin:10px;align-self:flex-start}
  .panel{width:100%;border-left:none;border-top:1px solid var(--line);max-height:46vh}
  .canvas-wrap{padding:20px 12px 40px}
  .ed-top .hide-m{display:none}
}
