/* Scanner additions preserve the existing realm theme and private catalog layout. */
[hidden]{display:none!important}
.scan-welcome{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:2rem;align-items:center;padding:2.2rem}
.scan-welcome h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.12;margin:.7rem 0 1rem}
.scan-welcome>img{width:100%;max-height:350px;object-fit:contain;border-radius:28px}
.scan-welcome p{max-width:650px;line-height:1.65}
.scan-steps{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.5rem 0;align-items:center}
.scan-steps>span{display:flex;gap:.6rem;align-items:center;margin-right:1rem}
.scan-steps b{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border:1px solid #a687b8;border-radius:50%;font-size:.85rem}
.scan-status{min-height:1.5rem;color:#dcc8e8;line-height:1.5}
.scan-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:1.3rem;align-items:start}
.scan-layout>.panel{min-width:0}
.scan-aside>.panel{margin-bottom:1rem}
.scan-aside .keeper-card img{max-height:145px;object-fit:contain}
.scan-aside figure{margin:0 0 1rem;display:grid;grid-template-columns:64px 1fr;gap:.7rem;align-items:center}
.scan-aside figure img{width:64px;max-height:100px;object-fit:contain;border-radius:5px}
.scan-aside figure figcaption{font-size:.85rem;color:#dbccdf}
.scan-file-label{position:relative;overflow:hidden;cursor:pointer}
.scan-file-label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#scan-video{display:block;width:100%;max-height:560px;object-fit:contain;border-radius:12px;background:#100d16;margin:1rem 0}
#crop-canvas{display:block;width:100%;height:auto;max-width:760px;touch-action:none;border:1px solid #a68ba4;border-radius:9px;cursor:crosshair;margin:1rem auto;outline-offset:4px}
#crop-panel .button-row{flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.accepted-cover{display:block;max-width:min(100%,420px);max-height:580px;object-fit:contain;margin:1.2rem auto;border-radius:8px;box-shadow:0 12px 30px #0005}
.corner-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.corner-grid fieldset{min-width:0;border:1px solid #705b7a;border-radius:8px;padding:.6rem}
.corner-grid legend{font-size:.8rem;color:#dec9ec}
.corner-grid label{display:grid;grid-template-columns:1fr 80px;gap:.5rem;align-items:center;margin-bottom:.3rem;font-size:.85rem}
.corner-grid input{width:100%;min-width:0;background:#201a2a;color:#f3e9fa;border:1px solid #786586;border-radius:5px;padding:.5rem;font-size:16px}
.scan-warnings p{padding:.7rem .8rem;border-left:3px solid #d5b279;background:#d5b2790c;font-size:.9rem;line-height:1.5}
.review-covers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.3rem}
.review-covers figure{margin:0;padding:.6rem;border:1px solid #64516b;border-radius:10px;min-width:0;text-align:center}
.review-covers img{width:100%;height:220px;object-fit:contain}
.review-covers figcaption{font-size:.8rem;margin-top:.5rem;color:#dfcde9}
.transcription{padding:1rem 0;border-bottom:1px solid #695075}
.transcription textarea{width:100%;box-sizing:border-box;min-width:0;background:#18131f;color:#eee2f5;border:1px solid #715f80;border-radius:8px;padding:.8rem;font-size:16px;line-height:1.5;resize:vertical}
.transcription .button-row{flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.transcription .button{font-size:.8rem;padding:.6rem .8rem}
.draft-list{display:flex;gap:.7rem;flex-wrap:wrap}
#scan-app input,#scan-app select,#scan-app textarea{font-size:16px}
#scan-app .button{white-space:normal;text-align:center;min-height:44px}
#scan-app[aria-busy=true] .scan-status:before{content:'◌ ';display:inline-block;margin-right:.3rem}
.book-face-viewer{width:100%;min-width:0}
.book-faces{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;border-radius:8px;scrollbar-width:thin}
.book-faces figure{flex:0 0 100%;width:100%;min-width:0;margin:0;scroll-snap-align:start;box-sizing:border-box;text-align:center}
.detail-cover .book-faces img{display:block;width:100%;height:350px;object-fit:contain;border-radius:8px;box-shadow:none}
.book-faces figcaption{font-size:.8rem;margin:.4rem 0;color:#dfcde9}
.face-controls{display:flex;justify-content:center;gap:.4rem;margin:.5rem 0}
.face-controls .button{min-height:40px;padding:.4rem .7rem;font-size:.8rem}
@media(max-width:1000px){.scan-layout{grid-template-columns:minmax(0,1fr)}.scan-aside{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.scan-aside .keeper-card{display:none}.scan-aside .button-row{align-self:start}.scan-tabs{gap:.4rem}.scan-tabs .button{flex:1;font-size:.85rem;padding:.6rem}}
@media(max-width:600px){.scan-welcome{grid-template-columns:1fr;padding:1.25rem;gap:.7rem}.scan-welcome>img{max-height:160px;grid-row:1}.scan-layout{gap:.8rem}.scan-aside{display:block}.scan-tabs .button{display:flex;flex-direction:column;font-size:.8rem;gap:.4rem}.scan-steps b{width:1.5rem;height:1.5rem}.scan-layout .panel{padding:1.05rem}.corner-grid{grid-template-columns:1fr}.review-covers{gap:.5rem}.review-covers img{height:185px}.detail-cover .book-faces img{height:320px}.transcription .button-row .button{flex:1}.scan-welcome .scan-steps{justify-content:space-between}.scan-steps>span{margin-right:0}.scan-welcome form .button{width:100%}}

@media(max-width:600px){.book-hero{grid-template-columns:minmax(0,1fr)!important}.detail-cover{max-width:280px;margin:0 auto;width:100%}.book-intro{min-width:0}.scan-welcome .checkbox-label{margin:1rem 0}}

/* Dedicated ISBN intake: independent camera and four equal steps. */
#isbn-video{display:block;width:100%;max-height:400px;object-fit:contain;background:#100d16;border:2px solid #a687b8;border-radius:12px;margin:1rem 0}
#isbn-panel .scan-file-label{margin:.7rem 0}#isbn-entry{margin:1.2rem 0}#isbn-panel .button-row{flex-wrap:wrap;gap:.5rem}
#barcode-choices{flex-wrap:wrap;margin:.8rem 0}.scan-tabs .button{flex:1;min-width:0}#missing-fields{line-height:1.6}
@media(max-width:600px){.scan-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem}.scan-tabs .button{padding:.65rem .2rem;font-size:.74rem}.scan-welcome .scan-steps{gap:.5rem}.scan-welcome .scan-steps>span{font-size:.85rem}.scan-welcome .scan-steps b{display:none}}
