:root{--bg: #f5f5f5;--surface: #ffffff;--fg: #111111;--fg-2: #666666;--muted: #999999;--border: #e8e8e8;--accent: #111111;--accent-soft: #f0f0f0;--success: #2d8a4e;--warn: #b8860b;--danger: #c53030;--info: #5865f2;--font: "DM Sans", system-ui, sans-serif;--radius: 12px;--radius-sm: 8px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--fg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit}.app{max-width:420px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);position:relative;padding-bottom:88px}.header{padding:20px 20px 16px;display:flex;align-items:center;justify-content:space-between;background:var(--bg);position:sticky;top:0;z-index:50}.header-left h1{font-size:24px;font-weight:700;letter-spacing:-.03em}.header-left p{font-size:13px;color:var(--muted)}.header-actions{display:flex;gap:8px}.icon-btn{width:40px;height:40px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;position:relative;color:var(--fg)}.icon-btn:hover{background:var(--fg);color:var(--surface);border-color:var(--fg)}.icon-btn svg{width:20px;height:20px}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center}.stats-strip{display:flex;gap:12px;padding:0 20px;margin-bottom:20px}.stat-box{flex:1;background:var(--surface);border-radius:var(--radius);padding:14px;border:1px solid var(--border);cursor:pointer;transition:all .15s ease}.stat-box:hover{border-color:var(--fg)}.stat-box .value{font-size:22px;font-weight:700;letter-spacing:-.02em}.stat-box .label{font-size:12px;color:var(--muted);margin-top:2px}.stat-box.alert{border-color:var(--danger);background:#fef7f7}.stat-box.alert .value{color:var(--danger)}.priority-section{padding:0 20px;margin-bottom:20px}.priority-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.priority-header svg{width:18px;height:18px;color:var(--danger)}.priority-header h2{font-size:14px;font-weight:600;color:var(--danger);text-transform:uppercase;letter-spacing:.03em}.priority-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.priority-scroll::-webkit-scrollbar{display:none}.priority-card{flex-shrink:0;width:140px;background:var(--surface);border:1px solid var(--danger);border-radius:var(--radius);padding:12px;cursor:pointer;transition:all .15s ease}.priority-card:hover{background:#fef7f7}.priority-card .name{font-weight:600;font-size:14px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.priority-card .expiry{font-size:12px;color:var(--danger);font-weight:600}.priority-card .qty{font-size:11px;color:var(--muted);margin-top:4px}.search-row{display:flex;gap:10px;padding:0 20px;margin-bottom:16px}.search-input{flex:1;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 14px;height:46px}.search-input svg{width:18px;height:18px;color:var(--muted);flex-shrink:0}.search-input input{flex:1;border:none;background:none;font-size:16px;font-family:inherit;color:var(--fg);outline:none}.search-input input::placeholder{color:var(--muted)}.filter-tabs{display:flex;gap:6px;padding:0 20px;margin-bottom:20px;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{padding:8px 14px;border-radius:20px;font-size:13px;font-weight:500;background:transparent;border:1px solid var(--border);color:var(--fg-2);cursor:pointer;white-space:nowrap;transition:all .15s ease}.filter-tab:hover{border-color:var(--fg);color:var(--fg)}.filter-tab.active{background:var(--fg);border-color:var(--fg);color:var(--surface)}.product-list{padding:0 20px}.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-title{font-size:14px;font-weight:600;color:var(--fg-2);text-transform:uppercase;letter-spacing:.03em}.list-count{font-size:13px;color:var(--muted)}.product-item{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:8px;cursor:pointer;transition:all .15s ease}.product-item:hover{border-color:var(--fg)}.product-icon{width:44px;height:44px;background:var(--accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.product-icon svg{width:22px;height:22px;color:var(--fg-2)}.product-info{flex:1;min-width:0}.product-name{font-weight:600;font-size:15px;margin-bottom:2px}.product-meta{font-size:13px;color:var(--muted)}.product-right{text-align:right;flex-shrink:0}.product-qty{font-weight:600;font-size:15px;margin-bottom:4px}.status-tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.status-tag.ok{background:#e8f5ec;color:var(--success)}.status-tag.soon{background:#fef6e6;color:var(--warn)}.status-tag.urgent,.status-tag.expired{background:#fef2f2;color:var(--danger)}.status-tag.none{background:var(--accent-soft);color:var(--fg-2)}.swipe-wrapper{position:relative;overflow:hidden;border-radius:var(--radius);margin-bottom:8px}.swipe-wrapper .product-item{margin-bottom:0;position:relative;z-index:2;transition:transform .25s ease}.swipe-wrapper.swiped .product-item{transform:translate(-160px)}.swipe-actions{position:absolute;top:0;right:0;bottom:0;width:160px;display:flex;z-index:1}.swipe-qty-picker{display:flex;flex:1;background:var(--danger)}.qty-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;border:none;background:transparent;cursor:pointer;transition:background .15s ease;gap:2px}.qty-btn:hover{background:#0000001a}.qty-btn span{font-size:11px;font-weight:400;opacity:.8}.qty-btn.delete-all{background:#991b1b}.swipe-hint{display:flex;align-items:center;gap:8px;padding:4px 0 12px;font-size:12px;color:var(--muted)}.swipe-hint svg{width:16px;height:16px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;background:var(--surface);border-top:1px solid var(--border);padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:none;border:none;color:var(--muted);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease}.nav-item svg{width:22px;height:22px}.nav-item.active{color:var(--fg)}.nav-item:hover:not(.active){color:var(--fg-2)}.page-header{display:flex;align-items:center;gap:12px;padding:20px;position:sticky;top:0;background:var(--bg);z-index:50}.back-btn{width:40px;height:40px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;color:var(--fg)}.back-btn:hover{background:var(--fg);color:var(--surface);border-color:var(--fg)}.back-btn svg{width:20px;height:20px}.page-header h1{font-size:20px;font-weight:700;letter-spacing:-.02em}.shopping-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:16px}.shopping-header h2{font-size:16px;font-weight:600}.shopping-header .count{font-size:13px;color:var(--muted);cursor:pointer}.shopping-category{padding:0 20px;margin-bottom:20px}.shopping-category-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}.shopping-item{display:flex;align-items:center;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:all .15s ease}.shopping-item:hover{border-color:var(--fg)}.shopping-item.checked{opacity:.5}.shopping-item.checked .shopping-name{text-decoration:line-through}.checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.checkbox svg{width:14px;height:14px;opacity:0;color:#fff}.shopping-item.checked .checkbox{background:var(--success);border-color:var(--success)}.shopping-item.checked .checkbox svg{opacity:1}.shopping-name{flex:1;font-weight:500}.shopping-qty{font-size:13px;color:var(--muted)}.shopping-source{font-size:11px;padding:3px 8px;background:var(--accent-soft);border-radius:4px;color:var(--fg-2)}.shopping-delete{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;display:flex;align-items:center}.shopping-delete:hover{color:var(--danger)}.shopping-delete svg{width:16px;height:16px}.generate-list-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 20px 20px;padding:16px;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--fg-2);cursor:pointer;transition:all .15s ease;width:calc(100% - 40px)}.generate-list-btn:hover{border-color:var(--fg);color:var(--fg)}.generate-list-btn svg{width:20px;height:20px}.form-section{padding:0 20px;margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--fg-2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.02em}.form-input,.form-select{width:100%;height:50px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 16px;font-size:16px;font-family:inherit;color:var(--fg);transition:border-color .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--fg)}.form-row{display:flex;gap:12px}.form-row>*{flex:1}.qty-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:50px;overflow:hidden}.qty-stepper button{width:50px;height:100%;border:none;background:var(--surface);font-size:22px;color:var(--fg);cursor:pointer;transition:background .15s ease}.qty-stepper button:hover{background:var(--accent-soft)}.qty-stepper input{flex:1;height:100%;border:none;text-align:center;font-size:17px;font-weight:600;font-family:inherit;background:none;color:var(--fg);outline:none;min-width:0}.btn-primary{width:100%;height:52px;background:var(--fg);color:var(--surface);border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{width:100%;height:52px;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{border-color:var(--fg)}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.btn-row{display:flex;gap:12px;padding:0 20px}.btn-row>*{flex:1}.empty-state{text-align:center;padding:48px 24px;color:var(--muted)}.empty-state svg{width:40px;height:40px;margin-bottom:12px;opacity:.5}.empty-state p{font-size:14px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(100px);background:var(--fg);color:var(--surface);padding:14px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;z-index:300;opacity:0;transition:all .3s ease;pointer-events:none;white-space:nowrap}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.scan-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:200;display:flex;flex-direction:column;align-items:center}.scan-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 16px 16px;z-index:2;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}.scan-topbar .back-btn{background:#ffffff26;border-color:transparent;color:#fff}.scan-topbar .back-btn:hover{background:#ffffff4d}.scan-title{color:#fff;font-weight:600;font-size:16px}.scan-video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78%;max-width:320px;aspect-ratio:1.4 / 1;border:3px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 0 0 9999px #00000073}.scan-hint{position:absolute;bottom:calc(48px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:#fff;font-size:14px;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.6)}.scan-error{margin:auto;padding:24px;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:16px}.scan-error svg{width:48px;height:48px;color:var(--warn)}.scan-error p{font-size:15px;max-width:300px;line-height:1.5}.notif-tabs{display:flex;gap:4px;margin:0 20px 20px;background:var(--accent-soft);border-radius:var(--radius);padding:4px}.notif-tab{flex:1;padding:10px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:inherit;color:var(--fg-2);cursor:pointer;transition:all .15s ease}.notif-tab.active{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px #00000014}.notif-list{padding:0 20px}.notif-item{display:flex;gap:14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px}.notif-item.unread{border-left:3px solid var(--danger)}.notif-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-icon.danger{background:#fef2f2;color:var(--danger)}.notif-icon.warn{background:#fef6e6;color:var(--warn)}.notif-icon.success{background:#e8f5ec;color:var(--success)}.notif-icon.info{background:#f0f4ff;color:var(--info)}.notif-icon svg{width:20px;height:20px}.notif-content{flex:1}.notif-title{font-weight:600;font-size:14px;margin-bottom:2px}.notif-desc{font-size:13px;color:var(--muted);margin-bottom:4px}.notif-time{font-size:11px;color:var(--muted)}.week-nav{display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:20px}.week-nav button{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg)}.week-nav button:hover{background:var(--fg);color:var(--surface);border-color:var(--fg)}.week-nav button svg{width:18px;height:18px}.week-nav span{font-weight:600;font-size:15px}.day-card{margin:0 20px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.day-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--accent-soft);border-bottom:1px solid var(--border)}.day-card.today .day-header{background:#eef2ff}.day-name{font-weight:600;font-size:14px}.day-date{font-size:12px;color:var(--muted)}.day-meals{padding:12px}.meal-slot{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.meal-slot:last-child{border-bottom:none}.meal-type{width:60px;font-size:12px;font-weight:500;color:var(--muted)}.meal-content{flex:1;font-size:14px}.meal-content.empty{color:var(--muted);font-style:italic}.meal-add{width:28px;height:28px;border-radius:6px;background:var(--accent-soft);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;color:var(--fg);flex-shrink:0}.meal-add:hover{background:var(--fg);color:var(--surface)}.meal-add svg{width:16px;height:16px}.stats-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 20px;margin-bottom:24px}.stats-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stats-card .value{font-size:28px;font-weight:700;letter-spacing:-.02em}.stats-card .value.success{color:var(--success)}.stats-card .value.danger{color:var(--danger)}.stats-card .value.warn{color:var(--warn)}.stats-card .label{font-size:12px;color:var(--muted);margin-top:4px}.stats-card .trend{display:flex;align-items:center;gap:4px;font-size:12px;margin-top:8px}.stats-card .trend.up{color:var(--success)}.stats-card .trend.down{color:var(--danger)}.stats-card .trend svg{width:14px;height:14px}.chart-section{padding:0 20px;margin-bottom:24px}.chart-title{font-size:14px;font-weight:600;margin-bottom:12px}.chart-placeholder{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:160px;display:flex;align-items:flex-end;padding:20px;gap:8px}.chart-bar{flex:1;background:var(--accent-soft);border-radius:4px 4px 0 0;position:relative;min-height:4px}.chart-bar:after{content:attr(data-label);position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:10px;color:var(--muted)}.history-section{padding:0 20px}.history-title{font-size:14px;font-weight:600;margin-bottom:12px}.history-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.history-date{width:44px;text-align:center}.history-date .day{font-size:18px;font-weight:700}.history-date .month{font-size:11px;color:var(--muted)}.history-content{flex:1}.history-action{font-size:14px;margin-bottom:2px}.history-time{font-size:12px;color:var(--muted)}.budget-overview{margin:0 20px 24px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.budget-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.budget-spent{font-size:32px;font-weight:700;letter-spacing:-.02em}.budget-limit{font-size:14px;color:var(--muted)}.budget-period{font-size:12px;color:var(--muted);padding:4px 10px;background:var(--accent-soft);border-radius:20px}.budget-bar{height:8px;background:var(--accent-soft);border-radius:4px;overflow:hidden;margin-bottom:8px}.budget-bar-fill{height:100%;background:var(--success);border-radius:4px;transition:width .3s ease}.budget-bar-fill.warning{background:var(--warn)}.budget-bar-fill.danger{background:var(--danger)}.budget-remaining{font-size:13px;color:var(--muted)}.budget-categories{padding:0 20px}.budget-cat-title{font-size:14px;font-weight:600;margin-bottom:12px}.budget-cat-item{display:flex;align-items:center;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px}.budget-cat-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}.budget-cat-icon svg{width:20px;height:20px;color:var(--fg-2)}.budget-cat-info{flex:1}.budget-cat-name{font-weight:500;font-size:14px;margin-bottom:4px}.budget-cat-bar{height:4px;background:var(--accent-soft);border-radius:2px;overflow:hidden}.budget-cat-bar-fill{height:100%;background:var(--fg);border-radius:2px}.budget-cat-amount{font-weight:600;font-size:14px}.waste-score{margin:0 20px 24px;padding:24px;background:linear-gradient(135deg,#e8f5ec,#d1fae5);border-radius:var(--radius);text-align:center}.waste-score .value{font-size:56px;font-weight:700;color:var(--success);line-height:1}.waste-score .label{font-size:14px;color:var(--success);font-weight:500;margin-top:4px}.waste-score .desc{font-size:13px;color:var(--fg-2);margin-top:12px}.waste-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 20px;margin-bottom:24px}.waste-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.waste-stat .value{font-size:24px;font-weight:700}.waste-stat .value.success{color:var(--success)}.waste-stat .value.danger{color:var(--danger)}.waste-stat .label{font-size:12px;color:var(--muted);margin-top:4px}.tips-section{padding:0 20px}.tips-title{font-size:14px;font-weight:600;margin-bottom:12px}.tip-card{display:flex;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px}.tip-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:#fef6e6;display:flex;align-items:center;justify-content:center;color:var(--warn);flex-shrink:0}.tip-icon svg{width:20px;height:20px}.tip-content h4{font-size:14px;font-weight:600;margin-bottom:4px}.tip-content p{font-size:13px;color:var(--muted)}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px;cursor:pointer;transition:all .15s ease}.recipe-card:hover{border-color:var(--fg)}.recipe-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.recipe-title{font-weight:600;font-size:16px;margin-bottom:4px}.recipe-meta{font-size:13px;color:var(--muted)}.fav-btn{width:32px;height:32px;border-radius:50%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--border);transition:all .2s ease;flex-shrink:0}.fav-btn:hover,.fav-btn.active{color:var(--danger)}.fav-btn svg{width:20px;height:20px}.recipe-tags{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.recipe-tag{padding:4px 10px;background:var(--accent-soft);border-radius:4px;font-size:12px;color:var(--fg-2)}.recipe-tag.available{background:#e8f5ec;color:var(--success)}.recipe-adaptations{display:flex;gap:6px;flex-wrap:wrap}.adaptation{padding:4px 10px;background:#fef6e6;border-radius:4px;font-size:12px;color:var(--warn)}.ai-suggest-card{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#f0f0f0,#e8e8e8);border-radius:var(--radius);padding:20px;margin-top:8px;cursor:pointer;transition:all .2s ease}.ai-suggest-card:hover{transform:translateY(-2px)}.ai-icon{width:48px;height:48px;background:var(--fg);color:var(--surface);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-icon svg{width:24px;height:24px}.ai-title{font-weight:600;font-size:15px;margin-bottom:4px}.ai-desc{font-size:13px;color:var(--muted)}.ingredient-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.ingredient-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.ingredient-item:last-child{border-bottom:none}.ingredient-status{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ingredient-status.in-stock{background:var(--success)}.ingredient-status.missing{background:var(--danger)}.ingredient-qty{margin-left:auto;font-size:13px;color:var(--muted)}.adaptation-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px}.adaptation-member{display:flex;align-items:center;gap:10px;margin-bottom:8px}.adaptation-note{font-size:13px;color:var(--fg-2);padding-left:42px}.member-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:#fff;flex-shrink:0}.member-avatar.large{width:56px;height:56px;font-size:22px}.family-member{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer;transition:all .15s ease}.family-member:hover{border-color:var(--fg)}.member-info{flex:1}.member-name{font-weight:600;font-size:16px;margin-bottom:2px}.member-diet{font-size:13px;color:var(--muted)}.member-badges{display:flex;gap:6px;flex-wrap:wrap}.diet-badge{padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.diet-badge.veg{background:#e8f5ec;color:var(--success)}.diet-badge.allergy{background:#fef2f2;color:var(--danger)}.chevron{width:20px;height:20px;color:var(--muted);flex-shrink:0}.add-member-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .15s ease}.add-member-btn:hover{border-color:var(--fg);color:var(--fg)}.add-member-btn svg{width:20px;height:20px}.diet-options,.restriction-options{display:flex;flex-wrap:wrap;gap:8px}.diet-option{padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;font-weight:500;color:var(--fg-2);cursor:pointer;transition:all .15s ease}.diet-option:hover{border-color:var(--fg);color:var(--fg)}.diet-option.active{background:var(--fg);border-color:var(--fg);color:var(--surface)}.restriction-option{padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:20px;font-size:13px;font-family:inherit;color:var(--fg-2);cursor:pointer;transition:all .15s ease}.restriction-option:hover{border-color:var(--fg);color:var(--fg)}.restriction-option.active{background:var(--danger);border-color:var(--danger);color:#fff}.form-group{margin-bottom:20px}.menu-item{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer;transition:all .15s ease}.menu-item:hover{border-color:var(--fg)}.menu-icon{width:44px;height:44px;background:var(--accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.menu-icon svg{width:22px;height:22px;color:var(--fg-2)}.menu-info{flex:1}.menu-title{font-weight:600;font-size:15px;margin-bottom:2px}.menu-desc{font-size:13px;color:var(--muted)}.menu-badge{background:var(--danger);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;margin-right:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px}.setting-text{flex:1}.setting-title{font-weight:600;font-size:15px;margin-bottom:2px}.setting-desc{font-size:13px;color:var(--muted)}.switch{position:relative;width:46px;height:28px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:999px;transition:.2s;cursor:pointer}.switch .slider:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.slider{background:var(--success)}.switch input:checked+.slider:before{transform:translate(18px)}.fab{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));right:calc(50% - 190px);width:56px;height:56px;background:var(--fg);color:var(--surface);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #0003;z-index:200;transition:transform .2s ease}.fab:hover{transform:scale(1.05)}.fab.open{transform:rotate(45deg)}.fab svg{width:26px;height:26px}.fab-menu{position:fixed;bottom:calc(160px + env(safe-area-inset-bottom));right:calc(50% - 190px);display:flex;flex-direction:column;gap:10px;z-index:199;opacity:0;pointer-events:none;transform:translateY(20px);transition:all .25s ease}.fab-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}@media(max-width:460px){.fab,.fab-menu{right:20px}}.fab-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px #00000014;transition:all .15s ease}.fab-option:hover{border-color:var(--fg);transform:translate(-4px)}.fab-option.soon{opacity:.6}.fab-option-icon{width:40px;height:40px;background:var(--accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.fab-option-icon svg{width:20px;height:20px;color:var(--fg)}.fab-option-text{font-weight:500;font-size:14px}.fab-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:198;opacity:0;pointer-events:none;transition:opacity .25s ease}.fab-backdrop.open{opacity:1;pointer-events:auto}.opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.opt-grid.two{grid-template-columns:repeat(2,1fr)}.opt-btn{padding:12px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:inherit;color:var(--fg-2);cursor:pointer;transition:all .15s ease;text-align:center}.opt-btn:hover{border-color:var(--fg);color:var(--fg)}.opt-btn.active{background:var(--fg);border-color:var(--fg);color:var(--surface)}.opt-btn .sub{display:block;font-size:11px;font-weight:400;opacity:.75;margin-top:3px}.opt-btn.date{text-align:left;padding:12px 14px}.estimate-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:8px;padding:10px 14px;background:#f0f4ff;border:1px solid #dde5ff;border-radius:var(--radius-sm);font-size:13px;color:var(--fg-2);font-family:inherit;cursor:pointer;text-align:left;transition:all .15s ease}.estimate-hint:hover{border-color:var(--info)}.estimate-hint .estimate-apply{flex-shrink:0;font-weight:600;color:var(--info)}.screen-fade{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
