:root{--bg: #eef1f4;--panel: #ffffff;--ink: #1f2a37;--muted: #6b7280;--line: #e3e7ec;--brand: #0d9488;--brand-ink: #0b7c72;--accent: #2563eb;--ok: #0f766e;--err: #b42318}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 1px 3px #0000000a;z-index:5}.brand{display:flex;align-items:center;gap:12px}.logo{width:38px;height:38px;display:grid;place-items:center;background:var(--brand);color:#fff;border-radius:9px;font-size:20px}.title{font-weight:700;font-size:15px}.subtitle{font-size:12px;color:var(--muted);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar{display:flex;align-items:center;gap:10px}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:#f6f8fa}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-ink)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{color:var(--muted);font-weight:500}.btn.danger{color:var(--err);border-color:#f3c1bb}.btn.danger:hover{background:#fef3f2}.zoom{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.icon{width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:15px;line-height:1}.icon:disabled{opacity:.4;cursor:not-allowed}.banner{padding:8px 18px;font-size:13px}.banner.ok{background:#ecfdf5;color:var(--ok)}.banner.error{background:#fef3f2;color:var(--err)}.banner.busy{background:#eff6ff;color:var(--accent)}.body{flex:1;display:flex;min-height:0}.sidebar{width:300px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.sidebar-head{padding:14px 16px;font-weight:700;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.count{background:var(--line);color:var(--ink);border-radius:20px;padding:1px 9px;font-size:12px}.fields{overflow:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.hint{color:var(--muted);font-size:13px;padding:20px 8px;text-align:center}.field input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px;background:#fafbfc;color:var(--ink)}.field.active input{border-color:var(--brand);background:#fff}.field.changed input{border-left:3px solid var(--accent)}.field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #0d94881f}.canvas{flex:1;overflow:auto;position:relative;display:flex;align-items:flex-start;justify-content:center;padding:30px}.dropzone{position:absolute;top:24px;right:24px;bottom:24px;left:24px;border:2px dashed #c3ccd6;border-radius:16px;display:grid;place-items:center;cursor:pointer;background:#fff}.dropzone:hover{border-color:var(--brand);background:#f9fefd}.drop-inner{text-align:center;color:var(--muted)}.drop-icon{font-size:46px;color:var(--brand)}.drop-title{font-size:18px;font-weight:700;color:var(--ink);margin-top:8px}.drop-sub{font-size:13px;margin-top:4px}.page{position:relative;background-size:100% 100%;background-repeat:no-repeat;box-shadow:0 8px 30px #00000026;border-radius:2px}.overlay{position:absolute;border:1px solid transparent;padding:0;margin:0;line-height:1;font-family:inherit;letter-spacing:0;background:transparent;cursor:text;border-radius:2px;overflow:hidden;white-space:nowrap}.overlay:hover{outline:1px dashed rgba(37,99,235,.5)}.overlay:focus,.overlay.active{outline:2px solid var(--accent);z-index:2}.img-overlay{position:absolute;cursor:move;touch-action:none;border:1px solid transparent;box-sizing:border-box}.img-overlay img{width:100%;height:100%;display:block;pointer-events:none;-webkit-user-select:none;user-select:none}.img-overlay:hover{outline:1px dashed rgba(37,99,235,.6)}.img-overlay.active{outline:2px solid var(--accent);z-index:5}.img-resize{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;background:var(--accent);border:2px solid #fff;border-radius:3px;cursor:nwse-resize;box-shadow:0 1px 3px #0000004d}.img-del{position:absolute;right:-10px;top:-10px;width:20px;height:20px;background:var(--err);color:#fff;border:2px solid #fff;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:grid;place-items:center;padding:0}.field{position:relative;display:flex;align-items:center;gap:8px}.field-del{flex:0 0 auto;width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;font-size:15px;line-height:1}.field-del:hover{background:#fef3f2;color:var(--err);border-color:#f3c1bb}.field.hiddenrow input{text-decoration:line-through;opacity:.5}.field.imgrow img{width:34px;height:26px;object-fit:cover;border-radius:5px;border:1px solid var(--line)}.field.imgrow span{flex:1;font-size:13px;color:var(--ink)}.pager{position:sticky;bottom:14px;margin-top:16px;align-self:center;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:6px 14px;font-size:13px;box-shadow:0 4px 14px #0000001a}
