@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Outfit:wght@300;400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #F8F7F4;--bg-secondary: #F0EDE8;--bg-card: #FFFFFF;--bg-card-hover: #FAFAFA;--bg-elevated: #FFFFFF;--bg-glass: rgba(255, 255, 255, .72);--bg-glass-heavy: rgba(255, 255, 255, .85);--blue-50: #EFF6FF;--blue-100: #DBEAFE;--blue-200: #BFDBFE;--blue-500: #3B82F6;--blue-600: #2563EB;--blue-700: #1D4ED8;--green-50: #F0FDF4;--green-100: #DCFCE7;--green-500: #22C55E;--green-600: #16A34A;--green-700: #15803D;--orange-100: #FFEDD5;--orange-400: #FB923C;--orange-500: #F97316;--red-100: #FEE2E2;--red-400: #F87171;--red-500: #EF4444;--yellow-100: #FEF9C3;--yellow-400: #FACC15;--yellow-500: #EAB308;--purple-100: #F3E8FF;--purple-500: #A855F7;--purple-600: #9333EA;--gray-50: #FAFAFA;--gray-100: #F5F5F5;--gray-200: #E5E5E5;--gray-300: #D4D4D4;--gray-400: #A3A3A3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--cat-dairy: #FDE68A;--cat-dairy-text: #92400E;--cat-meat: #FCA5A5;--cat-meat-text: #991B1B;--cat-produce: #86EFAC;--cat-produce-text: #166534;--cat-pantry: #93C5FD;--cat-pantry-text: #1E3A8A;--cat-frozen: #C4B5FD;--cat-frozen-text: #5B21B6;--cat-beverages: #F9A8D4;--cat-beverages-text: #9D174D;--cat-snacks: #FDBA74;--cat-snacks-text: #9A3412;--cat-condiments: #CBD5E1;--cat-condiments-text: #334155;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .04);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .1), 0 4px 16px rgba(0, 0, 0, .06);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .04);--shadow-fab: 0 8px 24px rgba(37, 99, 235, .35);--shadow-glass: 0 8px 32px rgba(0, 0, 0, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}html.dark{--bg-primary: #2b3b6d;--bg-secondary: #2e3448;--bg-card: #252a3c;--bg-card-hover: #2d3348;--bg-elevated: #2a3045;--bg-glass: rgba(43, 59, 109, .75);--bg-glass-heavy: rgba(37, 42, 60, .95);--blue-50: #1E3A5F;--blue-100: #1E3A5F;--blue-500: #60A5FA;--blue-600: #3B82F6;--blue-700: #93C5FD;--green-50: #14532D;--green-100: #14532D;--green-500: #4ADE80;--green-600: #22C55E;--green-700: #86EFAC;--orange-100: #431407;--orange-400: #FB923C;--orange-500: #F97316;--red-100: #450A0A;--red-400: #F87171;--red-500: #EF4444;--yellow-100: #422006;--yellow-400: #FACC15;--yellow-500: #EAB308;--purple-100: #3B0764;--purple-500: #C084FC;--purple-600: #A855F7;--gray-50: #2c3147;--gray-100: #333850;--gray-200: #4a5575;--gray-300: #6a7595;--gray-400: #8a95b5;--gray-500: #a5b0d0;--gray-600: #c0c8e0;--gray-700: #d8dced;--gray-800: #eef0f8;--gray-900: #ffffff;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25), 0 1px 3px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .15);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .35), 0 4px 16px rgba(0, 0, 0, .15);--shadow-card: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .1);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .15);--shadow-fab: 0 8px 24px rgba(96, 165, 250, .25);--shadow-glass: 0 8px 32px rgba(0, 0, 0, .3)}html,body{height:100%;width:100%;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-normal),color var(--transition-normal)}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--gray-800);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color var(--transition-normal),color var(--transition-normal)}#root{height:100%;display:flex;flex-direction:column;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}::selection{background-color:var(--blue-100);color:var(--blue-700)}:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes toastIn{0%{opacity:0;transform:translateY(100%) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(100%) scale(.95)}}@keyframes countUp{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-slide-up{animation:slideUp .3s ease forwards}.animate-scale-in{animation:scaleIn .25s ease forwards}.tab-content-enter{animation:fadeIn .25s ease}.app-container{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:480px;width:100%;background-color:var(--bg-primary);position:relative;overflow-x:hidden;transition:background-color var(--transition-normal)}@media(min-width:481px){.app-container{margin:0 auto;box-shadow:0 0 60px #00000014;border:1px solid var(--gray-200)}}html.dark .app-container{background-color:#252a3c;border:1px solid var(--gray-200);box-shadow:0 8px 32px #00000040}.app-header{padding:20px 20px 16px;color:#fff;background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.05) 35%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.05) 65%,transparent 85%),linear-gradient(160deg,#0a1628,#132e5b,#1e5f9e 50%,#4fc3f7 80%,#b3e5fc);background-size:200% 100%,100% 100%;animation:headerSweep 10s ease-in-out infinite;position:relative}html.dark .app-header{background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.03) 35%,rgba(255,255,255,.05) 50%,rgba(255,255,255,.03) 65%,transparent 85%),linear-gradient(160deg,#0f1117,#141929,#1a2040 50%,#1e2a50 80%,#243060)}@keyframes headerSweep{0%,to{background-position:-100% 0,0 0}50%{background-position:200% 0,0 0}}.header-content{position:relative;z-index:1}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.app-logo{display:flex;align-items:center;gap:8px}.app-logo-emoji{font-size:28px;line-height:1}.app-title{font-family:var(--font-heading);font-size:26px;font-weight:700;letter-spacing:-.5px}.theme-toggle{width:40px;height:40px;border-radius:50%;border:none;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.theme-toggle:hover{background:#ffffff40;transform:scale(1.08)}.theme-toggle:active{transform:scale(.92)}.header-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.stat-chip{display:flex;align-items:center;gap:6px;background:#fff3;padding:6px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;cursor:default;transition:all var(--transition-fast)}.stat-chip.clickable{cursor:pointer;background:#ffffff40}.stat-chip.clickable:hover{background:#ffffff59;transform:translateY(-1px)}.stat-chip.warning{background:#e76f514d}.stat-chip.danger{background:#e53e3e59}.stat-chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tab-bar{display:flex;gap:4px;padding:6px;margin:12px 20px;background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:relative;z-index:2;transition:all var(--transition-normal)}html.dark .tab-bar{border-color:var(--gray-200);background:var(--bg-glass)}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border:none;background:transparent;border-radius:var(--radius-md);font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;position:relative}.tab-btn:hover{color:var(--gray-700);background:var(--gray-100)}.tab-btn:active{transform:scale(.96)}.tab-btn.active{background:var(--blue-600);color:#fff;box-shadow:0 2px 8px #2563eb40}.tab-icon{font-size:16px;line-height:1}.summary-dashboard{margin:0 20px 12px;animation:slideDown .3s ease}.summary-stats{display:flex;gap:8px;margin-bottom:12px}.summary-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--gray-200);border-radius:var(--radius-md);transition:all var(--transition-fast);animation:countUp .3s ease}html.dark .summary-stat{border-color:var(--gray-200);background:var(--bg-glass)}.summary-stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.summary-stat-value{font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--gray-800);line-height:1.2}.summary-stat-value.warning{color:var(--orange-500)}.summary-stat-value.danger{color:var(--red-500)}.summary-stat-label{font-size:11px;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.summary-categories{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.summary-cat-pill{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;border:1.5px solid;background:transparent;cursor:pointer;transition:all var(--transition-fast)}.summary-cat-pill:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.summary-cat-pill:active{transform:scale(.95)}.summary-cat-pill-emoji{font-size:14px;line-height:1}.summary-cat-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius-full);background:color-mix(in srgb,currentColor 15%,transparent);font-size:10px;font-weight:700}.summary-cat-pill.more{background:var(--gray-100);color:var(--gray-500);border-color:var(--gray-200)}.summary-cat-pill.more:hover{background:var(--gray-200);color:var(--gray-700)}.summary-cat-pill.reorder-toggle{background:var(--gray-100)!important;color:var(--gray-600)!important;border-color:var(--gray-300)!important;font-weight:700!important;min-width:80px;justify-content:center;display:inline-flex!important;visibility:visible!important;opacity:1!important;flex-shrink:0}.summary-cat-pill.reorder-toggle:hover{background:var(--gray-200)!important;color:var(--gray-800)!important}.summary-cat-pill.reorder-toggle.active{background:var(--blue-50)!important;color:var(--blue-600)!important;border-color:var(--blue-500)!important}html.dark .summary-cat-pill.reorder-toggle{background:var(--gray-100)!important;color:var(--gray-600)!important;border-color:var(--gray-300)!important}html.dark .summary-cat-pill.reorder-toggle:hover{background:var(--gray-200)!important;color:var(--gray-800)!important}html.dark .summary-cat-pill.reorder-toggle.active{background:#60a5fa26!important;color:var(--blue-500)!important;border-color:var(--blue-500)!important}.summary-cat-pill.draggable{cursor:grab;transition:all .2s ease;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.summary-cat-pill.draggable:active{cursor:grabbing}.touch-drag-ghost{position:fixed;z-index:9999;pointer-events:none;background:var(--bg-card);border:2px solid var(--blue-500);border-radius:var(--radius-full);width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0000004d;animation:scaleIn .15s ease;transform:translate(-50%,-50%)}.summary-cat-pill-drag-handle{opacity:.5;margin-right:2px;font-size:12px;line-height:1;pointer-events:none;cursor:inherit}.category-grid.reorder-mode .category-card{cursor:grab;position:relative;transition:all .2s ease;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.category-grid.reorder-mode .category-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-card-hover)}.category-grid.reorder-mode .category-card:active{cursor:grabbing;transform:scale(.98)}.category-grid.reorder-mode .category-card.drag-over{border-color:var(--blue-500)!important;box-shadow:0 0 0 2px #3b82f64d;transform:scale(1.03)}.category-card-drag-handle{position:absolute;top:6px;right:6px;font-size:14px;opacity:.6;line-height:1}.reorder-hint{font-size:12px;color:var(--gray-400);font-weight:500}.main-content{flex:1;padding:0 16px 100px;animation:fadeIn .3s ease}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;animation:fadeIn .4s ease}.empty-state-emoji{font-size:64px;margin-bottom:16px;animation:float 3s ease-in-out infinite}.empty-state-title{font-family:var(--font-heading);font-size:20px;font-weight:600;color:var(--gray-700);margin-bottom:8px}.empty-state-text{font-size:14px;color:var(--gray-400);max-width:240px}.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--blue-600),var(--blue-500));color:#fff;border:none;box-shadow:var(--shadow-fab);font-size:28px;line-height:1;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center;z-index:10}.fab:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 8px 32px #2563eb73}.fab:active{transform:scale(.95) rotate(90deg)}@media(min-width:521px){.fab{right:50%;transform:translate(208px)}.fab:hover{transform:scale(1.1) rotate(90deg) translate(208px)}.fab:active{transform:scale(.95) rotate(90deg) translate(208px)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:modalOverlayIn .3s cubic-bezier(.4,0,.2,1) forwards}.modal-overlay.closing{animation:modalOverlayOut .3s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalOverlayOut{0%{opacity:1}to{opacity:0}}.modal-sheet{background:var(--bg-elevated);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:12px 20px 32px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:modalSheetIn .35s cubic-bezier(.34,1.56,.64,1) forwards;box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);border-bottom:none}.modal-sheet.closing{animation:modalSheetOut .3s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes modalSheetIn{0%{opacity:0;transform:translateY(100%) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalSheetOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(100%) scale(.95)}}.modal-handle{width:40px;height:4px;background:var(--gray-300);border-radius:var(--radius-full);margin:0 auto 16px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-family:var(--font-heading);font-size:22px;font-weight:600;color:var(--gray-800)}.modal-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--gray-100);color:var(--gray-500);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-close:hover{background:var(--gray-200);color:var(--gray-700);transform:scale(1.08)}.modal-close:active{transform:scale(.92)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--gray-600);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:12px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:16px;color:var(--gray-800);background:var(--bg-primary);transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 3px #3b82f626}.form-input::placeholder{color:var(--gray-400)}textarea.form-input{min-height:80px;resize:vertical}select.form-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236B7280' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 01.708 0L8 8.293l2.646-2.647a.5.5 0 01.708.708l-3 3a.5.5 0 01-.708 0l-3-3a.5.5 0 010-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;padding-right:40px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{display:block;font-size:12px;color:var(--red-400);margin-top:4px}.input-error{border-color:var(--red-400)}.input-error:focus{border-color:var(--red-400);box-shadow:0 0 0 3px #f8717126}.quick-date-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.quick-date-btn{padding:6px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius-full);background:var(--bg-primary);color:var(--gray-600);font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.quick-date-btn:hover{border-color:var(--blue-500);color:var(--blue-600);background:var(--blue-50);transform:translateY(-1px)}.quick-date-btn:active{transform:scale(.95)}.category-picker{display:flex;flex-wrap:wrap;gap:8px}.category-chip{display:flex;align-items:center;gap:4px;padding:8px 12px;border:2px solid var(--gray-200);border-radius:var(--radius-full);background:var(--bg-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.category-chip:hover{border-color:var(--gray-300);background:var(--bg-secondary);transform:translateY(-1px)}.category-chip:active{transform:scale(.96)}.category-chip.selected{border-color:currentColor;background:color-mix(in srgb,currentColor 12%,transparent);box-shadow:0 2px 8px color-mix(in srgb,currentColor 20%,transparent)}.category-chip-emoji{font-size:16px}.submit-btn{width:100%;padding:14px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--blue-600),var(--blue-500));color:#fff;font-family:var(--font-body);font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);margin-top:8px;position:relative;overflow:hidden}.submit-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%);transition:transform .6s ease}.submit-btn:hover:after{transform:translate(100%)}.submit-btn:hover{background:linear-gradient(135deg,var(--blue-700),var(--blue-600));transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.submit-btn:active{transform:translateY(0)}.submit-btn.danger{background:linear-gradient(135deg,var(--red-400),var(--red-500))}.submit-btn.danger:hover{background:linear-gradient(135deg,var(--red-500),#9B2C2C)}.warning-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,var(--orange-100),var(--red-100));border-radius:var(--radius-md);margin-bottom:16px;animation:slideDown .3s ease;border:1px solid var(--orange-400)}.warning-banner-icon{font-size:24px;flex-shrink:0}.warning-banner-text{font-size:14px;font-weight:500;color:var(--orange-500)}.warning-banner-count{font-weight:700;color:var(--orange-400)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;margin-top:8px}.section-title{font-family:var(--font-heading);font-size:18px;font-weight:600;color:var(--gray-700)}.section-badge{background:var(--blue-50);color:var(--blue-700);padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.see-more-btn{width:100%;padding:10px 16px;border:none;border-radius:var(--radius-md);background:var(--gray-200);color:var(--gray-800);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.see-more-btn:hover{background:var(--gray-300);color:var(--gray-900)}.see-more-btn:active{transform:scale(.98)}.image-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px;border:2px dashed var(--gray-300);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:var(--gray-50)}.image-upload-area:hover{border-color:var(--blue-400);background:var(--blue-50)}.image-upload-icon{font-size:28px}.image-upload-text{font-size:14px;font-weight:500;color:var(--gray-700)}.image-upload-hint{font-size:12px;color:var(--gray-500)}.image-upload-preview{position:relative;display:inline-block;width:100%}.image-upload-preview img{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--gray-200)}.image-remove-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border:none;border-radius:50%;background:var(--red-500);color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.image-remove-btn:hover{background:var(--red-600);transform:scale(1.1)}.form-input-hidden{display:none}.inventory-toolbar{display:flex;justify-content:flex-end;margin-bottom:4px;width:100%}@media(min-width:768px){.inventory-toolbar{flex:0 0 100%}}.view-toggle{display:flex;gap:2px;background:var(--gray-100);border-radius:var(--radius-sm);padding:2px}.view-toggle-btn{padding:4px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--gray-500);font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.view-toggle-btn:hover{color:var(--gray-700)}.view-toggle-btn.active{background:var(--bg-card);color:var(--gray-800);box-shadow:var(--shadow-sm)}.category-grid-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.category-reorder-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 16px;border:1.5px solid var(--gray-300);border-radius:var(--radius-full);background:var(--bg-card);color:var(--gray-600);font-family:var(--font-body);font-size:13px;font-weight:700;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;white-space:nowrap}.category-reorder-btn:hover{background:var(--gray-100);color:var(--gray-800)}.category-reorder-btn.active{background:var(--blue-50);color:var(--blue-600);border-color:var(--blue-500)}html.dark .category-reorder-btn{background:var(--bg-card);color:var(--gray-400);border-color:var(--gray-300)}html.dark .category-reorder-btn:hover{background:var(--bg-card-hover);color:var(--gray-200)}html.dark .category-reorder-btn.active{background:#60a5fa26;color:var(--blue-500);border-color:var(--blue-500)}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.category-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;border-radius:var(--radius-lg);background:var(--bg-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-card);cursor:pointer;transition:all var(--transition-normal);border:2px solid transparent}html.dark .category-card{border-color:#ffffff14;box-shadow:var(--shadow-card)}html.dark .form-input{border-color:var(--gray-200);background:var(--bg-secondary)}html.dark .form-input:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px #60a5fa1f}html.dark .category-chip{border-color:var(--gray-200);background:var(--bg-secondary)}html.dark .quick-date-btn{border-color:var(--gray-200);background:var(--bg-secondary);color:var(--gray-400)}html.dark .quick-date-btn:hover{border-color:var(--blue-500);background:#60a5fa1a;color:var(--blue-500)}html.dark .modal-sheet,html.dark .confirm-dialog,html.dark .toast{border-color:var(--gray-200);background:var(--bg-elevated)}.category-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-3px)}.category-card:active{transform:scale(.97) translateY(-1px)}.category-card.selected{border-color:currentColor;background:color-mix(in srgb,currentColor 8%,transparent)}.category-card-emoji{font-size:36px;line-height:1;transition:transform var(--transition-spring)}.category-card:hover .category-card-emoji{transform:scale(1.15) rotate(-5deg)}.category-card-name{font-size:14px;font-weight:600;color:var(--gray-700)}.category-card-count{font-size:12px;font-weight:500;color:var(--gray-400)}.item-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--gray-200);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:10px;transition:all var(--transition-normal);animation:slideUpFade .3s ease forwards}html.dark .item-card{border-color:var(--gray-200);box-shadow:var(--shadow-card)}html.dark .item-card:hover{border-color:var(--gray-300)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.item-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-color:var(--gray-300)}.item-card:active{transform:scale(.99) translateY(0)}.item-card.compact-view{padding:8px 12px;gap:8px;align-items:center;cursor:default}.item-card.compact-view:hover{transform:none;box-shadow:var(--shadow-card)}.item-card-compact-indicator{width:3px;height:20px;border-radius:2px;flex-shrink:0}.item-card-compact-emoji{font-size:16px;line-height:1;flex-shrink:0}.item-card-compact-name{font-size:14px;font-weight:500;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-card-category{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;transition:transform var(--transition-spring)}.item-card:hover .item-card-category{transform:scale(1.08) rotate(-3deg)}.item-card-image{width:100%;height:120px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:8px}.item-card-info{flex:1;min-width:0}.item-card-name{font-size:15px;font-weight:600;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-card-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.item-card-quantity{font-size:13px;color:var(--gray-500)}.item-card-notes{font-size:12px;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-card-expiry{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.expiry-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap}.expiry-badge.fresh{background:var(--green-50);color:var(--green-600)}.expiry-badge.warning{background:var(--yellow-100);color:var(--yellow-500)}.expiry-badge.danger{background:var(--red-100);color:var(--red-500)}.expiry-badge.expired{background:var(--red-500);color:#fff;animation:pulse 2s infinite}.expiry-bar{width:50px;height:4px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.expiry-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.expiry-ring{position:relative;width:36px;height:36px;flex-shrink:0}.expiry-ring svg{transform:rotate(-90deg)}.expiry-ring-bg{fill:none;stroke:var(--gray-200);stroke-width:3}.expiry-ring-fill{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.expiry-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--gray-600)}.item-card-actions{display:flex;gap:4px;flex-shrink:0}.item-action-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--gray-400);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.item-action-btn:hover{background:var(--gray-100);color:var(--gray-600);transform:scale(1.1)}.item-action-btn:active{transform:scale(.9)}.item-action-btn.delete:hover{background:var(--red-100);color:var(--red-500)}.expiring-timeline{position:relative;padding-left:20px}.expiring-timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--gray-200);border-radius:var(--radius-full)}.expiring-item{position:relative;margin-bottom:16px;animation:slideUpFade .3s ease forwards}.expiring-item:before{content:"";position:absolute;left:-18px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-card)}.expiring-item.urgent:before{background:var(--red-400);box-shadow:0 0 0 3px var(--red-100)}.expiring-item.soon:before{background:var(--yellow-400);box-shadow:0 0 0 3px var(--yellow-100)}.expiring-item.ok:before{background:var(--green-500);box-shadow:0 0 0 3px var(--green-50)}.expiring-date-label{font-size:12px;font-weight:600;color:var(--gray-500);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;animation:modalOverlayIn .2s ease forwards}.confirm-dialog{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:32px 24px 24px;width:calc(100% - 48px);max-width:340px;animation:confirmIn .3s cubic-bezier(.34,1.56,.64,1) forwards;text-align:center;box-shadow:var(--shadow-xl);border:1px solid var(--gray-200)}@keyframes confirmIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirm-dialog-icon{font-size:48px;margin-bottom:12px;animation:float 2s ease-in-out infinite}.confirm-title{font-family:var(--font-heading);font-size:18px;font-weight:600;color:var(--gray-800);margin-bottom:8px}.confirm-text{font-size:14px;color:var(--gray-500);margin-bottom:20px}.confirm-actions{display:flex;gap:10px}.confirm-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.confirm-btn.cancel{background:var(--gray-100);color:var(--gray-600)}.confirm-btn.cancel:hover{background:var(--gray-200);transform:translateY(-1px)}.confirm-btn.cancel:active{transform:scale(.97)}.confirm-btn.confirm{background:var(--red-400);color:#fff}.confirm-btn.confirm:hover{background:var(--red-500);transform:translateY(-1px)}.confirm-btn.confirm:active{transform:scale(.97)}.toast-container{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column-reverse;gap:8px;width:calc(100% - 32px);max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--gray-200);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:toastIn .3s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:auto;cursor:pointer;transition:all var(--transition-fast)}.toast:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.toast.toast-success{border-left:3px solid var(--green-500)}.toast.toast-info{border-left:3px solid var(--blue-500)}.toast-icon{font-size:16px;flex-shrink:0}.toast-message{font-size:14px;font-weight:500;color:var(--gray-700);flex:1}.category-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--gray-200)}.back-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--gray-100);color:var(--gray-600);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.back-btn:hover{background:var(--gray-200);transform:translate(-2px)}.back-btn:active{transform:scale(.9)}.category-detail-title{display:flex;align-items:center;gap:8px}.category-detail-title span:first-child{font-size:24px}.category-detail-title span:last-child{font-family:var(--font-heading);font-size:20px;font-weight:600;color:var(--gray-800)}@media(min-width:768px){.app-container{max-width:1200px;width:100%;margin:0 auto;min-height:100dvh}.tab-bar,.summary-dashboard{max-width:600px;margin-left:auto;margin-right:auto}.inventory-wrapper{display:flex;flex-wrap:wrap;gap:24px}.inventory-group{flex:1 1 320px;min-width:300px}.category-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.modal-overlay{align-items:center;justify-content:center}.modal-sheet{width:calc(100% - 64px);max-width:600px;border-radius:24px;padding:32px;max-height:85vh;margin:0 auto;border:1px solid var(--gray-200)}.fab{bottom:40px;right:40px;left:auto;transform:none}.fab:hover{transform:scale(1.1) rotate(90deg)}.fab:active{transform:scale(.95) rotate(90deg)}.main-content{padding:0 24px 40px}}@media(min-width:1024px){.app-container{max-width:1280px}.inventory-group{flex:1 1 350px}}
