.wrap.wide{max-width:1280px}
.top{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.top img{width:40px;height:40px;border-radius:10px}
.top h1{font-size:22px;margin:0}
.muted{color:var(--ink-2)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.card h2{font-size:16px;margin:0 0 4px}.card .hint{margin:0 0 14px;color:var(--ink-2);font-size:13px}
.cols{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:20px;align-items:start}
@media(max-width:1000px){.cols{grid-template-columns:1fr}}
.prev{position:sticky;top:12px}
.pv{height:620px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;margin:0 auto;transition:width .2s}
.pv.mob{width:390px;max-width:100%}
.row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px solid var(--line)}
.row:first-of-type{border-top:0}
.row label.l{flex:1}.row .d{display:block;color:var(--ink-2);font-size:12px}
.row select,.row input[type=text],.row input[type=number]{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;max-width:230px;width:100%;background:#fff}
.row input[type=color]{width:44px;height:32px;border:1px solid var(--line);border-radius:8px;padding:2px;background:#fff}
.sw{position:relative;width:42px;height:24px;flex:none}.sw input{opacity:0;position:absolute;inset:0;margin:0;cursor:pointer;z-index:1}
.sw i{position:absolute;inset:0;border-radius:99px;background:#c9ced6;transition:.15s}.sw i::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}
.sw input:checked+i{background:var(--accent)}.sw input:checked+i::after{left:21px}
.sw input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}
.big{display:flex;align-items:center;gap:16px}.big .t{flex:1}.big b{font-size:16px}
.pbar{height:10px;border-radius:99px;background:#e6e9ee;overflow:hidden;margin-top:10px}.pbar i{display:block;height:100%;background:var(--accent);transition:width .4s}
.pbar.ind i{width:35%;animation:ind 1.2s ease-in-out infinite alternate}@keyframes ind{from{margin-left:0}to{margin-left:65%}}
.save{position:sticky;bottom:0;z-index:5;background:var(--paper);padding:12px 0;display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);margin-top:6px}
.ok{color:#17703a}.tabs{display:flex;gap:6px;margin-bottom:10px}.tabs button{padding:6px 12px}.tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
