:root{--bg: #FAF7F2;--surface: #FFFFFF;--surface-alt: #F5F0E8;--primary: #C4956A;--primary-dark: #A67B55;--primary-light: #F8F0E6;--secondary: #D4B896;--secondary-light: #F5EDE2;--accent: #8C7B6B;--accent-light: #F0EBE4;--success: #7BAF6E;--text: #3D3229;--text-secondary: #8A7B6F;--text-tertiary: #B5A99C;--border: #E8DFD4;--shadow: 0 2px 12px rgba(61,50,41,.06);--shadow-lg: 0 8px 32px rgba(61,50,41,.1);--radius: 16px;--radius-sm: 10px;--radius-full: 9999px;--nav-height: 64px;--bottom-height: 80px;--gradient-primary: linear-gradient(135deg, #C4956A 0%, #D4B896 100%);--shadow-glow: 0 0 20px rgba(196, 149, 106, .15)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Plus Jakarta Sans,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh}@media(min-width:481px){body{background:#e8dfd4}}::-webkit-scrollbar{width:0}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.pop-in{animation:popIn .3s cubic-bezier(.32,.72,0,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp .4s ease-out both}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(5deg)}}.float{animation:float 3s ease-in-out infinite}@keyframes pulseGlow{0%,to{opacity:.4;filter:blur(2px)}50%{opacity:.8;filter:blur(4px)}}.pulse-glow{animation:pulseGlow 2s ease-in-out infinite}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.fade-in-scale{animation:fadeInScale .5s cubic-bezier(.32,.72,0,1) both}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.bounce-in{animation:bounceIn .6s cubic-bezier(.32,.72,0,1) both}.app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--bg);position:relative;box-shadow:var(--shadow-lg)}.top-nav{position:sticky;top:0;z-index:50;background:#fff8f2d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(240,224,214,.5)}.nav-left{display:flex;align-items:center;gap:10px}.nav-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;font-weight:700}.nav-greeting{font-size:11px;color:var(--text-tertiary)}.nav-address{font-size:13px;font-weight:600;display:flex;align-items:center;gap:4px}.nav-address svg{width:14px;height:14px;color:var(--primary)}.nav-actions{display:flex;gap:6px}.nav-btn{width:38px;height:38px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:all .2s}.nav-btn:active{transform:scale(.92)}.nav-btn svg{width:18px;height:18px;color:var(--text)}.badge{position:absolute;top:-2px;right:-2px;width:18px;height:18px;background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}.search-wrap{padding:0 20px;margin:12px 0}.search-box{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:0 16px;height:46px;transition:border-color .2s}.search-box:focus-within{border-color:var(--primary)}.search-box svg{width:18px;height:18px;color:var(--text-tertiary);flex-shrink:0}.search-box input{border:none;outline:none;background:none;font-family:inherit;font-size:14px;color:var(--text);width:100%}.search-box input::placeholder{color:var(--text-tertiary)}.section-header{display:flex;justify-content:space-between;align-items:center;padding:0 20px;margin:20px 0 12px}.section-title{font-size:18px;font-weight:800}.section-link{font-size:12px;font-weight:600;color:var(--primary);cursor:pointer}.notif-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.notif-overlay.open{opacity:1;pointer-events:auto}.notif-sheet{position:fixed;bottom:0;left:50%;width:100%;max-width:480px;max-height:75dvh;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column}.notif-sheet.open{transform:translate(-50%) translateY(0)}.notif-header{padding:16px 20px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.notif-title{font-size:18px;font-weight:800}.notif-count{font-size:12px;font-weight:700;color:var(--primary);background:var(--primary-light);padding:3px 10px;border-radius:var(--radius-full)}.notif-body{flex:1;overflow-y:auto;padding:8px 20px}.notif-item{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.notif-item:last-child{border-bottom:none}.notif-item--unread{position:relative}.notif-item--unread:before{content:"";position:absolute;left:-12px;top:20px;width:6px;height:6px;background:var(--primary);border-radius:50%}.notif-item-emoji{font-size:28px;flex-shrink:0}.notif-item-content{flex:1;min-width:0}.notif-item-title{font-size:13px;font-weight:700;color:var(--text)}.notif-item-desc{font-size:12px;color:var(--text-secondary);margin-top:2px;line-height:1.4}.notif-item-time{font-size:10px;color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;margin-top:2px}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.profile-overlay.open{opacity:1;pointer-events:auto}.profile-sheet{position:fixed;bottom:0;left:50%;width:100%;max-width:480px;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column}.profile-sheet.open{transform:translate(-50%) translateY(0)}.profile-hero{text-align:center;padding:20px 20px 16px;border-bottom:1px solid var(--border)}.profile-avatar-lg{width:64px;height:64px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;font-weight:700;margin:0 auto 10px}.profile-name{font-size:18px;font-weight:800;color:var(--text)}.profile-email{font-size:12px;color:var(--text-tertiary);margin-top:2px}.profile-menu{padding:8px 12px 20px}.profile-menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:14px 8px;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);font-family:inherit;transition:background .2s}.profile-menu-item:hover{background:var(--surface-alt)}.profile-menu-item:active{background:var(--border)}.profile-menu-emoji{font-size:20px}.profile-menu-label{flex:1;text-align:left;font-size:14px;font-weight:600;color:var(--text)}.profile-menu-item svg{color:var(--text-tertiary)}.profile-avatar-owner{background:linear-gradient(135deg,#d4b896,#c4956a);box-shadow:0 0 0 3px var(--secondary-light)}.profile-owner-badge{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;color:var(--secondary);background:var(--secondary-light);padding:3px 12px;border-radius:var(--radius-full)}.profile-menu-item--accent .profile-menu-label{color:var(--accent)}.profile-menu-item--danger .profile-menu-label{color:var(--primary)}.profile-pin-input{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 44px;flex-wrap:wrap}.profile-pin-input input{flex:1;min-width:100px;height:38px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:16px;font-family:inherit;text-align:center;letter-spacing:6px;transition:border-color .2s}.profile-pin-input input:focus{outline:none;border-color:var(--accent)}.profile-pin-input input.profile-pin-error{border-color:var(--primary)}.profile-pin-input button{height:38px;padding:0 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .2s}.profile-pin-input button:hover{opacity:.9}.profile-pin-msg{width:100%;font-size:11px;color:var(--primary);font-weight:600;padding-left:4px}.addr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.addr-overlay.open{opacity:1;pointer-events:auto}.addr-sheet{position:fixed;bottom:0;left:50%;width:100%;max-width:480px;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column}.addr-sheet.open{transform:translate(-50%) translateY(0)}.addr-header{padding:16px 20px 12px;border-bottom:1px solid var(--border)}.addr-title{font-size:18px;font-weight:800}.addr-body{padding:8px 12px 20px}.addr-item{width:100%;display:flex;align-items:center;gap:12px;padding:14px 8px;border:2px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;margin-bottom:8px;transition:all .2s}.addr-item:hover{border-color:var(--secondary);background:var(--secondary-light)}.addr-item--active{border-color:var(--primary);background:var(--primary-light)}.addr-item-icon{font-size:24px;flex-shrink:0}.addr-item-content{flex:1;text-align:left}.addr-item-label{font-size:13px;font-weight:700;color:var(--text)}.addr-item-address{font-size:12px;color:var(--text-secondary);margin-top:2px}.addr-item-check{color:var(--primary);flex-shrink:0}.toast{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:200;background:var(--text);color:#fff;font-size:13px;font-weight:700;padding:12px 24px;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:none}.color-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.color-editor-overlay.open{opacity:1;pointer-events:auto}.color-editor-sheet{position:fixed;bottom:0;left:50%;width:100%;max-width:480px;max-height:85dvh;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column}.color-editor-sheet.open{transform:translate(-50%) translateY(0)}.color-editor-header{padding:16px 20px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;gap:8px}.color-editor-title{font-size:17px;font-weight:800;color:var(--text)}.color-editor-actions{display:flex;gap:6px}.color-editor-btn{font-size:11px;font-weight:700;border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);padding:5px 12px;border-radius:var(--radius-full);cursor:pointer;font-family:inherit;transition:all .2s}.color-editor-btn:hover{background:var(--surface-alt);color:var(--text)}.color-editor-btn--save{border-color:var(--success);color:var(--success)}.color-editor-btn--save:hover{background:#edf5e8}.color-editor-btn--reset{border-color:var(--primary);color:var(--primary)}.color-editor-btn--reset:hover{background:var(--primary-light)}.preset-save-bar{display:flex;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.preset-save-input{flex:1;height:36px;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface-alt)}.preset-save-input:focus{outline:none;border-color:var(--success)}.preset-save-confirm{height:36px;padding:0 16px;background:var(--success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .2s}.preset-save-confirm:disabled{opacity:.4;cursor:default}.preset-save-confirm:not(:disabled):hover{opacity:.9}.presets-dropdown{padding:8px 20px 4px;border-bottom:1px solid var(--border);max-height:220px;overflow-y:auto;flex-shrink:0}.preset-item{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s;margin-bottom:4px}.preset-item:hover{background:var(--surface-alt)}.preset-item:active{background:var(--border)}.preset-swatches{display:flex;gap:3px;flex-shrink:0}.preset-dot{width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.08)}.preset-name{flex:1;font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.preset-badge{font-size:9px;font-weight:700;color:var(--text-tertiary);background:var(--surface-alt);padding:2px 6px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px}.preset-item--active{background:var(--primary-light);border:1.5px solid var(--primary);border-radius:var(--radius-sm)}.preset-check{width:26px;height:26px;background:var(--success);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #7baf6e4d}.preset-delete{width:24px;height:24px;border:none;background:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.preset-delete:hover{background:var(--primary-light);color:var(--primary)}.presets-empty{font-size:12px;color:var(--text-tertiary);text-align:center;padding:12px 0}.color-editor-body{flex:1;overflow-y:auto;padding:12px 20px 24px}.color-group{margin-bottom:16px}.color-group-title{font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:6px}.color-group-items{display:flex;flex-direction:column;gap:6px}.color-item{background:var(--surface-alt);border-radius:var(--radius-sm);padding:10px 12px}.color-item-row{display:flex;align-items:center;gap:10px}.color-swatch{width:32px;height:32px;border-radius:8px;border:2px solid var(--border);flex-shrink:0;cursor:pointer;transition:transform .2s,box-shadow .2s}.color-swatch:hover{transform:scale(1.1);box-shadow:0 2px 8px #00000026}.color-item-info{flex:1;min-width:0}.color-item-label{display:block;font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.color-item-var{display:block;font-size:10px;color:var(--text-tertiary);font-family:monospace}.color-hex-input{width:80px;height:32px;border:1.5px solid var(--border);border-radius:6px;padding:0 8px;font-size:12px;font-family:monospace;font-weight:600;color:var(--text);text-align:center;background:var(--surface);flex-shrink:0;transition:border-color .2s}.color-hex-input:focus{outline:none;border-color:var(--primary)}.color-picker-wrap{margin-top:10px}.color-picker-wrap .react-colorful{width:100%!important;height:150px;border-radius:10px}.color-picker-wrap .react-colorful__saturation{border-radius:10px 10px 0 0}.color-picker-wrap .react-colorful__hue{height:14px;border-radius:0 0 10px 10px}.color-picker-wrap .react-colorful__pointer{width:20px;height:20px}.promo-carousel{padding:0 20px;margin:8px 0 16px}.promo-card{background:linear-gradient(135deg,#c4956a,#d4b896);border-radius:var(--radius);padding:20px 24px;color:#fff;position:relative;overflow:hidden;cursor:pointer}.promo-card:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.promo-card:before{content:"";position:absolute;bottom:-40px;right:30px;width:80px;height:80px;background:#ffffff14;border-radius:50%}.promo-tag{font-size:10px;font-weight:700;background:#ffffff40;padding:3px 10px;border-radius:var(--radius-full);display:inline-block;margin-bottom:8px;letter-spacing:.5px}.promo-title{font-size:20px;font-weight:800;margin-bottom:4px}.promo-sub{font-size:12px;opacity:.9}.promo-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;background:#fff;color:var(--primary);font-size:12px;font-weight:700;padding:8px 16px;border-radius:var(--radius-full)}.promo-emoji{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:52px;z-index:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.info-bar{display:flex;gap:8px;padding:0 20px;margin:0 0 16px}.info-chip{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.info-chip-icon{font-size:18px}.info-chip-text{font-size:11px;color:var(--text-secondary);line-height:1.3}.info-chip-text b{color:var(--text);font-weight:700;display:block;font-size:12px}.tools-banner{padding:0 20px;margin:8px 0 16px}.tools-banner-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.tools-banner-icon{font-size:18px}.tools-banner-title{font-size:14px;font-weight:800;color:var(--text)}.tools-banner-buttons{display:flex;gap:10px}.tools-btn{flex:1;display:flex;align-items:center;gap:10px;padding:14px;border:none;border-radius:var(--radius);cursor:pointer;transition:transform .2s,box-shadow .2s;text-align:left;color:#fff}.tools-btn:hover{transform:translateY(-1px)}.tools-btn:active{transform:scale(.97)}.tools-btn--primary{background:linear-gradient(135deg,#8c7b6b,#c4956a);box-shadow:0 4px 16px #8c7b6b40}.tools-btn--primary:hover{box-shadow:0 6px 20px #8c7b6b59}.tools-btn--secondary{background:linear-gradient(135deg,#c4956a,#d4b896);box-shadow:0 4px 16px #c4956a33}.tools-btn--secondary:hover{box-shadow:0 6px 20px #c4956a4d}.tools-btn-emoji{font-size:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.tools-btn-text{flex:1;display:flex;flex-direction:column;min-width:0}.tools-btn-label{font-size:13px;font-weight:700;line-height:1.2}.tools-btn-desc{font-size:10px;opacity:.85;line-height:1.3}.tools-btn svg{opacity:.7;flex-shrink:0}.promo-page{padding:0 20px 40px}.promo-page-header{background:linear-gradient(135deg,#c4956a,#d4b896);border-radius:var(--radius);padding:28px 24px 24px;color:#fff;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}.promo-page-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.promo-page-header-emoji{font-size:48px;margin-bottom:8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.promo-page-header-title{font-size:22px;font-weight:800;margin:0 0 6px}.promo-page-header-subtitle{font-size:13px;opacity:.9;margin:0}.promo-coupon-card{background:linear-gradient(135deg,#8c7b6b,#c4956a);border-radius:var(--radius);padding:20px 24px;color:#fff;position:relative;overflow:hidden;cursor:pointer;margin-bottom:20px;transition:transform .2s}.promo-coupon-card:active{transform:scale(.98)}.promo-coupon-card:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.promo-coupon-left{position:relative;z-index:1}.promo-coupon-tag{font-size:10px;font-weight:700;background:#ffffff40;padding:3px 10px;border-radius:var(--radius-full);display:inline-block;margin-bottom:8px;letter-spacing:.5px}.promo-coupon-title{font-size:28px;font-weight:800}.promo-coupon-sub{font-size:12px;opacity:.9;margin-top:2px}.promo-coupon-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;background:#fff;color:var(--primary);font-size:12px;font-weight:700;padding:8px 16px;border-radius:var(--radius-full)}.promo-coupon-emoji{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:52px;z-index:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.promo-section-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800;color:var(--text);margin-bottom:12px}.promo-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;margin-bottom:20px;scrollbar-width:none}.promo-scroll::-webkit-scrollbar{display:none}.promo-highlight-card{min-width:220px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:transform .2s;flex-shrink:0}.promo-highlight-card:active{transform:scale(.97)}.promo-highlight-img{height:110px;display:flex;align-items:center;justify-content:center;font-size:48px}.promo-highlight-info{padding:12px}.promo-highlight-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px}.promo-highlight-meta{display:flex;gap:10px;font-size:11px;color:var(--text-tertiary);margin-bottom:6px}.promo-highlight-price{font-size:16px;font-weight:800;color:var(--primary)}.promo-deals-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.promo-deal-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:12px;cursor:pointer;position:relative;transition:transform .2s}.promo-deal-card:active{transform:scale(.97)}.promo-deal-badge{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;color:#fff;background:var(--primary);padding:2px 8px;border-radius:var(--radius-full)}.promo-deal-img{height:80px;display:flex;align-items:center;justify-content:center;font-size:40px;border-radius:var(--radius-sm);margin-bottom:8px}.promo-deal-name{font-size:13px;font-weight:700;color:var(--text)}.promo-deal-desc{font-size:11px;color:var(--text-tertiary);margin-top:2px;line-height:1.3}.promo-deal-prices{display:flex;align-items:center;gap:6px;margin-top:6px}.promo-deal-old{font-size:12px;color:var(--text-tertiary);text-decoration:line-through}.promo-deal-current{font-size:15px;font-weight:800;color:var(--primary)}.promo-info-card{display:flex;align-items:flex-start;gap:10px;background:var(--accent-light);border-radius:var(--radius-sm);padding:14px 16px}.promo-info-icon{font-size:18px;flex-shrink:0}.promo-info-text{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0}.promo-page .back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow);transition:all .2s}.promo-page .back-btn:hover{color:var(--text)}.promo-page .back-btn:active{transform:scale(.95)}.tools-page{padding:0 20px 40px}.tools-page-header{background:linear-gradient(135deg,#8c7b6b,#c4956a 60%,#d4b896);border-radius:var(--radius);padding:28px 24px 24px;color:#fff;text-align:center;margin-bottom:20px;position:relative;overflow:hidden}.tools-page-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.tools-page-header-emoji{font-size:48px;margin-bottom:8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.tools-page-header-title{font-size:22px;font-weight:800;margin:0 0 6px}.tools-page-header-subtitle{font-size:13px;opacity:.9;margin:0}.tools-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.tool-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;font-family:inherit;text-align:left;transition:transform .2s,box-shadow .2s}.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.tool-card:active{transform:scale(.98)}.tool-card-icon{width:52px;height:52px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;box-shadow:0 4px 12px #0000001a}.tool-card-content{flex:1;min-width:0}.tool-card-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:2px}.tool-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}.tool-card-arrow{color:var(--text-tertiary);flex-shrink:0}.tools-tip{display:flex;align-items:flex-start;gap:10px;background:var(--accent-light);border-radius:var(--radius-sm);padding:14px 16px}.tools-tip-icon{font-size:18px;flex-shrink:0}.tools-tip-text{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0}.tools-tip-text strong{color:var(--accent)}.tools-page .back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow);transition:all .2s}.tools-page .back-btn:hover{color:var(--text)}.tools-page .back-btn:active{transform:scale(.95)}.quick-nav{display:flex;gap:10px;padding:0 20px;margin:8px 0 16px}.quick-nav-btn{flex:1;display:flex;align-items:center;gap:8px;padding:14px;border:none;border-radius:var(--radius);cursor:pointer;color:#fff;font-family:inherit;transition:transform .2s,box-shadow .2s}.quick-nav-btn:hover{transform:translateY(-1px)}.quick-nav-btn:active{transform:scale(.97)}.quick-nav-btn--promo{background:linear-gradient(135deg,#c4956a,#d4b896);box-shadow:0 4px 16px #c4956a33}.quick-nav-btn--tools{background:linear-gradient(135deg,#8c7b6b,#c4956a);box-shadow:0 4px 16px #8c7b6b33}.quick-nav-btn--default{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}.quick-nav-emoji{font-size:20px;line-height:1}.quick-nav-label{flex:1;text-align:left;font-size:13px;font-weight:700}.quick-nav-btn svg{opacity:.7;flex-shrink:0}.cat-scroll{display:flex;gap:8px;padding:0 20px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.cat-scroll::-webkit-scrollbar{display:none}.cat-pill{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-full);border:1.5px solid var(--border);background:var(--surface);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.cat-pill:active{transform:scale(.95)}.cat-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.cat-pill .emoji{font-size:16px}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 20px;margin-bottom:16px}.product-card{background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:all .2s;position:relative}.product-card:active{transform:scale(.97)}.product-img{height:130px;display:flex;align-items:center;justify-content:center;font-size:56px;position:relative}.product-fav{position:absolute;top:8px;right:8px;width:30px;height:30px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;z-index:2;border:none;cursor:pointer;transition:all .2s}.product-fav:active{transform:scale(.85)}.product-fav svg{width:16px;height:16px}.product-fav.liked svg{fill:var(--primary);color:var(--primary)}.product-badge{position:absolute;top:8px;left:8px;font-size:9px;font-weight:700;padding:3px 8px;border-radius:var(--radius-full);z-index:2;letter-spacing:.3px}.badge-hot{background:var(--primary);color:#fff}.badge-new{background:var(--accent);color:#fff}.badge-promo{background:var(--secondary);color:#fff}.product-photo{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0}.product-edit-btn{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:4px;padding:4px 10px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-full);font-size:10px;font-weight:700;color:var(--accent);cursor:pointer;z-index:2;font-family:inherit;transition:all .2s}.product-edit-btn:hover{background:var(--accent-light)}.product-edit-btn:active{transform:scale(.9)}.product-info{padding:12px}.product-name{font-size:13px;font-weight:700;margin-bottom:2px;line-height:1.3}.product-desc{font-size:11px;color:var(--text-tertiary);margin-bottom:8px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-bottom{display:flex;justify-content:space-between;align-items:center}.product-price{font-size:15px;font-weight:800;color:var(--primary)}.product-price-old{font-size:11px;color:var(--text-tertiary);text-decoration:line-through;margin-right:4px;font-weight:500}.add-btn{width:32px;height:32px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.add-btn:active{transform:scale(.85);background:var(--primary-dark)}.add-btn svg{width:18px;height:18px}.qty-control{display:flex;align-items:center;gap:2px}.qty-btn{width:28px;height:28px;border-radius:8px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;font-size:16px;font-weight:700}.qty-btn:active{transform:scale(.85)}.qty-minus{background:var(--primary-light);color:var(--primary)}.qty-plus{background:var(--primary);color:#fff}.qty-num{font-size:13px;font-weight:700;min-width:22px;text-align:center}.highlights-scroll{display:flex;gap:12px;padding:0 20px;overflow-x:auto;scrollbar-width:none}.highlights-scroll::-webkit-scrollbar{display:none}.highlight-card{flex-shrink:0;width:260px;background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:all .2s}.highlight-card:active{transform:scale(.97)}.highlight-img{height:110px;display:flex;align-items:center;justify-content:center;font-size:48px;position:relative}.highlight-info{padding:12px 14px}.highlight-name{font-size:14px;font-weight:700}.highlight-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:11px;color:var(--text-tertiary)}.highlight-meta .star{color:var(--secondary)}.highlight-price{font-size:15px;font-weight:800;color:var(--primary);margin-top:6px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;max-height:90dvh;background:var(--surface);border-radius:24px 24px 0 0;z-index:201;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column;overflow:hidden}.modal-sheet.open{transform:translate(-50%) translateY(0)}.modal-img{height:200px;display:flex;align-items:center;justify-content:center;font-size:80px;position:relative}.modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}.modal-close svg{width:20px;height:20px}.modal-body{padding:20px;flex:1;overflow-y:auto}.modal-name{font-size:22px;font-weight:800;margin-bottom:4px}.modal-desc-full{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}.modal-meta-row{display:flex;gap:16px;margin-bottom:20px}.modal-meta-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.modal-meta-item svg{width:16px;height:16px;color:var(--secondary)}.modal-section-title{font-size:14px;font-weight:700;margin-bottom:10px}.modal-extras{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.extra-option{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border:1.5px solid transparent}.extra-option.selected{border-color:var(--primary);background:var(--primary-light)}.extra-left{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.extra-price{font-size:12px;font-weight:700;color:var(--primary)}.extra-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .15s}.extra-option.selected .extra-check{background:var(--primary);border-color:var(--primary)}.modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:16px}.modal-qty{display:flex;align-items:center;gap:4px}.modal-qty-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:none;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-qty-btn:active{transform:scale(.85)}.modal-qty-minus{background:var(--primary-light);color:var(--primary)}.modal-qty-plus{background:var(--primary);color:#fff}.modal-qty-num{font-size:16px;font-weight:800;min-width:28px;text-align:center}.modal-add-btn{flex:1;height:48px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s}.modal-add-btn:active{background:var(--primary-dark);transform:scale(.97)}.edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100}.edit-modal{position:fixed;bottom:0;left:50%;width:100%;max-width:480px;max-height:90dvh;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transform:translate(-50%);display:flex;flex-direction:column}.edit-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.edit-title{font-size:18px;font-weight:800;margin:0}.edit-close{width:32px;height:32px;border:none;background:var(--surface-alt);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary)}.edit-body{flex:1;overflow-y:auto;padding:16px 20px}.edit-image-section{margin-bottom:16px}.edit-image-preview{width:100%;height:160px;border-radius:var(--radius);background:var(--surface-alt);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;border:2px dashed var(--border);transition:border-color .2s}.edit-image-preview:hover{border-color:var(--accent)}.edit-image-preview img{width:100%;height:100%;object-fit:cover}.edit-image-emoji{font-size:56px}.edit-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;opacity:0;transition:opacity .2s}.edit-image-preview:hover .edit-image-overlay{opacity:1}.edit-image-overlay span{font-size:12px;font-weight:600}.edit-field{margin-bottom:12px}.edit-field label{display:block;font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.edit-input{width:100%;height:42px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:14px;font-family:inherit;transition:border-color .2s;background:var(--surface);box-sizing:border-box}.edit-input:focus{outline:none;border-color:var(--accent)}.edit-input-sm{max-width:120px}.edit-textarea{width:100%;border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;transition:border-color .2s;background:var(--surface);box-sizing:border-box}.edit-textarea:focus{outline:none;border-color:var(--accent)}.edit-footer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.edit-cancel{flex:1;height:46px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}.edit-cancel:hover{background:var(--surface-alt)}.edit-save{flex:2;height:46px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}.edit-save:hover{opacity:.9}.edit-save:disabled{opacity:.6;cursor:not-allowed}.float-cart{position:fixed;bottom:24px;left:50%;transform:translate(-50%);width:calc(100% - 40px);max-width:440px;background:var(--primary);color:#fff;border-radius:var(--radius);padding:14px 20px;display:flex;justify-content:space-between;align-items:center;z-index:90;box-shadow:0 8px 32px #e8445a59;cursor:pointer;transition:all .3s cubic-bezier(.32,.72,0,1)}.float-cart:active{transform:translate(-50%) scale(.97)}.float-cart-left{display:flex;align-items:center;gap:10px}.float-cart-count{width:28px;height:28px;background:#ffffff40;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.float-cart-label{font-size:14px;font-weight:600}.float-cart-total{font-size:16px;font-weight:800}.cart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d322980;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.cart-overlay.open{opacity:1;pointer-events:auto}.cart-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;max-height:85dvh;background:var(--surface);border-radius:24px 24px 0 0;z-index:101;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translate(-50%) translateY(100%);display:flex;flex-direction:column}.cart-sheet.open{transform:translate(-50%) translateY(0)}.cart-handle{width:36px;height:4px;background:var(--border);border-radius:4px;margin:10px auto 0;flex-shrink:0}.cart-header{padding:16px 20px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0}.cart-title{font-size:18px;font-weight:800}.cart-clear{font-size:12px;color:var(--primary);font-weight:600;cursor:pointer;background:none;border:none;font-family:inherit}.cart-body{flex:1;overflow-y:auto;padding:12px 20px}.cart-empty{text-align:center;padding:40px 0}.cart-empty-icon{font-size:56px;margin-bottom:12px}.cart-empty-text{font-size:14px;color:var(--text-tertiary)}.cart-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);align-items:center}.cart-item:last-child{border-bottom:none}.cart-item-img{width:56px;height:56px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.cart-item-info{flex:1;min-width:0}.cart-item-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-detail{font-size:11px;color:var(--text-tertiary);margin-top:2px}.cart-item-price{font-size:14px;font-weight:800;color:var(--primary);margin-top:4px}.cart-item-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.cart-footer{padding:16px 20px;border-top:1px solid var(--border);flex-shrink:0;background:var(--surface)}.cart-summary{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.cart-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.cart-row.total{font-size:16px;font-weight:800;color:var(--text);border-top:1px dashed var(--border);padding-top:8px;margin-top:4px}.cart-row .free{color:var(--success);font-weight:600}.checkout-btn{width:100%;height:52px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.checkout-btn:active{background:var(--primary-dark);transform:scale(.98)}.portion-page{position:relative;padding:0 20px 40px;min-height:100vh;overflow:hidden}.portion-header{position:relative;z-index:1;background:var(--gradient-primary);border-radius:var(--radius);padding:28px 24px 24px;color:#fff;text-align:center;margin-bottom:20px;overflow:hidden}.portion-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.portion-header:before{content:"";position:absolute;bottom:-40px;left:20px;width:80px;height:80px;background:#ffffff14;border-radius:50%}.portion-header-emoji{font-size:48px;margin-bottom:8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.portion-header-title{font-size:22px;font-weight:800;margin:0 0 6px;letter-spacing:-.3px}.portion-header-subtitle{font-size:13px;opacity:.9;margin:0;line-height:1.4}.portion-card{position:relative;z-index:1;background:var(--surface);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.portion-visual-section{display:flex;flex-direction:column;align-items:center;padding-bottom:8px}.portion-visual-legend{display:flex;gap:16px;justify-content:center;margin-top:4px}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);font-weight:600}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot-active{background:var(--gradient-primary)}.legend-dot-tolerance{background:var(--secondary-light);border:1.5px solid var(--secondary)}.legend-dot-inactive{background:var(--surface-alt);border:1.5px solid var(--border)}.portion-divider{height:1px;background:var(--border);margin:16px 0}.portion-sliders{padding:0 4px}.portion-tip{display:flex;align-items:flex-start;gap:10px;background:var(--accent-light);border-radius:var(--radius-sm);padding:14px 16px;margin-top:16px}.portion-tip-icon{font-size:18px;flex-shrink:0;margin-top:1px}.portion-tip-text{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0}.portion-tip-text strong{color:var(--accent);font-weight:700}.portion-actions{margin-top:20px}.portion-save-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border:none;border-radius:var(--radius);background:var(--gradient-primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px #c4956a40;transition:transform .2s,box-shadow .2s,opacity .2s}.portion-save-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #c4956a59}.portion-save-btn:active{transform:scale(.97)}.portion-save-btn-saved{background:var(--success);box-shadow:0 4px 16px #7baf6e40;animation:bounceIn .4s cubic-bezier(.32,.72,0,1)}.portion-save-btn-saved:hover{box-shadow:0 6px 20px #7baf6e59}.bakery-decorations{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.bakery-particle{position:absolute;opacity:.15;animation:float 3s ease-in-out infinite;will-change:transform}.cake-visual-container{position:relative;width:220px;height:220px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center}.cake-visual-svg{filter:drop-shadow(0 4px 16px rgba(196,149,106,.12))}.cake-slice{transition:all .4s cubic-bezier(.32,.72,0,1);transform-origin:100px 100px;animation:fadeInScale .4s cubic-bezier(.32,.72,0,1) both}.cake-slice:hover{filter:brightness(1.08)}.cake-tolerance-arc{animation:pulseGlow 2s ease-in-out infinite;stroke-dasharray:6 4}.cake-center-bg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.06))}.cake-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none}.cake-center-emoji{font-size:24px;line-height:1}.cake-center-value{font-size:22px;font-weight:800;color:var(--text);line-height:1.1}.cake-center-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px}.cake-tolerance-badge{position:absolute;top:8px;right:8px;background:var(--secondary-light);color:var(--secondary);font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full);border:1.5px solid var(--secondary);animation:bounceIn .5s cubic-bezier(.32,.72,0,1) both}.portion-slider{padding:16px 0}.portion-slider-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.portion-slider-label{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.portion-slider-emoji{font-size:20px}.portion-slider-value{font-size:14px;font-weight:800;color:var(--primary);background:var(--primary-light);padding:4px 14px;border-radius:var(--radius-full);min-width:48px;text-align:center;animation:popIn .25s cubic-bezier(.32,.72,0,1)}.portion-slider-track-wrap{position:relative;padding:4px 0}.portion-slider-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:10px;border-radius:var(--radius-full);background:linear-gradient(to right,var(--primary) 0%,var(--secondary) var(--fill-percent),var(--border) var(--fill-percent),var(--border) 100%);outline:none;cursor:pointer;transition:box-shadow .2s}.portion-slider-input:hover{box-shadow:var(--shadow-glow)}.portion-slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:var(--shadow),0 0 0 4px #c4956a1a;cursor:pointer;transition:transform .2s,box-shadow .2s}.portion-slider-input::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:var(--shadow-lg),0 0 0 6px #c4956a26}.portion-slider-input::-webkit-slider-thumb:active{transform:scale(.95)}.portion-slider-input::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:var(--shadow),0 0 0 4px #c4956a1a;cursor:pointer;transition:transform .2s,box-shadow .2s}.portion-slider-input::-moz-range-track{height:10px;border-radius:var(--radius-full);background:transparent}.portion-slider-desc{margin:8px 0 0;font-size:12px;color:var(--text-tertiary);line-height:1.4}.calc-page{position:relative;padding:0 20px 40px;min-height:100vh;overflow:hidden}.back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow);transition:all .2s}.back-btn:hover{color:var(--text);background:var(--surface-alt)}.back-btn:active{transform:scale(.95)}.calc-header{position:relative;z-index:1;background:linear-gradient(135deg,#8c7b6b,#c4956a 60%,#d4b896);border-radius:var(--radius);padding:28px 24px 24px;color:#fff;text-align:center;margin-bottom:20px;overflow:hidden}.calc-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.calc-header:before{content:"";position:absolute;bottom:-40px;left:20px;width:80px;height:80px;background:#ffffff14;border-radius:50%}.calc-header-emoji{font-size:48px;margin-bottom:8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.calc-header-title{font-size:20px;font-weight:800;margin:0 0 6px;letter-spacing:-.3px}.calc-header-subtitle{font-size:13px;opacity:.9;margin:0;line-height:1.4}.calc-card{position:relative;z-index:1;background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-lg);border:1px solid var(--border);margin-bottom:16px}.calc-sliders{display:flex;flex-direction:column;gap:4px}.calc-visual-section{display:flex;justify-content:center;margin-bottom:16px;position:relative;z-index:1}.calc-visual-ring{border-radius:50%;padding:10px;transition:box-shadow .4s,border-color .4s;border:3px solid transparent}.calc-visual-ring--good{border-color:var(--success);box-shadow:0 0 24px #7baf6e26}.calc-visual-ring--danger{border-color:var(--primary);box-shadow:0 0 24px #c4956a26;animation:pulseGlow 2s ease-in-out infinite}.calc-results{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;position:relative;z-index:1}.calc-warnings{position:relative;z-index:1;margin-bottom:16px}.calc-config-tip{position:relative;z-index:1;display:flex;align-items:flex-start;gap:10px;background:var(--surface-alt);border-radius:var(--radius-sm);padding:14px 16px;border:1px solid var(--border)}.calc-tip-icon{font-size:18px;flex-shrink:0;margin-top:1px}.calc-tip-content{flex:1}.calc-tip-text{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0 0 4px}.calc-tip-text strong{color:var(--accent);font-weight:700}.calc-tip-link{font-size:12px;font-weight:700;color:var(--accent);text-decoration:none;transition:opacity .2s}.calc-tip-link:hover{opacity:.8}.result-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);text-align:center;transition:border-color .3s,box-shadow .3s}.result-card--good{border-color:var(--success);box-shadow:0 2px 12px #7baf6e1a}.result-card--warning{border-color:var(--secondary);box-shadow:0 2px 12px #f4a83d1f}.result-card--danger{border-color:var(--primary);box-shadow:0 2px 12px #c4956a1f}.result-card-icon{font-size:20px;line-height:1}.result-card-value{font-size:18px;font-weight:800;color:var(--text);line-height:1.2}.result-card-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.result-card-sublabel{font-size:10px;color:var(--text-tertiary);margin-top:2px}.profitability-panel{padding:16px 0}.gauge-header{margin-bottom:12px}.gauge-title{font-size:14px;font-weight:700;color:var(--text)}.gauge-bar-container{position:relative}.gauge-labels{display:flex;justify-content:space-between;margin-bottom:6px}.gauge-labels span{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.gauge-bar{position:relative;height:14px;border-radius:var(--radius-full);overflow:visible;background:var(--border)}.gauge-zone{position:absolute;top:0;height:100%;transition:all .4s cubic-bezier(.32,.72,0,1)}.gauge-zone--danger{background:#c4956a33}.gauge-zone--good{background:#7baf6e40;border-radius:var(--radius-full)}.gauge-ideal-marker{position:absolute;top:-2px;width:2px;height:18px;background:var(--success);opacity:.5;transform:translate(-50%);transition:left .4s cubic-bezier(.32,.72,0,1)}.gauge-needle{position:absolute;top:-8px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;transition:left .4s cubic-bezier(.32,.72,0,1);z-index:2}.gauge-needle:after{content:"";width:12px;height:12px;border-radius:50%;border:3px solid white;box-shadow:var(--shadow),0 0 0 2px currentColor;transition:background .3s}.gauge-needle--good{color:var(--success)}.gauge-needle--good:after{background:var(--success)}.gauge-needle--danger{color:var(--primary)}.gauge-needle--danger:after{background:var(--primary)}.gauge-needle-label{position:absolute;bottom:calc(100% + 4px);font-size:11px;font-weight:700;color:var(--text);background:var(--surface);padding:2px 8px;border-radius:var(--radius-full);box-shadow:var(--shadow);white-space:nowrap;animation:popIn .3s cubic-bezier(.32,.72,0,1)}.gauge-weight-labels{display:flex;justify-content:space-between;margin-top:6px;padding:0 2px}.gauge-weight-labels span{font-size:10px;font-weight:600;color:var(--text-tertiary)}.gauge-status{display:flex;align-items:center;gap:6px;margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:all .3s}.gauge-status--good{background:#edf5e8;color:#4a7a3e}.gauge-status--danger{background:var(--primary-light);color:var(--primary-dark)}.warning-alert{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:8px;border-left:4px solid transparent}.warning-alert--error{background:var(--primary-light);border-left-color:var(--primary)}.warning-alert--warning{background:var(--secondary-light);border-left-color:var(--secondary)}.warning-alert--success{background:#edf5e8;border-left-color:var(--success)}.warning-alert-icon{font-size:18px;flex-shrink:0;margin-top:1px}.warning-alert-content{flex:1;min-width:0}.warning-alert-title{font-size:13px;font-weight:700;color:var(--text);display:block;margin-bottom:2px}.warning-alert-message{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0}.tab-selector{display:flex;gap:8px;padding:4px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);margin-bottom:16px;position:relative;z-index:1}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border:none;border-radius:calc(var(--radius) - 4px);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.32,.72,0,1)}.tab-btn:hover{background:var(--surface-alt);color:var(--text)}.tab-btn--active{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px #c4956a40}.tab-btn--active:hover{background:var(--gradient-primary);color:#fff}.tab-btn-emoji{font-size:16px;line-height:1}.recipe-tab{position:relative;z-index:1}.recipe-card{background:var(--surface);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow-lg);border:1px solid var(--border);margin-bottom:16px}.recipe-presets{margin-bottom:16px}.recipe-presets-label{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:8px}.recipe-presets-row{display:flex;gap:8px}.recipe-preset-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:all .3s cubic-bezier(.32,.72,0,1)}.recipe-preset-btn:hover{border-color:var(--secondary);background:var(--secondary-light)}.recipe-preset-btn--active{border-color:var(--primary);background:var(--primary-light);box-shadow:0 2px 8px #c4956a26}.recipe-preset-emoji{font-size:24px;line-height:1}.recipe-preset-name{font-size:10px;font-weight:700;color:var(--text-secondary);text-align:center}.recipe-preset-btn--active .recipe-preset-name{color:var(--primary)}.recipe-ingredients-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px}.recipe-ingredient-row{position:relative;overflow:hidden}.recipe-ingredient-bar{position:absolute;top:0;left:0;height:3px;border-radius:var(--radius-full);opacity:.4;transition:width .4s cubic-bezier(.32,.72,0,1)}.recipe-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.recipe-total{margin-bottom:0}.ingredient-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);border-top:3px solid var(--primary);text-align:center;transition:transform .2s,box-shadow .2s}.ingredient-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.ingredient-card-emoji{font-size:24px;line-height:1;margin-bottom:2px}.ingredient-card-weight{font-size:18px;font-weight:800;color:var(--text);line-height:1.2}.ingredient-card-name{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.ingredient-card-pct{font-size:11px;font-weight:700;margin-top:2px}.ing-page{padding:0 20px 40px}.ing-page .back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow);transition:all .2s}.ing-page .back-btn:hover{color:var(--text)}.ing-header{background:linear-gradient(135deg,#7baf6e,#d4b896);border-radius:var(--radius);padding:24px;color:#fff;text-align:center;margin-bottom:16px;position:relative;overflow:hidden}.ing-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.ing-header-emoji{font-size:40px;margin-bottom:6px}.ing-header-title{font-size:20px;font-weight:800;margin:0 0 4px}.ing-header-sub{font-size:13px;opacity:.9;margin:0}.ing-search{margin-bottom:12px}.ing-search-input{width:100%;height:44px;border:2px solid var(--border);border-radius:var(--radius);padding:0 16px;font-size:14px;font-family:inherit;background:var(--surface);box-sizing:border-box;transition:border-color .2s}.ing-search-input:focus{outline:none;border-color:var(--success)}.ing-list{display:flex;flex-direction:column;gap:8px}.ing-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);transition:box-shadow .2s}.ing-card:hover{box-shadow:var(--shadow)}.ing-card-left{flex:1;min-width:0}.ing-card-name{font-size:13px;font-weight:700;color:var(--text)}.ing-card-meta{font-size:11px;color:var(--text-tertiary);margin-top:2px}.ing-card-right{text-align:right;flex-shrink:0}.ing-card-price{font-size:14px;font-weight:800;color:var(--success)}.ing-card-unit{font-size:10px;color:var(--text-tertiary);margin-top:1px}.ing-card-edit-btn{width:32px;height:32px;border:1px solid var(--border);background:var(--surface-alt);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent);flex-shrink:0;transition:all .2s}.ing-card-edit-btn:hover{background:var(--accent-light)}.ing-card-edit{width:100%}.ing-edit-row{display:flex;gap:8px;align-items:flex-end;margin-top:8px}.ing-edit-field{flex:1}.ing-edit-field label{display:block;font-size:10px;font-weight:600;color:var(--text-tertiary);margin-bottom:2px}.ing-edit-field input{width:100%;height:34px;border:2px solid var(--border);border-radius:8px;padding:0 8px;font-size:13px;font-family:inherit;box-sizing:border-box}.ing-edit-field input:focus{outline:none;border-color:var(--accent)}.ing-edit-save{width:34px;height:34px;border:none;background:var(--success);color:#fff;border-radius:8px;cursor:pointer;font-size:16px;font-weight:700;flex-shrink:0}.ing-edit-cancel{width:34px;height:34px;border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);border-radius:8px;cursor:pointer;font-size:14px;flex-shrink:0}.pricing-page{padding:0 20px 40px}.pricing-page .back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow)}.pricing-header{background:linear-gradient(135deg,#d4b896,#c4956a);border-radius:var(--radius);padding:24px;color:#fff;text-align:center;margin-bottom:16px;position:relative;overflow:hidden}.pricing-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.pricing-header-emoji{font-size:40px;margin-bottom:6px}.pricing-header-title{font-size:20px;font-weight:800;margin:0 0 4px}.pricing-header-sub{font-size:13px;opacity:.9;margin:0}.pricing-card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-lg);border:1px solid var(--border);margin-bottom:16px}.pricing-card-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}.pricing-ing-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.pricing-ing-row:last-of-type{border-bottom:none}.pricing-ing-info{flex:1;min-width:0}.pricing-ing-name{font-size:13px;font-weight:600;color:var(--text);display:block}.pricing-ing-cost{font-size:11px;color:var(--success);font-weight:600}.pricing-ing-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.pricing-ing-input{width:60px;height:30px;border:1.5px solid var(--border);border-radius:6px;text-align:center;font-size:12px;font-family:inherit}.pricing-ing-input:focus{outline:none;border-color:var(--accent)}.pricing-ing-unit{font-size:11px;color:var(--text-tertiary)}.pricing-ing-remove{width:24px;height:24px;border:none;background:var(--primary-light);color:var(--primary);border-radius:6px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.pricing-add-btn{width:100%;padding:10px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:none;color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:8px;transition:all .2s}.pricing-add-btn:hover{border-color:var(--accent);background:var(--accent-light)}.pricing-add-panel{margin-top:8px}.pricing-add-search{width:100%;height:36px;border:2px solid var(--accent);border-radius:8px;padding:0 12px;font-size:13px;font-family:inherit;margin-bottom:8px;box-sizing:border-box}.pricing-add-search:focus{outline:none}.pricing-add-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.pricing-add-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--text);transition:all .15s}.pricing-add-item:hover{background:var(--accent-light);border-color:var(--accent)}.pricing-add-item-cost{font-size:10px;color:var(--text-tertiary)}.pricing-add-cancel{width:100%;padding:8px;border:none;background:none;color:var(--text-tertiary);font-size:12px;font-weight:600;cursor:pointer;margin-top:4px;font-family:inherit}.pricing-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pricing-config-item label{display:block;font-size:10px;font-weight:600;color:var(--text-tertiary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.pricing-config-item input{width:100%;height:38px;border:2px solid var(--border);border-radius:8px;padding:0 10px;font-size:14px;font-family:inherit;box-sizing:border-box;text-align:center}.pricing-config-item input:focus{outline:none;border-color:var(--secondary)}.pricing-results{background:var(--surface-alt)}.pricing-result-row{display:flex;justify-content:space-between;padding:6px 0;font-size:12px;color:var(--text-secondary);border-bottom:1px solid rgba(240,224,214,.5)}.pricing-result-row:last-of-type{border-bottom:none}.pricing-result-final{display:flex;justify-content:space-between;align-items:center;padding-top:10px;margin-top:6px;border-top:2px solid var(--border)}.pricing-result-final span:first-child{font-size:14px;font-weight:700;color:var(--text)}.pricing-final-value{font-size:24px;font-weight:800;color:var(--primary)}.tech-page{padding:0 20px 40px}.tech-page .back-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:12px;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow)}.tech-header{background:linear-gradient(135deg,#c4956a,#8c7b6b);border-radius:var(--radius);padding:24px;color:#fff;text-align:center;margin-bottom:16px;position:relative;overflow:hidden}.tech-header:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1a;border-radius:50%}.tech-header-emoji{font-size:40px;margin-bottom:6px}.tech-header-title{font-size:20px;font-weight:800;margin:0 0 4px}.tech-header-sub{font-size:13px;opacity:.9;margin:0}.tech-list{display:flex;flex-direction:column;gap:10px}.tech-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;transition:box-shadow .2s}.tech-card:hover{box-shadow:var(--shadow)}.tech-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.tech-card-emoji{font-size:28px;flex-shrink:0}.tech-card-info{flex:1;min-width:0}.tech-card-name{font-size:13px;font-weight:700;color:var(--text)}.tech-card-meta{font-size:11px;color:var(--text-tertiary);margin-top:2px}.tech-card-margin-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0}.tech-card-margin{font-size:12px;font-weight:800;padding:2px 8px;border-radius:var(--radius-full)}.tech-margin-good{background:#edf5e8;color:#4a7a3e}.tech-margin-low{background:var(--primary-light);color:var(--primary)}.tech-card-body{padding:0 16px 16px;border-top:1px solid var(--border)}.tech-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0}.tech-detail-item{background:var(--surface-alt);padding:10px;border-radius:8px}.tech-detail-label{display:block;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.tech-detail-value{display:block;font-size:15px;font-weight:800;color:var(--text);margin-top:2px}.tech-detail-suggested{color:var(--accent)}.tech-ing-list{padding:8px 0}.tech-ing-title{font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.tech-ing-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}.tech-ing-name{flex:1;color:var(--text)}.tech-ing-grams{color:var(--text-tertiary);min-width:50px;text-align:right}.tech-ing-cost{color:var(--success);font-weight:600;min-width:60px;text-align:right}.tech-warning{margin-top:10px;padding:10px 12px;background:var(--primary-light);border-radius:8px;font-size:12px;color:var(--primary-dark);font-weight:600}
