body.app{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:400 22px var(--display)}.topbar .tag{font-size:13px;color:var(--muted)}.topbar .tag:before{content:"🔒 "}.plan-slot{margin-left:auto;display:flex;align-items:center;gap:10px}.editor{display:grid;grid-template-columns:minmax(340px,430px) 1fr;gap:0;align-items:start}.panel{height:calc(100vh - 57px);overflow-y:auto;padding:16px 18px 40px;border-right:1px solid var(--line);background:var(--surface);position:sticky;top:57px}.step{padding:14px 0 18px;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}.step h2{font:600 16px var(--font);display:flex;align-items:center;gap:10px;margin-bottom:10px}.step h2 .n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px}.tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tpl{display:grid;gap:4px;padding:4px;border:2px solid transparent;border-radius:12px;background:var(--surface-2);cursor:pointer;text-align:left;font:600 11.5px/1.25 var(--font);color:var(--ink-2);transition:border-color .2s,transform .15s}.tpl img{width:100%;aspect-ratio:842 / 595;object-fit:cover;border-radius:8px;display:block;box-shadow:0 1px 3px #0000001f}.tpl span{padding:0 3px 2px}.tpl:hover{transform:translateY(-1px);border-color:var(--line-2)}.tpl.on{border-color:var(--brand-2);background:var(--brand-soft)}.tpl.upload .up-ico{aspect-ratio:842 / 595;display:grid;place-items:center;font-size:26px;color:var(--brand-2);border:1.5px dashed var(--line-2);border-radius:8px;background:var(--surface)}.tpl small{display:block;font-weight:400;color:var(--muted)}.data{font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;margin:8px 0;white-space:pre;overflow-x:auto}.sheet-table{overflow-x:auto}.sheet-table table{width:100%;border-collapse:collapse;font-size:12.5px}.sheet-table th,.sheet-table td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.sheet-table th{color:var(--muted);font-weight:600}.sheet-table tr[data-i]{cursor:pointer}.sheet-table tr.cur td{background:var(--brand-soft)}.field-card{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;display:grid;gap:8px;background:var(--surface);transition:border-color .2s,box-shadow .2s}.field-card.active{border-color:var(--brand-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-2) 15%,transparent)}.fc-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fc-row textarea{flex:1;min-width:0}.fc-grid{display:grid;grid-template-columns:1.6fr .7fr .6fr 1fr;gap:8px;font-size:12px;color:var(--muted)}.fc-grid select,.fc-grid input{font-size:12.5px;padding:6px 8px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{font:12px ui-monospace,Menlo,monospace;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:2px 9px;cursor:pointer}.chip:hover{border-color:var(--brand-2);color:var(--brand-2)}.del{width:30px;height:30px;font-size:13px;color:var(--muted)}.thumb{height:34px;max-width:120px;object-fit:contain;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0 / 10px 10px;border-radius:6px;border:1px solid var(--line)}.seg button{font-size:14px;padding:5px 10px}.verify-box{margin-top:14px;padding:12px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--marigold) 10%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--marigold) 35%,var(--line));display:grid;gap:10px}.verify-box p{margin:0 0 6px}.outputs{border:0;padding:0;margin:0 0 10px;display:grid;gap:8px;font-size:14px}#generate{margin-top:12px}progress{width:100%;height:8px;margin-top:10px;accent-color:var(--brand-2)}.preview{padding:18px 26px 40px;min-width:0}.preview-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.preview-bar .count{font-weight:600;min-width:64px;text-align:center;font-variant-numeric:tabular-nums}.stage{position:relative;aspect-ratio:var(--ratio, 842 / 595);width:100%;max-height:calc(100vh - 160px);margin:0 auto;border-radius:6px;box-shadow:var(--shadow-lg);background:#fff}.stage .sheet{display:block;width:100%;height:100%;touch-action:none;user-select:none}.stage.snap:after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed #d946ef;pointer-events:none}.fld{cursor:grab;outline:none}.fld:active{cursor:grabbing}.fld .box{fill:transparent;stroke:transparent;stroke-width:1;vector-effect:non-scaling-stroke}.fld:hover .box{stroke:#6d28d973;stroke-dasharray:4 3}.fld.sel .box,.fld:focus-visible .box{stroke:#7c3aed;stroke-width:1.5;stroke-dasharray:none;fill:#7c3aed0d}.ph{fill:#7c3aed0f;stroke:#7c3aed80;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.ph-t{font:600 10px var(--font);fill:#7c3aed}.pro-wm{font:700 90px var(--font);fill:#7c3aed1f;pointer-events:none;letter-spacing:6px}body.app:not(.ready) .stage{opacity:.4}@media(max-width:900px){.editor{grid-template-columns:1fr}.panel{position:static;height:auto;border-right:0;order:2}.preview{position:sticky;top:57px;z-index:5;background:var(--bg);padding:10px 12px;border-bottom:1px solid var(--line)}.topbar .tag{display:none}.tpl-grid{grid-template-columns:repeat(3,1fr)}.fc-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.topbar{gap:10px;padding:10px 12px}.plan-slot .badge{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.brand{font-size:20px;flex:none}}
