/* ───────────────────────────────────────────────────────────────────────────
   Food Tracker — warm editorial theme
─────────────────────────────────────────────────────────────────────────── */
:root {
  color-scheme: dark;
  --c-cal:#5b9bf0; --c-prot:#46c98a; --c-carb:#f0776b; --c-fat:#b88ce4; --c-water:#4fc3e8;

  --bg:#14110d; --bg2:#1c1812;
  --card:#1f1a13; --card-hover:#272017;
  --border:#322a20; --border2:#44392b;
  --accent:#d6a049; --accent2:#e6bd76; --accent-soft:rgba(214,160,73,0.16);
  --ink:#d6a049; --ink-h:#e2b160; --ink-text:#1a1510;   /* honey primary buttons, dark text */
  --text:#f1e8d8; --text2:#b3a794; --text3:#7d7261;
  --radius:16px; --radius-sm:10px;
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'Hanken Grotesk', 'Inter', system-ui, sans-serif;
  --shadow:0 1px 2px rgba(0,0,0,0.35), 0 18px 40px -24px rgba(0,0,0,0.7);
  --shadow-lg:0 30px 70px -30px rgba(0,0,0,0.85);
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; }
body { font-family:var(--sans); background:var(--bg); color:var(--text); min-height:100vh; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 480px at 78% -8%, rgba(214,160,73,0.10), transparent 70%),
    radial-gradient(720px 420px at -6% 4%, rgba(70,200,138,0.06), transparent 70%); }

.app { max-width:960px; margin:0 auto; padding:0 20px 110px; position:relative; z-index:1; }

/* Header */
header { display:flex; align-items:center; justify-content:space-between; padding:26px 0 18px; border-bottom:1px solid var(--border); margin-bottom:24px; flex-wrap:wrap; gap:10px; }
.logo { font-family:var(--serif); font-size:1.6rem; font-weight:600; color:var(--text); letter-spacing:-0.01em; line-height:1; }
.logo span { color:var(--accent2); font-style:italic; font-weight:500; }
.header-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.date-nav input[type="date"] { background:var(--card); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); font-family:var(--sans); font-size:0.78rem; font-weight:500; padding:8px 10px; outline:none; cursor:pointer; }
.date-nav input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(0.85); opacity:0.7; cursor:pointer; }
.btn-icon { width:36px; height:36px; background:var(--card); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text2); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.18s; font-size:0.9rem; }
.btn-icon:hover { background:var(--card-hover); color:var(--text); border-color:var(--border2); }

