.tool-main{flex:1;display:flex;flex-direction:column;width:100%;max-width:100%;padding:0;overflow:hidden}.tool-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:1.5rem 2rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-shrink:0}.tool-header__title{display:flex;flex-direction:column;gap:.25rem}.tool-title{font-size:1.3rem;font-weight:700;color:var(--color-text-title)}.tool-subtitle{font-size:.85rem;color:var(--color-text-muted)}.ocr-body{flex:1;display:flex;flex-direction:column;overflow:auto;min-height:0}.ocr-drop-zone{flex:1;display:flex;align-items:center;justify-content:center;min-height:280px;background-color:var(--color-surface-deep);cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease;position:relative;outline:none}.ocr-drop-zone:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent)}.ocr-drop-zone.is-dragover{background-color:var(--color-accent-bg);box-shadow:inset 0 0 0 2px var(--color-accent)}.ocr-drop-zone.is-error{box-shadow:inset 0 0 0 2px var(--color-danger)}.ocr-drop-zone__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2.5rem 2rem;pointer-events:none;text-align:center}.ocr-drop-zone__icon{font-size:2.6rem;line-height:1;opacity:.35}.ocr-drop-zone__title{font-size:1rem;font-weight:600;color:var(--color-text-faint);letter-spacing:.02em}.ocr-drop-zone__hint{font-size:.8rem;color:var(--color-text-ghost)}.ocr-drop-zone__file-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.ocr-result{flex:1;display:grid;grid-template-columns:1fr 420px;min-height:0}.ocr-result__preview-wrap{display:flex;align-items:flex-start;justify-content:center;background-color:var(--color-checker-a);background-image:linear-gradient(45deg,var(--color-checker-b) 25%,transparent 25%),linear-gradient(-45deg,var(--color-checker-b) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-checker-b) 75%),linear-gradient(-45deg,transparent 75%,var(--color-checker-b) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;overflow:auto;padding:2rem;border-right:1px solid var(--color-border)}.ocr-result__img{display:block;max-width:100%;height:auto;object-fit:contain;box-shadow:var(--shadow-canvas)}.ocr-result__right{display:flex;flex-direction:column;background-color:var(--color-surface);overflow-y:auto;min-height:0}.ocr-file-bar{display:flex;align-items:center;gap:.6rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-shrink:0;flex-wrap:wrap}.ocr-file-bar__name{font-size:.85rem;font-weight:600;color:var(--color-text-primary);word-break:break-all;flex:1;min-width:0}.ocr-file-bar__size{font-size:.78rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ocr-file-bar__type{font-size:.72rem;font-weight:500;color:var(--color-accent);background-color:var(--color-accent-bg);border:1px solid var(--color-accent-border);border-radius:4px;padding:.15rem .5rem;white-space:nowrap}.ocr-actions{display:flex;align-items:center;gap:.6rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.ocr-btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:7px;font-size:.87rem;font-weight:600;padding:.55rem 1.1rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease;white-space:nowrap}.ocr-btn:disabled{opacity:.45;cursor:not-allowed}.ocr-btn--primary{background-color:var(--color-accent-bg);border:1px solid var(--color-accent-border);color:var(--color-accent)}.ocr-btn--primary:not(:disabled):hover{background-color:var(--color-accent-hover-bg);border-color:var(--color-accent);color:var(--color-accent-hover-text)}.ocr-btn--secondary{background:none;border:1px solid var(--color-border);color:var(--color-text-secondary)}.ocr-btn--secondary:not(:disabled):hover{border-color:var(--color-accent-border);color:var(--color-accent)}.ocr-btn--sm{font-size:.8rem;padding:.4rem .85rem}.ocr-btn__spinner{display:inline-block;width:.85em;height:.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ocr-spin .7s linear infinite;flex-shrink:0}.ocr-btn__spinner[hidden]{display:none}@keyframes ocr-spin{to{transform:rotate(360deg)}}.ocr-progress-wrap{padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}.ocr-progress-bar{height:4px;background-color:var(--color-accent);border-radius:2px;width:0%;transition:width .2s ease}.ocr-progress-label{font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.ocr-error-bar{margin:.75rem 1.25rem;padding:.65rem .9rem;background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:6px;color:var(--color-danger);font-size:.82rem;line-height:1.5}.ocr-output{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.ocr-output__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.ocr-legend{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.ocr-legend__dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.ocr-legend__dot--high{background-color:var(--color-success)}.ocr-legend__dot--medium{background-color:var(--color-warning)}.ocr-legend__dot--low{background-color:var(--color-danger)}.ocr-legend__text{font-size:.75rem;color:var(--color-text-muted);margin-right:.35rem}.ocr-view-toggle{display:flex;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;flex-shrink:0}.ocr-view-btn{background:none;border:none;border-right:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.78rem;font-weight:500;padding:.3rem .8rem;cursor:pointer;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.ocr-view-btn:last-child{border-right:none}.ocr-view-btn:hover{background-color:var(--color-surface-raised);color:var(--color-text-primary)}.ocr-view-btn.is-active{background-color:var(--color-accent-bg);color:var(--color-accent)}.ocr-stats{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0;font-size:.8rem}.ocr-stats__item{display:inline-flex;align-items:baseline;gap:.3rem}.ocr-stats__val{font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.ocr-stats__key{color:var(--color-text-muted)}.ocr-stats__item--high .ocr-stats__val{color:var(--color-success)}.ocr-stats__item--medium .ocr-stats__val{color:var(--color-warning)}.ocr-stats__item--low .ocr-stats__val{color:var(--color-danger)}.ocr-stats__sep{color:var(--color-text-ghost);-webkit-user-select:none;user-select:none}.ocr-stats__note{color:var(--color-text-muted);font-style:italic}.ocr-text{flex:1;overflow-y:auto;padding:1.1rem 1.25rem;font-size:.9rem;line-height:1.75;color:var(--color-text-primary);min-height:0}.ocr-text--highlight{word-wrap:break-word;overflow-wrap:break-word}.ocr-text--plain{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.82rem;white-space:pre-wrap;word-break:break-word;background-color:var(--color-surface-deep);border-radius:0;margin:0}.ocr-empty{color:var(--color-text-muted);font-style:italic}.ocr-word{display:inline;border-radius:3px;padding:.05em .15em;cursor:default;transition:filter .1s ease}.ocr-word:hover{filter:brightness(1.25)}.ocr-word--high{color:var(--color-success);background-color:var(--color-success-bg)}.ocr-word--medium{color:var(--color-warning);background-color:var(--color-warning-bg)}.ocr-word--low{color:var(--color-danger);background-color:var(--color-danger-bg)}.ocr-output__actions{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}@media(max-width:900px){.ocr-result{grid-template-columns:1fr;grid-template-rows:auto 1fr}.ocr-result__preview-wrap{border-right:none;border-bottom:1px solid var(--color-border);max-height:320px;min-height:160px}.ocr-result__right{overflow-y:unset}.ocr-output{overflow:visible}.ocr-text{overflow-y:visible;max-height:none}}@media(max-width:600px){.tool-header{padding:1rem}.ocr-drop-zone{min-height:200px}.ocr-output__toolbar{flex-direction:column;align-items:flex-start}}
