/* Scaled light-mode iOS UI from mobile/DESIGN.md, scanner.tsx and ui.tsx. */
/* Interactive app preview: a simulated camera, never a device camera. */
.app-demo{min-width:0;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0 12px}
.scan-tabs{display:flex;max-width:350px;margin:0 auto;background:#e5ebf6;padding:5px;border-radius:12px}
.scan-tabs button{flex:1;border:0;border-radius:8px;padding:12px 5px;background:transparent;color:#53647f;font-size:12px;font-weight:500}
.scan-tabs button[aria-selected=true]{background:white;color:#244caa;box-shadow:0 2px 6px #253b6010}
.scan-tabs button:hover{color:#244caa}
.part-picker{max-width:350px;margin:18px auto 0}
.part-picker label{display:block;font-size:11px;color:#53647f;margin-bottom:6px}
.part-picker select{width:100%;padding:10px 12px;border:1px solid #cad6ea;border-radius:8px;background:white;color:#273c61;font-size:14px}
.phone-stage{position:relative;isolation:isolate;padding:30px 0 27px;display:flex;justify-content:center}
.phone-stage:before{content:'';position:absolute;z-index:-1;width:min(440px,100%);aspect-ratio:1;border-radius:50%;top:19%;background:radial-gradient(circle,#b2c8ff70,transparent 70%)}
.scan-phone{width:312px;max-width:100%;height:634px;padding:7px;position:relative;border:1px solid #8692a6;border-radius:46px;background:linear-gradient(130deg,#a7b2c5,#313b50 20%,#101725 65%,#73829a);box-shadow:0 27px 45px -20px #1b335d55,0 5px 10px #1b335d20,inset 0 0 0 2px #c0c9d133;transform:rotate(-3deg);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.scan-phone:before,.scan-phone:after{content:'';position:absolute;left:-3px;width:2px;border-radius:2px;background:#607089;top:105px;height:45px}
.scan-phone:after{left:auto;right:-3px;top:130px;height:64px}
.scan-phone[data-state=framing],.scan-phone[data-state=scanning],.scan-phone[data-state=recognized],.scan-phone[data-state=result]{transform:rotate(0)}

.scan-phone{--ios-banner:#0B0D12;--ios-citron:#C5D965;--ios-bg:#F4F5F7;--ios-line:#DDE2EA;--ios-divider:#EEF0F3;--ios-body:#3D4454;--ios-muted:#5E6678;--ios-ok:#005C29;--ios-ok-strong:#007A37;--ios-ok-soft:#E6F4EC;--ios-danger:#A3211A;--ios-danger-soft:#FDECEA;--ios-danger-line:#F3C4BF;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.scan-phone button{font-family:inherit}
.phone-screen{height:100%;display:flex;flex-direction:column;position:relative;border:2px solid #0a101b;border-radius:38px;background:var(--ios-bg);overflow:hidden;color:#000;isolation:isolate}
.phone-statusbar{height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:10px;font-weight:600;position:relative;z-index:2;background:var(--ios-banner);color:white;box-shadow:0 2px 0 var(--ios-banner)}
.phone-statusbar>svg{width:37px;height:11px}
.phone-island{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:77px;height:21px;background:#04070d;border-radius:20px}
.phone-island:after{content:'';position:absolute;right:9px;top:7px;width:6px;height:6px;background:#192c46;border-radius:50%;box-shadow:inset 1px 0 2px #395c8f}
.ios-scanner,.ios-detail{display:flex;flex-direction:column;flex:1;min-height:0}
.ios-banner{flex-shrink:0;padding:7px 15px 17px;background:var(--ios-banner);color:white;border-radius:0 0 23px 23px}
.ios-sync{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#B8BFCC;margin-bottom:9px}
.ios-sync>span{display:flex;align-items:center;gap:5px}.ios-sync i{width:6px;height:6px;border-radius:50%;background:var(--ios-ok-strong)}
.ios-sync small{font-size:7px;letter-spacing:.6px;border:1px solid #ffffff26;border-radius:4px;padding:3px 5px}
.ios-banner h3{font-family:inherit;font-size:25px;font-weight:700;letter-spacing:-.5px;line-height:1.15;margin:0 0 7px}
.ios-banner>p{color:#D5DAE2;font-size:11px;line-height:1.5;margin:0;max-width:230px}
.phone-camera{flex:1;min-height:0;position:relative;overflow:hidden;background:#51565b;margin:13px 12px 0;border-radius:15px;color:white}
.camera-scene{position:absolute;inset:-20px;transform:translate(-14px,9px) scale(1.12) rotate(-6deg);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;filter:blur(1px)}
.camera-machine{width:100%;height:100%;object-fit:cover;object-position:45% center;opacity:.85}
.physical-label{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%) rotate(3deg);width:107px;padding:8px 9px 7px;background:#f7f8f2;color:#142033;border-radius:3px;box-shadow:0 3px 5px #0005,0 0 1px #fff;display:flex;align-items:center;flex-direction:column}
.label-brand{font-size:5px;font-weight:700;letter-spacing:1px;white-space:nowrap}
.qr-code{width:79px;height:79px;margin:3px 0;background:white}
#scan-code{font-family:monospace;font-size:9px;font-weight:700;letter-spacing:.4px}

.camera-vignette{position:absolute;inset:0;background:linear-gradient(#0004,transparent 28%,transparent 50%,#0004);pointer-events:none}
.camera-format{position:absolute;top:12px;left:12px;border:1px solid #ffffff22;background:#0006;border-radius:30px;padding:6px 8px;font-size:6px;font-weight:600;letter-spacing:.7px;color:#ffffffdd}
.scan-viewfinder{position:absolute;width:154px;height:154px;left:50%;top:34%;transform:translate(-50%,-50%);color:var(--ios-citron);transition:color .3s,transform .7s}
.scan-viewfinder>i{position:absolute;width:24px;height:24px;border:3px solid currentColor;filter:drop-shadow(0 1px 2px #0005)}
.scan-viewfinder>i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.scan-viewfinder>i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.scan-viewfinder>i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 12px}
.scan-viewfinder>i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 12px 0}
.scan-beam{position:absolute;top:9px;left:4px;right:4px;height:2px;background:var(--ios-citron);box-shadow:0 0 12px 3px #c5d96599;opacity:0}
.scan-beam:after{content:'';position:absolute;bottom:0;left:0;right:0;height:45px;background:linear-gradient(transparent,#c5d96530)}
.scan-check{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ios-citron);color:#0B0D12;font-size:27px;opacity:0;transition:opacity .3s,transform .3s;box-shadow:0 0 0 8px #c5d96522}
.scan-phone[data-state]:not([data-state=ready]) .camera-scene{transform:translate(0,8px) scale(1) rotate(-3deg);filter:blur(0)}
.scan-phone[data-state=scanning] .scan-beam{opacity:1;animation:phone-scan 1.25s ease-in-out both}
.scan-phone[data-state=recognized] .scan-viewfinder,.scan-phone[data-state=result] .scan-viewfinder{color:var(--ios-citron)}
.scan-phone[data-state=recognized] .scan-check{opacity:1;transform:translate(-50%,-50%) scale(1)}
.scan-phone[data-state=result] .camera-scene{filter:blur(1px);opacity:.65}
@keyframes phone-scan{0%{transform:translateY(0);opacity:0}15%{opacity:1}90%{opacity:1}100%{transform:translateY(133px);opacity:0}}

.camera-instructions{position:absolute;bottom:12px;left:12px;right:12px;border:1px solid #ffffff22;border-radius:14px;padding:12px;background:#0009;backdrop-filter:blur(8px)}
.camera-instructions>strong{font-size:10px;font-weight:600;display:block;line-height:1.5}
.camera-instructions>p{font-size:9px;line-height:1.6;color:#ffffffbf;margin:6px 0 10px}
#scan-image-button{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;background:white;color:black;font-weight:600;font-size:10px;width:100%;padding:9px 7px}
#scan-image-button .icon{height:14px;width:14px}
#scan-image-button[aria-disabled=true]{background:#ffffff59;cursor:progress}
.ios-tabbar{flex-shrink:0;display:flex;height:59px;border:1px solid var(--ios-line);border-radius:20px;margin:12px 12px 5px;padding:4px;background:white;box-shadow:0 5px 14px #14182115}
.ios-tabbar>span{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:7px;font-weight:600;line-height:1;color:var(--ios-muted);border-radius:15px}
.ios-tabbar i{height:17px;display:block;font-style:normal}.ios-tabbar .icon{width:17px;height:17px}
.ios-tabbar .is-active{background:var(--ios-citron);color:black}
.home-indicator{width:88px;height:4px;border-radius:4px;background:#000;display:block;flex-shrink:0;margin:9px auto 8px}
.scan-button{width:100%;max-width:312px;min-height:46px;border-radius:10px;gap:10px;font-size:11px;padding:12px 15px;margin:0 auto 19px;display:flex}
.scan-button>span:nth-child(2){margin-right:auto}.scan-button .icon{height:16px;width:16px}
.scan-button[aria-disabled=true]{background:#e8eef9;border-color:#e8eef9;color:#4e6589;cursor:progress}
#scan-back{display:inline-flex;align-items:center;gap:7px;min-height:44px;background:#ffffff1a;color:white;border:0;border-radius:30px;padding:8px 12px;font-size:11px;font-weight:600;margin:0 0 10px}
#scan-back>span{font-size:16px}
.ios-detail .ios-banner h3{font-size:23px;line-height:1.16;letter-spacing:-.4px}
.scan-result{min-height:0;overflow:auto;padding:15px 12px 8px;scrollbar-width:thin;scrollbar-color:#c9ced6 transparent;animation:ios-open .35s ease-out;overscroll-behavior:contain}
@keyframes ios-open{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.ios-tags{display:flex;align-items:center;gap:6px;font-size:9px;margin-bottom:11px;color:var(--ios-muted)}
.ios-tags>span{background:var(--ios-ok-soft);color:var(--ios-ok);padding:5px 8px;border-radius:20px;font-weight:600}
.ios-card{border:1px solid var(--ios-line);border-radius:15px;padding:13px;background:white;margin-bottom:11px}
.ios-card h4{font-family:inherit;font-size:13px;font-weight:700;letter-spacing:0;margin:0 0 8px;color:black}
.ios-card>p,.ios-card dd{font-size:11px;color:var(--ios-body);line-height:1.6;margin:0}
.ios-card .ios-label{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--ios-muted);margin:0 0 7px}
.ios-card .ios-machine-model{font-size:16px;color:black;line-height:1.3;font-weight:700;margin-bottom:11px}
.ios-code{display:inline-block;font-size:9px;font-weight:600;background:var(--ios-bg);padding:5px 8px;border-radius:20px;color:var(--ios-muted)}
.ios-card dl{margin:0}.ios-card dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--ios-divider)}
.ios-card dl>div:last-child{border:0;padding-bottom:0}
.ios-card dt{font-size:10px;color:var(--ios-muted)}.ios-card dd{font-weight:600;color:black;text-align:right}
.ios-card .ios-issue{padding:10px;background:#E8F0FE;border:1px solid #6AA8FF;border-radius:11px;color:black;margin-bottom:9px}
.ios-metrics{display:flex;gap:7px;margin-bottom:12px}.ios-metrics>div{flex:1;border-radius:13px;border:1px solid var(--ios-line);padding:10px 8px;background:white}
.ios-metrics dt{font-size:9px;color:var(--ios-muted)}.ios-metrics dd{font-size:24px;font-weight:700;line-height:1.25;margin:5px 0 0;color:black}
.ios-metrics>div:last-child{background:#F4F8D8;border-color:#E3E8C7}.ios-metrics .stock-empty{background:var(--ios-danger-soft);border-color:var(--ios-danger-line)}.ios-metrics .stock-empty dd{color:var(--ios-danger)}
.ios-code-match{font-size:10px;color:var(--ios-muted);margin:0 0 11px;overflow-wrap:anywhere}.ios-code-match strong{color:black;font-weight:600}
.ios-stock-warning{font-size:10px;line-height:1.6;padding:11px;border:1px solid var(--ios-danger-line);background:var(--ios-danger-soft);color:var(--ios-danger);border-radius:12px;margin-bottom:11px}
.scan-progress{list-style:none;margin:0;display:flex;justify-content:center;gap:20px;padding:0;color:#667b9b;font-size:9px}
.scan-progress li{display:flex;align-items:center;gap:5px;transition:color .2s}
.scan-progress li>span{font-size:7px;width:19px;height:19px;display:grid;place-items:center;border:1px solid #cfdbee;border-radius:50%}
.scan-progress li[aria-current=step]{color:#244caa}
.scan-progress li[aria-current=step]>span{background:#416be0;border-color:#416be0;color:white}
.field-section .console-note{display:flex;justify-content:center;align-items:center;gap:5px;text-align:center;font-size:8px;line-height:1.7;color:#627592;margin:18px 0 0}
.console-note .icon{height:12px;width:12px;flex-shrink:0}
.camera-package,.camera-shelf{display:none}
[data-mode=part] .camera-machine,[data-mode=stock] .camera-machine{display:none}
[data-mode=part] .camera-scene{background:radial-gradient(ellipse at top,#a0a8ac,#46515c)}
[data-mode=part] .camera-package{display:block;position:absolute;inset:37px 30px 12px;background:linear-gradient(90deg,#9c744b,#c7a174 12%,#bc9267 87%,#8f6947);border:1px solid #7a573c;box-shadow:0 10px 20px #17273855;border-radius:3px}
[data-mode=part] .camera-package:before{content:'';position:absolute;top:0;bottom:0;left:43%;width:15%;background:#dbc3a955;border-inline:1px solid #e1cbaa55}
[data-mode=stock] .camera-scene{background:linear-gradient(90deg,#273744 0 8%,#b9c5ca 8% 12%,#465763 12% 88%,#b9c5ca 88% 92%,#273744 92%)}
[data-mode=stock] .camera-shelf{display:flex;position:absolute;inset:20px 0 0;flex-direction:column;justify-content:space-around}
.camera-shelf i{height:67px;border-bottom:12px solid #d0d9db;background:repeating-linear-gradient(90deg,transparent 0 18px,#ac875d 18px 75px,#8c6845 75px 78px,transparent 78px 92px);box-shadow:0 7px 9px #17232d88}
[data-mode=stock] .physical-label{box-shadow:0 2px 4px #0006,0 0 0 9px #c9d4d8;border-radius:1px}

@media(min-width:1001px){.field-photo{height:670px}.field-grid{align-items:center}}
@media(max-width:1000px){.app-demo{padding:0}.scan-phone{width:292px}.scan-progress{gap:10px}.console-note{max-width:310px;margin-inline:auto!important}}
@media(max-width:800px){.app-demo{padding-top:16px}.scan-phone{width:312px}.phone-stage{padding-block:32px}.scan-progress{gap:20px}}
@media(max-width:560px){.app-demo{padding-inline:0}.phone-stage{padding-block:28px}.scan-phone{width:300px;height:634px;transform:rotate(-2deg)}.scan-tabs{max-width:330px}.scan-tabs button{font-size:11px}.part-picker select{font-size:16px}.scan-button{max-width:300px}}
@media(max-width:360px){.scan-phone{width:270px;transform:none}.scan-progress{gap:12px;font-size:8px}.ios-tabbar>span{font-size:6px}.camera-instructions{padding:10px;left:10px;right:10px}.scan-viewfinder{width:140px;height:140px;top:30%}.physical-label{top:30%;width:100px}.qr-code{width:72px;height:72px}.ios-banner h3{font-size:23px}.ios-detail .ios-banner h3{font-size:21px}.scan-button{max-width:270px}}
@media(prefers-reduced-motion:reduce){.scan-phone{transform:none!important}.camera-scene{transform:none!important;filter:none!important}.scan-beam{display:none}}

.ios-card .ios-stock-quantity{font-size:24px;font-weight:700;color:black;line-height:1.3;margin-top:8px}.ios-stock-quantity span{font-size:11px;font-weight:400;color:var(--ios-muted)}

.scan-phone .scan-result>p{color:var(--ios-muted)}.scan-phone .scan-result>.ios-stock-warning{color:var(--ios-danger)}
