:root{color:#18181b;font-family:IBM Plex Sans,PingFang SC,Noto Sans SC,sans-serif;line-height:1.45;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f3f1ec;--panel: #fffcf7;--ink: #1c1917;--muted: #78716c;--line: #e7e5e4;--accent: #0f766e;--accent-ink: #ecfdf5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;background:var(--bg)}body{background:radial-gradient(1200px 600px at 10% -10%,#d9f99d55,transparent 55%),radial-gradient(900px 500px at 100% 0%,#99f6e455,transparent 50%),var(--bg)}.app{display:grid;grid-template-columns:minmax(320px,420px) 1fr;height:100%;min-height:100vh}.panel{display:flex;flex-direction:column;gap:14px;padding:20px 18px 18px;background:color-mix(in srgb,var(--panel) 92%,white);border-right:1px solid var(--line);overflow:auto}.panel-title{margin:0 0 4px;font-family:Fraunces,Songti SC,serif;font-size:1.55rem;letter-spacing:-.02em}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.field input[type=text],.field input[type=number],.field input:not([type]),.json-area{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink);font:inherit}.json-area{min-height:160px;resize:vertical;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;line-height:1.4}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmented button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit}.segmented button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.row-actions,.panel-actions{display:flex;gap:8px}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-primary,.btn-outline,.btn-secondary,.file-btn{flex:1;border-radius:8px;padding:10px 12px;font:inherit;font-weight:600;cursor:pointer;text-align:center}.btn-primary{border:none;background:var(--accent);color:var(--accent-ink)}.btn-outline{border:1px solid var(--ink);background:transparent;color:var(--ink)}.btn-secondary,.file-btn{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:500}.btn-primary:disabled,.btn-outline:disabled{opacity:.5;cursor:not-allowed}.series-editor{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.series-row{display:flex;align-items:center;gap:8px;font-size:13px}.series-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-btn{font-size:12px;color:var(--accent);cursor:pointer}.linkish{border:none;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:12px;padding:0}.errors{margin:0;padding:8px 10px;list-style:none;background:#fff1f2;color:#9f1239;border-radius:8px;font-size:13px}.export-status{padding:10px;border-radius:8px;background:#f0fdfa;color:#115e59;font-size:13px}.progress-bar{margin-top:8px;height:6px;background:#ccfbf1;border-radius:999px;overflow:hidden}.progress-bar>div{height:100%;background:var(--accent)}.stage{display:flex;align-items:center;justify-content:center;padding:24px;min-height:100vh}.stage-frame{width:min(42vh,360px);aspect-ratio:9 / 16;background:#fff;border-radius:16px;box-shadow:0 20px 50px #1c19171f,0 2px 8px #1c19170f;overflow:hidden}.stage-canvas{display:block;width:100%;height:100%}@media(max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.panel{border-right:none;border-bottom:1px solid var(--line);max-height:50vh}.stage{min-height:50vh}}
