: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}.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{width:100%;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}.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}
