/* Pro food scanner: full screen on phones, a centred panel on larger screens */
.scan-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.scan-pro-tag{font:800 10px/1 system-ui,sans-serif;letter-spacing:.08em;color:#17130a;background:var(--gold);border-radius:4px;padding:3px 5px}
body.scan-open{overflow:hidden}
.scan-sheet{position:fixed;inset:0;z-index:60;background:rgba(5,5,4,.82);display:grid;place-items:center;padding:20px}
.scan-card{width:min(560px,100%);max-height:calc(100dvh - 40px);overflow:auto;background:var(--panel);border:1px solid #4b3e18;border-radius:16px;padding:20px 20px 22px;display:grid;gap:14px}
.scan-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.scan-head h2{font:600 24px/1.15 Georgia,serif;margin:6px 0 0;text-wrap:balance}
.scan-close{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.scan-body{display:grid;gap:14px;min-width:0}
.scan-stage{position:relative;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3}
.scan-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scan-frame{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);border:3px solid var(--gold);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.scan-frame-barcode{width:78%;height:34%}
.scan-frame-photo{width:86%;height:74%;border-style:dashed;border-width:2px}
.scan-status{position:absolute;left:12px;right:12px;bottom:10px;margin:0;text-align:center;color:#fff;font-size:14px;font-weight:600;text-shadow:0 1px 3px #000}
.scan-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.scan-actions>*{flex:1 1 180px;text-align:center}
.scan-file{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:11px 14px;font-weight:700;color:var(--text)}
.scan-photo-actions{align-items:center}
.scan-photo-actions .scan-shutter{flex:none;order:-1;width:72px;height:72px;border-radius:50%;border:4px solid var(--gold);background:radial-gradient(circle,#fff 0 56%,transparent 58%);cursor:pointer}
.scan-photo-actions .scan-shutter:disabled{opacity:.4;cursor:default}
.scan-photo-actions .scan-hint{flex-basis:100%;color:var(--muted);font-size:13px;order:-2}
.scan-wait{display:grid;justify-items:center;gap:10px;padding:18px 0;text-align:center;color:var(--muted)}
.scan-wait p{margin:0}
.scan-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--gold);animation:scan-spin .8s linear infinite}
@keyframes scan-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.scan-spinner{animation-duration:2.4s}}
.scan-note{margin:0;color:#d6d3c6;line-height:1.5}
.scan-setup{margin:0;padding:10px 12px;border:1px dashed #5a4a1d;border-radius:8px;color:var(--gold2);font-size:13px}
.scan-manual{display:grid;gap:8px}
.scan-manual label{color:var(--muted);font-size:13px}
.scan-manual input{background:#090a09;border:1px solid var(--line);border-radius:8px;padding:13px;color:var(--text);font-size:18px;letter-spacing:.06em}
.scan-product{display:flex;gap:14px;align-items:center}
.scan-product img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:10px;flex:none}
.scan-product h3{margin:4px 0;font-size:19px}
.scan-product small{color:var(--muted)}
.scan-per100{margin:0;color:#d6d3c6;font-size:14px;line-height:1.5}
.scan-add{display:grid;gap:12px}
.scan-amount{display:grid;gap:6px;color:var(--muted);font-size:13px}
.scan-amount span{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:700}
.scan-amount input,.scan-grams input{background:#090a09;border:1px solid var(--line);border-radius:8px;padding:11px;color:var(--text);font-size:16px;font-weight:700;width:110px}
.scan-slots{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.scan-slots legend{color:var(--muted);font-size:13px;margin-bottom:6px;padding:0}
.scan-slots label{cursor:pointer}
.scan-slots input{position:absolute;opacity:0;pointer-events:none}
.scan-slots span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-size:14px;font-weight:700;color:#d6d3c6}
.scan-slots input:checked+span{background:var(--gold);border-color:var(--gold);color:#17130a}
.scan-slots input:focus-visible+span{outline:2px solid var(--gold2);outline-offset:2px}
.scan-totals{margin:0;padding:10px 12px;border-radius:8px;background:var(--panel2);font-size:14px;line-height:1.5}
.scan-preview{border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3}
.scan-preview img{width:100%;height:100%;object-fit:cover;display:block}
.scan-preview-small{aspect-ratio:16/7}
.scan-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.scan-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2)}
.scan-check input{width:20px;height:20px;accent-color:var(--gold)}
.scan-item-main{min-width:0;display:grid;gap:2px}
.scan-item-main b{overflow-wrap:anywhere}
.scan-item-main small{color:var(--muted);font-size:12px}
.scan-grams{display:flex;align-items:center;gap:5px;color:var(--muted);font-weight:700}
.scan-grams input{width:76px;padding:9px}
.scan-kcal{font-weight:800;color:var(--gold2);font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.scan-quota{margin:0;text-align:center;color:var(--muted);font-size:12px}
.scan-pro{display:grid;gap:12px;text-align:center;justify-items:center}
.scan-pro p{margin:0;color:#d6d3c6;line-height:1.5}
.scan-pro ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;color:var(--text);font-weight:600}
.scan-pro li::before{content:"✓ ";color:var(--gold)}
.scan-pro .primary,.scan-pro .ghost{width:100%}
.scan-pro-badge{font:900 12px/1 system-ui,sans-serif;letter-spacing:.14em;color:#17130a;background:var(--gold);border-radius:6px;padding:6px 10px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:640px){
  .scan-sheet{padding:0;place-items:stretch}
  .scan-card{width:100%;max-height:none;height:100dvh;border-radius:0;border:0;padding:max(16px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));align-content:start}
  .scan-stage{aspect-ratio:3/4}
  .scan-item{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"check main kcal" "check grams grams"}
  .scan-check{grid-area:check}.scan-item-main{grid-area:main}.scan-kcal{grid-area:kcal}.scan-grams{grid-area:grams}
}
