.zr{margin:24px 0 40px}
.zr-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:28px;align-items:start}
.zr-editor{min-width:0}
.zr-preview{position:sticky;top:120px;min-width:0}
.zr-preview-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-bottom:8px}
.zr-preview-head span:first-child{font-weight:700}
.zr canvas{display:block;width:100%;max-width:440px;height:auto;margin:0 auto;border:1px solid var(--line-2);border-radius:8px;box-shadow:0 8px 30px #3028380f}
.zr fieldset{min-width:0;margin:0 0 20px;padding:16px 18px;border:1px solid var(--line-2);border-radius:12px}
.zr legend{padding:0 8px;font-size:17px;font-weight:700}
.zr label{display:block;font-size:13px;font-weight:700;margin:0 0 5px}
.zr input[type=text],.zr input[type=number]{width:100%;min-width:0;box-sizing:border-box;padding:9px 10px;border:1px solid #b9b3bf;border-radius:7px;background:#fff;color:#302838;font:inherit;font-size:16px}
.zr-top{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zr-top .zr-wide{grid-column:1/-1}
.zr-note{font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0 0}
.zr button,.zr .zr-btn{min-height:44px;padding:9px 14px;border:1px solid #c5b6d0;border-radius:8px;background:#fff;color:#493555;font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
.zr button:hover,.zr .zr-btn:hover{background:var(--brand-soft)}
.zr button:disabled{opacity:.45;cursor:default}
.zr .zr-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.zr .zr-primary:hover{background:var(--brand-dark)}
.zr .zr-xbtn{background:#0f1419;border-color:#0f1419;color:#fff}
.zr .zr-xbtn:hover{background:#333}
.zr-themes{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.zr-themes button{flex:1;min-width:70px;padding:8px}
.zr-themes [aria-pressed=true]{outline:2px solid var(--brand);outline-offset:1px}
.zr-rows{list-style:none;margin:0;padding:0;counter-reset:none}
.zr-row{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px 12px;margin:0 0 10px;background:#fff}
.zr-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.zr-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;font-size:14px}
.zr-row-tools{display:flex;gap:6px}
.zr button.zr-tool{min-height:36px;padding:4px 10px;font-size:13px}
.zr-row-fields{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}
.zr-value{display:grid;grid-template-columns:auto 1fr 76px;gap:10px;align-items:center;margin-top:10px}
.zr-value label{margin:0}
.zr-value input[type=range]{width:100%;accent-color:var(--brand)}
.zr-img{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.zr-img-pick{position:relative;display:inline-flex !important;align-items:center;min-height:40px;margin:0 !important;padding:6px 12px;border:1px dashed #b9a6c8;border-radius:8px;color:#493555;cursor:pointer}
.zr-img-pick input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.zr-thumb{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2)}
.zr-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.zr-add button{flex:1}
.zr-count{font-size:13px;color:var(--muted)}
.zr-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.zr-actions > *{flex:1 1 140px}
.zr-hint{font-size:13px;line-height:1.8;margin:14px 0 0;padding:10px 12px;background:var(--brand-soft);border-radius:8px}
.zr-msg{font-size:13px;min-height:1.8em;margin:8px 0 0}
.zr-fallback img{display:block;width:100%;max-width:440px;margin:8px auto 0;border:1px solid var(--line-2);border-radius:8px}
.zr-sub{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.zr-article{max-width:760px;margin:40px auto 0;line-height:1.9}
.zr-article h2{font-size:21px;margin:34px 0 12px}
.zr-article table{border-collapse:collapse;width:100%;font-size:14px}
.zr-article th,.zr-article td{border:1px solid var(--line-2);padding:8px 10px;text-align:left;vertical-align:top}
.zr-article th{background:var(--bg);white-space:nowrap}
.zr-article details{border-bottom:1px solid var(--line-2);padding:14px 0}
.zr-article summary{font-weight:700;cursor:pointer}
.zr-article a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){
.zr-layout{grid-template-columns:minmax(0,1fr);gap:20px}
.zr-preview{position:static;order:-1}
.zr fieldset{padding:14px 12px}
.zr-top{grid-template-columns:1fr}
.zr-row-fields{grid-template-columns:1fr}
}
