html,body,#app{height:100%;margin:0}body{color:#1c1c1c;background:#dfe1e6;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#app{box-sizing:border-box;justify-content:center;gap:16px;min-width:0;padding:28px 40px;display:flex}button,textarea{font:inherit}.viewer-column{background:#e6e7ea;border-radius:12px;flex-direction:column;flex:0 1120px;width:min(1120px,100%);min-width:0;display:flex;position:relative;overflow:hidden}.zoom-bar{background:#fff;border-bottom:1px solid #dedede;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.zoom-bar span{text-align:center;font-variant-numeric:tabular-nums;min-width:48px}.zoom-bar button,.composer-actions button,.remove{cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:4px 10px}.zoom-bar button:hover,.composer-actions button:hover,.remove:hover{background:#f4f4f4}.file-name{text-overflow:ellipsis;white-space:nowrap;color:#444;flex:1;min-width:0;font-size:13px;overflow:hidden}.file-error{color:#b42318;flex:none;font-size:13px}.file-actions{flex:none;gap:8px;margin-left:auto;display:flex}.file-input{display:none}.zoom-bar button:disabled{opacity:.45;cursor:default}.zoom-bar button:disabled:hover{background:#fff}.scroller{flex:1;padding:24px 40px 36px;overflow:auto}.status{color:#555;margin:24px}.pages{--scale-factor:1}.pdf-page{--user-unit:1;--total-scale-factor:calc(var(--scale-factor) * var(--user-unit));--scale-round-x:1px;--scale-round-y:1px;background:#fff;margin:12px auto;position:relative;box-shadow:0 1px 4px #00000029}.canvas-wrap,.highlights,.textLayer{position:absolute;inset:0}.canvas-wrap{z-index:0;overflow:hidden}.canvas-wrap canvas{width:100%;height:100%;display:block}.highlights{z-index:1;pointer-events:none;width:100%;height:100%}.highlights rect{fill:none}.highlights line{stroke:#e6a100;stroke-width:2px}.highlights .comment.active rect{fill:#ffd60073}.highlights .comment.active line{stroke:#d86b00;stroke-width:2px}.textLayer{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;z-index:2;letter-spacing:normal;word-spacing:normal;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;transform-origin:0 0;caret-color:canvastext;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;overflow:clip}.textLayer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;-webkit-user-select:text;user-select:text;position:absolute}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.textLayer .markedContent{display:contents}.textLayer ::selection{background:#005aff59}.textLayer .endOfContent{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}.textLayer.selecting .endOfContent{top:0}.composer{z-index:5;background:#fff;border-radius:10px;width:280px;padding:12px;position:fixed;box-shadow:0 8px 28px #0000002e}.composer-quote{color:#666;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 8px;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.composer textarea{box-sizing:border-box;resize:vertical;border:1px solid #d7d7d7;border-radius:6px;width:100%;padding:8px}.composer-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.composer-actions button[type=submit]{color:#fff;background:#1f6feb;border-color:#1f6feb}.composer-actions button[type=submit]:disabled{opacity:.45;cursor:default}.comment-panel{background:#f8f9fb;border-radius:12px;flex-direction:column;flex:none;width:340px;display:flex;overflow:hidden;box-shadow:0 2px 10px #0000000f}.comment-panel header{background:#fff;border-bottom:1px solid #eceef2;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.comment-panel h1{color:#1f2329;margin:0;font-size:15px;font-weight:600}.comment-panel header span{color:#4e5969;font-variant-numeric:tabular-nums;background:#eef2f8;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 6px;font-size:12px;font-weight:500;display:inline-flex}.ai-importer{background:#fff;border-bottom:1px solid #eceef2;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.ai-importer textarea,.ai-importer input{box-sizing:border-box;width:100%;font:inherit;background:#fafbfc;border:1px solid #dcdfe6;border-radius:8px;padding:7px 10px;font-size:13px;transition:border-color .15s,background-color .15s}.ai-importer textarea:focus,.ai-importer input:focus{background:#fff;border-color:#1f6feb;outline:none}.ai-importer textarea{resize:vertical}.ai-importer-row{gap:8px;display:flex}.ai-importer-row input{flex:1;min-width:0}.ai-importer-row button{color:#fff;cursor:pointer;background:#1f6feb;border:1px solid #1f6feb;border-radius:8px;flex:none;padding:6px 12px;font-size:13px;font-weight:500;transition:background-color .15s}.ai-importer-row button:hover:not(:disabled){background:#165bca}.ai-importer-row button:disabled{opacity:.45;cursor:default}.panel-body{flex:1;min-height:0;overflow:auto}.comment-panel .empty{text-align:center;color:#86909c;background:#fff;border:1px dashed #dcdfe6;border-radius:10px;margin:24px 16px;padding:20px 16px;font-size:13px;line-height:1.6}.comment-list{flex-direction:column;gap:10px;margin:0;padding:12px;list-style:none;display:flex}.comment-card{background:#fff;border:1px solid #e5e8ef;border-radius:10px;flex-direction:column;gap:10px;padding:12px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex;box-shadow:0 1px 2px #0f172a0a}.comment-card:hover{border-color:#cfd6e4;box-shadow:0 3px 8px #0f172a12}.comment-card.active{background:#fffdf5;border-color:#f0b429;box-shadow:0 0 0 2px #f0b42933}.comment-top{align-items:center;gap:8px;display:flex}.meta-badge{color:#4e5969;background:#f2f4f8;border-radius:6px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.comment-card.active .meta-badge:not(.warn){color:#8d5800;background:#fff3c4}.meta-badge.warn{color:#cf1322;background:#fff1f0}.occurrence-nav{color:#4e5969;font-variant-numeric:tabular-nums;background:#f2f4f8;border-radius:6px;align-items:center;gap:2px;padding:1px;font-size:12px;display:inline-flex}.occurrence-nav span{padding:0 5px}.occurrence-nav button{color:#4e5969;cursor:pointer;background:0 0;border:0;border-radius:4px;width:20px;height:20px;padding:0;line-height:1}.occurrence-nav button:hover{color:#1f2329;background:#fff;box-shadow:0 1px 2px #00000014}.comment-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:stretch;gap:8px;width:100%;min-width:0;padding:0;display:flex}.field-row{align-items:flex-start;gap:8px;min-width:0;display:flex}.field-tag{letter-spacing:.02em;border-radius:4px;flex:none;align-items:center;height:20px;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.quote-tag{color:#646a73;background:#f2f4f8}.body-tag{color:#1f6feb;background:#e8f1ff}.comment-card.active .body-tag{color:#ad5700;background:#fff0b3}.quote-row{background:#f7f8fa;border-left:2px solid #d0d5dd;border-radius:6px;padding:6px 8px}.comment-card.active .quote-row{background:#fcf6e3;border-left-color:#e6a100}.comment-main .quote{color:#4e5969;-webkit-line-clamp:3;word-break:break-word;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:12.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.body-row{padding:2px 2px 0}.comment-main .body{color:#1f2329;word-break:break-word;flex:1;min-width:0;font-size:13.5px;line-height:1.55}.remove{color:#86909c;background:0 0;border-color:#0000;flex:none;margin-left:auto;padding:2px 8px;font-size:12px}.remove:hover{color:#cf1322;background:#fff1f0;border-color:#ffccc7}
