:root{--ink: #1f2a44;--ink-hover: #2c3b5e;--ink-soft: #eef1f7;--chrome: #f5f6f8;--chrome-line: #e2e5ea;--chrome-2: #ffffff;--text: #23262b;--text-dim: #6a7078;--paper: #ffffff;--desk: #d6d9df;--danger: #b23b3b;--radius: 6px;--shadow-page: 0 1px 3px rgba(0,0,0,.12), 0 8px 24px rgba(0,0,0,.08);--font-ui: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--desk);overflow:hidden}#app{display:flex;flex-direction:column;height:100vh}.titlebar{display:flex;align-items:center;gap:12px;height:40px;padding:0 14px;background:var(--ink);color:#fff;flex-shrink:0}.titlebar .brand{font-weight:600;letter-spacing:.2px}.titlebar .brand .dot{color:#9db2e6}.titlebar .doc-name{font-size:13px;opacity:.85}.titlebar .doc-name .dirty{color:#ffd27a;margin-left:4px}.titlebar .spacer{flex:1}.titlebar .user{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.9}.titlebar .user img{width:26px;height:26px;border-radius:50%}.titlebar .quick{display:flex;gap:6px}.titlebar .quick button{background:#ffffff1f;border:none;color:#fff;width:30px;height:30px;border-radius:5px;cursor:pointer;display:grid;place-items:center}.titlebar .quick button:hover{background:#ffffff38}.ribbon{background:var(--chrome);border-bottom:1px solid var(--chrome-line);flex-shrink:0}.ribbon-tabs{display:flex;gap:2px;padding:4px 10px 0}.ribbon-tab{border:none;background:transparent;padding:7px 16px 8px;font:inherit;font-size:13px;color:var(--text-dim);cursor:pointer;border-radius:6px 6px 0 0}.ribbon-tab:hover{color:var(--text);background:#00000008}.ribbon-tab.active{color:var(--ink);background:var(--chrome-2);font-weight:600;box-shadow:inset 0 -2px 0 var(--ink)}.ribbon-panes{background:var(--chrome-2)}.ribbon-pane{display:flex;align-items:stretch;gap:0;padding:8px 6px 4px;min-height:84px}.ribbon-group{display:flex;flex-direction:column;justify-content:space-between;padding:0 10px;border-right:1px solid var(--chrome-line)}.ribbon-group:last-child{border-right:none}.ribbon-group-label{text-align:center;font-size:11px;color:var(--text-dim);padding-top:4px}.ribbon-stack{display:flex;flex-direction:column;gap:3px}.ribbon-row{display:flex;align-items:center;gap:2px}.ribbon-btn{border:1px solid transparent;background:transparent;color:var(--text);width:30px;height:30px;border-radius:5px;cursor:pointer;display:grid;place-items:center}.ribbon-btn:hover{background:var(--ink-soft);border-color:var(--chrome-line)}.ribbon-btn.active{background:var(--ink-soft);border-color:#c3ccdf;color:var(--ink)}.ribbon-btn svg{display:block}.ribbon-inline-icon{display:grid;place-items:center;color:var(--ink);padding-right:4px}.ribbon-select{height:28px;border:1px solid var(--chrome-line);border-radius:5px;background:#fff;font:inherit;font-size:13px;padding:0 6px;color:var(--text);cursor:pointer}.ribbon-select:hover{border-color:#c3ccdf}.ribbon-color{position:relative;display:inline-grid}.ribbon-color-input{position:absolute;inset:auto 0 -2px;width:100%;height:3px;padding:0;border:none;background:none;cursor:pointer;opacity:0;pointer-events:none}.workspace{display:flex;flex:1;min-height:0}.file-explorer{width:240px;flex-shrink:0;background:var(--chrome);border-right:1px solid var(--chrome-line);display:flex;flex-direction:column;min-height:0}.fx-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px}.fx-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.fx-open{border:none;background:transparent;cursor:pointer;color:var(--ink);padding:4px;border-radius:4px;display:grid;place-items:center}.fx-open:hover{background:var(--ink-soft)}.fx-dirname{padding:2px 12px 8px;font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx-list{overflow-y:auto;flex:1;padding:4px 6px}.fx-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;text-align:left;padding:6px 8px;border-radius:5px;cursor:pointer;font:inherit;font-size:13px;color:var(--text)}.fx-item svg{color:var(--ink);flex-shrink:0}.fx-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx-item:hover{background:var(--ink-soft)}.fx-item.active{background:var(--ink-soft);font-weight:600}.fx-empty{padding:12px;font-size:12px;color:var(--text-dim);line-height:1.5}.canvas{flex:1;overflow:auto;background:var(--desk);padding:28px;min-width:0;position:relative}.page-wrap{display:flex;justify-content:center;transform-origin:top center;min-width:min-content}.doc-page{background:var(--paper);box-shadow:var(--shadow-page);flex-shrink:0}.doc-page-content:focus{outline:none}.doc-page-content{line-height:1.5;color:#1a1a1a;font-family:Times New Roman,Times,serif;font-size:11pt}.doc-page-content h1{font-size:2em;margin:.3em 0 .4em}.doc-page-content h2{font-size:1.5em;margin:.3em 0 .4em}.doc-page-content h3{font-size:1.25em}.doc-page-content p{margin:0 0 .35em}.doc-page-content .doc-title{font-size:2.4em;font-weight:300}.doc-page-content ul,.doc-page-content ol{margin:0 0 .4em 1.4em}.doc-page-content a{color:var(--ink)}.doc-page-content .tableWrapper{overflow-x:auto;margin:10px 0}.doc-page-content .tableWrapper table{border-collapse:collapse;width:100%;table-layout:fixed;margin:0}.doc-page-content .tableWrapper td,.doc-page-content .tableWrapper th{border:1px solid #7a8290;padding:6px 10px;vertical-align:top;min-width:40px;height:1.8em;position:relative;box-sizing:border-box}.doc-page-content .tableWrapper th{background:#eef1f7;font-weight:600;text-align:left}.doc-page-content .tableWrapper td>p,.doc-page-content .tableWrapper th>p{margin:0;min-height:1.2em}.doc-page-content .tableWrapper .selectedCell:after{content:"";position:absolute;inset:0;background:#1f2a441a;pointer-events:none}.doc-page-content .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:var(--ink);cursor:col-resize;opacity:0}.doc-page-content .tableWrapper:hover .column-resize-handle{opacity:.4}.doc-page-content.resize-cursor{cursor:col-resize}.doc-page-content .doc-page-break{position:relative;margin:16px 0;border-top:2px dashed #b0b6c0;text-align:center;user-select:none}.doc-page-content .doc-page-break-label{position:relative;top:-10px;background:var(--paper);padding:0 10px;font-size:11px;color:var(--text-dim);letter-spacing:.3px}.doc-page-content .doc-image-wrap{position:relative;line-height:0;max-width:100%}.doc-page-content .doc-image-wrap>img.doc-image{display:block;max-width:100%;height:auto}.doc-page-content .doc-image-wrap.is-inline{vertical-align:baseline}.doc-page-content .doc-image-handles,.doc-page-content .doc-image-toolbar{opacity:0;pointer-events:none;transition:opacity .12s}.doc-page-content .doc-image-wrap.is-selected .doc-image-handles,.doc-page-content .doc-image-wrap:hover .doc-image-handles,.doc-page-content .doc-image-wrap.is-selected .doc-image-toolbar{opacity:1;pointer-events:auto}.doc-page-content .doc-image-wrap.is-selected>img.doc-image{outline:2px solid var(--ink, #2b6cb0);outline-offset:1px}.doc-page-content .doc-image-handle{position:absolute;width:10px;height:10px;background:#fff;border:1.5px solid var(--ink, #2b6cb0);border-radius:2px;z-index:5}.doc-page-content .doc-image-handle-nw{top:-5px;left:-5px;cursor:nwse-resize}.doc-page-content .doc-image-handle-ne{top:-5px;right:-5px;cursor:nesw-resize}.doc-page-content .doc-image-handle-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.doc-page-content .doc-image-handle-se{bottom:-5px;right:-5px;cursor:nwse-resize}.doc-page-content .doc-image-toolbar{position:absolute;top:-34px;left:50%;transform:translate(-50%);display:flex;gap:2px;padding:3px;background:#fff;border:1px solid var(--chrome-line, #d5d9df);border-radius:6px;box-shadow:0 4px 14px #0000001f;line-height:1;z-index:6;white-space:nowrap}.doc-page-content .doc-image-tbtn{border:none;background:transparent;border-radius:4px;padding:3px 7px;font-size:14px;cursor:pointer;color:var(--text-dim, #5a616b)}.doc-page-content .doc-image-tbtn:hover{background:var(--ink-soft, #eef3fb)}.doc-page-content .doc-image-tbtn.on{background:var(--ink-soft, #e2ecfb);color:var(--ink, #2b6cb0)}.doc-hf-column{display:flex;flex-direction:column;align-items:stretch;width:min-content}.doc-hf{align-self:stretch;overflow:hidden;background:var(--paper, #fff);border:1px dashed #cdd3db;position:relative}.doc-header{margin-bottom:6px;border-radius:6px 6px 0 0}.doc-footer{margin-top:6px;border-radius:0 0 6px 6px}.doc-hf-label{position:absolute;top:4px;right:8px;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim, #9aa0a8);user-select:none;pointer-events:none;z-index:1}.doc-hf-mount{padding:20px 24px 10px;min-height:32px}.doc-footer .doc-hf-mount{padding:10px 24px 20px}.doc-hf-content{outline:none;font-size:10.5pt}.doc-hf-content p{margin:0}.doc-hf-content.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#b3b9c2;float:left;height:0;pointer-events:none}.doc-hf-toolbar{display:flex;align-items:center;gap:2px;padding:3px 8px;background:#f6f8fa;border-bottom:1px solid #e3e7ec;opacity:0;transition:opacity .12s;pointer-events:none}.doc-footer .doc-hf-toolbar{border-bottom:none;border-top:1px solid #e3e7ec}.doc-hf:focus-within .doc-hf-toolbar,.doc-hf:hover .doc-hf-toolbar{opacity:1;pointer-events:auto}.doc-hf-tbtn{border:none;background:transparent;border-radius:4px;padding:3px 5px;cursor:pointer;color:var(--text-dim, #5a616b);display:inline-flex;align-items:center;font-size:12px;line-height:1}.doc-hf-tbtn:hover{background:var(--ink-soft, #eef3fb)}.doc-hf-field{font-weight:700;min-width:22px;justify-content:center}.doc-hf-sep{width:1px;height:16px;background:#d5d9df;margin:0 3px}.doc-field-chip{display:inline-block;padding:0 6px;margin:0 1px;background:var(--ink-soft, #e2ecfb);color:var(--ink, #2b6cb0);border-radius:4px;font-size:.82em;line-height:1.5;user-select:none;white-space:nowrap;vertical-align:baseline}.doc-page.pm-paginated{background:transparent;box-shadow:none;padding:0!important}.doc-page.pm-paginated .doc-page-content{background:var(--paper);box-shadow:var(--shadow-page);padding:var(--pg-mt) var(--pg-mr) calc(var(--pg-mb) + var(--pg-fill, 0px)) var(--pg-ml);min-height:var(--pg-page-h);position:relative;box-sizing:border-box}.pm-page-gap{display:block;height:calc(var(--pg-mb) + var(--pg-gap) + var(--pg-mt));margin-left:calc(-1 * var(--pg-ml));margin-right:calc(-1 * var(--pg-mr));position:relative;background:var(--desk);user-select:none;overflow:hidden}.pm-page-gap:before{content:"";position:absolute;left:0;right:0;top:0;bottom:calc(var(--pg-gap) + var(--pg-mt));background:var(--paper)}.pm-page-gap:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--pg-mt);background:var(--paper)}.table-picker-wrap{position:relative;display:inline-block}.table-picker-pop{position:absolute;top:100%;left:0;z-index:30;margin-top:4px;background:#fff;border:1px solid var(--chrome-line);border-radius:8px;box-shadow:0 6px 24px #00000024;padding:10px}.table-picker-label{font-size:12px;color:var(--text-dim);margin-bottom:8px;text-align:center}.table-picker-grid{display:grid;grid-template-columns:repeat(10,18px);grid-auto-rows:18px;gap:2px}.table-picker-cell{border:1px solid var(--chrome-line);border-radius:2px;background:#fff;cursor:pointer}.table-picker-cell.on{background:var(--ink-soft);border-color:var(--ink)}.symbol-picker-wrap{position:relative;display:inline-block}.symbol-picker-pop{position:absolute;top:100%;left:0;z-index:30;margin-top:4px;background:#fff;border:1px solid var(--chrome-line);border-radius:8px;box-shadow:0 6px 24px #00000024;padding:8px;width:288px}.symbol-picker-tabs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px;border-bottom:1px solid var(--chrome-line);padding-bottom:6px}.symbol-picker-tab{border:none;background:transparent;border-radius:5px;padding:3px 8px;font-size:11.5px;cursor:pointer;color:var(--text-dim)}.symbol-picker-tab:hover{background:var(--ink-soft)}.symbol-picker-tab.on{background:var(--ink-soft);color:var(--ink);font-weight:600}.symbol-picker-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:200px;overflow-y:auto}.symbol-picker-cell{border:1px solid transparent;border-radius:4px;background:#fff;height:30px;font-size:16px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text)}.symbol-picker-cell:hover{background:var(--ink-soft);border-color:var(--ink)}.pagenum-pop{position:absolute;top:100%;left:0;z-index:30;margin-top:4px;background:#fff;border:1px solid var(--chrome-line);border-radius:8px;box-shadow:0 6px 24px #00000024;padding:10px;width:230px}.pagenum-row{display:flex;align-items:center;gap:4px;margin-bottom:8px}.pagenum-rowlabel{font-size:11px;color:var(--text-dim);width:62px;flex:none}.pagenum-opt{border:1px solid var(--chrome-line);background:#fff;border-radius:5px;padding:3px 8px;font-size:11.5px;cursor:pointer;color:var(--text)}.pagenum-opt:hover{background:var(--ink-soft)}.pagenum-opt.on{background:var(--ink-soft);border-color:var(--ink);color:var(--ink);font-weight:600}.pagenum-off{width:100%;border:1px solid var(--chrome-line);background:#fff;border-radius:5px;padding:5px;font-size:11.5px;cursor:pointer;color:var(--text-dim)}.pagenum-off:hover:not(:disabled){background:#fdeaea;border-color:#e0a0a0;color:#b04040}.pagenum-off:disabled{opacity:.5;cursor:default}.doc-page-content .is-editor-empty:first-child:before{content:attr(data-placeholder);color:#9aa0a8;float:left;height:0;pointer-events:none}.find-panel{position:absolute;top:12px;right:24px;z-index:20;background:#fff;border:1px solid var(--chrome-line);border-radius:var(--radius);box-shadow:0 6px 24px #00000024}.find-panel.hidden{display:none}.find-panel-inner{padding:8px;display:flex;flex-direction:column;gap:6px}.find-row,.replace-row{display:flex;align-items:center;gap:6px}.find-input,.replace-input{width:200px;height:30px;border:1px solid var(--chrome-line);border-radius:5px;padding:0 8px;font:inherit;font-size:13px}.find-input:focus,.replace-input:focus{outline:none;border-color:var(--ink)}.find-counter{font-size:12px;color:var(--text-dim);min-width:40px;text-align:center}.find-nav,.find-close{border:1px solid var(--chrome-line);background:#fff;cursor:pointer;width:28px;height:28px;border-radius:5px;display:grid;place-items:center;font-size:11px;color:var(--text)}.find-nav:hover,.find-close:hover{background:var(--ink-soft)}.find-btn{border:1px solid var(--chrome-line);background:#fff;cursor:pointer;height:30px;padding:0 12px;border-radius:5px;font:inherit;font-size:13px;color:var(--text)}.find-btn:hover{background:var(--ink-soft)}.status-bar{height:26px;flex-shrink:0;background:var(--ink);color:#dfe4ef;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:12px}.status-left,.status-right{display:flex;align-items:center;gap:16px}.status-save{min-width:90px;text-align:right;opacity:.9}.status-save.status-error{color:#ffb3b3}.status-zoom{display:flex;align-items:center;gap:6px}.zoom-btn{border:none;background:#ffffff24;color:#fff;width:22px;height:20px;border-radius:4px;cursor:pointer;font-size:14px;line-height:1}.zoom-btn:hover{background:#ffffff42}.zoom-val{min-width:44px;text-align:center}.auth-gate{position:fixed;inset:0;display:grid;place-items:center;background:var(--desk);z-index:100}.auth-card{background:#fff;border-radius:10px;padding:36px 40px;max-width:380px;text-align:center;box-shadow:var(--shadow-page)}.auth-card h1{font-size:20px;margin:0 0 6px;color:var(--ink)}.auth-card p{color:var(--text-dim);font-size:14px;line-height:1.55;margin:0 0 20px}.auth-card a.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:10px 22px;border-radius:6px;font-size:14px}.auth-card a.btn:hover{background:var(--ink-hover)}.hidden{display:none!important}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
