@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;900&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--surface: #12121a;--surface-2: #1a1a2e;--surface-3: #1e1e35;--neon-cyan: #00f5ff;--neon-purple: #bf00ff;--neon-green: #00ff88;--neon-orange: #ff8c00;--neon-red: #ff2255;--text: #e8e8ff;--text-muted: #7070a0;--radius: 16px;--radius-lg: 24px;--radius-sm: 10px;--scan-color: var(--neon-cyan)}html,body{height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;overflow-x:hidden;overscroll-behavior:none}*{scrollbar-width:none}*::-webkit-scrollbar{display:none}body{min-height:100dvh;background:radial-gradient(ellipse at 20% 10%,rgba(0,245,255,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(191,0,255,.05) 0%,transparent 50%),var(--bg)}@media (hover: none) and (pointer: coarse){input,textarea,select{font-size:16px!important}}#app-shell{display:grid;grid-template-rows:auto 1fr auto;height:100vh;height:100dvh;overflow:hidden;max-width:100vw}#app{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100%;font-size:.92rem;color:var(--text-muted);padding:40px 20px}.page-loading:before{content:"";display:block;width:52px;height:52px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0%,var(--neon-cyan, #00f5ff) 25%,var(--neon-purple, #bf00ff) 50%,var(--neon-cyan, #00f5ff) 75%,transparent 100%);-webkit-mask:radial-gradient(circle,transparent 55%,black 56%);mask:radial-gradient(circle,transparent 55%,black 56%);animation:fg-spinner-rotate 1.2s linear infinite;box-shadow:0 0 24px #00f5ff40}@keyframes fg-spinner-rotate{to{transform:rotate(360deg)}}.page{display:flex;flex-direction:column;min-height:100%;max-width:600px;margin:0 auto;padding:0 16px 40px}.app-header{position:relative;height:calc(56px + env(safe-area-inset-top,0px));display:flex;align-items:center;padding:env(safe-area-inset-top,0px) 8px 0 4px;background:#0a0a0ff2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06);z-index:10;flex-shrink:0;max-width:100vw;overflow:hidden}.app-header--hidden{display:none}.app-header-left{width:44px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}.app-header-logo-wrap{width:32px;height:32px;transition:opacity .2s ease,transform .2s ease}.app-header-logo-wrap--hidden{opacity:0;transform:scale(.65);pointer-events:none}.app-header-back-btn{position:absolute;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff14;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translate(-10px);pointer-events:none;transition:background .15s,opacity .2s ease,transform .2s ease}.app-header-back-btn--visible{opacity:1;transform:translate(0);pointer-events:auto}.app-header-back-btn:hover{background:#ffffff24}.app-header-back-btn svg{width:20px;height:20px}.app-header-center{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 8px;min-width:0;overflow:hidden;transition:opacity .15s ease}.app-header-center--fading{opacity:0}.app-header-title{font-size:1rem;font-weight:700;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.app-header-subtitle{font-size:.7rem;color:var(--text-muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.app-header-actions{display:flex;gap:4px;flex-shrink:0}.app-header-action-btn{position:relative;width:40px;height:40px;border:none;border-radius:50%;background:#ffffff0f;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;-webkit-tap-highlight-color:transparent}.app-header-action-btn:hover{background:#ffffff1f}.app-header-action-btn svg{width:20px;height:20px}.app-header-badge{position:absolute;top:6px;right:6px;min-width:14px;height:14px;border-radius:7px;padding:0 3px;background:var(--neon-red);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center}@media (display-mode: standalone){.app-header{padding-top:max(env(safe-area-inset-top,0px),20px);height:calc(56px + max(env(safe-area-inset-top,0px),20px))}.app-nav{padding-bottom:max(env(safe-area-inset-bottom,0px),16px);height:calc(64px + max(env(safe-area-inset-bottom,0px),16px))}}.btn-primary{display:block;width:100%;padding:14px 24px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--neon-cyan),var(--neon-purple));color:#000;font-family:inherit;font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s;text-align:center}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:block;width:100%;padding:13px 24px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);background:#ffffff0d;color:var(--text);font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .15s;text-align:center}.btn-secondary:hover{background:#ffffff1a;transform:translateY(-1px)}.btn-danger{display:block;padding:13px 24px;border:1px solid rgba(255,34,85,.4);border-radius:var(--radius-sm);background:#ff22551a;color:var(--neon-red);font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s;text-align:center}.btn-danger:hover{background:#f253}.btn-full{width:100%}.btn-clear-fridge{margin-left:auto;width:34px;height:34px;border:1px solid rgba(255,80,80,.3);border-radius:8px;background:transparent;color:#ff6060;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.btn-clear-fridge:active{background:#ff505026}.qty-selector{display:flex;align-items:center;justify-content:center;gap:20px;padding:4px 0 8px}.qty-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:#ffffff14;color:var(--text);font-size:1.3rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.qty-btn:active{background:#fff3}.qty-value{font-size:1.5rem;font-weight:700;min-width:32px;text-align:center;color:var(--neon-cyan)}.btn-text{background:none;border:none;color:var(--neon-cyan);font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.btn-text:hover{background:#00f5ff14}.btn-icon-sm{width:30px;height:30px;border:none;border-radius:8px;background:#ffffff0f;color:var(--text-muted);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.btn-icon-sm:hover,.btn-delete-fridge:hover{background:#ff225526;color:var(--neon-red)}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-lg);padding:36px 28px;display:flex;flex-direction:column;gap:20px}.auth-logo{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.auth-logo-img{width:50%;max-width:200px}.auth-logo h1{font-size:1.4rem;font-weight:900;margin:0;background:linear-gradient(135deg,var(--neon-cyan),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-logo p{font-size:.8rem;color:var(--text-muted);font-style:italic;margin:0}.auth-title{font-size:1.6rem;font-weight:900;text-align:center;background:linear-gradient(135deg,var(--neon-cyan),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{font-size:.9rem;color:var(--text-muted);text-align:center;line-height:1.5}.auth-footer{font-size:.85rem;color:var(--text-muted);text-align:center}.auth-footer a,.auth-footer button{color:var(--neon-cyan);background:none;border:none;font-family:inherit;font-size:inherit;font-weight:600;cursor:pointer;text-decoration:none}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#ffffff14}.auth-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.form-group .optional{font-weight:400;text-transform:none;letter-spacing:0}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;background:var(--surface-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.95rem;outline:none;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--neon-cyan)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-group select option{background:var(--surface-2)}.password-field{position:relative;display:flex;align-items:center}.password-field input{flex:1;padding-right:42px}.btn-toggle-pwd{position:absolute;right:8px;background:none;border:none;font-size:1.1rem;cursor:pointer;padding:4px;opacity:.6}.btn-toggle-pwd:hover{opacity:1}.form-group textarea{resize:vertical;min-height:80px}.form-section-title{font-size:.85rem;font-weight:700;color:var(--neon-cyan);text-transform:uppercase;letter-spacing:1px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.form-divider{border:none;border-top:1px solid rgba(255,255,255,.08);margin:20px 0 16px}.form-section-label{font-size:.75rem;font-weight:700;color:var(--neon-cyan);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.required-star{color:var(--neon-red);font-weight:700}.field-hint{font-size:.72rem;color:var(--text-muted);margin-top:4px}.field-hint--error{color:var(--danger, #ff4d4d)}.form-group input.input-error,.form-group select.input-error,.form-group textarea.input-error{border-color:var(--neon-red)!important;box-shadow:0 0 0 2px #f253}.auth-card--wide{max-width:520px!important}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-3{display:grid;grid-template-columns:1fr 88px;gap:12px}.phone-input-row{display:flex;gap:8px}.phone-input-row .phone-prefix-select{width:82px;min-width:82px;max-width:82px;flex-shrink:0;padding:12px 8px;background:var(--surface-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem}.phone-input-row .phone-prefix-select:focus{outline:none;border-color:var(--neon-cyan)}.phone-input-row input{flex:1;width:0;min-width:0}.home-page{padding-bottom:0}.home-page:not(.home-page--landing){height:100%;min-height:0;overflow:hidden}.home-header{display:flex;align-items:center;padding:24px 0 8px}.home-header h2{font-size:1.4rem;font-weight:900;background:linear-gradient(135deg,var(--neon-cyan),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.banner-expired{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ff22551a;border:1px solid rgba(255,34,85,.3);border-radius:var(--radius-sm);margin:12px 0;font-size:.9rem;color:var(--neon-red);cursor:pointer;transition:background .15s}.banner-expired:hover{background:#ff22552e}.banner-expired .banner-icon{font-size:1.2rem}.banner-expired .banner-text{flex:1;font-weight:600}.banner-expired .banner-arrow{opacity:.6}.fridges-grid{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-bottom:140px}.fridge-card{background:var(--surface);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative;text-decoration:none;color:inherit}.fridge-card:hover{transform:translateY(-2px);border-color:#00f5ff4d;box-shadow:0 6px 24px #00f5ff14}.fridge-card .fridge-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;flex-shrink:0}.fridge-card--fridge .fridge-icon{background:#00f5ff14}.fridge-card--freezer .fridge-icon{background:#64b4ff1a}.fridge-card--pantry .fridge-icon{background:#b48c501f}.fridge-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.fridge-top-row{display:flex;align-items:center;gap:8px}.fridge-card .fridge-name{flex:1;font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.fridge-card .fridge-arrow{font-size:1.2rem;color:var(--text-muted);flex-shrink:0}.fridge-bottom-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fridge-card .fridge-group{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.fridge-stats{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.fridge-stat{display:inline-flex;align-items:center;gap:2px;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:10px;line-height:1;white-space:nowrap}.fridge-stat--expired{background:#ff505026;color:#ff6b6b}.fridge-stat--expiring{background:#ffa5002e;color:orange}.fridge-stat--ok{background:#00f5ff1f;color:var(--neon-cyan)}.fridge-stat--no-expiry{background:#ffdc0026;color:gold}.fridge-stat--postponed{background:#ff8c002e;color:orange}.fridge-card .fridge-badge{position:absolute;top:8px;right:8px;background:var(--neon-red);color:#fff;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:10px}.dept-icon-svg{width:28px;height:28px}.dept-icon-svg--fridge{color:var(--neon-cyan)}.dept-icon-svg--freezer{color:#6ab4ff}.dept-icon-svg--pantry{color:#c8a26e}.home-actions{display:flex;gap:8px;flex-shrink:0;background:var(--bg);border-top:1px solid rgba(255,255,255,.07);padding:8px 16px;max-width:600px;margin:0 auto;width:100%}.home-action-btn{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:14px 8px;border:none;border-radius:var(--radius-sm);font-size:.82rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .12s;line-height:1}.home-action-btn:active{transform:scale(.96)}.home-action-btn svg{width:18px;height:18px;flex-shrink:0}.home-action-btn--scan{background:var(--neon-cyan);color:#000;flex:1}.home-action-btn--add,.home-action-btn--manual{background:var(--surface-2);color:var(--text);border:1px solid rgba(255,255,255,.08)}.home-action-btn--add:hover{border-color:#00f5ff4d;color:var(--neon-cyan)}.home-action-btn--manual:hover{border-color:#fff3}.empty-state--home{text-align:center;padding:48px 16px;color:var(--text-muted);font-size:.9rem;line-height:1.6}.dept-pick-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dept-pick-btn{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface-2);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s;text-align:left}.dept-pick-btn:hover{border-color:#00f5ff4d;background:var(--surface-3)}.dept-pick-icon{display:flex;align-items:center}.dept-pick-btn div{display:flex;flex-direction:column;gap:2px}.dept-pick-btn strong{font-size:.9rem}.dept-pick-btn small{font-size:.75rem;color:var(--text-muted)}.add-fridge-form{background:var(--surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:20px;margin-top:16px;display:flex;flex-direction:column;gap:12px}.notif-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;justify-content:flex-end;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.notif-panel-inner{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:70dvh;overflow-y:auto;padding:24px 20px}.notif-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.notif-panel-header h3{font-size:1.1rem;font-weight:700}.notif-list{display:flex;flex-direction:column;gap:8px}.notif-item{padding:12px 16px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.88rem;line-height:1.5;border-left:3px solid var(--neon-cyan)}.notif-item.unread{border-left-color:var(--neon-purple);font-weight:600}.notif-item .notif-time{font-size:.75rem;color:var(--text-muted);margin-top:4px}.notif-banner{background:var(--surface-2);border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--neon-purple);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:16px}.notif-banner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.92rem}.notif-close{background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:50%;transition:background .15s}.notif-close:hover{background:#ffffff14}.notif-banner .notif-list{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:4px}.notif-banner .notif-list li{font-size:.84rem;color:var(--text-muted);line-height:1.4;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}.notif-banner .notif-list li:last-child{border-bottom:none}.notif-banner .notif-more{color:var(--neon-cyan);font-style:italic}.notif-banner .btn-text{font-size:.82rem;color:var(--neon-cyan);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600}.notif-banner .btn-text:hover{text-decoration:underline}.notif-modal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.notif-modal-item{font-size:.85rem;color:var(--text);line-height:1.4;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm);border-left:3px solid var(--neon-purple)}.notif-dot{position:absolute;top:8px;right:8px;width:12px;height:12px;background:var(--neon-red);border-radius:50%;border:2px solid var(--surface);z-index:5;pointer-events:none}.empty-notif{text-align:center;color:var(--text-muted);font-size:.9rem;padding:24px 0}.fridge-page{height:100%;min-height:0;overflow:hidden;padding-bottom:0}.expired-manager{background:#ff225514;border:1px solid rgba(255,34,85,.2);border-radius:var(--radius);padding:16px;margin-bottom:16px}.expired-manager-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.expired-manager-header h4{font-size:.95rem;font-weight:700;color:var(--neon-red)}.expired-bulk-actions{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.btn-postpone-bulk{padding:7px 14px;border:1px solid rgba(255,140,0,.4);border-radius:20px;background:#ff8c001a;color:var(--neon-orange);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-postpone-bulk:hover{background:#ff8c0033}.btn-delete-bulk{padding:7px 14px;border:1px solid rgba(255,34,85,.4);border-radius:20px;background:#ff22551a;color:var(--neon-red);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-delete-bulk:hover{background:#f253}.expired-list{display:flex;flex-direction:column;gap:6px}.expired-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.88rem}.expired-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--neon-red);flex-shrink:0}.expired-item .expired-name{flex:1;font-weight:600}.expired-item-actions{display:flex;gap:4px}.btn-postpone-item{padding:4px 8px;border:1px solid rgba(255,140,0,.4);border-radius:6px;background:transparent;color:var(--neon-orange);font-family:inherit;font-size:.75rem;cursor:pointer}.postpone-chips{display:flex;gap:5px;flex-shrink:0}.btn-postpone-chip{display:inline-flex;align-items:center;gap:3px;padding:4px 9px;border:1px solid rgba(255,140,0,.55);background:#ff8c001a;color:orange;border-radius:20px;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s}.btn-postpone-chip:hover{background:#ff8c003d}.btn-postpone-chip svg{flex-shrink:0}.product-row--postponed{background:#ff8c000d;border-left:2px solid rgba(255,140,0,.4);padding-left:10px}.modal-title-dim{font-size:.82rem;font-weight:400;color:var(--text-muted)}.expired-item label{flex:1;min-width:0;cursor:pointer}.btn-delete-item{padding:4px 8px;border:1px solid rgba(255,34,85,.4);border-radius:6px;background:transparent;color:var(--neon-red);font-family:inherit;font-size:.75rem;cursor:pointer}.product-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.product-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);transition:border-color .15s}.product-item:hover{border-color:#ffffff1f}.product-dest{font-size:1.4rem;flex-shrink:0}.product-info{flex:1;min-width:0}.product-name{font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-meta{font-size:.75rem;color:var(--text-muted);margin-top:2px}.product-item-actions{display:flex;gap:4px;flex-shrink:0}.tag{display:inline-flex;align-items:center;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:10px;white-space:nowrap}.tag--ok{background:#00ff881f;color:var(--neon-green)}.tag--warn{background:#ff8c0026;color:var(--neon-orange)}.tag--expired{background:#ff225526;color:var(--neon-red)}.tag--postponed{background:#bf00ff1f;color:var(--neon-purple)}.tag--removed{background:#ffffff0f;color:var(--text-muted)}.fridge-fab{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.btn-fab{display:flex;align-items:center;gap:10px;padding:14px 20px;border:none;border-radius:50px;font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 20px #0006}.btn-fab:hover{transform:translateY(-2px)}.btn-fab:active{transform:scale(.97)}.btn-fab--scan{background:linear-gradient(135deg,var(--neon-cyan),#0088aa);color:#000}.btn-fab--add{background:var(--surface-2);color:var(--text);border:1px solid rgba(255,255,255,.1);padding:11px 18px;font-size:.85rem}.postpone-options{display:flex;gap:8px;margin-top:12px}.btn-postpone-opt{flex:1;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.btn-postpone-opt:hover{background:var(--surface-3);border-color:var(--neon-orange);color:var(--neon-orange)}.empty-state{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty-state .empty-icon{font-size:3rem;margin-bottom:12px}.empty-state p{font-size:.95rem;line-height:1.6}.link-neon{color:var(--accent);text-decoration:underline}.page-subtitle{font-size:.8rem;color:var(--text-muted);margin-top:2px}.app-version{text-align:center;font-size:.65rem;color:var(--text-muted);opacity:.4;padding:16px 0 8px}.product-table{margin-top:8px;margin-bottom:100px;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);overflow:hidden}.product-table-head{display:grid;grid-template-columns:1fr 36px 82px 98px;gap:6px;padding:10px 12px;background:var(--surface-2);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);align-items:center}.pthead-qty,.pthead-exp{text-align:center}.product-row{display:grid;grid-template-columns:1fr 36px 82px 68px;align-items:center;gap:6px;padding:12px;min-height:52px;border-top:1px solid rgba(255,255,255,.05);transition:background .12s}.product-row:hover{background:#ffffff08}.fridge-select-mode .product-row-actions{display:none}.fridge-select-mode .product-row{cursor:pointer;user-select:none;-webkit-user-select:none;grid-template-columns:28px 1fr 36px 82px}.fridge-select-mode .product-row:before{content:"";width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#0003;flex-shrink:0;transition:all .15s}.fridge-select-mode .product-row.fr-selected:before{background:var(--neon-cyan);border-color:var(--neon-cyan);box-shadow:0 0 6px #00f5ff66}.fridge-select-mode .product-row.fr-selected{background:#00f5ff14}.product-row-name{font-size:.85rem;font-weight:600;min-width:0;word-break:break-word;line-height:1.3}.product-row-link{color:var(--text);text-decoration:none}.product-row-link:active{color:var(--neon-cyan)}.product-row-qty{font-size:.78rem;font-weight:700;text-align:center;color:var(--neon-cyan)}.product-row-expiry{font-size:.78rem;text-align:center;white-space:nowrap}.expiry-none{color:var(--text-muted)}.product-row-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.btn-row-icon{width:30px;height:30px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.85rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent}.btn-row-icon:active{background:#ffffff1a}.btn-row-icon--danger{color:var(--neon-red);border-color:#f253}.btn-row-icon--danger:active{background:#ff225526}.btn-product-consume{font-size:.7rem;font-weight:700;color:var(--neon-cyan);border-color:#00f5ff4d}.btn-product-consume:active{background:#00f5ff26}.btn-row-icon-spacer{width:30px;flex-shrink:0}.fridge-footer{display:flex;gap:8px;flex-shrink:0;padding:8px 16px;background:var(--bg);border-top:1px solid rgba(255,255,255,.07);max-width:600px;margin:0 auto;width:100%}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-radius:var(--radius-sm);margin-bottom:8px;font-size:.88rem}.banner--error{background:#ff22551a;border:1px solid rgba(255,34,85,.25);color:var(--neon-red)}.banner--warning{background:#ff8c001a;border:1px solid rgba(255,140,0,.25);color:var(--neon-orange)}.scan-mode-choices{display:flex;flex-direction:column;gap:8px}.scan-choice-btn{display:grid;grid-template-columns:2.5rem 1fr;grid-template-rows:auto auto;gap:0 12px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:inherit;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.scan-choice-btn:hover{border-color:var(--neon-cyan);background:var(--surface-3)}.scan-choice-btn .sc-icon{grid-row:1 / 3;font-size:1.5rem;text-align:center}.scan-choice-btn .sc-label{font-size:.95rem;font-weight:700}.scan-choice-btn .sc-desc{font-size:.78rem;color:var(--text-muted)}.btn-full-cancel{width:100%;margin-top:4px}.scan-mode-bar{display:flex;gap:6px;padding:10px 16px;background:var(--bg);border-bottom:1px solid rgba(255,255,255,.06);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.scan-mode-bar::-webkit-scrollbar{display:none}.scan-mode-btn{flex:0 0 auto;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.scan-mode-btn.active{background:var(--surface-2);color:var(--neon-cyan);border-color:#00f5ff4d}.scan-page{padding:0;max-width:none}.scan-layout{display:flex;flex-direction:column;height:100%}.scan-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg);border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.scan-header h2{font-size:1.1rem;font-weight:700}.scan-mode-tabs{display:flex;gap:4px;margin-left:auto;background:var(--surface);border-radius:10px;padding:3px}.scan-tab{padding:6px 14px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.scan-tab.active{background:var(--surface-2);color:var(--neon-cyan)}.scan-camera{position:relative;flex:1;background:#000;overflow:hidden;min-height:0}.scan-camera video{width:100%;height:100%;object-fit:cover}.scan-vf-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scan-vf-box{width:min(60vw,200px);aspect-ratio:2 / 1;box-shadow:0 0 0 9999px #00000080;border-radius:4px;position:relative}.scan-vf-box .vf-c{position:absolute;width:20px;height:20px;border-color:var(--neon-cyan);border-style:solid}.scan-vf-box .vf-tl{top:-2px;left:-2px;border-width:2px 0 0 2px;border-radius:3px 0 0}.scan-vf-box .vf-tr{top:-2px;right:-2px;border-width:2px 2px 0 0;border-radius:0 3px 0 0}.scan-vf-box .vf-bl{bottom:-2px;left:-2px;border-width:0 0 2px 2px;border-radius:0 0 0 3px}.scan-vf-box .vf-br{bottom:-2px;right:-2px;border-width:0 2px 2px 0;border-radius:0 0 3px}.scan-vf-box .scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--neon-cyan),transparent);box-shadow:0 0 8px var(--neon-cyan);animation:scan-sweep 2s ease-in-out infinite}@keyframes scan-sweep{0%,to{top:4px}50%{top:calc(100% - 6px)}}.scan-camera-hint{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:.75rem;color:#fff9;text-shadow:0 1px 4px rgba(0,0,0,.8)}.ocr-status{position:absolute;top:12px;left:0;right:0;text-align:center;font-size:.8rem;font-weight:600;color:var(--neon-purple);text-shadow:0 1px 4px rgba(0,0,0,.9);padding:0 16px}.scan-items{flex-shrink:0;max-height:35dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border-top:1px solid rgba(255,255,255,.06)}.scan-items-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;background:var(--surface);z-index:2}.scan-item-list{padding:0 8px 8px;display:flex;flex-direction:column;gap:4px}.scan-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.85rem}.scan-item .item-dest-toggle{font-size:1.2rem;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0}.scan-item .item-info{flex:1;min-width:0}.scan-item .item-barcode{font-size:.75rem;color:var(--text-muted);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-item .item-name-input{background:transparent;border:none;color:var(--text);font-family:inherit;font-size:.88rem;font-weight:600;width:100%;outline:none;border-bottom:1px solid transparent;transition:border-color .15s}.scan-item .item-name-input:focus{border-bottom-color:var(--neon-cyan)}.scan-item .btn-remove-item{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:2px 4px;border-radius:4px;transition:color .15s}.scan-item .btn-remove-item:hover{color:var(--neon-red)}.scan-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.scan-pending-overlay{position:relative;z-index:10;background:#000000d1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:80px}.scan-pending-overlay .pending-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 4px;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;background:#000000eb;z-index:2}.pending-title{font-size:.82rem;color:var(--text-muted)}.pending-title strong{color:var(--neon-green)}.pending-cols-header{display:grid;grid-template-columns:1fr minmax(70px,auto) auto;gap:6px;padding:6px 12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);position:sticky;top:34px;background:#000000eb;z-index:1;border-bottom:1px solid rgba(255,255,255,.06);align-items:center}.pch-date{text-align:center}.pch-qty{text-align:right}.pch-dest,.pch-del{display:none}.pending-list{list-style:none;display:flex;flex-direction:column;padding:0}.pending-item{display:grid;grid-template-columns:1fr minmax(70px,auto) auto;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid rgba(255,255,255,.05)}.pending-item-info{min-width:0}.pending-qty-badge{color:var(--neon-cyan, #0ff);font-weight:700;font-size:.78rem;margin-right:3px;white-space:nowrap}.pending-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-name-line{display:flex;align-items:baseline;min-width:0;overflow:hidden}.pending-brand{display:block;font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.pending-barcode{font-size:.62rem;color:var(--text-muted);font-family:monospace}.pending-row-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.pending-row-actions .btn-row-icon{width:30px;height:30px}.pending-dest-btn{width:30px;height:30px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:transparent;font-size:.85rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s;-webkit-tap-highlight-color:transparent}.pending-dest-btn.dest-freezer{border-color:#64b4ff4d;background:#64b4ff14}.pending-dest-btn.dest-pantry{border-color:#ffb43c4d;background:#ffb43c14}.pending-dest-btn:active{background:#ffffff1a}.btn-pending-delete{width:30px;height:30px;border:1px solid rgba(255,34,85,.2);border-radius:8px;background:transparent;color:var(--neon-red);font-size:.85rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s;-webkit-tap-highlight-color:transparent}.btn-pending-delete:active{background:#ff225526}.pending-qty-minus,.pending-qty-plus{font-size:1rem;font-weight:900;color:var(--neon-cyan);border-color:#00f5ff4d}.pending-qty-minus:active,.pending-qty-plus:active{background:#00f5ff26}.settings-page--fixed-footer{padding-bottom:0!important;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.settings-scroll-area{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.settings-fixed-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.07);background:var(--bg);flex-shrink:0}.settings-fridges-list{padding-bottom:140px}.settings-menu-page{padding:0 0 calc(16px + env(safe-area-inset-bottom,0px))}.settings-menu-user-row{display:flex;align-items:center;gap:14px;width:100%;padding:18px 16px;background:var(--surface);border:none;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;color:var(--text);text-align:left}.settings-menu-user-row:active{opacity:.7}.smu-avatar{width:48px;height:48px;background:#00f5ff26;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:var(--neon-cyan);flex-shrink:0;letter-spacing:-.03em}.smu-info{flex:1;min-width:0}.smu-name{display:block;font-weight:600;font-size:.95rem}.smu-email{display:block;font-size:.72rem;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-menu-group{margin-top:24px;padding:0 14px}.settings-menu-label{display:block;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;padding-left:4px}.settings-menu-card{background:var(--surface);border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.settings-menu-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;color:var(--text);text-align:left;transition:background .12s}.settings-menu-row:last-child{border-bottom:none}.settings-menu-row:active{background:#ffffff0a}.settings-row-icon{font-size:1.1rem;width:26px;text-align:center;flex-shrink:0}.settings-row-text{flex:1;min-width:0}.settings-row-title{display:block;font-size:.88rem}.settings-row-sub{display:block;font-size:.7rem;color:var(--text-muted);margin-top:2px}.settings-chevron{color:#ffffff4d;font-size:1.2rem;line-height:1;flex-shrink:0}.settings-menu-row--danger .settings-row-title{color:#ff6b6b}.settings-menu-row--danger .settings-row-icon{filter:none}.settings-section{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.06)}.settings-section:last-child{border-bottom:none}.settings-section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:16px}.settings-list{list-style:none;display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.settings-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);font-size:.9rem}.settings-list-item span{display:flex;align-items:center;gap:8px}.settings-fridge-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#00f5ff14;flex-shrink:0}.settings-fridge-icon svg{width:18px;height:18px}.settings-item-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.btn-edit-fridge:hover{background:#00f5ff1f;color:var(--neon-cyan)}.btn-icon-sm svg{width:14px;height:14px;pointer-events:none}.settings-list-item small{font-size:.75rem;color:var(--text-muted)}.settings-list .empty{padding:12px 0;color:var(--text-muted);font-size:.88rem}.no-group-page{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:24px}.no-group-card{text-align:center;max-width:360px}.no-group-icon{font-size:3rem;margin-bottom:16px}.no-group-title{font-size:1.3rem;font-weight:700;margin:0 0 12px}.no-group-desc{font-size:.9rem;color:var(--text-muted);line-height:1.6;margin:0 0 28px}.no-group-actions{display:flex;flex-direction:column;gap:12px}.group-card{background:var(--surface);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.group-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.group-card-header>span{display:flex;align-items:center;gap:8px}.group-members-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.group-member-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;background:#ffffff08}.group-member-info{display:flex;flex-direction:column;min-width:0}.group-member-name{font-size:.85rem;font-weight:600}.group-member-email{font-size:.72rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-member-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.btn-kick-member{width:26px;height:26px;border:1px solid rgba(255,80,80,.3);border-radius:8px;background:transparent;color:#f55;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.btn-kick-member:hover{background:#ff505026}.settings-info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.settings-info-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);font-size:.9rem}.settings-info-label{color:var(--text-muted)}.settings-info-value{color:var(--text-primary);font-weight:500;text-align:right;max-width:60%}.invite-icon{font-size:3rem;text-align:center}.invite-actions{display:flex;flex-direction:column;gap:10px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none}.modal-overlay--visible{opacity:1;pointer-events:all}.modal-box{width:100%;max-width:480px;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:28px 24px 36px;display:flex;flex-direction:column;gap:16px;transform:translateY(20px);transition:transform .25s cubic-bezier(.34,1.2,.64,1)}.modal-overlay--visible .modal-box{transform:translateY(0)}.modal-title{font-size:1.1rem;font-weight:700}.modal-content{font-size:.9rem;color:var(--text-muted);line-height:1.6}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.btn-modal-cancel{padding:10px 20px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-modal-cancel:hover{background:#ffffff0f}.btn-modal-confirm{padding:10px 24px;border:none;border-radius:var(--radius-sm);background:var(--neon-cyan);color:#000;font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:opacity .15s}.btn-modal-confirm:hover{opacity:.85}.btn-modal-danger{background:var(--neon-red);color:#fff}.invite-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px;text-align:center}@keyframes pop-in{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.invite-success-icon{width:60px;height:60px;border-radius:50%;background:#00ff881f;border:2px solid var(--neon-green);color:var(--neon-green);font-size:1.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;animation:pop-in .35s cubic-bezier(.34,1.56,.64,1) both}.invite-success-title{font-size:1.15rem;font-weight:700;color:var(--neon-green)}.invite-success-email{font-family:monospace;font-size:.88rem;color:var(--text);background:var(--surface-2);padding:6px 14px;border-radius:8px;word-break:break-all}.invite-success-note{font-size:.82rem;color:var(--text-muted)}.invite-warn{font-size:.8rem;color:var(--neon-orange);background:#ff8c0014;border:1px solid rgba(255,140,0,.3);border-radius:10px;padding:10px 14px;text-align:left;line-height:1.5}.invite-error-detail{display:block;margin-top:4px;font-family:monospace;font-size:.75rem;color:var(--neon-red);word-break:break-all}.invite-error-msg{font-size:.82rem;color:var(--neon-red);background:#ff225514;border:1px solid rgba(255,34,85,.3);border-radius:10px;padding:10px 14px;margin-top:4px}.ocr-popup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px}.ocr-popup-box{background:var(--surface);border-radius:var(--radius-lg);padding:24px 20px 20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.ocr-popup-box h4{font-size:1.05rem;font-weight:700;margin:0}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(90vw,400px)}.toast{padding:12px 20px;border-radius:50px;font-size:.88rem;font-weight:600;color:#000;box-shadow:0 4px 20px #0006;pointer-events:all;max-width:100%;text-align:center;opacity:0;transform:translateY(16px) scale(.92);transition:opacity .3s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.toast--visible{opacity:1;transform:translateY(0) scale(1)}.toast--success{background:var(--neon-green)}.toast--error{background:var(--neon-red);color:#fff}.toast--warn{background:var(--neon-orange)}.toast--info{background:var(--neon-cyan)}.scanner-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:550;background:#000;flex-direction:column;align-items:stretch;overflow:hidden;max-height:100dvh}.scanner-modal.open{display:flex;animation:modal-in .25s ease}@keyframes modal-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.scanner-modal video,.scan-video-wrap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}#scan-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#000}#scan-video:not([src]):not(.scan-video--ready){visibility:hidden}video.scan-video--ready{visibility:visible}.scanner-topbar{position:relative;z-index:10;display:flex;align-items:center;gap:12px;padding:16px 20px;padding-top:max(16px,env(safe-area-inset-top));background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);flex-shrink:0}.scanner-mode-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--scan-color);background:#00000080;padding:4px 10px;border-radius:20px;border:1px solid currentColor;white-space:nowrap}.scanner-timer-track{flex:1;height:3px;background:#ffffff26;border-radius:2px;overflow:hidden}.scanner-timer-bar{height:100%;width:100%;background:var(--scan-color);border-radius:2px;transform-origin:left center}.scanner-timer-bar.running{animation:timer-drain 30s linear forwards}@keyframes timer-drain{0%{width:100%}to{width:0%}}.btn-close{width:36px;height:36px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.btn-close:hover{background:#ffffff38}.scanner-stage{position:relative;z-index:10;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.vf-box{position:relative;width:min(70vw,70vh,300px);aspect-ratio:1;box-shadow:0 0 0 9999px #0000009e;border-radius:4px}.vf-c{position:absolute;width:28px;height:28px;border-color:var(--scan-color);border-style:solid}.vf-tl{top:-2px;left:-2px;border-width:3px 0 0 3px;border-radius:4px 0 0}.vf-tr{top:-2px;right:-2px;border-width:3px 3px 0 0;border-radius:0 4px 0 0}.vf-bl{bottom:-2px;left:-2px;border-width:0 0 3px 3px;border-radius:0 0 0 4px}.vf-br{bottom:-2px;right:-2px;border-width:0 3px 3px 0;border-radius:0 0 4px}.scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--scan-color),transparent);box-shadow:0 0 10px 1px var(--scan-color);animation:scan-sweep-legacy 2s ease-in-out infinite}@keyframes scan-sweep-legacy{0%{top:8%}50%{top:88%}to{top:8%}}.vf-box.success{animation:vf-flash .4s ease}@keyframes vf-flash{0%{box-shadow:0 0 0 9999px #0000009e}40%{box-shadow:0 0 0 9999px #0000004d,0 0 40px 10px var(--neon-green)}to{box-shadow:0 0 0 9999px #0000009e}}.scanner-hint{position:relative;z-index:10;color:#fff;font-size:.85rem;text-align:center;padding:6px 16px 2px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scanner-bottombar{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom));background:#0009;flex-shrink:0}.ai-capture-panel{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 16px;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;position:relative;flex-shrink:0}.ai-capture-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:380px}.ai-capture-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px;background:#ffffff0f;border:2px solid rgba(255,255,255,.15);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s,transform .1s;color:#fff;font-family:inherit;-webkit-tap-highlight-color:transparent}.ai-capture-card:active{transform:scale(.96);background:#ffffff1f}.ai-capture-card--active{border-color:#00e676;box-shadow:0 0 0 2px #00e67638}.ai-cap-product-wrap,.ai-cap-date-wrap{position:relative;display:flex;flex-direction:column}.ai-cap-product-wrap .ai-capture-card,.ai-cap-date-wrap .ai-capture-card{flex:1;width:100%}.ai-cap-confirm{position:absolute;bottom:6px;right:6px;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:5}.ai-cap-ok-icon{font-size:18px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}.ai-cap-redo,.ai-cap-ok{width:26px;height:26px;border-radius:50%;border:none;font-size:.75rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #00000073;-webkit-tap-highlight-color:transparent;line-height:1}.ai-cap-redo{background:#f44;color:#fff}.ai-cap-ok{background:#00e676;color:#000}.ai-capture-card.captured{border-color:#00f5ff;background:#00f5ff14}.ai-capture-card.captured .ai-card-label{color:#00f5ff}.ai-thumb{width:80px;height:60px;border-radius:7px;background:#ffffff0a;display:flex;align-items:center;justify-content:center;overflow:hidden}.ai-thumb img{width:100%;height:100%;object-fit:cover;border-radius:7px}.ai-thumb-icon{font-size:1.7rem}.ai-card-label{font-size:.8rem;font-weight:700;letter-spacing:.01em;transition:color .2s}.ai-card-hint{font-size:.68rem;color:#ffffff73;text-align:center;line-height:1.3}.btn-ai-analyze{width:100%;max-width:380px}.btn-ai-analyze:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.voice-panel{display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 20px 16px;flex-shrink:0;background:#000000d1;position:relative;z-index:10;justify-content:flex-end}.voice-cta{width:100%;max-width:380px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:16px;flex-shrink:0}.voice-cta-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.voice-placeholder{color:#fff6;font-size:.88rem;margin:0;line-height:1.4}.voice-text{color:#fff;font-size:.95rem;line-height:1.45;margin:0;transition:opacity .2s}.voice-mic-btn{width:60px;height:60px;min-width:60px;border-radius:50%;border:3px solid rgba(255,255,255,.25);background:#ffffff12;font-size:1.6rem;cursor:pointer;transition:transform .15s,background .2s,border-color .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-tap-highlight-color:transparent}.voice-mic-btn:active{transform:scale(.9)}.voice-mic-btn.recording{border-color:#f44;background:#ff444426;animation:pulse-mic 1.2s ease-in-out infinite}@keyframes pulse-mic{0%,to{box-shadow:0 0 #ff444473}50%{box-shadow:0 0 0 12px #f440}}.voice-example{color:#ffffff47;font-size:.72rem;margin:0;font-style:italic}.btn-voice-analyze{width:100%;max-width:380px}.btn-voice-analyze:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.btn-cancel{padding:12px 40px;border:1px solid rgba(255,255,255,.25);border-radius:50px;background:#ffffff14;color:#fff;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s}.btn-cancel:hover{background:#ffffff29}.scanner-modal.mode-2d{--scan-color: var(--neon-purple)}.settings-section-desc{color:var(--text-muted);font-size:.82rem;margin:-8px 0 12px}.settings-hint-box{background:#00f5ff0a;border:1px solid rgba(0,245,255,.12);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px;font-size:.8rem;color:var(--text);line-height:1.5}.settings-hint-box ul{margin:6px 0 0 16px;list-style:disc}.settings-hint-box li{margin-bottom:4px}.settings-textarea{width:100%;background:var(--surface-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text);padding:12px;font-size:.85rem;line-height:1.5;font-family:inherit;resize:vertical}.settings-textarea:focus{outline:none;border-color:var(--neon-cyan)}.code-row{align-items:flex-start!important;gap:8px}.code-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.code-value{font-family:monospace;font-size:1.1rem;font-weight:700;letter-spacing:2px;color:var(--neon-cyan)}.code-value.code-disabled{color:var(--text-muted);text-decoration:line-through}.code-desc,.code-uses{font-size:.76rem;color:var(--text-muted)}.code-actions{display:flex;gap:4px;flex-shrink:0}.app-nav{position:relative;height:calc(64px + env(safe-area-inset-bottom,0px));z-index:10;background:#12121aeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:flex-start;justify-content:space-around;padding:0 0 env(safe-area-inset-bottom,0px);flex-shrink:0}.app-nav.hidden{display:none}.nav-btn{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;padding:8px 0;color:var(--text-muted);transition:color .2s ease;-webkit-tap-highlight-color:transparent}.nav-btn.active{color:var(--neon-cyan)}.nav-icon-svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}.nav-btn.active .nav-icon-svg{transform:scale(1.1)}.nav-label{font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.nav-icon-wrap{position:relative;display:inline-flex}.nav-badge{position:absolute;top:-4px;right:-8px;background:#ff5252;color:#fff;font-size:.6rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;cursor:pointer;z-index:2}.nav-badge.hidden{display:none}.bought-pill{position:fixed;bottom:calc(74px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--surface-2);border:1px solid var(--neon-cyan);border-radius:24px;padding:8px 16px;display:flex;align-items:center;gap:10px;z-index:90;box-shadow:0 4px 16px #0006;animation:pill-slide-up .3s ease-out}@keyframes pill-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.bought-pill-text{color:var(--text-primary);font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}.bought-pill-x{background:none;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;padding:2px 4px;line-height:1;border-radius:50%;transition:color .15s}.bought-pill-x:hover,.bought-pill-x:active{color:#ff5252}.bb-mode-btn{flex:1;padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s}.bb-mode-btn.active{background:var(--neon-cyan);color:var(--bg);border-color:var(--neon-cyan)}.bb-priority-list{display:flex;flex-direction:column;gap:6px;width:100%}.bb-priority-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:.82rem}.bb-priority-fixed{opacity:.7;border-style:dashed}.bb-priority-handle{color:var(--text-muted);font-size:.9rem;cursor:grab;flex-shrink:0}.bb-priority-fixed .bb-priority-handle{visibility:hidden}.bb-priority-icon{font-size:1.1rem;flex-shrink:0}.bb-priority-badge{margin-left:auto;color:var(--neon-cyan);font-weight:700;font-size:.75rem;flex-shrink:0}.bb-priority-arrows{display:flex;flex-direction:column;gap:2px;margin-left:6px;flex-shrink:0}.bb-priority-arrows button{background:none;border:none;color:var(--text-muted);font-size:.6rem;cursor:pointer;padding:1px 4px;line-height:1}.bb-priority-arrows button:disabled{opacity:.2;cursor:default}.bb-priority-arrows button:not(:disabled):active{color:var(--neon-cyan)}.lang-list{display:flex;flex-direction:column;gap:4px;width:100%;max-height:300px;overflow-y:auto}.lang-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;cursor:pointer;width:100%;text-align:left;color:var(--text-primary);font-size:.88rem;transition:border-color .15s}.lang-option:active,.lang-option.lang-active{border-color:var(--neon-cyan)}.lang-active{background:#00ffc80f}.lang-flag{font-size:1.3rem;flex-shrink:0}.lang-name{flex:1}.lang-check{color:var(--neon-cyan);font-weight:700;flex-shrink:0}.lang-panel.hidden{display:none}.lang-code{font-weight:700;color:var(--neon-cyan);min-width:28px}.login-lang-row{display:flex;justify-content:flex-end;position:relative;margin:-16px -8px 0 0}.login-lang-toggle{display:flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:6px 14px 6px 10px;cursor:pointer;color:var(--neon-cyan);font-size:.85rem}.login-lang-toggle svg{width:18px;height:18px;opacity:.8}.login-lang-code{font-weight:700;letter-spacing:.05em}.login-lang-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #0009;min-width:160px}.login-lang-dropdown.hidden{display:none}.login-lang-option{display:flex;align-items:center;gap:10px;padding:10px 16px;width:100%;border:none;background:transparent;color:var(--text-primary);font-size:.9rem;cursor:pointer;text-align:left}.login-lang-option:active{background:#00ffc81a}.login-lang-option+.login-lang-option{border-top:1px solid var(--border)}.nav-indicator{position:absolute;top:0;height:2px;background:var(--neon-cyan);border-radius:0 0 2px 2px;transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1)}.ptr-indicator{position:fixed;top:-50px;left:50%;translate:-50% 0;width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;z-index:9999;transition:transform .15s ease;box-shadow:0 2px 12px #0006;opacity:0;pointer-events:none}.ptr-indicator.ptr-visible{opacity:1;transition:none}.ptr-indicator.ptr-refreshing{transition:transform .2s ease}.ptr-spinner{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.15);border-top-color:var(--neon-cyan);border-radius:50%;opacity:0;transition:none}.ptr-indicator.ptr-ready .ptr-spinner{border-top-color:var(--neon-green)}.ptr-indicator.ptr-refreshing .ptr-spinner{opacity:1!important;animation:ptr-spin .6s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}.update-banner{position:fixed;top:0;left:0;right:0;z-index:700;background:#1a7a3a;color:#fff;text-align:center;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;cursor:pointer;font-size:.88rem;font-weight:600;letter-spacing:.01em}.bug-report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:650;background:#000000f2;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:32px 16px 24px;overflow-y:auto}.bug-report-box{width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center;gap:18px}.bug-report-title{font-size:1.2rem;font-weight:700;color:#fff;text-align:center;margin-bottom:4px}.bug-report-subtitle{font-size:.85rem;color:#ffffff73;text-align:center;margin-top:-10px}.bug-report-confirm{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:14px;color:#fff;font-size:.95rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.bug-report-actions{display:flex;gap:12px;width:100%}.bug-report-actions .btn-modal-confirm,.bug-report-actions .btn-modal-cancel{flex:1}.pw-confirm-wrap{position:relative}.pw-confirm-wrap input{padding-right:38px}.pw-match-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--neon-green);font-weight:700;font-size:1rem;opacity:0;transition:opacity .18s;pointer-events:none;-webkit-user-select:none;user-select:none}.pw-match-icon--visible{opacity:1}.app-header-help-btn svg{stroke:#f59e0b}.manual-page{padding:16px 16px 40px;max-width:600px;margin:0 auto}.manual-hero{text-align:center;padding:24px 0 28px}.manual-hero-title{font-size:1.6rem;font-weight:900;color:var(--neon-cyan);letter-spacing:-.02em}.manual-hero-sub{font-size:.9rem;color:var(--text-muted);margin-top:6px}.manual-section{background:var(--surface);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);padding:20px;margin-bottom:16px}.manual-section-header{display:flex;align-items:center;gap:14px;margin-bottom:14px}.manual-section-title{font-size:1.05rem;font-weight:700;color:var(--text)}.manual-section-body{font-size:.9rem;color:#e8e8ffc7;line-height:1.65}.manual-section-body p{margin-bottom:10px}.manual-section-body p:last-child{margin-bottom:0}.manual-section-body ul,.manual-section-body ol{padding-left:20px;margin-bottom:10px}.manual-section-body li{margin-bottom:4px}.manual-section-body strong{color:var(--text)}.manual-icon{width:44px;height:44px;min-width:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.manual-icon svg{width:22px;height:22px}.manual-inline-icon{display:inline-flex;vertical-align:middle;margin:0 2px;position:relative;top:-1px}.manual-tip{background:#00f5ff0f;border:1px solid rgba(0,245,255,.18);border-radius:10px;padding:10px 14px;font-size:.84rem;color:#e8e8ffb3;margin-top:12px;line-height:1.5}.manual-badges-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.manual-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.82rem;font-weight:600;white-space:nowrap}.manual-subsection{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.manual-subsection:first-child{margin-top:0;padding-top:0;border-top:none}.manual-subsection strong{display:block;margin-bottom:4px;color:var(--text)}.manual-mode-list{display:flex;flex-direction:column;gap:14px;margin:14px 0 8px}.manual-mode-item{display:flex;gap:14px;align-items:flex-start}.manual-mode-item .manual-icon{width:38px;height:38px;min-width:38px;border-radius:10px}.manual-mode-item .manual-icon svg{width:18px;height:18px}.manual-mode-item p{margin:2px 0 0;font-size:.84rem;color:#e8e8ffa6}.manual-mode-item strong{font-size:.92rem;color:var(--text)}.manual-footer{text-align:center;margin-top:28px;font-size:.82rem;color:var(--text-muted);padding-bottom:8px}.manual-email-link{display:inline-block;color:var(--accent);font-size:1.05rem;font-weight:600;text-decoration:none;letter-spacing:.01em;padding:6px 0}.manual-email-link:hover{text-decoration:underline}.help-menu{position:fixed;top:56px;right:8px;z-index:2000;background:var(--surface-2, #1a1a2e);border:1px solid var(--accent, #00f5ff);border-radius:12px;padding:4px;min-width:210px;box-shadow:0 8px 32px #00000080,0 0 12px #00f5ff14;animation:fadeIn .12s ease}.help-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;background:transparent;color:var(--text, #e0e0e0);font-size:.92rem;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s}.help-menu-item svg{flex-shrink:0;opacity:.8}.help-menu-item:hover{background:#00f5ff14;color:var(--accent, #00f5ff)}.help-menu-item:hover svg{opacity:1;stroke:var(--accent, #00f5ff)}.help-menu-divider{height:1px;background:var(--border, #333);margin:3px 10px}.bell-dot{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;background:var(--neon-red, #ff3b3b);border:2px solid var(--surface-1, #0d0d1a);pointer-events:none;animation:bell-dot-pulse 2s ease-in-out infinite}@keyframes bell-dot-pulse{0%,to{box-shadow:0 0 #ff3b3b80}50%{box-shadow:0 0 0 4px #ff3b3b00}}.expiry-dropdown{position:fixed;top:56px;right:8px;z-index:2000;background:var(--surface-2, #1a1a2e);border:1px solid var(--accent, #00f5ff);border-radius:12px;padding:6px;min-width:280px;max-width:340px;max-height:70vh;overflow-y:auto;box-shadow:0 8px 32px #00000080,0 0 12px #00f5ff14;animation:fadeIn .12s ease}.expiry-dd-empty{padding:24px 16px;text-align:center;color:var(--text-muted, #888);font-size:.9rem}.expiry-dd-section-title{padding:6px 12px 4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.expiry-dd-section--expired{color:var(--neon-red, #ff3b3b)}.expiry-dd-section--expiring{color:var(--neon-yellow, #ffd700)}.expiry-dd-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.expiry-dd-item:hover{background:#00f5ff14}.expiry-dd-item--expired{border-left:3px solid var(--neon-red, #ff3b3b)}.expiry-dd-item--expiring{border-left:3px solid var(--neon-yellow, #ffd700)}.expiry-dd-icon{font-size:1.3rem;flex-shrink:0;width:28px;text-align:center}.expiry-dd-info{display:flex;flex-direction:column;gap:1px;min-width:0}.expiry-dd-name{font-size:.88rem;font-weight:600;color:var(--text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expiry-dd-qty{font-size:.72rem;font-weight:700;color:var(--accent, #00f5ff);margin-left:4px}.expiry-dd-meta{font-size:.75rem;color:var(--text-muted, #888)}.expiry-dd-dismiss-all{display:block;width:100%;padding:10px;margin-top:4px;border:none;border-top:1px solid var(--border, #333);background:transparent;color:var(--accent, #00f5ff);font-size:.82rem;font-weight:600;cursor:pointer;border-radius:0 0 8px 8px;transition:background .15s}.expiry-dd-dismiss-all:hover{background:#00f5ff14}.eula-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:16px;animation:modal-in .25s ease}.eula-card{background:var(--surface-2);border:1px solid rgba(0,245,255,.18);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 60px #00f5ff14}.eula-header{padding:20px 22px 14px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.eula-title{display:block;font-size:1.1rem;font-weight:700;color:var(--neon-cyan);margin-bottom:4px}.eula-sub{display:block;font-size:.78rem;color:var(--text-muted)}.eula-body{flex:1;overflow-y:auto;padding:18px 22px;font-size:.83rem;line-height:1.65;color:#e8e8ffd9;-webkit-overflow-scrolling:touch}.eula-body h2{font-size:1rem;color:var(--text);margin-bottom:10px}.eula-body h3{font-size:.88rem;color:var(--neon-cyan);margin:18px 0 6px}.eula-body p{margin-bottom:8px}.eula-body ul{padding-left:18px;margin-bottom:8px}.eula-body ul li{margin-bottom:4px}.eula-footer{flex-shrink:0;padding:14px 22px 20px;border-top:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:10px}.eula-scroll-hint{text-align:center;font-size:.78rem;color:var(--text-muted);animation:eula-bounce 1.4s ease-in-out infinite}@keyframes eula-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.eula-accept-btn{width:100%;padding:14px;font-size:1rem;font-weight:700;border-radius:var(--radius-sm);transition:opacity .2s,filter .2s}.eula-accept-btn:disabled{opacity:.35;filter:grayscale(.6);cursor:not-allowed}.eula-accept-btn.enabled{animation:eula-pulse 1.8s ease-in-out 2}@keyframes eula-pulse{0%,to{box-shadow:0 0 #00f5ff00}50%{box-shadow:0 0 16px 4px #00f5ff59}}.home-hero-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.home-page--landing{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:15vh}.page-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding:0 16px}.home-hero-buttons--landing{width:100%;max-width:400px;gap:16px}.home-hero-buttons--landing .home-hero-btn{padding:36px 20px;gap:14px;font-size:1.1rem}.home-hero-buttons--landing .home-hero-icon{width:48px;height:48px}.assistant-page{height:100%;min-height:0;overflow:hidden;padding:0;max-width:600px}.ai-chat-welcome-fixed{flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}.ai-chat-welcome{display:flex;flex-direction:column;align-items:center;padding:10px 14px;gap:8px}.ai-chat-welcome-header{display:flex;align-items:center;gap:10px;width:100%}.ai-chat-welcome-left{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.ai-chat-welcome-icon{font-size:1.6rem}.ai-chat-welcome-title{font-size:.8rem;font-weight:700;color:var(--text);white-space:nowrap}.ai-chat-welcome-right{flex:1;font-size:.72rem;color:var(--neon-cyan);background:#00f5ff0f;border:1px solid rgba(0,245,255,.12);border-radius:8px;padding:8px 10px;line-height:1.35;text-align:left}.ai-chat-welcome-subtitle{font-size:.78rem;color:var(--text-muted);text-align:center}.ai-hints-carousel{width:100%;height:36px;overflow:hidden;position:relative;border-radius:8px;background:#bf00ff0f;border:1px solid rgba(191,0,255,.15)}.ai-hints-track{width:100%;height:100%;position:relative}.ai-hint-slide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:0 12px;font-size:.75rem;font-style:italic;color:var(--neon-purple);font-weight:500;opacity:0;transform:translate(100%);transition:none;pointer-events:none}.ai-hint-slide.ai-hint-active{opacity:1;transform:translate(0);transition:none}.ai-hint-slide.ai-hint-exit{opacity:0;transform:translate(-100%);transition:opacity .4s ease,transform .4s ease}.ai-hint-slide.ai-hint-enter{opacity:1;transform:translate(0);transition:opacity .4s ease,transform .4s ease}.ai-chat-messages{min-height:40px;flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ai-chat-msg{padding:8px 12px;border-radius:10px;font-size:.82rem;line-height:1.45;max-width:85%;word-break:break-word}.ai-chat-msg--user{background:var(--accent, #0ff);color:#0a0a0f;align-self:flex-end;border-bottom-right-radius:3px}.ai-chat-msg--ai{background:#1e2030;color:#e0e0e0;align-self:flex-start;border-bottom-left-radius:3px}.ai-chat-thinking{opacity:.6;font-style:italic}.ai-chat-input-row{display:flex;gap:8px;padding:8px 10px;border-top:1px solid var(--border, #1e2030);flex-shrink:0}.ai-chat-input{flex:1;background:#1a1b24;border:1px solid #2a2b3a;border-radius:8px;padding:8px 12px;color:#e0e0e0;font-size:.85rem;outline:none}.ai-chat-input:focus{border-color:var(--accent, #0ff)}.ai-chat-input:disabled{opacity:.5}.ai-chat-wave{flex:1;background:#1a1b24;border:1px solid var(--accent, #0ff);border-radius:8px;height:36px;min-width:0}.ai-chat-wave[hidden]{display:none}.ai-chat-send{background:var(--accent, #0ff);color:#0a0a0f;border:none;border-radius:8px;width:40px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.ai-chat-send:disabled{opacity:.4}.ai-chat-cancel{background:#f253;color:#f57;border:1px solid #ff2255;border-radius:8px;width:40px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-chat-mic{background:none;border:1px solid #2a2b3a;border-radius:8px;width:40px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-chat-mic.recording{background:#f253;border-color:#f25;animation:mic-pulse 1s infinite}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.5}}.ai-chat-voice-btn{background:linear-gradient(135deg,#bf00ff26,#00f5ff26);border:1px solid rgba(191,0,255,.3);border-radius:8px;width:40px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#bb86fc;transition:all .2s}.ai-chat-voice-btn svg{width:20px;height:20px}.ai-chat-voice-btn:active{transform:scale(.93);background:linear-gradient(135deg,#bf00ff40,#00f5ff40)}.voice-conv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99000;background:radial-gradient(ellipse at center,#0f1020,#06060c 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:vc-fade-in .3s ease}.voice-conv-overlay--hiding{animation:vc-fade-out .3s ease forwards}@keyframes vc-fade-in{0%{opacity:0}to{opacity:1}}@keyframes vc-fade-out{0%{opacity:1}to{opacity:0}}.voice-conv-close{position:absolute;top:max(env(safe-area-inset-top,16px),16px);right:16px;background:none;border:none;color:#ffffff80;cursor:pointer;padding:8px;z-index:2;transition:color .2s}.voice-conv-close:hover{color:#ffffffe6}.voice-conv-status{position:absolute;top:25%;color:#fff9;font-size:.85rem;font-weight:500;letter-spacing:.5px;text-align:center;transition:opacity .3s}.voice-conv-transcript{position:absolute;bottom:max(env(safe-area-inset-bottom,40px),40px);left:20px;right:20px;color:#fff6;font-size:.78rem;text-align:center;max-height:80px;overflow:hidden;transition:opacity .3s}.voice-conv-orb-wrap{position:relative;width:180px;height:180px;cursor:pointer;-webkit-tap-highlight-color:transparent}.voice-conv-orb{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.voice-conv-orb-core{width:80px;height:80px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#1a2040,#0a0e1a);box-shadow:0 0 40px #6478ff26;transition:box-shadow .5s ease,transform .5s ease,background .5s ease}.voice-conv-orb-ring{position:absolute;border-radius:50%;border:1.5px solid transparent;transition:border-color .5s ease,box-shadow .5s ease,opacity .5s ease}.voice-conv-orb-ring--1{top:10px;right:10px;bottom:10px;left:10px;animation:vc-ring-rotate 8s linear infinite}.voice-conv-orb-ring--2{top:0;right:0;bottom:0;left:0;animation:vc-ring-rotate 12s linear infinite reverse}.voice-conv-orb-ring--3{top:-10px;right:-10px;bottom:-10px;left:-10px;animation:vc-ring-rotate 16s linear infinite}@keyframes vc-ring-rotate{to{transform:rotate(360deg)}}[data-state=idle] .voice-conv-orb-core{animation:vc-breathe 4s ease-in-out infinite;box-shadow:0 0 30px #6478c81f}[data-state=idle] .voice-conv-orb-ring--1{border-top-color:#648cff33;border-right-color:#8c64ff26}[data-state=idle] .voice-conv-orb-ring--2{border-bottom-color:#648cff1a}[data-state=idle] .voice-conv-orb-ring--3{opacity:.3}@keyframes vc-breathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}[data-state=listening] .voice-conv-orb-core{background:radial-gradient(circle at 35% 35%,#0a3030,#0a1a1a);box-shadow:0 0 40px #00f5ff40,0 0 80px rgba(0,245,255,var(--vc-amplitude, .1));transform:scale(calc(1 + var(--vc-amplitude, 0) * .15));transition:transform .08s ease-out,box-shadow .08s ease-out;animation:none}[data-state=listening] .voice-conv-orb-ring--1{border-top-color:#00f5ff80;border-right-color:#00dcb466;box-shadow:0 0 12px #00f5ff33}[data-state=listening] .voice-conv-orb-ring--2{border-bottom-color:#00f5ff4d;border-left-color:#00c8c833}[data-state=listening] .voice-conv-orb-ring--3{border-top-color:#00f5ff26;opacity:.7}[data-state=thinking] .voice-conv-orb-core{background:radial-gradient(circle at 40% 40%,#1a1040,#0a0a20);box-shadow:0 0 50px #8c50ff40;animation:vc-think-pulse 1.2s ease-in-out infinite}[data-state=thinking] .voice-conv-orb-ring--1{border-top-color:#8c50ff80;border-right-color:#5078ff66;animation-duration:2s;box-shadow:0 0 15px #8c50ff33}[data-state=thinking] .voice-conv-orb-ring--2{border-bottom-color:#bf00ff66;border-left-color:#6464ff4d;animation-duration:3s}[data-state=thinking] .voice-conv-orb-ring--3{border-top-color:#bf00ff33;border-right-color:#8c50ff26;animation-duration:4s;opacity:.8}@keyframes vc-think-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}[data-state=speaking] .voice-conv-orb-core{background:radial-gradient(circle at 35% 35%,#200a30,#10051a);box-shadow:0 0 40px #bf00ff4d,0 0 80px rgba(191,0,255,var(--vc-amplitude, .1));transform:scale(calc(1 + var(--vc-amplitude, 0) * .12));transition:transform .1s ease-out,box-shadow .1s ease-out;animation:none}[data-state=speaking] .voice-conv-orb-ring--1{border-top-color:#bf00ff80;border-right-color:#dc32ff66;box-shadow:0 0 14px #bf00ff33}[data-state=speaking] .voice-conv-orb-ring--2{border-bottom-color:#bf00ff4d;border-left-color:#a028ff33}[data-state=speaking] .voice-conv-orb-ring--3{border-top-color:#bf00ff26;opacity:.7}.home-hero-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 16px;background:var(--surface-2);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);color:var(--text);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.home-hero-btn:active{transform:scale(.97);background:var(--surface-3)}.home-hero-btn--fridge{border-color:#00f5ff26}.home-hero-btn--fridge:hover{border-color:#00f5ff4d;box-shadow:0 0 20px #00f5ff14}.home-hero-btn--shopping{border-color:#00ff8826}.home-hero-btn--shopping:hover{border-color:#00ff884d;box-shadow:0 0 20px #00ff8814}.home-hero-icon{width:36px;height:36px;stroke:var(--neon-cyan)}.home-hero-btn--shopping .home-hero-icon{stroke:var(--neon-green)}.home-hero-btn--assistant{border-color:#bf00ff26;width:100%;max-width:400px;margin-top:12px;padding:14px 20px;font-size:.95rem;flex-direction:row;gap:10px}.home-hero-btn--assistant:hover{border-color:#bf00ff4d;box-shadow:0 0 20px #bf00ff14}.home-hero-btn--assistant .home-hero-icon{width:28px;height:28px;stroke:var(--neon-purple)}.home-hero-btn--assistant.home-hero-btn--locked{opacity:.55;filter:grayscale(70%);border-color:#ffffff14;position:relative}.home-hero-btn--assistant.home-hero-btn--locked:hover{opacity:.75;border-color:#ffffff26;box-shadow:none}.home-hero-lock-badge{position:absolute;top:6px;right:10px;font-size:.9rem;opacity:.8}.assistant-locked-examples{list-style:none;margin:10px 0 0;background:#00f5ff0a;border:1px solid rgba(0,245,255,.15);border-radius:10px;padding:10px 14px}.assistant-locked-examples li{font-size:.82rem;padding:5px 0;color:var(--text, #e8e8ff);font-style:italic}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0ff5;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:99998;padding:20px;animation:fg-ob-fadein .3s ease-out}.onboarding-overlay--hiding{opacity:0;transition:opacity .3s ease-out}@keyframes fg-ob-fadein{0%{opacity:0}to{opacity:1}}.onboarding-card{width:100%;max-width:420px;max-height:calc(100dvh - 40px);background:linear-gradient(180deg,#12131a,#0a0a0f);border:1px solid rgba(0,245,255,.15);border-radius:20px;padding:12px 22px 22px;display:flex;flex-direction:column;box-shadow:0 0 40px #00f5ff1f,0 20px 60px #00000080;overflow:hidden}.onboarding-top-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.onboarding-skip-btn,.onboarding-dontshow-btn{background:transparent;border:none;color:#7070a0;font-size:.78rem;padding:6px 10px;cursor:pointer;font-weight:600;transition:color .2s;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#7070a066}.onboarding-skip-btn:hover,.onboarding-dontshow-btn:hover{color:#e8e8ff;text-decoration-color:#e8e8ff99}.onboarding-dontshow-btn{color:#ff8a8a;text-decoration-color:#ff8a8a66}.onboarding-dontshow-btn:hover{color:#ff5252;text-decoration-color:#ff5252b3}.onboarding-page{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 10px 16px;min-height:260px}.onboarding-page--enter{animation:fg-ob-slide .4s ease-out}@keyframes fg-ob-slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.onboarding-icon{font-size:3.4rem;margin-bottom:16px;animation:fg-ob-icon-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes fg-ob-icon-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.onboarding-title{font-size:1.35rem;font-weight:800;margin:0 0 12px;color:var(--text, #e8e8ff);letter-spacing:.3px;line-height:1.25}.onboarding-body{font-size:.92rem;line-height:1.55;color:var(--text, #e8e8ff);margin:0 0 12px;max-width:340px}.onboarding-tip{font-size:.78rem;line-height:1.45;color:var(--neon-cyan, #00f5ff);background:#00f5ff0f;border:1px solid rgba(0,245,255,.2);border-radius:10px;padding:10px 14px;margin:6px 0 0;font-style:italic}.onboarding-dots{display:flex;justify-content:center;gap:8px;padding:14px 0 18px}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:all .3s}.onboarding-dot--active{background:var(--neon-cyan, #00f5ff);width:24px;border-radius:4px;box-shadow:0 0 10px #00f5ff80}.onboarding-actions{display:flex;gap:10px;justify-content:space-between}.onboarding-back,.onboarding-next{flex:1;padding:13px 18px;border-radius:10px;font-size:.92rem;font-weight:700;cursor:pointer;border:none;transition:all .2s}.onboarding-back{background:transparent;color:#aaa;border:1px solid #2a2b3a}.onboarding-back:hover{background:#1e2030;color:#e8e8ff}.onboarding-next{background:var(--neon-cyan, #00f5ff);color:#0a0a0f}.onboarding-next:hover{filter:brightness(1.1)}.admin-page{height:100%;min-height:0;overflow:hidden;padding:0}.admin-tabs{display:flex;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08)}.admin-tab{flex:1;background:none;border:none;color:var(--text-muted);font-size:.78rem;font-weight:600;padding:10px 4px;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.admin-tab--active{color:var(--neon-cyan);border-bottom-color:var(--neon-cyan)}.admin-content{padding:0 14px 24px}.admin-loading{padding:24px;text-align:center;color:var(--text-muted)}.an-section{margin-top:16px}.an-title{font-size:.88rem;font-weight:700;color:var(--text);margin-bottom:10px}.an-cards{display:flex;gap:8px;flex-wrap:wrap}.an-card{flex:1;min-width:70px;background:var(--surface-2);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px 8px;text-align:center}.an-card-num{font-size:1.4rem;font-weight:700;color:var(--neon-cyan)}.an-card-num--error{color:var(--neon-red)}.an-card-label{font-size:.68rem;color:var(--text-muted);margin-top:2px}.an-bar-chart{display:flex;flex-direction:column;gap:3px}.an-bar-row{display:flex;align-items:center;gap:6px}.an-bar-label{font-size:.65rem;color:var(--text-muted);width:36px;text-align:right;flex-shrink:0}.an-bar-track{flex:1;height:14px;background:#ffffff0a;border-radius:3px;overflow:hidden}.an-bar-fill{height:100%;background:var(--neon-cyan);border-radius:3px;min-width:2px;transition:width .3s ease}.an-bar-val{font-size:.65rem;color:var(--text);width:20px;flex-shrink:0}.an-pies{display:flex;gap:16px;flex-wrap:wrap}.an-pie-group{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:120px}.an-pie{width:80px;height:80px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center}.an-pie-total{background:var(--bg);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--text)}.an-legend{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.an-legend-item{display:flex;align-items:center;gap:4px;font-size:.68rem;color:var(--text-muted)}.an-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.an-table{width:100%;border-collapse:collapse;font-size:.75rem}.an-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.an-table td{padding:5px 4px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text)}.an-table--compact th,.an-table--compact td{font-size:.7rem;padding:4px 3px}.an-table tr:hover td{background:#ffffff05}.an-questions-list{display:flex;flex-direction:column;gap:6px}.an-question-card{background:var(--surface-2);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 10px}.an-question-error{border-left:3px solid var(--neon-red)}.an-question-meta{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-muted);margin-bottom:4px}.an-question-text{font-size:.78rem;color:var(--text);line-height:1.4}.an-question-tools{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.an-tool-badge{font-size:.65rem;background:#bf00ff1f;color:var(--neon-purple);border-radius:4px;padding:2px 6px}.an-select{background:var(--surface-2);color:var(--text);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:6px 10px;font-size:.78rem;cursor:pointer}.an-select:focus{outline:none;border-color:var(--neon-cyan)}.an-limit-input{background:var(--surface-2);color:var(--text);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:4px 6px;font-size:.75rem;width:56px;text-align:center}.an-limit-input:focus{outline:none;border-color:var(--neon-cyan)}.an-group-card{background:var(--surface-2);border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-bottom:10px;overflow:hidden}.an-group-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);font-size:.82rem}.an-group-members{padding:6px 12px}.an-member-row{display:flex;gap:8px;align-items:center;padding:4px 0;font-size:.75rem;border-bottom:1px solid rgba(255,255,255,.03)}.an-member-row:last-child{border-bottom:none}.an-member-name{font-weight:600;color:var(--text);min-width:80px}.an-member-email{flex:1;color:var(--text-muted);font-size:.7rem}.an-member-role{font-size:.68rem;font-weight:600;text-transform:uppercase}.an-user-card{background:var(--surface-2);border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-bottom:8px;padding:10px 12px}.an-user-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.an-user-fields{display:flex;gap:8px;flex-wrap:wrap}.an-user-field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:80px}.an-user-field label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;font-weight:600}.an-user-field .an-select{font-size:.72rem;padding:4px 6px}.an-ulimit-grid{display:flex;flex-direction:column;gap:4px;padding-top:6px}.an-ulimit-row{display:flex;align-items:center;gap:6px;padding:2px 0}.an-ulimit-label{font-size:.7rem;color:var(--text-muted);min-width:70px;flex-shrink:0}.an-ulimit-bar{flex:1;min-width:0}.an-ulimit-reset{width:24px;height:24px;background:#ff32321a;border:1px solid rgba(255,50,50,.3);border-radius:4px;color:#ff5252;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.an-ulimit-reset:hover{background:#ff323233}.an-prompt-pre{background:var(--surface-2);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px;font-size:.72rem;line-height:1.4;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.shopping-page{padding-top:8px;padding-bottom:0;height:100%;min-height:0;overflow:hidden}.shopping-lists-grid{display:flex;flex-direction:column;gap:10px}.shopping-list-card{background:var(--surface-2);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.shopping-list-card:active{transform:scale(.98);background:var(--surface-3)}.sl-card-top{display:flex;align-items:center;gap:12px}.sl-card-icon{font-size:1.5rem;flex-shrink:0}.sl-card-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.sl-card-name{font-weight:600;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sl-card-group{font-size:.75rem;color:var(--text-muted)}.sl-menu-btn{background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .15s;-webkit-tap-highlight-color:transparent}.sl-menu-btn:hover{background:#ffffff0f}.sl-card-bottom{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.sl-badge{font-size:.7rem;font-weight:600;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.sl-badge--pending{background:#ff225526;color:var(--neon-red)}.sl-badge--bought{background:#00ff881f;color:var(--neon-green)}.sl-badge--empty{background:#ffffff0d;color:var(--text-muted)}.sl-card-members{display:flex;gap:4px;align-items:center;margin-top:8px;flex-wrap:wrap}.sl-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#00f5ff40,#00c8dc59);color:var(--text);font-size:.6rem;font-weight:700;letter-spacing:.5px;border:1.5px solid rgba(255,255,255,.25);flex-shrink:0;-webkit-user-select:none;user-select:none}.sl-avatar--small{width:24px;height:24px;font-size:.55rem}.sl-avatar--overflow{background:#ffffff14;color:var(--text-muted);font-size:.55rem;border-color:#ffffff1a}.sl-avatar--add{background:transparent;border:1.5px dashed rgba(255,255,255,.3);color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:border-color .2s,color .2s}.sl-avatar--add:hover{border-color:var(--neon-cyan);color:var(--neon-cyan)}.slm-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;margin-top:12px}.slm-members-list,.slm-available-list{display:flex;flex-direction:column;gap:6px}.slm-member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#ffffff0a;border-radius:8px}.slm-member-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.slm-member-name{font-size:.85rem;font-weight:500;color:var(--text)}.slm-member-email{font-size:.65rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slm-member-badge{font-size:.6rem;font-weight:600;padding:2px 8px;border-radius:12px;background:#00f5ff26;color:var(--neon-cyan);text-transform:uppercase;letter-spacing:.03em}.slm-remove-btn{width:28px;height:28px;border:none;background:#ff22551f;color:var(--neon-red);border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.slm-remove-btn:hover{background:#ff225540}.slm-available-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#ffffff08;border-radius:8px;cursor:pointer;transition:background .15s}.slm-available-row:hover{background:#ffffff12}.slm-add-cb{width:18px;height:18px;accent-color:var(--neon-cyan);flex-shrink:0}.slm-invite-row{display:flex;gap:8px;align-items:center}.slm-invite-input{flex:1;padding:10px 14px;border:1.5px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0a;color:var(--text);font-size:.85rem;outline:none;transition:border-color .2s}.slm-invite-input:focus{border-color:var(--neon-cyan)}.slm-invite-input::placeholder{color:var(--text-muted)}.slm-invite-btn{white-space:nowrap;flex-shrink:0}.slm-add-selected-btn{display:block}.shopping-detail-page{padding-top:8px;padding-bottom:0;height:100%;min-height:0;overflow:hidden}.sl-content{padding-bottom:8px}.sl-add-bar{flex-shrink:0;background:var(--bg);padding:8px 16px 6px;border-top:1px solid rgba(255,255,255,.06);box-sizing:border-box}.sl-add-bar-inner{max-width:600px;margin:0 auto;position:relative;display:flex;gap:8px;align-items:center}.sl-add-input{flex:1;min-width:0;padding:12px 16px;border:2px solid rgba(0,255,136,.3);border-radius:12px;background:#00ff880d;color:var(--text);font-size:1rem;outline:none;transition:border-color .2s;box-sizing:border-box}.sl-add-input:focus{border-color:var(--accent);background:#00ff881a}.sl-add-input::placeholder{color:#ffffff59}.sl-notify-btn{flex-shrink:0;width:48px;height:48px;border:2px solid rgba(0,255,136,.3);border-radius:12px;background:#00ff880d;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.sl-notify-btn:active{background:#0f83;border-color:var(--accent)}.sl-autocomplete{position:absolute;left:0;right:0;bottom:100%;z-index:20;margin-bottom:4px;background:var(--bg);border:1px solid rgba(0,255,136,.25);border-radius:12px;overflow:hidden;box-shadow:0 -8px 32px #000c;max-height:260px;overflow-y:auto;padding:8px}.sl-autocomplete.hidden{display:none}.sl-ac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sl-ac-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 6px;background:var(--card-bg, rgba(255,255,255,.06));border:1px solid var(--border);border-radius:12px;cursor:pointer;position:relative;min-height:80px;transition:border-color .15s}.sl-ac-card:active{border-color:var(--neon-cyan);background:#00ffc814}.sl-ac-card--new{border-style:dashed;border-color:var(--neon-cyan)}.sl-ac-card--exists{opacity:.4}.sl-ac-card-check{position:absolute;top:4px;right:6px;color:var(--neon-cyan);font-size:.7rem;font-weight:700}.sl-ac-item{display:none}.sl-ac-initial{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:#ffffff1a;font-weight:700;font-size:.85rem;flex-shrink:0}.sl-ac-emoji{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:1.3rem;flex-shrink:0}.sl-ac-check{margin-left:auto;color:var(--neon-green);font-size:.8rem;flex-shrink:0}.sl-items-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:8px}.sl-item-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;aspect-ratio:1;padding:6px 4px;border-radius:14px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent;overflow:visible;text-align:center;border:none;background:linear-gradient(135deg,#00f5ff33,#00c8dc26)}.sl-item-card:active{transform:scale(.93);filter:brightness(1.15)}.sl-item-initial{font-size:2.8rem;font-weight:900;color:#ffffffd9;line-height:1;text-shadow:0 2px 10px rgba(0,0,0,.3);font-family:Georgia,Times New Roman,Palatino,serif;font-style:italic}.sl-item-emoji{font-size:2.6rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.sl-item-name{font-weight:700;font-size:.82rem;line-height:1.15;color:#fffffff2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sl-item-desc{font-size:.62rem;line-height:1.2;color:#ffffff8c;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%;padding:0 2px;margin-top:3px}.sl-item-edit{position:absolute;top:-6px;right:-6px;background:transparent;border:none;color:var(--text);font-size:.85rem;cursor:pointer;padding:4px;transition:all .15s;-webkit-tap-highlight-color:transparent;z-index:2;line-height:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.sl-item-edit:active{transform:scale(1.2)}.sl-select-mode .sl-item-edit{display:none}.sl-select-mode .sl-item-card{user-select:none;-webkit-user-select:none}.sl-select-mode .sl-item-card:after{content:"";position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.45);background:#00000040;transition:all .15s;z-index:3}.sl-select-mode .sl-item-card.sl-selected:after{background:var(--neon-cyan);border-color:var(--neon-cyan);box-shadow:0 0 8px #00f5ff66}.sl-select-mode .sl-item-card.sl-selected{outline:2px solid var(--neon-cyan);outline-offset:-2px}.sl-select-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface-2);border-top:1px solid rgba(255,255,255,.08);animation:slideUpIn .2s ease}@keyframes slideUpIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sl-sel-cancel{background:none;border:none;color:var(--text-muted);font-size:.9rem;font-weight:600;cursor:pointer;padding:8px 12px}.sl-sel-count{font-size:.85rem;color:var(--text);font-weight:600}.sl-sel-delete{background:var(--neon-red);border:none;color:#fff;font-size:.9rem;font-weight:700;padding:8px 18px;border-radius:10px;cursor:pointer}.sl-sel-delete:disabled{opacity:.4}.sl-select-mode~.sl-add-bar{display:none}.sl-item-badges{position:absolute;top:4px;left:4px;display:flex;gap:2px;z-index:1}.sl-item-badge{font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:8px;line-height:1.4}.sl-item-badge--qty{background:#00000059;color:#fff}.sl-item-badge--tag{font-size:.7rem;padding:0}.sl-past-section{margin-top:20px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.sl-past-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;padding-left:2px;display:flex;align-items:center;gap:8px}.sl-past-clear{background:none;border:none;font-size:1rem;cursor:pointer;padding:2px;opacity:.6;transition:opacity .15s}.sl-past-clear:active{opacity:1}.sl-past-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;aspect-ratio:1;padding:6px 4px;border-radius:14px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent;overflow:hidden;text-align:center;border:none;background:#b482ff1f;opacity:.75}.sl-past-card:active{transform:scale(.93);opacity:1}.ei-qty-row{display:flex;align-items:center;gap:16px;justify-content:center}.ei-qty-btn{width:40px;height:40px;border-radius:50%;border:2px solid rgba(0,245,255,.3);background:transparent;color:var(--text);font-size:1.3rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.ei-qty-btn:active{background:#00f5ff33}.ei-qty-value{font-size:1.6rem;font-weight:700;min-width:30px;text-align:center}.ei-tags-row{display:flex;gap:8px}.ei-tag-btn{flex:1;padding:10px 8px;border:2px solid rgba(255,255,255,.12);border-radius:12px;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;text-align:center}.ei-tag-btn--active{border-color:var(--neon-cyan);background:#00f5ff1f;color:var(--text)}.ei-tag-btn:active{transform:scale(.95)}.sl-menu-actions{display:flex;flex-direction:column;gap:4px;margin:12px 0}.sl-menu-action{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-2);border:none;border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;cursor:pointer;text-align:left;transition:background .15s;-webkit-tap-highlight-color:transparent}.sl-menu-action:hover{background:var(--surface-3)}.sl-menu-action--danger{color:var(--neon-red)}.sl-product-checks{display:flex;flex-direction:column;gap:6px}.sl-product-check{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.sl-product-check input[type=checkbox]{accent-color:var(--neon-cyan);width:18px;height:18px;flex-shrink:0}.bought-manage-page{display:flex;flex-direction:column;height:100%}.bought-manage-page .page-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.bm-content{padding:12px 16px}.bm-subtitle{color:var(--text-muted);font-size:.82rem;margin-bottom:12px}.bm-grid{display:flex;flex-direction:column;gap:8px}.bm-item{display:flex;align-items:center;gap:10px;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;transition:border-color .15s}.bm-item.bm-selected{border-color:var(--neon-cyan);background:#00ffc80d}.bm-item-check{flex-shrink:0}.bm-item-check input[type=checkbox]{accent-color:var(--neon-cyan);width:18px;height:18px;cursor:pointer}.bm-item-icon{width:40px;height:40px;border-radius:8px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.bm-letter{font-weight:700;color:var(--neon-cyan);font-size:1.1rem}.bm-item-info{flex:1;min-width:0}.bm-item-name{font-size:.88rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm-qty{color:var(--neon-cyan);font-size:.78rem;font-weight:700}.bm-item-desc{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm-division-select{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:.75rem;max-width:110px;flex-shrink:0}.bm-dismiss{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:4px 6px;flex-shrink:0;opacity:.6;transition:opacity .15s}.bm-dismiss:hover,.bm-dismiss:active{opacity:1;color:#ff5252}.bm-bulk-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface-2);border-top:1px solid var(--border);gap:8px}.bm-bulk-bar.hidden{display:none}.bm-bulk-bar span{font-size:.82rem;color:var(--neon-cyan);font-weight:600}.bm-bulk-actions{display:flex;gap:8px;align-items:center}.bm-action-bar{display:flex;gap:10px;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.bm-action-bar .btn-sm{flex:1}.btn-sm{padding:10px 14px;border-radius:8px;font-size:.82rem;font-weight:600;border:none;cursor:pointer;text-align:center}.btn-primary{background:var(--neon-cyan);color:var(--bg)}.btn-secondary{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border)}.btn-danger{background:#ff5252;color:#fff}.edge-swipe-popup{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translate(-50%) translateY(20px);background:#141622f5;color:var(--text, #e8e8ff);border:1px solid var(--accent, #0ff);border-radius:999px;padding:12px 20px;font-size:.9rem;font-weight:600;box-shadow:0 8px 32px #00f5ff40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:9999;pointer-events:none;opacity:0;transition:opacity .2s ease-out,transform .2s ease-out;white-space:nowrap;max-width:calc(100vw - 32px)}.edge-swipe-popup--visible{opacity:1;transform:translate(-50%) translateY(0)}.form-consents{display:flex;flex-direction:column;gap:12px;margin:14px 0 4px;padding:14px;background:#00f5ff0a;border:1px solid rgba(0,245,255,.12);border-radius:10px}.form-consent-row{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;line-height:1.5;color:var(--text, #e8e8ff);cursor:pointer;-webkit-user-select:none;user-select:none}.form-consent-row input[type=checkbox]{width:20px;height:20px;margin-top:1px;cursor:pointer;flex-shrink:0;accent-color:var(--neon-cyan, #00f5ff)}.form-consent-row a{color:var(--neon-cyan, #00f5ff);text-decoration:underline;text-underline-offset:2px}.form-consent-row a:hover{color:#00e6ff}.form-consent-row .required-star{color:#ff5252;font-weight:700}.upgrade-page{padding:16px 14px 40px;max-width:600px;margin:0 auto}.upgrade-hero{text-align:center;margin:8px 0 20px}.upgrade-hero-icon{font-size:2.2rem}.upgrade-hero-title{font-size:1.4rem;font-weight:700;color:var(--text, #e8e8ff);margin:6px 0 4px}.upgrade-hero-sub{font-size:.82rem;color:var(--text-muted, #7070a0);margin:0}.upgrade-billing-toggle{display:flex;gap:0;background:#12131a;border:1px solid #1e2030;border-radius:999px;padding:4px;margin:0 auto 18px;max-width:320px}.upgrade-toggle-btn{flex:1;background:transparent;border:none;color:#888;padding:8px 14px;border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.upgrade-toggle-btn--active{background:var(--accent, #0ff);color:#0a0a0f}.upgrade-toggle-badge{background:#00e676;color:#0a0a0f;font-size:.65rem;padding:2px 6px;border-radius:999px;font-weight:700}.upgrade-toggle-btn:not(.upgrade-toggle-btn--active) .upgrade-toggle-badge{background:#1e2030;color:#00e676}.upgrade-plans{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.upgrade-plan{background:#12131a;border:1px solid #1e2030;border-radius:14px;padding:18px 16px;position:relative}.upgrade-plan--highlighted{border:2px solid var(--accent, #0ff);box-shadow:0 0 20px #00f5ff26}.upgrade-plan-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--accent, #0ff);color:#0a0a0f;font-size:.68rem;font-weight:700;padding:3px 12px;border-radius:999px;white-space:nowrap}.upgrade-plan-header{margin-bottom:12px}.upgrade-plan-title{font-size:1.1rem;font-weight:700;margin:0 0 4px;color:var(--text, #e8e8ff)}.upgrade-plan-price{font-size:1.8rem;font-weight:800;color:var(--text, #e8e8ff)}.upgrade-plan-period{font-size:.75rem;color:#888;font-weight:500;margin-left:4px}.upgrade-plan-savings{display:inline-block;background:#00e6761f;color:#00e676;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px;margin-top:4px}.upgrade-plan-features{list-style:none;padding:0;margin:0 0 16px}.upgrade-plan-features li{font-size:.82rem;color:var(--text, #e8e8ff);position:relative;padding:5px 0 5px 20px}.upgrade-plan-features li:before{content:"✓";position:absolute;left:0;color:#00e676;font-weight:700}.upgrade-plan-features li.upgrade-plan-feature-off{color:#555;text-decoration:line-through}.upgrade-plan-features li.upgrade-plan-feature-off:before{content:"✕";color:#555}.upgrade-plan-btn{width:100%;padding:12px 16px;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;border:none;transition:all .2s}.upgrade-plan-btn--primary{background:var(--accent, #0ff);color:#0a0a0f}.upgrade-plan-btn--primary:hover:not(:disabled){filter:brightness(1.1)}.upgrade-plan-btn--secondary{background:#1e2030;color:var(--text, #e8e8ff);border:1px solid #2a2b3a}.upgrade-plan-btn--secondary:hover:not(:disabled){background:#2a2b3a}.upgrade-plan-btn--current{background:transparent;color:#666;border:1px solid #2a2b3a;cursor:default}.upgrade-plan-btn:disabled{opacity:.6;cursor:not-allowed}.upgrade-footnote{text-align:center;color:#888;font-size:.74rem;margin-top:18px;line-height:1.6}.upgrade-footnote p{margin:4px 0}.upgrade-pwa-notice{background:#12131a;border:1px solid #1e2030;border-radius:14px;padding:28px 20px;text-align:center}.upgrade-pwa-icon{font-size:2.5rem;margin-bottom:12px}.upgrade-pwa-notice h3{font-size:1.1rem;color:var(--text, #e8e8ff);margin:0 0 10px}.upgrade-pwa-notice p{font-size:.85rem;color:#888;line-height:1.5;margin:0}