/* Period bar */
.period-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; gap:10px; flex-wrap:wrap; }
.period-bar-label { font-size:0.72rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; }
.period-controls { display:flex; align-items:center; gap:8px; }
.btn-goal { display:flex; align-items:center; gap:5px; padding:7px 14px; background:var(--card); border:1px solid var(--border2); border-radius:999px; color:var(--text2); font-family:var(--sans); font-size:0.8rem; font-weight:600; cursor:pointer; transition:all 0.18s; white-space:nowrap; }
.btn-goal:hover { background:var(--card-hover); color:var(--text); }
.period-select-wrap { position:relative; }
.btn-period { display:flex; align-items:center; gap:5px; padding:7px 14px; background:var(--accent-soft); border:1px solid rgba(193,135,47,0.35); border-radius:999px; color:var(--accent2); font-family:var(--sans); font-size:0.8rem; font-weight:700; cursor:pointer; transition:all 0.18s; }
.btn-period:hover { background:#ecd9bb; }
.period-arrow { font-size:0.6rem; transition:transform 0.2s; }
.period-menu { position:absolute; top:calc(100% + 6px); right:0; background:var(--card); border:1px solid var(--border2); border-radius:var(--radius-sm); overflow:hidden; z-index:400; min-width:140px; box-shadow:var(--shadow-lg); opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity 0.18s, transform 0.18s; }
.period-menu.open { opacity:1; pointer-events:all; transform:translateY(0); }
.period-menu button { display:block; width:100%; padding:11px 14px; background:none; border:none; color:var(--text2); font-family:var(--sans); font-size:0.78rem; font-weight:600; text-align:left; cursor:pointer; transition:background 0.12s; }
.period-menu button:hover { background:var(--accent-soft); color:var(--accent2); }
.period-menu button.active { color:var(--accent2); background:var(--accent-soft); }

/* Stats grids */
.stats-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; margin-bottom:14px; }
.stats-grid2 { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-bottom:20px; }
.stat-card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:18px 16px; display:flex; align-items:center; gap:13px; box-shadow:var(--shadow); transition:transform 0.18s, box-shadow 0.18s; }
.stat-card:hover { transform:translateY(-1px); box-shadow:var(--shadow-lg); }
.stat-ring { position:relative; flex-shrink:0; }
.stat-icon { font-size:1.6rem; flex-shrink:0; }
.stat-info { flex:1; min-width:0; }
.stat-label { font-size:0.7rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:4px; }
.stat-value { font-family:var(--serif); font-size:1.7rem; font-weight:600; letter-spacing:-0.01em; line-height:1.05; margin-bottom:3px; }
.stat-sub { font-size:0.73rem; color:var(--text2); }
.v-cal{color:var(--c-cal);} .v-prot{color:var(--c-prot);} .v-carb{color:var(--c-carb);} .v-fat{color:var(--c-fat);} .v-water{color:var(--c-water);} .v-weight{color:var(--c-cal);} .v-muted{color:var(--text3);}

.mini-card { background:var(--card); border:1px solid var(--border); border-radius:13px; padding:15px 15px; box-shadow:var(--shadow); }
.mini-label { font-size:0.68rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:5px; }
.mini-value { font-family:var(--serif); font-size:1.3rem; font-weight:600; letter-spacing:-0.01em; }
.mini-sub { font-size:0.7rem; color:var(--text3); margin-top:3px; }

/* Progress */
.progress-section { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:20px 22px; margin-bottom:20px; box-shadow:var(--shadow); }
.progress-section h3 { font-size:0.72rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:16px; }
.progress-item { margin-bottom:13px; }
.progress-item:last-of-type { margin-bottom:0; }
.progress-header { display:flex; justify-content:space-between; margin-bottom:7px; }
.progress-name { font-size:0.84rem; font-weight:600; }
.progress-numbers { font-size:0.75rem; color:var(--text2); }
.progress-numbers strong { color:var(--text); font-weight:700; }
.progress-track { height:7px; background:rgba(255,255,255,0.08); border-radius:999px; overflow:hidden; }
.progress-fill { height:100%; border-radius:999px; transition:width 0.8s cubic-bezier(0.34,1.56,0.64,1); }
.fill-cal{background:var(--c-cal);} .fill-prot{background:var(--c-prot);} .fill-carb{background:var(--c-carb);} .fill-fat{background:var(--c-fat);} .fill-water{background:var(--c-water);} .fill-over{background:#e0564b;}
.water-row { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
.btn-water { padding:7px 13px; background:rgba(79,195,232,0.13); border:1px solid rgba(79,195,232,0.30); border-radius:999px; color:var(--c-water); font-family:var(--sans); font-size:0.78rem; font-weight:600; cursor:pointer; transition:all 0.18s; }
.btn-water:hover { background:rgba(79,195,232,0.22); border-color:rgba(79,195,232,0.5); }

/* Macro pie */
.macro-pie-card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:18px; margin-bottom:20px; box-shadow:var(--shadow); }
.macro-pie-card h3 { font-size:0.72rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:14px; }
.macro-pie-inner { display:flex; align-items:center; gap:24px; }
.macro-pie-wrap { position:relative; width:160px; height:160px; flex-shrink:0; }
.macro-pie-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none; }
.macro-pie-center .val { font-family:var(--serif); font-size:1.5rem; font-weight:600; color:var(--c-cal); }
.macro-pie-center .lbl { font-size:0.65rem; color:var(--text2); text-transform:uppercase; letter-spacing:0.06em; }
.macro-legend { display:flex; flex-direction:column; gap:11px; flex:1; }
.ml-item { display:flex; align-items:center; gap:10px; }
.ml-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.ml-name { font-size:0.82rem; font-weight:600; min-width:110px; }
.ml-val { font-size:0.82rem; font-weight:700; }
.ml-pct { font-size:0.72rem; color:var(--text3); margin-left:4px; font-weight:500; }

