/* Optional full-screen reading, using the original pixels. No permanent image overlay. */
.visual-reader-overlay{position:fixed;z-index:6000;top:var(--reader-top,0);left:0;width:100%;height:var(--reader-height,100dvh);box-sizing:border-box;padding:12px;background:rgba(1,5,10,.94);overflow:auto;overscroll-behavior:contain;color:#eef6fc;font:inherit}
.visual-reader-overlay *{box-sizing:border-box}
.visual-reader-overlay [hidden]{display:none!important}
.visual-reader-dialog{width:100%;height:100%;min-height:440px;margin:auto;display:grid;grid-template-rows:auto auto auto minmax(150px,1fr) auto;background:#070e16;border:1px solid #304453;border-radius:18px;overflow:auto}
.visual-reader-overlay button,.visual-reader-overlay select{font:inherit;font-size:13px;font-weight:650;line-height:1.35;min-height:42px;border:1px solid #344f65;border-radius:10px;background:#111f2d;color:#eff9ff;cursor:pointer;padding:8px 13px;white-space:normal}
.visual-reader-overlay button:disabled{opacity:.4;cursor:not-allowed}
.visual-reader-overlay button:hover:not(:disabled){border-color:#81dff4}
.visual-reader-overlay :is(button,select,input,summary,[tabindex]):focus-visible{outline:3px solid #91e5ff;outline-offset:2px}
.reader-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border-bottom:1px solid #253848}
.reader-heading{min-width:0}
.reader-heading>span{font-size:11px;letter-spacing:.075em;line-height:1.45;color:#99e4f7}
.reader-heading h2{font-size:clamp(18px,2.1vw,25px);line-height:1.25;letter-spacing:-.025em;margin:5px 0 0;overflow-wrap:anywhere}
.reader-header>button{flex:none}
.reader-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 18px;border-bottom:1px solid #1b2d3d}
.reader-controls>label{font-size:13px;font-weight:650}
.reader-controls>select{min-width:150px;max-width:100%}
.reader-controls button[aria-pressed=true]{border-color:#8be4f6;background:#11343f;color:#b8f1ff}
.reader-help{margin-left:auto;color:#c2d5e4;font-size:13px;line-height:1.6;min-width:0}
.reader-help summary{cursor:pointer;min-height:40px;display:list-item;padding:9px 5px}
.reader-help[open]{flex:1 1 100%;border:1px solid #385169;padding:8px 12px;border-radius:12px;margin:0}
.reader-help p{max-width:1000px;margin:6px 0 10px}
.reader-pan-buttons{display:flex;flex-wrap:wrap;gap:8px}
.reader-stage{position:relative;min-width:0;min-height:150px;overflow:hidden;margin:8px 12px;border:1px solid #223846;border-radius:12px;background:#000}
.reader-frame{width:100%;height:100%;min-height:150px;overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.reader-frame:active{cursor:grabbing}
.reader-crop{position:absolute;overflow:hidden;pointer-events:none;background:#000}
.reader-image{position:absolute;max-width:none!important;max-height:none!important;object-fit:contain;filter:none!important;opacity:1!important;image-rendering:auto;user-select:none;-webkit-user-select:none;pointer-events:none}
.reader-selecting .reader-frame{cursor:crosshair}
.reader-selection{position:absolute;border:2px solid #aaf0ff;pointer-events:none;background:transparent;box-shadow:0 0 0 1px #00121e}
.reader-corner{position:absolute;width:16px;height:16px;transform:translate(-50%,-50%);border:2px solid #aaf0ff;border-radius:50%;pointer-events:none;box-shadow:0 0 0 2px #06222d}
.reader-image-error{position:absolute;left:10%;right:10%;top:20%;padding:20px;color:#fff;background:#391925;border:1px solid #c49ead;border-radius:14px;line-height:1.6;font-size:16px}
.reader-footer{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:9px 15px;align-items:center;padding:9px 18px 12px;border-top:1px solid #263847}
.reader-position{display:grid;gap:3px;min-width:0;line-height:1.4}
.reader-position>strong{font-size:14px;color:#bcefff}
.reader-position>span{font-size:11px;color:#a4bacb}
.reader-zoom-controls,.reader-section-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.reader-zoom-controls button[data-reader-zoom]{min-width:42px;font-size:20px;padding:4px 10px}
#reader-status{grid-column:1/-1;font-size:12px;line-height:1.5;color:#afc9d8;min-height:18px;overflow-wrap:anywhere}
.reader-return{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.reader-return .reader-primary{background:#123e4c;border-color:#68d5ed;color:#ddfbff;font-size:13px}
.reader-save-status{font-size:11px;line-height:1.45;text-align:right;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.reader-save-status button{min-height:36px;padding:5px 10px;font-size:12px}
.reader-select-tools{border:1px solid #325169;border-radius:12px;padding:10px;margin:6px 16px;font-size:12px;line-height:1.5;background:#0d1b29}
.reader-select-tools p{margin:0 0 8px;color:#c7ddeb}
.reader-region-inputs{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.reader-region-inputs>label{display:grid;gap:4px;font-size:12px;flex:1;min-width:75px;max-width:125px}
.reader-region-inputs input{display:block;width:100%;font:inherit;font-size:16px;color:#f2f7ff;background:#020a12;border:1px solid #45627a;border-radius:8px;padding:8px;min-height:42px}
.viewer .visual-tools [data-open-reader]{border-color:#4593a5;color:#a9edff;white-space:normal}
@media(max-width:800px){
 .visual-reader-overlay{padding:0}
 .visual-reader-dialog{border-radius:0;border-left:0;border-right:0}
 .reader-header{padding:10px 12px;gap:10px}
 .reader-controls{padding:7px 12px}
 .reader-heading>span{font-size:10px}.reader-heading h2{font-size:18px}
 .reader-footer{grid-template-columns:minmax(0,1fr) auto;padding:8px 12px;gap:7px}
 .reader-position{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
 .reader-position>span{font-size:10px}
 .reader-stage{margin:5px 7px}
 .reader-select-tools{margin:5px 10px}
 .reader-return{gap:6px}
 .reader-save-status{text-align:left}
}
@media(max-width:480px){
 .reader-header{align-items:start}.reader-header>button{max-width:85px;font-size:12px;padding:7px}
 .reader-controls>select{flex:1;min-width:140px}
 .reader-controls>button{flex:1;font-size:12px}
 .reader-help{flex-basis:100%;margin:0}
 .reader-help summary{min-height:32px;padding:3px 5px}
 .reader-footer{grid-template-columns:1fr}
 .reader-zoom-controls{justify-content:center}
 .reader-section-controls{justify-content:space-between}
 .reader-section-controls>button{flex:1;font-size:12px}
 .reader-return>.reader-primary{width:100%}
 .reader-save-status{width:100%;justify-content:center}
 #reader-status{font-size:11px}
}
@media(orientation:landscape) and (max-height:700px){
 .visual-reader-overlay{padding:0}
 .visual-reader-dialog{border-radius:0;min-height:340px;grid-template-rows:auto auto auto minmax(110px,1fr) auto}
 .reader-header{padding:5px 10px}.reader-heading h2{font-size:16px;margin-top:1px}.reader-heading>span{font-size:10px}
 .reader-controls{padding:4px 10px}.reader-controls>.reader-help:not([open]){flex-basis:auto;margin-left:auto}
 .reader-stage,.reader-frame{min-height:110px}
 .reader-footer{grid-template-columns:minmax(130px,1fr) auto auto;padding:5px 10px;gap:4px 10px}
 .reader-position{grid-column:auto;display:grid;gap:0}
 .reader-position>span{font-size:10px}.reader-position>strong{font-size:12px}
 .reader-return{flex-wrap:nowrap}#reader-status{font-size:10px;min-height:0}
 .visual-reader-overlay button,.visual-reader-overlay select{min-height:36px;padding:5px 9px;font-size:12px}
 .reader-help summary{min-height:30px;padding:3px 5px}
 .reader-zoom-controls button[data-reader-zoom]{min-width:38px}
}
@media(prefers-reduced-motion:reduce){.visual-reader-overlay *{scroll-behavior:auto!important;transition:none!important}}
/* Explicit areas prevent the hidden selection editor from shifting the stage/footer rows. */
.visual-reader-dialog{grid-template-areas:"head" "controls" "selection" "stage" "foot"}
.reader-header{grid-area:head}.reader-controls{grid-area:controls}.reader-select-tools{grid-area:selection}.reader-stage{grid-area:stage}.reader-footer{grid-area:foot}

.visual-reader-overlay select{white-space:nowrap;text-overflow:ellipsis}
