body #modal:has(.scan-hub){background:#FFF5E6;color:#20201E;border-color:#20201E;z-index:100}
body #modal:has(.scan-hub) .modal-top,
body #modal:has(.scan-hub) .modal-top button,
body #modal:has(.scan-review) .modal-top,
body #modal:has(.scan-review) .modal-top button{color:#20201E;border-color:#20201E30}
body #modal .scan-hub{color:#20201E}
.scan-eyebrow{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
body #modal .scan-hub h2{font-family:'Goodnuff Display',Arial,sans-serif;color:#20201E;font-size:clamp(34px,8vw,46px);font-weight:900;line-height:.99;letter-spacing:-1.8px;margin:13px 0 24px}
.scan-modes{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:7px max(12px,calc((100% - 118px)/2));margin:0 -16px;touch-action:pan-x pan-y}
.scan-modes::-webkit-scrollbar{display:none}
body #modal .scan-modes button{flex:0 0 108px;min-height:79px;padding:12px 6px;border:1px solid #20201E35;border-radius:19px;background:transparent;color:#20201E;font-size:13px;font-weight:700;line-height:1.2;scroll-snap-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
body #modal .scan-modes button svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body #modal .scan-modes button[aria-pressed=true]{background:#FF5C28;color:var(--paper);border-color:#FF5C28;box-shadow:0 2px 0 #20201E}
.food-usuals{margin:22px 0 12px;border-top:1px solid #20201E25;padding-top:16px}
.food-usuals-head{display:flex;gap:8px;align-items:baseline;justify-content:space-between;margin-bottom:7px}.food-usuals h3{font:900 23px/1.1 'Goodnuff Display',Arial,sans-serif;margin:0}.food-usuals-head>span{font-size:11px}
.food-usual-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #20201E20;padding:5px 0}.food-usual-name{flex:1;min-width:0;background:transparent;color:#20201E;text-align:left;min-height:48px;padding:5px 0}.food-usual-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.food-usual-name small{display:block;font-size:12px;margin-top:4px}
body .food-usual-log,body #modal .food-usual-log{min-width:60px;min-height:44px;border-radius:14px;background:#FF5C28;color:var(--paper);font-weight:800;padding:10px 13px}
.food-quick-undo{display:flex;align-items:center;justify-content:space-between;font-size:13px;min-height:44px}.food-quick-undo button{background:transparent;color:#20201E;text-decoration:underline;min-height:44px;font-weight:700}
body #modal .food-save-usual{min-height:44px;min-width:44px;padding:6px;background:transparent;color:#20201E;font-size:11px;border-radius:10px}.food-save-usual[aria-pressed=true]{text-decoration:underline}
@media(prefers-reduced-motion:reduce){.scan-modes{scroll-behavior:auto}.scan-modes button{transition:none}}
.scan-purpose{font-size:14px;line-height:1.5;margin:15px 0}
.scan-empty{min-height:126px;border:1px dashed #20201E55;border-radius:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:16px 0;background:#20201E04}
.scan-empty span{font-family:'Goodnuff Display',Arial,sans-serif;font-weight:900;font-size:23px;letter-spacing:-.8px}
.scan-empty p{font-size:12px;margin:6px 0}
.scan-preview{margin:16px 0;border:1px solid #20201E25;border-radius:18px;padding:10px}
.scan-photo{display:block;width:100%;max-height:300px;object-fit:contain;border-radius:10px;background:#20201E09}
.scan-filename{font-size:12px;overflow-wrap:anywhere;margin:9px 0 0;line-height:1.4}
body #modal .scan-clear{display:block;min-height:44px;padding:9px 0 0;background:transparent;color:#20201E;text-decoration:underline;font-size:13px}
.scan-capture-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;margin-top:12px}
body #modal .scan-capture-actions label{position:relative;display:flex;justify-content:center;align-items:center;min-height:50px;padding:12px 9px;margin:0;border:1px solid #20201E;border-radius:12px;color:#20201E;font-size:14px;font-weight:700;text-align:center;cursor:pointer;overflow:hidden}
body #modal .scan-capture-actions .scan-camera-button{background:#FF5C28;border-color:#FF5C28;color:var(--paper)}
body #modal .scan-library-button{background:transparent}
body #modal .scan-capture-actions input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;margin:0}
.scan-capture-actions label:focus-within{outline:3px solid #20201E;outline-offset:3px}
.scan-error{font-size:13px;font-weight:700;line-height:1.5;margin:10px 0}
.scan-error:empty{display:none}
.scan-status{margin:18px 0;padding:14px 0;border-top:1px solid #20201E22;border-bottom:1px solid #20201E22;font-size:13px;line-height:1.5}
.scan-status strong{font-weight:700}
.scan-status p{margin:5px 0 0}
body #modal .scan-manual h3{color:#20201E;font-size:17px;margin:18px 0 9px;letter-spacing:-.4px}
body #modal .scan-manual button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:12px 0;background:transparent;color:#20201E;border-bottom:1px solid #20201E20;border-radius:0;text-align:left;font-size:15px;font-weight:700}
.scan-manual button span{display:flex;margin-left:10px}.scan-manual button svg{width:19px;height:19px}
.scan-session{font-size:11px;line-height:1.6;margin:20px 0 2px}
body #modal .scan-hub button:focus-visible{outline:3px solid #20201E;outline-offset:2px}
.scan-reference{margin:20px 0 0;border-top:1px solid currentColor;padding-top:12px;font-size:13px;line-height:1.5}
.scan-reference summary{min-height:44px;cursor:pointer;font-weight:700;padding:10px 0}
.scan-reference .scan-photo{max-height:340px;margin-top:6px}
.scan-reference p{font-size:12px;line-height:1.5}
.scan-small,.scan-work-status,.scan-reader-options p,.scan-suggestions p{font-size:12px;line-height:1.55}
.scan-work-status{min-height:20px;margin:12px 0}.scan-analyze{margin-top:14px;min-height:52px!important}
.scan-task-choices{display:flex;gap:8px;margin-top:17px}.scan-task-choices button{flex:1;background:transparent!important;color:#20201E!important;min-height:44px;border:1px solid #20201E35;border-radius:12px!important;font-size:13px!important}.scan-task-choices button[aria-pressed=true]{background:#20201E!important;color:#FFF5E6!important}
.scan-reader-options{border-top:1px solid #20201E20;margin:14px 0;padding-top:4px}.scan-reader-options summary,.scan-read-result summary{min-height:44px;padding:13px 0;cursor:pointer;font-size:13px;font-weight:700}
body #modal .scan-hub input,body #modal .scan-hub select,body #modal .scan-hub textarea,body #modal .scan-review input,body #modal .scan-review select,body #modal .scan-review textarea{font-family:inherit;font-size:16px;color:#20201E;background:#FFF5E6;border:1px solid #20201E55;border-radius:12px;padding:12px;width:100%;min-height:46px;box-sizing:border-box}
body #modal .scan-review input[type=checkbox],body #modal .scan-hub input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:0 0 20px;accent-color:#20201E;padding:0;border-radius:5px}
body #modal .scan-hub input[type=file]{opacity:0;min-height:0}
.scan-text-label,.scan-review label,.scan-reader-options label{display:block;font-size:13px;line-height:1.4;margin:12px 0 7px}.scan-text-label textarea{margin-top:7px;resize:vertical;min-height:100px}
body #modal .scan-secondary{background:transparent;border:1px solid #20201E50;color:#20201E;min-height:48px;font-weight:800;font-size:15px;padding:12px;border-radius:14px;margin:8px 0}
body #modal .scan-text-button{background:transparent;color:#20201E;min-height:44px;text-decoration:underline;font-size:13px;padding:10px 0;display:block;text-align:left}
.scan-voice-stage{text-align:center;border:1px solid #20201E25;border-radius:22px;padding:22px 16px 16px;margin:16px 0}.scan-voice-stage>svg{width:44px;height:44px;fill:none;stroke:#20201E;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.scan-voice-stage p{font-size:18px;line-height:1.4;font-weight:600}.scan-voice-stage [hidden],.scan-hub [hidden]{display:none!important}
.scan-read-result{margin:18px 0}.scan-suggestions h3{font:900 26px/1.1 'Goodnuff Display',Arial,sans-serif}.scan-suggestions>button{display:flex!important;justify-content:space-between;align-items:center;width:100%;min-height:50px;background:transparent!important;color:#20201E!important;border-bottom:1px solid #20201E25!important;border-radius:0!important;text-align:left;padding:12px 0!important}.scan-suggestions>button svg{width:20px;height:20px}
body #modal:has(.scan-review){background:#FFF5E6;color:#20201E}.scan-review h2{font:900 clamp(30px,8vw,42px)/1 'Goodnuff Display',Arial,sans-serif;letter-spacing:-1.4px;color:#20201E;margin:14px 0 16px}.scan-review>p{font-size:14px;line-height:1.55}.scan-review form>label{margin:16px 0 8px}.scan-review form>button.primary{min-height:52px;margin-top:14px}
.scan-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scan-fields label{min-width:0}.scan-review label>input,.scan-review label>select{margin-top:6px}.scan-label-nutrients{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.scan-food-row,.scan-buy-row{border:1px solid #20201E30;border-radius:17px;padding:10px 13px 14px;margin:20px 0;min-width:0}.scan-food-row legend,.scan-buy-row legend{max-width:100%;padding:0 6px;font-size:15px;font-weight:700}.scan-food-row legend label,.scan-buy-row legend label{display:flex;gap:7px;align-items:center;overflow-wrap:anywhere;font-size:15px}
.scan-match-query{display:flex;gap:8px}.scan-match-query>input{min-width:0}.scan-match-query>button{flex:none;background:transparent!important;color:#20201E!important;border:1px solid #20201E30!important;min-width:60px;min-height:44px;border-radius:12px!important;font-size:12px!important}
body #modal .scan-confirm,.scan-destinations label{display:flex;gap:10px;align-items:center;min-height:48px;line-height:1.5;font-size:13px}.scan-confirm input{margin:0!important}.scan-destinations{border-bottom:1px solid #20201E25;padding-bottom:5px}.scan-destinations label{font-size:15px;font-weight:700}
.scan-kitchen{margin-top:28px;border-top:1px solid #20201E30;padding-top:20px}.scan-kitchen>p{font-size:13px;line-height:1.5}.scan-kitchen>button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;text-align:left;padding:12px 0;background:transparent;color:#20201E;border-bottom:1px solid #20201E25}.scan-kitchen b,.scan-kitchen small{display:block}.scan-kitchen small{font-size:12px;margin-top:4px}.scan-kitchen svg{width:20px;height:20px}
@media(max-width:350px){.scan-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-capture-actions{grid-template-columns:1fr}}
.scan-barcode-tools{padding:16px;border:1px solid #20201E30;border-radius:18px;margin:16px 0}
.scan-viewfinder{position:relative;aspect-ratio:4/3;background:#20201E;border-radius:12px;overflow:hidden}
.scan-viewfinder[hidden],.scan-live-actions [hidden]{display:none!important}
.scan-viewfinder video{display:block;width:100%;height:100%;object-fit:cover}
.scan-target{position:absolute;left:8%;right:8%;top:30%;bottom:30%;border:3px solid #FF5C28;border-radius:8px;pointer-events:none}
#scan-camera-status{font-size:14px;line-height:1.5;margin:12px 0}
.scan-live-actions{display:flex;flex-wrap:wrap;gap:8px}
body #modal .scan-live-actions button,body #modal .scan-read-photo{min-height:48px;padding:12px 15px;border-radius:12px;border:1px solid #20201E;color:#20201E;background:transparent;font-size:15px;font-weight:700}
body #modal .scan-live-actions .scan-start{background:#FF5C28;border-color:#FF5C28;flex:1;color:var(--paper)}
body #modal .scan-live-actions button:disabled,body #modal .scan-read-photo:disabled{opacity:.6}
body #modal .scan-read-photo{width:100%;margin-top:10px;background:#20201E;color:#FFF5E6}
.scan-databases{margin-top:20px;border-top:1px solid #20201E30;font-size:13px;line-height:1.5}
.scan-databases summary{min-height:48px;padding:14px 0;cursor:pointer;font-weight:700}
.scan-databases p{margin:4px 0 16px}
.live-ingredients{margin:18px 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.live-ingredients summary{padding:12px 0;min-height:44px;cursor:pointer;font-weight:700}

/* Suggested servings: one deliberate save, adjustments close at hand. */
body #modal .scan-quick-review .scan-food-row{padding:20px 16px;margin:18px 0;border:1px solid #20201E;border-radius:20px;min-width:0}
.scan-food-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
body #modal .scan-food-heading h3{font:900 clamp(23px,6vw,30px)/1.1 'Goodnuff Display',Arial,sans-serif;letter-spacing:-.7px;margin:0;color:#20201E;overflow-wrap:anywhere}
body #modal .scan-food-remove{min-width:44px;min-height:44px;font-size:28px;background:transparent;color:#20201E;border:1px solid #20201E;border-radius:50%;padding:0;flex:none}
body #modal .scan-serving{font-size:16px;line-height:1.45;margin:8px 0 18px;color:#20201E}
body #modal .scan-quantity{display:grid;grid-template-columns:52px minmax(80px,1fr) 52px;gap:12px;align-items:center;max-width:310px;margin:0 auto}
body #modal .scan-quantity button{min-width:52px;min-height:52px;padding:0;font-size:30px;background:#FFF5E6;color:#20201E;border:2px solid #20201E;border-radius:50%;line-height:1}
body #modal .scan-quantity label{display:flex;flex-direction:column;align-items:center;font-size:13px;gap:3px;margin:0}
body #modal .scan-quantity input{width:100%;min-height:54px;margin:0;text-align:center;font:900 30px/1 'Goodnuff Display',Arial,sans-serif;border:1px solid #20201E;border-radius:12px;padding:5px;background:#FFF5E6;color:#20201E;appearance:textfield}
.scan-quantity input::-webkit-inner-spin-button,.scan-quantity input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
body #modal .scan-quick-total{text-align:center;font-size:22px;font-weight:800;line-height:1.3;margin:14px 0}
.scan-food-change{border-top:1px solid #20201E30}.scan-food-change summary{min-height:48px;padding:15px 0;cursor:pointer;font-size:16px;font-weight:700}
body #modal .scan-food-change .scan-match-query label{min-width:0;margin:0}.scan-food-removed{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 0}
body #modal .scan-food-removed button{background:transparent;color:#20201E;text-decoration:underline;min-height:44px;padding:8px}
body #modal .scan-quick-review button:focus-visible,.scan-logged button:focus-visible{outline:3px solid #20201E;outline-offset:3px}
.scan-logged{padding:18px;border:2px solid #20201E;border-radius:20px;background:#FFF5E6;color:#20201E;margin:0 0 20px}.scan-logged>div{display:flex;justify-content:space-between;align-items:center;font-size:22px}.scan-logged button{background:transparent;color:#20201E;min-height:44px;padding:8px;font-size:16px;font-weight:700}.scan-logged>div button{text-decoration:underline}.scan-logged-entry{display:block;width:100%;text-align:left;border-top:1px solid #20201E30}.scan-logged-entry span,.scan-logged-entry small{display:block}.scan-logged-entry span{font-size:20px}.scan-logged-entry small{font-size:15px;margin-top:5px}

/* Voice: one word, a reactive shape, and an occasional gentle roast. */
body #modal .scan-hub:has(.scan-voice-stage)>.scan-eyebrow,body #modal .scan-hub:has(.scan-voice-stage)>.scan-purpose{display:none}
body #modal .scan-hub:has(.scan-voice-stage)>#scan-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body #modal .scan-hub:has(.scan-voice-stage) .scan-modes{margin-top:2px;margin-bottom:0}
body #modal .scan-hub:has(.scan-voice-stage) .scan-modes button{min-height:56px;padding:8px 6px;gap:5px}
body #modal .scan-hub:has(.scan-voice-stage) .scan-modes button svg{width:22px;height:22px}
body #modal .scan-voice-stage{--voice-level:0;text-align:center;border:0;border-radius:0;padding:34px 12px 12px;margin:0;min-height:335px}
.scan-voice-visual{position:relative;isolation:isolate;display:grid;place-items:center;width:190px;height:190px;margin:0 auto 18px}
.scan-voice-orb{position:relative;display:grid;place-items:center;width:190px;height:190px;transition:transform .12s ease-out;transform:scale(calc(.98 + var(--voice-level)*.08))}
.scan-voice-ribbon{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.scan-voice-ribbon-flow{transform-origin:100px 100px;animation:voice-ribbon-drift 7s ease-in-out infinite}
.voice-ribbon-body{fill:none;stroke:#FF5C28;stroke-width:29;stroke-linecap:round;stroke-linejoin:round}
.voice-ribbon-highlight{fill:none;stroke:#FFF5E6;stroke-width:3;stroke-linecap:round}
.scan-voice-mic,.scan-voice-wave{position:relative;z-index:1}
.scan-voice-halo{position:absolute;inset:5px;border:1.5px solid #20201E;border-radius:50%;opacity:.25;transition:opacity .2s}
.scan-voice-satellite{position:absolute;inset:5px;border-radius:50%;opacity:0;transition:opacity .2s;pointer-events:none}
.scan-voice-satellite:before{content:'';position:absolute;top:-5px;left:calc(50% - 5px);width:10px;height:10px;background:#20201E;border:2px solid #FFF5E6;border-radius:50%}
.scan-voice-mic svg{display:block;width:42px;height:42px;fill:none;stroke:#20201E;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body #modal .scan-voice-hit{position:absolute;inset:0;width:190px;min-height:190px;padding:0;border:0;border-radius:50%;background:transparent;color:#20201E;cursor:pointer;box-shadow:none;z-index:2;touch-action:manipulation}
body #modal .scan-voice-hit:hover{background:transparent;filter:none}body #modal .scan-voice-hit:disabled{opacity:1;cursor:wait}body #modal .scan-voice-hit:focus-visible{outline:3px solid #20201E;outline-offset:6px}
.scan-voice-wave{display:none;align-items:center;justify-content:center;gap:6px;height:70px}
.scan-voice-wave i{display:block;width:7px;border-radius:10px;background:#20201E;height:calc(9px + var(--voice-level)*22px);transition:height .1s ease-out}
.scan-voice-wave i:nth-child(2),.scan-voice-wave i:nth-child(4){height:calc(14px + var(--voice-level)*38px)}.scan-voice-wave i:nth-child(3){height:calc(20px + var(--voice-level)*50px)}
.scan-voice-stop-mark{display:none;position:absolute;bottom:15px;left:calc(50% - 5px);width:10px;height:10px;border-radius:2px;background:#20201E}
.scan-voice-stage[data-stage=loading] .scan-voice-satellite,.scan-voice-stage[data-stage=processing] .scan-voice-satellite{opacity:1;animation:voice-orbit 1.8s linear infinite}
.scan-voice-stage[data-stage=loading] .scan-voice-orb{transform:scale(.8)}
.scan-voice-stage[data-stage=loading] .scan-voice-mic,.scan-voice-stage[data-stage=processing] .scan-voice-mic{opacity:0}
.scan-voice-stage[data-stage=listening] .scan-voice-wave{display:flex}.scan-voice-stage[data-stage=listening] .scan-voice-mic{display:none}
.scan-voice-stage[data-stage=listening] .scan-voice-halo{opacity:.65;transform:scale(calc(.97 + var(--voice-level)*.08));transition:transform .12s ease-out}
.scan-voice-stage[data-stage=processing] .scan-voice-ribbon-flow{animation:voice-ribbon-spin 3s linear infinite}
.scan-voice-stage[data-stage=loading] .scan-voice-ribbon-flow{animation:voice-ribbon-spin 5s linear infinite}
.scan-voice-stage[data-stage=processing] .scan-voice-halo{border-style:dashed;opacity:.55;animation:voice-orbit 9s linear infinite reverse}
body #modal .scan-voice-stage h3{font:900 23px/1.1 'Goodnuff Display',Arial,sans-serif;letter-spacing:-.5px;margin:0;color:#20201E}
body #modal .scan-voice-stage #scan-voice-joke{font:900 clamp(22px,6vw,29px)/1.2 'Goodnuff Display',Arial,sans-serif;letter-spacing:-.6px;max-width:300px;margin:20px auto 0;text-wrap:balance;color:#20201E}
.scan-voice-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:-1px}
.scan-hub:has(.scan-voice-stage[data-stage=error]) .scan-voice-status{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;text-align:center;font-size:15px;line-height:1.5;margin:12px 0}
.scan-voice-options{border-top:1px solid #20201E25;margin-top:15px}.scan-voice-options>summary{list-style:none;min-height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;font-weight:700}.scan-voice-options>summary::-webkit-details-marker{display:none}.scan-voice-options>summary:after{content:'+';margin-left:8px;font-size:20px}.scan-voice-options[open]>summary:after{content:'−'}
@keyframes voice-shape{0%,100%{border-radius:46% 54% 55% 45%/55% 43% 57% 45%}50%{border-radius:57% 43% 42% 58%/44% 56% 44% 56%}}
@keyframes voice-orbit{to{transform:rotate(360deg)}}
@keyframes voice-ribbon-drift{0%,100%{transform:rotate(-14deg) scale(1,.94)}50%{transform:rotate(14deg) scale(.94,1.03)}}
@keyframes voice-ribbon-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes voice-think{0%,100%{border-radius:46% 54% 55% 45%/55% 43% 57% 45%;transform:rotate(-12deg) scale(.9)}50%{border-radius:57% 43% 42% 58%/44% 56% 44% 56%;transform:rotate(12deg) scale(1.04)}}
@media(max-width:360px){body #modal .scan-voice-stage{padding-top:24px;min-height:315px}}
@media(prefers-reduced-motion:reduce){.scan-voice-orb,.scan-voice-halo,.scan-voice-satellite,.scan-voice-stage[data-stage=loading] .scan-voice-orb,.scan-voice-stage[data-stage=processing] .scan-voice-orb,.scan-voice-stage[data-stage=processing] .scan-voice-halo,.scan-voice-stage[data-stage=loading] .scan-voice-satellite,.scan-voice-stage[data-stage=processing] .scan-voice-satellite{animation:none!important;transition:none!important;will-change:auto}.scan-voice-wave i{transition:none}}
@media(prefers-reduced-motion:reduce){.scan-voice-ribbon-flow{animation:none!important}}
.scan-crop-sheet h2{margin:0 0 12px}.scan-crop-sheet>p{font-size:17px;line-height:1.4}
.scan-crop-stage{position:relative;width:calc(100% - 52px);margin:30px 26px;isolation:isolate}
.scan-crop-stage>img{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none}
.scan-crop-stage>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#scan-crop-shade{fill:#20201E88}#scan-crop-outline{fill:none;stroke:#FF5C28;stroke-width:3;vector-effect:non-scaling-stroke;paint-order:stroke;filter:drop-shadow(0 0 1px #FFF5E6)}
body #modal .scan-crop-corner{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;min-height:48px;padding:10px;border:0;border-radius:50%;background:transparent;box-shadow:none;touch-action:none;cursor:grab;z-index:2}
body #modal .scan-crop-corner>span{display:block;width:28px;height:28px;border-radius:50%;background:#FFF5E6;border:4px solid #FF5C28;box-shadow:0 0 0 2px #20201E}
body #modal .scan-crop-corner:active{cursor:grabbing}body #modal .scan-crop-corner:focus-visible{outline:3px solid #20201E;outline-offset:2px}body #modal .scan-crop-corner:disabled{opacity:.55;cursor:wait}
.scan-crop-actions{position:sticky;bottom:-1px;background:#FFF5E6;padding:12px 0 0;z-index:3;display:grid;gap:10px;border-top:1px solid #20201E25}
#scan-crop-status{min-height:24px;font-size:15px}