/* Food list */
.section-header { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:13px; }
.section-title { font-family:var(--serif); font-size:1.15rem; font-weight:600; letter-spacing:-0.01em; }
.section-count { font-size:0.75rem; color:var(--text3); }
.food-list { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; margin-bottom:20px; box-shadow:var(--shadow); }
.food-list-empty { padding:36px 20px; text-align:center; color:var(--text3); font-size:0.85rem; line-height:1.6; }
.food-item { display:flex; align-items:center; padding:12px 16px; border-bottom:1px solid var(--border); transition:background 0.15s; gap:8px; }
.food-item:last-child { border-bottom:none; }
.food-item:hover { background:var(--card-hover); }
.food-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); flex-shrink:0; }
.food-name { flex:1; font-size:0.86rem; font-weight:600; }
.food-time { font-size:0.7rem; color:var(--text3); min-width:40px; text-align:right; }
.food-cal { font-size:0.8rem; font-weight:700; color:var(--c-cal); min-width:64px; text-align:right; }
.food-prot { font-size:0.8rem; font-weight:600; color:var(--c-prot); min-width:46px; text-align:right; }
.food-carb { font-size:0.8rem; font-weight:600; color:var(--c-carb); min-width:46px; text-align:right; }
.food-fat { font-size:0.8rem; font-weight:600; color:var(--c-fat); min-width:40px; text-align:right; }
.food-del { width:26px; height:26px; background:none; border:none; color:var(--text3); cursor:pointer; border-radius:6px; display:flex; align-items:center; justify-content:center; transition:all 0.15s; font-size:0.8rem; flex-shrink:0; }
.food-del:hover { background:rgba(240,119,107,0.16); color:var(--c-carb); }
.food-list-head { display:flex; align-items:center; padding:9px 16px; gap:8px; border-bottom:1px solid var(--border); background:var(--bg2); }
.food-list-head span { font-size:0.64rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--text3); }

/* Charts */
.charts-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:20px; }
.chart-card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); }
.chart-card h3 { font-size:0.72rem; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:14px; }
.chart-wrap { position:relative; height:160px; }
.chart-empty { height:160px; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--text3); font-size:0.8rem; }

/* FAB */
.fab { position:fixed; bottom:30px; right:30px; width:56px; height:56px; background:var(--ink); border:none; border-radius:50%; color:var(--ink-text); font-size:1.5rem; font-weight:400; cursor:pointer; box-shadow:0 12px 30px -8px rgba(214,160,73,0.45); display:flex; align-items:center; justify-content:center; transition:transform 0.2s, background 0.2s; z-index:100; }
.fab:hover { transform:scale(1.06); background:var(--ink-h); }
.fab.open { transform:rotate(45deg); }

