:root{--bg-app:#f4f1eb;--bg-panel:#fff;--bg-input:#faf8f4;--bg-input-focus:#f5f2ec;--border:#ddd8cf;--border-focus:#c47a2a;--text-primary:#1a1816;--text-secondary:#6b6560;--text-muted:#a9a39a;--accent:#c47a2a;--accent-dim:#c47a2a1f;--danger:#c53030;--radius:6px;--font-ui:"Inter", "Noto Sans SC", -apple-system, sans-serif;--font-mono:"Fira Code", "SF Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-ui);color:var(--text-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;font-size:13px}#app,.app{grid-template:"topbar topbar""left right"1fr/540px 1fr;height:100vh;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--bg-panel);grid-area:topbar;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.topbar-title{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:15px;font-weight:700}.topbar-status{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:12px;font-size:12px;display:flex}.status-fontsize{background:var(--accent-dim);color:var(--accent);border-radius:3px;padding:2px 8px;font-weight:600}.status-zoom{color:var(--text-secondary);cursor:default}.status-zoom.zoom-modified,.status-pages{background:var(--accent-dim);color:var(--accent);border-radius:3px;padding:2px 8px;font-weight:600}.status-overflow{color:var(--danger);font-weight:600;display:none}.status-overflow.visible{display:inline}.btn-print{background:var(--accent);color:#fff;border-radius:var(--radius);font-family:var(--font-ui);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;border:none;padding:6px 16px;font-size:12px;font-weight:600;transition:opacity .15s}.btn-print:hover{opacity:.85}.left-panel{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;grid-area:left;min-width:0;min-height:0;display:flex;overflow:hidden}.editors-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.editors-header>span{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:600}.btn-add-page{background:var(--accent);color:#fff;border-radius:var(--radius);font-family:var(--font-ui);cursor:pointer;border:none;padding:5px 12px;font-size:11px;font-weight:600;transition:opacity .15s}.btn-add-page:hover{opacity:.85}.editors-wrapper{flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.sample-bar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.sample-label{color:var(--text-muted);font-size:11px}.sample-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-ui);cursor:pointer;outline:none;padding:3px 8px;font-size:11px}.sample-select:focus{border-color:var(--border-focus)}.editors-list{flex-direction:column;flex:1 1 0;gap:12px;padding:12px;display:flex;overflow-y:auto}.editor-card{border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;overflow:hidden}.editor-card-header{background:var(--bg-input);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.page-num-label{color:var(--text-secondary);font-size:11px;font-weight:600}.btn-delete-page{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:11px;transition:all .15s}.btn-delete-page:hover{background:var(--danger);color:#fff}.editor-textarea{resize:vertical;width:100%;min-height:120px;font-family:var(--font-mono);color:var(--text-primary);background:0 0;border:none;outline:none;padding:12px;font-size:13px;line-height:1.6}.editor-textarea::placeholder{color:var(--text-muted)}.controls-section{border-top:1px solid var(--border);flex-shrink:0;padding:12px 16px}.controls-header{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600}.control-group{margin-bottom:8px}.control-label{flex-direction:column;gap:4px;display:flex}.control-label-text{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:12px;display:flex}.control-value{font-family:var(--font-mono);color:var(--accent);font-size:11px}.control-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-ui);cursor:pointer;outline:none;padding:6px 8px;font-size:12px}.control-select:focus{border-color:var(--border-focus)}.control-range{appearance:none;background:var(--border);border-radius:2px;outline:none;width:100%;height:4px;margin:4px 0}.control-range::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:transform .1s}.control-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.right-panel{background:var(--bg-app);cursor:grab;background-image:radial-gradient(circle,#d5d0c6 1px,#0000 1px);background-size:20px 20px;grid-area:right;min-width:0;min-height:0;padding:30px;overflow:auto}.right-panel.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.a4-wrapper{flex-direction:column;align-items:center;gap:24px;display:flex}.a4-page{box-sizing:border-box;--page-bg:#fff;--page-text:#1a1a1a;--heading-color:#1a1a1a;--link-color:#1a5fb4;--code-bg:#f6f8fa;--code-inline-bg:#f0f2f5;--quote-border:#d0d0d0;--quote-text:#555;--hr-color:#d8dee4;--table-border:#d8dee4;--table-header-bg:#f6f8fa;--ps:.5em;--fi:0;background:var(--page-bg);width:210mm;height:297mm;color:var(--page-text);flex-shrink:0;font-family:Noto Sans SC,Inter,sans-serif;overflow:hidden;box-shadow:0 2px 16px #0000001a,0 0 0 1px #0000000d}.a4-page h1,.a4-page h2,.a4-page h3,.a4-page h4,.a4-page h5,.a4-page h6{color:var(--heading-color);line-height:inherit}.a4-page h1{margin-top:0;margin-bottom:.33em;font-size:2em;font-weight:700}.a4-page h2{margin-top:.67em;margin-bottom:.33em;font-size:1.5em;font-weight:700}.a4-page h3{margin-top:.67em;margin-bottom:.33em;font-size:1.17em;font-weight:700}.a4-page h4{margin-top:.5em;margin-bottom:.25em;font-size:1em;font-weight:700}.a4-page h5{margin-top:.5em;margin-bottom:.25em;font-size:.83em;font-weight:700}.a4-page h6{margin-top:.5em;margin-bottom:.25em;font-size:.67em;font-weight:700}.a4-page p{margin:var(--ps) 0;text-indent:var(--fi);line-height:inherit}.a4-page h1:first-child,.a4-page h2:first-child,.a4-page h3:first-child,.a4-page p:first-child{margin-top:0}.a4-page ul,.a4-page ol{margin:var(--ps) 0;line-height:inherit;padding-left:2em}.a4-page li{margin:.15em 0}.a4-page blockquote{border-left:3px solid var(--quote-border);margin:var(--ps) 0 var(--ps) 1em;color:var(--quote-text);line-height:inherit;padding-left:1em}.a4-page pre{font-family:var(--font-mono);background:var(--code-bg);margin:var(--ps) 0;white-space:pre-wrap;word-break:break-word;font-size:.875em;line-height:inherit;border-radius:4px;padding:.75em 1em;overflow-x:auto}.a4-page code{font-family:var(--font-mono);background:var(--code-inline-bg);border-radius:3px;padding:.15em .35em;font-size:.875em}.a4-page pre code{background:0 0;padding:0}.a4-page a{color:var(--link-color);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.a4-page hr{border:none;border-top:1px solid var(--hr-color);margin:1em 0}.a4-page strong{font-weight:700}.a4-page em{font-style:italic}.a4-page table{border-collapse:collapse;width:100%;margin:var(--ps) 0;font-size:.9em}.a4-page th,.a4-page td{border:1px solid var(--table-border);text-align:left;padding:.35em .6em}.a4-page th{background:var(--table-header-bg);font-weight:600}.a4-page.theme-warm{--page-bg:#faf5eb;--page-text:#3c3226;--heading-color:#7a5a2e;--link-color:sienna;--code-bg:#f3ead6;--code-inline-bg:#efe5d0;--quote-border:#c8b48a;--quote-text:#6b5a40;--hr-color:#d8ccb0;--table-border:#d8ccb0;--table-header-bg:#f3ead6}.a4-page.theme-academic{--page-bg:#fff;--page-text:#222;--heading-color:#1a3055;--link-color:#1a3055;--code-bg:#f0f3f8;--code-inline-bg:#e8ecf4;--quote-border:#1a3055;--quote-text:#444;--hr-color:#1a3055;--table-border:#9aa8c0;--table-header-bg:#e8ecf4}.a4-page.theme-academic h2{border-bottom:2px solid #1a3055;padding-bottom:.15em}.a4-page.theme-academic hr{border-top-width:2px}.a4-page.theme-editorial{--page-bg:#fff;--page-text:#1a1a1a;--heading-color:#c0392b;--link-color:#c0392b;--code-bg:#fdf2f0;--code-inline-bg:#fce8e5;--quote-border:#c0392b;--quote-text:#555;--hr-color:#c0392b;--table-border:#e0c4c0;--table-header-bg:#fdf2f0}.a4-page.theme-editorial h1{letter-spacing:.04em;text-transform:uppercase}.a4-page.theme-editorial blockquote{border-left-width:4px;font-style:italic}.a4-page.theme-editorial hr{border-top-width:3px}.a4-page.theme-smartisan{--page-bg:#faf8f2;--page-text:#333;--heading-color:#333;--link-color:#9b4d2b;--code-bg:#f3f0e8;--code-inline-bg:#eeeae0;--quote-border:#b5472a;--quote-text:#666;--hr-color:#c8c0b0;--table-border:#d8d0c4;--table-header-bg:#f3f0e8}.a4-page.theme-smartisan h1{letter-spacing:.02em;font-weight:900}.a4-page.theme-smartisan h2{color:#b5472a}.a4-page.theme-smartisan hr{border-top:none;border-bottom:1px dashed #c8b8a0;margin:1.2em 2em}.a4-page.theme-smartisan blockquote{border-left-width:3px;border-left-color:#b5472a}.a4-page.theme-noir{--page-bg:#1a1a2e;--page-text:#d4d4dc;--heading-color:#e8c547;--link-color:#6bafff;--code-bg:#16162a;--code-inline-bg:#242444;--quote-border:#e8c547;--quote-text:#a0a0b0;--hr-color:#3a3a5c;--table-border:#3a3a5c;--table-header-bg:#222240}.a4-page.theme-noir hr{border-top-width:1px}.a4-page.theme-mint{--page-bg:#f2faf6;--page-text:#1a2e26;--heading-color:#1a7a5a;--link-color:#1a7a5a;--code-bg:#e6f5ee;--code-inline-bg:#ddf0e6;--quote-border:#2ea07a;--quote-text:#3d6b5a;--hr-color:#b0d8c8;--table-border:#b0d8c8;--table-header-bg:#e6f5ee}.a4-page.theme-mint h2{border-bottom:1.5px solid #2ea07a;padding-bottom:.1em}.a4-page.theme-ink{--page-bg:#f7f5ef;--page-text:#1a1a1a;--heading-color:#000;--link-color:#444;--code-bg:#edeae0;--code-inline-bg:#e6e2d8;--quote-border:#1a1a1a;--quote-text:#555;--hr-color:#1a1a1a;--table-border:#999;--table-header-bg:#edeae0}.a4-page.theme-ink h1{letter-spacing:.1em;font-weight:900}.a4-page.theme-ink h2{letter-spacing:.06em}.a4-page.theme-ink hr{border-top:2px solid #1a1a1a;margin:1em 0}.a4-page.theme-ink blockquote{border-left-width:4px;border-left-color:#1a1a1a}.a4-page.theme-tech{--page-bg:#f8f9fc;--page-text:#1e293b;--heading-color:#0958d9;--link-color:#0958d9;--code-bg:#eef2ff;--code-inline-bg:#e0e7ff;--quote-border:#0958d9;--quote-text:#475569;--hr-color:#cbd5e1;--table-border:#cbd5e1;--table-header-bg:#eef2ff}.a4-page.theme-tech h1{letter-spacing:-.01em}.a4-page.theme-tech h2{border-bottom:2px solid #0958d9;padding-bottom:.12em}.a4-page.theme-tech code{color:#0958d9}.a4-page.theme-kraft{--page-bg:#e8dcc8;--page-text:#3d3122;--heading-color:#5c3d1a;--link-color:#7a4e2a;--code-bg:#ddd0b8;--code-inline-bg:#d6c8ae;--quote-border:#8b6b40;--quote-text:#5c4a30;--hr-color:#b8a480;--table-border:#b8a480;--table-header-bg:#ddd0b8}.a4-page.theme-kraft h1{font-weight:900}.a4-page.theme-kraft hr{border-top:1.5px solid #8b6b40}@page{size:A4;margin:0}@media print{html,body{background:#fff;height:auto;overflow:visible}body.is-printing{background:#fff}body.is-printing *{visibility:hidden}body.is-printing #app,body.is-printing .app,body.is-printing .right-panel,body.is-printing .a4-wrapper,body.is-printing .a4-wrapper *{visibility:visible!important}body.is-printing #app,body.is-printing .app{height:auto!important;display:block!important;overflow:visible!important}body.is-printing .topbar,body.is-printing .left-panel{display:none!important}body.is-printing .right-panel{cursor:default!important;background:#fff!important;min-width:auto!important;min-height:auto!important;padding:0!important;display:block!important;overflow:visible!important}body.is-printing .a4-wrapper{display:block!important;position:static!important}body.is-printing .a4-page{box-shadow:none;break-after:page;page-break-after:always;margin:0;width:210mm!important;height:297mm!important;transform:none!important}body.is-printing .a4-page:last-child{break-after:auto;page-break-after:auto}}
