:root {
  --forest: #073f2c;
  --forest-dark: #042d20;
  --green: #36a13a;
  --lime: #b8e768;
  --lime-soft: #eef8d9;
  --cream: #f6f7f2;
  --white: #ffffff;
  --yellow: #ffc74d;
  --coral: #f47a68;
  --blue: #4f9ee8;
  --ink: #17221c;
  --muted: #58695e;
  --line: #e4e9e4;
  --shadow: 0 14px 36px rgba(17, 52, 34, 0.08);
  --radius: 20px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 32px 20px 28px;
  color: #fff;
  background: linear-gradient(165deg, #084a33 0%, #043522 70%, #052c20 100%);
}

.brand { display: flex; align-items: center; gap: 10px; padding: 0 10px 34px; color: #d9f5a2; font-size: 20px; font-weight: 800; text-decoration: none; }
.brand-logo { width: 38px; height: 38px; object-fit: contain; filter: drop-shadow(0 4px 9px rgba(0,0,0,.2)); }
.nav-list { display: grid; gap: 7px; }
.nav-item {
  width: 100%; border: 0; border-radius: 13px; padding: 14px 15px; display: flex; align-items: center; gap: 13px;
  color: rgba(255,255,255,.88); background: transparent; font-weight: 650; text-align: left; transition: .2s ease;
}
.nav-item span { width: 22px; font-size: 22px; text-align: center; }
.nav-item:hover { background: rgba(255,255,255,.08); }
.nav-item.active { color: var(--forest-dark); background: linear-gradient(90deg, #dff3b6, #edf7d9); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.professional-badge { margin-top: auto; display: flex; align-items: center; gap: 11px; border: 1px solid rgba(184,231,104,.65); border-radius: 13px; padding: 13px; color: #eefbd9; font-size: 12px; line-height: 1.35; }
.shield { display: grid; place-items: center; width: 30px; height: 34px; color: var(--forest); background: var(--lime-soft); clip-path: polygon(50% 0, 92% 14%, 84% 76%, 50% 100%, 16% 76%, 8% 14%); font-weight: 900; }

.main-content { min-width: 0; padding: 38px clamp(24px, 4vw, 64px) 56px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.eyebrow { margin: 0 0 6px; color: #526d51; font-size: 11px; font-weight: 850; letter-spacing: .12em; }
h1 { margin: 0; font-size: clamp(28px, 3vw, 43px); line-height: 1.05; letter-spacing: -.04em; }
h2, h3, p { margin-top: 0; }
h2 { margin-bottom: 0; font-size: 20px; letter-spacing: -.02em; }
.top-actions { display: flex; align-items: center; gap: 12px; }
.outline-button { min-height: 42px; padding: 8px 14px; border: 1px solid #b9d5bd; border-radius: 12px; color: var(--forest); background: #fff; font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.outline-button:hover { border-color: var(--green); background: #f7fbea; }
.icon-button, .avatar { position: relative; display: grid; place-items: center; border: 1px solid var(--line); background: #fff; }
.icon-button { width: 44px; height: 44px; border-radius: 13px; font-size: 24px; }
.notification-dot { position: absolute; top: 9px; right: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); }
.avatar { overflow: hidden; width: 46px; height: 46px; padding: 2px; border-color: #b9d5bd; border-radius: 50%; background: linear-gradient(135deg, #f7fbea, #e4f3d3); }
.avatar img { width: 100%; height: 100%; object-fit: contain; pointer-events: none; }

.view { display: none; }
.active-view { display: block; animation: enter .3s ease; }
@keyframes enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr); gap: 18px; margin-bottom: 18px; }
.streak-card, .level-card, .card { border: 1px solid rgba(10,62,42,.09); border-radius: var(--radius); box-shadow: var(--shadow); }
.streak-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; min-height: 145px; padding: 24px; color: #fff; background: linear-gradient(120deg, #075037, #0b6540); }
.streak-card p { margin-bottom: 0; color: rgba(255,255,255,.78); font-size: 13px; }
.streak-card .hero-number { margin-bottom: 5px; color: #fff; font-size: 18px; }
.streak-card .hero-number strong { margin-right: 4px; font-size: 34px; }
.flame-ring { flex: 0 0 auto; display: grid; place-items: center; width: 88px; height: 88px; border: 4px solid #9bd841; border-radius: 50%; background: #073c2a; font-size: 42px; }
.leaf-decoration { position: absolute; right: -8px; bottom: -30px; color: rgba(206,240,165,.13); font-size: 150px; transform: rotate(-22deg); }
.level-card { display: flex; align-items: center; gap: 18px; padding: 23px; background: linear-gradient(135deg, #fff, #f5f9ee); }
.level-badge { display: grid; place-items: center; width: 72px; height: 80px; flex: 0 0 auto; color: white; background: linear-gradient(145deg, #94d34a, #4da532); clip-path: polygon(50% 0, 92% 22%, 92% 75%, 50% 100%, 8% 75%, 8% 22%); font-size: 30px; font-weight: 900; filter: drop-shadow(0 5px 8px rgba(53,125,44,.2)); }
.level-copy { flex: 1; min-width: 0; }
.level-copy p { margin: 6px 0 13px; color: var(--muted); font-size: 12px; }
.level-title { display: flex; justify-content: space-between; gap: 10px; }
.level-title strong { font-size: 18px; }
.level-title span { color: var(--muted); font-size: 11px; }
.progress-track, .mini-progress { display: block; overflow: hidden; height: 8px; border-radius: 999px; background: #dce7d5; }
.progress-track span, .mini-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #74c43b, #2e9836); transition: width .3s ease; }

.card { padding: 22px; background: var(--white); }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.section-heading.compact { margin-bottom: 15px; }
.section-heading.compact > span, .section-heading.compact div > span { color: var(--muted); font-size: 11px; }
.xp-chip, .mission-total { padding: 7px 10px; border-radius: 999px; color: #357b2f; background: var(--lime-soft); font-size: 11px; font-weight: 750; }
.weekly-card { margin-bottom: 18px; }
.week-path { position: relative; display: grid; grid-template-columns: repeat(7, 1fr); padding: 4px 8px 0; }
.week-path::before { content: ""; position: absolute; z-index: 0; top: 20px; left: 7%; right: 7%; height: 3px; background: linear-gradient(90deg, var(--green) 0 62%, #e4e8e4 62%); }
.day { position: relative; z-index: 1; display: grid; justify-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.day > span { width: 38px; height: 38px; border: 2px solid #dce2dc; border-radius: 50%; background: #fff; }
.day.done > span { display: grid; place-items: center; border-color: var(--green); color: #fff; background: var(--green); font-weight: 900; }
.day.today > span { border: 4px solid var(--green); box-shadow: inset 0 0 0 7px #fff; background: var(--lime); }
.day.today small { color: var(--forest); font-weight: 800; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .72fr); gap: 18px; }
.left-column { display: grid; gap: 18px; }
.right-column { display: grid; align-content: start; gap: 18px; }
.mission-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.mission { position: relative; display: grid; grid-template-columns: 38px 1fr 26px; align-items: center; gap: 10px; min-height: 95px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; color: var(--ink); background: #fff; text-align: left; transition: .2s ease; }
.mission:hover { transform: translateY(-2px); border-color: #b8d7ae; box-shadow: 0 9px 20px rgba(17,69,38,.08); }
.mission.completed { border-color: #c9e4a6; background: #fbfff5; }
.mission:disabled { cursor:default; transform:none; }
.mission-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; font-size: 18px; font-weight: 900; }
.breakfast { color: #d59200; background: #fff1cf; }
.lunch { color: #d95542; background: #ffe1dc; }
.water { color: #307fc6; background: #dceeff; font-size: 12px; }
.mission-copy { min-width: 0; }
.mission-copy strong, .mission-copy small { display: block; }
.mission-copy strong { font-size: 12px; line-height: 1.25; }
.mission-copy small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.mission-check, .water-plus { display: grid; place-items: center; width: 24px; height: 24px; border: 2px solid #d9dfda; border-radius: 50%; }
.completed .mission-check { border-color: var(--green); color: #fff; background: var(--green); }
.water-plus { color: #fff; border-color: var(--blue); background: var(--blue); font-weight: 900; }
.mini-progress { width: 100%; height: 4px; margin-top: 7px; background: #e9edef; }
.mini-progress i { background: var(--blue); }

.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.nutrition-card { background:linear-gradient(145deg,#fff,#fbfdf8); }
.nutrition-card .section-heading { align-items:flex-end; }
.nutrition-card .section-heading h2 { margin-top:3px; }
.nutrition-bars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.nutrition-bar { --bar-color:#55a92d; display:grid; gap:8px; min-width:0; padding:11px; border:1px solid #e5ebe2; border-radius:13px; background:#fff; }
.nutrition-bar.energy { grid-column:1/-1; padding:14px; border-color:#d8e7cf; background:linear-gradient(115deg,#f2f9e9,#fbfdf8); }
.nutrition-bar-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px; }
.nutrition-bar-heading > p { display:flex; align-items:center; gap:7px; margin:0; color:#4f6055; font-size:10px; font-weight:800; }
.nutrition-bar-heading > p > i { width:8px; height:8px; border-radius:50%; background:var(--bar-color); box-shadow:0 0 0 4px color-mix(in srgb,var(--bar-color) 14%,transparent); }
.nutrition-bar-heading > div { display:flex; min-width:0; flex-wrap:wrap; align-items:baseline; gap:4px; white-space:normal; }
.nutrition-bar-heading strong { color:var(--forest); font-size:13px; }
.nutrition-bar-heading small { color:var(--muted); font-size:8px; }
.nutrition-bar-track { overflow:hidden; height:7px; border-radius:999px; background:#e8eee7; box-shadow:inset 0 1px 2px rgba(8,63,36,.06); }
.nutrition-bar-track > i { display:block; width:calc(var(--progress) * 1%); height:100%; border-radius:inherit; background:linear-gradient(90deg,color-mix(in srgb,var(--bar-color) 72%,#fff),var(--bar-color)); transition:width .35s ease; }
.nutrition-bar.energy { --bar-color:#55a92d; }.nutrition-bar.protein { --bar-color:#11915b; }.nutrition-bar.carbs { --bar-color:#efa22d; }.nutrition-bar.fat { --bar-color:#e2b229; }.nutrition-bar.fiber { --bar-color:#4f9ee8; }
.nutrition-bar.over-target .nutrition-bar-heading strong { color:#c94f3e; }.nutrition-bar.over-target .nutrition-bar-track > i { background:#d95542; }
.weight-card { overflow:hidden; background:linear-gradient(155deg,#fff 0 64%,#f3f9ed 100%); }
.weight-card .section-heading { align-items:flex-start; }
.weight-card .eyebrow { margin-bottom:3px; font-size:8px; }
.weight-register-button { min-height:31px; padding:6px 9px; border:1px solid #b9d8a8; border-radius:9px; color:#26733a; background:#f6fbef; font-size:9px; font-weight:850; }
.weight-register-button:hover { border-color:#71b254; background:#edf8df; }
.weight-summary { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.weight-summary > div { display:grid; gap:3px; }.weight-summary small { color:#829087; font-size:8px; font-weight:750; }
.weight-summary strong { color:var(--forest); font-size:29px; letter-spacing:-.04em; }
.weight-summary > span { margin-bottom:4px; padding:5px 8px; border-radius:999px; color:#26763a; background:#e9f6df; font-size:9px; font-weight:850; }
.weight-summary > span.weight-gain { color:#a05e18; background:#fff0d9; }
.weight-chart-shell { position:relative; min-height:127px; margin:4px -4px 0; }
.weight-chart { display:block; width:100%; height:125px; overflow:visible; }
.dashboard-weight-empty { position:absolute; inset:0; display:grid; place-items:center; max-width:210px; margin:auto; color:#738179; font-size:10px; line-height:1.45; text-align:center; }
.dashboard-weight-empty[hidden] { display:none; }
.weight-period { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; margin-top:-2px; color:#8a968e; font-size:8px; }.weight-period strong { padding:4px 7px; border-radius:999px; color:#55735d; background:#eef4e9; font-size:8px; }.weight-period span:last-child { text-align:right; }
.text-button { padding: 0; border: 0; color: var(--green); background: none; font-size: 12px; font-weight: 800; }

.next-meal-card { overflow:hidden; padding:18px; background:linear-gradient(160deg,#fff,#fbfdf8); }
.next-meal-card .section-heading > span { padding:5px 8px; border-radius:999px; color:#2f7541; background:#edf7e5; font-weight:850; }
.next-meal-visual { position:relative; display:grid; place-items:center; min-height:205px; overflow:hidden; border-radius:17px; background:linear-gradient(145deg,#eef4e9,#e3eddd); font-size:54px; box-shadow:inset 0 0 0 1px rgba(8,72,42,.05); }
.next-meal-visual::after { position:absolute; inset:auto 0 0; height:42%; background:linear-gradient(transparent,rgba(4,43,29,.46)); content:""; pointer-events:none; }
.next-meal-visual img { width:100%; height:205px; object-fit:cover; transition:transform .35s ease; }.next-meal-card:hover .next-meal-visual img { transform:scale(1.025); }
.next-meal-visual > span { filter:drop-shadow(0 8px 10px rgba(0,0,0,.12)); }
.next-meal-label { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:13px; }.next-meal-label > span { padding:4px 7px; border-radius:999px; color:#806113; background:#fff1c8; font-size:7px; font-weight:850; }
.meal-type { margin:0; color:#558055; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.1em; }
.next-meal-card h3 { margin-bottom: 7px; font-size: 17px; line-height: 1.3; }
.meal-description { margin-bottom:12px; color:var(--muted); font-size:10px; }
.next-meal-metrics { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:14px; padding:10px 4px; border-block:1px solid #e7ece4; }.next-meal-metrics > span { display:grid; justify-items:center; gap:2px; min-width:0; text-align:center; }.next-meal-metrics > span + span { border-left:1px solid #e3e9e0; }.next-meal-metrics strong { color:var(--forest); font-size:13px; }.next-meal-metrics small { color:#829087; font-size:7px; }
.meal-actions { display: grid; gap: 8px; }
.primary-button, .secondary-button { min-height: 43px; padding: 10px 14px; border-radius: 12px; font-weight: 800; }
.primary-button { border: 0; color: #fff; background: linear-gradient(135deg, #2d9737, #12653b); box-shadow: 0 7px 15px rgba(33,120,53,.18); }
.primary-button:disabled { cursor:default; color:#6e7b73; background:#e7ece7; box-shadow:none; }
.secondary-button { border: 1px solid #add481; color: #397a31; background: #f4fbe9; }
.primary-button:hover, .secondary-button:hover { filter: brightness(.97); transform: translateY(-1px); }
.encouragement-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 12px; padding: 18px; border: 1px solid #d3e5af; border-radius: var(--radius); background: linear-gradient(135deg, #eff8dc, #fff9df); box-shadow: var(--shadow); }
.encouragement-card strong { color: #245e2d; font-size: 15px; }
.encouragement-card p { margin: 5px 0 0; color: #65745f; font-size: 11px; line-height: 1.45; }
.plant { font-size: 37px; }

.training-view.active-view { display:block; animation:enter .3s ease; }
.training-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.training-header h2 { font-size:clamp(28px,3vw,39px); }
.training-header > div > p:last-child { margin:7px 0 0; color:var(--muted); font-size:12px; }
.training-streak { flex:0 0 auto; padding:9px 12px; border-radius:999px; color:#8a5b00; background:#fff0c9; font-size:10px; font-weight:850; }
.training-summary-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(250px,.45fr); gap:14px; }
.training-hero-card { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:160px; padding:23px; border-radius:var(--radius); color:#fff; background:radial-gradient(circle at 85% 15%,rgba(184,238,100,.25),transparent 32%),linear-gradient(130deg,#0a4e36,#087346); box-shadow:var(--shadow); }
.training-hero-card .eyebrow { color:#ccec9b; }.training-hero-card strong { display:block; margin:5px 0; font-size:25px; }.training-hero-card p:last-child { margin:0; color:#d5e9df; font-size:10px; }
.training-goal-ring { display:grid; place-items:center; align-content:center; flex:0 0 auto; width:105px; height:105px; border-radius:50%; background:radial-gradient(circle,#0b5a3c 58%,transparent 60%),conic-gradient(#a7df4e calc(var(--training-progress) * 1%),rgba(255,255,255,.16) 0); }
.training-goal-ring span { font-size:22px; font-weight:900; }.training-goal-ring small { color:#d9e8df; font-size:7px; }
.training-stat-card { display:flex; align-items:center; gap:12px; }.training-stat-card > span { display:grid; place-items:center; width:47px; height:47px; border-radius:14px; background:#eef7dd; font-size:24px; }.training-stat-card small,.training-stat-card strong,.training-stat-card p { display:block; }.training-stat-card small { color:var(--muted); font-size:8px; text-transform:uppercase; }.training-stat-card strong { margin:5px 0; font-size:18px; }.training-stat-card p { margin:0; color:#3c9441; font-size:8px; }
.modality-section { margin-top:16px; }.modality-grid { display:flex; flex-wrap:wrap; gap:8px; }.modality-card { display:flex; align-items:center; gap:8px; min-height:48px; padding:8px 13px; border:1px solid var(--line); border-radius:13px; color:var(--ink); background:#fff; transition:.2s ease; }.modality-card:hover { transform:translateY(-1px); border-color:#a8ce91; }.modality-card.selected { border-color:var(--green); background:#f4fbe8; box-shadow:0 6px 16px rgba(37,118,49,.08); }.modality-card > span { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; background:#edf3e8; font-size:17px; }.modality-card strong { font-size:10px; }.modality-card small { display:none; }.quick-workout-footer { display:grid; grid-template-columns:minmax(170px,1fr) auto minmax(260px,auto); align-items:center; gap:12px; margin-top:16px; padding:13px; border-radius:15px; background:#f4f8f1; }.quick-workout-selected { display:flex; align-items:center; gap:10px; }.quick-workout-selected > span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#e7f2dc; font-size:21px; }.quick-workout-selected small,.quick-workout-selected strong { display:block; }.quick-workout-selected small { color:var(--muted); font-size:8px; }.quick-workout-selected strong { margin-top:2px; font-size:13px; }.workout-options { position:relative; }.workout-options summary { color:#477056; cursor:pointer; font-size:9px; font-weight:800; }.workout-options label { position:absolute; z-index:4; top:28px; right:0; width:175px; padding:10px; border:1px solid var(--line); border-radius:11px; color:var(--muted); background:#fff; box-shadow:var(--shadow); font-size:8px; }.workout-options select { width:100%; height:36px; margin-top:6px; padding:0 8px; border:1px solid #ccd7cc; border-radius:8px; background:#fff; }.quick-workout-footer .primary-button { min-width:260px; }
.weekly-planner-section { margin-top:16px; }.planner-helper { margin:5px 0 0; color:var(--muted); font-size:9px; }.planner-count-chip { padding:7px 10px; border-radius:999px; color:#236b36; background:#e7f4d6; font-size:9px; font-weight:850; }.weekly-planner-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.planner-day { display:grid; align-content:start; gap:10px; min-width:0; padding:15px; border:1px solid var(--line); border-radius:16px; background:#f9fbf8; transition:.2s ease; }.planner-day.planned { border-color:#aecd86; background:#f6fbe9; }.planner-day.completed { border-color:#58a85b; background:#edf8e7; }.planner-day.today { box-shadow:0 0 0 3px rgba(77,166,62,.12); }.planner-day header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:9px; border-bottom:1px solid var(--line); }.planner-day header strong { font-size:14px; }.planner-day header small { color:var(--muted); font-size:9px; }.planner-check { display:flex; align-items:center; gap:7px; margin:0; color:#56675d; font-size:9px; font-weight:800; }.planner-check input { margin:0; accent-color:var(--green); }.planner-day select,.planner-day input[type="time"] { width:100%; height:38px; min-width:0; padding:0 9px; border:1px solid #cad5ca; border-radius:10px; color:var(--ink); background:#fff; font-size:9px; outline:0; }.planner-day select:disabled,.planner-day input[type="time"]:disabled { color:#99a29c; background:#f0f2ef; }.planner-complete { justify-content:center; min-height:36px; padding:8px 6px; border-radius:9px; color:#2f7535; background:#e6f3d7; cursor:pointer; }.planner-day:not(.planned):not(.completed) .planner-complete { color:#9aa39d; background:#eef0ee; cursor:not-allowed; }.planner-day.completed .planner-complete { color:#fff; background:var(--green); }.planner-legend { display:flex; align-items:center; flex-wrap:wrap; gap:13px; margin-top:13px; color:var(--muted); font-size:8px; }.planner-legend span { display:flex; align-items:center; gap:5px; }.planner-legend i { width:10px; height:10px; border-radius:3px; }.legend-planned { border:1px solid #9fc87b; background:#f6fbe9; }.legend-done { background:var(--green); }.planner-legend p { margin:0 0 0 auto; }
.weekly-planner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.planner-day { grid-template-columns:72px minmax(90px,1fr) 118px; grid-template-areas:"day plan complete"; align-items:center; gap:10px; padding:10px 12px; border-radius:13px; }
.planner-day header { grid-area:day; height:100%; padding:0 12px 0 0; border:0; border-right:1px solid var(--line); }
.planner-day > .planner-check:not(.planner-complete) { grid-area:plan; }
.planner-day .planner-modality,.planner-day .planner-time { display:none; }
.planner-day .planner-complete { grid-area:complete; }
.planner-check { font-size:10px; }
.planner-day select,.planner-day input[type="time"] { height:36px; font-size:10px; }
.training-content-grid { display:grid; grid-template-columns:1fr; gap:16px; margin-top:16px; }.workout-title { display:flex; align-items:center; gap:12px; }.workout-title > span { display:grid; place-items:center; width:55px; height:55px; border-radius:16px; background:#eef7dd; font-size:28px; }.workout-title .eyebrow { margin-bottom:2px; }.workout-title h2 { font-size:22px; }
.workout-fields { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-top:19px; }.workout-fields label,.workout-note { color:#405248; font-size:10px; font-weight:800; }.workout-fields select,.workout-note textarea { width:100%; margin-top:6px; padding:0 11px; border:1px solid #cbd6cb; border-radius:11px; color:var(--ink); background:#fff; outline:0; }.workout-fields select { height:43px; }.workout-note { display:block; margin:13px 0; }.workout-note textarea { min-height:72px; padding-top:10px; resize:vertical; font:inherit; }
.energy-estimate { display:flex; align-items:center; gap:11px; margin-top:13px; padding:13px; border-radius:13px; background:#fff4dd; }.energy-estimate > span { font-size:28px; }.energy-estimate small,.energy-estimate strong,.energy-estimate p { display:block; }.energy-estimate small { color:#8d7044; font-size:8px; }.energy-estimate strong { margin:3px 0; font-size:16px; }.energy-estimate p { margin:0; color:#8c7758; font-size:8px; }.training-boundary { margin:11px 0 0; color:var(--muted); font-size:8px; line-height:1.5; }.completed-workout-button { background:#567161; box-shadow:none; }
.training-side-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:14px; }.training-week-days { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }.training-week-days > span { display:grid; justify-items:center; gap:5px; color:var(--muted); font-size:8px; }.training-week-days small { display:grid; place-items:center; width:25px; height:25px; border:1px solid #d5ddd4; border-radius:50%; color:#fff; background:#fff; }.training-week-days .done small { border-color:var(--green); background:var(--green); }.training-week-card > p { margin:14px 0 0; padding:10px; border-radius:10px; color:#52654f; background:#eff7e4; font-size:9px; line-height:1.45; }.recent-workouts #recent-workout-list { display:grid; gap:7px; }.recent-workouts article { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:9px; padding:9px; border:1px solid var(--line); border-radius:11px; }.recent-workouts article > span { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:#eff4eb; font-size:18px; }.recent-workouts strong,.recent-workouts small { display:block; }.recent-workouts strong { font-size:9px; }.recent-workouts small { margin-top:3px; color:var(--muted); font-size:7px; }.recent-workouts b { color:var(--green); font-size:8px; }.recent-workouts .new-workout { border-color:#a9d17c; background:#f8fcef; animation:enter .3s ease; }

.placeholder-view { max-width: 620px; margin: 10vh auto 0; padding: 55px 35px; border: 1px solid var(--line); border-radius: 26px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.placeholder-view.active-view { display: block; }
.placeholder-icon { display: block; margin-bottom: 14px; font-size: 54px; }
.placeholder-view h2 { margin-bottom: 12px; font-size: 31px; }
.placeholder-view > p:not(.eyebrow) { color: var(--muted); }
.profile-view.active-view { display:block; animation:enter .3s ease; }
.profile-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.profile-header h2 { font-size:clamp(29px,3vw,40px); }
.profile-header > div > p:last-child { margin:7px 0 0; color:var(--muted); font-size:13px; }
.profile-status-chip { padding:9px 12px; border-radius:999px; color:#286c35; background:#eaf6d9; font-size:10px; font-weight:850; }
.profile-login-notice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; padding:24px; border:1px solid #cee1b3; border-radius:20px; background:linear-gradient(120deg,#fff,#f2fae5); box-shadow:var(--shadow); }
.profile-login-notice[hidden],#profile-authenticated-content[hidden] { display:none; }
.profile-login-notice > span { display:grid; place-items:center; width:56px; height:56px; border-radius:17px; background:#e7f4d6; font-size:27px; }
.profile-login-notice strong { font-size:17px; }.profile-login-notice p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.profile-login-notice a { display:flex; align-items:center; justify-content:center; text-decoration:none; }
.profile-account-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; }
.profile-avatar-large { overflow:hidden; display:grid; place-items:center; width:58px; height:58px; padding:3px; border:1px solid #b9d5bd; border-radius:50%; background:linear-gradient(135deg,#f7fbea,#e4f3d3); }
.profile-avatar-large img { width:100%; height:100%; object-fit:contain; }
.profile-account-card span { color:#78907d; font-size:8px; font-weight:850; letter-spacing:.1em; }.profile-account-card h3 { margin:4px 0; font-size:20px; }.profile-account-card p { margin:0; color:var(--muted); font-size:11px; }
.profile-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-top:16px; }
.profile-data-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; min-height:100px; padding:17px; }
.profile-data-card > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#eef6e6; font-size:21px; }
.profile-data-card small,.profile-data-card strong { display:block; }.profile-data-card small { margin-bottom:4px; color:var(--muted); font-size:9px; }.profile-data-card strong { font-size:12px; line-height:1.35; }
.profile-data-card button { padding:0; border:0; color:var(--green); background:none; font-size:10px; font-weight:850; }
.profile-recalculation-card { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:16px; padding:24px; border:1px solid #d0e1b6; border-radius:20px; background:linear-gradient(125deg,#f3fae9,#fff); box-shadow:var(--shadow); }
.profile-recalculation-card h3 { margin:5px 0 7px; font-size:19px; }.profile-recalculation-card p { max-width:720px; margin:0; color:var(--muted); font-size:11px; line-height:1.5; }.profile-recalculation-card small { display:block; margin-top:10px; color:#57805d; font-size:9px; font-weight:750; }
.profile-recalculation-card .primary-button { flex:0 0 auto; }.profile-logout { margin-top:16px; }

.diet-view.active-view { display: block; animation: enter .3s ease; }
.plan-document-header { display:grid; grid-template-columns:72px 1fr auto; align-items:center; gap:18px; margin-bottom:20px; padding:18px 22px; border:1px solid #dbe5dc; border-radius:20px; background:linear-gradient(115deg,#fff 0%,#fbfff5 70%,#eef8dd 100%); box-shadow:0 10px 30px rgba(17,52,34,.06); }
.plan-document-header > img { width:68px; height:80px; object-fit:contain; filter:drop-shadow(0 7px 12px rgba(7,63,44,.15)); }
.plan-document-header h2 { margin:0; color:var(--forest); font-size:25px; }
.plan-document-header > div:nth-child(2) > p:last-child { margin:5px 0 0; color:var(--muted); font-size:12px; }
.plan-document-summary { min-width:210px; padding-left:22px; border-left:1px solid #d5e1d3; text-align:right; }
.plan-document-summary span,.plan-document-summary strong,.plan-document-summary small { display:block; }
.plan-document-summary span { color:#738078; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.plan-document-summary strong { margin:4px 0 2px; color:var(--forest); font-size:22px; }
.plan-document-summary small { color:#7d897f; font-size:9px; }
.diet-header { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 22px; }
.diet-header-actions { display:flex; align-items:center; gap:10px; }
.daily-reset-button { gap:7px; border-color:#d9dfd8; color:#647168; background:#fbfcfa; }
.daily-reset-button span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; color:var(--forest); background:#edf6e5; font-size:16px; line-height:1; }
.daily-reset-button:hover:not(:disabled) { border-color:#e0b8a9; color:#9a4d39; background:#fff8f5; }
.daily-reset-button:disabled { cursor:not-allowed; opacity:.45; }
.diet-header h2 { font-size: clamp(27px, 3vw, 38px); }
.diet-header > div:first-child > p:last-child { margin: 8px 0 0; color: var(--muted); font-size: 13px; }
.diet-status { display: flex; align-items: center; gap: 10px; min-width: 180px; padding: 12px 15px; border: 1px solid #cbe1b2; border-radius: 14px; background: #f7fce9; }
.diet-status > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: var(--green); font-weight: 900; }
.diet-status strong, .diet-status small { display: block; }
.diet-status strong { font-size: 13px; }.diet-status small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.diet-status.draft-status { border-color:#efcd81; background:#fff9e9; }.diet-status.draft-status > span { background:#d89a25; }
.diet-draft-warning { margin-top:12px; padding:9px; border-radius:9px; color:#7a5b20; background:#fff4d8; font-size:8px; line-height:1.4; }
.diet-meal.draft-meal { border-color:#d8e1d5; }.draft-chip { padding:5px 8px; border-radius:999px; color:#8a631f; background:#fff2cf; font-size:8px; font-weight:800; }
.diet-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .63fr); gap: 20px; align-items: start; }
.diet-mode-switch { display:grid; grid-template-columns:repeat(2,minmax(0,240px)); gap:8px; width:max-content; margin:0 0 18px; padding:5px; border:1px solid #dbe6d7; border-radius:16px; background:#f3f7ef; }
.diet-mode-button { display:grid; grid-template-columns:30px 1fr; grid-template-areas:"icon title" "icon copy"; align-items:center; column-gap:9px; min-height:58px; padding:9px 13px; border:1px solid transparent; border-radius:12px; color:#587064; background:transparent; text-align:left; cursor:pointer; }
.diet-mode-button > span { grid-area:icon; display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#39794a; background:#e6f2dc; font-size:14px; }
.diet-mode-button strong { grid-area:title; color:#355244; font-size:11px; }
.diet-mode-button small { grid-area:copy; margin-top:2px; color:#526358; font-size:8px; }
.diet-mode-button:hover { background:#fff; }
.diet-mode-button.active { border-color:#91c26f; background:#fff; box-shadow:0 5px 14px rgba(22,73,42,.08); }
.diet-mode-button.active > span { color:#fff; background:linear-gradient(135deg,#45a64a,#237e38); }
.diet-edit-intro { display:flex; align-items:center; gap:11px; margin:-7px 0 16px; padding:12px 15px; border:1px solid #cfe3c3; border-radius:14px; background:linear-gradient(135deg,#f8fcef,#eef8e5); }
.diet-edit-intro > span { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:10px; color:#fff; background:#319142; font-size:15px; }
.diet-edit-intro strong,.diet-edit-intro small { display:block; }.diet-edit-intro strong { color:#275d37; font-size:11px; }.diet-edit-intro small { margin-top:3px; color:#66796c; font-size:9px; line-height:1.45; }
.diet-edit-intro em { margin-left:auto; padding:6px 9px; border-radius:999px; color:#54705d; background:#fff; font-size:8px; font-style:normal; font-weight:800; white-space:nowrap; }
.diet-edit-intro em[data-state="saving"] { color:#8a631f; background:#fff3d4; }
.diet-edit-intro em[data-state="saved"] { color:#247338; background:#e7f5dc; }
.diet-edit-intro em[data-state="error"] { color:#9c3e32; background:#fff0ed; }
.diet-mode-view .diet-edit-only,.diet-mode-edit .diet-view-only { display:none !important; }
.meal-timeline { position: relative; display: grid; gap: 16px; }
.meal-timeline::before { content: ""; position: absolute; top: 52px; bottom: 52px; left: 43px; width: 2px; background: linear-gradient(#b9db9b,#dbe5dc); }
.diet-meal { position: relative; z-index: 1; overflow:hidden; display: grid; grid-template-columns: 72px minmax(0,1fr) 132px; grid-template-areas:"time copy actions" "photo copy actions"; align-items:start; gap: 10px 16px; min-height: 150px; padding: 19px 20px; border: 1px solid #dce5d9; border-radius: 22px; background: linear-gradient(135deg,#fff 0%,#fcfef9 100%); box-shadow: 0 12px 30px rgba(17,52,34,.06); }
.diet-meal::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:linear-gradient(#8ed44c,#2c963f); opacity:.72; }
.diet-meal.current-meal { border: 2px solid #93c95a; background: linear-gradient(110deg, #fff, #fbfff4); }
.meal-time { grid-area:time; align-self:start; padding-top:2px; text-align:center; }
.meal-time strong, .meal-time span { display: block; }
.meal-time strong { color: var(--forest); font-size: 18px; letter-spacing:-.02em; }.meal-time span { margin-top: 3px; color: var(--muted); font-size: 9px; line-height:1.25; }
.meal-symbol { display:block; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.meal-photo { grid-area:photo; display: grid; place-items: center; width: 52px; height: 52px; justify-self:center; border:1px solid #dce8d5; border-radius: 16px; color:#246d3b; background:linear-gradient(145deg,#f8fced,#edf6e4); box-shadow:0 6px 14px rgba(44,112,51,.08); }
.meal-photo .meal-symbol { width:26px; height:26px; }
.meal-header-photo,.diet-meal-tab-photo,.swap-meal-photo { display:block; width:100%; height:100%; object-fit:cover; }
.meal-header-photo { border-radius:inherit; }
.diet-meal-tab-photo,.swap-meal-photo { border-radius:11px; }
.breakfast-photo { background: #fff1d5; }.lunch-photo { background: #f0ead8; }.snack-photo { background: #ffe9e5; }.dinner-photo { background: #e8f4dd; }
.diet-meal-copy { grid-area:copy; min-width: 0; }
.meal-heading { display: flex; align-items: center; gap: 9px; }
.meal-heading-status-only { justify-content: flex-end; margin-bottom: 6px; }
.meal-heading h3 { margin:0; font-size:18px; line-height:1.25; }
.diet-meal-copy > p { display:none; }
.meal-ingredient-details { overflow:hidden; margin:10px 0 12px; border:1px solid #e0e8dc; border-radius:14px; background:rgba(247,250,244,.82); }
.meal-ingredient-details > summary { display:flex; align-items:center; justify-content:space-between; width:100%; padding:11px 13px; color:var(--forest); cursor:pointer; font-size:11px; font-weight:850; list-style:none; }
.meal-ingredient-details > summary::-webkit-details-marker { display:none; }
.meal-ingredient-details > summary::after { content:"＋"; display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:var(--green); background:#e8f4dc; font-size:14px; }
.meal-ingredient-details[open] > summary::after { content:"−"; }
.meal-ingredient-details ul { display:grid; gap:7px; margin:0; padding:4px 13px 13px; list-style:none; }
.meal-ingredient-details li { display:grid; grid-template-columns:minmax(120px,230px) auto; justify-content:start; gap:18px; padding:7px 0; border-top:1px solid #e2e8e0; color:#4f5e54; font-size:11px; }
.meal-ingredient-details li strong { color:var(--forest); white-space:nowrap; font-size:11px; }
.meal-plan-table { display:grid; grid-template-columns:minmax(0,1fr); border-top:1px solid #dfe7dc; }
.meal-plan-column { min-width:0; padding:14px 16px 16px; }
.meal-plan-column > strong { display:block; margin-bottom:8px; color:#47564c; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.meal-plan-column ul { gap:7px; padding:0; }
.meal-plan-column li { grid-template-columns:minmax(150px,1fr) minmax(150px,auto) auto; align-items:center; min-height:44px; padding:9px 12px; border:1px solid #e1e8df; border-radius:10px; background:#fff; font-size:11px; }
.meal-plan-column li span { line-height:1.35; }
.ingredient-name { color:#425149; font-weight:650; }
.ingredient-portion { display:flex; align-items:baseline; justify-content:flex-end; gap:5px; text-align:right; white-space:nowrap; }
.ingredient-portion strong { color:var(--forest); font-size:11px; }
.ingredient-portion small { color:#77847b; font-size:9px; font-weight:700; }
.ingredient-swap-button { min-width:58px; padding:7px 9px; border:1px solid #a8cf7a; border-radius:8px; color:#397c31; background:#f7fce9; font-size:9px; font-weight:850; }
.ingredient-swap-button:hover { border-color:var(--green); background:#edf8d8; }
.ingredient-swap-button:disabled { cursor:default; border-color:#d4ddd2; color:#89938c; background:#f0f3ef; }
.meal-plan-column .no-equivalent { color:#879189; font-style:italic; }
.meal-plan-note { grid-column:1/-1; margin:0; padding:10px 16px; border-top:1px solid #dfe7dc; color:#6f7e73; background:#eef5e7; font-size:9px; line-height:1.45; }
.meal-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.meal-nutrition-summary { flex-direction:column; flex-wrap:nowrap; justify-self:center; padding-top:4px; }
.meal-nutrient-orb { display:flex; width:64px; height:64px; box-sizing:border-box; flex:0 0 64px; flex-direction:column; align-items:center; justify-content:center; padding:5px; border:1px solid #dce7d7; border-radius:50%; color:#315543; background:linear-gradient(145deg,#fff,#f3f8ef); box-shadow:0 6px 15px rgba(25,78,50,.08); text-align:center; }
.meal-nutrient-orb strong { font-size:11px; line-height:1.05; white-space:nowrap; }
.meal-nutrient-orb small { max-width:56px; margin-top:4px; overflow:hidden; color:#738078; font-size:7px; font-weight:800; line-height:1; letter-spacing:.01em; text-overflow:ellipsis; white-space:nowrap; }
.meal-kcal-orb { border-color:#f0dca8; background:linear-gradient(145deg,#fffdf8,#fff5dc); }
.meal-protein-orb { border-color:#cfe6d4; background:linear-gradient(145deg,#fff,#edf8ef); }
.meal-carb-orb { border-color:#d8dfef; background:linear-gradient(145deg,#fff,#f0f4fb); }
.meal-fat-orb { border-color:#f0dccd; background:linear-gradient(145deg,#fff,#fbf1e9); }
.done-chip, .current-chip { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; }
.done-chip { color: #397d37; background: #e8f6d6; }.current-chip { color: #8a6400; background: #fff1c4; }
.diet-meal.completed-meal { border-color:#b8d99d; background:linear-gradient(110deg,#fff,#f7fceb); }
.meal-card-actions { grid-area:actions; display:grid; align-content:start; justify-items:center; gap:8px; min-width:132px; }
.complete-meal-button { max-width:125px; padding:9px 12px; border:1px solid var(--green); border-radius:10px; color:#fff; background:var(--green); font-size:10px; font-weight:850; line-height:1.25; }
.complete-meal-button:hover { background:#24852c; }
.complete-meal-button:disabled,.swap-button:disabled { cursor:default; border-color:#ccd7ca; color:#6f7c72; background:#edf1ec; opacity:.85; }
.swap-button { max-width:125px; padding:9px 12px; border:1px solid #a8cf7a; border-radius:10px; color:#397c31; background:#f7fce9; font-size:10px; font-weight:800; line-height:1.25; }
.swap-button:hover { border-color: var(--green); background: #edf8d8; }

@media (min-width: 821px) {
  .diet-meal-copy { display:flex; align-self:stretch; flex-direction:column; }
  .diet-meal-copy .meal-ingredient-details { flex:1; margin-bottom:0; }
}

/* Dieta em foco: seletor compacto + uma refeição por vez. */
.diet-meal-workspace { min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.diet-meal-workspace > * { min-width:0; max-width:100%; box-sizing:border-box; }
.diet-meal-selector-shell { overflow:hidden; padding:17px 18px 15px; border:1px solid #dce6d8; border-radius:20px; background:linear-gradient(135deg,#fff,#f7fbed); box-shadow:0 10px 26px rgba(17,52,34,.055); }
.diet-meal-selector-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:13px; }
.diet-meal-selector-heading .eyebrow { margin:0 0 3px; }
.diet-meal-selector-heading h3 { margin:0; color:var(--forest); font-size:16px; }
.diet-meal-selector-heading > span { color:#718077; font-size:9px; font-weight:750; }
.diet-meal-selector { display:grid; grid-template-columns:repeat(auto-fit,minmax(116px,1fr)); gap:8px; width:100%; min-width:0; max-width:100%; }
.diet-meal-tab { position:relative; display:grid; grid-template-columns:35px minmax(0,1fr) 17px; align-items:center; gap:8px; min-width:0; min-height:58px; padding:8px 9px; border:1px solid #dce6d8; border-radius:14px; color:#345445; background:rgba(255,255,255,.88); text-align:left; transition:border-color .18s,background .18s,transform .18s,box-shadow .18s; }
.diet-meal-tab:hover { border-color:#a9cf8c; transform:translateY(-1px); }
.diet-meal-tab.active { border-color:#60af4a; background:linear-gradient(135deg,#f3fbe8,#e9f6d9); box-shadow:0 7px 16px rgba(52,135,48,.12); }
.diet-meal-tab.completed:not(.active) { background:#f7faf5; opacity:.78; }
.diet-meal-tab-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:11px; color:#28733d; background:#edf6e4; }
.diet-meal-tab-icon .meal-symbol { width:20px; height:20px; }
.diet-meal-tab-copy { min-width:0; }
.diet-meal-tab-copy strong,.diet-meal-tab-copy small { display:block; }
.diet-meal-tab-copy strong { color:var(--forest); font-size:13px; line-height:1.1; }
.diet-meal-tab-copy small { overflow:hidden; margin-top:3px; color:#738078; font-size:8px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.diet-meal-tab-state { display:grid; place-items:center; width:17px; height:17px; border-radius:50%; color:#fff; background:#3aa342; font-size:9px; font-weight:900; }
.diet-meal-tab:not(.completed) .diet-meal-tab-state { width:7px; height:7px; justify-self:center; background:#e7bf4f; }

.meal-timeline { display:block; }
.meal-timeline::before { display:none; }
.diet-meal[hidden] { display:none !important; }
.diet-meal.draft-meal { display:block; min-height:0; padding:0; border:1px solid #d9e4d6; border-radius:23px; background:#fff; box-shadow:0 15px 34px rgba(17,52,34,.07); }
.diet-meal.draft-meal::before { width:5px; }
.diet-meal.draft-meal:focus { outline:0; }
.meal-card-header { display:grid; grid-template-columns:minmax(190px,1fr) auto minmax(260px,auto); align-items:center; gap:15px; padding:20px 22px 17px; border-bottom:1px solid #edf1eb; }
.meal-card-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.meal-card-header .meal-photo { display:grid; width:54px; height:54px; flex:0 0 54px; margin:0; overflow:hidden; border-radius:17px; background:#fff; }
.meal-card-header .meal-time { padding:0; text-align:left; }
.meal-card-header .meal-time strong { font-size:25px; line-height:1; }
.meal-card-header .meal-time span { margin-top:5px; color:#2c4d3e; font-size:13px; font-weight:850; }
.meal-card-header .meal-time small { display:block; margin-top:4px; color:#7a877f; font-size:9px; }
.meal-time-editor { display:grid; gap:3px; }
.meal-time-editor > span { color:#6d7c73 !important; font-size:7px !important; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.meal-time-editor input { width:112px; min-height:38px; padding:7px 10px; border:1px solid #91c76d; border-radius:10px; color:var(--forest); background:#fff; font-family:inherit; font-size:16px; font-weight:850; line-height:1; box-shadow:0 4px 10px rgba(35,105,54,.08); }
.meal-time-editor input:focus { outline:3px solid rgba(93,177,69,.18); border-color:#4ca443; }
.meal-time-editor input:disabled { opacity:.65; cursor:wait; }
.meal-card-header .draft-chip { align-self:center; margin:0; }
.meal-card-header .meal-card-actions { grid-area:auto; display:flex; align-items:center; justify-content:flex-end; gap:9px; min-width:0; }
.meal-card-actions .complete-meal-button,.meal-card-actions .swap-button,.meal-card-actions .meal-builder-button { width:auto; max-width:none; min-height:40px; padding:10px 14px; border-radius:11px; font-size:10px; }
.meal-card-actions .swap-button { order:-1; background:#fff; }
.meal-card-actions .swap-button span { margin-right:5px; font-size:15px; }
.meal-builder-button { border:1px solid #8fc66b; color:#216f34; background:#f2f9e8; font-weight:850; cursor:pointer; }
.meal-builder-button:hover:not(:disabled) { border-color:#55a53e; background:#e9f6da; }
.meal-macro-overview { margin:18px 22px 0; padding:17px 20px 14px; border:1px solid #e0e8dc; border-radius:17px; background:linear-gradient(135deg,#fbfdf9,#f5f9f1); }
.meal-macro-rings { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.meal-macro-ring { --ring-color:#174f39; display:grid; justify-items:center; gap:5px; min-width:0; text-align:center; }
.meal-macro-ring > div { position:relative; display:grid; place-content:center; width:82px; height:82px; border-radius:50%; background:conic-gradient(var(--ring-color) calc(var(--ring-progress) * 1%),#e1e8df 0); }
.meal-macro-ring > div::before { content:""; position:absolute; inset:7px; border-radius:50%; background:#fbfdf9; box-shadow:inset 0 0 0 1px rgba(20,70,45,.04); }
.meal-macro-ring strong,.meal-macro-ring small { position:relative; z-index:1; display:block; }
.meal-macro-ring strong { color:var(--forest); font-size:17px; line-height:1; }
.meal-macro-ring small { margin-top:3px; color:#738077; font-size:8px; font-weight:800; }
.meal-macro-ring > span { color:#375548; font-size:10px; font-weight:850; }
.meal-macro-ring > em { color:#809087; font-size:7px; font-style:normal; font-weight:700; }
.meal-kcal-ring { --ring-color:#174f39; }.meal-protein-ring { --ring-color:#59aa67; }.meal-carb-ring { --ring-color:#7187dc; }.meal-fat-ring { --ring-color:#ed9144; }
.reopen-meal-button { min-height:40px; padding:10px 14px; border:1px solid #8fc66b; border-radius:11px; color:#216f34; background:#f2f9e8; font-size:10px; font-weight:850; cursor:pointer; }
.reopen-meal-button:hover:not(:disabled) { border-color:#55a53e; background:#e9f6da; }
.diet-meal.draft-meal .diet-meal-copy { display:block; padding:0 22px 22px; }
.diet-meal.draft-meal .meal-ingredient-details { margin:16px 0 0; border:0; border-radius:0; background:transparent; }
.diet-meal.draft-meal .meal-ingredient-details > summary { padding:0 0 10px; font-size:10px; }
.diet-meal.draft-meal .meal-ingredient-details > summary::after { width:22px; height:22px; }
.diet-meal.draft-meal .meal-plan-table { border:0; }
.diet-meal.draft-meal .meal-plan-column { padding:0; }
.diet-meal.draft-meal .meal-plan-column > strong { display:none; }
.diet-meal.draft-meal .meal-plan-column ul { display:grid; gap:9px; }
.diet-meal.draft-meal .meal-plan-column li { grid-template-columns:48px minmax(135px,1fr) minmax(260px,auto) auto auto; min-height:64px; gap:10px; padding:8px 11px; border-color:#e2e8df; border-radius:13px; box-shadow:0 4px 12px rgba(20,58,37,.035); }
.diet-mode-view .diet-meal.draft-meal .meal-plan-column li { grid-template-columns:48px minmax(135px,1fr) minmax(260px,auto) auto; }
.meal-food-visual { display:grid; place-items:center; width:48px; height:48px; overflow:hidden; border-radius:11px; background:#f2f6ed; font-size:24px; }
.meal-food-visual img { width:100%; height:100%; object-fit:contain; background:#fff; }
.diet-meal.draft-meal .ingredient-name { font-size:11px; }
.diet-meal.draft-meal .ingredient-serving { display:flex; align-items:center; justify-content:flex-end; gap:8px; min-width:240px; }
.diet-meal.draft-meal .ingredient-portion { min-width:0; justify-content:center; padding:9px 13px; border:1px solid #d9e3d5; border-radius:10px; background:#f9fbf7; text-align:center; }
.diet-meal.draft-meal .ingredient-grams { display:grid; place-items:center; min-width:66px; min-height:38px; padding:7px 11px; border:1px solid #d9e3d5; border-radius:10px; color:#355046; background:#fff; box-shadow:none; font-size:11px; font-weight:900; letter-spacing:.01em; white-space:nowrap; }
.diet-meal.draft-meal .ingredient-swap-button { min-width:72px; min-height:36px; background:#fff; }
.ingredient-quantity-control { display:grid; grid-template-columns:28px minmax(58px,auto) 28px; align-items:center; min-height:38px; overflow:hidden; border:1px solid #d9e3d5; border-radius:10px; background:#f3f6f1; box-shadow:none; }
.ingredient-quantity-control button { display:grid; place-items:center; width:28px; height:38px; padding:0; border:0; color:#267c39; background:transparent; font-size:18px; font-weight:900; }
.ingredient-quantity-control button:hover:not(:disabled) { background:#e6f4d9; }
.ingredient-quantity-control button:disabled { color:#aeb9b0; cursor:not-allowed; }
.ingredient-quantity-control strong { display:grid; place-items:center; min-height:30px; padding:0 7px; border-inline:1px solid #d7dfd4; color:#355046; background:#e9eeE7; font-size:11px; white-space:nowrap; }
.ingredient-quantity-status { display:grid; place-items:center; min-width:86px; min-height:38px; padding:5px 9px; border:1px solid #d9e3d5; border-radius:10px; color:#355046; background:#f3f6f1; text-align:center; }
.ingredient-quantity-status strong { font-size:11px; line-height:1.1; }
.ingredient-quantity-status small { margin-top:2px; color:#7b8880; font-size:7px; font-weight:750; }
.ingredient-quantity-locked { background:#f0f2ef; opacity:.82; }
.ingredient-more-menu { position:relative; }
.ingredient-more-menu summary { display:grid; place-items:center; width:34px; min-height:36px; border:1px solid #d8e2d5; border-radius:10px; color:#496158; background:#fff; cursor:pointer; font-size:17px; font-weight:800; list-style:none; }
.ingredient-more-menu summary::-webkit-details-marker { display:none; }
.ingredient-more-menu[open] summary { border-color:#8fbd70; background:#f5faef; }
.ingredient-more-menu button { position:absolute; z-index:12; top:42px; right:0; min-width:145px; padding:10px 12px; border:1px solid #e6c9c3; border-radius:10px; color:#a33e31; background:#fff; box-shadow:0 10px 24px rgba(39,52,43,.16); font-size:10px; font-weight:850; white-space:nowrap; }
.diet-adjustment-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 15px; border:1px solid #e1b84f; border-radius:15px; background:linear-gradient(135deg,#fffaf0,#fff4d7); box-shadow:0 8px 20px rgba(151,105,20,.09); }
.diet-adjustment-bar[hidden] { display:none; }
.diet-adjustment-bar > div { display:flex; align-items:center; gap:10px; }
.diet-adjustment-bar > div:first-child > span { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#8a6213; background:#ffe6a7; font-size:16px; }
.diet-adjustment-bar p,.diet-adjustment-bar strong,.diet-adjustment-bar small { display:block; margin:0; }
.diet-adjustment-bar strong { color:#62470f; font-size:11px; }
.diet-adjustment-bar small { margin-top:2px; color:#8c713d; font-size:9px; }
.diet-adjustment-bar button { min-height:36px; padding:8px 13px; }
.diet-adjustment-dialog-copy { margin:-2px 0 16px; color:#68786e; font-size:11px; line-height:1.6; }
.adjustment-mode-card { position:relative; display:grid; grid-template-columns:38px 1fr; align-items:center; gap:12px; width:100%; margin-top:10px; padding:14px; border:1px solid #d9e4d6; border-radius:14px; color:var(--forest); background:#fff; text-align:left; }
.adjustment-mode-card:hover { border-color:#80ba5e; background:#f8fcef; }
.adjustment-mode-card > span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:#287b3a; background:#edf7e5; font-weight:900; }
.adjustment-mode-card strong,.adjustment-mode-card small { display:block; }
.adjustment-mode-card strong { font-size:12px; }
.adjustment-mode-card small { margin-top:4px; color:#6f7c73; font-size:9px; line-height:1.45; }
.adjustment-mode-card em { position:absolute; top:10px; right:10px; padding:4px 7px; border-radius:999px; color:#287b3a; background:#e8f6d8; font-size:7px; font-style:normal; font-weight:900; text-transform:uppercase; }
.adjustment-mode-card.recommended { border-color:#9aca73; background:#fbfef7; }
.wide-dialog.meal-builder-dialog { width:min(920px,calc(100% - 30px)); max-height:94vh; }
.meal-builder-dialog form { max-height:94vh; overflow:auto; }
.meal-builder-dialog .dialog-heading { margin-bottom:10px; }
.meal-builder-copy { margin:0 0 14px; color:#68786e; font-size:11px; line-height:1.55; }
.meal-builder-saved { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:14px; margin-bottom:14px; padding:12px; border:1px solid #d7e4d2; border-radius:14px; background:#f8fcef; }
.meal-builder-saved[hidden],.meal-builder-name[hidden] { display:none; }
.meal-builder-saved strong,.meal-builder-saved small { display:block; }.meal-builder-saved strong { color:var(--forest); font-size:10px; }.meal-builder-saved small { margin-top:3px; color:#718078; font-size:8px; }
#meal-builder-saved-list { display:flex; gap:7px; overflow-x:auto; padding-bottom:2px; }
.saved-combination-button { min-width:max-content; padding:8px 11px; border:1px solid #a9cf8e; border-radius:10px; color:#286f39; background:#fff; font-size:9px; font-weight:850; cursor:pointer; }
.meal-builder-requirements { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
.meal-builder-requirements span { padding:6px 9px; border-radius:999px; color:#8b6418; background:#fff0c7; font-size:8px; font-weight:850; }
.meal-builder-requirements span.done { color:#236d35; background:#e6f5d7; }
.meal-builder-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:16px; align-items:start; }
.meal-builder-groups { display:grid; gap:11px; max-height:440px; overflow:auto; padding-right:4px; }
.meal-builder-group { padding:12px; border:1px solid #dfe7dc; border-radius:14px; background:#fbfdf9; }
.meal-builder-group > header { display:flex; justify-content:space-between; gap:10px; margin-bottom:9px; }.meal-builder-group > header strong { color:var(--forest); font-size:10px; }.meal-builder-group > header small { color:#7a877f; font-size:8px; }
.meal-builder-foods { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.meal-builder-food { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) 20px; align-items:center; gap:8px; min-height:58px; margin:0; padding:7px; border:1px solid #e1e8df; border-radius:12px; color:#415148; background:#fff; cursor:pointer; }
.meal-builder-food:has(input:checked) { border-color:#63af48; background:#f0f9e6; box-shadow:0 0 0 2px rgba(89,168,64,.08); }
.meal-builder-food input { position:absolute; opacity:0; }.meal-builder-food .food-visual { width:42px; height:42px; }.meal-builder-food strong,.meal-builder-food small { display:block; }.meal-builder-food strong { font-size:9px; line-height:1.25; }.meal-builder-food small { margin-top:3px; color:#7b877f; font-size:7px; }.meal-builder-food i { display:grid; place-items:center; width:18px; height:18px; border:1px solid #bed1b7; border-radius:50%; color:transparent; font-size:10px; font-style:normal; }.meal-builder-food input:checked ~ i { border-color:#329543; color:#fff; background:#329543; }
.meal-builder-preview { position:sticky; top:0; min-height:210px; padding:16px; border:1px solid #cee0c7; border-radius:16px; background:linear-gradient(145deg,#f8fcef,#eef7e3); }.meal-builder-preview-icon { display:grid; place-items:center; width:35px; height:35px; margin-bottom:10px; border-radius:11px; color:#287c3a; background:#dff1ca; }.meal-builder-preview > strong { color:var(--forest); font-size:13px; }.meal-builder-preview > p { margin:5px 0 0; color:#748078; font-size:9px; line-height:1.5; }
.meal-builder-preview.loading { opacity:.7; }.meal-builder-preview.error { border-color:#e5c3a1; background:#fff8ed; }
.meal-builder-preview-macros { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; margin:12px 0; }.meal-builder-preview-macros span { padding:8px; border-radius:10px; background:#fff; }.meal-builder-preview-macros strong,.meal-builder-preview-macros small { display:block; }.meal-builder-preview-macros strong { font-size:12px; }.meal-builder-preview-macros small { margin-top:2px; color:#79867e; font-size:7px; }
.meal-builder-preview ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }.meal-builder-preview li { display:flex; justify-content:space-between; gap:8px; padding-top:5px; border-top:1px solid #dae6d5; color:#506158; font-size:8px; }.meal-builder-preview li strong { color:#214f34; white-space:nowrap; }
.meal-builder-save-toggle { display:flex; align-items:flex-start; gap:9px; margin:15px 0 8px; padding:11px; border:1px solid #dbe5d8; border-radius:12px; background:#fafcf8; }.meal-builder-save-toggle input { margin-top:2px; accent-color:var(--green); }.meal-builder-save-toggle strong,.meal-builder-save-toggle small { display:block; }.meal-builder-save-toggle strong { font-size:10px; }.meal-builder-save-toggle small { margin-top:2px; color:#78857d; font-size:8px; }
.meal-builder-name { margin:8px 0 0; color:#506158; font-size:9px; }.meal-builder-name input { width:100%; margin-top:6px; padding:10px 11px; border:1px solid #cfdccb; border-radius:10px; font:inherit; }
.meal-builder-message { min-height:16px; margin:8px 0 0; color:#9a4d2f; font-size:9px; }
.diet-meal.completed-meal .meal-card-header { background:linear-gradient(90deg,#fbfef7,#f3fae8); }

.diet-sidebar { display: grid; gap: 14px; }
.beta-feedback-card h3 { margin:4px 0 7px; font-size:17px; }
.beta-feedback-card > p:not(.eyebrow) { margin:0 0 14px; color:var(--muted); font-size:10px; line-height:1.5; }
.beta-feedback-card fieldset { margin:0 0 13px; padding:0; border:0; }
.beta-feedback-card legend,.beta-comment { display:block; margin-bottom:7px; color:#506158; font-size:9px; font-weight:850; }
.beta-rating > div { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.beta-rating label input { position:absolute; opacity:0; pointer-events:none; }
.beta-rating label span { display:grid; place-items:center; height:34px; border:1px solid #cdddc9; border-radius:10px; color:#45604d; background:#fff; font-size:11px; font-weight:850; cursor:pointer; }
.beta-rating label input:checked + span { border-color:var(--green); color:#fff; background:var(--green); }
.beta-issues { display:grid; grid-template-columns:1fr 1fr; gap:7px 9px; }
.beta-issues legend { grid-column:1/-1; }
.beta-issues label { display:flex; align-items:flex-start; gap:6px; color:#58685e; font-size:8px; line-height:1.25; }
.beta-issues input { accent-color:var(--green); }
.beta-comment textarea { width:100%; margin-top:7px; padding:10px; resize:vertical; border:1px solid #cdddc9; border-radius:11px; color:var(--ink); background:#fff; font:inherit; line-height:1.45; }
.beta-feedback-card .form-message { min-height:15px; margin:8px 0 0; color:#28763a; font-size:9px; }
.beta-audit-view.active-view { display:block; animation:enter .3s ease; }
.beta-audit-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; }
.beta-audit-header h2 { font-size:clamp(29px,3vw,40px); }
.beta-audit-header p:last-child { margin:7px 0 0; color:var(--muted); font-size:12px; }
.beta-audit-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.beta-audit-kpi { padding:18px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:var(--shadow); }
.beta-audit-kpi span,.beta-audit-kpi strong { display:block; }.beta-audit-kpi span { color:#748078; font-size:9px; }.beta-audit-kpi strong { margin-top:7px; font-size:24px; }
.beta-funnel-card { margin-bottom:16px; padding:0; overflow:hidden; }
.beta-funnel-card > .section-heading { padding:19px 21px 15px; border-bottom:1px solid var(--line); }
.beta-funnel-card .section-heading h3 { margin:3px 0 4px; font-size:20px; }
.beta-funnel-card .section-heading span { color:var(--muted); font-size:10px; }
.beta-funnel-stages { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:18px 20px; background:linear-gradient(135deg,#f9fcf5,#f2f8e9); }
.beta-funnel-stage { position:relative; display:flex; align-items:center; gap:10px; min-width:0; }
.beta-funnel-stage:not(:last-child)::after { content:""; position:absolute; z-index:0; top:18px; left:40px; right:8px; height:2px; background:#dce7d8; }
.beta-funnel-stage > span { position:relative; z-index:1; display:grid; place-items:center; width:36px; height:36px; flex:0 0 auto; border:2px solid #d3dfce; border-radius:50%; color:#526358; background:#fff; font-size:11px; font-weight:900; }
.beta-funnel-stage.reached > span { border-color:#73bb43; color:#fff; background:linear-gradient(145deg,#8fd94e,#27963b); box-shadow:0 5px 13px rgba(46,140,58,.2); }
.beta-funnel-stage div { position:relative; z-index:1; min-width:0; padding-right:8px; background:#f7fbf2; }
.beta-funnel-stage strong,.beta-funnel-stage small,.beta-funnel-stage em { display:block; }.beta-funnel-stage strong { color:var(--forest); font-size:21px; }.beta-funnel-stage small { overflow:hidden; margin-top:1px; color:#41534a; font-size:9px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }.beta-funnel-stage em { margin-top:2px; color:#839087; font-size:7px; font-style:normal; }
.beta-funnel-people { border-top:1px solid var(--line); }
.beta-funnel-person { display:grid; grid-template-columns:minmax(170px,1.1fr) minmax(210px,.8fr) minmax(190px,1fr); align-items:center; gap:16px; padding:12px 20px; border-bottom:1px solid #edf0eb; }
.beta-funnel-person:last-child { border-bottom:0; }.beta-funnel-identity strong,.beta-funnel-identity small { display:block; }.beta-funnel-identity strong { font-size:10px; }.beta-funnel-identity small { margin-top:2px; color:var(--muted); font-size:8px; }
.beta-funnel-dots { display:flex; align-items:center; gap:7px; }.beta-funnel-dots span { display:grid; place-items:center; width:24px; height:24px; border:1px solid #d9e2d6; border-radius:50%; color:#89968e; background:#f7f9f6; font-size:8px; font-weight:900; }.beta-funnel-dots span.done { border-color:#8bc65f; color:#237c39; background:#eaf6d9; }
.beta-funnel-result { justify-self:end; padding:6px 9px; border-radius:999px; color:#9a5b13; background:#fff0cf; font-size:8px; font-weight:850; text-align:center; }.beta-funnel-result.complete { color:#286c35; background:#eaf6d9; }
.beta-funnel-empty { padding:18px 20px; color:var(--muted); font-size:10px; }
.beta-audit-table-card { padding:0; overflow:hidden; }
.beta-audit-table-card .section-heading { padding:18px 20px; border-bottom:1px solid var(--line); }
.beta-audit-table-wrap { overflow:auto; }
.beta-audit-table { width:100%; min-width:980px; border-collapse:collapse; font-size:10px; }
.beta-audit-table th,.beta-audit-table td { padding:13px 12px; border-bottom:1px solid #edf0eb; text-align:left; vertical-align:top; }
.beta-audit-table th { color:#607067; background:#f7f9f5; font-size:8px; letter-spacing:.05em; text-transform:uppercase; }
.beta-audit-table td strong,.beta-audit-table td small { display:block; }.beta-audit-table td small { margin-top:3px; color:var(--muted); }
.audit-status { display:inline-block; padding:5px 8px; border-radius:999px; color:#286c35; background:#eaf6d9; font-size:8px; font-weight:850; white-space:nowrap; }
.audit-status.attention { color:#9a5b13; background:#fff0cf; }
.audit-metric { display:block; color:#28763a; font-weight:750; }.audit-metric + .audit-metric { margin-top:7px; }.audit-metric.alert { color:#c34935; font-weight:850; }.audit-metric small { color:inherit !important; }
.audit-macro-list { min-width:115px; }
.audit-pending-row { background:#fffbf2; }
.beta-audit-note { margin:12px 2px 0; color:var(--muted); font-size:9px; }
.compact-routine { grid-template-columns:minmax(240px,420px); }
.essential-restrictions { display:grid; grid-template-columns:1.25fr .75fr; gap:14px; margin:14px 0 18px; padding:14px; border:1px solid #dce7d8; border-radius:15px; background:#f7faf4; }
.essential-restrictions fieldset { display:flex; flex-wrap:wrap; align-content:start; gap:8px 12px; margin:0; padding:0; border:0; }
.essential-restrictions legend,.essential-restrictions > label { color:#506158; font-size:10px; font-weight:800; }
.essential-restrictions fieldset label { display:flex; align-items:center; gap:5px; color:#607067; font-size:9px; }
.essential-restrictions input[type="checkbox"] { accent-color:var(--green); }
.essential-restrictions > label input { width:100%; margin-top:7px; padding:10px 12px; border:1px solid #cdddc9; border-radius:10px; background:#fff; }
.diet-target-card h3 { margin: 0 0 10px; font-size: 27px; }
.diet-target-card > p:not(.eyebrow) { color: var(--muted); font-size: 10px; }
.target-progress { overflow: hidden; height: 8px; margin-bottom: 8px; border-radius: 999px; background: #e7ece6; }
.target-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #53ad33, #0f7e4a); }
.diet-target-card dl { display: grid; gap: 10px; margin: 20px 0 0; }
.diet-target-card dl > div { display: flex; justify-content: space-between; gap: 15px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 11px; }
.diet-target-card dt { color: var(--muted); }.diet-target-card dd { margin: 0; font-weight: 800; }
.diet-target-card dl > .diet-macro-row { display:grid; grid-template-columns:1fr auto; gap:7px 12px; }.diet-macro-row > .diet-macro-track { margin:0; grid-column:1/-1; overflow:hidden; height:5px; border-radius:999px; background:#e8ede7; }.diet-macro-row i { display:block; height:100%; border-radius:inherit; background:var(--macro-color); transition:width .3s ease; }.diet-macro-row.protein { --macro-color:#11915b; }.diet-macro-row.carbs { --macro-color:#efa22d; }.diet-macro-row.fat { --macro-color:#e2b229; }.diet-macro-row.fiber { --macro-color:#4f9ee8; }
.diet-macro-row.over-target dd { color:#c94f3e; }.diet-macro-row.over-target i { background:#d95542; }
.shopping-preview h3 { margin: 0; font-size: 15px; }
.shopping-preview ul { display: grid; gap: 9px; margin: 0 0 16px; padding: 0; list-style: none; }
.shopping-preview li { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.shopping-preview li strong { color: var(--forest); }
.shopping-preview .secondary-button { width: 100%; }
.shopping-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }
.shopping-period-control { display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:14px; font-weight:700; }
.shopping-period-control select { min-height:44px; padding:10px 36px 10px 14px; border:1px solid #cbdcc5; border-radius:12px; background:#fff; color:#164d38; font:inherit; }
.shopping-preparation-note { padding:16px; margin:0 0 18px; border:1px solid #e8ddba; border-radius:14px; background:#fffaf0; color:#625434; font-size:13px; line-height:1.6; }
.shopping-header h2 { margin-bottom:7px; font-size:30px; }
.shopping-header > div > p:last-child { color:var(--muted); font-size:12px; }
.shopping-sync-chip { flex:0 0 auto; padding:8px 11px; border-radius:999px; color:#347936; background:#eaf6d9; font-size:10px; font-weight:800; }
.shopping-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.shopping-summary article { display:flex; align-items:center; gap:11px; min-height:82px; padding:15px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow); }
.shopping-summary article > span { display:grid; place-items:center; width:43px; height:43px; flex:0 0 auto; border-radius:13px; background:#eef6e5; font-size:23px; }
.shopping-summary strong,.shopping-summary small { display:block; }.shopping-summary strong { color:var(--forest); font-size:21px; }.shopping-summary small { margin-top:2px; color:var(--muted); font-size:9px; line-height:1.25; }
.shopping-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(240px,.55fr); gap:18px; align-items:start; }
.shopping-list-card .section-heading { margin-bottom:10px; }.shopping-list-card .section-heading h2 { margin-bottom:4px; }.shopping-list-card .section-heading span { color:var(--muted); font-size:10px; }
.shopping-progress-track { overflow:hidden; height:7px; margin-bottom:20px; border-radius:999px; background:#e7ece6; }.shopping-progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#78c842,#2f9838); transition:width .25s ease; }
.shopping-list { display:grid; gap:18px; }.shopping-group { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:#f8faf6; }.shopping-group header { display:flex; align-items:center; gap:9px; padding:12px 14px; border-bottom:1px solid var(--line); }.shopping-group header > span { font-size:20px; }.shopping-group header h3 { flex:1; margin:0; font-size:14px; }.shopping-group header small { color:var(--muted); font-size:9px; }
.shopping-group > div { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; }.shopping-item { position:relative; display:grid; grid-template-columns:25px 38px minmax(0,1fr); align-items:center; gap:9px; min-height:66px; margin:0; padding:10px; border:1px solid #e1e7df; border-radius:12px; background:#fff; cursor:pointer; }.shopping-item input { position:absolute; opacity:0; pointer-events:none; }.shopping-check { display:grid; place-items:center; width:23px; height:23px; border:2px solid #cbd6ca; border-radius:7px; color:transparent; background:#fff; font-size:11px; font-weight:900; }.shopping-food-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#eef5e7; font-size:20px; }.shopping-item-copy { min-width:0; }.shopping-item-copy strong,.shopping-item-copy small { display:block; }.shopping-item-copy strong { color:#34483b; font-size:10px; line-height:1.3; }.shopping-item-copy small { margin-top:4px; color:var(--muted); font-size:8px; line-height:1.35; }.shopping-item.checked { border-color:#b6d59a; background:#f3fae9; }.shopping-item.checked .shopping-check { border-color:var(--green); color:#fff; background:var(--green); }.shopping-item.checked .shopping-item-copy { text-decoration:line-through; opacity:.58; }
.shopping-help-card { position:sticky; top:24px; }.shopping-help-icon { display:grid; place-items:center; width:55px; height:55px; margin-bottom:15px; border-radius:16px; background:#eef6e5; font-size:28px; }.shopping-help-card h3 { margin-bottom:8px; font-size:18px; }.shopping-help-card p,.shopping-help-card li { color:var(--muted); font-size:10px; line-height:1.55; }.shopping-help-card ul { display:grid; gap:7px; padding-left:17px; }.empty-shopping-list { padding:35px 20px; border:1px dashed #bdc9bd; border-radius:13px; color:var(--muted); text-align:center; font-size:11px; }
.nutritionist-note { display: flex; gap: 11px; padding: 17px; border: 1px solid #cfe0ed; border-radius: 16px; background: #edf7ff; }
.nutritionist-note > span { font-size: 25px; }.nutritionist-note strong { color: #255779; font-size: 12px; }.nutritionist-note p { margin: 5px 0 0; color: #496475; font-size: 10px; line-height: 1.45; }

.wide-dialog { width: min(680px, calc(100% - 30px)); }
.equivalence-notice { display: flex; align-items: center; gap: 9px; margin: -8px 0 18px; padding: 11px 13px; border-radius: 11px; color: #52704c; background: #f0f8e3; font-size: 11px; }
.equivalence-notice > span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; color: #fff; background: var(--green); font-weight: 900; }
.equivalence-notice p { margin: 0; }
.swap-options { display: grid; gap: 10px; margin-bottom: 18px; }
.swap-option { display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 12px; padding: 12px; border: 2px solid var(--line); border-radius: 14px; cursor: pointer; transition: .2s ease; }
.swap-option:hover, .swap-option.selected { border-color: #75b745; background: #fbfff4; }
.swap-option input { position: absolute; opacity: 0; pointer-events: none; }
.swap-option-icon { display: grid; place-items: center; width: 48px; height: 48px; overflow:hidden; border-radius: 11px; background: #f0f4eb; font-size: 25px; }
.swap-option strong, .swap-option small { display: block; }.swap-option strong { font-size: 12px; }.swap-option small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.equivalent-chip { padding: 5px 7px; border-radius: 7px; color: #397c31; background: #eaf6d8; font-size: 9px; font-weight: 800; }
#apply-swap:disabled { cursor: not-allowed; opacity: .48; }
.swap-empty-state { display:grid; justify-items:center; gap:9px; padding:28px 20px; border:1px dashed #bfd0b9; border-radius:16px; color:#506158; background:#f8fbf5; text-align:center; }
.swap-empty-state > span { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; color:#2f8f3c; background:#eaf6df; font-size:24px; font-weight:900; }
.swap-empty-state strong { color:#20392c; font-size:15px; }
.swap-empty-state p { max-width:430px; margin:0 0 5px; color:var(--muted); font-size:11px; line-height:1.55; }
.swap-empty-state button { min-width:210px; }

.onboarding-dialog { width: min(880px, calc(100% - 30px)); max-height: 94vh; }
.onboarding-dialog form { height: min(760px, 92vh); min-height: 620px; display: flex; flex-direction: column; }
.onboarding-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.onboarding-top h2 { font-size: 27px; }
.step-progress { overflow: hidden; height: 7px; margin: 20px 0 7px; border-radius: 999px; background: #e5eae4; }
.step-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green), #8fcb48); transition: width .25s ease; }
.step-meta { display: flex; justify-content: space-between; gap: 16px; }
.step-label, .step-title { color: var(--muted); font-size: 10px; font-weight: 750; }
.step-title { color: var(--green); text-transform: uppercase; letter-spacing: .08em; }
.onboarding-step { display: none; min-height: 0; padding: 12px 4px 8px 0; }
.onboarding-step.active { display: block; flex: 1; overflow-y: auto; animation: enter .25s ease; }
.onboarding-step > h3 { margin-bottom: 7px; font-size: 22px; }.onboarding-step > p { color: var(--muted); font-size: 12px; }
.choice-grid { display: grid; gap: 10px; margin-top: 25px; }.objective-grid { grid-template-columns: repeat(3, 1fr); }
.choice-card { position: relative; display: grid; justify-items: center; gap: 7px; min-height: 155px; padding: 22px 15px; border: 2px solid var(--line); border-radius: 17px; cursor: pointer; text-align: center; transition: .2s ease; }
.choice-card:has(input:checked) { border-color: var(--green); background: #f6fce9; box-shadow: 0 9px 20px rgba(40,119,47,.08); }
.choice-card input { position: absolute; opacity: 0; }
.choice-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #6cbc41, #157843); font-size: 25px; font-weight: 900; }
.choice-card strong { font-size: 14px; }.choice-card small { color: var(--muted); font-size: 10px; }
.weight-loss-pace-panel { margin-top:16px; padding:16px 18px; border:1px solid #bcd9aa; border-radius:16px; background:linear-gradient(135deg,#f4faeb,#fff); box-shadow:0 8px 22px rgba(39,112,48,.06); }
.weight-loss-pace-panel[hidden] { display:none; }
.pace-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.pace-heading span { display:block; margin-bottom:4px; color:var(--green); font-size:8px; font-weight:900; letter-spacing:.12em; }
.pace-heading strong { font-size:14px; }
.pace-heading output { display:grid; place-items:center; min-width:72px; height:42px; padding:0 12px; border-radius:13px; color:#fff; background:linear-gradient(135deg,#43aa45,#19783b); font-size:16px; font-weight:900; box-shadow:0 7px 16px rgba(35,128,57,.2); }
.weight-loss-pace-panel input[type="range"] { width:100%; margin:17px 0 8px; accent-color:var(--green); cursor:pointer; }
.pace-scale { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; text-align:center; }
.pace-scale span { color:#244b35; font-size:10px; font-weight:900; }.pace-scale small { display:block; margin-top:2px; color:var(--muted); font-size:7px; font-weight:650; }
.weight-loss-pace-panel > p { margin:13px 0 0; padding-top:11px; border-top:1px solid #dce9d4; color:var(--muted); font-size:9px; line-height:1.5; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 22px; }
.field-grid > label { color: #405248; font-size: 11px; font-weight: 800; }
.field-grid input, .field-grid select { width: 100%; height: 48px; margin-top: 7px; padding: 0 12px; border: 1px solid #cad5ca; border-radius: 11px; color: var(--ink); background: #fff; outline: 0; }
.field-grid input:focus, .field-grid select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(54,161,58,.1); }
.input-with-unit { position: relative; }.input-with-unit span { position: absolute; right: 12px; top: 23px; color: var(--muted); font-size: 11px; }.input-with-unit input { padding-right: 40px; }
.stacked-choices { display: grid; gap: 9px; margin-top: 18px; }
.stacked-choices label { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.stacked-choices label:has(input:checked) { border-color: var(--green); background: #f7fcea; }
.stacked-choices input { accent-color: var(--green); }.stacked-choices strong, .stacked-choices small { display: block; }.stacked-choices strong { font-size: 12px; }.stacked-choices small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.safety-list { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 17px; }
.safety-list label { display: flex; align-items: center; gap: 8px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; font-size: 10px; }.safety-list input, .consent-box input { accent-color: var(--green); }
.consent-box { display: flex; align-items: flex-start; gap: 9px; margin-top: 16px; padding: 13px; border-radius: 11px; background: #f2f5f2; color: var(--muted); font-size: 10px; line-height: 1.4; }
.onboarding-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: auto; padding-top: 20px; }
.onboarding-actions button { min-width: 115px; }
.form-hint { margin-top: 13px; padding: 10px 12px; border-radius: 10px; color: #65746b !important; background: #f4f7f3; }
.onboarding-submit-message { margin: 10px 0 0; padding: 11px 13px; border: 1px solid #e3b1aa; border-radius: 10px; color: #8d3028; background: #fff0ee; font-size: 11px; font-weight: 750; line-height: 1.45; }
.onboarding-submit-message.success { border-color: #a9cf8d; color: #286b32; background: #eff8e5; }
.onboarding-step-message { margin: 10px 0 0; padding: 10px 12px; border: 1px solid #e3b1aa; border-radius: 10px; color: #8d3028; background: #fff0ee; font-size: 11px; font-weight: 750; line-height: 1.4; }
.plan-unavailable-card { display:grid; justify-items:start; gap:10px; padding:28px; border:1px solid #e7c46d; background:#fff9e9; }
.plan-unavailable-card strong { color:#74510d; font-size:18px; }
.plan-unavailable-card p { max-width:620px; color:#76694f; font-size:12px; line-height:1.5; }
.compact-choices { grid-template-columns: 1fr 1fr; }
.routine-fields { margin-top: 13px; gap: 10px; }
.routine-fields input, .routine-fields select { height: 42px; }
.safety-heading { display: flex; align-items: center; gap: 13px; }
.safety-heading > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: #eff8df; font-size: 24px; }
.safety-heading h3 { margin-bottom: 4px; font-size: 22px; }
.safety-heading p { color: var(--muted); font-size: 12px; }
.compact-safety-heading { margin-top:18px; }
.compact-safety-heading > span { width:38px; height:38px; border-radius:12px; font-size:18px; }
.compact-safety-heading h3 { font-size:16px; }
.compact-safety-heading p { max-width:620px; font-size:10px; line-height:1.45; }
.extended-safety label:has(input:checked) { border-color: var(--green); background: #f7fcea; }
.extended-safety .none-risk { grid-column: 1 / -1; border-color: #b9d59f; background: #f6fbe9; }
.review-notice { display: flex; gap: 8px; flex-direction: column; margin-top: 15px; padding: 13px 15px; border-left: 4px solid #edb33c; border-radius: 10px; background: #fff8e7; font-size: 10px; }
.review-notice span { color: #75664c; }
.mounjaro-clinical-details { margin-top:14px; padding:15px; border:1px solid #aecd85; border-radius:14px; background:#f6fbea; }.mounjaro-clinical-details[hidden] { display:none; }.clinical-details-heading { display:flex; align-items:center; gap:10px; }.clinical-details-heading > span { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; color:#fff; background:var(--forest); }.clinical-details-heading strong { display:block; font-size:11px; }.clinical-details-heading p { margin:3px 0 0; color:var(--muted); font-size:9px; }.compact-clinical-fields { margin-top:12px; gap:9px; }.compact-clinical-fields select { height:40px; }.symptom-fieldset { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; padding:0; border:0; }.symptom-fieldset legend { width:100%; margin-bottom:2px; color:#405248; font-size:10px; font-weight:800; }.symptom-fieldset label { margin:0; padding:7px 9px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:8px; font-weight:700; }.symptom-fieldset label:has(input:checked) { border-color:var(--green); background:#f0f8df; }.clinical-boundary { margin:11px 0 0; color:#6f7e73; font-size:8px; line-height:1.45; }
.meal-count-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 20px 0 15px; }
.meal-count-grid label { margin: 0; cursor: pointer; }
.meal-count-grid input { position: absolute; opacity: 0; }
.meal-count-grid label > span { position: relative; display: grid; place-items: center; min-height: 90px; border: 2px solid var(--line); border-radius: 15px; transition: .2s ease; }
.meal-count-grid label:has(input:checked) > span { border-color: var(--green); background: #f6fce9; }
.meal-count-grid strong { font-size: 25px; }.meal-count-grid small { color: var(--muted); font-size: 10px; }
.meal-count-grid em { position: absolute; top: -8px; padding: 4px 8px; border-radius: 999px; color: #fff; background: var(--green); font-size: 8px; font-style: normal; text-transform: uppercase; }
.meal-schedule { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.schedule-row { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.schedule-row span:first-child { font-size: 18px; }.schedule-row label { flex: 1; margin: 0; font-size: 10px; }.schedule-row input { width: 100%; margin-top: 3px; border: 0; color: var(--ink); background: transparent; font-weight: 750; outline: 0; }
.preference-fields { margin-top: 16px; gap: 10px; }
.preference-fields input, .preference-fields select { height: 42px; }
.text-field-stack { display: grid; gap: 10px; margin-top: 12px; }
.text-field-stack label { margin: 0; color: #405248; font-size: 11px; }
.text-field-stack input { width: 100%; height: 42px; margin-top: 6px; padding: 0 12px; border: 1px solid #cad5ca; border-radius: 11px; outline: 0; }
.text-field-stack input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(54,161,58,.1); }
.meal-preference-tabs { display: flex; gap: 7px; overflow-x: auto; margin: 14px 0; padding-bottom: 4px; }
.food-goal-guidance { display:flex; align-items:center; gap:10px; margin-top:14px; padding:11px 13px; border:1px solid #c9dda9; border-radius:12px; color:#49604e; background:linear-gradient(135deg,#f2f9e7,#fff); font-size:9px; line-height:1.4; }
.food-goal-guidance > span { display:grid; place-items:center; flex:0 0 auto; width:31px; height:31px; border-radius:10px; background:#e3f1ca; font-size:17px; }
.food-goal-guidance strong { color:var(--forest); }
.food-group-tabs .meal-tab { padding:11px 15px; }
.meal-tab { flex: 0 0 auto; padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background:#fff; font-size:12px; font-weight:800; }
.meal-tab.active { border-color: var(--green); color: #fff; background: var(--green); }
.meal-tab.complete:not(.active)::after { content: " ✓"; color: var(--green); }
.preference-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; }
.preference-toolbar span { font-size: 15px; font-weight: 850; }.preference-toolbar strong { padding: 5px 8px; border-radius: 999px; color: var(--green); background: #eff8df; font-size: 9px; }
.meal-preference-cards { display:grid; gap:20px; }
.food-preference-subgroup,.taco-food-subgroup { min-width:0; }
.food-subgroup-heading { display:flex; align-items:center; gap:9px; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid #dde6db; }
.food-subgroup-heading > span { display:grid; place-items:center; flex:0 0 auto; width:31px; height:31px; border-radius:10px; background:#edf5e4; font-size:17px; }
.food-subgroup-heading strong,.food-subgroup-heading small { display:block; }
.food-subgroup-heading strong { color:var(--forest); font-size:13px; }
.food-subgroup-heading small { margin-top:2px; color:var(--muted); font-size:9px; font-weight:650; }
.meal-preference-subgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.meal-choice-card { position:relative; display:grid; grid-template-columns:76px 1fr; align-items:center; gap:13px; min-height:116px; margin:0; padding:14px; border:2px solid var(--line); border-radius:16px; cursor:pointer; transition:.2s ease; }
.meal-choice-card:has(input:checked) { border-color: var(--green); background: #f7fcea; }
.meal-choice-card input { position: absolute; opacity: 0; }
.food-choice-emoji { display:grid; place-items:center; width:76px; height:84px; overflow:hidden; border-radius:13px; background:linear-gradient(145deg,#f1f7e9,#e4eedb); font-size:38px; box-shadow:inset 0 0 0 1px rgba(18,75,43,.08); }
.meal-choice-card:has(input:checked) .food-choice-emoji { background:#e2f2c8; }
.food-choice-check { position:absolute; top:7px; right:7px; display:grid; place-items:center; width:18px; height:18px; border:1px solid #cad6c7; border-radius:50%; color:transparent; background:#fff; font-size:10px; font-weight:900; }
.meal-choice-card:has(input:checked) .food-choice-check { border-color:var(--green); color:#fff; background:var(--green); }
.goal-fit-chip { display:inline-flex !important; width:max-content; max-width:100%; margin-top:7px; padding:4px 7px; border-radius:999px; color:#4a7c2d !important; background:#eef7de; font-size:8px !important; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.meal-choice-image { display: block; width: 54px; height: 66px; border-radius: 11px; background: #edf3e8; object-fit: cover; box-shadow: inset 0 0 0 1px rgba(18,75,43,.08); }
.meal-choice-card strong { display:block; padding-right:18px; font-size:14px; line-height:1.3; }.meal-choice-card small { display:block; margin-top:6px; color:var(--muted); font-size:11px; line-height:1.35; }
.meal-choice-card .allergen-line { color: #8b6b35; font-size: 7px; }
.none-of-these { display: flex; align-items: center; gap: 9px; margin-top: 10px; padding: 10px 12px; border: 1px dashed #aebcae; border-radius: 11px; cursor: pointer; }
.none-of-these:has(input:checked) { border-color: var(--green); background: #f7fcea; }.none-of-these input { accent-color: var(--green); }.none-of-these strong, .none-of-these small { display: block; }.none-of-these strong { font-size: 10px; }.none-of-these small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.catalog-note { margin-top: 9px; color: #7a846f !important; font-size: 9px !important; }
.onboarding-review { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 16px; }
.review-card { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.review-card span, .review-card strong { display: block; }.review-card span { margin-bottom: 4px; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }.review-card strong { font-size: 11px; line-height: 1.4; }
.review-card.review-alert { border-color: #efcd81; background: #fff9e9; }.review-card.review-safe { border-color: #b7d99e; background: #f6fbea; }
.calculation-preview { display: contents; }.review-card.calculation-wide { grid-column: 1 / -1; }.calculation-heading { border-color: #a9c998; background: linear-gradient(135deg, #f2f9e9, #fff); }.calculation-heading small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.food-builder-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }.food-builder-header h2 { margin-bottom:6px; font-size:27px; }.food-builder-header p:last-child { color:var(--muted); font-size:12px; }.catalog-review-chip { flex:0 0 auto; padding:8px 11px; border-radius:999px; color:var(--forest); background:#eaf5da; font-size:9px; font-weight:850; }.food-builder-layout { display:grid; grid-template-columns:1fr; gap:18px; align-items:start; }.food-catalog-panel { min-width:0; }.food-search-row { display:flex; align-items:center; gap:12px; }.food-search-row label { flex:1; }.food-search-row input { width:100%; height:50px; padding:0 16px; border:1px solid #cbd7cd; border-radius:13px; outline:0; font-size:15px; }.food-search-row input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(54,161,58,.1); }.food-search-row > span { color:var(--muted); font-size:12px; font-weight:750; }.food-category-filters { display:flex; gap:8px; overflow-x:auto; margin:15px 0; padding-bottom:4px; }.food-filter { flex:0 0 auto; min-height:40px; padding:9px 14px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:#fff; font-size:12px; font-weight:800; }.food-filter.active { border-color:var(--green); color:#fff; background:var(--green); }.taco-food-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-height:700px; overflow:auto; padding-right:4px; }.taco-food-subgroup { grid-column:1/-1; }.taco-food-subgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.taco-food-card { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:13px; align-items:center; min-height:112px; padding:14px; border:1px solid var(--line); border-radius:15px; background:#fff; }.taco-food-card.selected-preference { border-color:#9aca79; background:#f8fdef; }.food-emoji { display:grid; place-items:center; width:72px; height:72px; overflow:hidden; border-radius:14px; background:#f0f6e8; font-size:34px; }.food-visual img { display:block; width:100%; height:100%; object-fit:contain; background:#fff; }.taco-food-card strong,.taco-food-card small { display:block; }.taco-food-card strong { font-size:15px; line-height:1.3; }.taco-food-card small { margin-top:3px; color:var(--muted); font-size:10px; line-height:1.3; }.taco-food-card p { margin:7px 0 0; color:#56705d; font-size:11px; line-height:1.45; }.taco-food-card button { min-height:38px; padding:9px 12px; border:1px solid #9bc580; border-radius:9px; color:var(--green); background:#fff; font-size:11px; font-weight:850; }.taco-food-card button:hover { color:#fff; background:var(--green); }.taco-food-card button:disabled { border-color:#c9dbc0; color:#377a36; background:#e8f5dc; cursor:default; }.empty-food-result,.empty-meal { grid-column:1/-1; padding:25px; border:1px dashed #bdc9bd; border-radius:12px; color:var(--muted); text-align:center; font-size:12px; }.meal-builder-panel { position:sticky; top:25px; }.meal-builder-helper { margin:-5px 0 14px; color:var(--muted); font-size:9px; line-height:1.45; }.meal-builder-items { display:grid; gap:7px; }.meal-builder-item { display:grid; grid-template-columns:30px 1fr 78px 25px; align-items:center; gap:7px; padding:9px; border:1px solid var(--line); border-radius:11px; }.meal-builder-item > span { font-size:18px; }.meal-builder-item strong,.meal-builder-item small { display:block; }.meal-builder-item strong { font-size:9px; }.meal-builder-item small { color:var(--muted); font-size:7px; }.meal-builder-item label { display:flex; align-items:center; gap:3px; height:32px; padding:0 6px; border:1px solid #ccd7cc; border-radius:8px; }.meal-builder-item input { width:48px; border:0; outline:0; font-size:9px; font-weight:800; }.meal-builder-item label span { color:var(--muted); font-size:8px; }.meal-builder-item > button { width:24px; height:24px; border:0; border-radius:50%; color:#997068; background:#fff0ed; }.meal-builder-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:14px 0 9px; }.meal-builder-summary article { padding:10px; border-radius:11px; background:#f3f7ef; }.meal-builder-summary article.partial { background:#fff8e8; }.meal-builder-summary span,.meal-builder-summary strong,.meal-builder-summary small { display:block; }.meal-builder-summary span { color:var(--muted); font-size:7px; text-transform:uppercase; }.meal-builder-summary strong { margin:3px 0; color:var(--forest); font-size:12px; }.meal-builder-summary small { color:#718078; font-size:6px; }.partial-data-legend { margin:0 0 11px; color:#7b755f; font-size:7px; line-height:1.45; }.partial-data-legend strong { color:#d39124; }.source-trace { display:flex; gap:9px; margin-bottom:13px; padding:10px; border-radius:11px; background:#eef6e5; }.source-trace > span { display:grid; place-items:center; flex:0 0 auto; width:23px; height:23px; border-radius:50%; color:#fff; background:var(--green); font-size:9px; }.source-trace p { margin:0; color:#657469; font-size:7px; line-height:1.4; }.source-trace strong { display:block; color:var(--forest); font-size:8px; }
.household-measure-preview { margin-top:3px; color:#357c3d !important; font-weight:750; }

.selected-foods-panel { margin-bottom:18px; padding:20px; }
.selected-foods-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.selected-foods-heading h3 { margin:3px 0 5px; font-size:20px; }
.selected-foods-heading p:last-child { color:var(--muted); font-size:11px; }
.selected-foods-count { flex:0 0 auto; padding:8px 11px; border-radius:999px; color:var(--forest); background:#eaf5da; font-size:10px; font-weight:850; }
.selected-foods-groups { display:grid; gap:16px; }
.selected-food-group > header { display:flex; align-items:center; gap:7px; margin-bottom:8px; color:var(--forest); }
.selected-food-group > header strong { font-size:12px; }
.selected-food-group > header small { display:grid; place-items:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; color:var(--green); background:#eef7e4; font-size:8px; font-weight:850; }
.selected-food-group > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.selected-food-card { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:74px; padding:10px; border:1px solid var(--line); border-radius:13px; background:#fbfdf9; }
.selected-food-image { display:grid; place-items:center; width:52px; height:52px; overflow:hidden; border-radius:11px; background:#f0f6e8; font-size:25px; }
.selected-food-card > span:nth-child(2) { min-width:0; }
.selected-food-card strong,.selected-food-card small { display:block; }
.selected-food-card strong { overflow:hidden; font-size:11px; line-height:1.25; text-overflow:ellipsis; }
.selected-food-card small { margin-top:4px; color:var(--muted); font-size:8px; }
.selected-food-card button { padding:7px 8px; border:0; border-radius:8px; color:#a14d42; background:#fff0ed; font-size:8px; font-weight:850; }
.selected-food-card button:hover { color:#fff; background:#c45a4d; }
.selected-foods-empty { display:flex; align-items:center; gap:12px; padding:17px; border:1px dashed #bfcdbd; border-radius:13px; color:var(--muted); background:#fbfdf9; }
.selected-foods-empty > span { font-size:28px; }
.selected-foods-empty strong { display:block; color:var(--forest); font-size:12px; }
.selected-foods-empty p { margin-top:3px; font-size:9px; }
.selected-foods-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:17px; padding-top:15px; border-top:1px solid var(--line); }
.selected-foods-actions > p { color:var(--muted); font-size:9px; line-height:1.4; }
.selected-foods-actions > p.pending { color:#9a6819; font-weight:750; }
.selected-foods-actions > div { display:flex; gap:8px; }
.selected-foods-actions button { min-height:40px; }

.meal-builder-copy { min-width:0; }
.meal-builder-item .grams-control { display:flex; align-items:center; gap:3px; height:32px; padding:0 6px; border:1px solid #ccd7cc; border-radius:8px; }
.food-swap-control { display:grid !important; gap:3px !important; height:auto !important; margin-top:6px; padding:0 !important; border:0 !important; }
.food-swap-control span { color:#6d7b70; font-size:6px !important; font-weight:750; }
.food-swap-control select { width:100%; min-width:0; height:27px; padding:0 5px; border:1px solid #bcd0b8; border-radius:7px; color:var(--forest); background:#f8fcf4; font-size:7px; }
.no-swap-option { margin-top:5px; font-style:italic; }
.meal-preset-picker { margin:0 0 12px; padding:10px; border-radius:11px; background:#f4f8ef; }.meal-preset-picker > span { display:block; margin-bottom:7px; color:#66756a; font-size:7px; font-weight:800; text-transform:uppercase; }.meal-preset-picker > div { display:grid; grid-template-columns:1fr 1fr; gap:5px; }.meal-preset-picker button { padding:7px 6px; border:1px solid #c6d7bf; border-radius:8px; color:var(--forest); background:#fff; font-size:7px; font-weight:750; text-align:left; }.meal-preset-picker button:hover { border-color:var(--green); background:#f9fff3; }
.meal-nutrient-progress { overflow:hidden; height:5px; margin:7px 0 5px; border-radius:999px; background:rgba(13,65,39,.09); }.meal-nutrient-progress i { display:block; width:calc(var(--meal-progress) * 1%); height:100%; border-radius:inherit; background:var(--nutrient-color,#55a92d); transition:width .3s ease; }.nutrient-energy { --nutrient-color:#55a92d; }.nutrient-protein { --nutrient-color:#11915b; }.nutrient-carbs { --nutrient-color:#efa22d; }.nutrient-fat { --nutrient-color:#e2b229; }.nutrient-fiber { --nutrient-color:#4f9ee8; }.meal-builder-summary article.over-target { box-shadow:inset 0 0 0 1px #e9aa9f; }.meal-builder-summary article.over-target .meal-nutrient-progress i { background:#d95542; }
.meal-builder-actions { display:grid; gap:8px; }
.mobile-nav,.mobile-app-header,.mobile-meals-overview,.mobile-quick-menu { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.achievements-view { padding-bottom:30px; }
.achievements-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.achievements-header h2 { margin:4px 0 6px; font-size:31px; }
.achievements-header p:last-child { color:var(--muted); font-size:13px; }
.achievement-streak-chip { display:grid; grid-template-columns:42px auto; column-gap:10px; align-items:center; min-width:178px; padding:12px 16px; border:1px solid #f1d591; border-radius:16px; background:#fff7df; }
.achievement-streak-chip > span { grid-row:1/3; font-size:30px; }.achievement-streak-chip strong,.achievement-streak-chip small { display:block; }.achievement-streak-chip strong { color:#7f5705; font-size:15px; }.achievement-streak-chip small { color:#9a7b3c; font-size:9px; }
.missions-hero { display:grid; grid-template-columns:96px minmax(0,1fr) 240px; align-items:center; gap:22px; margin-bottom:18px; padding:22px 25px; overflow:hidden; border-radius:22px; color:#fff; background:linear-gradient(125deg,#06452f,#0b7044 68%,#5b9e31); box-shadow:0 18px 40px rgba(7,69,45,.16); }
.missions-mascot { display:grid; place-items:center; width:88px; height:88px; border:3px solid rgba(255,255,255,.35); border-radius:50%; background:rgba(255,255,255,.92); box-shadow:0 10px 24px rgba(0,0,0,.15); }.missions-mascot img { width:76px; height:76px; object-fit:contain; }
.missions-hero .eyebrow { color:#c7ef9b; }.missions-hero h3 { margin:3px 0 7px; font-size:23px; }.missions-hero p:last-child { color:rgba(255,255,255,.78); font-size:11px; line-height:1.5; }
.missions-level-summary { display:grid; gap:5px; padding:15px; border:1px solid rgba(255,255,255,.18); border-radius:15px; background:rgba(255,255,255,.1); }.missions-level-summary strong { font-size:18px; }.missions-level-summary span { color:rgba(255,255,255,.76); font-size:10px; }.missions-level-summary > div { height:7px; margin-top:5px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.2); }.missions-level-summary i { display:block; height:100%; border-radius:inherit; background:#b8e768; }
.missions-page-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); gap:18px; margin-bottom:18px; }.missions-auto-card,.missions-week-card,.medals-section { padding:21px; }.missions-auto-list,.missions-week-list { display:grid; gap:10px; }
.mission-auto-item { display:grid; grid-template-columns:44px minmax(0,1fr) 38px; align-items:center; gap:12px; min-height:78px; padding:12px; border:1px solid var(--line); border-radius:14px; background:#fff; }.mission-auto-item.completed { border-color:#b9daa0; background:#f7fceb; }.mission-auto-item > span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#eef5e7; font-size:22px; }.mission-auto-item strong,.mission-auto-item small { display:block; }.mission-auto-item strong { font-size:12px; }.mission-auto-item small { margin-top:3px; color:var(--muted); font-size:9px; }.mission-auto-item > div > div { height:5px; margin-top:8px; overflow:hidden; border-radius:999px; background:#e8eee7; }.mission-auto-item > div > div i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2d9c43,#8dcd43); }.mission-auto-item > b { display:grid; place-items:center; min-width:32px; height:32px; padding:0 6px; border-radius:50%; color:#55725e; background:#edf2ed; font-size:10px; }.mission-auto-item.completed > b { color:#fff; background:var(--green); font-size:15px; }
.missions-week-card > p { margin:14px 2px 0; color:var(--muted); font-size:9px; line-height:1.45; }.missions-week-card .mission-auto-item { grid-template-columns:38px minmax(0,1fr) 34px; min-height:68px; padding:10px; }.missions-week-card .mission-auto-item > span { width:36px; height:36px; font-size:18px; }
.medals-section .section-heading p:last-child { margin-top:4px; color:var(--muted); font-size:10px; }.medals-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.medal-card { display:grid; grid-template-columns:82px minmax(0,1fr); align-items:center; gap:12px; min-height:126px; padding:13px; border:1px solid var(--line); border-radius:17px; background:#fbfdf9; transition:.2s ease; }.medal-card.unlocked:hover { transform:translateY(-3px); box-shadow:0 12px 26px rgba(8,64,38,.1); }.medal-card.locked { opacity:.82; background:#fcfdfb; }.medal-card.locked .parrot-medal { filter:grayscale(.34) drop-shadow(0 5px 7px rgba(39,74,48,.15)); }.medal-card.locked .parrot-medal img { opacity:.72; }.medal-card strong,.medal-card p,.medal-card small { display:block; }.medal-card strong { font-size:12px; line-height:1.25; }.medal-card p { min-height:31px; margin:5px 0 8px; color:var(--muted); font-size:8px; line-height:1.4; }.medal-card small { margin-top:5px; color:#55735d; font-size:8px; font-weight:800; }.medal-progress { height:5px; overflow:hidden; border-radius:999px; background:#e4ebe3; }.medal-progress i { display:block; height:100%; border-radius:inherit; background:var(--green); }
.parrot-medal { position:relative; display:grid; place-items:center; width:78px; height:86px; overflow:hidden; clip-path:polygon(50% 0,92% 18%,96% 72%,50% 100%,4% 72%,8% 18%); background:linear-gradient(145deg,#80c845,#2b8533); filter:drop-shadow(0 6px 8px rgba(133,86,0,.22)); }.parrot-medal::before { position:absolute; z-index:2; inset:4px; border:2px solid #f8d56a; clip-path:inherit; box-shadow:inset 0 0 0 1px rgba(120,72,0,.28),inset 0 0 7px rgba(255,242,170,.48); content:""; pointer-events:none; }.parrot-medal img { position:relative; z-index:1; width:68px; height:68px; object-fit:contain; transform:scale(.94); filter:drop-shadow(0 4px 4px rgba(0,0,0,.16)); }.parrot-medal > i { position:absolute; z-index:4; right:7px; bottom:10px; display:grid; place-items:center; width:18px; height:18px; border:2px solid #ffe38b; border-radius:50%; color:#fff; background:#19863c; font-size:9px; font-style:normal; }.medal-card.locked .parrot-medal > i { display:none; }
.medal-sun { background:linear-gradient(145deg,#ffd667,#ed9e25); }.medal-sky { background:linear-gradient(145deg,#80d8e8,#3289b8); }.medal-bronze { background:linear-gradient(145deg,#e1a367,#985329); }.medal-silver { background:linear-gradient(145deg,#edf1f2,#87979a); }.medal-gold { background:linear-gradient(145deg,#fff3a2,#f3b400 42%,#9d6200); }.medal-energy { background:linear-gradient(145deg,#ff9c5c,#d4522f); }.medal-violet { background:linear-gradient(145deg,#a990ec,#6651b5); }
.medal-gold::after { position:absolute; z-index:3; inset:-35%; transform:translateX(-70%) rotate(20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent); content:""; animation:goldShine 2.8s ease-in-out infinite; pointer-events:none; }.medal-card.unlocked .medal-gold { animation:goldGlow 1.8s ease-in-out infinite alternate; }
@keyframes goldShine { 0%,35% { transform:translateX(-75%) rotate(20deg); } 70%,100% { transform:translateX(75%) rotate(20deg); } }
@keyframes goldGlow { from { filter:drop-shadow(0 5px 7px rgba(184,119,0,.28)); } to { filter:drop-shadow(0 7px 12px rgba(255,190,0,.72)); } }
@media (prefers-reduced-motion: reduce) { .medal-gold::after,.medal-card.unlocked .medal-gold { animation:none; } }

.meal-food-montage { width:100%; height:100%; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; background:#fff; border-radius:12px; overflow:hidden; }
.meal-food-mini { width:48%; height:48%; display:flex; align-items:center; justify-content:center; font-size:18px; }
.meal-food-mini img { width:100%; height:100%; object-fit:contain; }
.legacy-supper-note { margin:12px 20px; padding:12px; background:#fff8e8; border-radius:12px; color:#6c5724; font-size:12px; line-height:1.5; }
.custom-food-panel { padding:20px; margin-bottom:20px; }
.custom-food-panel > p { font-size:12px; line-height:1.6; }
.custom-food-item { padding:16px 0; border-top:1px solid #e1e9de; }
.custom-food-item small { display:block; margin-top:6px; color:#617166; }
.custom-food-item p, .custom-food-item summary { font-size:12px; line-height:1.6; }
.custom-food-actions { display:flex; gap:10px; margin-top:12px; }
.custom-food-actions button { min-height:44px; padding:8px 16px; background:white; border:1px solid #bad1b5; border-radius:10px; color:#164d38; }
#custom-food-dialog { margin:auto; max-height:90dvh; overflow:auto; }
#custom-food-form input, #custom-food-form select { display:block; width:100%; min-height:44px; border:1px solid #cadcca; border-radius:10px; padding:10px; margin-top:6px; }
.custom-food-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.custom-food-fields label { min-width:0; }
#custom-food-error { color:#b53828; font-size:13px; }
dialog { width: min(430px, calc(100% - 30px)); border: 0; border-radius: 22px; padding: 0; box-shadow: 0 25px 80px rgba(3,35,22,.28); }
#hydration-dialog { margin:auto; max-height:90dvh; overflow:auto; }
.hydration-content { padding:24px; }
.hydration-content p { font-size:12px; line-height:1.6; color:#587064; margin:12px 0; }
.hydration-total { display:flex; flex-direction:column; gap:6px; padding:24px; border-radius:18px; background:#eef8f5; }
.hydration-total strong { font-size:36px; color:#0c6248; }
.hydration-total span { font-size:12px; color:#587064; }
.hydration-amounts { display:flex; gap:8px; margin:16px 0; }
.hydration-amounts button { flex:1; min-height:48px; border:1px solid #a7cdb3; background:#f4faef; color:#164d38; border-radius:12px; font-weight:700; }
.hydration-log { list-style:none; margin:12px 0; padding:0; }
.hydration-log li { display:flex; justify-content:space-between; font-size:12px; padding:8px; border-bottom:1px solid #e8eee8; }
.hydration-policy { padding:12px; border-radius:12px; background:#fff8e8; }
.hydration-content summary { cursor:pointer; font-size:13px; padding:12px 0; font-weight:700; }
#hydration-settings { padding:12px 0; }
#hydration-target { width:100%; min-height:44px; padding:10px; border:1px solid #cadcca; border-radius:10px; }
dialog::backdrop { background: rgba(3,35,22,.46); backdrop-filter: blur(3px); }
dialog form { padding: 25px; }
.dialog-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.dialog-heading h2 { font-size: 25px; }
.close-button { width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--muted); background: #edf0ed; font-size: 23px; }
dialog label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 800; }
.weight-input-wrap { display: flex; align-items: center; gap: 8px; padding: 0 15px; border: 2px solid #cbd8cb; border-radius: 13px; }
.weight-input-wrap:focus-within { border-color: var(--green); box-shadow: 0 0 0 4px rgba(54,161,58,.1); }
.weight-input-wrap input { width: 100%; padding: 14px 0; border: 0; outline: 0; font-size: 22px; font-weight: 800; }
.weight-input-wrap span { color: var(--muted); }
.privacy-note { margin: 12px 0 20px; color: var(--muted); font-size: 11px; }
.full { width: 100%; }
.toast { position: fixed; z-index: 20; right: 25px; bottom: 25px; transform: translateY(120px); padding: 13px 18px; border-radius: 12px; color: #fff; background: var(--forest); box-shadow: 0 12px 35px rgba(0,0,0,.2); font-size: 13px; font-weight: 700; opacity: 0; transition: .3s ease; }
.toast.show { transform: none; opacity: 1; }
.xp-burst { position:fixed; z-index:35; left:50%; top:48%; width:1px; height:1px; pointer-events:none; }.xp-burst span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); padding:10px 17px; border:2px solid #ffe487; border-radius:999px; color:#fff; background:linear-gradient(135deg,#0b7241,#279d45); box-shadow:0 12px 30px rgba(5,75,42,.28); font-size:17px; font-weight:950; white-space:nowrap; animation:xpRise 1.4s ease-out both; }.xp-burst i { position:absolute; width:7px; height:7px; border-radius:50%; background:#ffd43b; animation:xpSpark 1s ease-out both; }.xp-burst i:nth-of-type(1) { --x:-58px;--y:-44px; }.xp-burst i:nth-of-type(2) { --x:58px;--y:-40px; animation-delay:.04s; }.xp-burst i:nth-of-type(3) { --x:-72px;--y:12px; animation-delay:.08s; background:#7cd957; }.xp-burst i:nth-of-type(4) { --x:70px;--y:17px; animation-delay:.12s; background:#ff9f43; }.xp-burst i:nth-of-type(5) { --x:-38px;--y:48px; animation-delay:.16s; }.xp-burst i:nth-of-type(6) { --x:42px;--y:51px; animation-delay:.2s; background:#7cd957; }
.medal-celebration[hidden] { display:none; }.medal-celebration { position:fixed; z-index:50; inset:0; display:grid; place-items:center; padding:20px; opacity:0; background:rgba(2,35,21,.68); backdrop-filter:blur(8px); transition:opacity .25s ease; }.medal-celebration.visible { opacity:1; }.medal-celebration-card { position:relative; width:min(410px,100%); padding:35px 32px 29px; overflow:hidden; border:2px solid #f3ce5d; border-radius:29px; text-align:center; background:radial-gradient(circle at 50% 0,#fffce9,#fff 48%,#f5f9ee); box-shadow:0 32px 90px rgba(0,0,0,.34),0 0 0 7px rgba(255,224,117,.12); transform:translateY(28px) scale(.78); opacity:0; transition:transform .55s cubic-bezier(.2,1.25,.35,1),opacity .25s ease; }.medal-celebration.visible .medal-celebration-card { transform:none; opacity:1; }.medal-celebration-card::before { position:absolute; inset:-70% 28% 60%; transform:rotate(24deg); background:linear-gradient(90deg,transparent,rgba(255,218,88,.36),transparent); content:""; animation:celebrationShine 1.8s .3s ease-out both; }.medal-celebration-card .eyebrow { position:relative; color:#8b6808; letter-spacing:.18em; }.medal-celebration-card .parrot-medal { width:142px; height:158px; margin:15px auto 10px; filter:drop-shadow(0 14px 18px rgba(129,79,0,.28)); animation:medalEntrance .8s .18s cubic-bezier(.18,1.35,.34,1) both; }.medal-celebration-card .parrot-medal::before { inset:5px; border-width:3px; }.medal-celebration-card .parrot-medal img { width:120px; height:120px; transform:scale(.9); }.medal-celebration-card .parrot-medal > i { right:12px; bottom:17px; width:27px; height:27px; font-size:13px; }.medal-celebration-kicker { display:block; color:#d08b12; font-size:11px; font-weight:950; letter-spacing:.17em; }.medal-celebration-card h2 { margin:4px 0 7px; color:var(--forest); font-size:31px; }.medal-celebration-card > p:not(.eyebrow) { max-width:310px; margin:0 auto; color:var(--muted); font-size:12px; line-height:1.55; }.medal-celebration-xp { display:block; width:max-content; margin:14px auto 17px; padding:6px 11px; border-radius:999px; color:#7b5600; background:#fff0ae; font-size:12px; }.medal-celebration-card .primary-button { min-width:210px; }.medal-celebration-close { position:absolute; z-index:4; top:13px; right:13px; display:grid; place-items:center; width:34px; height:34px; border:0; border-radius:50%; color:#68756d; background:#edf2e9; font-size:23px; cursor:pointer; }
.medal-confetti { position:absolute; z-index:51; inset:0; overflow:hidden; pointer-events:none; }.medal-confetti i { position:absolute; top:-8%; left:calc(8% * var(--n)); width:9px; height:17px; border-radius:2px; background:var(--confetti,#f5c542); animation:confettiFall 2.8s calc(.04s * var(--n)) ease-in both; }.medal-confetti i:nth-child(1) { --n:1;--confetti:#f6c744; }.medal-confetti i:nth-child(2) { --n:2;--confetti:#4bbd58; }.medal-confetti i:nth-child(3) { --n:3;--confetti:#ff8a4c; }.medal-confetti i:nth-child(4) { --n:4;--confetti:#f9df69; }.medal-confetti i:nth-child(5) { --n:5;--confetti:#1b9b52; }.medal-confetti i:nth-child(6) { --n:6;--confetti:#ffab43; }.medal-confetti i:nth-child(7) { --n:7;--confetti:#7dd052; }.medal-confetti i:nth-child(8) { --n:8;--confetti:#ffe57b; }.medal-confetti i:nth-child(9) { --n:9;--confetti:#f28b43; }.medal-confetti i:nth-child(10) { --n:10;--confetti:#37a951; }.medal-confetti i:nth-child(11) { --n:11;--confetti:#f1ca3c; }.medal-confetti i:nth-child(12) { --n:12;--confetti:#ff9850; }
@keyframes xpRise { 0% { transform:translate(-50%,5px) scale(.72); opacity:0; } 22% { transform:translate(-50%,-8px) scale(1.08); opacity:1; } 72% { transform:translate(-50%,-26px) scale(1); opacity:1; } 100% { transform:translate(-50%,-48px) scale(.94); opacity:0; } }
@keyframes xpSpark { 0% { transform:translate(0,0) scale(0); opacity:0; } 25% { opacity:1; } 100% { transform:translate(var(--x),var(--y)) scale(.4); opacity:0; } }
@keyframes medalEntrance { 0% { transform:translateY(40px) rotate(-8deg) scale(.3); opacity:0; } 65% { transform:translateY(-8px) rotate(3deg) scale(1.08); opacity:1; } 100% { transform:none; opacity:1; } }
@keyframes celebrationShine { from { transform:translateX(-180%) rotate(24deg); } to { transform:translateX(180%) rotate(24deg); } }
@keyframes confettiFall { 0% { transform:translateY(-10vh) rotate(0); opacity:0; } 12% { opacity:1; } 100% { transform:translateY(110vh) rotate(620deg); opacity:.9; } }

@media (max-width: 1120px) {
  .hero-grid { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .right-column { grid-template-columns: 1fr 1fr; }
  .next-meal-card { grid-row: span 2; }
}

@media (max-width: 820px) {
  body { padding-bottom: 82px; background:#f5f7f2; }
  .app-shell { display: block; }
  .sidebar { display: none; }
  .main-content { padding:0 14px 34px; }
  .mobile-app-header { display:block; margin:0 -14px 17px; padding:17px 16px 23px; color:#fff; background:linear-gradient(145deg,#06452f,#0b7044 76%,#298448); border-radius:0 0 24px 24px; box-shadow:0 13px 30px rgba(4,66,43,.18); }
  .mobile-brand-row { display:flex; align-items:center; justify-content:space-between; gap:14px; }
  .mobile-brand-row > div { display:flex; align-items:center; gap:8px; }
  .mobile-brand { display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; }
  .mobile-brand img { width:38px; height:38px; object-fit:contain; filter:drop-shadow(0 4px 7px rgba(0,0,0,.2)); }
  .mobile-brand strong { font-size:23px; letter-spacing:-.04em; }
  .mobile-header-action,.mobile-header-avatar { position:relative; display:grid; place-items:center; width:39px; height:39px; padding:2px; border:1px solid rgba(255,255,255,.26); border-radius:12px; color:#fff; background:rgba(255,255,255,.1); }
  .mobile-header-action { font-size:22px; }.mobile-header-action i { position:absolute; top:7px; right:8px; width:6px; height:6px; border-radius:50%; background:#ff7d5f; }
  .mobile-header-avatar { overflow:hidden; border-radius:50%; }.mobile-header-avatar img { width:100%; height:100%; object-fit:contain; }
  .mobile-food-search { display:grid; grid-template-columns:24px 1fr 24px; align-items:center; gap:8px; width:100%; min-height:48px; margin-top:15px; padding:0 14px; border:0; border-radius:15px; color:#607067; background:#fff; box-shadow:0 7px 18px rgba(0,0,0,.13); text-align:left; }
  .mobile-food-search > span { color:#2b6f47; font-size:23px; }.mobile-food-search strong { font-size:12px; }.mobile-food-search > i { color:#2f8651; font-size:18px; font-style:normal; text-align:center; }
  .mobile-tip-card { position:relative; display:flex; align-items:center; min-height:78px; margin-top:13px; padding:13px 92px 13px 15px; overflow:hidden; border:1px solid rgba(255,255,255,.3); border-radius:17px; color:#214a35; background:linear-gradient(115deg,#eff8e6,#dff1ce); }
  .mobile-tip-card strong,.mobile-tip-card span { display:block; }.mobile-tip-card strong { font-size:12px; }.mobile-tip-card span { margin-top:4px; color:#63776a; font-size:9px; line-height:1.4; }
  .mobile-tip-card img { position:absolute; right:9px; bottom:-8px; width:78px; height:78px; object-fit:contain; filter:drop-shadow(0 6px 9px rgba(17,72,37,.2)); }
  body[data-active-view="dieta"] .mobile-app-header { margin-bottom:10px; padding:10px 16px; border-radius:0 0 18px 18px; }
  body[data-active-view="dieta"] .mobile-food-search,
  body[data-active-view="dieta"] .mobile-tip-card,
  body[data-active-view="dieta"] .topbar { display:none; }
  .topbar { margin-bottom:14px; padding:0 2px; }
  .topbar .top-actions { display:none; }
  .topbar .eyebrow { display: none; }
  .outline-button { min-height: 38px; padding: 7px 10px; font-size: 10px; }
  h1 { font-size: 25px; }
  .icon-button { display: none; }
  .weekly-planner-grid { grid-template-columns:1fr; }
  .planner-day { grid-template-columns:72px minmax(90px,1fr) 112px; grid-template-areas:"day plan complete"; }
  #view-hoje.active-view { display:flex; flex-direction:column; }
  #view-hoje > .hero-grid { order:1; }
  #view-hoje > .mobile-meals-overview { order:3; }
  #view-hoje > .weekly-card { order:5; }
  #view-hoje > .dashboard-grid { display:contents; }
  #view-hoje .left-column,#view-hoje .right-column,#view-hoje .stats-grid { display:contents; }
  #view-hoje .nutrition-card { order:2; }
  #view-hoje .missions-card { order:4; }
  #view-hoje .weight-card { order:6; }
  #view-hoje .encouragement-card { order:7; margin-top:12px; }
  #view-hoje .next-meal-card { display:none; }
  .hero-grid { grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
  .streak-card { min-height:112px; gap:10px; padding:14px; border-radius:17px; }
  .streak-card > div:nth-child(2) > p:last-child,.leaf-decoration { display:none; }
  .flame-ring { width:48px; height:48px; border-width:3px; font-size:24px; }
  .streak-card .hero-number { font-size:11px; line-height:1.25; }
  .streak-card .hero-number strong { display:block; margin:0; font-size:24px; }
  .level-card { min-height:112px; gap:10px; padding:14px; border-radius:17px; }
  .level-badge { width:46px; height:52px; font-size:21px; }
  .level-title { display:block; }.level-title strong,.level-title span { display:block; }.level-title span { margin-top:3px; font-size:8px; }.level-copy p { display:none; }.level-copy .progress-track { margin-top:9px; }
  .mobile-meals-overview { display:block; margin:0 0 12px; padding:16px; }
  .mobile-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .mobile-section-heading h2 { font-size:19px; }.mobile-section-heading .eyebrow { margin-bottom:3px; font-size:8px; }
  .mobile-section-heading button { padding:5px; border:0; color:#278044; background:transparent; font-size:10px; font-weight:850; }.mobile-section-heading button span { margin-left:3px; font-size:18px; vertical-align:-1px; }
  .mobile-meal-list { position:relative; display:grid; gap:8px; }.mobile-meal-list::before { position:absolute; z-index:0; top:23px; bottom:23px; left:15px; width:2px; background:#dce8d7; content:""; }
  .mobile-meal-list > p { margin:0; color:var(--muted); font-size:10px; }
  .mobile-meal-row { position:relative; z-index:1; display:grid; grid-template-columns:31px 50px minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; min-height:65px; padding:7px 8px 7px 0; border:1px solid #e3e9df; border-radius:13px; color:var(--ink); background:#fff; text-align:left; box-shadow:0 5px 12px rgba(17,52,34,.035); }
  .mobile-meal-step { display:grid; place-items:center; width:22px; height:22px; margin-left:5px; border:2px solid #cfe0c8; border-radius:50%; color:#49705a; background:#fff; font-size:8px; font-weight:900; }.mobile-meal-row.completed .mobile-meal-step { border-color:#45a653; color:#fff; background:#45a653; }
  .mobile-meal-thumb { display:grid; place-items:center; width:50px; height:50px; overflow:hidden; border-radius:11px; background:#f0f5eb; }.mobile-meal-thumb > * { width:100%; height:100%; }.mobile-meal-thumb img { width:100%; height:100%; object-fit:contain; background:#fff; }.mobile-meal-thumb img.mobile-meal-photo { object-fit:cover; }
  .mobile-meal-copy strong,.mobile-meal-copy small { display:block; }.mobile-meal-copy strong { font-size:11px; }.mobile-meal-copy small { max-width:185px; margin-top:3px; overflow:hidden; color:#6f7d74; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-meal-meta { display:flex; gap:5px; margin-top:5px; }.mobile-meal-meta i { padding:3px 5px; border-radius:999px; color:#6e611f; background:#fff3cf; font-size:7px; font-style:normal; font-weight:800; }.mobile-meal-meta i:last-child { color:#28743e; background:#e8f5df; }
  .mobile-meal-arrow { color:#399054; font-size:22px; }
  .card { padding: 17px; border-radius: 16px; }
  .weekly-card { overflow-x: auto; }
  .week-path { min-width: 570px; }
  .mission-list, .stats-grid, .right-column { grid-template-columns: 1fr; }
  .mission { min-height: 75px; }
  .nutrition-card { margin-bottom:12px; }
  .nutrition-bars { grid-template-columns:1fr 1fr; width:100%; gap:13px 10px; }
  .nutrition-bar.energy { grid-column:1/-1; }
  .nutrition-bar-heading { display:block; }.nutrition-bar-heading > div { margin-top:3px; }.nutrition-bar-heading strong { font-size:15px; }
  .next-meal-card { grid-row: auto; }
  .meal-illustration { min-height: 210px; }
  .mobile-nav { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); min-height:74px; padding:5px 6px env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow:0 -8px 24px rgba(8,55,34,.08); backdrop-filter: blur(12px); }
  .mobile-nav-item { display: grid; place-items: center; align-content: center; gap: 2px; border: 0; color: #718077; background: transparent; font-size: 10px; font-weight: 700; }
  .mobile-nav-item span { font-size: 20px; }
  .mobile-nav-item.active { color: var(--forest); }
  .mobile-nav-main { position:relative; align-self:start; width:66px; height:66px; margin:-23px auto 0; border:5px solid #f5f7f2; border-radius:50%; color:#fff; background:linear-gradient(145deg,#3eaa54,#087044); box-shadow:0 8px 18px rgba(7,104,61,.3); }.mobile-nav-main span { font-size:25px; line-height:1; }.mobile-nav-main strong { font-size:8px; }
  .mobile-quick-menu { position:fixed; z-index:19; right:12px; bottom:82px; left:12px; grid-template-columns:repeat(4,1fr); gap:8px; padding:12px; border:1px solid #d9e5d5; border-radius:18px; background:rgba(255,255,255,.98); box-shadow:0 18px 45px rgba(5,52,32,.2); backdrop-filter:blur(14px); }
  .mobile-quick-menu:not([hidden]) { display:grid; }.mobile-quick-menu button { display:grid; place-items:center; gap:5px; min-height:68px; padding:8px 4px; border:0; border-radius:12px; color:#315b43; background:#f0f7e9; }.mobile-quick-menu span { font-size:22px; }.mobile-quick-menu strong { font-size:8px; }
  .toast { left: 16px; right: 16px; bottom: 85px; text-align: center; }
  .plan-document-header { grid-template-columns:55px 1fr; padding:15px; }.plan-document-header > img { width:52px; height:66px; }.plan-document-summary { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; min-width:0; padding:11px 0 0; border-top:1px solid #d5e1d3; border-left:0; text-align:left; }.plan-document-summary small { display:none; }
  #view-dieta.active-view { display:flex; flex-direction:column; }
  #view-dieta > .diet-layout { order:1; }
  #view-dieta > .diet-mode-switch { order:2; margin-top:18px; }
  #view-dieta > .diet-edit-intro { order:3; }
  #view-dieta > .plan-document-header { order:4; margin-top:18px; }
  #view-dieta > .diet-header { order:5; }
  .diet-header { align-items: flex-start; flex-direction:column; }.diet-header-actions { width:100%; align-items:stretch; display:grid; grid-template-columns:1fr 1fr; }.diet-header-actions #print-meal-plan { display:none; }.diet-header-actions #generate-day-draft { grid-column:1/-1; }.diet-status { display: none; }
  .diet-layout { grid-template-columns: 1fr; }
  .diet-mode-switch { grid-template-columns:1fr 1fr; width:100%; }.diet-mode-button { min-height:54px; padding:8px; }.diet-mode-button small { display:none; }
  .shopping-summary { grid-template-columns:1fr 1fr; }.shopping-layout { grid-template-columns:1fr; }.shopping-help-card { position:static; }.shopping-group > div { grid-template-columns:1fr 1fr; }
  .diet-meal { grid-template-columns:62px minmax(0,1fr); grid-template-areas:"time copy" "photo copy" "actions actions"; gap:9px 13px; padding:16px; }
  .meal-timeline::before { left: 37px; }
  .meal-photo { width:48px; height:48px; font-size:25px; }
  .meal-card-actions { grid-template-columns:1fr 1fr; min-width:0; }.complete-meal-button,.swap-button { max-width:none; width:100%; }
  .meal-card-actions .meal-nutrition-summary { grid-column:1/-1; flex-direction:row; justify-content:center; padding-top:6px; }
  .meal-time { padding-top:7px; }.meal-time strong { font-size:16px; }.meal-heading { align-items: flex-start; flex-direction: column; gap: 5px; }.meal-heading h3 { font-size:15px; }.diet-meal-copy > p { font-size:10px; }
  .meal-plan-table { grid-template-columns:1fr; }.meal-plan-column + .meal-plan-column { border-top:1px solid #dfe7dc; border-left:0; }.meal-ingredient-details > summary { font-size:10px; }.meal-ingredient-details li,.meal-plan-column li { grid-template-columns:minmax(0,1fr) minmax(110px,auto) auto; gap:8px; }
  .diet-meal-selector-shell { padding:14px; border-radius:17px; }
  .diet-meal-selector-heading { align-items:flex-start; margin-bottom:11px; }
  .diet-meal-selector-heading > span { max-width:145px; text-align:right; line-height:1.3; }
  .diet-meal-selector { display:flex; overflow-x:auto; padding:1px 1px 5px; scroll-snap-type:x proximity; }
  .diet-meal-tab { min-width:145px; scroll-snap-align:start; }
  .diet-meal.draft-meal { display:block; padding:0; border-radius:19px; }
  .diet-meal.draft-meal[hidden] { display:none !important; }
  .meal-card-header { grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:16px; }
  .meal-card-header .meal-card-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .meal-card-header .meal-builder-button { grid-column:1/-1; width:100%; }
  .meal-card-header .meal-photo { width:48px; height:48px; flex-basis:48px; }
  .meal-card-header .meal-time { padding:0; }.meal-card-header .meal-time strong { font-size:21px; }.meal-card-header .meal-time span { font-size:11px; }
  .meal-macro-overview { margin:14px 14px 0; padding:13px 12px 12px; }
  .meal-macro-rings { grid-template-columns:1fr 1fr; gap:15px 9px; }
  .meal-macro-ring > div { width:72px; height:72px; }
  .meal-macro-ring > div::before { inset:6px; }
  .meal-macro-ring strong { font-size:15px; }
  .meal-card-header .reopen-meal-button { grid-column:1/-1; width:100%; }
  .diet-meal.draft-meal .diet-meal-copy { padding:0 14px 16px; }
  .diet-meal.draft-meal .meal-plan-column li { grid-template-columns:42px minmax(0,1fr) auto auto; grid-template-areas:"visual name swap menu" "visual serving serving serving"; min-height:66px; gap:6px 9px; }
  .diet-mode-view .diet-meal.draft-meal .meal-plan-column li { grid-template-columns:42px minmax(0,1fr) auto; grid-template-areas:"visual name swap" "visual serving serving"; }
  .diet-meal.draft-meal .meal-food-visual { grid-area:visual; width:42px; height:42px; }
  .diet-meal.draft-meal .ingredient-name { grid-area:name; }
  .diet-meal.draft-meal .ingredient-serving { grid-area:serving; justify-self:start; justify-content:flex-start; min-width:0; width:auto; max-width:100%; }
  .diet-meal.draft-meal .ingredient-portion { justify-content:flex-start; padding:8px 10px; text-align:left; }
  .diet-meal.draft-meal .ingredient-grams { min-width:62px; min-height:34px; padding:5px 9px; }
  .diet-meal.draft-meal .ingredient-swap-button { grid-area:swap; min-width:58px; }
  .diet-meal.draft-meal .ingredient-quantity-control { justify-self:end; }
  .diet-meal.draft-meal .ingredient-more-menu { grid-area:menu; }
  .diet-adjustment-bar { align-items:stretch; flex-direction:column; gap:10px; }
  .diet-adjustment-bar > div:last-child { justify-content:flex-end; }
  .meal-builder-dialog form { padding:18px; }.meal-builder-layout { grid-template-columns:1fr; }.meal-builder-groups { max-height:none; }.meal-builder-preview { position:static; order:-1; }.meal-builder-saved { grid-template-columns:1fr; }.meal-builder-foods { grid-template-columns:1fr; }
  .objective-grid, .field-grid, .safety-list, .compact-choices, .meal-schedule { grid-template-columns: 1fr; }
  .choice-card { min-height: 120px; }
  .pace-scale small { display:none; }
  .meal-preference-subgrid { grid-template-columns: 1fr 1fr; }
  .onboarding-dialog form { height: 94vh; min-height: 0; padding: 19px; }
  .training-header { flex-direction:column; }.training-summary-grid { grid-template-columns:1fr 1fr; }.training-hero-card { grid-column:1/-1; }.weekly-planner-grid { grid-template-columns:1fr; }.training-content-grid,.training-side-column { grid-template-columns:1fr; }.quick-workout-footer { grid-template-columns:1fr auto; }.quick-workout-footer .primary-button { grid-column:1/-1; width:100%; }
  .food-builder-header { flex-direction:column; }.selected-food-group > div { grid-template-columns:repeat(2,minmax(0,1fr)); }.food-builder-layout { grid-template-columns:1fr; }.meal-builder-panel { position:static; }.taco-food-list { max-height:none; }
  .profile-data-grid { grid-template-columns:1fr 1fr; }.profile-recalculation-card { align-items:flex-start; flex-direction:column; }.profile-account-card { grid-template-columns:auto 1fr; }.profile-account-card .outline-button { grid-column:1/-1; }
  .achievements-header { align-items:stretch; flex-direction:column; }.achievement-streak-chip { width:max-content; }.missions-hero { grid-template-columns:76px 1fr; }.missions-mascot { width:70px; height:70px; }.missions-mascot img { width:61px; height:61px; }.missions-level-summary { grid-column:1/-1; }.missions-page-grid { grid-template-columns:1fr; }.medals-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 520px) {
  .medals-grid { grid-template-columns:1fr; }.medal-card { grid-template-columns:76px minmax(0,1fr); }.missions-hero { padding:17px; }.missions-hero h3 { font-size:18px; }
}

@media print {
  @page { size:A4; margin:12mm; }
  body { padding:0 !important; color:#111; background:#fff; }
  .app-shell { display:block; }
  .sidebar,.topbar,.mobile-nav,.diet-header,.diet-sidebar,.toast,.swap-button,.complete-meal-button,.ingredient-swap-button { display:none !important; }
  .main-content { padding:0; }
  .view { display:none !important; }
  #view-dieta { display:block !important; }
  .plan-document-header { margin:0 0 8mm; padding:4mm 5mm; border:0; border-bottom:1px solid #b8c1ba; border-radius:0; box-shadow:none; background:#fff; break-inside:avoid; }
  .plan-document-header > img { width:19mm; height:19mm; }
  .plan-document-summary { min-width:48mm; }
  .diet-layout { display:block; }
  .meal-timeline { gap:5mm; }
  .meal-timeline::before,.meal-photo { display:none; }
  .diet-meal { grid-template-columns:25mm minmax(0,1fr); grid-template-areas:none; gap:4mm; min-height:0; padding:0; border:1px solid #cbd1cc; border-radius:0; box-shadow:none; break-inside:avoid; }
  .meal-time,.diet-meal-copy,.meal-card-actions { grid-area:auto; }
  .diet-meal.current-meal { border:1px solid #cbd1cc; background:#fff; }
  .meal-time { padding:4mm 2mm; background:#edf0ed; }
  .meal-time strong { color:#111; font-size:13pt; }.meal-time span { color:#555; font-size:8pt; }
  .diet-meal-copy { padding:4mm 4mm 4mm 0; }
  .meal-heading h3 { font-size:12pt; }.diet-meal-copy > p { margin:1.5mm 0 3mm; color:#555; font-size:8pt; }
  .draft-chip,.done-chip,.current-chip { display:none; }
  .meal-ingredient-details { display:block; margin:0 0 3mm; border-color:#ccd2cd; border-radius:0; background:#fff; }
  .meal-ingredient-details > summary { display:none; }
  .meal-ingredient-details > *:not(summary) { display:block; }
  .meal-plan-column { padding:3mm; }.meal-plan-column li,.meal-ingredient-details li { min-height:0; padding:1.5mm 0; font-size:8pt; }.meal-plan-note { padding:2mm 3mm; font-size:7pt; }
  .meal-nutrient-orb { width:auto; height:auto; flex:0 0 auto; padding:1.5mm 2mm; border-radius:2mm; box-shadow:none; }
  .meal-nutrient-orb strong,.meal-nutrient-orb small { display:inline; max-width:none; margin:0; color:#333; font-size:7pt; }
  .meal-card-actions { grid-column:2; display:flex; flex-wrap:wrap; }
  .meal-card-actions .meal-nutrition-summary { flex-direction:row; padding:0; }
}

@media (max-width: 600px) {
  .main-content { padding-top: 18px; }
  .avatar { width: 40px; height: 40px; }
  .streak-card { align-items: flex-start; gap: 14px; }
  .streak-card p:last-child { display: none; }
  .hero-grid .level-card { min-height: 102px; }
  .section-heading { align-items: flex-start; }
  .xp-chip { display: none; }
  .nutrition-card .section-heading { align-items:flex-start; flex-direction:column; gap:6px; }
  .meal-count-grid { gap: 6px; }
  .meal-count-grid label > span { min-height: 76px; }
  .meal-preference-subgrid, .onboarding-review { grid-template-columns: 1fr; }
  .meal-choice-card { grid-template-columns:72px minmax(0,1fr); min-height:108px; padding:12px; }
  .food-choice-emoji { width:72px; height:78px; }
  .training-summary-grid,.workout-fields { grid-template-columns:1fr; }.training-hero-card { min-height:145px; }.weekly-planner-grid { grid-template-columns:1fr; }.planner-day { width:100%; grid-template-columns:72px minmax(0,1fr); grid-template-areas:"day plan" "complete complete"; gap:9px; padding:12px; }.planner-day header { height:auto; padding:0 8px 0 0; border-right:1px solid var(--line); border-bottom:0; }.planner-complete { width:100%; min-width:0; }.planner-legend p { width:100%; margin-left:0; }.quick-workout-footer { grid-template-columns:1fr; }.quick-workout-footer .primary-button { grid-column:auto; min-width:0; width:100%; }.workout-options label { right:auto; left:0; }.modality-card { flex:1 1 calc(50% - 8px); }
  .taco-food-list,.taco-food-subgrid { grid-template-columns:1fr; }.meal-builder-summary { grid-template-columns:1fr 1fr; }.mobile-nav-item { font-size:8px; }
  .selected-foods-heading,.selected-foods-actions { align-items:flex-start; flex-direction:column; }.selected-food-group > div { grid-template-columns:1fr; }.selected-foods-actions > div { display:grid; width:100%; grid-template-columns:1fr; }.selected-food-card { grid-template-columns:52px minmax(0,1fr) auto; }
  .onboarding-actions button { min-width: 0; flex: 1; }
  .shopping-header { flex-direction:column; gap:10px; }.shopping-header h2 { font-size:27px; }.shopping-sync-chip { align-self:flex-start; }.shopping-group > div { grid-template-columns:1fr; }.shopping-item { min-height:72px; }.shopping-summary { gap:8px; }.shopping-summary article { min-height:72px; padding:11px; }.shopping-summary article > span { width:38px; height:38px; font-size:20px; }
  .diet-header { gap:14px; }
  .diet-header-actions { gap:8px; }
  .diet-header-actions .outline-button { padding-inline:8px; }
  .diet-meal { grid-template-columns:52px minmax(0,1fr); grid-template-areas:"time copy" "photo copy" "actions actions"; gap:8px 11px; min-height:0; padding:13px; border-radius:18px; }
  .meal-timeline::before { left:31px; }
  .meal-time { grid-area:time; padding-top:4px; }
  .meal-time strong { font-size:16px; }
  .meal-time span { font-size:9px; line-height:1.25; }
  .meal-photo { width:44px; height:44px; border-radius:13px; font-size:23px; }
  .diet-meal-copy { grid-area:copy; }
  .meal-plan-column li { grid-template-columns:minmax(0,1fr) auto; }
  .ingredient-portion { white-space:normal; }
  .ingredient-swap-button { grid-column:1/-1; width:100%; min-height:34px; }
  .meal-heading { margin-bottom:8px; }
  .meal-heading h3 { font-size:17px; line-height:1.2; }
  .meal-card-actions { grid-area:actions; grid-template-columns:1fr; }
  .meal-ingredient-details { margin-bottom:10px; }
  .meal-ingredient-details > summary { padding:10px; font-size:11px; }
  .meal-plan-column { padding:10px; }
  .meal-plan-column li,.meal-ingredient-details li { grid-template-columns:1fr; gap:5px; min-height:0; padding:10px; }
  .ingredient-name { overflow-wrap:anywhere; }
  .ingredient-portion { justify-content:flex-start; flex-wrap:wrap; text-align:left; white-space:normal; }
  .ingredient-portion strong { font-size:12px; }
  .ingredient-portion small { font-size:9px; }
  .meal-meta { gap:6px; }
  .meal-nutrient-orb { width:52px; height:52px; flex-basis:52px; }
  .meal-nutrient-orb strong { font-size:9.5px; }
  .meal-nutrient-orb small { max-width:47px; font-size:6.2px; }
  .complete-meal-button,.swap-button { min-height:42px; }
  .profile-header { flex-direction:column; gap:10px; }.profile-login-notice { grid-template-columns:auto 1fr; padding:18px; }.profile-login-notice .primary-button { grid-column:1/-1; }.profile-data-grid { grid-template-columns:1fr; }.profile-data-card { min-height:88px; }.profile-recalculation-card .primary-button { width:100%; }.profile-account-card { padding:15px; }
  .beta-audit-header { flex-direction:column; }.beta-audit-summary { grid-template-columns:1fr 1fr; }.beta-audit-kpi:last-child { grid-column:1/-1; }.beta-funnel-card { overflow:visible; padding:0; }.beta-funnel-stages { grid-template-columns:1fr; gap:10px; padding:14px; }.beta-funnel-stage:not(:last-child)::after { top:34px; bottom:-12px; left:17px; width:2px; height:auto; }.beta-funnel-stage div { background:transparent; }.beta-funnel-person { grid-template-columns:1fr auto; gap:8px 12px; padding:12px 14px; }.beta-funnel-dots { justify-self:end; }.beta-funnel-result { grid-column:1/-1; justify-self:start; }.beta-issues { grid-template-columns:1fr; }.beta-issues legend { grid-column:auto; }.essential-restrictions { grid-template-columns:1fr; }
  .medal-celebration-card { padding:31px 20px 24px; border-radius:23px; }.medal-celebration-card .parrot-medal { width:122px; height:136px; }.medal-celebration-card .parrot-medal img { width:103px; height:103px; }.medal-celebration-card h2 { font-size:26px; }.medal-celebration-card .primary-button { width:100%; }
}

@media (max-width: 820px) {
  .diet-mode-view .diet-meal.draft-meal .meal-plan-column li {
    grid-template-columns:42px minmax(0,1fr) 82px;
    grid-template-areas:
      "visual name swap"
      "visual portion grams";
    align-items:center;
    column-gap:9px;
    row-gap:7px;
    padding:11px 10px;
  }
  .diet-mode-view .diet-meal.draft-meal .ingredient-serving { display:contents; }
  .diet-mode-view .diet-meal.draft-meal .ingredient-portion {
    grid-area:portion;
    width:100%;
    min-height:36px;
    box-sizing:border-box;
    justify-content:center;
    padding:7px 9px;
    text-align:center;
  }
  .diet-mode-view .diet-meal.draft-meal .ingredient-grams {
    grid-area:grams;
    justify-self:stretch;
    width:100%;
    min-width:0;
    min-height:36px;
    box-sizing:border-box;
    padding:6px 5px;
  }
  .diet-mode-view .diet-meal.draft-meal .ingredient-swap-button {
    grid-area:swap;
    justify-self:stretch;
    width:100%;
    min-width:0;
    min-height:38px;
  }
  .diet-mode-view .meal-card-header { padding-right:9px; }
  .diet-mode-view .meal-card-header .meal-card-actions {
    grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
    gap:9px;
    padding-left:46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .medal-celebration { backdrop-filter:none; }.medal-celebration-card { transform:none; opacity:1; }.medal-confetti,.xp-burst i { display:none; }
}
.local-file-gate {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(7, 43, 30, 0.78);
  backdrop-filter: blur(8px);
}

.local-file-card {
  width: min(520px, 100%);
  padding: clamp(28px, 6vw, 48px);
  border: 1px solid #cfe3c5;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(3, 34, 23, 0.28);
  text-align: center;
}

.local-file-icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  border-radius: 22px;
  background: #edf8df;
  font-size: 34px;
}

.local-file-card h1 {
  margin: 8px 0 14px;
  color: #14241d;
  font-size: clamp(25px, 5vw, 36px);
  line-height: 1.08;
}

.local-file-card p {
  margin: 0 auto 24px;
  color: #637169;
  font-size: 16px;
  line-height: 1.55;
}

.local-file-open {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  text-decoration: none;
}

.local-file-card small {
  display: block;
  margin-top: 16px;
  color: #7b877f;
  line-height: 1.4;
}

/* Catálogo de preferências: nesta etapa o paciente apenas escolhe alimentos. */
.taco-food-card {
  grid-template-columns: 88px minmax(0, 1fr) auto;
  gap: 16px;
  min-height: 122px;
  padding: 16px;
}

.taco-food-card .food-emoji {
  width: 88px;
  height: 88px;
  border-radius: 17px;
  font-size: 40px;
}

.food-selection-name strong {
  font-size: 17px;
  line-height: 1.25;
}

.food-objective-badge {
  display: inline-flex !important;
  width: max-content;
  max-width: 100%;
  margin-top: 8px !important;
  padding: 5px 8px;
  border-radius: 999px;
  color: #3f732c !important;
  background: #eef7de;
  font-size: 9px !important;
  font-weight: 850;
}

.taco-food-card button:disabled {
  border-color: #d5ddd3;
  color: #77847b;
  background: #f1f4f0;
  cursor: not-allowed;
}

.taco-food-card button {
  min-height: 42px;
  padding: 10px 15px;
  font-size: 12px;
}

@media (max-width: 620px) {
  .taco-food-card {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding: 13px;
  }

  .taco-food-card .food-emoji {
    width: 76px;
    height: 76px;
  }

  .taco-food-card button {
    grid-column: 1 / -1;
    width: 100%;
  }
}

/* Agenda de treinos simplificada */
.training-simple-summary { display:grid; grid-template-columns:repeat(3,minmax(120px,auto)) minmax(240px,1fr); align-items:center; gap:0; padding:18px 22px; }
.training-simple-summary > div { padding:0 20px; border-right:1px solid var(--line); }
.training-simple-summary > div:first-child { padding-left:0; }
.training-simple-summary > div:last-child { padding-right:0; border-right:0; }
.training-simple-summary span,.training-simple-summary strong { display:block; }
.training-simple-summary span { color:var(--muted); font-size:9px; }
.training-simple-summary strong { margin-top:4px; color:#0b5037; font-size:20px; }
.training-summary-progress i { display:block; height:7px; margin-top:9px; overflow:hidden; border-radius:999px; background:#e7ede5; }
.training-summary-progress b { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#37a64a,#8bcf57); transition:width .25s ease; }
.training-checklist { margin-top:16px; }
.training-checklist .weekly-planner-grid { display:grid; grid-template-columns:1fr; gap:8px; }
.training-checklist .planner-day { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:18px; padding:12px 14px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.training-checklist .planner-day.planned { border-color:#a9ce8e; background:#fbfef8; }
.training-checklist .planner-day.completed { border-color:#4fa45a; background:#f3faec; }
.training-checklist .planner-day.today { box-shadow:inset 4px 0 #63b75e; }
.training-checklist .planner-day header { height:100%; padding:0 14px 0 0; border:0; border-right:1px solid var(--line); }
.training-checklist .planner-check { cursor:pointer; }
.training-checklist .planner-check > span strong,.training-checklist .planner-check > span small { display:block; }
.training-checklist .planner-check > span strong { color:var(--ink); font-size:12px; }
.training-checklist .planner-check > span small { margin-top:2px; color:var(--muted); font-size:8px; }
.planner-day-details { display:none; grid-template-columns:1.2fr .8fr .8fr .9fr 1.15fr auto; align-items:end; gap:8px; }
.planner-day.planned .planner-day-details { display:grid; }
.planner-day-details > label:not(.planner-complete) { min-width:0; color:#5e7065; font-size:8px; font-weight:800; }
.planner-day-details > label > span { display:block; margin:0 0 5px; }
.training-checklist .planner-day .planner-modality,.training-checklist .planner-day .planner-time { display:block; }
.planner-day-details select,.planner-day-details input[type="time"] { width:100%; height:38px; min-width:0; padding:0 9px; border:1px solid #d4ddd2; border-radius:10px; color:var(--ink); background:#fff; font-size:9px; }
.training-checklist .planner-complete { min-width:118px; height:38px; margin:0; }
.training-checklist .planner-day.completed .planner-complete { color:#fff; background:var(--green); }
.training-checklist-actions { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin-top:14px; }
.training-checklist-actions p { margin:0 auto 0 0; color:var(--muted); font-size:9px; }
.training-checklist-actions .primary-button { min-width:150px; }
.training-nutrition-card { display:grid; grid-template-columns:52px 1fr; align-items:center; gap:15px; margin-top:16px; padding:20px 22px; border-color:#bedba8; background:linear-gradient(135deg,#fbfff7,#f1f8e7); }
.training-nutrition-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; color:#17633e; background:#e4f2d7; font-size:25px; }
.training-nutrition-card h2 { margin:2px 0 5px; font-size:17px; }
.training-nutrition-card p:last-of-type { margin:0; color:#345846; font-size:11px; line-height:1.5; }
.training-nutrition-card small { display:block; margin-top:5px; color:var(--muted); font-size:9px; line-height:1.45; }
.training-meal-role { display:inline-flex; width:max-content; margin-top:5px; padding:4px 7px; border-radius:999px; color:#16623c; background:#e4f3d6; font-size:7px; font-style:normal; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.training-meal-role.post { color:#285287; background:#e8f0fb; }

@media (max-width: 1050px) {
  .training-simple-summary { grid-template-columns:repeat(3,1fr); }
  .training-summary-progress { grid-column:1/-1; margin-top:15px; padding:15px 0 0!important; border-top:1px solid var(--line); border-right:0!important; }
  .planner-day-details { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .training-header { gap:10px; }
  .training-simple-summary { grid-template-columns:repeat(3,1fr); padding:15px; }
  .training-simple-summary > div { padding:0 10px; text-align:center; }
  .training-simple-summary strong { font-size:17px; }
  .training-checklist { padding:15px; }
  .training-checklist .planner-day { grid-template-columns:1fr; gap:10px; padding:12px; }
  .training-checklist .planner-day header { padding:0 0 9px; border-right:0; border-bottom:1px solid var(--line); }
  .planner-day-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .training-checklist .planner-complete { grid-column:1/-1; width:100%; }
  .training-checklist-actions { align-items:stretch; flex-direction:column; }
  .training-checklist-actions .primary-button { width:100%; }
  .training-nutrition-card { grid-template-columns:42px 1fr; padding:16px; }
  .training-nutrition-icon { width:42px; height:42px; border-radius:13px; font-size:20px; }
}

/* Área autenticada de progresso. */
.progress-view {
  padding-bottom: 48px;
}

.progress-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.progress-header h2 {
  margin: 6px 0 5px;
  color: #17251d;
  font-size: clamp(30px, 4vw, 42px);
  letter-spacing: -0.045em;
}

.progress-header > div > p:last-child {
  color: #68776e;
  font-size: 15px;
}

.progress-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, .9fr);
  gap: 18px;
}

.weight-checkin-card {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border: 1px solid #b9d8aa;
  border-radius: 19px;
  background: linear-gradient(120deg, #eff8df, #fff);
}
.weight-checkin-card.due { border-color:#e6bd62; background:linear-gradient(120deg,#fff6d9,#fff); }
.weight-checkin-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:15px; color:#fff; background:#2e914a; font-size:23px; }
.weight-checkin-card.due .weight-checkin-icon { background:#d69722; }
.weight-checkin-card span,.weight-checkin-card strong,.weight-checkin-card p { display:block; }
.weight-checkin-card span { margin-bottom:3px; color:#68806d; font-size:9px; font-weight:900; letter-spacing:.12em; }
.weight-checkin-card strong { color:var(--forest); font-size:17px; }
.weight-checkin-card p { margin:4px 0 0; color:#65746b; font-size:11px; line-height:1.45; }
.weight-guidance { margin-top:14px; padding:14px 15px; border-radius:13px; color:#5e7065; background:#f3f8ee; }
.weight-guidance strong { display:block; color:var(--forest); font-size:12px; }
.weight-guidance p { margin:6px 0 0; font-size:10px; line-height:1.5; }

.progress-chart-card,
.progress-summary-card {
  min-height: 390px;
  padding: 24px;
}

.progress-chart-card .section-heading > span {
  padding: 7px 10px;
  border-radius: 999px;
  color: #357443;
  background: #edf6e8;
  font-size: 11px;
  font-weight: 800;
}

.progress-chart-wrap {
  position: relative;
  min-height: 270px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #f6faf5);
}

#progress-chart {
  display: block;
  width: 100%;
  height: 270px;
}

.progress-grid line {
  stroke: #e4ebe3;
  stroke-width: 1;
}

.progress-chart-area {
  fill: rgba(38, 139, 84, .09);
}

.progress-chart-line {
  fill: none;
  stroke: #2e8c5e;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 5;
}

#progress-chart-points circle {
  fill: #fff;
  stroke: #21764c;
  stroke-width: 4;
}

.progress-chart-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 25px;
  color: #758178;
  text-align: center;
  font-size: 13px;
}

.progress-chart-empty[hidden] {
  display: none;
}

.progress-chart-footer {
  display: flex;
  justify-content: space-between;
  padding-top: 7px;
  color: #7a877f;
  font-size: 10px;
}

.progress-summary-card dl {
  display: grid;
  gap: 10px;
  margin-top: 17px;
}

.progress-summary-card dl > div {
  display: grid;
  grid-template-columns: 1fr auto 32px;
  align-items: center;
  gap: 10px;
  min-height: 53px;
  padding: 0 12px 0 15px;
  border-radius: 15px;
  background: #f5f8f4;
}

.progress-summary-card dt {
  color: #65766c;
  font-size: 12px;
}

.progress-summary-card dd {
  margin: 0;
  color: #153123;
  font-size: 14px;
  font-weight: 850;
}

.progress-summary-card dl span {
  text-align: center;
  font-size: 17px;
}

.progress-summary-card .progress-positive {
  color: #24734a;
}

.progress-status {
  margin-top: 15px;
  color: #758178;
  font-size: 11px;
  line-height: 1.45;
}

#target-weight-dialog {
  width: min(480px, calc(100% - 28px));
  margin: auto;
  border: 0;
  border-radius: 24px;
  box-shadow: 0 25px 80px rgba(4, 45, 28, .3);
}

#target-weight-dialog::backdrop {
  background: rgba(3, 35, 22, .55);
  backdrop-filter: blur(4px);
}

#target-weight-form {
  padding: 28px;
}

@media (max-width: 900px) {
  .progress-layout {
    grid-template-columns: 1fr;
  }

  .progress-chart-card,
  .progress-summary-card {
    min-height: 0;
  }
}

@media (max-width: 620px) {
  .progress-header {
    align-items: stretch;
    flex-direction: column;
  }

  .progress-header .primary-button {
    width: 100%;
  }

  .progress-chart-card,
  .progress-summary-card {
    padding: 17px;
  }

  .weight-checkin-card { grid-template-columns:44px 1fr; padding:15px; }
  .weight-checkin-icon { width:44px; height:44px; border-radius:13px; font-size:19px; }
  .weight-checkin-card .primary-button { grid-column:1/-1; width:100%; }

  .progress-chart-wrap,
  #progress-chart {
    min-height: 220px;
    height: 220px;
  }
}
/* Weight progress: clear hierarchy and touch-friendly tracking. */
.progress-highlight { display:flex; justify-content:space-between; gap:20px; padding:24px; margin-bottom:24px; border:1px solid #dce8d7; border-radius:20px; background:linear-gradient(120deg,#f3f9ed,#fff); }
.progress-highlight > div { display:flex; flex-direction:column; gap:8px; min-width:0; }
.progress-highlight span { font-size:12px; color:#62796b; }
.progress-highlight strong { font-size:36px; line-height:1.15; letter-spacing:-1px; color:#084d35; }
.progress-highlight small { font-size:11px; color:#62796b; line-height:1.5; }
.progress-goal-highlight { text-align:right; justify-content:center; }
.progress-goal-highlight strong { font-size:24px; }
.progress-chart-note { color:#697d70; font-size:12px; line-height:1.6; margin:18px 0 0; }
.progress-history-title { font-size:14px; margin:24px 0 10px; }
.progress-history { list-style:none; padding:0; margin:0; }
.progress-history li { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid #edf1eb; color:#607367; font-size:13px; }
.progress-history strong { color:#164d38; }
.weight-card .weight-register-button { min-height:44px; padding:0 14px; font-size:12px; }
.weight-card .weight-summary strong { font-size:36px; }
.progress-summary-card .progress-status { padding:14px; border-radius:12px; background:#f3f7f0; line-height:1.6; }
@media (max-width:620px) {
  .progress-highlight { padding:18px; gap:14px; }
  .progress-highlight strong { font-size:30px; }
  .progress-goal-highlight { max-width:45%; }
  .progress-goal-highlight strong { font-size:22px; }
  .progress-highlight small { font-size:11px; }
}

#health-sync-status { margin: 0; padding: 8px 20px; background: #edf5ed; color: #24482f; font-size: 12px; overflow-wrap: anywhere; }
#health-sync-status + button { margin: 8px 20px; }
#health-legacy-notice { display:block; padding:8px 20px; background:#edf5ed; color:#24482f; font-size:12px; overflow-wrap:anywhere; }

/* Stable neutral fallback for unresolved whole-meal photos. */
.meal-image-fallback { display:grid; place-items:center; width:100%; height:100%; min-width:0; min-height:0; font-size:22px; background:#f0f5eb; border-radius:inherit; }

/* Confirmed manual plans use the existing daily meal cards and navigation. */
body[data-manual-plan="true"] #generate-day-draft,
body[data-manual-plan="true"] .diet-status,
body[data-manual-plan="true"] #beta-feedback-card,
body[data-manual-plan="true"] #beta-audit-nav,
body[data-manual-plan="true"] #diet-draft-warning,
body[data-manual-plan="true"] .diet-adjustment-bar {display:none!important}

/* Contextual private library: existing PapaDiet tokens and card language. */
#custom-food-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}#custom-food-list .custom-food-item{display:block;padding:18px;min-width:0;border:1px solid var(--line);border-radius:18px;background:#fff}#custom-food-list .custom-food-item>div>strong{font-size:17px;display:block}#custom-food-list small{display:block;color:var(--muted);margin-top:5px}#custom-food-list .custom-food-energy{font-size:24px;color:var(--forest);font-weight:800;margin:12px 0}#custom-food-list .custom-food-energy small{display:inline;font-size:12px;font-weight:500}.custom-food-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.custom-food-chips span{font-size:12px;border-radius:16px;padding:5px 9px;background:#f0f7e9}.custom-food-actions{display:flex!important;justify-content:space-between;align-items:center;margin-top:12px}.custom-food-menu{position:relative}.custom-food-menu summary{cursor:pointer;font-size:22px;list-style:none;padding:4px 12px}.custom-food-menu button{position:absolute;right:0;bottom:100%;background:white;box-shadow:0 4px 18px #18372020;z-index:3}.custom-food-search-label{display:block;font-size:13px;margin:14px 0 6px}#custom-food-search{width:min(100%,420px);padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit}#custom-food-status:empty{display:none}#custom-food-retry[hidden]{display:none}@media(max-width:600px){#custom-food-list{grid-template-columns:minmax(0,1fr)}.custom-food-panel .section-heading{gap:10px;flex-wrap:wrap}.custom-food-panel .primary-button{font-size:13px}}

/* The private-food page is a library; legacy automatic preferences stay outside this flow. */
#view-alimentos > .selected-foods-panel{display:block} #view-alimentos > .food-builder-layout{display:grid}

/* Assessment feedback: keep existing form layout and expose precise errors. */
.assessment-preference-counters {display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
.assessment-preference-counters span {padding:6px 10px;border:1px solid currentColor;border-radius:12px;}
[data-assessment-invalid] {outline:2px solid #b04424;outline-offset:3px;}

/* Guided preferences only: solid fallback, inexpensive translucent surfaces. */
.guided-onboarding {max-height:calc(100dvh - 24px);}
.guided-onboarding form {height:min(820px,calc(100dvh - 24px));min-height:0;overflow:hidden;}
.guided-onboarding .onboarding-top,.guided-onboarding .step-progress,.guided-onboarding .step-meta,.guided-onboarding .onboarding-actions {flex-shrink:0;}
.guided-onboarding .onboarding-step.active {overflow-y:auto;overscroll-behavior:contain;padding-bottom:20px;}
.guided-onboarding .onboarding-actions {display:flex;flex-wrap:wrap;gap:8px;background:#fff;padding-top:12px;}
.guided-onboarding .onboarding-actions button {flex:1;min-width:90px;padding:12px 8px;font-size:13px;}
.guided-onboarding .meal-preference-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.guided-onboarding .guided-food-card {position:relative;display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;padding:10px;border:1px solid #d1e1d6;border-radius:18px;background:#f7faf8;background:rgba(248,252,249,.93);box-shadow:0 3px 12px #073f2c0a;cursor:pointer;}
.guided-onboarding .guided-photo {display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:#eaf0e9;}
.guided-onboarding .guided-photo .food-visual,.guided-onboarding .guided-photo img {display:flex;width:100%;height:100%;align-items:center;justify-content:center;object-fit:contain;}
.guided-onboarding .guided-food-name {font-size:14px;font-weight:700;line-height:1.35;overflow-wrap:anywhere;padding-right:16px;}
.guided-onboarding .guided-food-name small {display:block;font-weight:400;color:#815737;}
.guided-onboarding .guided-food-card input {position:absolute;width:1px;height:1px;opacity:0;}
.guided-onboarding .guided-food-card:focus-within {outline:3px solid #197044;outline-offset:2px;}
.guided-onboarding .guided-food-card.selected {border:2px solid #27874a;background:#edf7ef;}
.guided-onboarding .food-choice-check {position:absolute;right:8px;top:8px;border-radius:50%;background:#fff;color:#1c713e;padding:4px;opacity:0;}
.guided-onboarding .selected .food-choice-check {opacity:1;}
.guided-onboarding .restricted:not(.selected) {opacity:.65;cursor:not-allowed;}
.guided-onboarding .food-goal-guidance {display:block;font-size:12px;line-height:1.5;}
.guided-onboarding .meal-preference-tabs {display:block;overflow:visible;}
.guided-progress {font-size:12px;color:#376149;margin:10px 0;}
.guided-summary summary,.guided-restrictions summary {cursor:pointer;font-size:12px;font-weight:700;padding:9px 0;}
.guided-summary div {display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.guided-summary button {text-align:left;background:#f4f8f4;border:1px solid #dce7de;border-radius:10px;padding:8px;font-size:12px;}
.guided-summary span {display:block;font-size:11px;color:#526455;}
.guided-onboarding .preference-toolbar {gap:8px;flex-wrap:wrap;}
.guided-onboarding #guided-manual {font-size:12px;line-height:1.5;color:#185c36;text-align:left;padding:10px 0;}
@media(max-width:600px){
 .guided-onboarding {width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:0;}
 .guided-onboarding form {height:calc(100dvh - 20px);padding:16px;}
 .guided-onboarding .onboarding-top h2 {font-size:23px;}
 .guided-onboarding .onboarding-top .eyebrow {font-size:9px;}
 .guided-onboarding .meal-preference-cards {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
 .guided-onboarding .guided-food-name {font-size:12px;}
 .guided-onboarding .onboarding-step-message {padding:8px;font-size:11px;max-height:90px;overflow:auto;}
}

.guided-onboarding #choice-counter {font-size:11px;line-height:1.5;}

/* Candidate review uses the existing cards; hidden actions must stay hidden. */
#normal-automatic-review[hidden],#normal-automatic-review [hidden],#normal-six-choice[hidden]{display:none!important}
#normal-automatic-review{padding:16px;line-height:1.5}
#normal-automatic-review button{margin:4px 6px 4px 0}
.normal-automatic-unavailable .diet-meal-selector-shell,.normal-automatic-unavailable .diet-layout>aside,.normal-automatic-unavailable .diet-status{display:none}

.guided-subsection{grid-column:1/-1;margin:12px 0 2px;font-size:15px;color:var(--forest,#073f2c)}
#guided-reset-confirmation[hidden]{display:none!important}
#guided-reset-confirmation{display:flex;flex-wrap:wrap;gap:10px}
#guided-reset-confirmation p{flex-basis:100%;margin:0}

/* Secondary product information stays accessible without repeated banners. */
#normal-automatic-message:empty{display:none}#normal-automatic-details{margin:8px 0;color:var(--muted);font-size:12px}#normal-automatic-details summary{cursor:pointer;color:var(--forest);font-weight:650}#normal-automatic-information{line-height:1.6}.legal-footer-compact{margin:20px 0 8px;padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.legal-footer-compact summary{cursor:pointer;min-height:32px;display:flex;align-items:center;color:var(--forest);font-weight:650}.legal-footer-compact summary::before{content:'›';margin-right:8px}.legal-footer-compact details[open]>summary::before{content:'⌄'}.legal-footer-compact p{line-height:1.7}.legal-footer-compact a{color:var(--forest)}#consent-current[hidden],#choices-section[hidden],#cancel-choices[hidden],#retry-load[hidden]{display:none!important}

/* Official owner-supplied lockup: preserve the full square artwork. */
.sidebar > .brand { justify-content:center; padding:0 10px 22px; }
.sidebar > .brand .brand-logo { width:112px; height:112px; flex:none; }
.brand > span,.mobile-brand > strong { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:760px){
 .mobile-brand img { width:70px; height:70px; flex:none; }
 .mobile-tip-card img { width:62px; height:62px; right:12px; bottom:8px; }
}

/* Habitual activities: independent frequencies, within the existing scrollable step. */
.training-activities{border:0;padding:0;margin:20px 0 0;min-width:0;}
.training-activities legend{font-weight:800;color:#073f2c;}
.training-activities>p,.activity-calculation-note{font-size:13px;line-height:1.5;}
#training-activity-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.training-choice{border:1px solid #d7e5da;border-radius:14px;padding:12px;background:#f8fbf7;min-width:0;}
.training-choice:has(input:checked){border-color:#269947;background:#eff8ed;}
.training-choice .training-choice-label{display:flex;align-items:center;gap:10px;min-height:32px;cursor:pointer;}
.training-choice input{width:18px;height:18px;flex:none;accent-color:#269947;}
.training-frequency:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:12px;}
.training-frequency select{width:112px;min-height:42px;}
.training-choice:focus-within{outline:2px solid #269947;outline-offset:2px;}
@media(max-width:560px){#training-activity-options{grid-template-columns:1fr;}.training-frequency select{width:120px;}}

.training-frequency[hidden]{display:none!important;}

.training-frequency select{border:1px solid #d7e5da;border-radius:12px;background:#fff;padding:9px;color:var(--ink);font:inherit;}

/* Retired summary screen: data hooks remain for compatibility, not a navigation destination. */
#view-hoje[hidden]{display:none!important;}

/* Equivalent swaps: fixed frame, readable choices, original food photography. */
#swap-dialog{max-height:calc(100dvh - 32px);padding:0;overflow:hidden;}
#swap-form{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);box-sizing:border-box;min-height:0;}
#swap-form>.dialog-heading{flex:none;margin-bottom:16px;align-items:flex-start;}
#swap-form>.dialog-heading h2{overflow-wrap:anywhere;line-height:1.2;}
#swap-form .close-button{flex:none;min-width:40px;min-height:40px;}
#swap-form>.swap-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:3px 4px 14px;}
#swap-form .equivalence-notice{margin:0 0 16px;font-size:12px;line-height:1.5;align-items:flex-start;}
#swap-form .equivalence-notice>span{flex:none;}
#swap-form>#apply-swap{flex:none;min-height:46px;margin-top:10px;}
#swap-options{margin-bottom:0;}
#swap-options .food-swap-option{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr) 22px;gap:14px;padding:14px;border-width:1px;min-width:0;}
#swap-options .food-swap-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;pointer-events:auto;}
#swap-options .food-swap-option:focus-within{outline:2px solid #218b41;outline-offset:1px;}
#swap-options .food-swap-option strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere;}
#swap-options .food-swap-option small{font-size:12px;line-height:1.5;font-weight:500;overflow-wrap:anywhere;}
.swap-food-photo{width:88px;height:88px;display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid #e8eee7;border-radius:14px;}
.swap-food-photo img{display:block;width:100%;height:100%;object-fit:contain;}
.swap-photo-unavailable{font-size:11px;line-height:1.3;text-align:center;padding:5px;color:#657569;}
.swap-selection-mark{display:grid;place-items:center;border:1px solid #bccfbd;border-radius:50%;width:22px;height:22px;color:transparent;background:#fff;font-size:13px;}
.selected .swap-selection-mark{background:#24983b;border-color:#24983b;color:#fff;}
@media(max-width:560px){
 #swap-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);}
 #swap-form{padding:18px;max-height:calc(100dvh - 24px);}
 #swap-form>.dialog-heading{gap:12px;}
 #swap-form>.dialog-heading h2{font-size:22px;}
 #swap-options .food-swap-option{grid-template-columns:68px minmax(0,1fr) 20px;gap:10px;padding:10px;}
 .swap-food-photo{width:68px;height:76px;border-radius:10px;}
 #swap-options .food-swap-option strong{font-size:14px;}
 .swap-selection-mark{width:20px;height:20px;}
}

/* Complete-meal suggestions share the existing swap frame and confirmation. */
#swap-options .meal-swap-option{position:relative;display:grid;grid-template-columns:108px minmax(0,1fr) 22px;gap:14px;padding:12px;border-width:1px;min-width:0;align-items:center;}
#swap-options .meal-swap-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;pointer-events:auto;}
#swap-options .meal-swap-option:focus-within{outline:2px solid #218b41;outline-offset:2px;}
.swap-ready-photo{width:108px;height:108px;display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid #e8eee7;border-radius:14px;}
.swap-ready-photo .swap-meal-photo{display:block;width:100%;height:100%;object-fit:contain;}
.swap-ready-copy{min-width:0;display:grid;gap:5px;}
#swap-options .meal-swap-option strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere;}
#swap-options .meal-swap-option small{font-size:12px;line-height:1.4;font-weight:500;}
.swap-ready-nutrients{display:flex;flex-wrap:wrap;gap:4px 8px;color:#46614c;font-size:11px;line-height:1.4;}
.swap-ready-nutrients>span{background:#f1f7ec;border-radius:7px;padding:3px 5px;}
#swap-options small.swap-image-note{font-size:10px;color:#526358;}
.meal-image-fallback{display:grid;place-items:center;padding:4px;color:#526358;font-size:10px;line-height:1.2;text-align:center;}
@media(max-width:560px){#swap-options .meal-swap-option{grid-template-columns:80px minmax(0,1fr) 20px;gap:9px;padding:10px;} .swap-ready-photo{width:80px;height:92px;border-radius:11px;} #swap-options .meal-swap-option strong{font-size:14px;} #swap-options .meal-swap-option small{font-size:11px;} .swap-ready-nutrients{font-size:10px;gap:3px;}}

@media(max-width:560px){
 #swap-dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);}
 #swap-options .meal-swap-option{grid-template-columns:76px minmax(0,1fr);}
 #swap-options .meal-swap-option .swap-selection-mark{position:absolute;right:9px;top:10px;}
 #swap-options .meal-swap-option strong{padding-right:20px;}
 .swap-ready-photo{width:76px;height:88px;}
}

/* Photo choices scoped to manual food replacement; preserve the rest of the editor. */
.selected-food-choice.swap-food-option { display:flex; align-items:center; gap:12px; width:100%; min-width:0; padding:10px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--forest); text-align:left; }
.selected-food-choice:hover { border-color:var(--green); background:#f5faef; }
.selected-food-choice:focus-visible { outline:3px solid #2f9d45; outline-offset:2px; }
.selected-food-choice strong { min-width:0; overflow-wrap:anywhere; font-size:14px; }
.selected-food-choice-photo { display:grid; place-items:center; flex:0 0 64px; width:64px; height:64px; overflow:hidden; border-radius:10px; background:#f4f8f0; font-size:11px; color:var(--muted); }
.selected-food-choice-photo img { width:100%; height:100%; object-fit:contain; background:#fff; }
.selected-food-picker { display:grid; gap:10px; min-width:0; margin-top:10px; }
.selected-food-picker input { width:100%; min-width:0; }
.selected-food-choices { display:grid; gap:8px; }

.selected-food-picker [hidden] { display:none !important; }

/* Ingredient cards: portion above, household measure below, one contextual action. */
.diet-meal.draft-meal .meal-plan-column li.ingredient-card {
  display:grid; grid-template-columns:minmax(0,1fr) 88px;
  grid-template-areas:"main actions" "measure actions";
  gap:0; padding:0; min-height:100px; border:1px solid #d7e5d2;
  border-radius:15px; background:#fff; align-items:stretch;
}
.ingredient-card-main { grid-area:main; display:grid; grid-template-columns:60px minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 16px; min-width:0; }
.diet-meal.draft-meal .ingredient-card .meal-food-visual { grid-area:auto; width:60px; height:60px; border-radius:10px; background:#fff; }
.diet-meal.draft-meal .ingredient-card .ingredient-name { grid-area:auto; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.ingredient-card-quantity { display:grid; justify-items:center; gap:3px; min-width:0; }
.ingredient-card-quantity > small { color:#748476; font-size:10px; font-weight:600; }
.diet-meal.draft-meal .ingredient-card .ingredient-grams { grid-area:auto; width:auto; min-width:62px; min-height:32px; padding:4px 8px; border:0; background:transparent; color:#164f37; font-size:16px; }
.ingredient-card-measure { grid-area:measure; display:flex; flex-wrap:wrap; align-items:center; gap:4px; padding:9px 16px; border-top:1px solid #e3eddc; border-radius:0 0 0 14px; background:#f1f7e9; color:#58744b; font-size:11px; line-height:1.5; }
.ingredient-card-measure strong { color:#365f31; font-weight:700; }
.ingredient-card-actions { grid-area:actions; display:flex; flex-direction:column; align-items:stretch; border-left:1px solid #d7e5d2; border-radius:0 14px 14px 0; background:#f8fbf3; }
.diet-meal.draft-meal .ingredient-card .ingredient-swap-button { grid-area:auto; display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:7px; width:100%; min-width:0; min-height:64px; padding:10px 8px; border:0; border-radius:0 14px 14px 0; background:transparent; color:#287732; font-size:11px; }
.ingredient-card .ingredient-swap-button svg { width:23px; height:23px; }
.ingredient-card .ingredient-swap-button:hover:not(:disabled) { background:#eaf5dc; }
.ingredient-card .ingredient-swap-button:disabled { opacity:.45; cursor:not-allowed; }
.ingredient-card .ingredient-swap-button:focus-visible { outline:3px solid #318940; outline-offset:-4px; }
.ingredient-card .ingredient-more-menu { grid-area:auto; align-self:center; margin-bottom:7px; }
.diet-meal.draft-meal .meal-plan-column li.ingredient-card-readonly { grid-template-columns:minmax(0,1fr); grid-template-areas:"main" "measure"; }
.ingredient-card-readonly .ingredient-card-measure { border-radius:0 0 14px 14px; }
@media (max-width:820px) {
  .diet-meal.draft-meal .meal-plan-column li.ingredient-card { grid-template-columns:minmax(0,1fr) 60px; }
  .ingredient-card-main { grid-template-columns:42px minmax(0,1fr) auto; gap:7px; padding:10px 8px; }
  .diet-meal.draft-meal .ingredient-card .meal-food-visual { width:42px; height:42px; }
  .diet-meal.draft-meal .ingredient-card .ingredient-name { font-size:11px; }
  .diet-meal.draft-meal .ingredient-card .ingredient-grams { min-width:0; padding:3px 0; font-size:13px; }
  .ingredient-card-quantity > small { font-size:9px; }
  .ingredient-card-measure { padding:8px 10px; font-size:10px; }
  .diet-meal.draft-meal .ingredient-card .ingredient-swap-button { font-size:10px; padding:8px 4px; }
  .ingredient-card .ingredient-quantity-control { grid-template-columns:24px minmax(38px,auto) 24px; }
  .ingredient-card .ingredient-quantity-control button { width:24px; }
  .ingredient-card .ingredient-quantity-control strong { padding:0 3px; font-size:10px; }
  .diet-meal.draft-meal .meal-plan-column li.ingredient-card-readonly { grid-template-columns:minmax(0,1fr); }
}
@media print {
  .ingredient-card-actions { display:none; }
  .diet-meal.draft-meal .meal-plan-column li.ingredient-card { grid-template-columns:minmax(0,1fr); grid-template-areas:"main" "measure"; break-inside:avoid; }
}

/* Explicit whole-meal suggestions and factual per-100g density. */
.ready-meal-ingredients{display:grid;gap:8px;margin-top:12px}.ready-meal-ingredients>span{display:block;border-top:1px solid var(--line);padding-top:8px;font-size:12px;line-height:1.5}.ready-meal-ingredients em{display:block;font-size:11px;font-style:normal;color:#765522}.ready-meal-ingredients small{display:block;font-weight:400}.ready-meal-consent{padding:16px;background:var(--lime-soft);border:1px solid #c9dfb8;border-radius:14px;margin-top:14px;line-height:1.6;font-size:13px}.ready-meal-consent[hidden]{display:none}.ready-meal-consent label{display:flex;gap:10px;align-items:flex-start}.ready-meal-consent input{flex:none;width:20px;height:20px;accent-color:var(--green)}.guided-food-name .food-density-badge{display:block;color:#684e1d;background:#fff4d9;border-radius:8px;padding:5px 7px;margin-top:6px;font-size:10px;line-height:1.5;font-weight:600}.meal-swap-option .swap-ready-copy{min-width:0;overflow-wrap:anywhere}

.ready-meal-unavailable{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;font-size:12px;line-height:1.6}.ready-meal-unavailable summary{cursor:pointer;color:var(--forest);font-weight:700}.ready-meal-unavailable p{margin:14px 0 0;color:var(--muted)}

.manual-meal-option{display:block;width:100%;text-align:left;padding:16px;border:1px solid #d4e3cf;border-radius:16px;background:#fff;margin:0 0 12px;color:#164b35;cursor:pointer;white-space:normal}
.manual-meal-option>strong{display:block;font-size:1rem;margin-bottom:4px}.manual-meal-option:focus-visible,.manual-meal-option:hover{outline:2px solid #329b3c;outline-offset:2px}
.manual-meal-ingredients{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.manual-meal-ingredients li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:.9rem;color:#273e30}.manual-meal-ingredients li>span{overflow-wrap:anywhere}.manual-meal-food-photo{width:44px;height:44px;background:#f4f8f0;border-radius:10px;overflow:hidden}.manual-meal-food-photo img{width:100%;height:100%;object-fit:contain}.manual-meal-accept{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;padding:14px;border-radius:12px;background:#f1f7e8;margin:14px 0 6px}.manual-meal-accept input{flex:0 0 18px;width:18px;height:18px;margin:2px 0}.manual-meal-swap [data-role=preview]{outline:none}.manual-meal-swap footer{gap:10px}.manual-meal-swap [data-role=options]{min-width:0}
@media(max-width:480px){.manual-meal-swap footer button{flex:1;white-space:normal;min-width:0}.manual-meal-option{padding:12px}.manual-meal-ingredients li{grid-template-columns:36px minmax(0,1fr) auto;gap:8px}.manual-meal-food-photo{width:36px;height:36px}.manual-meal-swap .swap-body{padding-bottom:24px}}

.manual-meal-swap .swap-comparison{padding:12px;border:1px solid #dbe6d6;background:#f4f8ed;border-radius:12px;margin-top:12px}.manual-meal-swap .swap-comparison h4{margin:0 0 8px;font-size:14px}.manual-meal-swap .swap-value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.manual-meal-swap .swap-value-grid span{font-size:13px;line-height:1.45;overflow-wrap:anywhere}.manual-meal-swap label.manual-meal-accept{display:flex}.manual-meal-swap [data-role=status]:empty{display:none}

/* Editorial recipe priority; no new eligibility or nutritional claim. */
.ready-meal-strategy{display:inline-block;width:fit-content;max-width:100%;padding:4px 9px;border-radius:999px;background:#edf5e6;color:#44633e;font-size:11px;font-weight:600;line-height:1.4;white-space:normal;}
.manual-meal-option .ready-meal-strategy{grid-column:1/-1;}

/* Visible keyboard focus, including buttons in dynamic dialogs. */
:where(a,button,input,select,textarea,summary,[tabindex="0"]):focus-visible{outline:3px solid #073f2c;outline-offset:3px;box-shadow:0 0 0 5px #fff}

/* Contextual Pro explanation; no automatic popup or checkout activation. */
.pro-access-card{box-sizing:border-box;margin:16px 0;padding:24px;border:1px solid #bed8af;border-radius:20px;background:linear-gradient(135deg,#f3fae8,#fff);color:#164e3b;max-width:720px;text-align:left}
.pro-access-card>span{font-size:11px;font-weight:800;letter-spacing:.1em}.pro-access-card h3{font-size:22px;line-height:1.3;margin:10px 0}.pro-access-card p{line-height:1.6;margin:0 0 16px;color:#40594b}.pro-access-card small{display:block;margin-top:14px;line-height:1.5;color:#40594b}.pro-access-actions{display:flex;gap:10px;flex-wrap:wrap}.pro-access-actions a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;white-space:normal}.pro-access-actions a:focus-visible{outline:3px solid #125b3c;outline-offset:3px}@media(max-width:480px){.pro-access-card{padding:18px}.pro-access-actions a{width:100%}}

/* Ingredient thumbnail follows the current meal when no exact dish photo exists. */
.meal-ingredient-thumbnail{position:relative;display:block;padding:0;overflow:hidden;background:linear-gradient(145deg,#f8fbf2,#e9f2dc)}
.meal-ingredient-thumbnail>svg{position:absolute;inset:4%;width:92%;height:92%}
.meal-ingredient-thumbnail>img{position:absolute;object-fit:contain;width:58%;height:58%;left:4%;top:8%;filter:drop-shadow(0 1px 1px #0002)}
.meal-ingredient-thumbnail>img:nth-of-type(2){left:42%;top:13%}
.meal-ingredient-thumbnail>img:nth-of-type(3){left:23%;top:44%}
.meal-ingredient-thumbnail[data-count="1"]>img{width:82%;height:82%;left:9%;top:9%}
.meal-ingredient-thumbnail[data-count="2"]>img{top:24%}

.meal-ingredient-thumbnail>img{mix-blend-mode:multiply;border-radius:50%}

.swap-quota{padding:12px 16px;border-radius:14px;background:#eff7e9;color:#245334;font-size:.875rem;line-height:1.5}.swap-quota:empty{display:none}
[data-juca-strategy]{margin:8px 0 4px;width:100%;text-align:left;font-weight:700}

/* Shopping: food photography, readable quantities and compact category cards. */
.shopping-view { max-width:1320px; margin-inline:auto; }
.shopping-summary { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.shopping-summary article { min-height:86px; padding:14px; box-shadow:none; gap:12px; }
.shopping-summary .shopping-category-photo { width:52px; height:52px; border-radius:14px; background:#fff; overflow:hidden; }
.shopping-category-photo img,.shopping-food-icon img { width:100%;height:100%;object-fit:contain;display:block; }
.shopping-summary small { font-size:11px;line-height:1.4;margin:0 0 5px; }
.shopping-summary strong { font-size:19px; }
.shopping-summary strong span { font-size:12px;font-weight:500;color:var(--muted); }
.shopping-layout { grid-template-columns:minmax(0,1fr) 270px;gap:22px; }
.shopping-list-card { box-shadow:none; padding:24px; }
.shopping-list-card .section-heading span { font-size:12px; }
.shopping-progress-track { height:6px; margin:18px 0 24px; }
.shopping-group { background:#fff;border:0;border-radius:0; }
.shopping-group header { padding:8px 0 12px;border-bottom:1px solid #e4ebe1; }
.shopping-group header h3 { font-size:14px; }
.shopping-group header small { font-size:11px;background:#f1f5ed;padding:5px 9px;border-radius:20px; }
.shopping-group > div { grid-template-columns:1fr;gap:0;padding:0; }
.shopping-item { grid-template-columns:24px 64px minmax(0,1fr) auto;gap:14px;padding:16px 4px;min-height:96px;border:0;border-bottom:1px solid #edf1e9;border-radius:0; }
.shopping-item:last-child { border-bottom:0; }
.shopping-food-icon { width:64px;height:64px;background:#fff;border-radius:14px;overflow:hidden; }
.shopping-item-copy strong { font-size:14px;line-height:1.4;font-weight:650; }
.shopping-item-copy small { font-size:12px;margin-top:5px; }
.shopping-item-amount { text-align:right;min-width:82px; }
.shopping-item-amount strong { display:block;font-size:16px;color:#164d38; }
.shopping-item-amount small { display:block;font-size:10px;color:var(--muted);margin-top:5px; }
.shopping-item.checked { background:#f5f9f1;border-radius:12px; }
.shopping-item:focus-within { outline:3px solid #318940;outline-offset:2px;border-radius:12px; }
.shopping-check { width:22px;height:22px;border-radius:7px; }
.shopping-photo-placeholder { display:grid;place-items:center;width:100%;height:100%;background:#eff4e9;color:#6e8065;font-size:20px;font-weight:600; }
.shopping-help-card { box-shadow:none;background:#f0f5e9;border:0;padding:24px; }
.shopping-help-label { display:block;font-size:10px;font-weight:800;letter-spacing:.12em;color:#658456;margin-bottom:16px; }
.shopping-help-card p,.shopping-help-card li { font-size:12px;line-height:1.65; }
.shopping-preparation-note { font-size:12px;background:#fffdf7; }
@media(max-width:1000px) { .shopping-layout { grid-template-columns:1fr; }.shopping-help-card { position:static; } }
@media(max-width:600px) {
 .shopping-summary { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
 .shopping-summary article { padding:10px;gap:8px;min-height:80px; }
 .shopping-summary .shopping-category-photo { width:38px;height:38px; }
 .shopping-summary small { font-size:10px; }.shopping-summary strong { font-size:17px; }
 .shopping-list-card { padding:16px; }.shopping-list-card .section-heading { gap:12px;align-items:flex-start; }
 .shopping-list-card .section-heading h2 { font-size:20px; }.shopping-list-card .text-button { font-size:11px; }
 .shopping-item { grid-template-columns:22px 48px minmax(0,1fr) auto;gap:9px;padding:14px 0; }
 .shopping-food-icon { width:48px;height:48px; }.shopping-item-copy strong { font-size:12px; }
 .shopping-item-copy small { font-size:10px; }.shopping-item-amount { min-width:58px; }
 .shopping-item-amount strong { font-size:14px; }.shopping-item-amount small { font-size:9px; }
}

/* Clean meal choices: subtle glass, solid fallback and readable food rows. */
.manual-meal-swap .swap-body{background:linear-gradient(145deg,#f5f9f2,#edf4f0)}
.manual-meal-swap [data-role=notice]:empty,.manual-meal-swap [data-role=quota]:empty{display:none}
.manual-meal-swap .manual-meal-option{padding:16px;margin-bottom:14px;border:1px solid #fff;border-radius:22px;background:#ffffffed;box-shadow:0 6px 20px #183d2710,inset 0 1px 0 #fff;color:#173d2a;transition:box-shadow .15s,border-color .15s}
@supports(backdrop-filter:blur(12px)){.manual-meal-swap .manual-meal-option{background:#ffffffc9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
.manual-meal-swap .manual-meal-option:hover{border-color:#91b992;box-shadow:0 8px 24px #183d271c;outline:none}
.manual-meal-swap .manual-meal-option:focus-visible{outline:3px solid #218b41;outline-offset:3px}
.manual-meal-swap .manual-meal-ingredients{margin:0;gap:0}
.manual-meal-swap .manual-meal-ingredients li{padding:10px 0;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;line-height:1.45}
.manual-meal-swap .manual-meal-ingredients li+li{border-top:1px solid #234f3210}
.manual-meal-swap .manual-meal-food-photo{width:48px;height:48px;border-radius:14px;background:#fff}
.manual-meal-swap .manual-meal-ingredients li>strong{font-size:13px;white-space:nowrap}
.manual-meal-swap [data-role=preview]>.manual-meal-ingredients{background:#fffffff0;border:1px solid #fff;padding:8px 16px;border-radius:22px;box-shadow:0 6px 20px #183d2710}
.manual-meal-swap .meal-nutrition-details{margin-top:16px;font-size:13px;color:#345342}
.manual-meal-swap .meal-nutrition-details summary{cursor:pointer;padding:8px 0}
@media(max-width:480px){.manual-meal-swap .manual-meal-option{padding:10px 12px}.manual-meal-swap .manual-meal-ingredients li{grid-template-columns:40px minmax(0,1fr) auto;gap:9px;font-size:13px}.manual-meal-swap .manual-meal-food-photo{width:40px;height:40px}}

/* Meal selector: time and status only. */
#diet-meal-selector .diet-meal-tab{grid-template-columns:minmax(0,1fr) 12px;gap:9px;min-height:44px;padding:10px 14px}
#diet-meal-selector .diet-meal-tab-copy strong{font-size:17px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:.01em}
@media(max-width:600px){#diet-meal-selector .diet-meal-tab{min-width:94px;flex-basis:94px;padding:10px 12px}#diet-meal-selector .diet-meal-tab-copy strong{font-size:16px}}

/* Compact time selector and photo-free meal heading. */
#diet-meal-selector .diet-meal-tab{border-radius:12px;box-shadow:none}
#diet-meal-selector .diet-meal-tab.active{border-color:#84b878;background:#eff6e9;box-shadow:inset 0 0 0 1px #84b87820}
.meal-card-header .meal-time strong{font-size:20px;font-weight:650;line-height:1.15;font-variant-numeric:tabular-nums}
.meal-card-header .meal-time span{font-size:12px}
@media(max-width:600px){.meal-card-header .meal-time strong{font-size:19px}}

#diet-plan-repair[hidden]{display:none!important}
#diet-plan-repair p{font-size:13px;line-height:1.5;margin:10px 0}

/* Food preferences are edited independently from the questionnaire. */
#view-alimentos .food-builder-layout[hidden],#edit-selected-foods[hidden]{display:none!important}
.food-preference-nav{display:flex;gap:8px;overflow:auto;padding:8px 0 16px}
.food-preference-nav button{white-space:nowrap;border:1px solid #d8e5d2;border-radius:999px;padding:9px 14px;background:white;color:#164f38;font-size:13px}
.food-preference-nav button[aria-pressed="true"]{background:#eaf6e2;border-color:#40974b}
.food-preference-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.food-preference-card{position:relative;display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid #d8e5d2;border-radius:18px;background:white;cursor:pointer;font-size:14px}
.food-preference-card.selected{border-color:#218547;background:#eff8f1}
.food-preference-card input{position:absolute;right:12px;top:12px;width:20px;height:20px;accent-color:#218547}
.food-preference-photo{width:76px;height:76px;object-fit:contain;border-radius:12px}.food-preference-card small{font-size:12px;color:#586b60}

#view-alimentos .selected-foods-actions{position:sticky;bottom:82px;background:rgba(255,255,255,.97);padding:12px;border-radius:14px;box-shadow:0 -4px 18px #164f3810;z-index:2}

/* Label-based custom food entry */
#custom-food-dialog{width:min(600px,calc(100vw - 24px));padding:22px;border:1px solid #dce6da;border-radius:22px}#custom-food-form>label{display:block;margin:14px 0}#custom-food-form .custom-food-fields{margin:16px 0;gap:16px 12px}#custom-food-form label{font-size:13px;font-weight:600;color:#214c39}#custom-food-form input,#custom-food-form select{font:inherit;background:white;color:#183b2b}.custom-food-basis{padding:12px;border-radius:12px;background:#eff7e7;font-size:14px;font-weight:700;color:#245238}#custom-food-dialog::backdrop{background:#143b3266;backdrop-filter:blur(4px)}