/* Modal */
.overlay { position:fixed; inset:0; background:rgba(43,32,24,0.40); backdrop-filter:blur(2px); z-index:200; display:flex; align-items:flex-end; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.25s; }
.overlay.active { opacity:1; pointer-events:all; }
.modal { background:var(--card); border:1px solid var(--border2); border-bottom:none; border-radius:24px 24px 0 0; padding:22px 20px 48px; width:100%; max-width:520px; transform:translateY(100%); transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1); max-height:92vh; overflow-y:auto; box-shadow:0 -24px 60px -24px rgba(43,32,24,0.35); }
.overlay.active .modal { transform:translateY(0); }
.modal-handle { width:40px; height:4px; background:var(--border2); border-radius:999px; margin:0 auto 18px; }
.modal-title { font-family:var(--serif); font-size:1.25rem; font-weight:600; margin-bottom:16px; letter-spacing:-0.01em; }
.tabs { display:grid; grid-template-columns:repeat(4, 1fr); gap:5px; margin-bottom:18px; }
.tab { padding:9px 4px; background:var(--bg2); border:1px solid transparent; border-radius:9px; color:var(--text2); font-family:var(--sans); font-size:0.74rem; font-weight:600; cursor:pointer; transition:all 0.18s; text-align:center; }
.tab.active { background:var(--accent-soft); border-color:rgba(193,135,47,0.40); color:var(--accent2); }
.form-panel { display:none; }
.form-panel.active { display:block; }
.form-group { margin-bottom:13px; }
.form-group label { display:block; font-size:0.75rem; font-weight:600; color:var(--text2); margin-bottom:6px; }
.form-group input { width:100%; background:#17130c; border:1px solid var(--border2); border-radius:var(--radius-sm); color:var(--text); font-family:var(--sans); font-size:0.875rem; padding:11px 13px; outline:none; transition:border-color 0.18s, box-shadow 0.18s, background 0.18s; }
.form-group input:focus { border-color:var(--accent); background:#1c1710; box-shadow:0 0 0 3px rgba(214,160,73,0.18); }
.form-group input::placeholder { color:var(--text3); }
.form-row2 { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.macro-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.lbl-cal{color:var(--c-cal)!important;} .lbl-prot{color:var(--c-prot)!important;} .lbl-carb{color:var(--c-carb)!important;} .lbl-fat{color:var(--c-fat)!important;}
.unit-hint { font-size:0.68rem; color:var(--text3); margin-top:4px; }
.btn-submit { width:100%; padding:13px; background:var(--ink); border:none; border-radius:var(--radius-sm); color:var(--ink-text); font-family:var(--sans); font-size:0.875rem; font-weight:700; cursor:pointer; margin-top:8px; transition:background 0.18s, transform 0.1s; }
.btn-submit:hover { background:var(--ink-h); } .btn-submit:active { transform:scale(0.98); }

/* Autocomplete */
.input-wrap { position:relative; }
.autocomplete-list { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--card); border:1px solid var(--border2); border-radius:var(--radius-sm); z-index:50; max-height:220px; overflow-y:auto; box-shadow:var(--shadow-lg); }
.ac-item { display:flex; align-items:center; padding:10px 12px; cursor:pointer; transition:background 0.1s; gap:8px; border-bottom:1px solid var(--border); }
.ac-item:last-child { border-bottom:none; }
.ac-item:hover { background:var(--accent-soft); }
.ac-name { flex:1; font-size:0.82rem; font-weight:600; }
.ac-cal { font-size:0.72rem; color:var(--c-cal); font-weight:700; }
.ac-prot { font-size:0.72rem; color:var(--c-prot); margin-left:5px; font-weight:600; }
.ac-carb { font-size:0.72rem; color:var(--c-carb); margin-left:5px; font-weight:600; }
.ac-fat { font-size:0.72rem; color:var(--c-fat); margin-left:5px; font-weight:600; }
.ac-badge { font-size:0.62rem; padding:2px 6px; border-radius:5px; background:var(--accent-soft); color:var(--accent2); font-weight:600; }
.ac-badge.net { background:rgba(70,201,138,0.15); color:var(--c-prot); }
.ac-loading { padding:12px; text-align:center; color:var(--text3); font-size:0.78rem; }
.gram-hint { font-size:0.72rem; color:var(--text3); margin-top:5px; }
.gram-hint span { color:var(--c-cal); font-weight:600; }
.search-row { display:flex; gap:7px; }
.search-row .input-wrap { flex:1; }
.btn-srch { padding:11px 13px; background:var(--bg2); border:1px solid var(--border2); border-radius:var(--radius-sm); color:var(--text2); font-family:var(--sans); font-size:0.75rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all 0.18s; }
.btn-srch:hover { background:var(--accent-soft); color:var(--accent2); border-color:rgba(193,135,47,0.4); }

/* Meal suggestions */
.meals-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.meal-cat { font-family:var(--serif); font-size:0.95rem; font-weight:600; color:var(--text); letter-spacing:-0.01em; margin:12px 0 6px; grid-column:1/-1; }
.meal-card { background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:11px; cursor:pointer; transition:all 0.15s; }
.meal-card:hover { background:var(--accent-soft); border-color:rgba(193,135,47,0.35); transform:translateY(-1px); }
.meal-card-name { font-size:0.83rem; font-weight:700; margin-bottom:3px; }
.meal-card-desc { font-size:0.67rem; color:var(--text2); margin-bottom:8px; line-height:1.35; }
.meal-card-macros { display:flex; gap:5px; flex-wrap:wrap; }
.meal-card-macros span { font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:5px; }
.m-cal{background:rgba(91,155,240,0.16); color:var(--c-cal);} .m-prot{background:rgba(70,201,138,0.15); color:var(--c-prot);} .m-carb{background:rgba(240,119,107,0.15); color:var(--c-carb);} .m-fat{background:rgba(184,140,228,0.16); color:var(--c-fat);}

/* Settings modal */
.settings-overlay { position:fixed; inset:0; background:rgba(43,32,24,0.40); backdrop-filter:blur(2px); z-index:300; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.2s; padding:20px; }
.settings-overlay.active { opacity:1; pointer-events:all; }
.settings-modal { background:var(--card); border:1px solid var(--border2); border-radius:var(--radius); padding:26px; width:100%; max-width:360px; transform:scale(0.95); transition:transform 0.25s; box-shadow:var(--shadow-lg); }
.settings-overlay.active .settings-modal { transform:scale(1); }
.settings-modal h3 { font-family:var(--serif); font-size:1.2rem; font-weight:600; margin-bottom:18px; letter-spacing:-0.01em; }
.settings-footer { display:flex; gap:10px; margin-top:18px; }
.btn-cancel { flex:1; padding:11px; background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text2); font-family:var(--sans); font-size:0.85rem; font-weight:600; cursor:pointer; transition:background 0.18s; }
.btn-cancel:hover { background:var(--card-hover); }
.btn-save { flex:2; padding:11px; background:var(--ink); border:none; border-radius:var(--radius-sm); color:var(--ink-text); font-family:var(--sans); font-size:0.85rem; font-weight:700; cursor:pointer; transition:background 0.18s; }
.btn-save:hover { background:var(--ink-h); }
.settings-danger { margin-top:18px; padding-top:16px; border-top:1px solid var(--border); }
.btn-reset { width:100%; padding:10px; background:rgba(240,119,107,0.12); border:1px solid rgba(240,119,107,0.3); border-radius:var(--radius-sm); color:var(--c-carb); font-family:var(--sans); font-size:0.8rem; font-weight:600; cursor:pointer; }
.btn-reset:hover { background:rgba(240,119,107,0.2); }

/* Memory overlay */
.mem-overlay { position:fixed; inset:0; background:rgba(43,32,24,0.40); backdrop-filter:blur(2px); z-index:200; display:flex; align-items:flex-end; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.25s; }
.mem-overlay.active { opacity:1; pointer-events:all; }
.mem-panel { background:var(--card); border:1px solid var(--border2); border-bottom:none; border-radius:24px 24px 0 0; padding:22px 20px 48px; width:100%; max-width:520px; transform:translateY(100%); transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1); max-height:88vh; overflow-y:auto; box-shadow:0 -24px 60px -24px rgba(43,32,24,0.35); }
.mem-overlay.active .mem-panel { transform:translateY(0); }
.mem-day { margin-bottom:18px; }
.mem-day-header { font-size:0.7rem; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:8px; padding-bottom:6px; border-bottom:1px solid var(--border); }
.mem-item { display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border-radius:9px; transition:background 0.12s; cursor:pointer; gap:8px; }
.mem-item:hover { background:var(--accent-soft); }
.mem-item-name { font-size:0.82rem; font-weight:600; flex:1; }
.mem-item-macros { display:flex; gap:8px; font-size:0.72rem; font-weight:700; flex-shrink:0; }
.mem-empty { text-align:center; color:var(--text3); font-size:0.85rem; padding:40px 20px; line-height:1.6; }

