@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:PressStart2P;src:url(/fonts/PressStart2P-Regular.ttf) format("truetype");font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;overflow:hidden}body{background:#19191e;color:#e8e8e8;font-family:VT323,monospace;font-size:20px;overscroll-behavior:none}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}button:focus-visible,[role=button]:focus-visible{outline:2px solid #7DB344;outline-offset:2px}input,select{font-family:inherit;font-size:inherit}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:600px;margin:0 auto;position:relative}.header{padding:max(32px,calc(env(safe-area-inset-top,0px) + 16px)) 16px 0;flex-shrink:0;z-index:10;background:#27272e}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.app-title{font-family:PressStart2P,monospace;font-size:14px;color:#7db344}.header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.menu-trigger{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;width:36px;height:32px;padding:0;background:transparent;border:none;cursor:pointer}.menu-trigger-dot{display:block;width:4px;height:4px;background:#a5a5a5;transition:background .15s ease}.menu-trigger:hover .menu-trigger-dot,.menu-trigger:focus-visible .menu-trigger-dot,.menu-trigger:active .menu-trigger-dot{background:#e8e8e8}.completed-title{font-family:PressStart2P,monospace;font-size:16px;color:#e8e8e8;text-align:center;margin-bottom:16px}.blink{animation:blink 1.6s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.progress-bar-row{display:flex;height:5px;margin-bottom:16px}.progress-segment-outer{background:#e8e8e8;position:relative;height:100%;clip-path:polygon(1px 0,calc(100% - 1px) 0,calc(100% - 1px) 1px,100% 1px,100% calc(100% - 1px),calc(100% - 1px) calc(100% - 1px),calc(100% - 1px) 100%,1px 100%,1px calc(100% - 1px),0 calc(100% - 1px),0 1px,1px 1px)}.progress-segment-fill{position:absolute;top:1px;bottom:1px;left:1px;background:#7db344;transition:width .3s ease}.list-container{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.category-section{margin-bottom:0}.category-header{width:100%;display:block;background:none;text-align:left;border:none;padding:0;position:relative;height:40px;overflow:hidden;margin-top:20px;margin-bottom:10px;cursor:pointer}.category-header-text{font-family:VT323,monospace;font-size:20px;color:#7db344;letter-spacing:1px;background:#24242a;padding:0 16px 0 40px;height:40px;line-height:40px;display:block;width:100%;white-space:nowrap;position:relative;z-index:0}.category-header-blade{position:absolute;top:4px;right:-10px;width:105px;height:40px;background:#19191e;z-index:1;clip-path:polygon(60px 0,100% 0,100% 100%,20px 100%,20px 36px,24px 36px,24px 32px,28px 32px,28px 28px,32px 28px,32px 24px,36px 24px,36px 20px,40px 20px,40px 16px,44px 16px,44px 12px,48px 12px,48px 8px,52px 8px,52px 4px,56px 4px,56px 0)}.category-header-chevron{position:absolute;left:16px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:20}.category-header-chevron .chevron-icon{transform:rotate(-90deg)}.category-header-chevron .chevron-icon.chevron-open{transform:rotate(0)}.category-header-count{position:absolute;right:16px;top:0;bottom:0;display:flex;align-items:center;font-family:VT323,monospace;font-size:20px;color:#7db344;z-index:10}.chevron-icon{width:16px;height:16px;color:#7db344;transition:transform .2s ease;display:block}.chevron-open{transform:rotate(-180deg)}.category-items{background:#19191e}.done-header{display:flex;align-items:center;gap:8px;padding:10px 16px 8px;background:none;width:100%;text-align:left}.done-header-text{font-family:VT323,monospace;font-size:16px;color:#a5a5a5}.done-header .chevron-icon{width:16px;height:16px;color:#a5a5a5;transform:rotate(-90deg)}.done-header .chevron-icon.chevron-open{transform:rotate(0)}.category-header-row{display:flex;align-items:center;gap:10px;padding:10px 16px 6px;margin-top:20px}.category-name-label{font-family:VT323,monospace;font-size:20px;color:#7db344;white-space:nowrap;letter-spacing:1px}.category-divider{flex:1;height:1px;background:#27272e}.grocery-item-wrapper{position:relative;overflow:hidden;background:#19191e;contain:paint}.grocery-item-actions{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;gap:8px;background:#131315;padding-left:8px;padding-right:8px;z-index:0}.action-btn{position:relative;isolation:isolate;width:70px;height:36px;font-family:VT323,monospace;font-size:20px;color:#e8e8e8;display:flex;align-items:center;justify-content:center;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.action-btn:before{content:"";position:absolute;inset:2px;z-index:-1;background:#131315;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.action-edit{background:#676773}.action-delete{background:#a54949}.grocery-item{position:relative;z-index:1;display:flex;align-items:center;padding:12px 16px;background:#19191e;cursor:pointer;-webkit-user-select:none;user-select:none}.grocery-item--checked .grocery-item-name{text-decoration:line-through;opacity:.5}.grocery-item--checked .emoji-container{opacity:.5}.emoji-container{position:relative;width:40px;height:40px;background:#24242a;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.emoji-container:after,.modal-emoji-wrap:after{content:"";position:absolute;top:50%;left:50%;width:24px;height:24px;transform:translate(-50%,-50%);pointer-events:none;background:repeating-linear-gradient(to bottom,rgb(36 36 42 / 60%) 0 1px,transparent 1px 2px)}.grocery-item-emoji{font-size:24px}.grocery-item-name{flex:1;font-family:VT323,monospace;font-size:26px;color:#e8e8e8;line-height:1.1}.item-divider{height:1px;background:#2a2a2a;margin:0 16px}.search-bar{display:flex;align-items:center;gap:8px;background:#383842;padding-left:16px;padding-right:4px;margin-bottom:16px;border:1px solid transparent;transition:border-color .15s}.search-bar--hidden{visibility:hidden;height:0;margin:0;padding:0;border:0;overflow:hidden}.search-bar:focus-within{border-color:#7db344}.search-input{flex:1;background:none;border:none;outline:none;color:#e8e8e8;font-size:20px;font-family:VT323,monospace;caret-color:#e8e8e8;height:42px}.search-input::placeholder{color:#888}.search-clear,.search-close{flex-shrink:0;padding:8px;opacity:.8}.clear-icon,.search-close-icon{width:20px;height:20px;color:#7db344;display:block}.add-new-btn{position:relative;isolation:isolate;padding:0 16px 0 8px;height:36px;margin:24px auto 16px;display:block;color:#e8e8e8;font-size:20px;font-family:VT323,monospace;text-align:center;background:#676773;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.add-new-btn:before{content:"";position:absolute;inset:2px;z-index:-1;background:#19191e;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.fab{position:fixed;bottom:calc(20px + var(--kb-height, 0px) + var(--toast-height, 0px));width:70px;height:70px;display:flex;align-items:center;justify-content:center;z-index:100;transition:bottom .15s ease}.fab-search{right:20px;background:#383842;clip-path:polygon(12px 0,calc(100% - 12px) 0,calc(100% - 12px) 4px,calc(100% - 8px) 4px,calc(100% - 8px) 8px,calc(100% - 4px) 8px,calc(100% - 4px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 4px) calc(100% - 12px),calc(100% - 4px) calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) calc(100% - 4px),calc(100% - 12px) calc(100% - 4px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 4px),8px calc(100% - 4px),8px calc(100% - 8px),4px calc(100% - 8px),4px calc(100% - 12px),0 calc(100% - 12px),0 12px,4px 12px,4px 8px,8px 8px,8px 4px,12px 4px)}.fab-icon{width:28px;height:28px;color:#fff}.modal-fullscreen{position:fixed;inset:0;background:#19191e;z-index:200;display:flex;flex-direction:column;max-width:600px;margin:0 auto}.modal-content{flex:1;overflow-y:auto;padding:max(40px,calc(env(safe-area-inset-top,0px) + 16px)) 16px 24px;display:flex;flex-direction:column;gap:8px}.modal-title{font-family:PressStart2P,monospace;font-size:14px;color:#e8e8e8;display:block}.modal-label{font-family:VT323,monospace;font-size:20px;color:#7db344;margin-bottom:4px;display:block;margin-top:12px}.modal-category-row .modal-label{margin-top:0;margin-bottom:0}.modal-label-row{display:flex;align-items:center}.modal-label-row .modal-label{margin-top:12px;margin-bottom:4px}.modal-info-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:12px;margin-bottom:4px;margin-left:auto;padding:0;background:none;border:none;color:#7db344;cursor:pointer}.modal-info-icon{width:24px;height:24px;display:block}.info-drawer-body{font-family:VT323,monospace;font-size:18px;color:#a5a5a5;line-height:1.4;margin:8px 0 16px}.info-drawer-body strong{color:#7db344;font-weight:400}.info-drawer-close.action-btn{width:100%;height:40px;font-size:18px}.info-drawer-close.action-btn:before{background:#19191e}.modal-name-row{display:flex;align-items:center;gap:8px}.modal-input{background:#24242a;border:1px solid transparent;padding:0 16px;height:42px;min-height:42px;color:#e8e8e8;outline:none;font-size:20px;font-family:VT323,monospace;transition:border-color .15s;width:100%;border-radius:0}.modal-input:focus{border-color:#7db344}.modal-emoji-wrap{position:relative;flex-shrink:0}.emoji-crt:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgb(36 36 42 / 60%) 0 1px,transparent 1px 2px)}.emoji-crt{position:relative;display:inline-block;vertical-align:middle}.grocery-item-name .emoji-crt:after{background:repeating-linear-gradient(to bottom,rgba(25,25,30,.6) 0 1px,transparent 1px 2px)}.modal-input-emoji{width:56px;text-align:center;font-size:24px;padding:0 8px}.modal-input-name{flex:1}.modal-category-list{display:flex;flex-direction:column;margin-top:4px}.modal-category-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #27272E;background:none;width:100%;text-align:left}.modal-category-name{font-family:VT323,monospace;font-size:20px;color:#e8e8e8}.modal-category-check{width:20px;height:20px;color:#7db344}.modal-celebrate-row{border-bottom:none}.pixel-toggle{position:relative;isolation:isolate;flex-shrink:0;display:block;width:36px;height:22px;background:#7db344;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.pixel-toggle:before{content:"";position:absolute;inset:2px;z-index:-1;background:#19191e;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.pixel-toggle:after{content:"";position:absolute;top:5px;bottom:5px;left:5px;width:12px;background:#7db344;transition:left .15s ease;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.pixel-toggle--on:after{left:calc(100% - 17px)}.modal-buttons{display:flex;gap:16px;padding:10px 16px;background:#27272e;padding-bottom:max(10px,env(safe-area-inset-bottom))}.modal-btn{position:relative;isolation:isolate;flex:1;height:48px;display:flex;align-items:center;justify-content:center;font-family:VT323,monospace;font-size:20px;color:#e8e8e8;background:#676773;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.modal-btn:before{content:"";position:absolute;inset:2px;z-index:-1;background:#27272e;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.modal-btn:disabled{opacity:.3;cursor:not-allowed}.toast{position:fixed;bottom:0;left:0;right:0;max-width:600px;margin:0 auto;background:#4e4e5c;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;z-index:150;transition:opacity .3s ease,transform .3s ease}.toast-hidden{opacity:0;transform:translateY(100%);pointer-events:none}.toast-visible{opacity:1;transform:translateY(0)}.toast-message{flex:1;font-family:VT323,monospace;font-size:24px;color:#e8e8e8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-undo{position:relative;isolation:isolate;margin-left:12px;padding:8px 32px;font-family:VT323,monospace;font-size:24px;color:#e8e8e8;background:#e8e8e8;flex-shrink:0;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.toast-undo:before{content:"";position:absolute;inset:2px;z-index:-1;background:#4e4e5c;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}@keyframes groceryFloat{0%{transform:translateY(0) rotate(var(--rotate))}50%{transform:translateY(-14px) rotate(var(--rotate))}to{transform:translateY(0) rotate(var(--rotate))}}@keyframes paperTremble{0%{transform:translate(0) rotate(0)}15%{transform:translate(-5px) rotate(-3deg)}30%{transform:translate(5px) rotate(3deg)}45%{transform:translate(-4px) rotate(-2deg)}60%{transform:translate(4px) rotate(2deg)}75%{transform:translate(-3px) rotate(-1deg)}90%{transform:translate(3px) rotate(1deg)}to{transform:translate(0) rotate(0)}}@media(prefers-reduced-motion:reduce){@keyframes groceryFloat{0%,to{transform:rotate(var(--rotate))}}}.room-setup{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;background:#19191e;padding:24px}.room-setup-inner{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:360px}.room-setup-subtitle{font-size:20px;color:#888;text-align:center;line-height:1.5}.room-setup-actions{display:flex;flex-direction:column;gap:12px;width:100%}.room-btn{position:relative;isolation:isolate;width:100%;height:48px;font-family:VT323,monospace;font-size:20px;color:#e8e8e8;display:flex;align-items:center;justify-content:center;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.room-btn:before{content:"";position:absolute;inset:2px;z-index:-1;background:#19191e;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.room-btn-primary{background:#676773}.room-btn-secondary{background:#3a3a3a}.room-btn:disabled{opacity:.4;cursor:not-allowed}.room-setup-hint{font-size:20px;color:#888;text-align:center;line-height:1.5}.room-setup-join{display:flex;flex-direction:column;gap:16px;width:100%;align-items:center}.room-code-input{width:180px;background:#27272e;border:1px solid #3a3a3a;border-radius:0;-webkit-appearance:none;appearance:none;padding:14px;color:#e8e8e8;font-family:PressStart2P,monospace;font-size:18px;text-align:center;letter-spacing:4px;outline:none;caret-color:#e8e8e8}.room-code-input:focus{border-color:#7db344}.offline-banner{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;background:#27272e;border-bottom:1px solid #45454D;padding:max(8px,env(safe-area-inset-top,8px)) 16px 8px;display:flex;align-items:center;justify-content:center;gap:8px;font-family:VT323,monospace;font-size:16px;color:#7db344;z-index:300}.offline-banner-icon{width:18px;height:16px;color:#7db344}.error-banner{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;background:#5a2330;border:none;border-bottom:1px solid #8B3548;padding:max(8px,env(safe-area-inset-top,8px)) 16px 8px;display:flex;align-items:center;justify-content:center;gap:8px;font-family:VT323,monospace;font-size:16px;color:#f5a3b5;z-index:301;cursor:pointer;text-align:center}.error-banner:active{background:#6e2a3a}.loading-screen{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;background:#19191e}.loading-text{font-family:PressStart2P,monospace;font-size:12px;color:#555;animation:blink 1.6s ease-in-out infinite}.drawer-backdrop{position:fixed;inset:0;background:#00000080;z-index:200;opacity:0;pointer-events:none;transition:opacity .2s ease}.drawer-backdrop--open{opacity:1;pointer-events:auto}.drawer{position:fixed;bottom:0;left:0;right:0;max-width:600px;margin:0 auto;background:#19191e;border-top:2px solid #27272E;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom));z-index:201;transform:translateY(100%);transition:transform .25s ease}.drawer--open{transform:translateY(0)}.menu-title{font-family:PressStart2P,monospace;font-size:14px;color:#e8e8e8;display:block;margin:0 0 8px}.menu-section{display:flex;flex-direction:column}.menu-section-label{font-family:VT323,monospace;font-size:20px;color:#7db344;margin-top:12px;margin-bottom:4px;display:block}.menu-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 0;background:none;border:none;text-align:left;cursor:pointer}.menu-row-label,.menu-share-caption{font-family:VT323,monospace;font-size:20px;color:#e8e8e8;margin:0}.menu-row--static{cursor:default}.menu-room-code{font-family:PressStart2P,monospace;font-size:14px;color:#e8e8e8;letter-spacing:2px}.menu-exit-btn.action-btn{width:100%;height:40px;margin-top:16px;font-size:18px}.menu-exit-btn.action-btn:before{background:#19191e}.menu-data-row{display:flex;gap:12px;margin-top:8px}.menu-data-btn.action-btn{flex:1;width:auto;height:40px;font-size:18px}.menu-data-btn.action-btn:before{background:#19191e}.edit-categories-row{display:flex;justify-content:left;margin-top:4px;margin-left:16px}.modal-edit-cats-link{align-self:flex-start;margin-top:16px;padding:4px 0;font-family:VT323,monospace;font-size:20px;color:#7db344;text-decoration:underline;text-decoration-color:#7db344;text-underline-offset:2px;background:none;border:none;cursor:pointer}.cats-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.cats-row{display:flex;align-items:center;gap:8px}.cats-input{flex:1}.cats-delete-btn.action-btn{width:40px;height:40px;flex-shrink:0;font-size:16px}.cats-delete-btn.action-btn:before{background:#19191e}.cats-delete-icon{width:14px;height:14px;color:#a54949;display:block}.plus-icon{width:24px;height:24px;color:#ebebeb;margin-right:4px;flex-shrink:0;vertical-align:middle}.cats-add-btn.action-btn{width:100%;height:40px;margin-top:8px;font-size:16px}.cats-add-btn.action-btn:before{background:#19191e}.confirm-drawer-backdrop{z-index:300}.confirm-drawer{z-index:301;display:flex;flex-direction:column;gap:16px;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.confirm-drawer-text{font-family:VT323,monospace;font-size:20px;color:#a5a5a5;margin:0;line-height:1.3}.confirm-drawer-buttons{display:flex;gap:16px}.app-credits{text-align:left;font-family:VT323,monospace;font-size:16px;color:#a5a5a5;margin-top:auto;padding:56px 16px 20px}.onboarding{position:fixed;inset:0;background:#19191e;display:flex;flex-direction:column;max-width:600px;margin:0 auto;z-index:10}.onboarding-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(40px,calc(env(safe-area-inset-top,0px) + 16px)) 16px 24px}.onboarding-header{flex-shrink:0;background:#19191e;padding:max(40px,calc(env(safe-area-inset-top,0px) + 16px)) 16px 16px;border-bottom:1px solid #27272E}.onboarding-list-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px 24px}.onboarding-title{font-family:PressStart2P,monospace;font-size:16px;color:#e8e8e8;margin-bottom:12px}.onboarding-subtitle{font-family:VT323,monospace;font-size:18px;color:#a5a5a5;line-height:1.2;margin-bottom:8px}.onboarding-list{display:flex;flex-direction:column}.onboarding-category .category-header-row{padding-left:0;padding-right:0}.onboarding-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;margin-bottom:8px}.onboarding-pill{display:inline-flex;align-items:center;gap:8px;padding:0 12px;height:36px;background:#24242a;font-family:VT323,monospace;font-size:16px;color:#e8e8e8;cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.5;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.onboarding-pill--on{opacity:1}.onboarding-pill-check{width:16px;height:16px;color:#7db344;flex-shrink:0}.onboarding-pill-emoji{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:16px;line-height:1;flex-shrink:0}.onboarding-pill-name{font-family:VT323,monospace;font-size:22px;white-space:nowrap;padding-bottom:3px}.onboarding-bar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#27272e;padding-bottom:max(10px,env(safe-area-inset-bottom));flex-shrink:0}.onboarding-bar .modal-btn:first-child{flex:1}.onboarding-bar .modal-btn:last-child{flex:5}.onboarding-import-error{font-family:VT323,monospace;font-size:16px;color:#e8e8e8;background:#8b3a3a;padding:8px 16px;text-align:center;flex-shrink:0}.import-screen{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#19191e}.import-screen-scroll{flex:1;overflow-y:auto;padding:max(40px,calc(env(safe-area-inset-top,0px) + 16px)) 20px 16px;display:flex;flex-direction:column;gap:16px}.import-screen-title{font-family:PressStart2P,monospace;font-size:16px;color:#e8e8e8;margin:0}.import-screen-body{font-family:VT323,monospace;font-size:18px;color:#a5a5a5;line-height:1.2;margin:0}.import-prompt-block{font-family:monospace;font-size:12px;color:#a5a5a5;background:#27272e;border:1px solid #3a3a3a;padding:12px 14px;margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.4}.import-prompt-wrap{position:relative}.import-copy-btn{position:absolute;right:8px;bottom:8px;font-family:VT323,monospace;font-size:16px;color:#e8e8e8;background:#3a3a3a;border:1px solid #5a5a5a;padding:4px 10px;cursor:pointer;line-height:1}.import-copy-btn:hover,.import-copy-btn:focus-visible{background:#4a4a4a}.import-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.import-step{display:flex;align-items:flex-start;gap:10px}.import-step-num{color:#7db344;line-height:1.3;flex-shrink:0}.import-step-text{font-family:VT323,monospace;font-size:20px;color:#e8e8e8;line-height:1.3;margin:0}.import-step-content{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.import-screen .onboarding-bar .modal-btn:first-child{flex:0 0 64px}.import-screen .onboarding-bar .import-upload-btn{flex:2}.import-screen .onboarding-bar .import-paste-btn{flex:3}.back-icon{width:24px;height:24px;color:#e8e8e8;display:block}.onboarding-select-toggle{display:flex;align-items:center;gap:10px;margin-top:12px;padding:4px 0;background:none;border:none;font-family:VT323,monospace;font-size:18px;color:#e8e8e8;cursor:pointer;flex-shrink:0}.onboarding-checkbox{position:relative;isolation:isolate;width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#676773;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px),0 4px,2px 4px,2px 2px,4px 2px)}.onboarding-checkbox:before{content:"";position:absolute;inset:2px;z-index:-1;background:#19191e;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px)}.onboarding-checkbox--on{background:#7db344}.onboarding-checkbox-icon{width:18px;height:18px;color:#7db344;display:block}.tutorial-content{display:flex;flex-direction:column}.tutorial-demo{position:relative;margin-top:8px;pointer-events:none}.tutorial-demo .grocery-item-wrapper{border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a}.tutorial-grocery-item{animation:tutorial-swipe 3.2s ease-in-out .5s infinite backwards}@keyframes tutorial-swipe{0%,8%{transform:translate(0)}35%,70%{transform:translate(-164px)}95%,to{transform:translate(0)}}.tutorial-finger{position:absolute;top:70%;right:24px;font-size:32px;z-index:2;pointer-events:none;animation:tutorial-finger 3.2s ease-in-out .5s infinite backwards}@keyframes tutorial-finger{0%,8%{transform:translateY(-50%);opacity:1}35%,70%{transform:translate(-164px,-50%);opacity:1}85%{transform:translate(-164px,-50%);opacity:0}95%,to{transform:translateY(-50%);opacity:0}}.tutorial-tip-title{font-family:VT323,monospace;font-size:20px;color:#7db344;font-weight:400;text-transform:uppercase;margin-top:48px;margin-bottom:6px}.tutorial-content>.tutorial-tip-title:first-of-type{margin-top:24px}.tutorial-add-demo{position:relative;margin-top:16px;pointer-events:none}.tutorial-add-demo .search-bar{margin-bottom:0;animation:tutorial-search-appear 5s ease-in-out .5s infinite backwards}.tutorial-search-text{font-family:VT323,monospace;font-size:20px;color:#e8e8e8;line-height:42px;height:42px;display:block;overflow:hidden;white-space:nowrap;width:0;animation:tutorial-search-type 5s steps(11,end) .5s infinite backwards}.tutorial-search-caret{width:2px;height:22px;background:#7db344;flex-shrink:0;animation:tutorial-search-caret-blink .6s steps(2) .5s infinite backwards}.tutorial-add-btn-wrap{position:relative;margin:24px 0 16px;padding-bottom:36px;overflow:hidden}.tutorial-add-demo .add-new-btn{display:flex;align-items:center;justify-content:center;padding:0 16px;margin:0;animation:tutorial-add-appear 5s ease-in-out .5s infinite backwards}.tutorial-add-finger{position:absolute;bottom:0;left:50%;margin-left:-16px;font-size:32px;z-index:102;pointer-events:none;animation:tutorial-add-finger-tap 5s ease-in-out .5s infinite backwards}@keyframes tutorial-add-finger-tap{0%,66%{transform:translateY(40px);opacity:0}72%{transform:translateY(0);opacity:1}76%,80%{transform:translateY(-12px);opacity:1}84%{transform:translateY(0);opacity:1}88%,to{transform:translateY(40px);opacity:0}}.tutorial-fab-area{position:relative;height:90px;margin-top:16px;overflow:hidden}.tutorial-fab{position:absolute;bottom:0;right:0;animation:tutorial-fab-press 5s ease-in-out .5s infinite backwards}.tutorial-tap-finger{position:absolute;bottom:4px;right:18px;font-size:32px;z-index:101;pointer-events:none;animation:tutorial-tap-finger 5s ease-in-out .5s infinite backwards}@keyframes tutorial-tap-finger{0%{transform:translateY(80px);opacity:0}8%{transform:translateY(0);opacity:1}13%,18%{transform:translateY(-8px);opacity:1}22%{transform:translateY(0);opacity:1}26%,to{transform:translateY(80px);opacity:0}}@keyframes tutorial-fab-press{0%,12%{transform:scale(1)}15%{transform:scale(.9)}18%,to{transform:scale(1)}}@keyframes tutorial-search-appear{0%,26%{opacity:0;transform:translateY(-8px)}32%,90%{opacity:1;transform:translateY(0)}95%,to{opacity:0;transform:translateY(-8px)}}@keyframes tutorial-search-type{0%,34%{width:0}54%,90%{width:11ch}to{width:0}}@keyframes tutorial-search-caret-blink{0%,49%{background:#7db344}50%,to{background:transparent}}@keyframes tutorial-add-appear{0%,58%{opacity:0;transform:translateY(-4px) scale(1)}64%,75%{opacity:1;transform:translateY(0) scale(1)}78%{opacity:1;transform:translateY(0) scale(.9)}81%,90%{opacity:1;transform:translateY(0) scale(1)}95%,to{opacity:0;transform:translateY(-4px) scale(1)}}.app-credits-link{color:#a5a5a5;text-decoration:underline;text-decoration-color:#444;text-underline-offset:2px}.app-credits-link:hover,.app-credits-link:focus-visible{color:#7db344;text-decoration-color:#7db344}
