:root{color-scheme:light}.app-shell{background:#102e23;min-height:100dvh}.app-shell>header,.app-shell .intro,.app-shell footer,.app-shell .step-nav{display:none}.app-shell main{padding:0;max-width:none}.app-shell .workspace{max-width:none;padding:0;margin:0}.app-shell .fridge-column{display:block}.app-shell .journey-back{position:relative;z-index:5;max-width:700px;margin:0 auto;padding:14px 20px;min-height:62px;color:#fff}.app-shell .journey-back button,.app-shell .journey-back p{color:inherit}.app-shell[data-step="1"] .journey-back,.app-shell[data-step="2"] .journey-back{display:none}.app-shell .workspace .scanner{border:0;border-radius:0;background:#102e23;padding:0;box-shadow:none;min-height:100dvh}.app-shell .scanner>.section-top,.app-shell .scanner>p,.app-shell .scanner>.scan-actions{display:none}.app-shell #photo-area{position:fixed;inset:0}.app-shell .preview-wrap{position:absolute;inset:0;width:100%;max-width:none;height:100%;aspect-ratio:auto;margin:0;border-radius:0}.app-shell .preview-wrap #photo-preview{width:100%;height:100%;object-fit:cover}.app-shell #photo-area>.scan-privacy{display:none}.app-shell #remove-photo{display:none}.app-shell #analyze{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(110px + env(safe-area-inset-bottom));width:min(90%,400px);z-index:3}.app-shell #analyze:disabled{display:none}.app-shell #rescan{position:absolute;bottom:calc(46px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(90%,400px);z-index:3}.app-shell #cancel-scan{position:absolute;bottom:calc(50px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:4;background:#102e23;color:#fff;padding:14px 25px;border-radius:24px}.app-shell #scanner[aria-busy=true] #rescan{display:none}.app-shell #scanner>#scan-message:not(:empty){display:block;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(184px + env(safe-area-inset-bottom));width:min(90%,440px);z-index:4;background:#102e23e8;color:#fff}.app-shell .scan-readout{bottom:calc(110px + env(safe-area-inset-bottom))}.app-shell .scan-overlay{background:linear-gradient(0deg,#071d18d9,transparent 45%)}
#camera-dialog{position:fixed;inset:0;z-index:20;max-width:none!important;width:100%;height:100dvh;max-height:none!important;padding:0!important;margin:0;border:0;border-radius:0;background:#102e23;color:white;overflow:hidden}#camera-dialog .camera-view{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0;background:#102e23}#camera-dialog .camera-view:after{content:'';position:absolute;inset:0;background:linear-gradient(#061d1b85,transparent 24%,transparent 52%,#061d1bf5);pointer-events:none}#camera-dialog #camera-video{object-fit:cover;border-radius:0}#camera-dialog .camera-frame{inset:20% 9% 29%;border:none;z-index:1}#camera-dialog>h2{position:absolute;top:calc(22px + env(safe-area-inset-top));left:24px;z-index:2;font-size:32px;margin:0;letter-spacing:-2px}#camera-dialog>h2 span{font-size:12px;vertical-align:top;letter-spacing:0}#camera-dialog #camera-close{position:absolute;top:calc(24px + env(safe-area-inset-top));right:20px;z-index:3;background:#ffffff18;border:1px solid #ffffff30;color:white;border-radius:24px;width:auto;height:auto;font-size:14px;padding:11px 16px}#camera-dialog #camera-message{position:absolute;bottom:calc(170px + env(safe-area-inset-bottom));left:24px;right:24px;text-align:center;font-size:16px;line-height:1.5;z-index:2}#camera-dialog .camera-controls{position:absolute;bottom:calc(63px + env(safe-area-inset-bottom));left:0;right:0;display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:20px;width:min(100%,460px);padding:0 22px;margin:auto;z-index:3}#camera-dialog #capture{grid-column:2;grid-row:1;width:88px;height:88px;border:3px solid #fff;background:#ffffff25;border-radius:50%;padding:6px;margin:0;display:flex;justify-content:center;box-shadow:none;transform:none}#camera-dialog #capture:disabled{opacity:.4}#camera-dialog .shutter-disc{display:block;width:100%;height:100%;border-radius:50%;background:#d8fb80;border:3px solid #102e23}#camera-dialog #camera-import{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:8px;align-items:center;background:transparent;border:0;color:white;font-size:14px;padding:0;margin:0}#camera-import span{font-size:25px}#camera-dialog #manual-entry{grid-column:3;grid-row:1;display:block;text-decoration:none;color:white;background:none;border:0;font-size:14px;padding:15px 0;margin:0}#camera-dialog .camera-privacy{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom));left:20px;right:20px;margin:0;text-align:center;font-size:12px;line-height:1.5;color:#d0dfd5;z-index:2}#camera-dialog #camera-retry{position:absolute;bottom:calc(235px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:220px;z-index:3}
.app-shell[data-step="2"] .workspace .scanner{display:block!important}.app-shell[data-step="2"] #photo-area{filter:brightness(.5)}.app-shell[data-step="2"] #scanner>#scan-message,.app-shell[data-step="2"] #photo-area>button,.app-shell[data-step="2"] .scan-overlay{display:none!important}.app-shell .workspace .pantry{position:fixed;z-index:10;left:0;right:0;bottom:0;max-height:88dvh;overflow:auto;overscroll-behavior:contain;max-width:660px;margin:auto;padding:28px 22px calc(20px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:#f8fbf3;border:0;box-shadow:0 -20px 80px #0004;animation:sheet-rise .3s ease-out}.app-shell .pantry:before{content:'';display:block;width:42px;height:4px;background:#becdb4;border-radius:4px;margin:-14px auto 22px}.app-shell .pantry>.section-top h2{font-size:22px}.app-shell .workspace #review{border:0;margin-bottom:16px;padding:0}.app-shell #review h3{font-size:18px}.app-shell #review-warning{font-size:13px}.app-shell .review-row{background:#fff;border:1px solid #e0e8d8;border-radius:12px;padding:8px;gap:6px}.app-shell .review-row input[type=text]{border:0;background:transparent;padding:8px 2px}.app-shell #confirm-scan{position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 22px #f8fbf3}.app-shell .pantry>p,.app-shell .small-label{font-size:13px}.app-shell .ideas{max-width:700px;margin:auto;background:#f8fbf3;min-height:calc(100dvh - 62px);border-radius:28px 28px 0 0;padding:26px 20px 40px}.app-shell .ideas .section-top>.number{display:none}.app-shell .ideas .card{margin-bottom:16px}.app-shell #recipe-dialog{max-height:94dvh;max-width:660px;width:100%;border-radius:25px 25px 0 0;margin:auto auto 0;padding-bottom:calc(25px + env(safe-area-inset-bottom))}.app-shell #recipe-dialog::backdrop{background:#041c16a8}@keyframes sheet-rise{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:800px){#camera-dialog .camera-view{width:min(100%,calc(100dvh * 9 / 16));left:50%;transform:translateX(-50%)}#camera-dialog{background:#071b15}.app-shell .preview-wrap{width:min(100%,calc(100dvh * 9 / 16));left:50%;transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.app-shell .workspace .pantry{animation:none}}
.app-shell .pantry:has(#review[hidden]) #confirm-scan{display:none}.app-shell .pantry:has(#review:not([hidden])) #find,.app-shell .pantry:has(#review:not([hidden])) #suggestions,.app-shell .pantry:has(#review:not([hidden])) .small-label,.app-shell .pantry:has(#review:not([hidden])) #clear{display:none}.app-shell .pantry:has(#review:not([hidden]))>.section-top{display:none}
#sheet-camera{display:block;margin:0 0 15px;color:#15583d;font-size:14px}

/* Camera-first capture: one clear action, a larger framing area, and room for the bottom navigation. */
#camera-dialog .camera-view:after{background:linear-gradient(#061d1b85,transparent 20%,transparent 65%,#061d1bf2)}
#camera-dialog .camera-frame{inset:15% 6% 22%}
#camera-dialog .camera-frame .scan-corner{width:58px;height:58px;border-width:4px}
#camera-dialog .camera-controls{bottom:calc(116px + env(safe-area-inset-bottom));display:flex;justify-content:center;width:100%;padding:0}
#camera-dialog:not(.camera-ready) .camera-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;padding:0}
#camera-dialog:not(.camera-ready) #camera-import,#camera-dialog:not(.camera-ready) #manual-entry{display:flex!important;position:static;grid-row:auto;grid-column:auto;width:100%;min-height:48px;justify-content:center;align-items:center;gap:8px}
#camera-dialog.camera-ready #camera-import,#camera-dialog.camera-ready #manual-entry{display:none!important}
#camera-dialog #capture{width:92px;height:92px}
#camera-dialog #camera-message{bottom:calc(226px + env(safe-area-inset-bottom))}
#camera-dialog .camera-privacy{bottom:calc(94px + env(safe-area-inset-bottom));font-size:11px}
.recipe-group{margin:24px 0 12px;padding:14px 16px;border-radius:14px;background:#eaf5df;color:#214d34}
.recipe-group.has-missing{background:#fff3dc;color:#765020}
.recipe-group h3{margin:0 0 4px;font-size:18px}.recipe-group p{margin:0;font-size:13px;line-height:1.45}
.scan-overlay .scan-corner,.camera-target .scan-corner{z-index:10;display:block!important;box-sizing:border-box}
.scan-overlay .tl{top:18px!important;left:18px!important;border:4px solid #d8fb80!important;border-right:0!important;border-bottom:0!important}
.scan-overlay .tr{top:18px!important;right:18px!important;border:4px solid #d8fb80!important;border-left:0!important;border-bottom:0!important}
.scan-overlay .bl{bottom:18px!important;left:18px!important;border:4px solid #d8fb80!important;border-right:0!important;border-top:0!important}
.scan-overlay .br{bottom:18px!important;right:18px!important;border:4px solid #d8fb80!important;border-left:0!important;border-top:0!important}
.camera-target .bl,.camera-target .br{bottom:0!important}
/* Dedicated lower corners for the photo-analysis overlay. Pseudo-elements keep them visible above the scan readout and image layers. */
.scan-overlay .bl,.scan-overlay .br{display:none!important}
.scan-overlay::before,.scan-overlay::after{content:'';position:absolute;bottom:18px;width:42px;height:42px;z-index:30;box-sizing:border-box;filter:drop-shadow(0 0 6px #a2f87d80);pointer-events:none}
.scan-overlay::before{left:18px;border-left:4px solid #d8fb80;border-bottom:4px solid #d8fb80;border-bottom-left-radius:4px}
.scan-overlay::after{right:18px;border-right:4px solid #d8fb80;border-bottom:4px solid #d8fb80;border-bottom-right-radius:4px}
@media(max-width:760px){
  .scan-overlay::before,.scan-overlay::after{bottom:calc(190px + env(safe-area-inset-bottom))}
}
