/* Редактор наборов. Токены — из themes.css, кнопки и поля — из hallowiiin.css/home.css. */
body[data-screen="editor"]{overflow:auto}
.app.ed-app{height:auto;min-height:100%;overflow:visible}
@supports (height:100dvh){ .app.ed-app{height:auto;min-height:100dvh} }
.ed-stage{position:relative;flex:none}
.ed-stage .toast{position:fixed;top:14px}
textarea{font:inherit;color:inherit}
.ed-view{display:block}
.ed-brand{visibility:visible}
.ed-user{font:600 .82rem var(--f-body);color:var(--mute);max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:center}
.ed-narrow{width:min(520px,100%);margin:0 auto;padding:clamp(8px,4vh,48px) 0 40px;display:grid;gap:22px}
.ed-narrow.wide{width:min(900px,100%)}
.ed-auth{gap:14px}
.ed-auth .btn.big{width:100%}
.ed-h{margin:0;font:800 1.2rem var(--f-body)}
.ed-msg{margin:0;padding:10px 12px;border-radius:10px;background:rgba(255,91,107,.14);border:1px solid rgba(255,91,107,.4);font-size:.95rem}
.ed-msg.ok{background:rgba(80,220,140,.12);border-color:rgba(80,220,140,.4)}

/* список */
.ed-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ed-list-head .title{font-size:clamp(1.6rem,4vw,2.4rem)}
.ed-packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ed-pack{cursor:default}
.ed-pack-actions{display:flex;gap:6px;flex-wrap:wrap}

/* редактор */
.ed-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;background:linear-gradient(var(--stage) 70%,transparent)}
.ed-status{flex:1;min-width:0;font-size:.9rem;color:var(--mute)}
.ed-status.ok{color:var(--good)}
.ed-status.warn{color:var(--accent)}
.ed-wrap{display:grid;gap:14px;padding-bottom:40px}
.ed-meta{grid-template-columns:2fr 1fr;gap:12px 16px;align-items:end}
.ed-meta .sw{grid-column:1 / -1}
.ed-meta .sw small{display:inline;font-weight:500}
.ed-size{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.ed-stepper{display:flex;align-items:center;gap:8px}
.ed-stepper span{font:700 .78rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ed-stepper b{min-width:1.6em;text-align:center;font:800 1.1rem var(--f-mono)}
.ed-stepper .btn{width:34px;height:34px;padding:0;font-size:1.1rem}
.ed-progress{margin-left:auto;font:700 .9rem var(--f-mono);color:var(--accent)}
.ed-progress.done{color:var(--good)}
.ed-progress.done::before{content:"✓ "}
.ed-hint{margin:0}

.ed-grid-scroll{overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.ed-grid{display:grid;grid-template-columns:64px repeat(var(--ncat,5),minmax(120px,1fr));gap:6px;min-width:calc(64px + var(--ncat,5) * 126px)}
.ed-corner{display:grid;place-items:center;font:700 .7rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ed-cat,.ed-pts{width:100%;min-width:0;padding:.6em .5em;border-radius:8px;border:1px solid var(--line);background:var(--cat-bg,rgba(0,0,0,.25));font:800 .9rem var(--f-body);text-align:center;outline:none}
.ed-cat{text-transform:uppercase;letter-spacing:.02em}
.ed-cat::placeholder{color:var(--mute);text-transform:none}
.ed-pts{font-family:var(--f-mono);color:var(--accent);-moz-appearance:textfield}
.ed-pts::-webkit-inner-spin-button{opacity:.4}
.ed-cat:focus,.ed-pts:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgb(var(--accent-rgb) / .35)}
.ed-cell{position:relative;display:grid;align-content:start;gap:4px;min-height:86px;padding:8px 9px;border-radius:8px;border:1px dashed rgba(255,255,255,.28);background:rgba(255,255,255,.04);text-align:left;transition:border-color .15s,background .15s}
.ed-cell b{font:800 .95rem var(--f-mono);color:var(--mute)}
.ed-cell-q{font-size:.8rem;line-height:1.25;color:var(--mute);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ed-cell-img{position:absolute;top:6px;right:8px;font-style:normal;font-size:.85rem}
.ed-cell:hover{border-color:var(--accent)}
.ed-cell.partial{border-style:solid;border-color:rgb(var(--accent-rgb) / .6)}
.ed-cell.filled{border-style:solid;border-color:rgba(80,220,140,.5);background:rgba(80,220,140,.08)}
.ed-cell.filled b{color:var(--accent)}
.ed-cell.filled .ed-cell-q{color:var(--ink)}

/* окно вопроса */
.ed-dlg{max-width:min(94vw,600px)}
.ed-dlg form{max-height:calc(100dvh - 40px);overflow:auto}
.ed-dlg-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ed-dlg textarea{font-size:1rem;font-weight:500;min-height:3em}
.ed-img{display:grid;gap:6px}
.ed-img-label{font:700 .78rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ed-img-label small{letter-spacing:0;text-transform:none;font-weight:500}
.ed-img-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ed-img-box img{max-width:180px;max-height:120px;border-radius:8px;border:1px solid var(--line);object-fit:contain;background:rgba(0,0,0,.3)}
.ed-upload{position:relative;cursor:pointer}
.ed-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.ed-upload:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.ed-img-st{font-size:.85rem;color:var(--mute)}
.ed-more summary{cursor:pointer;font-weight:700;color:var(--mute);padding:4px 0}
.ed-more[open]{display:grid;gap:10px}
.ed-img-help{font-size:.82rem}
.ed-img-help a{color:var(--accent)}
.ed-dlg .dlg-actions{position:sticky;bottom:-20px;padding:10px 0 0;background:var(--stage)}

@media (max-width:640px){
  .ed-meta{grid-template-columns:1fr}
  .ed-progress{margin-left:0;flex-basis:100%}
  .ed-bar .btn{flex:1}
  .ed-bar{position:static}
  .ed-status{flex-basis:100%;order:5}
  .ed-user-name{display:none}
  .ed-user{padding:0 10px}
  .ed-grid{grid-template-columns:52px repeat(var(--ncat,5),112px);min-width:0}
}
.ed-oauth{display:grid;gap:8px}
.ed-oauth .btn{width:100%;background:#fff;color:#1f1f1f;border-color:transparent}
.ed-oauth .btn[data-provider="apple"]{background:#000;color:#fff;border-color:rgba(255,255,255,.3)}
.ed-or{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:.82rem;margin-top:4px}
.ed-or::before,.ed-or::after{content:"";flex:1;height:1px;background:var(--line)}

/* профиль */
button.ed-user{cursor:pointer;color:var(--ink)}
.pr-sec{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.pr-sec h4{margin:0;font:800 .82rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pr-check{display:flex;align-items:center;gap:8px;font-size:.92rem}
.pr-ids{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.pr-ids li{padding:.3em .8em;border-radius:999px;background:rgba(255,255,255,.08);font-weight:700;font-size:.88rem}
.pr-danger h4{color:var(--bad)}
#profile-dlg .dlg-actions{position:static;padding:0;background:none}
.ed-user{max-width:none}
.ed-user svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.ed-user-name{font:500 .8rem var(--f-body);color:var(--mute);max-width:24vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tools .tool.ed-user .lbl{display:inline}
