*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root[data-theme=dark]{--bg-primary: #090e1a;--bg-secondary: #131b2e;--bg-tertiary: #1a243d;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #627288;--accent-primary: #86BCBD;--accent-secondary: #a3cfd1;--accent-hover: #6ea2a3;--color-success: #A4CE8B;--color-success-bg: rgba(164, 206, 139, .1);--color-success-border: rgba(164, 206, 139, .2);--color-warning: #BA5A5A;--color-warning-bg: rgba(186, 90, 90, .1);--color-warning-border: rgba(186, 90, 90, .2);--color-info: #86BCBD;--color-info-bg: rgba(134, 188, 189, .1);--color-info-border: rgba(134, 188, 189, .2);--card-bg: #131b2e;--card-border: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 12px 20px -3px rgba(0, 0, 0, .3);--border-muted: rgba(255, 255, 255, .08);--input-bg: #1a243d;--input-border: rgba(255, 255, 255, .12);--input-focus: #86BCBD;--bg-pattern: radial-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px);--macro-carb: #86BCBD;--macro-protein: #BA5A5A;--macro-fat: #F7E49B}:root[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--accent-primary: #5f9394;--accent-secondary: #86BCBD;--accent-hover: #4c7a7b;--color-success: #7da865;--color-success-bg: rgba(164, 206, 139, .08);--color-success-border: rgba(164, 206, 139, .15);--color-warning: #BA5A5A;--color-warning-bg: rgba(186, 90, 90, .08);--color-warning-border: rgba(186, 90, 90, .15);--color-info: #5f9394;--color-info-bg: rgba(134, 188, 189, .08);--color-info-border: rgba(134, 188, 189, .15);--card-bg: #ffffff;--card-border: rgba(0, 0, 0, .08);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08);--border-muted: rgba(0, 0, 0, .08);--input-bg: #f8fafc;--input-border: rgba(0, 0, 0, .1);--input-focus: #5f9394;--bg-pattern: radial-gradient(rgba(134, 188, 189, .06) 1px, transparent 1px);--macro-carb: #5f9394;--macro-protein: #BA5A5A;--macro-fat: #d1be7c}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);background-image:var(--bg-pattern);background-size:24px 24px;background-attachment:fixed;color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;line-height:1.5;transition:background-color .3s ease,color .3s ease;overflow-x:hidden}.app-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--card-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm);transition:background-color .3s ease,border-bottom .3s ease}.header-container{max-width:1400px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.app-logo{display:flex;align-items:center;gap:.5rem;font-weight:800;color:var(--text-primary);text-decoration:none}.logo-icon{width:28px;height:28px;color:var(--accent-primary);flex-shrink:0}.app-logo h1{font-size:1.5rem;font-weight:800;margin:0;line-height:1;display:flex;align-items:center}.app-logo h1 span{color:var(--accent-primary)}.date-navigator{display:flex;align-items:center;gap:.5rem;background-color:var(--bg-tertiary);padding:.35rem .5rem;border-radius:9999px;border:1px solid var(--border-muted)}.date-picker-wrapper{position:relative;display:flex;align-items:center}.date-input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.date-label{font-size:.95rem;font-weight:600;padding:.25rem .75rem;color:var(--text-primary);border-radius:9999px;background-color:var(--bg-secondary);box-shadow:var(--shadow-sm);cursor:pointer;white-space:nowrap;transition:background-color .2s ease}.date-label:hover{background-color:var(--bg-tertiary)}.icon-btn{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.icon-btn:hover{background-color:var(--border-muted);color:var(--text-primary)}.icon-btn svg{width:18px;height:18px}.text-btn{background:transparent;border:none;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease}.primary-btn{background-color:var(--accent-primary);color:#fff}.primary-btn:hover{background-color:var(--accent-hover)}.secondary-btn{background-color:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-muted)}.secondary-btn:hover{background-color:var(--border-muted);color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:.5rem}.theme-toggle-btn .sun-icon{display:none}:root[data-theme=light] .theme-toggle-btn .sun-icon{display:block}:root[data-theme=light] .theme-toggle-btn .moon-icon{display:none}:root[data-theme=dark] .theme-toggle-btn .moon-icon{display:block}.app-main{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.limit-warning{background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);padding:1rem 1.25rem;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow-sm);animation:slide-down .3s ease-out;transition:all .3s ease}.limit-warning.hidden{display:none}.warning-content{display:flex;align-items:center;gap:.75rem;font-size:.95rem}.warning-icon{width:24px;height:24px;flex-shrink:0;stroke:var(--color-warning)}.close-btn{background:transparent;border:none;font-size:1.5rem;font-weight:300;line-height:1;color:var(--text-secondary);cursor:pointer;padding:.25rem;transition:color .2s ease}.close-btn:hover{color:var(--text-primary)}@keyframes slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.dashboard-grid{display:grid;grid-template-columns:380px 1fr;gap:1.5rem}@media (max-width: 1024px){.dashboard-grid{grid-template-columns:1fr}}.panel-left,.panel-right{display:flex;flex-direction:column;gap:1.5rem}.dashboard-card{background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:border-color .3s ease}.dashboard-card:hover{border-color:var(--border-muted)}.card-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin-bottom:1.25rem;letter-spacing:-.01em}.circular-progress{position:relative;width:180px;height:180px}.progress-ring-svg{transform:rotate(-90deg)}.progress-ring-bg{stroke:var(--bg-tertiary);transition:stroke .3s ease}.progress-ring-fill{stroke-dasharray:464.95;stroke-dashoffset:464.95;transition:stroke-dashoffset .4s ease-out,stroke .3s ease}.summary-split-container{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:.5rem 0}.main-ring-wrapper{position:relative;flex:1;display:flex;justify-content:center}.main-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column}.ring-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.05em;margin-bottom:.1rem}.ring-value{font-size:2.25rem;font-weight:800;color:var(--text-primary);line-height:1;letter-spacing:-.03em}.summary-stats-list{display:flex;flex-direction:column;gap:.85rem;flex:1}.stat-row-item{display:flex;align-items:center;gap:.75rem;background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important}.stat-icon{font-size:1.25rem}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.5px}.stat-number{font-size:16px;font-weight:700;color:var(--text-primary)}.macros-section-card{margin-top:1rem}.section-title{font-size:1rem;margin-bottom:1rem;font-weight:700}.summary-macros-section{border-top:1px solid var(--card-border);margin-top:1.25rem;padding-top:1rem}.summary-macros-section .section-title{font-size:.95rem;margin-bottom:.75rem;font-weight:700;color:var(--text-primary)}.macro-horizontal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;text-align:center}.macro-col-item{display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;background-color:#ffffff03;border:1px solid var(--card-border);border-radius:12px}.macro-ring-box{position:relative;margin-bottom:.5rem}.macro-progress-ring-svg{transform:rotate(-90deg)}.macro-progress-ring-fill{stroke-dasharray:175.93;stroke-dashoffset:175.93;transition:stroke-dashoffset .4s ease-out,stroke .3s ease}.macro-center-emoji{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.15rem}.macro-name{font-size:.8rem;color:var(--text-secondary);font-weight:700;margin-bottom:.15rem}.macro-amount{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.macro-amount strong{color:var(--text-primary);font-size:.8rem}.goal-card-header{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.goal-card-header .card-title{margin-bottom:0}.goal-mode-toggle{display:flex;background-color:var(--bg-tertiary);padding:.25rem;border-radius:8px;border:1px solid var(--border-muted)}.toggle-tab{flex:1;background:transparent;border:none;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text-secondary);padding:.45rem;border-radius:6px;cursor:pointer;transition:all .2s ease}.toggle-tab.active{background-color:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.form-wrapper{animation:fade-in .3s ease}.form-wrapper.hidden{display:none}.app-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.input-with-action{display:flex;gap:.5rem}.input-with-action input{flex:1}input[type=number],input[type=text],input[type=date],select{background-color:var(--input-bg);border:1px solid var(--input-border);color:var(--text-primary);font-family:inherit;font-size:.95rem;padding:.6rem .8rem;border-radius:8px;outline:none;transition:border-color .2s ease}input:focus,select:focus{border-color:var(--input-focus)}.input-help{font-size:.75rem;color:var(--text-muted)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.radio-toggle-group{display:flex;background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;padding:.2rem}.radio-toggle-group input[type=radio]{display:none}.radio-toggle-group label{flex:1;text-align:center;padding:.4rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text-secondary);transition:all .2s ease}.radio-toggle-group input[type=radio]:checked+label{background-color:var(--accent-primary);color:#fff}.meal-log-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.meal-log-header .card-title{margin-bottom:0}.add-btn-with-icon{padding:.5rem .9rem}.btn-icon{width:16px;height:16px}.unified-log-container{display:flex;align-items:center;background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;padding:.2rem .2rem .2rem .75rem;gap:.5rem;margin-bottom:1.25rem;transition:border-color .2s ease}.unified-log-container:focus-within{border-color:var(--input-focus)}.unified-log-container input{flex:1;background:transparent;border:none!important;outline:none!important;color:var(--text-primary);font-family:inherit;font-size:.95rem;padding:.4rem 0}.unified-add-btn{background-color:var(--accent-primary);color:#fff;border:none;width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.unified-add-btn:hover{background-color:var(--accent-hover)}.unified-add-btn svg{width:18px;height:18px;stroke:#fff}.meal-sections-container{display:flex;flex-direction:column;gap:1.25rem}.meal-section{background-color:transparent;border:none;border-radius:0;overflow:visible}.meal-section-header{padding:0 0 .75rem;background-color:transparent;border-bottom:none}.section-title-wrapper{display:flex;align-items:center;justify-content:space-between}.meal-type-badge{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .6rem;border-radius:4px}.type-dinner{background-color:var(--color-info-bg);color:var(--color-info)}.section-total{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.meal-item-list{list-style:none;min-height:48px;display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0 0}.empty-section-placeholder{display:flex;align-items:center;justify-content:center;padding:1.25rem;font-size:.85rem;color:var(--text-muted);text-align:center;font-style:italic}.meal-card{display:flex;flex-direction:row;align-items:stretch;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow-sm);transition:all .2s ease;gap:.75rem;animation:item-appear .2s ease-out}.meal-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-muted)}.meal-card-image-box{position:relative;width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden}.meal-card-image{width:100%;height:100%;object-fit:cover;display:block}.meal-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--card-border) 100%);font-size:1.75rem;border-radius:12px}.meal-card-title-row{display:flex;align-items:center;gap:.35rem;min-width:0}.meal-card-ai-badge-inline{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;flex-shrink:0;color:#ecbf1e;line-height:1}.meal-card-ai-badge-inline svg{width:20px;height:20px;flex-shrink:0}:root[data-theme=dark] .meal-card-ai-badge-inline{background-color:#fbbf241a;border-color:#fbbf244d;color:#fbbf24}.meal-card-content{display:flex;flex-direction:column;justify-content:space-between;flex:1;min-width:0}.meal-card-meta-row{display:flex;flex-direction:column;gap:.05rem}.meal-card-name{font-size:.95rem;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;line-height:1.2;flex:1;min-width:0}.meal-card-time{font-size:.7rem;color:var(--text-muted);font-weight:500}.meal-card-macros{display:flex;flex-wrap:wrap;gap:.3rem;margin:.15rem 0}.macro-badge{font-size:.7rem;font-weight:600;padding:.15rem .4rem;border-radius:6px;letter-spacing:.01em;white-space:nowrap}.macro-badge strong{color:var(--text-primary)}.macro-badge--protein{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.macro-badge--carb{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.macro-badge--fat{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.meal-card-bottom-row{display:flex;justify-content:space-between;align-items:center;padding-top:.4rem;border-top:1px solid var(--border-muted);margin-top:.2rem}.meal-card-calories{display:flex;align-items:baseline;gap:.15rem;line-height:1}.meal-card-kcal-val{font-size:1.15rem;font-weight:900;color:var(--text-primary);letter-spacing:-.01em}.meal-card-kcal-label{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.meal-card-actions{display:flex;align-items:center;gap:.35rem}.meal-card-action-btn{background:transparent;border:none;color:var(--text-muted);padding:.25rem;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.meal-card-action-btn svg{width:16px;height:16px}.meal-card-action-btn.btn-fav:hover,.meal-card-action-btn.btn-fav.active{background-color:#ec48991a;color:#ec4899}.meal-card-action-btn.btn-edit:hover{background-color:var(--color-info-bg);color:var(--color-info)}.meal-card-action-btn.btn-delete:hover{background-color:var(--color-warning-bg);color:var(--color-warning)}.meal-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--card-border);animation:item-appear .2s ease-out}.meal-item:last-child{border-bottom:none}.meal-item:hover{background-color:#00000005}.item-info{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1;padding-right:1rem}.item-name{font-size:.95rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-time{font-size:.75rem;color:var(--text-muted)}.item-meta{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.item-meta-divider{color:var(--text-muted);opacity:.5}.item-meta .item-kcal-val{font-size:.8rem;font-weight:700;color:var(--text-secondary)}.item-kcal-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.actions-wrapper{display:flex;align-items:center;gap:.2rem;opacity:.2;transition:opacity .2s ease}.meal-item:hover .actions-wrapper{opacity:1}@media (max-width: 768px){.actions-wrapper{opacity:1}}.action-btn{width:28px;height:28px;border-radius:6px;padding:0}.action-btn svg{width:14px;height:14px}.btn-edit:hover{background-color:var(--color-info-bg);color:var(--color-info)!important}.btn-delete:hover{background-color:var(--color-warning-bg);color:var(--color-warning)!important}.btn-fav:hover,.btn-fav.active{background-color:#ec48991a;color:#ec4899!important}.favorites-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.favorites-header .card-title{margin-bottom:0}.text-accent{color:var(--accent-primary)}.text-accent:hover{color:var(--accent-hover);background-color:var(--bg-tertiary)}.heart-icon-plus{width:20px!important;height:20px!important}.favorites-search-bar{display:flex;align-items:center;background-color:var(--bg-tertiary);border:1px solid var(--input-border);border-radius:8px;padding:.4rem .75rem;gap:.5rem;margin-bottom:1rem}.favorites-search-bar:focus-within{border-color:var(--input-focus)}.search-icon{width:16px;height:16px;color:var(--text-muted)}.favorites-search-bar input{background:transparent;border:none;outline:none;font-family:inherit;color:var(--text-primary);font-size:.85rem;width:100%;padding:0}.favorites-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;max-height:240px;overflow-y:auto;padding-right:.25rem}.favorites-list::-webkit-scrollbar{width:4px}.favorites-list::-webkit-scrollbar-track{background:transparent}.favorites-list::-webkit-scrollbar-thumb{background:var(--border-muted);border-radius:4px}.fav-item{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-tertiary);border:1px solid var(--card-border);border-radius:8px;padding:.5rem .75rem;transition:all .15s ease;animation:item-appear .2s ease-out}.fav-item:hover{border-color:var(--accent-secondary);transform:translate(2px)}.fav-info-wrapper{display:flex;flex-direction:column;min-width:0;flex:1}.fav-name{font-size:.85rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.fav-kcal{font-weight:700;color:var(--accent-secondary)}.fav-actions{display:flex;align-items:center;gap:.25rem}.fav-add-btn{background-color:var(--bg-tertiary);color:var(--accent-primary);width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:all .15s ease}.fav-add-btn:hover{background-color:var(--accent-primary);color:#fff}.fav-add-btn svg{width:14px;height:14px}.fav-del-btn{background:transparent;color:var(--text-muted);width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:all .15s ease}.fav-del-btn:hover{background-color:var(--color-warning-bg);color:var(--color-warning)}.fav-del-btn svg{width:14px;height:14px}.empty-fav-placeholder{display:flex;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--text-muted);font-size:.85rem;font-style:italic;text-align:center;border:1px dashed var(--border-muted);border-radius:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#090e1acc;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;opacity:1;transition:opacity .2s ease;overflow-y:auto}.modal-overlay.hidden{opacity:0;pointer-events:none}.modal-card{background-color:var(--bg-secondary);border:1px solid var(--card-border);width:100%;max-width:480px;border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-lg);transform:scale(1);transition:transform .2s ease-out;margin:auto}.modal-overlay.hidden .modal-card{transform:scale(.97)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;border-bottom:1px solid var(--border-muted);padding-bottom:.75rem}.modal-header h3{font-size:1.15rem;font-weight:700}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;border-top:1px solid var(--border-muted);padding-top:1rem}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:.5rem;z-index:9999;max-width:350px;pointer-events:none}.toast{background-color:var(--bg-secondary);border-left:4px solid var(--accent-primary);border:1px solid var(--card-border);border-left-width:4px;padding:.8rem 1.2rem;border-radius:8px;box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:1rem;pointer-events:auto;transform:translateY(10px);opacity:0;animation:toast-in .2s ease-out forwards}.toast-success{border-left-color:var(--color-success)}.toast-warning{border-left-color:var(--color-warning)}.toast-info{border-left-color:var(--color-info)}@keyframes toast-in{to{transform:translateY(0);opacity:1}}.toast.toast-out{opacity:0;transform:translateY(-10px);transition:opacity .2s,transform .2s}.view-tabs{display:flex;background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:12px;padding:.3rem;margin-bottom:1.5rem;width:100%;max-width:380px;box-shadow:var(--shadow-sm)}.view-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:transparent;border:none;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text-secondary);padding:.5rem .8rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.view-tab:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.view-tab.active{background-color:var(--accent-primary);color:#fff}.view-tab.active .tab-icon{stroke:#fff}.tab-icon{width:15px;height:15px;stroke:var(--text-secondary)}.view-pane.hidden{display:none!important}.analytics-layout{display:flex;flex-direction:column;gap:1.5rem}.chart-card{padding:1.5rem}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.range-toggle-group{display:flex;background-color:var(--bg-tertiary);padding:.25rem;border-radius:8px;border:1px solid var(--border-muted)}.chart-wrapper{min-height:320px;width:100%;overflow:hidden}.analytics-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.25rem}.metric-card{display:flex;flex-direction:column;gap:.25rem}.metric-card .metric-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.metric-val-wrapper{display:flex;align-items:baseline;gap:.2rem;margin:.35rem 0}.metric-card .metric-val{font-size:2rem;font-weight:800;color:var(--text-primary);line-height:1}.metric-card .metric-desc{font-size:.75rem;color:var(--text-muted)}.settings-section-divider{height:1px;background-color:var(--border-muted);margin:1.75rem 0}.settings-section-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.backup-actions{display:flex;gap:1rem;margin-top:1rem}.import-wrapper{position:relative}.scan-fab{position:fixed;bottom:2rem;right:2rem;z-index:500;display:flex;align-items:center;gap:.6rem;padding:.85rem 1.4rem .85rem 1.1rem;border-radius:9999px;border:none;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:700;color:#fff;background-color:var(--accent-primary);box-shadow:var(--shadow-md);transition:all .2s ease;letter-spacing:.01em}.scan-fab:hover{background-color:var(--accent-hover)}.fab-icon{width:22px;height:22px;flex-shrink:0}.fab-label{white-space:nowrap}.camera-modal-card{max-width:520px!important;padding:1.25rem!important}.camera-step{animation:fade-in .2s ease-out}.camera-step.hidden{display:none!important}.camera-viewfinder{position:relative;width:100%;aspect-ratio:4 / 3;background-color:#000;border-radius:12px;overflow:hidden;margin-bottom:1rem}.camera-video,.camera-canvas{width:100%;height:100%;object-fit:cover;display:block}.camera-frame-guide{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.frame-corner{position:absolute;width:24px;height:24px;border-color:var(--accent-primary);border-style:solid;border-width:0}.frame-tl{top:14px;left:14px;border-top-width:3px;border-left-width:3px;border-radius:4px 0 0}.frame-tr{top:14px;right:14px;border-top-width:3px;border-right-width:3px;border-radius:0 4px 0 0}.frame-bl{bottom:14px;left:14px;border-bottom-width:3px;border-left-width:3px;border-radius:0 0 0 4px}.frame-br{bottom:14px;right:14px;border-bottom-width:3px;border-right-width:3px;border-radius:0 0 4px}.camera-guide-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:5;gap:.75rem}.camera-guide-overlay.active{display:flex}.camera-guide-box{position:relative;height:65%;aspect-ratio:1 / 1;border:1.5px solid rgba(255,255,255,.3);border-radius:16px;background-color:transparent!important;box-shadow:0 0 0 9999px #090e1a99;display:flex;align-items:center;justify-content:center}.camera-confirm-viewfinder{position:relative;width:100%;aspect-ratio:1 / 1;background-color:#000;border-radius:12px;overflow:hidden;margin-bottom:1rem}.guide-corner{position:absolute;width:16px;height:16px;border-color:var(--accent-primary);border-style:solid;border-width:0}.guide-tl{top:-2px;left:-2px;border-top-width:3px;border-left-width:3px;border-top-left-radius:8px}.guide-tr{top:-2px;right:-2px;border-top-width:3px;border-right-width:3px;border-top-right-radius:8px}.guide-bl{bottom:-2px;left:-2px;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:8px}.guide-br{bottom:-2px;right:-2px;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:8px}.camera-status-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:9999px;background-color:#090e1abf;border:.75px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 8px #0000004d;z-index:10}.status-dot{width:6px;height:6px;background-color:#10b981;border-radius:50%;box-shadow:0 0 8px #10b981;animation:pulse-green 1.5s infinite ease-in-out}@keyframes pulse-green{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.status-text{font-size:.65rem;font-weight:700;color:#fff;letter-spacing:.05em;text-transform:uppercase}.camera-guide-instruction{font-size:.75rem;font-weight:600;color:#fff;background-color:#090e1abf;border:.75px solid rgba(255,255,255,.15);padding:.3rem .75rem;border-radius:9999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 8px #0000004d;letter-spacing:.025em;z-index:10}.camera-hint{position:absolute;bottom:0;left:0;right:0;padding:.5rem;text-align:center;font-size:.78rem;font-weight:600;color:#ffffffb3;background:linear-gradient(transparent,#00000080)}.camera-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);text-align:center;padding:1.5rem}.camera-capture-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:280px;margin:0 auto;padding:2rem 1.5rem}.fallback-icon{width:48px;height:48px;color:var(--text-muted);margin-bottom:.75rem}.fallback-title{font-weight:600;font-size:1rem;margin-bottom:.25rem;color:var(--text-primary)}.fallback-sub{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.camera-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;padding:.75rem 1rem;box-sizing:border-box;gap:1rem}.camera-control-col{display:flex;justify-content:center;align-items:center}.camera-round-btn{width:42px;height:42px;border-radius:50%;background-color:#ffffff1f!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 12px #00000026;padding:0}.camera-round-btn:hover{background-color:#ffffff38!important;border-color:#ffffff59!important;transform:scale(1.05)}.camera-round-btn:active{transform:scale(.95)}.camera-round-btn.active{background-color:#ffda62!important;border-color:#ff6a1c!important;color:#0c111d!important}.capture-shutter-btn{position:relative;width:64px;height:64px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.capture-shutter-btn:hover{transform:scale(1.05)}.shutter-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:4px solid #ffffff;opacity:.9}.shutter-inner{width:48px;height:48px;border-radius:50%;background:#fff;transition:background .15s ease,transform .1s ease}.capture-shutter-btn:hover .shutter-inner{background:var(--accent-primary)}.capture-shutter-btn:active .shutter-inner{transform:scale(.9)}.camera-confirm-actions{display:flex;gap:.75rem;justify-content:center}.scan-confirm-btn{background-color:var(--accent-primary)!important;gap:.5rem;font-size:.95rem!important;padding:.6rem 1.25rem!important}.ai-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2.5rem 1rem;min-height:240px}.ai-spinner{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.ai-spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:4px solid var(--border-muted);border-top-color:var(--accent-primary);animation:spin-ai 1s linear infinite}@keyframes spin-ai{to{transform:rotate(360deg)}}.ai-brain-icon{width:36px;height:36px;color:var(--accent-primary)}.ai-loading-title{font-size:1.05rem;font-weight:700;color:var(--text-primary);text-align:center}.ai-loading-sub{font-size:.82rem;color:var(--text-muted);text-align:center;max-width:280px;line-height:1.5}.macro-pill{display:inline-flex;align-items:center;gap:.15rem;font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:9999px;letter-spacing:.01em;white-space:nowrap}.macro-pill--protein{background-color:#3b82f61f;color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.macro-pill--fat{background-color:#f59e0b1f;color:#fbbf24;border:1px solid rgba(245,158,11,.2)}.macro-pill--carb{background-color:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.2)}.macro-pill--ai{background-color:#8b5cf61f;color:var(--accent-secondary);border:1px solid rgba(139,92,246,.2)}.item-macro-pills{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}.macro-inputs-row{display:flex;gap:.75rem}.macro-input-col{flex:1;display:flex;flex-direction:column;gap:.25rem}.macro-input-col label{font-size:.75rem!important;font-weight:500!important;color:var(--text-muted)!important}.settings-ai-section{padding:.25rem 0}:root[data-theme=light] .macro-pill--protein{background-color:#3b82f614;color:#2563eb}:root[data-theme=light] .macro-pill--fat{background-color:#f59e0b14;color:#d97706}:root[data-theme=light] .macro-pill--carb{background-color:#10b98114;color:#059669}:root[data-theme=light] .macro-pill--ai{background-color:#6d28d914;color:#6d28d9}@media (max-width: 600px){.scan-fab{bottom:1.25rem;right:1.25rem;padding:1rem;border-radius:50%;width:56px;height:56px;justify-content:center}.fab-label{display:none}}@media (max-width: 480px){.backup-actions{flex-direction:column;gap:.75rem}.meal-item{flex-direction:column;align-items:stretch;gap:.5rem}.item-info{padding-right:0}.item-kcal-actions{justify-content:space-between;border-top:1px dashed var(--border-muted);padding-top:.5rem;margin-top:.25rem}}@media (max-width: 576px){#camera-modal.camera-modal--fullscreen{padding:0!important}#camera-modal.camera-modal--fullscreen .camera-modal-card{max-width:100%!important;width:100%!important;height:100%!important;max-height:100%!important;border-radius:0!important;border:none!important;padding:0!important;margin:0!important;display:flex!important;flex-direction:column!important;background-color:#000!important;box-shadow:none!important}#camera-modal.camera-modal--fullscreen .modal-header{position:absolute;top:0;left:0;right:0;z-index:10;padding:1.25rem 1.25rem 2rem!important;margin-bottom:0!important;border-bottom:none!important;background:linear-gradient(to bottom,#000000b3 30%,#0000)}#camera-modal.camera-modal--fullscreen #camera-modal-title{color:#fff!important;font-size:1.15rem!important;font-weight:600!important;text-shadow:0 1px 3px rgba(0,0,0,.6)}#camera-modal.camera-modal--fullscreen .close-btn{color:#fff!important;background:#fff3!important;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;border:1px solid rgba(255,255,255,.15);box-shadow:0 2px 8px #0000004d;margin:0}#camera-modal.camera-modal--fullscreen .camera-step{width:100%!important;height:100%!important;display:flex!important;flex-direction:column!important}#camera-modal.camera-modal--fullscreen .camera-step.hidden{display:none!important}#camera-modal.camera-modal--fullscreen .camera-viewfinder{flex:1!important;width:100%!important;height:100%!important;border-radius:0!important;margin-bottom:0!important;aspect-ratio:auto!important}#camera-modal.camera-modal--fullscreen .camera-video{width:100%!important;height:100%!important;object-fit:cover!important}#camera-modal.camera-modal--fullscreen .camera-guide-box{width:80%!important;height:auto!important;aspect-ratio:1 / 1!important}}.settings-tab-menu{display:flex;background-color:var(--bg-tertiary);padding:.25rem;border-radius:8px;border:1px solid var(--border-muted);margin-bottom:1.25rem}.settings-tab-btn{flex:1;background:transparent;border:none;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text-secondary);padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s ease}.settings-tab-btn:hover{color:var(--text-primary);background-color:#ffffff05}.settings-tab-btn.active{background-color:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.settings-tab-content.hidden{display:none!important}.progress-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem 1rem;background-color:#ffffff03;border:1px dashed var(--border-muted);border-radius:12px;margin:1.25rem 0;animation:fade-in .3s ease}.empty-state-icon{font-size:1.75rem;margin-bottom:.25rem}.empty-state-text{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.analytics-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;text-align:center;background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow-sm);animation:fade-in .3s ease;margin-top:1rem}.analytics-empty-icon{font-size:3rem;margin-bottom:1rem}.analytics-empty-state h3{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.analytics-empty-state p{font-size:.9rem;color:var(--text-secondary);max-width:380px;margin-bottom:1.5rem;line-height:1.5}@media (max-width: 768px){.progress-card{padding:1.25rem 1rem!important}.summary-split-container{gap:.75rem!important}.circular-progress{width:150px!important;height:150px!important}.ring-value{font-size:1.85rem!important}.stat-row-item{gap:.5rem!important;padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}.stat-icon{font-size:1.1rem!important}.stat-number{font-size:.9rem!important}.macro-horizontal-grid{gap:.35rem!important}.macro-col-item{padding:.5rem .25rem!important}.macro-ring-box svg{width:60px!important;height:60px!important}.macro-center-emoji{font-size:1rem!important}.macro-name{font-size:.75rem!important}.macro-amount{font-size:.65rem!important}.macro-amount strong{font-size:.75rem!important}.unified-log-container{width:100%;padding:.4rem .4rem .4rem 1rem;min-height:48px}.unified-log-container input{font-size:1rem;padding:.6rem 0}.unified-add-btn{width:44px;height:44px;border-radius:8px}.meal-item{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;padding:.75rem 1rem!important;gap:1rem!important}.item-info{flex:1!important;min-width:0!important;padding-right:0!important}.item-name{font-size:1rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.item-kcal-actions{flex-shrink:0!important;flex-direction:row!important;align-items:center!important;border-top:none!important;padding-top:0!important;margin-top:0!important;gap:.5rem!important}.action-btn{width:44px!important;height:44px!important;border-radius:50%!important;background-color:var(--bg-tertiary)!important;border:1px solid var(--card-border)!important;display:flex!important;align-items:center!important;justify-content:center!important}.action-btn svg{width:20px!important;height:20px!important}.fav-item{padding:.75rem 1rem!important}.fav-actions button{width:44px!important;height:44px!important;border-radius:8px!important}.fav-actions button svg{width:18px!important;height:18px!important}}@media (max-width: 640px){.header-container{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.85rem;padding:.75rem 1rem}.app-logo{min-width:0}.app-logo h1{font-size:1.35rem}.date-navigator{grid-column:1 / -1;width:100%;justify-content:space-between;gap:.35rem}.date-picker-wrapper{flex:1;min-width:0}.date-label{width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis}.date-navigator .text-btn{padding-inline:.85rem}.app-main{padding:1rem;gap:1rem}.dashboard-grid,.panel-left,.panel-right,.dashboard-card,.view-pane{min-width:0}}@media (max-width: 380px){.header-container,.app-main{padding-inline:.75rem}.dashboard-card{padding:1rem .85rem}.progress-card{padding-inline:.85rem!important}.summary-split-container{align-items:stretch}.circular-progress{width:132px!important;height:132px!important}.ring-value{font-size:1.6rem!important}.macro-horizontal-grid{grid-template-columns:1fr}}
