: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;padding:30px}.dropzone{position:absolute;inset: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}.pagewrap{width:fit-content;margin:0 auto}.page{position:relative;background-size:100% 100%;background-repeat:no-repeat;box-shadow:0 8px 30px #00000026;border-radius:2px}.overlay{position:absolute;border:0;padding:0;margin:0;line-height:normal;font-family:inherit;letter-spacing:0;background:transparent;cursor:text;border-radius:2px;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}.selbar{position:absolute;z-index:20;display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 6px;box-shadow:0 6px 18px #0000002e;white-space:nowrap}.selbar-label{font-size:11px;color:var(--muted);padding:0 4px}.selbar-readout{font-size:11px;color:var(--ink);padding:0 3px;font-variant-numeric:tabular-nums}.selbar button{width:26px;height:26px;border:0;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}.selbar button:hover{background:#eef2ff}.selbar button.danger:hover{background:#fee4e2}.cmyk{position:relative;display:grid;place-items:center;width:26px;height:26px}.cmyk-swatch{width:18px;height:18px;border-radius:5px;border:1px solid var(--line);padding:0;cursor:pointer}.cmyk-pop{position:absolute;top:30px;left:50%;transform:translate(-50%);z-index:30;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:0 10px 26px #0003;display:flex;gap:10px;align-items:center}.cmyk-rows{display:grid;gap:4px}.cmyk-rows label{display:flex;align-items:center;gap:6px;font-size:12px}.cmyk-rows span{width:12px;color:var(--muted);font-weight:600}.cmyk-rows i{color:var(--muted);font-style:normal;font-size:11px}.cmyk-rows input{width:58px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;font-size:12px;font-family:inherit}.cmyk-preview{width:46px;height:92px;border-radius:8px;border:1px solid var(--line)}.text-box{position:absolute;z-index:1}.text-box.active{z-index:6}.text-box{cursor:move;touch-action:none}.text-box.editing{cursor:text}.overlay,.overlay-text{position:static;display:block;border:0;padding:0;margin:0;white-space:nowrap;overflow:hidden;letter-spacing:0}.overlay-text{pointer-events:none}.text-box:hover{outline:1px dashed rgba(37,99,235,.5)}.sel-outline{position:absolute;inset:0;border:1px solid var(--accent);pointer-events:none;box-shadow:0 0 0 1px #fff9}.sel-handle{position:absolute;width:9px;height:9px;margin:-5px 0 0 -5px;background:#fff;border:1.5px solid var(--accent);border-radius:2px;touch-action:none;z-index:2;box-shadow:0 1px 2px #00000040}.tx-move,.tx-del,.tx-resize,.tx-color{position:absolute;width:18px;height:18px;padding:0;border-radius:50%;border:2px solid #fff;cursor:pointer;font-size:11px;line-height:1;display:grid;place-items:center;box-shadow:0 1px 3px #0000004d}.tx-move{left:-10px;top:-10px;background:var(--accent);color:#fff;cursor:move;touch-action:none}.tx-color{left:-10px;bottom:-10px;background:#fff;overflow:hidden}.tx-color input{position:absolute;inset:-6px;opacity:0;cursor:pointer}.tx-color span{width:100%;height:100%;border-radius:50%;display:block}.tx-del{right:-10px;top:-10px;background:var(--err);color:#fff}.tx-resize{right:-9px;bottom:-9px;width:14px;height:14px;border-radius:3px;background:var(--accent);cursor:nwse-resize;touch-action:none}.hint.small{font-size:12px;padding:6px 12px 2px;color:var(--muted);line-height:1.45}.zoom{position:relative}.zoom-value{min-width:52px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;color:var(--ink);padding:2px 4px;border-radius:6px}.zoom-value:hover{background:#eef2ff}.zoom-menu{position:absolute;top:34px;right:0;z-index:40;min-width:168px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 10px 26px #0003;display:grid;gap:2px}.zoom-menu button{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;padding:6px 8px;border-radius:6px;text-align:left}.zoom-menu button:hover{background:#eef2ff}.zoom-menu kbd{font:inherit;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.zoom-hint{font-size:11px;color:var(--muted);padding:6px 8px 2px;border-top:1px solid var(--line);margin-top:4px}.zoom.undo button{font-size:15px}.shape-layer{position:absolute;inset:0;z-index:0;isolation:isolate}.shape-box{position:absolute;box-sizing:border-box;border:1px solid transparent;touch-action:none}.shape-box:hover{outline:1px dashed rgba(37,99,235,.45)}.shape-box.active{z-index:5!important}.field.imgrow .swatch{width:22px;height:22px;border-radius:5px;border:1px solid var(--line);flex:none}.img-overlay{position:absolute;cursor:move;touch-action:none;z-index:1;border:1px solid transparent;box-sizing:border-box}.img-overlay img{width:100%;height:100%;display:block;pointer-events:none;user-select:none}.img-overlay:hover{outline:1px dashed rgba(37,99,235,.6)}.img-overlay.active{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}.img-swap{position:absolute;left:-10px;top:-10px;width:20px;height:20px;background:var(--accent);color:#fff;border:2px solid #fff;border-radius:50%;cursor:pointer;font-size:11px;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}
