:root{--bg: var(--tg-theme-bg-color, #fafaf8);--text: var(--tg-theme-text-color, #1c1a18);--hint: var(--tg-theme-hint-color, #8a8680);--link: var(--tg-theme-link-color, #e0583e);--btn: var(--tg-theme-button-color, #e0583e);--btn-text: var(--tg-theme-button-text-color, #ffffff);--secondary: var(--tg-theme-secondary-bg-color, #f3f1ed);--danger: #d94436;--green: #3d8c54;--yellow: #c47a1a;--blue: #5b8fa8;--accent: #e0583e;--accent-soft: #fdf0ec;--radius-sm: 14px;--radius: 18px;--radius-lg: 22px;--border: rgba(28,26,24,.06);--shadow-sm: 0 1px 2px rgba(28,26,24,.03), 0 1px 3px rgba(28,26,24,.05);--shadow: 0 1px 3px rgba(28,26,24,.03), 0 4px 12px rgba(28,26,24,.05);--shadow-lg: 0 2px 6px rgba(28,26,24,.03), 0 8px 24px rgba(28,26,24,.07);--input-border: rgba(28,26,24,.1);--tab-bg: rgba(248,247,244,.94);--badge-red-bg: #fdf1ef;--badge-yellow-bg: #fef8f0;--badge-green-bg: #eef5f0;--badge-blue-bg: #eef4f7;--badge-red-text: #c43830;--badge-yellow-text: #a86810;--badge-green-text: #2e6e3e;--badge-blue-text: #4a7088}@media (prefers-color-scheme: dark){:root{--bg: var(--tg-theme-bg-color, #151412);--text: var(--tg-theme-text-color, #ebe8e2);--hint: var(--tg-theme-hint-color, #8a8680);--secondary: var(--tg-theme-secondary-bg-color, #22201d);--border: rgba(235,232,226,.06);--shadow-sm: 0 1px 2px rgba(0,0,0,.3), 0 1px 4px rgba(0,0,0,.4);--shadow: 0 1px 3px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.45);--shadow-lg: 0 2px 6px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.5);--input-border: rgba(235,232,226,.1);--tab-bg: rgba(20,19,17,.94);--accent-soft: rgba(224,88,62,.14);--badge-red-bg: rgba(217,68,54,.16);--badge-yellow-bg: rgba(196,122,26,.16);--badge-green-bg: rgba(61,140,84,.16);--badge-blue-bg: rgba(91,143,168,.16);--badge-red-text: #f07068;--badge-yellow-text: #e89830;--badge-green-text: #58b870;--badge-blue-text: #7aaccc}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;line-height:1.55;letter-spacing:-.01em}#app{max-width:480px;margin:0 auto;padding:0 0 100px;min-width:320px}.tabs{display:flex;justify-content:space-around;gap:0;background:var(--tab-bg);padding:8px 4px;position:sticky;top:0;z-index:10;backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);box-shadow:var(--shadow-sm)}.tab{border:none;background:none;font-size:18px;padding:10px 5px;cursor:pointer;opacity:.5;transition:all .25s cubic-bezier(.16,1,.3,1);border-radius:11px;min-width:0;flex:1;text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center}.tab.active{opacity:1;background:var(--secondary);box-shadow:0 1px 3px #1c1c200f}.tab.active:after{content:"";position:absolute;bottom:3px;left:30%;right:30%;height:2.5px;background:var(--btn);border-radius:2px}.tab-content{display:none;padding:16px 18px;animation:fadeUp .4s cubic-bezier(.16,1,.3,1)}.tab-content.active{display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 22px;border:none;border-radius:var(--radius-sm);background:var(--secondary);color:var(--text);font-size:14px;font-weight:560;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);letter-spacing:-.01em;position:relative;min-height:44px;-webkit-tap-highlight-color:transparent}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;transition:background .2s;border-radius:inherit}.btn:active{transform:scale(.96)}.btn:active:after{background:#1c1c200d}.btn:focus-visible{outline:2px solid var(--btn);outline-offset:2px}.btn.primary{background:linear-gradient(135deg,var(--btn),color-mix(in srgb,var(--btn) 85%,#000));color:var(--btn-text);font-weight:600;box-shadow:0 3px 12px color-mix(in srgb,var(--btn) 30%,transparent)}.btn.primary:active{box-shadow:0 1px 4px color-mix(in srgb,var(--btn) 20%,transparent)}.btn.danger{background:linear-gradient(135deg,var(--danger),#c93028);color:#fff}.btn.full{display:flex;width:100%;margin:6px 0;padding:15px 22px;font-size:16px;border-radius:var(--radius)}.btn.sm{padding:8px 14px;font-size:13px;border-radius:10px;min-height:36px}.card{background:var(--secondary);border-radius:var(--radius);padding:18px 20px;margin:0;box-shadow:var(--shadow);transition:transform .2s cubic-bezier(.16,1,.3,1)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-title{font-weight:620;font-size:16px;letter-spacing:-.02em;line-height:1.3}.card-sub{font-size:13px;color:var(--hint);margin-top:10px;font-weight:480}.card-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.card-actions .btn{font-size:13px;padding:8px 14px;border-radius:10px;min-height:36px}.card-days{font-size:12px;font-weight:640;padding:6px 12px;border-radius:20px;white-space:nowrap;letter-spacing:-.01em}.card-days.red{background:var(--badge-red-bg);color:var(--badge-red-text)}.card-days.yellow{background:var(--badge-yellow-bg);color:var(--badge-yellow-text)}.card-days.green{background:var(--badge-green-bg);color:var(--badge-green-text)}.card-days.blue{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.card-qty{margin-left:8px;font-size:13px;color:var(--hint);font-weight:440}.card-red{box-shadow:3px 0 0 var(--badge-red-text),var(--shadow)}.card-yellow{box-shadow:3px 0 0 var(--badge-yellow-text),var(--shadow)}.card-green{box-shadow:3px 0 0 var(--badge-green-text),var(--shadow)}.card-blue{box-shadow:3px 0 0 var(--badge-blue-text),var(--shadow)}.input{display:block;width:100%;padding:14px 16px;margin:8px 0;border:1.5px solid var(--input-border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:15px;font-weight:460;outline:none;min-height:48px;transition:all .25s cubic-bezier(.16,1,.3,1);letter-spacing:-.01em}.input:focus{border-color:var(--btn);box-shadow:0 0 0 4px color-mix(in srgb,var(--btn) 12%,transparent)}.input[type=date]{width:auto;min-width:160px;color-scheme:light;-webkit-color-scheme:light}.input[type=date]::-webkit-calendar-picker-indicator{filter:invert(0)}.input[type=date]::-webkit-datetime-edit{color:var(--text)}.input[type=number]{width:auto;min-width:130px}.row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;align-items:center}.swipe-wrap{overflow:hidden;margin:10px 0;border-radius:var(--radius);box-shadow:var(--shadow-sm)}.swipe-track{display:flex;flex-wrap:nowrap;transform:translate(0);will-change:transform}.swipe-card-body{flex:0 0 100%;width:100%;min-width:0;border-radius:var(--radius) 0 0 var(--radius)}.swipe-delete{flex:0 0 90px;width:90px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--danger),#c93028);color:#fff;font-weight:620;font-size:13px;text-align:center;border-radius:0 var(--radius) var(--radius) 0}@media (hover: hover){.swipe-delete{display:none}.del-btn{display:inline-flex}}@media (hover: none){.del-btn{display:none}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000004d;align-items:flex-end;display:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal[hidden]{display:none}.modal:not([hidden]){display:flex;animation:sheetUp .45s cubic-bezier(.34,1.56,.64,1)}.modal-content{background:var(--bg);width:100%;padding:32px 24px 38px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-content h3{font-size:23px;font-weight:700;margin-bottom:22px;letter-spacing:-.02em}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-2deg)}40%{transform:rotate(1.5deg)}60%{transform:rotate(-1deg)}80%{transform:rotate(.5deg)}}@keyframes popIn{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.wobble{animation:wobble .5s cubic-bezier(.16,1,.3,1)}.pop-in{animation:popIn .4s cubic-bezier(.34,1.56,.64,1)}.organic-divider{height:4px;background:linear-gradient(90deg,transparent,var(--accent-soft),transparent);border-radius:2px;margin:16px 0;opacity:.6}.scan-area{text-align:center;padding:48px 16px}.upload-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 34px;background:linear-gradient(135deg,var(--btn),color-mix(in srgb,var(--btn) 85%,#000));color:var(--btn-text);border-radius:var(--radius);font-size:16px;font-weight:620;cursor:pointer;box-shadow:0 5px 18px color-mix(in srgb,var(--btn) 30%,transparent);transition:all .25s cubic-bezier(.16,1,.3,1)}.upload-btn:active{transform:scale(.95);box-shadow:0 2px 8px color-mix(in srgb,var(--btn) 20%,transparent)}.recipe-card{background:var(--secondary);border-radius:var(--radius);padding:20px 22px;margin:14px 0;box-shadow:var(--shadow)}.recipe-card h4{margin-bottom:12px;font-size:18px;font-weight:650;letter-spacing:-.02em}.recipe-card ul{padding-left:22px;margin:10px 0;font-size:14px}.recipe-card li{margin:6px 0;line-height:1.55}.recipe-card p{margin:10px 0;font-size:14px;line-height:1.65}.search-box{display:flex;align-items:center;gap:10px;background:var(--secondary);border-radius:var(--radius-sm);padding:8px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.search-box input{flex:1;border:none;background:none;outline:none;font-size:15px;color:var(--text);padding:8px 0;font-weight:460;min-height:44px}.search-box .clear{cursor:pointer;font-size:18px;opacity:.35;transition:opacity .2s}.search-box .clear:hover{opacity:.7}.cat-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.cat-filters .cat-pill{padding:8px 14px;border-radius:20px;font-size:12px;font-weight:560;background:var(--secondary);cursor:pointer;white-space:nowrap;transition:all .25s cubic-bezier(.16,1,.3,1)}.cat-filters .cat-pill.active{background:var(--btn);color:var(--btn-text)}.shop-item{display:flex;align-items:center;gap:12px;padding:14px 0;box-shadow:0 .5px 0 var(--border);min-height:52px}.shop-item.checked .shop-name{text-decoration:line-through;opacity:.4}.shop-item .shop-check{cursor:pointer;font-size:22px;min-width:44px;text-align:center}.shop-item .shop-name{flex:1;font-size:15px;font-weight:480}.shop-item .shop-del{cursor:pointer;opacity:.35;font-size:16px;min-width:44px;text-align:center}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{background:var(--secondary);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}.stat-card .stat-num{display:block;font-size:36px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em}.stat-card span:last-child{font-size:13px;color:var(--hint);font-weight:500}.stat-card.warn .stat-num{color:var(--yellow)}.stat-card.danger .stat-num{color:var(--danger)}.stat-card.blue .stat-num{color:var(--blue)}.stat-row{display:flex;justify-content:space-between;padding:10px 0;box-shadow:0 .5px 0 var(--border);font-size:14px}.empty-state{text-align:center;padding:80px 24px;color:var(--hint)}.empty-state .icon{font-size:60px;margin-bottom:20px;display:block;opacity:.7}.empty-state h3{font-size:19px;font-weight:640;margin-bottom:8px;color:var(--text)}.empty-state p{font-size:14px;opacity:.6}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8.5L1.5 4h9z' fill='%238e8e93'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px}
