:root{--cream:#f3ece2;--paper:#faf6f0;--cocoa:#3a2a22;--mute:#8c7d72;--line:#dccfbf;--terra:#b9694a;--sage:#dfe3d6;--bg:#e9e5de;--ok:#5f7a4f;--warn:#b98a2e;--bad:#a8432f;
--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);background:var(--bg);color:var(--cocoa);min-height:100vh;font-size:14px}
a{color:inherit}
button{font:600 13px var(--sans);padding:8px 12px;border:0;border-radius:8px;background:var(--cocoa);color:#fff;cursor:pointer}
button.alt{background:var(--paper);color:var(--cocoa);border:1px solid var(--line)}
button.danger{background:transparent;color:var(--bad);border:1px solid #e3c4bb}
button.ico{padding:4px 8px;font-size:13px;background:transparent;color:var(--mute);border:1px solid transparent}
button.ico:hover{border-color:var(--line);color:var(--cocoa)}
button:disabled{opacity:.5;cursor:default}
input,textarea,select{width:100%;font:14px var(--sans);padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--cocoa)}
input[type=checkbox]{width:auto;margin:0 6px 0 0;vertical-align:-2px}
textarea{min-height:64px;resize:vertical;line-height:1.4}
label{display:block;font-size:12px;color:var(--mute);margin:9px 0 3px}
label.chk{color:var(--cocoa);font-size:13px}
.up{display:inline-block;font-size:12px;color:var(--terra);cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin:6px 0 0}
.up input{display:none}

/* шапка */
header.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--line)}
header.top .logo{font:600 16px var(--sans);text-decoration:none}
header.top nav{display:flex;gap:4px}
header.top nav a{text-decoration:none;padding:6px 10px;border-radius:8px;color:var(--mute)}
header.top nav a.on{background:var(--paper);color:var(--cocoa)}
.usage{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute);white-space:nowrap}
.usage .bar{width:120px;height:6px;border-radius:3px;background:#eee6dc;overflow:hidden}
.usage .bar i{display:block;height:100%;background:var(--ok)}
.usage.warn .bar i{background:var(--warn)}.usage.full .bar i{background:var(--bad)}
header.top .out{font-size:12px;color:var(--mute)}

/* список каруселей */
.page{padding:20px;max-width:1500px;margin:0 auto}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.toolbar h1{font:600 20px var(--sans);margin:0 12px 0 0}
.tabs{display:flex;gap:4px}
.tabs button{background:transparent;color:var(--mute);border:1px solid transparent}
.tabs button.on{background:#fff;color:var(--cocoa);border-color:var(--line)}
.toolbar .sp{flex:1}
.toolbar input[type=search]{width:220px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.item{background:#fff;border-radius:10px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column}
.item .thumb{aspect-ratio:4/5;background:var(--cream) center/cover no-repeat;display:flex;align-items:flex-end;padding:14px;text-decoration:none}
.item .thumb span{font:400 20px/1.2 var(--serif);color:var(--cocoa);background:rgba(250,246,240,.9);padding:6px 9px;border-radius:6px}
.item .meta{padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.item .meta b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .meta small{color:var(--mute)}
.item .acts{display:flex;gap:4px;margin-top:2px}
.chip{display:inline-block;font:600 11px var(--sans);padding:2px 7px;border-radius:20px;background:#eee6dc;color:var(--mute)}
.chip.draft{background:#f1e7d6;color:#8a6a2c}.chip.review{background:#e6e0f0;color:#5d4b86}.chip.ready{background:#e2ead9;color:var(--ok)}
.chip.ai{background:#f4e1d8;color:var(--terra)}
.empty{padding:40px;text-align:center;color:var(--mute)}

/* редактор */
.ed{display:grid;grid-template-columns:380px minmax(0,1fr);min-height:calc(100vh - 53px)}
.ed aside{background:#fff;border-right:1px solid var(--line);padding:16px 16px 60px;overflow:auto;height:calc(100vh - 53px);position:sticky;top:53px}
.ed aside h2{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:20px 0 8px}
.ed .titlein{font:600 17px var(--sans);padding:8px 10px}
.row{display:flex;gap:8px;align-items:end}.row>*{flex:1}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.save{font-size:12px;color:var(--mute);margin-top:6px;min-height:16px}
.save.err{color:var(--bad)}
.banner{background:#fbeee8;border:1px solid #e3c4bb;color:var(--bad);padding:10px;border-radius:8px;margin-top:10px;font-size:13px}
.banner .btns{margin-top:8px}
.slide-ed{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:#fff}
.slide-ed>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:8px 8px 8px 12px;font-size:13px}
.slide-ed>summary::-webkit-details-marker{display:none}
.slide-ed>summary .n{font:600 12px var(--sans);color:var(--terra);min-width:22px}
.slide-ed>summary .t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slide-ed[open]>summary{border-bottom:1px solid var(--line)}
.slide-ed .body{padding:4px 12px 12px}
.slide-ed.hl{outline:2px solid var(--terra)}
.hint{font-size:12px;color:var(--mute);line-height:1.5;margin-top:8px}
.add{display:flex;gap:6px;margin-top:10px}.add select{flex:1}
.versions{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:8px}
.versions div{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-top:1px solid var(--line);font-size:12px}
.versions div:first-child{border-top:0}
.prev{padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,calc((100% - 60px)/4)),1fr));gap:20px;align-content:start;min-width:0}
.wrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.wrap .cap{font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.holder{width:100%;aspect-ratio:4/5;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* фото */
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.photo{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.photo .im{aspect-ratio:4/5;background:#ddd center/cover no-repeat}
.photo .meta{padding:8px 10px;font-size:12px;display:flex;flex-direction:column;gap:4px}
.photo .meta b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo .meta small{color:var(--mute)}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:16px;display:flex;gap:28px;flex-wrap:wrap;align-items:center}
.stat .bigbar{flex:1;min-width:220px;height:10px;border-radius:5px;background:#eee6dc;overflow:hidden}
.stat .bigbar i{display:block;height:100%;background:var(--ok)}
.stat div b{font:600 18px var(--sans);display:block}
.stat div small{color:var(--mute)}

.toast{position:fixed;right:20px;bottom:20px;background:var(--cocoa);color:#fff;padding:10px 14px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50;max-width:420px}
.toast.on{opacity:1}

@media (max-width:900px){
  header.top{flex-wrap:wrap;gap:8px 14px;padding:10px 16px}
  .usage{margin-left:0;width:100%}
  .ed{display:block}
  .ed aside{height:auto;position:static;border-right:0;border-bottom:1px solid var(--line)}
  .prev{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:14px}
  .page{padding:16px}
  .toolbar input[type=search]{width:100%}
}

/* ===== Слайды 1080×1350 ===== */
.card{width:1080px;height:1350px;transform-origin:top left;position:relative;overflow:hidden;font-family:var(--serif)}
.bg-cream{background:var(--cream);color:var(--cocoa)}
.bg-paper{background:var(--paper);color:var(--cocoa)}
.bg-sage{background:var(--sage);color:var(--cocoa)}
.bg-dark{background:var(--cocoa);color:var(--paper)}
.bg-dark .muted,.bg-dark .foot{color:#bfae9f}
.bg-dark .rule{background:#5a4639}
.card em{font-style:normal;color:var(--terra)}
.bg-dark em{color:#e0a283}
.pre{white-space:pre-line}
.muted{color:var(--mute)}

/* общий текстовый каркас */
.tx{padding:130px 110px 110px;display:flex;flex-direction:column;height:100%}
.tx .brand{font:500 30px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.tx .foot{margin-top:auto;padding-top:40px;display:flex;justify-content:space-between;align-items:end;gap:40px;font:400 26px var(--sans);color:var(--mute)}
.tx .rule{height:2px;background:var(--line);margin-top:auto}
.tx .rule+.foot{margin-top:0;padding-top:24px}

/* Текст с номером */
.s-text .num{font:400 calc(120px*var(--z,1))/1 var(--serif);color:var(--terra)}
.s-text h4{font:600 calc(64px*var(--z,1))/1.15 var(--serif);margin:56px 0 0}
.s-text .txt{font:400 calc(60px*var(--z,1))/1.3 var(--serif);margin-top:56px}
.s-text h4+.txt{margin-top:36px}

/* Крупный заголовок («Мне 34.») */
.s-big .big{font:400 calc(150px*var(--z,1))/1.02 var(--serif);margin:100px 0 64px}
.s-big .txt{font:400 calc(56px*var(--z,1))/1.3 var(--serif);max-width:860px}

/* Список */
.s-list h4{font:400 calc(84px*var(--z,1))/1.1 var(--serif);margin:0 0 64px}
.s-list ol{list-style:none;margin:0;padding:0;counter-reset:i}
.s-list li{counter-increment:i;display:flex;gap:34px;font:400 calc(50px*var(--z,1))/1.3 var(--serif);padding:26px 0;border-top:2px solid var(--line)}
.bg-dark.s-list li{border-color:#5a4639}
.s-list li::before{content:counter(i);font:400 calc(50px*var(--z,1))/1.3 var(--serif);color:var(--terra);min-width:44px}
.s-list.dots li::before{content:"—"}

/* Цитата */
.s-quote .q{font:400 calc(260px*var(--z,1))/0.7 var(--serif);color:var(--terra);height:150px}
.s-quote .txt{font:400 calc(72px*var(--z,1))/1.25 var(--serif);margin-top:40px}
.s-quote .who{font:500 calc(30px*var(--z,1)) var(--sans);letter-spacing:.08em;text-transform:uppercase;margin-top:60px}

/* Финал / призыв */
.s-final .txt{font:400 calc(76px*var(--z,1))/1.2 var(--serif)}
.s-final .cta{margin-top:70px;font:400 calc(40px*var(--z,1))/1.4 var(--sans);opacity:.85}
.s-final .who{margin-top:auto;font:500 calc(30px*var(--z,1)) var(--sans);letter-spacing:.08em;text-transform:uppercase}

/* Фото: обложка */
.ph{background:#222;color:#fff}
.ph img.bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-cover img.bgimg{filter:saturate(.85)}
.s-cover .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,12,8,.05) 30%,rgba(20,12,8,.78))}
.s-cover .box{position:absolute;left:100px;right:100px;bottom:200px}
.s-cover h3{margin:0;font:400 calc(92px*var(--z,1))/1.1 var(--serif)}
.s-cover .subt{margin:30px 0 0;font:400 calc(40px*var(--z,1))/1.35 var(--sans);opacity:.9}
.s-cover .swipe{position:absolute;right:100px;bottom:100px;font:500 calc(30px*var(--z,1)) var(--sans);opacity:.85}
.s-cover .handle,.s-plaque .handle{position:absolute;left:100px;bottom:100px;font:500 calc(28px*var(--z,1)) var(--sans);letter-spacing:.08em;text-transform:uppercase}

/* Фото: плашка */
.s-plaque .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 100%)}
.s-plaque .box{position:absolute;left:90px;right:90px;bottom:150px;background:var(--paper);color:var(--cocoa);padding:44px 52px;border-radius:14px}
.s-plaque h3{margin:0;font:600 calc(64px*var(--z,1))/1.15 var(--sans);text-transform:uppercase;letter-spacing:-.01em}
.s-plaque .subt{margin:18px 0 0;font:400 calc(34px*var(--z,1))/1.35 var(--sans);color:var(--mute)}
.s-plaque .handle{left:90px;bottom:80px;color:#fff}

/* Фото + текст */
.s-phototext{display:flex;flex-direction:column}
.s-phototext .pic{height:620px;position:relative;overflow:hidden;flex:none}
.s-phototext .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-phototext .tx{height:auto;flex:1;min-height:0;padding-top:80px}
.s-phototext h4{font:400 calc(72px*var(--z,1))/1.12 var(--serif);margin:0}
.s-phototext .txt{font:400 calc(46px*var(--z,1))/1.35 var(--serif);margin-top:36px}
