.tray-check-layout{grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr)}
.tray-check-layout h1{font-size:clamp(44px,4.5vw,66px)}
.foundation-note{font-size:11px;line-height:1.7;color:var(--muted);max-width:370px;margin-bottom:12px}
.tray-check-layout .intro>.text-button{display:inline-block;font-size:11px}
.tray-illustration{width:70%;max-width:300px;stroke:#767f66;stroke-width:2;margin:12px 0 6px}
.check-status{font-size:12px;line-height:1.6;margin-top:18px;min-height:20px;color:#59604f}
.check-results{border-top:1px solid var(--line);margin-top:18px;padding-top:19px;scroll-margin-top:18px}
.check-results:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.check-results[data-error=true]{border-top-color:#d0473e}
.check-result-heading h2{font-size:32px;margin:7px 0 9px}
.check-result-heading>p:last-child{font-size:11px;line-height:1.6;color:var(--muted)}
.presence-legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:17px;font-size:10px;color:#59604f}
.presence-legend span{display:flex;align-items:center;gap:5px}.presence-legend i{width:8px;height:8px;border-radius:50%}
.presence-legend .present{background:#2f8755}.presence-legend .empty{background:#d0473e}.presence-legend .uncertain{background:#bd8220}
#tray-guides .presence-slot{stroke-width:1.5;vector-effect:non-scaling-stroke}
#tray-guides .presence-slot[data-state=present]{stroke:#55cc82;fill:#2f875512}
#tray-guides .presence-slot[data-state=empty]{stroke:#ff6b63;fill:#d0473e30}
#tray-guides .presence-slot[data-state=uncertain]{stroke:#ffcc63;fill:#bd822030;stroke-dasharray:4 3}
#tray-guides .tray-perimeter{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
#tray-guides .tray-label{font-family:Arial,Helvetica,sans-serif;font-weight:700;fill:white;stroke:#20231e;stroke-width:3;paint-order:stroke;stroke-linejoin:round}
#tray-guides .slot-label{font-family:Arial,Helvetica,sans-serif;font-weight:700;fill:white;stroke:#20231e;stroke-width:2;paint-order:stroke;stroke-linejoin:round}
.slot-list{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.slot-list li{border:1px solid var(--line);border-radius:5px;padding:9px;font-size:10px;line-height:1.5}
.slot-list strong{display:block;margin-bottom:5px}.slot-list span{color:var(--muted);display:block}.slot-list [data-state=empty]{border-left:3px solid #d0473e}.slot-list [data-state=present]{border-left:3px solid #2f8755}.slot-list [data-state=uncertain]{border-left:3px solid #bd8220}
#camera-video{pointer-events:none}
.capture-framing-guide{--framing-color:#fff;position:absolute;z-index:3;inset:0;display:block;pointer-events:none}
.capture-framing-guide[hidden]{display:none}
.capture-framing-guide svg{position:absolute;display:block;left:50%;top:48%;width:104%;height:calc(100% - 94px);min-height:0;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 3px #000b)}
.capture-framing-guide rect{fill:none;stroke:var(--framing-color);vector-effect:non-scaling-stroke;transition:stroke .08s ease}
.capture-framing-guide .framing-boundary{stroke-width:2.5}
.capture-framing-guide .framing-tray{stroke-width:1.4;stroke-opacity:.85}
.capture-framing-guide .framing-cell{stroke-width:.8;stroke-opacity:.55}
.capture-framing-guide[data-state=ready]{--framing-color:#84e6ac}
@media(prefers-reduced-motion:reduce){.capture-framing-guide rect{transition:none}}
.capture-framing-guide p{position:absolute;inset:8px 6% auto;margin:0;padding:5px 8px;border-radius:5px;background:#171b16ce;color:white;text-align:center;font-size:10px;line-height:1.4}
.camera-framing-note{display:block;margin-top:2px;font-size:9px;line-height:1.3;color:#ffffffc2}
.camera-shutter-actions{position:absolute;z-index:5;inset:auto 10px 10px;display:flex;gap:9px;justify-content:center;pointer-events:auto}
.camera-shutter-actions .button{position:relative;pointer-events:auto;touch-action:manipulation}
.camera-shutter-actions .button{min-height:48px;box-shadow:0 2px 12px #0004}.camera-shutter-actions .button-primary{flex:1}.camera-shutter-actions .button-secondary{background:#fffefaed;color:var(--ink);border-color:#fffefa}
.camera-light-status{margin-top:10px;font-size:10px;line-height:1.5;color:var(--muted)}
.camera-capture-status{position:absolute;z-index:4;inset:10px 10px auto;padding:9px 11px;border-radius:6px;background:#171b16df;color:#fff;font-size:11px;line-height:1.5;pointer-events:none}
.scan-loading{position:absolute;z-index:6;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:24px;background:#18201bd9;color:#fff;text-align:center;pointer-events:none}
.scan-loading[hidden]{display:none}.scan-loading strong{font-size:14px;line-height:1.5;max-width:280px}.scan-loading small{font-size:11px;color:#ffffffbd}
.scan-spinner{display:block;flex:0 0 auto;width:42px;height:42px;border:0;border-radius:50%;background:conic-gradient(#fd6342 0deg 72deg,#fda61b 72deg 144deg,#0377d8 144deg 216deg,#b779b1 216deg 288deg,#fc2753 288deg 360deg);mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));animation:scan-spin 1.2s linear infinite}
@keyframes scan-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.scan-spinner{animation:none}}
.frame-check-panel{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.frame-check-panel .panel-heading{margin-bottom:12px}.frame-read-actions{display:flex;gap:9px;flex-wrap:wrap}.frame-read-actions .button{flex:1}
.frame-read-results{margin-top:18px;scroll-margin-top:18px}.frame-read-results[data-error=true]{padding:14px;border:1px solid #d0473e;border-radius:6px}
.frame-read-results:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.frame-read-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.frame-read-counts>div{background:var(--soft);border-radius:5px;padding:11px}.frame-read-counts strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:400}.frame-read-counts span{display:block;font-size:9px;color:var(--muted);margin-top:5px}
.frame-read-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.assortment-results{border:1px solid var(--line);background:#f5f6ef;border-radius:7px;padding:15px;margin:18px 0 22px}.assortment-results h3{font-family:Georgia,'Times New Roman',serif;font-size:26px;font-weight:400;margin:6px 0 9px}.assortment-results[data-valid=false]{background:#fbf5ea;border-color:#d5b98c}.assortment-assumptions,.assortment-possible-note{font-size:10px;line-height:1.6;color:var(--muted);margin:9px 0 13px}.assortment-models{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.assortment-models>article{padding:9px;border:1px solid var(--line);border-radius:4px;background:#fff9;min-width:0}.assortment-models strong{display:block;font-size:12px}.assortment-models p{font-size:10px;line-height:1.5;margin:5px 0 0;color:var(--muted)}.assortment-missing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assortment-product{padding:10px;border-radius:5px;background:#fff;border:1px solid var(--line);min-width:0}.assortment-product img{width:100%;aspect-ratio:2.1;object-fit:contain;display:block;margin-bottom:8px}.assortment-product strong{font-size:11px;display:block}.assortment-product p{font-size:10px;line-height:1.5;color:var(--muted);margin:5px 0}.assortment-product small{font-size:9px;font-family:Consolas,monospace;overflow-wrap:anywhere}.assortment-product .assortment-product-source{color:#596d4d;font-size:9px}.assortment-possible{border-top:1px solid var(--line);padding-top:8px;margin-top:13px}.assortment-possible summary{font-size:11px;line-height:1.5;cursor:pointer;min-height:38px;display:flex;align-items:center}.frame-read-value.inferred{color:#596d4d}.frame-read-provenance.inferred{padding:6px 8px;border-radius:4px;background:#eef2e8;color:#526447}
.frame-read-card{border:1px solid var(--line);border-radius:7px;padding:13px;min-width:0}.frame-read-card h3{font-size:12px;margin:0 0 10px}.frame-read-card img{display:block;width:100%;aspect-ratio:2.5;object-fit:contain;background:var(--soft);border-radius:4px;margin-bottom:10px}
.frame-read-value{font-size:12px;line-height:1.5;margin:5px 0;font-weight:700}.frame-read-value.incomplete{color:#906026}.frame-read-provenance,.frame-read-reason{font-size:10px;color:var(--muted);line-height:1.6;margin-top:7px}.frame-read-sku{font-family:Consolas,monospace;font-size:10px;margin-top:9px;color:#486042}
.frame-read-card details{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}.frame-read-card summary{font-size:9px;min-height:40px;display:flex;align-items:center;cursor:pointer;color:var(--muted)}.frame-read-card details p{font-size:10px;line-height:1.6;overflow-wrap:anywhere}.frame-read-card details p+p{margin-top:7px}
@media(max-width:830px){.tray-check-layout{grid-template-columns:1fr}.tray-check-layout h1{font-size:52px}.foundation-note{max-width:none;margin-top:16px}}
@media(max-width:480px){.tray-check-layout h1{font-size:clamp(37px,10.7vw,45px)}.foundation-note,.tray-check-layout .intro>.text-button{font-size:10px}.check-status{font-size:11px}.check-result-heading h2{font-size:27px}.presence-legend{gap:10px;font-size:9px}.slot-list{gap:6px}.slot-list li{font-size:9px;padding:7px}.check-result-heading>p:last-child{font-size:10px}}
@media(max-width:480px){.frame-read-counts{gap:6px}.frame-read-counts>div{padding:8px}.frame-read-counts strong{font-size:20px}.frame-read-counts span{font-size:8px}.frame-read-rows{gap:8px}.frame-read-card{padding:9px}.frame-read-card h3{font-size:11px}.frame-read-value{font-size:10px}.frame-read-provenance,.frame-read-reason{font-size:9px}.frame-read-actions .button{font-size:11px}}
@media(max-width:480px){.camera-shutter-actions{inset:auto 7px 7px;gap:7px}.camera-shutter-actions .button{font-size:12px;padding:11px 13px}}
@media(max-width:480px){.assortment-results{padding:11px}.assortment-results h3{font-size:23px}.assortment-models,.assortment-missing{gap:6px}.assortment-product{padding:8px}.assortment-product strong{font-size:10px}.assortment-product p,.assortment-models p{font-size:9px}}

/* Tray check starts directly with the camera workspace. */
.tray-check-layout.workspace-layout .workspace-title{font-size:29px}
@media(max-width:480px){.tray-check-layout.workspace-layout .workspace-title{font-size:25px}}

.button-scan{background:#fd6342;color:#231a15;border:1px solid #fd6342;font-weight:700;min-width:140px;min-height:48px;justify-content:center}.button-scan:hover{background:#f34e2b;border-color:#f34e2b}.button-scan:focus-visible{outline:3px solid #0377d8;outline-offset:3px}.button-scan:disabled{opacity:.55}
.scan-progress-panel{margin:22px 0;padding:22px 0;border-top:1px solid var(--line);scroll-margin-top:24px}.scan-progress-panel[hidden],.model-loading[hidden]{display:none}.scan-progress-panel h2{font-family:Georgia,serif;font-size:clamp(32px,7vw,42px);font-weight:400;line-height:1.15;margin:8px 0 10px}.scan-progress-panel .panel-copy{font-size:12px;line-height:1.7;max-width:440px}.scan-progress-panel>.button{margin-top:15px}.model-loading{display:flex;align-items:center;gap:16px;margin-top:21px;padding:18px;background:#f2f0e8;border-radius:10px}.model-loading strong{font-size:14px}.model-loading p{font-size:11px;line-height:1.6;color:var(--muted);margin:5px 0 0;min-height:18px}.tray-details-summary{cursor:pointer;font-size:11px;line-height:1.6;padding:8px 0;color:var(--muted)}.check-results:not([open]){padding-top:6px;margin-top:8px}.scan-progress-panel:focus-visible{outline:2px solid var(--accent);outline-offset:6px}

/* The scan result is a count followed by the missing models only. */
.missing-models {list-style:none;margin:18px 0 0;padding:0;}
.missing-models li {padding:13px 0;border-top:1px solid #dfded6;font-size:1.05rem;font-weight:650;line-height:1.5;}
#frame-check-heading,#frame-check-intro,#frame-read-status,#tray-check-results {display:none!important;}
#frame-check-panel {border:0;background:transparent;padding:0;box-shadow:none;}
#tray-check-status {display:none;}
#scan-outcome-note:empty {display:none;}

.missing-models li {display:flex;align-items:center;gap:14px;}
.missing-models li img {flex:0 0 76px;width:76px;height:48px;object-fit:contain;background:#fff;border-radius:8px;}
.missing-models li span {min-width:0;overflow-wrap:anywhere;}

/* One reserved viewport: sensor metadata never changes the layout. */
#camera-stage {width:100%;height:460px;height:clamp(240px,58svh,560px);min-height:0;max-height:none;aspect-ratio:auto;border:0;padding:0;background:#f0f1e8;}
#camera-stage[data-camera-state=starting],#camera-stage[data-camera-state=ready],#camera-stage:has(>canvas:not([hidden])) {background:#181b16;}
#camera-stage>video,#camera-stage>canvas,#camera-stage>.stage-placeholder {position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;}
#camera-stage>video {opacity:0;}
#camera-stage[data-camera-state=ready]>video {opacity:1;}
.camera-starting {position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:#181b16;color:#fff;text-align:center;}
.camera-starting[hidden] {display:none;}
.camera-starting strong {font-size:14px;}
.camera-starting small {font-size:11px;line-height:1.6;color:#ffffffbd;}
.place-order{width:100%;margin-top:20px}
.guest-order{width:min(620px,calc(100vw - 28px));max-height:92svh;padding:26px;border:1px solid #deded4;border-radius:18px;background:#faf9f4;color:#181b16;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}
.guest-order::backdrop{background:rgb(18 23 19 / .58)}
#jotform-order-frame{display:block;width:100%;border:0;background:#faf9f4;min-height:500px}#jotform-order-frame[hidden]{display:none}#close-order:disabled{opacity:.5}
.order-loading{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px 8px;box-sizing:border-box}.order-loading[hidden],#guest-order-form[hidden]{display:none}.order-loading strong{font-size:19px;line-height:1.5}.order-loading p{font-size:13px;line-height:1.6;margin:0;max-width:280px}.order-loading small{font-size:12px;color:#62675b}
.order-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.order-heading h2{margin:8px 0;font-size:28px;font-weight:500}.order-heading .small-label{margin:0}.order-close{border:0;background:transparent;color:inherit;padding:0 5px;font-size:32px;line-height:1;cursor:pointer}
.order-recipient,.order-explainer{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.order-recipient strong{font-weight:500}.order-explainer{color:#62675b}
.order-field{display:block;margin:15px 0;font-size:14px}.order-field small{color:#696f62}.order-field input,.order-field textarea{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:11px 12px;margin-top:7px;border:1px solid #cdcebf;border-radius:8px;background:white;color:inherit}.order-field input:read-only,.order-field textarea:read-only{background:#eeeee5}.order-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.order-contact-grid .order-field{min-width:0}
.order-models{margin:12px 0 20px}.order-models li{font-size:13px}.order-models img{width:60px;height:38px;flex-shrink:0}.order-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.order-photos figure{margin:0;min-width:0}.order-photos img{display:block;width:100%;height:210px;object-fit:contain;background:#eeeee5;border-radius:9px}.order-photos img:not([src]){display:none}.order-photos figcaption{font-size:12px;margin-top:7px;color:#62675b}.order-attachments-note,.order-consent{font-size:12px;line-height:1.6;color:#62675b}.order-reference{font-size:12px;overflow-wrap:anywhere}.order-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#order-status{font-size:13px;line-height:1.6;margin:18px 0}#submit-order{width:100%}#order-count{font-size:20px;font-weight:500;line-height:1.4;margin-top:22px}
@media(max-width:500px){.guest-order{padding:20px}.order-contact-grid{grid-template-columns:1fr;gap:0}.order-contact-grid .order-field{margin:8px 0}.order-photos img{height:170px}}

body:has(#guest-order[open]){overflow:hidden}

.order-success{width:min(390px,calc(100vw - 40px));max-height:85svh;box-sizing:border-box;border:1px solid #deded4;border-radius:20px;padding:32px 26px;background:#faf9f4;color:#181b16;text-align:center;box-shadow:0 24px 70px #12201430}.order-success::backdrop{background:rgb(18 23 19 / .58)}.order-success-check{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;margin:0 auto 18px;background:#e4f0d9;color:#467134;font:32px Arial,sans-serif}.order-success h2{font:500 30px/1.2 Georgia,serif;margin:0 0 14px}.order-success p{font-size:15px;line-height:1.6;margin:0 0 12px}.order-success .order-success-note{font-size:13px;color:#62675b}.order-success .button{width:100%;margin-top:10px;background:#ff6b21;border-color:#ff6b21;color:#181b16}body:has(#order-success[open]){overflow:hidden}
