/* Scoped to the scanner and its catalog entry. Inicio keeps its original styles. */
.scanner-entry {
  display:flex; width:100%; min-height:44px; align-items:center; justify-content:center; gap:9px;
  margin:0 0 17px; padding:8px 12px; border:2px solid #315f50; border-radius:10px;
  background:linear-gradient(#d9edb9,#b9d89b); color:#294e3e;
  box-shadow:inset 0 2px #f3ffdc,0 3px #315848; font-size:13px; font-weight:800; cursor:pointer;
}
.scanner-entry span { font-size:21px; }
.scanner-dialog {
  width:min(94vw,520px); max-height:calc(100dvh - 20px); padding:0 0 13px;
  overflow:auto; overscroll-behavior:contain; border:3px solid #8f2430; border-radius:20px;
  background:linear-gradient(135deg,#e35a63,#c93c48); color:#243e3b;
  box-shadow:inset 0 2px #ffb2b9,0 6px #76222c,0 18px 55px #172b2680;
  font-family:"Segoe UI",Arial,sans-serif;
}
.scanner-dialog::backdrop { background:#17211cba; backdrop-filter:blur(3px); }
.scanner-dialog [hidden] { display:none!important; }
.scanner-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:17px 17px 14px; color:#fff5dc; }
.scanner-header p { margin:0 0 4px; font-size:9px; font-weight:800; letter-spacing:1.5px; color:#ffe3b7; }
.scanner-header h2 { margin:0; font-family:Bahnschrift,"Segoe UI",sans-serif; font-size:24px; text-shadow:0 1px #8f2430; }
#scanner-close {
  flex:none; width:44px; height:44px; padding:0; border:2px solid #902633; border-radius:50%;
  background:#fff5dc; color:#9e3140; box-shadow:inset 0 2px #fff,0 3px #85212d; font-size:27px; cursor:pointer;
}
.scanner-panel { margin:0 12px; padding:12px; border:3px solid #315f50; border-radius:14px; background:linear-gradient(145deg,#e8f4d2,#cfe6ad); box-shadow:inset 0 2px #f3ffdf,0 4px #8f2430; }
.scanner-topline { display:flex; align-items:center; gap:6px; padding-bottom:9px; border-bottom:1px solid #9fbd8c; font-size:9px; letter-spacing:.4px; }
.scanner-topline>span:last-child { margin-left:auto; font-size:8px; white-space:nowrap; }
.scanner-led { flex:none; width:8px; height:8px; border:1px solid #315848; border-radius:50%; background:#5c9773; box-shadow:inset 0 1px #fff9; }
.scanner-dialog[data-state="live"] .scanner-led { background:#c7f18a; }
#scanner-message { min-height:36px; margin:10px 0; font-size:12px; line-height:1.5; }
.scanner-viewport { position:relative; height:clamp(220px,44dvh,395px); overflow:hidden; border:3px solid #315848; border-radius:10px; background:#182c26; box-shadow:inset 0 2px 8px #0005; }
#scanner-video { display:block; width:100%; height:100%; object-fit:cover; }
.scanner-guide { position:absolute; top:50%; left:50%; height:84%; max-width:90%; aspect-ratio:63/88; transform:translate(-50%,-50%); border:1px solid #e4f6c9; border-radius:9px; box-shadow:0 0 0 1500px #10261e70; pointer-events:none; }
.scanner-guide i { position:absolute; width:24px; height:24px; border:3px solid #d9f7b4; }
.scanner-guide i:nth-child(1) { top:-2px; left:-2px; border-right:0; border-bottom:0; border-radius:9px 0 0; }
.scanner-guide i:nth-child(2) { top:-2px; right:-2px; border-left:0; border-bottom:0; border-radius:0 9px 0 0; }
.scanner-guide i:nth-child(3) { bottom:-2px; left:-2px; border-right:0; border-top:0; border-radius:0 0 0 9px; }
.scanner-guide i:nth-child(4) { bottom:-2px; right:-2px; border-left:0; border-top:0; border-radius:0 0 9px; }
.scanner-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:14px; color:#d4e8bb; font-size:12px; text-align:center; }
.scanner-placeholder span { font-size:45px; }
#scanner-photo { display:block; width:100%; height:100%; object-fit:contain; }
.scanner-controls { display:flex; justify-content:center; margin:14px 0 10px; }
.scanner-shutter,.scanner-green {
  display:flex; min-height:48px; min-width:170px; align-items:center; justify-content:center; gap:9px; padding:9px 18px;
  border:2px solid #8f2430; border-radius:12px; background:linear-gradient(#e35a63,#c93c48); color:#fff;
  box-shadow:inset 0 2px #ffb2b9,0 4px #8f2430; font-weight:800; font-size:14px; cursor:pointer;
}
.scanner-shutter span { font-size:25px; line-height:1; }
.scanner-shutter:disabled { opacity:.55; cursor:wait; }
.scanner-green { border-color:#315f50; background:linear-gradient(#d9edb9,#b9d89b); color:#294e3e; box-shadow:inset 0 2px #f3ffdc,0 4px #315848; }
.scanner-entry:active,.scanner-shutter:active:not(:disabled),.scanner-green:active,#scanner-close:active { transform:translateY(2px); }
.scanner-privacy { margin:12px 0 6px; color:#3f6049; font-size:11px; line-height:1.5; text-align:center; }
.scanner-manual { display:block; width:100%; min-height:44px; padding:7px 3px; border:0; border-radius:8px; background:transparent; color:#2c543d; font-size:12px; font-weight:700; text-decoration:underline; cursor:pointer; }
@media(max-height:600px) { .scanner-viewport { height:220px; } .scanner-header { padding-top:12px; padding-bottom:10px; } }
@media(max-width:350px) { .scanner-header { padding-left:12px; padding-right:12px; } .scanner-header h2 { font-size:21px; } .scanner-panel { margin:0 8px; padding:9px; } .scanner-topline { letter-spacing:0; } }

/* Assisted recognition: keep all styling inside the approved scanner. */
.scanner-dialog *, .scanner-dialog *::before, .scanner-dialog *::after { box-sizing:border-box; }
.scanner-controls { flex-wrap:wrap; gap:10px; }
.scanner-controls>button { flex:1 1 140px; min-width:0; }
.scanner-dialog button:disabled { opacity:.5; cursor:default; }
.scanner-dialog :is(button,input):focus-visible { outline:3px solid #184b62; outline-offset:3px; }
.scanner-viewport.scanner-compact { height:145px; }
#scanner-work { display:flex; align-items:center; gap:12px; margin:12px 0; }
#scanner-work progress { width:100%; min-width:0; accent-color:#315f50; }
#scanner-work button { min-width:100px; min-height:44px; }
#scanner-search-form { display:grid; gap:10px; margin:16px 0 10px; }
#scanner-search-form label { display:grid; gap:5px; min-width:0; font-size:12px; font-weight:700; }
#scanner-search-form input { width:100%; min-width:0; min-height:44px; padding:9px; border:2px solid #648565; border-radius:8px; background:#f7fbe9; color:#243e3b; font:inherit; font-size:16px; }
.scanner-number-fields { display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:9px; }
.scanner-number-fields>span { padding-bottom:12px; }
.scanner-help { font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
#scanner-results { display:grid; gap:10px; }
.scanner-candidate { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; padding:10px; border:2px solid #9ab589; border-radius:10px; background:#eff6df; }
.scanner-candidate.is-selected { border-color:#254e3e; background:#e0f0c9; box-shadow:0 0 0 1px #254e3e; }
.scanner-candidate .catalog-image { display:flex; align-items:center; justify-content:center; width:min(100%,240px); aspect-ratio:63/88; height:auto; min-height:0; margin:0 auto; padding:0; border:0; font-size:12px; text-align:center; background:#d2e1bd; }
.scanner-candidate img { display:block; width:100%; height:100%; object-fit:contain; }
.scanner-candidate small { display:block; margin-top:4px; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.scanner-candidate b { font-size:14px; }
.scanner-candidate button { width:100%; min-height:44px; margin-top:8px; padding:7px; border:1px solid #315f50; border-radius:7px; background:#d2e5b5; color:#244b38; font-size:12px; font-weight:700; cursor:pointer; }
.scanner-match-reason { color:#315f50; font-weight:700; }
#scanner-more,#scanner-retry-search { width:100%; min-width:0; margin-top:12px; }
#scanner-confirm { width:100%; min-width:0; }
.scanner-save-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.scanner-save-actions>button { flex:1 1 120px; min-width:0; padding:9px; }

.scanner-conflict { border:2px solid #a24629; }
.scanner-conflict .scanner-match-reason { color:#8b3219; font-weight:700; }
