/* Follow the site's orange brand and its active light/dark theme. */
.scan-editor {
  --scan-accent:var(--primary); --scan-accent-ink:var(--primary); --scan-selected:var(--primary-soft);
  --scan-bg:var(--bg-2); --scan-panel:var(--card); --scan-line:var(--border); --scan-text:var(--text); --scan-on-accent:#20100a;
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(1080px,calc(100vw - 16px)); height:90dvh; z-index:10001; background:var(--scan-panel); color:var(--scan-text);
  border-radius:9px; box-shadow:0 12px 60px #0003; overflow:hidden;
  display:grid; grid-template-rows:40px minmax(0,1fr) 64px; font:14px/1.4 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
html[data-theme="light"] .scan-editor {--scan-on-accent:#fff;}
.scan-editor[hidden],.scan-backdrop[hidden],[hidden] { display:none !important; }
.scan-backdrop {position:fixed;inset:0;background:#0006;z-index:10000;}
body.scan-editor-open {overflow:hidden;}
.scan-editor * {box-sizing:border-box;}
.scan-editor button,.scan-editor select {font:inherit;letter-spacing:normal;}
.scan-editor button {cursor:pointer;color:var(--scan-text);border:1px solid var(--scan-line);border-radius:5px;background:var(--card-2);box-shadow:none;min-height:36px;}
.scan-editor button:hover {background:var(--scan-selected);}
.scan-editor button:focus-visible,.scan-editor input:focus-visible {outline:2px solid var(--scan-accent-ink);outline-offset:3px;}
.scan-editor button:disabled {cursor:not-allowed;opacity:.47;}
.scan-editor-head {display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--scan-line);position:relative;}
.scan-editor-head h2 {font-size:16px;font-weight:400;margin:0;}
.scan-editor .scan-close {position:absolute;right:4px;top:0;width:42px;height:40px;border:0;background:transparent;font-size:24px;color:var(--text-3);}
.scan-editor-body {display:grid;grid-template-columns:132px minmax(0,1fr) 200px;min-height:0;}
.scan-page-rail {border-right:1px solid var(--scan-line);min-height:0;display:flex;flex-direction:column;background:var(--scan-panel);}
.scan-page-list {overflow:auto;flex:1;min-height:0;padding:10px 7px;scrollbar-width:thin;}
.scan-page {display:block;position:relative;width:100%;margin-bottom:8px;padding:8px 5px 5px;background:transparent!important;border:1px solid transparent!important;border-radius:7px!important;min-height:136px!important;}
.scan-page.active {background:var(--scan-selected)!important;color:var(--scan-accent-ink);}
.scan-page-picture {height:100px;display:grid;place-items:center;margin:0 auto 7px;padding:6px;max-width:108px;}
.scan-page.active .scan-page-picture {background:var(--scan-selected);}
.scan-page canvas {max-width:100%;max-height:94px;object-fit:contain;box-shadow:0 0 0 1px #ddd;}
.scan-page.active canvas {box-shadow:0 0 0 1px var(--scan-accent);}
.scan-page-number {font-size:13px;}
.scan-page-meta {display:block;font-size:10px;line-height:1.35;color:var(--text-2);margin-top:3px;overflow-wrap:anywhere;}
.scan-page-warning {position:absolute;right:4px;top:4px;color:#99600d;background:#fff7db;border-radius:50%;width:18px;font-size:12px;}
.scan-page-rail .scan-add {margin:6px;min-height:40px;background:var(--scan-panel);font-size:12px;}
.scan-workstage {position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:auto;background:var(--scan-bg);padding:16px;}
.scan-workstage .scanner-screen {width:100%;height:100%;min-height:0;}
.scan-workstage .scanner-screen.active {display:flex;align-items:center;justify-content:center;}
.scan-workstage canvas {object-fit:contain;display:block;max-width:100%;max-height:100%;width:auto;height:auto;}
.scan-workstage #previewCanvas {max-height:100%;max-width:100%;}
.scan-workstage #cropCanvas {touch-action:none;}
.scan-preview-status {position:absolute;left:12px;bottom:7px;margin:0;color:var(--text-2);font-size:11px;pointer-events:none;background:var(--scan-bg);border-radius:3px;padding:2px 5px;}
.scan-source-name {position:absolute;left:10px;top:5px;right:10px;z-index:1;margin:0;font-size:11px;line-height:18px;color:var(--text-2);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.scan-import-status {font-size:11px;color:var(--scan-accent-ink);max-width:135px;line-height:1.3;}
.scan-page[data-auto-status=pending] .scan-page-number::after,.scan-page[data-auto-status=processing] .scan-page-number::after {content:' ·';color:var(--scan-accent-ink);}
.scan-tools {padding:18px 18px 14px 20px;border-left:1px solid var(--scan-line);min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;}
.scan-transform-row {display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
.scan-transform-row button {height:36px;min-width:0;padding:5px;}
.scan-transform-row svg,.scan-crop-toggle svg {width:20px;height:20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.scan-crop-toggle {width:100%;font-size:14px;display:flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;}
.scan-crop-toggle[aria-pressed=true] {border-color:var(--scan-accent);color:var(--scan-accent-ink);background:var(--scan-selected);}
.scan-divider {border:0;border-top:1px solid var(--scan-line);margin:2px 0;}
.scan-filter-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;}
.scan-filter-grid .filter-card {border:0;background:transparent;border-radius:0;padding:0;min-width:0;display:flex;align-items:center;flex-direction:column;gap:5px;min-height:96px;}
.scan-filter-grid .filter-card:hover {background:transparent;}
.scan-filter-icon {height:72px;width:72px;max-width:100%;border:1px solid transparent;border-radius:11px;background:var(--card-3);display:grid;place-items:center;font-size:31px;line-height:1;color:var(--scan-accent);}
.scan-filter-grid .filter-card.active .scan-filter-icon {border-color:var(--scan-accent);background:var(--scan-selected);}
.scan-filter-grid .filter-card.active,.scan-filter-grid .filter-card.active .fc-label {color:var(--scan-accent-ink);}
.scan-filter-grid .fc-label {font-size:13px;font-weight:400;line-height:1.35;white-space:normal;overflow-wrap:normal;text-align:center;color:inherit;}
.scan-filter-icon svg {width:40px;height:40px;}
.scan-unavailable-note {font-size:11px;color:var(--text-2);line-height:1.4;margin:0;}
.scan-filter-grid .fc-availability {font-size:10px;line-height:1.2;color:var(--text-2);}
.scan-tools details {font-size:12px;}
.scan-tools summary {cursor:pointer;padding:6px 0;color:var(--text-2);}
.scan-extra-filters {display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;}
.scan-extra-filters button {padding:5px;font-size:11px;}
.scan-extra-filters button[aria-pressed=true] {color:var(--scan-accent-ink);border-color:var(--scan-accent);}
.scan-tools .slider-group {margin:8px 0;}
.scan-tools .slider-group label {font-size:11px;color:var(--text-2);display:flex;justify-content:space-between;}
.scan-tools input[type=range] {width:100%;accent-color:var(--scan-accent);}
.scan-apply-all {margin-top:auto;display:flex;gap:7px;align-items:center;white-space:nowrap;font-size:13px;padding:10px 0 2px;position:sticky;bottom:-14px;background:var(--scan-panel);}
.scan-editor input[type=checkbox] {accent-color:var(--scan-accent);width:15px;height:15px;}
.scan-crop-options {display:grid;gap:7px;font-size:12px;}
.scan-crop-options p {font-size:12px;color:var(--text-2);margin:0;}
.scan-crop-options button {font-size:12px;}
.scan-crop-options .detect-badge {font-size:11px;line-height:1.4;padding:7px;border-radius:5px;letter-spacing:normal;}
.scan-editor[data-mode=crop] .scan-workstage {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:18px minmax(0,1fr) auto;gap:8px;align-items:stretch;overflow:hidden;padding:10px 16px;}
.scan-editor[data-mode=crop] .scan-source-name {position:static;grid-area:1/1;margin:0;line-height:18px;}
.scan-editor[data-mode=crop] #screen-crop.active {grid-area:2/1;min-height:0;min-width:0;}
.scan-editor[data-mode=crop] .scan-workstage .scan-crop-options {position:static;grid-area:3/1;transform:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;padding:7px;margin:0;max-width:100%;width:100%;background:var(--scan-panel);border:1px solid var(--scan-line);border-radius:6px;white-space:normal;}
.scan-workstage .scan-crop-options p,.scan-workstage .scan-crop-options .detect-badge {display:none!important;}
.scan-workstage .scan-crop-options button {padding:6px 9px;min-height:34px;font-size:12px;}
.scan-workstage .scan-crop-options #scanConfirm {background:var(--scan-accent);color:var(--scan-on-accent);border-color:var(--scan-accent);}
.scan-editor[data-mode=crop] .scan-tools {opacity:.4;pointer-events:none;}
.scan-editor[data-mode=crop] .scan-page-list {opacity:.5;}
.scan-editor-footer {border-top:1px solid var(--scan-line);display:flex;align-items:center;justify-content:flex-end;padding:10px 16px;gap:12px;background:var(--scan-panel);}
.scan-editor-footer button {padding:8px 16px;background:var(--scan-panel);min-height:40px;}
.scan-editor-footer .scan-confirm {background:var(--scan-accent);color:var(--scan-on-accent);border-color:var(--scan-accent);min-width:140px;font-weight:600;}
.scan-editor-footer .scan-confirm:hover {background:var(--primary-hover);border-color:var(--primary-hover);}
.scan-footer-info {margin-right:auto;font-size:12px;color:var(--text-3);}
.scan-zoom {display:flex;align-items:center;gap:5px;margin-right:auto;}
.scan-zoom button {padding:4px 10px;min-height:32px;}
.scan-zoom output {min-width:32px;text-align:center;font-size:11px;}
.scan-editor[data-mode=export] .scan-editor-body {grid-template-columns:132px minmax(0,1fr);}
.scan-editor[data-mode=export] .scan-tools {display:none;}
.scan-editor[data-mode=export] .scan-workstage {align-items:flex-start;}
.scan-editor[data-mode=export] #screen-export.active {display:block;height:auto;max-width:950px;}
.scan-editor .export-card {background:var(--scan-panel);border:1px solid var(--scan-line);box-shadow:none;color:var(--scan-text);}
.scan-editor .export-card h3 {color:var(--scan-text);}
.scan-editor .download-btn,.scan-editor .btn-primary {background:var(--scan-accent);color:var(--scan-on-accent);border-color:var(--scan-accent);}
/* Accent buttons keep their colour on hover; the generic dark hover made their text invisible. */
.scan-editor .download-btn:hover:not(:disabled),.scan-editor .btn-primary:hover:not(:disabled),.scan-editor-footer .scan-confirm:hover:not(:disabled),.scan-workstage .scan-crop-options #scanConfirm:hover:not(:disabled) {background:var(--scan-accent);color:var(--scan-on-accent);border-color:var(--scan-accent);filter:brightness(1.1);box-shadow:0 6px 18px rgba(255,99,51,.35);}
.scan-editor .download-btn:disabled,.scan-editor .btn-primary:disabled,.scan-editor-footer .scan-confirm:disabled {background:var(--scan-accent);color:var(--scan-on-accent);opacity:.55;filter:none;box-shadow:none;}
.scan-editor select {background:var(--scan-panel);color:var(--scan-text);}
.scan-stage-busy {position:absolute;inset:0;z-index:3;background:var(--scan-bg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;color:var(--text-2);padding:20px;}
.scan-stage-spinner {width:30px;height:30px;border:3px solid #ccc;border-top-color:var(--scan-accent);border-radius:50%;animation:scan-spin .8s linear infinite;}
@keyframes scan-spin {to{transform:rotate(360deg);}}
@media(min-width:761px) and (max-height:860px){
 .scan-filter-icon{width:64px;height:64px;}.scan-filter-grid .filter-card{min-height:88px;}.scan-filter-grid{gap:13px 14px;}.scan-tools{gap:9px;padding-top:16px;padding-bottom:10px;}.scan-filter-more summary{padding:2px 0;}
}
.scan-editor .scan-delete {color:var(--error);background:var(--scan-panel);font-size:12px;margin-top:10px;}
.scan-filter-more details {margin:0;}
.scan-filter-grid {gap:17px 14px;}
.scan-empty-stage {color:var(--text-3);text-align:center;}
.scan-workstage[data-zoomed=true] .scanner-screen.active {width:max-content;height:max-content;min-width:100%;min-height:100%;}
@media(max-width:760px){
 .scan-editor{inset:0;transform:none;width:100%;height:100dvh;border-radius:0;grid-template-rows:42px minmax(0,1fr) 62px;}
 .scan-editor-body{grid-template-columns:78px minmax(0,1fr) 150px;}
 .scan-page-list{padding:7px 3px;}.scan-page{min-height:108px!important;padding:5px 2px;}.scan-page-picture{height:76px;padding:3px;}.scan-page canvas{max-height:70px;}
 .scan-tools{padding:12px 9px;gap:9px;}.scan-filter-grid{gap:15px 8px;}.scan-filter-icon{height:55px;width:55px;border-radius:8px;font-size:26px;}.scan-filter-grid .filter-card{min-height:78px;}.scan-filter-grid .fc-label{font-size:11px;}
 .scan-transform-row{gap:3px;}.scan-transform-row button{padding:3px;min-height:36px;}.scan-transform-row svg{width:17px;}
 .scan-apply-all{font-size:11px;gap:4px;}.scan-workstage{padding:10px;}.scan-editor-footer{padding:8px;gap:7px;}.scan-editor-footer button{padding:7px 10px;font-size:12px;}.scan-editor-footer .scan-confirm{min-width:90px;}.scan-zoom{display:none;}
}
@media(max-width:480px){
 .scan-editor-body{grid-template-columns:64px minmax(0,1fr);grid-template-rows:minmax(180px,1fr) auto;}
 .scan-page-rail{grid-row:1/3;}.scan-page{min-height:92px!important;}.scan-page-picture{height:60px;}.scan-page canvas{max-height:55px;}
 .scan-tools{grid-column:2;border-left:0;border-top:1px solid var(--scan-line);padding:9px;max-height:238px;display:block;}
 .scan-transform-row{display:inline-grid;width:148px;vertical-align:middle;margin-bottom:8px;}.scan-crop-toggle{width:calc(100% - 158px);margin-left:6px;min-width:60px;}
 .scan-filter-grid{grid-template-columns:repeat(4,1fr);gap:8px 5px;margin-top:8px;}.scan-filter-icon{width:48px;height:48px;}.scan-filter-grid .filter-card{min-height:68px;}.scan-filter-grid .fc-label{font-size:10px;}
 .scan-filter-grid .filter-card:last-child .fc-label{font-size:9px;}.scan-unavailable-note{font-size:10px;}.scan-tools .scan-divider{display:none;}.scan-tools .scan-apply-all{padding-top:5px;}.scan-crop-options{grid-template-columns:1fr 1fr;}.scan-crop-options p,.scan-crop-options .detect-badge{grid-column:1/-1;}
 .scan-editor[data-mode=crop] .scan-filter-grid,.scan-editor[data-mode=crop] .scan-filter-more{display:none;}.scan-editor[data-mode=export] .scan-editor-body{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:1fr;}.scan-editor .export-layout{grid-template-columns:1fr;}.scan-footer-info{font-size:10px;}.scan-preview-status{font-size:10px;}
 .scan-workstage .scan-crop-options{flex-wrap:wrap;justify-content:center;width:calc(100% - 12px);}.scan-workstage .scan-crop-options button{font-size:10px;padding:5px;min-height:36px;}
}
@media(prefers-reduced-motion:reduce){.scan-stage-spinner{animation:none;}}
/* Page rail entries: page button + corner remove button (siblings, not nested). */
.scan-page-item {position:relative;}
.scan-editor .scan-page-remove {position:absolute;top:3px;left:3px;z-index:2;width:24px;height:24px;min-height:24px;padding:0;display:grid;place-items:center;border-radius:50%;border:1px solid var(--scan-line);background:var(--scan-panel);color:var(--text-2);font-size:17px;line-height:1;box-shadow:0 1px 3px #0002;}
.scan-editor .scan-page-remove:hover,.scan-editor .scan-page-remove:focus-visible {background:var(--error,#d33);border-color:var(--error,#d33);color:#fff;}
.scan-editor[data-mode=crop] .scan-page-remove {display:none;}
@media(max-width:480px){.scan-editor .scan-page-remove{width:22px;height:22px;min-height:22px;font-size:15px;top:1px;left:1px;}}
/* Site-wide overlays must sit above the full-screen editor (z-index 10001). */
body.scan-editor-open .toast {z-index:10060;white-space:normal;bottom:84px;}
body.scan-editor-open .cm-fname-backdrop {z-index:10050;}
/* Handwriting removal is not shipped yet: keep it out of the way instead of
   showing a disabled tile and an apology note in the main tool panel. */
.scan-filter-grid .filter-card[data-filter=handwriting],#scanHandwritingNote {display:none;}
.toast .toast-undo {margin-left:10px;padding:4px 12px;min-height:28px;border-radius:999px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer;}
