:root{--paper:#f7f4ee;--paper-2:#fffdf9;--ink:#23201c;--ink-soft:#6b645b;--line:#ddd5c8;--line-strong:#c3b9a8;--accent:#c2382f;--accent-soft:#f6e6e3;--ok:#2f6f4e;--warn:#9a6b16;--err:#a32b22;--radius:10px;--shadow:0 1px 2px #23201c0f, 0 8px 24px #23201c0f;--font:"Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--paper-2);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:16px;padding:10px 18px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:8px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:15px;display:inline-grid}.topnav{gap:14px;margin-left:8px;display:flex}.topnav a{color:var(--ink-soft);font-size:14px}.topnav a:hover{color:var(--accent)}.topactions{gap:8px;margin-left:auto;display:flex}button{border:1px solid var(--line-strong);color:var(--ink);background:#fff;border-radius:8px;padding:6px 12px;transition:background .15s,border-color .15s,transform 50ms}button:hover:not(:disabled){border-color:var(--ink-soft);background:#fbf8f2}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#a92f27;border-color:#a92f27}button.danger{color:var(--err);border-color:#dcc3bf}button.ghost{background:0 0}.workspace{grid-template-columns:300px minmax(320px,1fr) 330px;align-items:start;gap:14px;min-height:calc(100vh - 56px);padding:14px 18px 24px;display:grid}.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:18px;max-height:calc(100vh - 84px);padding:14px;display:flex;overflow-y:auto}.panel h2{letter-spacing:.04em;color:var(--ink-soft);margin:0 0 8px;font-size:13px;font-weight:600}.hint{color:var(--ink-soft);margin:6px 0 0;font-size:12px;line-height:1.6}.warn-text{color:var(--warn)}.fold-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.fold-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.fold-card.active{border-color:var(--accent);background:var(--accent-soft)}.fold-diagram{width:100%;height:46px}.fold-name{font-size:12px;font-weight:600}.fold-meta{color:var(--ink-soft);font-size:10px}.field{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field b{color:var(--ink);font-variant-numeric:tabular-nums}.field input[type=range]{width:100%;accent-color:var(--accent)}.field select{border:1px solid var(--line-strong);background:#fff;border-radius:6px;padding:4px 6px}.check{align-items:center;gap:6px;margin-bottom:6px;font-size:13px;display:flex}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.swatch.active{border-color:var(--ink)}.preset-list{flex-direction:column;gap:6px;display:flex}.preset-item{text-align:left;background:#fff;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;display:flex}.preset-name{font-size:13px;font-weight:600}.preset-meta{color:var(--ink-soft);font-size:11px}.stage{flex-direction:column;gap:8px;min-height:480px;display:flex}.toolbar{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.toolbar .tool{padding:6px 11px;font-size:13px}.toolbar .tool.active{background:var(--ink);border-color:var(--ink);color:#fff}.toolbar-sep{background:var(--line);width:1px;height:20px;margin:0 2px}.tool-hint{color:var(--ink-soft);margin:0;font-size:12px}.canvas-wrap{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);min-height:420px;box-shadow:var(--shadow);flex:1;position:relative;overflow:hidden}.canvas-svg{width:100%;height:100%;display:block}.canvas-tools{gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.canvas-tools button{background:#fffe;padding:4px 9px;font-size:13px}.draft-bar{border:1px solid var(--line-strong);box-shadow:var(--shadow);background:#fffe;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.draft-bar button{padding:3px 10px}.stage-footer{color:var(--ink-soft);gap:14px;font-size:11px;display:flex}.preview-box{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:8px;place-items:center;display:grid;overflow:hidden}.preview-svg{width:100%;height:100%}.stats{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.stats li{justify-content:space-between;gap:8px;display:flex}.stats li span{color:var(--ink-soft)}.issues{flex-direction:column;gap:6px;margin:0;padding:0;font-size:12px;line-height:1.5;list-style:none;display:flex}.issues li{border-left:3px solid var(--line-strong);background:#f4f1ea;border-radius:6px;padding:6px 8px}.issues li.error{border-left-color:var(--err);background:#fbeeec}.issues li.warn{border-left-color:var(--warn);background:#fdf6e7}.issues li.info{background:#eef2f5;border-left-color:#6b8ba6}.issues li.ok{border-left-color:var(--ok);background:#eef5f0}.badge{color:var(--ink-soft);background:#eee7da;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:400}.export-buttons{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.import-row{margin-top:8px}.toast{background:var(--ink);color:#fff;max-width:min(92vw,620px);box-shadow:var(--shadow);z-index:60;border-radius:10px;padding:10px 16px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast.error{background:var(--err)}.toast.warn{background:var(--warn)}.toast.success{background:var(--ok)}.modal-backdrop{z-index:50;background:#23201c59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--paper-2);border-radius:14px;width:min(460px,94vw);padding:20px;box-shadow:0 20px 60px #0000003d}.modal h3{margin:0 0 8px;font-size:16px}.modal p{color:var(--ink-soft);font-size:13px;line-height:1.6}.modal-actions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.mobile-tabs{display:none}@media (max-width:1180px){.workspace{grid-template-columns:260px minmax(300px,1fr) 300px}}@media (max-width:900px){.workspace{grid-template-columns:1fr;min-height:auto;padding:10px}.panel{max-height:none}.mobile-tabs{gap:6px;padding:8px 10px 0;display:flex}.mobile-tabs button{background:#efeade;border-bottom:none;border-radius:8px 8px 0 0;flex:1;padding:8px}.mobile-tabs button.active{background:var(--paper-2);font-weight:600}.workspace.tab-edit .panel-preview,.workspace.tab-preview .panel-settings,.workspace.tab-preview .stage,.topnav{display:none}.canvas-wrap{min-height:60vh}}@media (max-width:520px){.topbar{gap:8px;padding:8px 10px}.topactions button{padding:5px 8px;font-size:12px}.export-buttons{grid-template-columns:1fr}.fold-grid{grid-template-columns:repeat(2,1fr)}}.doc{max-width:880px;margin:0 auto;padding:32px 20px 80px;line-height:1.75}.doc h1{letter-spacing:.01em;margin:0 0 6px;font-size:26px}.doc h2{border-bottom:1px solid var(--line);margin:30px 0 10px;padding-bottom:6px;font-size:18px}.doc h3{margin:20px 0 6px;font-size:15px}.doc p,.doc li{color:#3a352e;font-size:15px}.doc .lead{color:var(--ink-soft);font-size:15px}.doc table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14px}.doc th,.doc td{border:1px solid var(--line);text-align:left;padding:8px 10px}.doc th{background:#f1ece2;font-weight:600}.doc code{background:#f1ece2;border-radius:4px;padding:1px 5px;font-size:13px}.doc .note{border-left:3px solid var(--warn);background:#fbf6ea;border-radius:6px;padding:10px 14px}.doc .site-nav{flex-wrap:wrap;gap:16px;padding:10px 0 22px;font-size:14px;display:flex}.doc .site-nav a{color:var(--ink-soft)}.doc .site-nav a.current{color:var(--accent);font-weight:600}.doc .grid-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.doc .card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px}.doc .card h3{margin-top:0}.doc .thumb{background:#fff;width:100%;height:130px;display:block}.doc .crumbs{color:var(--ink-soft);margin-bottom:8px;font-size:13px}.doc .steps li{margin-bottom:8px}.doc .tag{color:var(--ink-soft);background:#f1ece2;border-radius:999px;margin-right:6px;padding:1px 7px;font-size:11px;display:inline-block}
