#scanner{position:fixed;inset:72px 0 0;z-index:4;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;min-height:0;font:14px/1.45 Arial,sans-serif}#scanner[hidden],#scanner [hidden]{display:none!important}body.scanner-open{overflow:hidden}
#scanner *{box-sizing:border-box}#scanner button,#scanner select,#scanner input{font:inherit}#scanner button{border:1px solid var(--line);background:var(--ink2);color:var(--paper);padding:9px 12px;min-height:38px;border-radius:5px;cursor:pointer}#scanner button:hover:not(:disabled){border-color:var(--acid)}#scanner button:focus-visible,#scanner input:focus-visible,#scanner select:focus-visible{outline:2px solid var(--acid);outline-offset:2px}#scanner button:disabled{opacity:.4;cursor:default}#scanner .scan-primary{background:var(--acid);color:var(--ink);border-color:var(--acid);font-weight:700}#scanner input,#scanner select{width:100%;padding:9px;border:1px solid var(--line);background:var(--ink);color:var(--paper);border-radius:4px}#scanner label{display:grid;gap:5px;font-size:12px}#scanner small{color:var(--muted);font-size:12px;line-height:1.55}#scanner h2{font-size:20px;margin:0 0 8px}#scanner .scan-error{color:var(--danger)}#scanImportErrors{padding:8px 20px;max-height:90px;overflow:auto;white-space:pre-wrap;margin:0;font:12px/1.5 Arial}
.scan-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);flex-shrink:0}.scan-header>div,.scan-header nav{display:flex;gap:8px;align-items:center}.scan-header span{font:11px ui-monospace,monospace;letter-spacing:.1em;color:var(--muted)}.scan-status{min-height:36px;display:flex;align-items:center;justify-content:space-between;padding:6px 18px;border-bottom:1px solid var(--line);font-size:12px;flex-shrink:0}.scan-body{display:grid;grid-template-columns:158px minmax(0,1fr) 230px;flex:1;min-height:0}.scan-pages-panel{display:flex;flex-direction:column;padding:14px 10px;gap:10px;min-height:0;border-right:1px solid var(--line)}.scan-import{display:grid;gap:6px}.scan-pages-panel>strong{font-size:12px}.scan-pages-panel>small{font-size:11px}#scanPages{overflow:auto;min-height:0;overscroll-behavior:contain;flex:1}.scan-thumb{padding:4px;margin:0 0 10px;border:1px solid var(--line);border-radius:6px}.scan-thumb.active{border-color:var(--acid)}#scanner .scan-thumb>button{display:grid;width:100%;padding:4px;border:none;background:transparent;min-width:0}.scan-thumb img{width:100%;height:95px;object-fit:contain;background:#d8d8d0}.scan-thumb span{font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:4px}.scan-thumb>div{display:flex;justify-content:space-between;gap:3px}#scanner .scan-thumb>div button{min-height:30px;padding:3px 9px}.scan-thumb.scan-drop-target{box-shadow:0 0 0 2px var(--signal)}
.scan-main{overflow:auto;min-width:0;min-height:0;padding:18px;background:var(--ink2)}.scan-empty{display:grid;align-content:center;justify-items:start;min-height:100%;max-width:560px;margin:auto;padding:24px}.scan-empty>span{font-size:44px;color:var(--acid)}.scan-empty h1{font-size:clamp(35px,4vw,60px);line-height:1.04;letter-spacing:-.05em;margin:25px 0 12px}.scan-empty p{font-size:17px;max-width:430px}.scan-canvas-tools{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px;font-size:12px;color:var(--muted)}.scan-canvas-tools>div{display:flex;align-items:center;gap:5px;flex-shrink:0}.scan-comparison{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}.scan-comparison section{min-width:0}.scan-comparison h3{font-size:12px;margin:0 0 9px;color:var(--muted)}.scan-image-scroll{overflow:auto;max-height:calc(100dvh - 290px);padding:10px;background:var(--ink);border:1px solid var(--line);overscroll-behavior:contain}#scanSourceFrame{position:relative;width:100%;min-width:0}#scanSource{display:block;width:100%;height:100%;object-fit:fill}#scanCropSvg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;overflow:visible}.scan-outline{stroke:#ff684b;stroke-width:2}.scan-guide{stroke:#86eb4c;stroke-width:2}.scan-grid{stroke:#86eb4c;stroke-width:1;opacity:.7}.scan-handle{fill:white;stroke:#e35439;stroke-width:2;vector-effect:non-scaling-stroke;cursor:grab}.scan-handle:focus{fill:#d0f184;outline:none}#scanResult{display:block;width:100%;height:auto;background:white}#scanControls{padding:18px;display:flex;flex-direction:column;gap:16px;overflow:auto;border-left:1px solid var(--line)}#scanner .scan-check{display:flex;align-items:center;gap:8px;font-size:13px}#scanner input[type=checkbox]{width:18px;height:18px;accent-color:var(--acid)}#scanCurveHint{margin:0;font-size:12px;color:var(--muted)}.scan-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}#scanner details summary{cursor:pointer;font-weight:700;margin-bottom:12px}#scanner details label{margin-bottom:12px;grid-template-columns:1fr auto}#scanner details input{grid-column:1/-1;padding:0;accent-color:var(--signal)}#scanner details output{color:var(--muted)}
#scanCameraPane{max-width:560px;margin:0 auto 20px;padding:12px;border:1px solid var(--line);background:var(--ink)}#scanVideo{width:100%;max-height:55vh;object-fit:contain}#scanCameraPane>div{display:flex;justify-content:center;gap:12px;margin-top:12px}#scanExport{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;min-height:0;flex:1;padding:20px;overflow:auto}.scan-export-controls{display:flex;flex-direction:column;gap:13px;overflow:auto}.scan-name{display:flex;align-items:center;gap:8px}.scan-name span{color:var(--muted)}#scanPdfSummary{font-size:13px;margin:4px 0}.scan-pdf-view{min-height:0;min-width:0;display:flex;flex-direction:column}.scan-pdf-view header{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:12px}.scan-pdf-view>div{overflow:auto;min-height:0;flex:1;padding:18px;background:var(--ink2);text-align:center}#scanPdfCanvas{max-width:100%;max-height:100%;width:auto;height:auto;box-shadow:0 5px 20px #0003;background:white}
@media(max-width:1100px){.scan-body{grid-template-columns:140px minmax(0,1fr) 210px}.scan-comparison{grid-template-columns:1fr}.scan-image-scroll{max-height:60vh}.scan-canvas-tools{flex-wrap:wrap}.scan-main{padding:12px}}
@media(max-width:780px){.tool-rail{grid-template-columns:repeat(3,minmax(0,1fr))}#scanner .scan-pages-panel{display:grid;grid-template-columns:1fr auto;max-height:220px}#scanner .scan-pages-panel>strong,#scanner .scan-pages-panel>small{position:static;max-width:none}#scanner .scan-pages-panel>strong{grid-column:2;grid-row:1;align-self:center}#scanner .scan-pages-panel>small{grid-column:1/-1}#scanner #scanPages{grid-column:1/-1}#scanner .scan-import{gap:5px}#scanner .scan-import button{font-size:12px;padding:7px}}
@media(max-width:780px){#scanner{top:64px}.scan-header{padding:8px;gap:5px;flex-wrap:wrap}.scan-header span{display:none}.scan-header nav{gap:4px}.scan-header nav button{font-size:12px!important;padding:6px!important}.scan-status{padding:6px 10px}.scan-body{display:flex;flex-direction:column;overflow:auto}.scan-pages-panel{flex:none;max-height:195px;border-right:0;border-bottom:1px solid var(--line);padding:8px;gap:4px;position:relative}.scan-import{display:flex}.scan-pages-panel>strong,.scan-pages-panel>small{position:absolute;right:12px;top:10px;font-size:10px;max-width:120px}.scan-pages-panel>small{top:26px}#scanPages{display:flex;gap:8px;min-height:0;flex:none}.scan-thumb{width:88px;flex:none;margin:0}.scan-thumb img{height:52px}#scanner .scan-thumb>div button{padding:1px 5px;min-height:24px}.scan-main{flex:none;overflow:visible}.scan-comparison{grid-template-columns:1fr 1fr;gap:8px}.scan-image-scroll{padding:7px;max-height:55vh}.scan-comparison h3{font-size:10px}#scanControls{overflow:visible;flex:none;display:grid;grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid var(--line);gap:12px;padding:12px}#scanControls h2,#scanControls small,#scanCurveHint{grid-column:1/-1}#scanExport{grid-template-columns:1fr;padding:12px;overflow:auto}.scan-export-controls{overflow:visible}.scan-pdf-view{min-height:400px}.scan-pdf-view>div{overflow:visible}.scan-empty{padding:18px}.scan-empty h1{font-size:38px}.scan-empty p{font-size:15px}}
/* Spacious page tray and a camera stage that replaces the editing canvas. */
@media(min-width:781px){
  .scan-body{grid-template-columns:clamp(260px,22vw,340px) minmax(0,1fr) 230px}
  .scan-pages-panel{padding:16px;gap:12px}
  .scan-import{grid-template-columns:1fr 1fr}
  #scanner .scan-import button{padding:10px 6px;font-size:13px}
  #scanPages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}
  .scan-thumb{margin:0;min-width:0}
  .scan-thumb img{height:112px}
  .scan-thumb span{font-size:11px}
  #scanner .scan-thumb>div button{padding:3px 6px}
  #scanner.camera-open .scan-main{grid-column:2/-1}
}
#scanner.camera-open #scanEmpty,#scanner.camera-open #scanWork,#scanner.camera-open #scanControls{display:none!important}
#scanner.camera-open .scan-main{display:flex;overflow:hidden;min-height:0}
#scanCameraPane{width:100%;max-width:1100px;margin:0 auto;min-height:0;flex:1;display:flex;flex-direction:column;padding:16px;border-radius:8px}
#scanVideo{display:block;flex:1;min-height:0;width:100%;max-height:none;object-fit:contain;background:#101412;border-radius:5px}
#scanCameraMessage{flex:none;margin:12px 0 0;max-height:110px;overflow:auto}
#scanCameraPane>div{flex:none;flex-wrap:wrap;gap:8px}
#scanCustomSize small{grid-column:1/-1}
@media(min-width:1500px){.scan-body{grid-template-columns:340px minmax(0,1fr) 240px}#scanPages{grid-template-columns:repeat(3,minmax(0,1fr))}.scan-thumb img{height:100px}}
@media(max-width:1100px) and (min-width:781px){.scan-body{grid-template-columns:260px minmax(0,1fr) 210px}}
@media(max-width:780px){
  #scanner .scan-pages-panel{display:flex;flex-direction:column;max-height:230px}
  #scanner .scan-import{display:grid;grid-template-columns:1fr 1fr}
  #scanner .scan-pages-panel>strong,#scanner .scan-pages-panel>small{position:static}
  #scanner #scanPages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:auto;flex:1;min-height:0;align-content:start}
  #scanner .scan-thumb{width:auto;min-width:0}
  #scanner.camera-open .scan-pages-panel{display:none}
  #scanner.camera-open .scan-body{overflow:hidden}
  #scanner.camera-open .scan-main{flex:1;padding:8px}
  #scanCameraPane{padding:8px}
  #scanCameraPane>div button{font-size:12px;padding:8px}
}
