:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Segoe UI,sans-serif;color:#111827;background:#f3f5f8;--blue:#0a84ff;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--glass:rgba(255,255,255,.88)}*{box-sizing:border-box}html{background:#f3f5f8}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,#eef5ff 0,transparent 34%),linear-gradient(180deg,#fbfcfe 0,#f2f4f7 100%);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.55;cursor:wait}.app-shell{max-width:760px;margin:0 auto;padding:16px 16px calc(32px + env(safe-area-inset-bottom))}.app-header{position:sticky;top:0;z-index:30;margin:-16px -16px 18px;padding:14px 16px 12px;background:rgba(247,249,252,.82);backdrop-filter:blur(24px);border-bottom:1px solid rgba(229,231,235,.75)}.header-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px}.header-copy span,.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7b8492}.header-copy h1{margin:3px 0 0;font-size:27px;line-height:1.08;letter-spacing:-.025em}.icon-button,.profile-button{border:0;background:rgba(255,255,255,.72);border:1px solid rgba(209,213,219,.8);box-shadow:0 5px 16px rgba(31,41,55,.05)}.icon-button{width:40px;height:40px;border-radius:14px;font-size:30px;line-height:1;display:grid;place-items:center}.profile-button{border-radius:999px;padding:10px 13px;font-size:12px;color:#4b5563}.hidden{visibility:hidden}.store-sync-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}.store-pill{min-width:0;border:0;background:transparent;text-align:left;padding:0}.store-pill strong{display:block;font-size:15px}.store-pill span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}.sync-badge{border-radius:999px;padding:8px 11px;font-size:11px;font-weight:700;background:#eef2f7;color:#576071;white-space:nowrap}.sync-badge.synced{background:#e8f8ee;color:#167344}.sync-badge.pending{background:#fff4d8;color:#8a5a00}.sync-badge.offline{background:#eef0f3;color:#5f6672}.glass-card,.hero-card{background:var(--glass);border:1px solid rgba(229,231,235,.88);box-shadow:0 16px 44px rgba(31,41,55,.07);backdrop-filter:blur(18px);border-radius:26px}.hero-card,.home-hero{padding:20px}.hero-card h2,.home-hero h2,.form-card h2,.filter-card h2,.list-section h2{margin:5px 0 7px;font-size:27px;letter-spacing:-.03em}.hero-card p,.home-hero p{margin:0;color:var(--muted);line-height:1.5}.hero-card.compact{padding:17px 20px;margin-bottom:14px}.hero-card.compact h2{margin-bottom:0}.store-grid{display:grid;gap:11px}.store-option{width:100%;border:1px solid rgba(229,231,235,.9);background:rgba(255,255,255,.93);border-radius:22px;padding:15px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;text-align:left;box-shadow:0 10px 28px rgba(31,41,55,.05);transition:transform .15s ease,box-shadow .15s ease}.store-option:active,.module-card:active{transform:scale(.985)}.store-icon,.module-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#eef3fa;font-weight:800}.store-option strong{display:block;font-size:17px}.store-option small{display:block;color:var(--muted);margin-top:4px}.chevron,.module-card>span:last-child{font-size:29px;color:#a1a7b1}.update-banner{width:100%;border:0;border-radius:20px;background:linear-gradient(135deg,#0a84ff,#5b8cff);color:#fff;padding:16px 17px;margin-bottom:13px;display:flex;justify-content:space-between;align-items:center;text-align:left;box-shadow:0 14px 34px rgba(10,132,255,.24)}.update-banner strong,.update-banner span{display:block}.update-banner div span{font-size:12px;opacity:.86;margin-top:4px}.update-banner>span{font-size:12px;font-weight:800;background:rgba(255,255,255,.18);padding:9px 11px;border-radius:999px}.module-grid{display:grid;gap:12px;margin:14px 0}.module-card{width:100%;border:0;border-radius:24px;padding:16px;display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:14px;text-align:left;color:#fff;box-shadow:0 16px 32px rgba(31,41,55,.12);transition:transform .15s ease}.module-card strong{display:block;font-size:19px}.module-card small{display:block;margin-top:4px;opacity:.82}.module-card .module-icon{background:rgba(255,255,255,.17);font-size:25px}.module-card.blue{background:linear-gradient(135deg,#0879ee,#3f9cff)}.module-card.purple{background:linear-gradient(135deg,#6e5ae7,#9c7cff)}.module-card.orange{background:linear-gradient(135deg,#ff8a34,#ffb347)}.module-card.green{background:linear-gradient(135deg,#1a9a69,#47bd8f)}.module-card.graphite{background:linear-gradient(135deg,#2d3340,#535d6f)}.quick-actions{padding:7px 15px}.quick-actions button{width:100%;border:0;background:transparent;display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;text-align:left;padding:13px 2px;border-bottom:1px solid #eef0f3}.quick-actions button:last-child{border-bottom:0}.quick-actions button>span{width:32px;height:32px;border-radius:11px;background:#eef3fa;display:grid;place-items:center;font-weight:800}.quick-actions strong,.quick-actions small{display:block}.quick-actions small{color:var(--muted);margin-top:3px}.location-card{padding:18px}.location-section+ .location-section{margin-top:24px}.location-section h3{margin:0 0 10px;font-size:15px}.location-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.location-grid button{border:1px solid #e4e8ee;background:#fff;border-radius:15px;padding:12px 3px;font-weight:800;color:#374151}.scanner-page{padding-bottom:32px}.scanner-context{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:9px;padding:13px;margin-bottom:12px}.scanner-context>div{border-radius:17px;background:#f7f9fc;padding:11px}.scanner-context span,.do-metrics span,.difference-card span{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#7b8492}.scanner-context strong,.do-metrics strong,.difference-card strong{display:block;margin-top:4px;font-size:18px}.location-total{background:linear-gradient(135deg,#ecf5ff,#f4f8ff)!important}.location-total strong{font-size:25px}.camera-card{position:relative;overflow:hidden;border-radius:27px;background:#111827;aspect-ratio:4/3;box-shadow:0 20px 48px rgba(17,24,39,.18)}.camera-card video{width:100%;height:100%;object-fit:cover}.camera-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#171b23}.camera-placeholder[hidden]{display:none}.scan-frame{position:absolute;left:10%;right:10%;top:34%;height:30%;border:3px solid rgba(255,255,255,.94);border-radius:22px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scan-frame:before,.scan-frame:after{content:"";position:absolute;width:32px;height:4px;background:#0a84ff;top:-3px}.scan-frame:before{left:28px}.scan-frame:after{right:28px}.scan-frame span{position:absolute;bottom:-34px;left:0;right:0;text-align:center;color:#fff;font-size:12px}.camera-controls{display:flex;justify-content:space-between;align-items:center;margin:10px 2px;color:var(--muted);font-size:12px}.primary,.secondary,.danger,.scan-button{border:0;border-radius:17px;padding:14px 16px;font-weight:800}.primary{background:#111827;color:#fff;box-shadow:0 10px 22px rgba(17,24,39,.14)}.secondary{background:#edf1f6;color:#202733}.danger{background:#ffe8e8;color:#a61f1f}.small{padding:10px 13px}.full{width:100%}.large{min-height:57px;font-size:17px}.scan-button{width:100%;min-height:66px;background:linear-gradient(135deg,#0879ee,#3f9cff);color:#fff;font-size:19px;box-shadow:0 16px 32px rgba(10,132,255,.25);transition:transform .1s ease,filter .1s ease}.scan-button.holding{transform:scale(.985);filter:brightness(.92)}.manual-card{display:flex;gap:8px;padding:9px;margin-top:11px}.manual-card input{flex:1;min-width:0;border:0;background:transparent;padding:9px 8px;outline:none}.manual-card button{border:0;border-radius:13px;background:#edf1f6;padding:0 16px;font-weight:800}.scanner-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.feedback-layer{position:fixed;left:50%;bottom:24px;z-index:80;transform:translateX(-50%);width:min(92vw,540px);pointer-events:none}.success-toast{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;background:rgba(24,129,77,.96);color:#fff;padding:13px 15px;border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.24);backdrop-filter:blur(16px);animation:toastIn .18s ease}.success-toast>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);font-weight:900}.success-toast strong,.success-toast small{display:block}.success-toast small{opacity:.8;margin-top:3px}@keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.98)}}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(17,24,39,.48);display:grid;place-items:center;padding:18px;backdrop-filter:blur(12px)}.modal-backdrop.sheet{align-items:end}.modal-card{width:min(560px,100%);max-height:88vh;overflow:auto;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.8);border-radius:29px;padding:20px;box-shadow:0 28px 90px rgba(0,0,0,.28)}.modal-backdrop.sheet .modal-card{width:min(720px,100%);border-radius:29px 29px 18px 18px}.alert-modal{text-align:center}.alert-icon{width:58px;height:58px;border-radius:20px;margin:0 auto 13px;display:grid;place-items:center;background:#fff0e8;color:#d85a00;font-size:29px;font-weight:900}.alert-icon.neutral{background:#e9f7ef;color:#18794e}.alert-modal h2{margin:6px 0 8px;font-size:25px}.alert-modal p{color:var(--muted);line-height:1.5}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.modal-actions:has(button:only-child){grid-template-columns:1fr}.modal-head{position:sticky;top:-20px;z-index:2;background:rgba(255,255,255,.97);display:flex;justify-content:space-between;align-items:flex-start;padding:3px 0 14px;border-bottom:1px solid #eceff3}.modal-head h2{margin:4px 0}.modal-head span{font-size:12px;color:var(--muted)}.scan-list{display:grid;gap:10px;padding-top:12px}.scan-event{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:start;border:1px solid #e7eaf0;background:#fbfcfe;border-radius:19px;padding:12px}.scan-number{width:34px;height:34px;border-radius:12px;background:#eaf3ff;color:#0a65c7;display:grid;place-items:center;font-weight:900}.scan-main strong,.scan-main small{display:block}.scan-main small{color:#6b7280;margin-top:5px}.scan-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.scan-tags span{font-size:10px;padding:5px 7px;border-radius:999px;background:#eef2f7;color:#4b5563}.delete-row{border:0;border-radius:11px;background:#ffeaea;color:#a51f1f;padding:9px 10px;font-weight:800}.exchange-stack{display:grid;gap:10px;margin-top:14px}.exchange-card{padding:17px}.exchange-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7b8492;font-weight:800}.empty-product{min-height:118px;display:grid;place-items:center;color:#9aa1ab}.product-preview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin:12px 0 14px}.product-preview>strong,.product-preview>span,.product-preview>small{grid-column:1/-1}.product-preview>span,.product-preview>small{color:var(--muted)}.product-preview div{background:#f5f7fa;border-radius:14px;padding:9px}.product-preview div small,.product-preview div b{display:block}.product-preview div small{color:var(--muted);font-size:10px;text-transform:uppercase}.exchange-arrow{text-align:center;font-size:28px;color:#a1a7b1}.difference-card{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;padding:14px;margin:12px 0}.difference-card div{background:#f6f8fb;border-radius:15px;padding:11px}.do-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px;margin-bottom:12px}.do-metrics>div{background:#f6f8fb;border-radius:16px;padding:11px;text-align:center}.do-metrics strong{font-size:23px}.form-card,.filter-card,.list-section{padding:20px}.list-section{margin-top:14px}.stack-form{display:grid;gap:13px}.stack-form label,.filter-grid label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#4b5563}.stack-form input,.stack-form select,.filter-grid input,.filter-grid select{width:100%;border:1px solid #dfe4eb;background:#fff;border-radius:15px;padding:13px 14px;color:#111827}.form-message{min-height:20px;color:#5f6875;font-size:13px;line-height:1.4}.center{text-align:center}.do-list{display:grid;gap:9px}.do-row{width:100%;border:1px solid #e6eaf0;background:#fbfcfe;border-radius:18px;padding:13px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;text-align:left}.do-row strong,.do-row span{display:block}.do-row span{color:var(--muted);font-size:12px;margin-top:4px}.do-count{text-align:right}.do-count b{font-size:20px}.do-count small{color:var(--muted)}.do-items{display:grid;gap:8px;padding:13px;margin-top:12px}.do-items article{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #edf0f4;padding:9px 2px}.do-items article:last-child{border-bottom:0}.do-items span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.master-count{margin-top:14px;display:flex;align-items:baseline;gap:8px}.master-count strong{font-size:32px}.master-count span{color:var(--muted)}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}.export-card{border:1px solid #e3e7ed;background:#fff;border-radius:22px;padding:16px;display:grid;grid-template-columns:42px 1fr;gap:10px;text-align:left;align-items:center;box-shadow:0 12px 28px rgba(31,41,55,.05)}.export-card>span{width:40px;height:40px;border-radius:14px;background:#eef3fa;display:grid;place-items:center;font-weight:900}.export-card strong,.export-card small{display:block}.export-card small{color:var(--muted);margin-top:4px}.login-shell,.loading-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);padding:24px}.brand-mark{width:64px;height:64px;border-radius:21px;background:linear-gradient(135deg,#111827,#3f4857);color:#fff;display:grid;place-items:center;font-size:30px;box-shadow:0 18px 36px rgba(17,24,39,.18);margin-bottom:16px}.login-card h1,.loading-shell h1{margin:5px 0 8px;font-size:34px;letter-spacing:-.04em}.login-card>.muted{margin-bottom:22px}.loading-shell{text-align:center;align-content:center}.loader-orb{position:relative;width:126px;height:126px;margin:0 auto 18px}.loader-box{position:absolute;inset:20px;border-radius:27px;background:#fff;box-shadow:0 22px 52px rgba(31,41,55,.14);display:grid;place-items:center;font-size:43px;animation:float 1.8s ease-in-out infinite}.loader-line{position:absolute;left:8px;right:8px;height:4px;border-radius:99px;background:#0a84ff;box-shadow:0 0 12px rgba(10,132,255,.65);animation:scanLine 1.45s ease-in-out infinite}.loader-orb.error .loader-line{background:#ef4444}.progress{width:min(340px,82vw);height:10px;margin:18px auto;border-radius:999px;background:#e1e5eb;overflow:hidden}.progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0a84ff,#5fa8ff);transition:width .2s ease}.loading-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.mini-spinner{width:52px;height:52px;border:5px solid #e6eaf0;border-top-color:#0a84ff;border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}.empty-state{text-align:center;color:#8a929e;padding:28px 12px}@keyframes float{50%{transform:translateY(-7px) rotate(-1deg)}}@keyframes scanLine{0%,100%{top:10px}50%{top:112px}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:560px){.app-shell{padding-left:12px;padding-right:12px}.app-header{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.header-copy h1{font-size:24px}.location-grid{grid-template-columns:repeat(4,1fr)}.scanner-context{grid-template-columns:1fr 1fr}.location-total{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.difference-card{grid-template-columns:1fr}.product-preview{grid-template-columns:1fr 1fr}.filter-grid,.export-grid{grid-template-columns:1fr}.modal-actions{grid-template-columns:1fr}.scan-event{grid-template-columns:35px 1fr}.delete-row{grid-column:2}.store-pill span{max-width:170px}.sync-badge{font-size:10px}.do-metrics{grid-template-columns:repeat(2,1fr)}}