.fmt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.fmt-group{display:flex;align-items:center;gap:.125rem}.fmt-group+.fmt-group{margin-left:.25rem;padding-left:.375rem;border-left:1px solid #ddd}.fmt-btn{padding:.2rem .45rem;border:1px solid transparent;border-radius:3px;background:transparent;cursor:pointer;font-size:.875rem;line-height:1.4;white-space:nowrap;color:#333}.fmt-btn:hover:not(:disabled){background:#e9ecef;border-color:#ccc}.fmt-btn:disabled{opacity:.4;cursor:default}.fmt-btn--active{background:#d0ebff;border-color:#1971c2;color:#0b4f8a}.fmt-btn--active:hover:not(:disabled){background:#a5d8ff}.fmt-btn--mixed{background:#e8f4fd;border-color:#a5d8ff;color:#0b4f8a}.fmt-btn:focus-visible{outline:2px solid #1971c2;outline-offset:1px}.fmt-align-ico{display:inline-block;vertical-align:middle}.fmt-bold{font-weight:700}.fmt-italic{font-style:italic}.fmt-underline{text-decoration:underline}.fmt-strike{text-decoration:line-through}.fmt-select{padding:.2rem .3rem;border:1px solid #ccc;border-radius:3px;background:#fff;font-size:.8125rem;cursor:pointer}.fmt-select:disabled{opacity:.4;cursor:default}.fmt-select:focus-visible{outline:2px solid #1971c2;outline-offset:1px}.fmt-input{padding:.2rem .3rem;border:1px solid #ccc;border-radius:3px;background:#fff;font-size:.8125rem;width:46px;text-align:right}.fmt-input:disabled{opacity:.4}.fmt-input:focus-visible{outline:2px solid #1971c2;outline-offset:1px}.fmt-font-family{max-width:128px}.fmt-style{max-width:100px}.fmt-group--color{position:relative}.fmt-color-wrap{position:relative;display:inline-flex}.fmt-color-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:.2rem .4rem}.fmt-color-label{font-size:.8125rem;line-height:1}.fmt-color-bar{width:18px;height:3px;border-radius:1px}.fmt-color-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.fmt-color-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:50;background:#fff;border:1px solid #ccc;border-radius:5px;box-shadow:0 2px 8px #0000002e;padding:.35rem;display:flex;flex-wrap:wrap;gap:.25rem;width:130px}.fmt-swatch{width:22px;height:22px;border:1px solid rgba(0,0,0,.55);border-radius:3px;cursor:pointer;padding:0}.fmt-swatch:hover{border-color:#555}.fmt-swatch--none{background:#fff;color:#888;font-size:.75rem}.fmt-swatch--more{background:#f0f0f0;font-size:.875rem}.fmt-swatch:focus-visible{outline:2px solid #1971c2;outline-offset:1px}@media (forced-colors: active){.fmt-btn,.fmt-select,.fmt-input{border:1px solid ButtonText}.fmt-btn:disabled{border-color:GrayText;color:GrayText}.fmt-btn[aria-pressed=true],.fmt-btn--active{border:2px solid Highlight}.fmt-btn--mixed{border:2px dashed Highlight}.fmt-color-bar,.fmt-swatch{forced-color-adjust:none}.fmt-swatch{border:1px solid ButtonText}}.fmt-group--table{display:flex;align-items:center;gap:.15rem}.tbl-grid-wrap{position:relative;display:inline-block}.tbl-grid-popover{position:absolute;top:100%;left:0;z-index:10;margin-top:2px;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.35rem;box-shadow:0 2px 10px #0003}.tbl-grid{display:grid;grid-template-columns:repeat(10,16px);gap:2px}.tbl-grid-cell{width:16px;height:16px;border:1px solid #767676;background:#fafafa;cursor:pointer}.tbl-grid-cell--on{background:#d0e2ff;border-color:#1971c2}.tbl-grid-label{margin-top:.35rem;text-align:center;color:#555;font-size:12px}@media (forced-colors: active){.tbl-grid-cell{border-color:ButtonText}.tbl-grid-cell--on{background:Highlight;border-color:Highlight;forced-color-adjust:none}}.fmt-group--image{display:flex;align-items:center;gap:.15rem}.find-bar{position:absolute;top:.5rem;right:.5rem;z-index:5;display:flex;flex-direction:column;gap:.35rem;padding:.5rem;background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 10px #0003;font-size:13px}.find-bar .find-row{display:flex;align-items:center;gap:.35rem}.find-bar input[type=text]{width:160px;padding:.2rem .35rem;border:1px solid #bbb;border-radius:3px}.find-bar .find-count{min-width:64px;color:#555;font-variant-numeric:tabular-nums}.find-bar button{padding:.2rem .45rem;border:1px solid #bbb;background:#f7f7f7;border-radius:3px;cursor:pointer}.find-bar button:disabled{opacity:.5;cursor:default}.find-bar button[aria-pressed=true]{background:#d0e2ff;border-color:#1971c2}.find-bar button:focus-visible,.find-bar input:focus-visible{outline:2px solid #1971c2;outline-offset:1px}@media (forced-colors: active){.find-bar button[aria-pressed=true]{border:2px solid Highlight}}.ctx-menu-pos{position:fixed;z-index:1000}.ctx-menu{min-width:180px;background:#fff;border:1px solid #c8c8c8;border-radius:4px;box-shadow:0 4px 14px #0000002e;padding:4px 0;display:flex;flex-direction:column}.ctx-menu-item{display:block;width:100%;text-align:left;padding:6px 14px;border:0;background:none;font:inherit;cursor:pointer}.ctx-menu-item:hover,.ctx-menu-item:focus-visible{background:#e8f0fe;outline:2px solid transparent}.ctx-menu-item:focus-visible{outline:2px solid #0b4f8a;outline-offset:-2px}.ctx-menu-item[aria-disabled=true]{color:#9a9a9a;cursor:default}.ctx-menu-item[aria-disabled=true]:hover{background:none}@media (forced-colors: active){.ctx-menu{border-color:CanvasText}.ctx-menu-item:focus-visible{outline-color:Highlight}}.docprops-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#00000059;display:flex;align-items:center;justify-content:center}.docprops-card{background:#fff;border-radius:6px;padding:20px 24px;min-width:320px;max-width:90vw;box-shadow:0 8px 30px #00000040;display:flex;flex-direction:column;gap:10px}.docprops-card h2{margin:0 0 4px;font-size:1.1rem}.docprops-card label{display:flex;flex-direction:column;gap:2px;font-size:.85rem}.docprops-card input{font:inherit;padding:4px 6px}.docprops-card input:focus-visible{outline:2px solid #0b4f8a}.docprops-stats{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 0 0;font-size:.85rem}.docprops-stats dt{font-weight:600}.docprops-stats dd{margin:0}.docprops-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.docprops-actions button{font:inherit;padding:6px 14px;cursor:pointer}.docprops-actions button:focus-visible{outline:2px solid #0b4f8a;outline-offset:1px}@media (forced-colors: active){.docprops-card{border:1px solid CanvasText}}@font-face{font-family:Liberation Sans;src:url(/fonts/liberation-sans/LiberationSans-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Liberation Sans;src:url(/fonts/liberation-sans/LiberationSans-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Liberation Sans;src:url(/fonts/liberation-sans/LiberationSans-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Liberation Sans;src:url(/fonts/liberation-sans/LiberationSans-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:"Liberation Serif";src:url(/fonts/liberation-serif/LiberationSerif-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Liberation Serif";src:url(/fonts/liberation-serif/LiberationSerif-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Liberation Serif";src:url(/fonts/liberation-serif/LiberationSerif-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Liberation Serif";src:url(/fonts/liberation-serif/LiberationSerif-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Liberation Mono;src:url(/fonts/liberation-mono/LiberationMono-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Liberation Mono;src:url(/fonts/liberation-mono/LiberationMono-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Liberation Mono;src:url(/fonts/liberation-mono/LiberationMono-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Liberation Mono;src:url(/fonts/liberation-mono/LiberationMono-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Carlito;src:url(/fonts/Carlito/Carlito-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Carlito;src:url(/fonts/Carlito/Carlito-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Carlito;src:url(/fonts/Carlito/Carlito-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Carlito;src:url(/fonts/Carlito/Carlito-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Caladea;src:url(/fonts/Caladea/Caladea-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Caladea;src:url(/fonts/Caladea/Caladea-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Caladea;src:url(/fonts/Caladea/Caladea-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Caladea;src:url(/fonts/Caladea/Caladea-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Gelasio;src:url(/fonts/Gelasio/static/Gelasio-Regular.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gelasio;src:url(/fonts/Gelasio/static/Gelasio-Bold.ttf);font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Gelasio;src:url(/fonts/Gelasio/static/Gelasio-Italic.ttf);font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Gelasio;src:url(/fonts/Gelasio/static/Gelasio-BoldItalic.ttf);font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Selawik;src:url(/fonts/Selawk/selawk.ttf);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Selawik;src:url(/fonts/Selawk/selawkb.ttf);font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}body{margin:0;font:14px system-ui,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid #ddd;background:#fafafa}.toolbar .btn{padding:.3rem .7rem;border:1px solid #ccc;border-radius:5px;background:#fff;cursor:pointer}.toolbar .spacer{flex:1}.toolbar .latency{font-variant-numeric:tabular-nums;color:#555}.main{flex:1;min-height:0;position:relative}.editor.doconut-editor{display:flex;height:100%;-webkit-user-select:none;user-select:none}.doconut-editor .sidebar{width:120px;overflow-y:auto;padding:.5rem;background:#f3f3f3;border-right:1px solid #ddd;display:flex;flex-direction:column;gap:.5rem}.doconut-editor .thumb{width:100%;border:1px solid #ccc;cursor:pointer;background:#fff}.doconut-editor .canvas{flex:1;overflow:auto;padding:1.5rem;background:#e9ecef;display:flex;flex-direction:column;align-items:center;gap:1rem}.doconut-editor .page{position:relative;background:#fff;box-shadow:0 1px 6px #0003}.doconut-editor .page img{display:block;width:100%;height:100%;-webkit-user-drag:none;pointer-events:none}.doconut-editor .overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.doconut-editor .selection-rect{position:absolute;background:#005ac840;pointer-events:none}.doconut-editor .match-rect{position:absolute;background:#ffd50059;pointer-events:none}.doconut-editor .match-rect-current{position:absolute;background:#ff91008c;outline:1px solid #e8590c;pointer-events:none}.doconut-editor .caret{position:absolute;width:2px;background:#1971c2;z-index:1;animation:dc-blink 1s step-end infinite}.doconut-editor .pending-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#f59f00;box-shadow:0 0 0 3px #f59f0040}.doconut-editor .hidden-input{position:absolute;opacity:0;width:1px;height:1px;border:0;padding:0}@keyframes dc-blink{50%{opacity:0}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#e9ecefcc;z-index:10}.loading-spinner{width:40px;height:40px;border:3px solid #ccc;border-top-color:#1971c2;border-radius:50%;animation:dc-spin .75s linear infinite}@keyframes dc-spin{to{transform:rotate(360deg)}}.error-boundary-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:#555;padding:2rem;text-align:center}.error-boundary-fallback button{padding:.5rem 1.5rem;background:#1971c2;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1rem}.session-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.session-modal-card{background:#fff;border-radius:8px;padding:2rem;max-width:400px;width:90%;text-align:center;box-shadow:0 4px 24px #0000004d}.session-modal-card h2{margin:0 0 .75rem;font-size:1.25rem}.session-modal-card p{margin:0 0 1.5rem;color:#555}.session-modal-card button{padding:.5rem 1.5rem;background:#1971c2;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1rem}.session-modal-card button:hover{background:#1864ab}.toolbar .save-error{color:#b00020;font-size:.875rem}.error-toast{position:absolute;top:.75rem;left:50%;transform:translate(-50%);background:#b00020;color:#fff;padding:.5rem 1rem;border-radius:5px;display:flex;align-items:center;gap:.75rem;z-index:20;max-width:calc(100% - 2rem);box-shadow:0 2px 8px #00000040}.error-toast-dismiss{background:none;border:none;color:#fff;cursor:pointer;font-size:1.2rem;line-height:1;padding:0}.doconut-editor .img-sel-box{position:absolute;border:1px solid #4c8dff;pointer-events:none;box-sizing:border-box}.doconut-editor .img-handle{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;background:#fff;border:1px solid #4c8dff;box-sizing:border-box;pointer-events:auto}.doconut-editor .img-handle--n,.doconut-editor .img-handle--s{cursor:ns-resize}.doconut-editor .img-handle--e,.doconut-editor .img-handle--w{cursor:ew-resize}.doconut-editor .img-handle--ne,.doconut-editor .img-handle--sw{cursor:nesw-resize}.doconut-editor .img-handle--nw,.doconut-editor .img-handle--se{cursor:nwse-resize}.toolbar .btn:focus-visible{outline:2px solid #1971c2;outline-offset:2px}.session-modal-card button:focus-visible{outline:2px solid #1971c2;outline-offset:2px}.error-toast-dismiss:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (forced-colors: active){.doconut-editor .caret{background:Highlight;forced-color-adjust:none}.doconut-editor .selection-rect{background:Highlight;opacity:.35;forced-color-adjust:none}.doconut-editor .match-rect{background:Highlight;opacity:.25;forced-color-adjust:none}.doconut-editor .match-rect-current{background:Highlight;opacity:.55;outline:2px solid HighlightText;forced-color-adjust:none}.doconut-editor .img-sel-box{border-color:Highlight}.doconut-editor .img-handle{background:Canvas;border-color:Highlight}.doconut-editor .pending-dot{background:Highlight;box-shadow:none;forced-color-adjust:none}}.doconut-editor .thumb-btn{padding:0;border:2px solid transparent;background:none;cursor:pointer;display:block}.doconut-editor .thumb-btn:focus-visible{outline:2px solid #0b4f8a;outline-offset:2px}.doconut-editor .thumb-btn[aria-current=page]{border-color:#0b4f8a}@media (forced-colors: active){.doconut-editor .thumb-btn:focus-visible{outline-color:Highlight}.doconut-editor .thumb-btn[aria-current=page]{border-color:Highlight}}