/* Toast */
.toast { position:fixed; bottom:100px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--ink); border:1px solid var(--ink); color:#f4efe6; padding:11px 20px; border-radius:999px; font-size:0.82rem; font-weight:600; z-index:500; opacity:0; transition:opacity 0.2s, transform 0.2s; pointer-events:none; white-space:nowrap; box-shadow:0 12px 30px -12px rgba(43,32,24,0.6); }
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* User chip + logout */
.user-chip { display:flex; align-items:center; gap:7px; padding:5px 12px 5px 5px; background:var(--card); border:1px solid var(--border); border-radius:999px; font-size:0.78rem; font-weight:600; color:var(--text2); }
.user-avatar { width:24px; height:24px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; font-size:0.7rem; font-weight:700; color:var(--ink-text); font-family:var(--serif); text-transform:uppercase; }
.btn-logout { width:100%; margin-top:10px; padding:10px; background:transparent; border:1px solid var(--border2); border-radius:var(--radius-sm); color:var(--text2); font-family:var(--sans); font-size:0.8rem; font-weight:600; cursor:pointer; transition:all 0.18s; }
.btn-logout:hover { background:var(--card-hover); color:var(--text); }

/* Auth screen */
.auth-screen { position:fixed; inset:0; z-index:1000; background:var(--bg); display:flex; align-items:center; justify-content:center; padding:20px; }
.auth-screen::before { content:''; position:fixed; inset:0; pointer-events:none;
  background:
    radial-gradient(700px 420px at 50% -10%, rgba(214,160,73,0.12), transparent 70%),
    radial-gradient(520px 360px at 12% 110%, rgba(70,200,138,0.07), transparent 70%); }
