:root{font-family:Inter,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;color:#202426;background:#eef0f1;font-synthesis:none;text-rendering:optimizeLegibility;--border: #cdd2d5;--muted: #687177;--panel: #ffffff;--ink: #202426;--teal: #087f79;--teal-dark: #05635f;--yellow: #f0b429;--red: #c83e4d;--blue: #3178c6}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}.app-shell{height:100vh;display:flex;flex-direction:column;background:#eef0f1}.app-header{height:58px;flex:0 0 58px;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(280px,1fr);align-items:center;gap:14px;padding:8px 12px;border-bottom:1px solid #bbc1c5;background:#f9faf9;box-shadow:0 1px 6px #19222614;z-index:20}.brand-block{min-width:0;display:flex;align-items:center;gap:9px}.brand-mark{display:grid;place-items:center;width:38px;height:34px;background:#202426;color:#fff;font-size:11px;font-weight:800}.brand-block div{min-width:0;display:grid;gap:1px}.brand-block strong,.brand-block span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-block strong{font-size:13px}.brand-block span{color:var(--muted);font-size:10px}.page-controls{display:flex;align-items:center;gap:4px}.page-controls select{width:240px}.header-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}select,input,textarea{border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--ink);outline:none}select:focus,input:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 2px #087f7921}select,input{min-height:32px;padding:5px 8px}.icon-button,.danger-icon-button{width:32px;height:32px;display:inline-grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:4px;background:#fff;color:#454d51}.icon-button:hover:not(:disabled){border-color:#838c91;color:#171b1d}.danger-icon-button{color:var(--red);border-color:#e9c3c8}.danger-icon-button:hover{background:#fff2f3}.subtle-button,.primary-button{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:4px;padding:0 10px;font-size:12px;font-weight:700}.subtle-button{border:1px solid var(--border);background:#fff;color:#394045}.subtle-button:hover:not(:disabled){border-color:#879095;background:#f7f8f8}.primary-button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff}.primary-button:hover:not(:disabled){background:var(--teal-dark)}.save-indicator{min-width:48px;font-size:10px;font-weight:800;color:#596267;text-align:center}.save-indicator:before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#8d969b}.save-saving:before{background:var(--yellow)}.save-saved:before{background:var(--teal)}.save-error:before{background:var(--red)}.workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,65fr) minmax(350px,35fr)}.viewer-column,.ocr-column{min-width:0;min-height:0}.viewer-column{display:flex;flex-direction:column;border-right:1px solid #b8bec2}.viewer-toolbar{min-height:44px;display:flex;align-items:center;gap:8px;padding:6px 9px;border-bottom:1px solid var(--border);background:#f7f8f8;overflow-x:auto}.segmented-control,.toolbar-group{display:inline-flex;align-items:center;flex:0 0 auto}.segmented-control button{height:32px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid var(--border);background:#fff;color:#51595e;font-size:12px;font-weight:700}.segmented-control button:first-child{border-radius:4px 0 0 4px}.segmented-control button:last-child{margin-left:-1px;border-radius:0 4px 4px 0}.segmented-control button.active{z-index:1;border-color:var(--teal);background:#e6f4f2;color:var(--teal-dark)}.toolbar-group .icon-button{border-radius:0;margin-left:-1px}.toolbar-group .icon-button:first-child{margin-left:0;border-radius:4px 0 0 4px}.toolbar-group .icon-button:last-child{border-radius:0 4px 4px 0}.sequence-buttons,.merge-controls,.reorder-controls{display:flex;align-items:center;gap:5px}.merge-controls,.reorder-controls{padding-left:6px;border-left:1px solid var(--border)}.merge-controls>span,.reorder-controls>span{min-width:26px;font-size:10px;font-weight:900;text-align:center}.merge-controls>span{color:#6b3e89}.reorder-controls>span{color:#1f669f}.compact-check{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;font-weight:700;color:#535c61}.compact-check input{width:15px;height:15px;min-height:0;margin:0;accent-color:var(--teal)}.confidence-filter{min-width:125px;display:grid;gap:1px;margin-left:auto;font-size:9px;font-weight:700;color:var(--muted)}.confidence-filter input{min-height:12px;height:12px;padding:0;accent-color:var(--teal)}.viewer-stage{position:relative;min-height:0;flex:1;overflow:hidden;background:#2d3235}.viewer-shell,.osd-host,.annotation-overlay{position:absolute;inset:0;width:100%;height:100%}.osd-host{background:#292e31}.viewer-loading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#292e31;color:#d7dcde;font-size:11px;font-weight:800}.annotation-overlay{z-index:5;overflow:hidden;pointer-events:none;touch-action:none}.ocr-region{pointer-events:auto;vector-effect:non-scaling-stroke;fill:#3178c614;stroke:#3178c6;stroke-width:1.5;cursor:move}.ocr-region.status-corrected{fill:#087f791f;stroke:#087f79}.ocr-region.status-verified{fill:#f0b4291a;stroke:#c98900}.ocr-region.low-confidence{fill:#c83e4d17;stroke:#c83e4d;stroke-dasharray:5 3}.ocr-region.selected{fill:#c83e4d21;stroke:#e6273f;stroke-width:2.5}.ocr-region.sequence-mode{cursor:pointer}.ocr-region.merge-selected{fill:#7e49a42e;stroke:#7e49a4;stroke-width:2.5;stroke-dasharray:none}.ocr-region.reorder-selected{fill:#3178c62e;stroke:#3178c6;stroke-width:2.5;stroke-dasharray:none}.sequence-order circle{stroke:#fff;stroke-width:1.5}.sequence-order.merge circle{fill:#7e49a4}.sequence-order.reorder circle{fill:#3178c6}.sequence-order text{fill:#fff;font-family:ui-monospace,monospace;font-size:10px;font-weight:900;text-anchor:middle}.cell-region{vector-effect:non-scaling-stroke;fill:none;stroke:#f0b429;stroke-width:1;stroke-dasharray:5 4;pointer-events:none}.existing-region{vector-effect:non-scaling-stroke;fill:#a75dcd14;stroke:#a75dcd;stroke-width:1.5;stroke-dasharray:7 4;pointer-events:none}.new-region{vector-effect:non-scaling-stroke;fill:#087f7926;stroke:#17c3b2;stroke-width:2;stroke-dasharray:6 3;pointer-events:none}.add-capture{fill:transparent;pointer-events:all;cursor:crosshair}.resize-handle{fill:#fff;stroke:#e6273f;stroke-width:1.5;pointer-events:auto}.handle-nw,.handle-se{cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.handle-n,.handle-s{cursor:ns-resize}.handle-e,.handle-w{cursor:ew-resize}.viewer-placeholder{height:100%;display:grid;place-content:center;justify-items:center;gap:9px;color:#c2c8ca;font-size:12px}.status-bar{min-height:28px;display:flex;align-items:center;gap:12px;padding:4px 9px;border-top:1px solid #aeb5b9;background:#f9faf9;font-size:10px;color:#4e575c}.status-bar>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-bar code{margin-left:auto;white-space:nowrap;color:#70797e}.warning-text{color:#9b5f00;font-weight:700}.ocr-column{display:flex;flex-direction:column;background:#fff}.right-header{flex:0 0 auto;padding:8px;border-bottom:1px solid var(--border);background:#f7f8f8}.page-counts{display:flex;gap:14px;margin-bottom:7px;font-size:10px;color:var(--muted)}.page-counts strong{color:var(--ink);font-size:14px}.filter-row{display:grid;grid-template-columns:minmax(100px,1fr) 105px 118px;gap:5px}.filter-row select{min-width:0;font-size:11px}.search-field{min-width:0;position:relative;display:flex;align-items:center}.search-field svg{position:absolute;left:8px;color:#758086}.search-field input{min-width:0;width:100%;padding-left:28px;font-size:11px}.inspector{flex:0 0 auto;padding:7px 9px;border-bottom:1px solid var(--border);background:#fff}.inspector-empty{flex:0 0 48px;display:grid;place-items:center;border-bottom:1px solid var(--border);color:#869096;font-size:11px}.inspector-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.inspector-heading>div{min-width:0;display:grid;gap:2px}.annotation-number{font-size:10px;font-weight:800;color:var(--teal-dark)}.inspector-heading code{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#778086}.field-stack{display:grid;gap:3px}.field-stack>span{font-size:9px;font-weight:800;color:#667076}.field-stack textarea{min-height:44px;max-height:96px;padding:5px 7px;resize:vertical;line-height:1.4}.inspector-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px}.inspector-meta input,.inspector-meta select{width:100%;font-size:11px}.coordinate-details{margin-top:5px;border-top:1px solid #e2e5e7;padding-top:4px}.coordinate-details summary{display:flex;align-items:center;gap:5px;color:#697378;font-size:10px;font-weight:800;cursor:pointer;list-style:none}.coordinate-details summary::-webkit-details-marker{display:none}.coordinate-details[open] summary svg{transform:rotate(180deg)}.coordinate-details summary code{margin-left:auto;color:#818a8f;font-size:9px;font-weight:500}.coordinate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:5px}.coordinate-grid label{display:grid;grid-template-columns:14px 1fr;align-items:center;gap:3px}.coordinate-grid span{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:#6a7479}.coordinate-grid input{min-width:0;width:100%;font-size:11px}.coordinate-apply{float:right;margin-top:5px}.coordinate-details[open]:after{content:"";display:block;clear:both}.inspector-actions{display:flex;justify-content:flex-end;gap:5px;margin-top:5px}.annotation-list{min-height:0;flex:1;overflow-y:auto;background:#f7f8f8}.annotation-row{width:100%;min-height:51px;display:grid;grid-template-columns:8px minmax(0,1fr) 42px 17px;align-items:center;gap:7px;padding:6px 9px;border:0;border-bottom:1px solid #dfe3e5;background:#fff;color:var(--ink);text-align:left}.annotation-row:hover{background:#f3f8f7}.annotation-row.selected{position:relative;z-index:1;background:#e9f5f3;box-shadow:inset 3px 0 0 var(--teal)}.annotation-row.merge-selected{background:#f4ecf8;box-shadow:inset 3px 0 #7e49a4}.annotation-row.reorder-selected{background:#edf5fc;box-shadow:inset 3px 0 #3178c6}.status-dot{width:7px;height:7px;border-radius:50%;background:#9ca4a8}.status-dot.status-corrected{background:var(--teal)}.status-dot.status-verified{background:var(--yellow)}.annotation-row-main{min-width:0;display:grid;gap:3px}.annotation-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650}.annotation-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8388;font-family:ui-monospace,monospace;font-size:9px}.confidence{font-family:ui-monospace,monospace;font-size:10px;color:#637076;text-align:right}.confidence.low{color:var(--red);font-weight:800}.annotation-row>svg{color:#7b858a}.sequence-list-order{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;font-family:ui-monospace,monospace;font-size:10px;font-weight:900}.sequence-list-order.merge{background:#7e49a4}.sequence-list-order.reorder{background:#3178c6}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:#191e21bd}.load-dialog{width:min(680px,100%);border:1px solid #b6bdc1;border-radius:6px;background:#f9faf9;box-shadow:0 24px 70px #00000052}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border)}.dialog-header h1{margin:1px 0 0;font-size:20px;letter-spacing:0}.eyebrow{margin:0;color:var(--teal);font-size:9px;font-weight:900}.source-type-control{margin:14px 20px 0}.source-type-control button{min-width:118px;justify-content:center}.load-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 20px 10px}.file-drop{min-height:105px;display:grid;place-content:center;justify-items:center;gap:5px;border:1px dashed #9ca6ab;border-radius:5px;background:#fff;color:#4a5459;cursor:pointer}.file-drop:hover{border-color:var(--teal);background:#f3faf8}.file-drop span{font-size:11px;font-weight:800}.file-drop strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#737d82}.file-drop input{display:none}.url-fields{display:grid;gap:8px;padding:8px 20px 14px}.url-fields label{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px}.url-fields label>span{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:800;color:#5d676c}.url-fields input{width:100%}.error-banner{margin:0 20px 12px;padding:8px 10px;border-left:3px solid var(--red);background:#fff0f2;color:#862936;font-size:11px;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid var(--border)}@media(max-width:980px){body{overflow:auto}.app-shell{min-height:100vh;height:auto}.app-header{height:auto;grid-template-columns:1fr auto}.page-controls{grid-column:1 / -1;grid-row:2;justify-content:center}.header-actions{flex-wrap:wrap}.workspace{min-height:1000px;grid-template-columns:1fr;grid-template-rows:62vh 620px}.viewer-column{border-right:0;border-bottom:1px solid #b8bec2}}@media(max-width:640px){.app-header{grid-template-columns:1fr}.header-actions{justify-content:flex-start}.page-controls{grid-column:1;grid-row:auto;justify-content:flex-start}.page-controls select{width:min(250px,calc(100vw - 100px))}.workspace{grid-template-rows:58vh 650px}.load-grid,.url-fields label{grid-template-columns:1fr}.filter-row{grid-template-columns:1fr 96px}.filter-row select:last-child{grid-column:1 / -1}}
