*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--primary: #2563eb;--danger: #ef4444;--warning: #f59e0b;--success: #22c55e;--info: #3b82f6;--text: #1e293b;--text-secondary: #64748b;--bg: #f1f5f9;--bg-white: #fff;--border: #e2e8f0;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12)}body{font-family:Hiragino Sans,Noto Sans JP,Yu Gothic,sans-serif;font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.loginPage{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:linear-gradient(135deg,#667eea,#764ba2);padding:16px}.loginCard{background:var(--bg-white);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.loginTitle{font-size:24px;font-weight:700;text-align:center;color:var(--text);margin-bottom:4px}.loginSubtitle{text-align:center;color:var(--text-secondary);margin-bottom:24px;font-size:14px}.loginForm{display:flex;flex-direction:column;gap:16px}.loginField{display:flex;flex-direction:column;gap:4px}.loginLabel{font-size:13px;font-weight:600;color:var(--text-secondary)}.loginInput{padding:12px 16px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;transition:border-color .15s;-webkit-appearance:none}.loginInput:focus{outline:none;border-color:var(--primary)}.loginError{color:var(--danger);font-size:13px;text-align:center}.loginButton{padding:14px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s}.loginButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.loginButton:disabled{opacity:.6;cursor:not-allowed}.appShell{display:flex;flex-direction:column;min-height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-white);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.appTitle{font-size:18px;font-weight:700}.topbarRight{display:flex;align-items:center;gap:12px}.savingIndicator{font-size:12px;color:var(--text-secondary)}.dateNav{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px;background:var(--bg-white);border-bottom:1px solid var(--border)}.dateNavBtn{width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:var(--bg-white);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.dateNavBtn:hover{background:var(--bg)}.dateNavLabel{font-size:18px;font-weight:600;min-width:120px;text-align:center}.dashboardLayout{flex:1;padding:16px;max-width:1200px;margin:0 auto;width:100%}.dashboardMain{display:flex;flex-direction:column;gap:12px}.dashboardSidebar{display:none}.nutrientSummary{background:var(--bg-white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.energyDisplay{margin-bottom:12px}.energyNumbers{display:flex;align-items:baseline;gap:2px;margin-bottom:8px}.energyCurrent{font-size:32px;font-weight:700;line-height:1}.energySeparator,.energyTarget{font-size:18px;color:var(--text-secondary)}.energyUnit{font-size:14px;color:var(--text-secondary);margin-left:4px}.progressBar{height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden}.progressBarSmall{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.progressFill{height:100%;border-radius:inherit;transition:width .3s ease}.pfcBadges{display:flex;gap:8px;flex-wrap:wrap}.pfcBadge{flex:1;min-width:70px;padding:8px;border:2px solid var(--border);border-radius:var(--radius-sm);text-align:center}.pfcLabel{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:2px}.pfcValue{display:block;font-size:16px;font-weight:700}.mealCards{display:flex;flex-direction:column;gap:8px}.mealCard{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.mealCardHeader{display:flex;align-items:center;padding:14px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px;transition:background .15s}.mealCardHeader:hover{background:#f8fafc}.mealCardToggle{font-size:12px;color:var(--text-secondary);width:16px}.mealCardTitle{font-size:16px;font-weight:600;flex:1}.mealCardCalories{font-size:14px;font-weight:600;color:var(--primary)}.mealCardEmpty{font-size:13px;color:var(--text-secondary)}.mealCardBody{padding:0 16px 14px}.mealIngredientList{list-style:none;margin-bottom:12px}.mealIngredientItem{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f1f5f9;font-size:14px}.mealIngredientItem:last-child{border-bottom:none}.mealIngredientQty{color:var(--text-secondary);font-size:13px}.mealCardActions{display:flex;gap:8px}.analyzingIndicator{padding:8px 0;color:var(--primary);font-size:14px}.addSnackBtn{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:10px 20px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s,transform .15s;white-space:nowrap}.btn:hover:not(:disabled){opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btnSecondary{background:var(--bg-white);color:var(--text);border:1px solid var(--border)}.btnSecondary:hover:not(:disabled){background:var(--bg);opacity:1}.btnSmall{padding:6px 12px;font-size:13px}.btnIcon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;font-size:14px;cursor:pointer;transition:background .15s}.btnIcon:hover{background:var(--bg)}.btnDanger{color:var(--danger)}.btnDanger:hover{background:#fef2f2}.input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .15s;-webkit-appearance:none}.input:focus{outline:none;border-color:var(--primary)}.inputSmall{width:80px}.modalOverlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:16px}.modal{background:var(--bg-white);border-radius:16px 16px 0 0;width:100%;max-width:500px;max-height:80dvh;overflow-y:auto;padding:20px}.modalHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modalHeader h3{font-size:18px;font-weight:700}.ingredientList{margin-bottom:16px}.ingredientRow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.ingredientName{flex:1;font-size:14px}.ingredientQtyInput{width:70px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;text-align:right;-webkit-appearance:none}.ingredientQtyInput:focus{outline:none;border-color:var(--primary)}.ingredientUnit{font-size:13px;color:var(--text-secondary);min-width:20px}.ingredientUnitSelect{padding:4px 6px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;color:var(--text-secondary);background:var(--bg-white);-webkit-appearance:none;min-width:40px}.addIngredientForm{display:flex;gap:8px;flex-wrap:wrap}.addIngredientForm .input:first-child{flex:1;min-width:120px}.ingredientPending{color:var(--text-secondary)}.pendingBadge{display:inline-block;background:var(--warning);color:#fff;font-size:11px;padding:1px 6px;border-radius:8px;margin-left:6px;font-weight:600;vertical-align:middle}.analyzeAllBtn{width:100%;margin-bottom:12px;background:var(--success)}.analyzeAllBtn:hover:not(:disabled){opacity:.9}.emptyText{text-align:center;color:var(--text-secondary);padding:16px;font-size:14px}.errorText{color:var(--danger);font-size:13px;margin-top:8px}.nutrientDetail{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.nutrientDetailToggle{display:flex;align-items:center;gap:8px;width:100%;padding:14px 16px;border:none;background:none;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;color:var(--text);transition:background .15s}.nutrientDetailToggle:hover{background:#f8fafc}.lowBadge{background:#fef2f2;color:var(--danger);font-size:12px;padding:2px 8px;border-radius:10px;font-weight:600}.toggleArrow{margin-left:auto;font-size:12px;color:var(--text-secondary)}.nutrientFilterBar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.nutrientFilterBtn{padding:5px 12px;border:1px solid var(--border);border-radius:20px;background:var(--bg-white);color:var(--text-secondary);font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.nutrientFilterBtn:hover{background:var(--bg)}.nutrientFilterBtnActive{background:var(--primary);color:#fff;border-color:var(--primary)}.nutrientFilterBtnActive:hover{background:var(--primary);opacity:.9}.nutrientGroups{padding:0 16px 16px}.nutrientGroup{margin-bottom:16px}.nutrientGroup:last-child{margin-bottom:0}.nutrientGroupTitle{font-size:13px;font-weight:700;color:var(--text-secondary);padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:8px}.nutrientRow{padding:6px 0}.nutrientInfo{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.nutrientName,.nutrientValues{font-size:13px}.nutrientTarget{color:var(--text-secondary)}.loadingPage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;gap:12px;color:var(--text-secondary)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.photoCapture{display:inline-flex}.mobileNutrientDetail{display:block}@media(min-width:769px){.dashboardLayout{display:grid;grid-template-columns:1fr 380px;gap:24px;padding:24px}.dashboardSidebar{display:block;position:sticky;top:80px;align-self:start}.mobileNutrientDetail{display:none}.modalOverlay{align-items:center}.modal{border-radius:16px;max-height:70dvh}.topbar{padding:12px 24px}}