.auth-screen.hidden { display:none; }
.auth-card { position:relative; width:100%; max-width:360px; background:var(--card); border:1px solid var(--border2); border-radius:22px; padding:36px 30px; box-shadow:var(--shadow-lg); }
.auth-logo { font-family:var(--serif); font-size:1.9rem; font-weight:600; text-align:center; margin-bottom:6px; letter-spacing:-0.01em; }
.auth-logo span { color:var(--accent2); font-style:italic; font-weight:500; }
.auth-sub { text-align:center; color:var(--text3); font-size:0.85rem; margin-bottom:26px; }
.auth-error { background:rgba(240,119,107,0.12); border:1px solid rgba(240,119,107,0.3); color:var(--c-carb); font-size:0.8rem; padding:10px 12px; border-radius:10px; margin-bottom:16px; text-align:center; }
.auth-switch { text-align:center; font-size:0.8rem; color:var(--text2); margin-top:18px; }
.auth-switch a { color:var(--accent2); cursor:pointer; font-weight:700; }
.auth-switch a:hover { text-decoration:underline; }

/* Responsive */
@media (max-width:768px) {
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stats-grid2 { grid-template-columns:1fr 1fr; }
  .charts-row { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .app { padding:0 12px 110px; padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
  header { padding:18px 0 14px; margin-bottom:16px; }
  .logo { font-size:1.35rem; }
  .stats-grid { grid-template-columns:1fr; gap:8px; }
  .stats-grid2 { grid-template-columns:1fr 1fr; gap:8px; }
  .macro-pie-inner { flex-direction:column; align-items:flex-start; gap:14px; }
  .food-time, .food-carb, .food-fat { display:none; }
  .food-list-head .food-time, .food-list-head .food-carb, .food-list-head .food-fat { display:none; }
  .form-group input { font-size:16px; }
  .meals-grid { grid-template-columns:1fr; }
  .fab { bottom:calc(24px + env(safe-area-inset-bottom)); right:20px; }
}
