/* ═══════════════════════════════════════════════
   NC User Dashboard — dashboard.css
   ═══════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;1,400&family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@500&display=swap');

:root {
  --d-green:#1fa868; --d-green-lt:#2ec27e; --d-green-50:#f0faf4;
  --d-green-100:#d4f0e0; --d-green-900:#0a3828;
  --d-cream:#faf9f5; --d-white:#ffffff;
  --d-ink:#0f1a12; --d-ink-60:rgba(15,26,18,.6); --d-ink-12:rgba(15,26,18,.12);
  --d-amber:#f59e0b; --d-blue:#3b82f6; --d-red:#ef4444;
  --d-fd:'Playfair Display',serif; --d-fb:'DM Sans',sans-serif; --d-fm:'DM Mono',monospace;
  --d-r:14px; --d-r-lg:22px; --d-r-xl:28px;
  --d-sh:0 4px 24px rgba(0,0,0,.07),0 1px 4px rgba(0,0,0,.04);
  --d-sh-lg:0 12px 48px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.05);
}
.ncd-dashboard,.ncd-auth-wrap { font-family:var(--d-fb);color:var(--d-ink);box-sizing:border-box; }
.ncd-dashboard *,.ncd-auth-wrap * { box-sizing:border-box; }
.ncd-hidden { display:none!important; }

/* ── AUTH ── */
.ncd-auth-wrap { display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 64px);background:var(--d-white);max-width:100%;width:100%;margin:0; }
.ncd-auth-left { background:var(--d-green-900);padding:3.5rem;display:flex;flex-direction:column;justify-content:center;gap:2rem; }
.ncd-auth-logo { font-size:48px;filter:drop-shadow(0 0 12px rgba(46,194,126,.4));margin-bottom:.5rem; }
.ncd-auth-left h1 { font-family:var(--d-fd);font-size:2.4rem;font-weight:700;line-height:1.15;color:#fff;margin:0; }
.ncd-auth-left h1 em { color:var(--d-green-lt);font-style:italic; }
.ncd-auth-left p { color:rgba(255,255,255,.6);font-size:15px;line-height:1.65;margin:0; }
.ncd-auth-features { display:flex;flex-direction:column;gap:.75rem; }
.ncd-auth-feat { display:flex;gap:10px;font-size:14px;color:rgba(255,255,255,.75);align-items:flex-start; }
.ncd-auth-feat span:first-child { font-size:18px;flex-shrink:0; }
.ncd-auth-right { padding:3rem 3.5rem;display:flex;flex-direction:column;justify-content:center; }

.ncd-tabs { display:flex;border-bottom:2px solid var(--d-ink-12);margin-bottom:1.75rem; }
.ncd-tab { padding:10px 20px;font-size:15px;font-weight:600;font-family:var(--d-fb);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;color:var(--d-ink-60);transition:color .2s,border-color .2s; }
.ncd-tab.active { color:var(--d-green);border-bottom-color:var(--d-green); }

.ncd-msg { padding:10px 14px;border-radius:var(--d-r);font-size:13px;margin-bottom:1rem;font-weight:500; }
.ncd-msg.ncd-error { background:#fef2f2;border:1px solid #fecaca;color:var(--d-red); }
.ncd-msg.ncd-success { background:var(--d-green-50);border:1px solid var(--d-green-100);color:var(--d-green); }

.ncd-field { display:flex;flex-direction:column;gap:5px;margin-bottom:1rem; }
.ncd-field label { font-size:13px;font-weight:600;color:var(--d-ink); }
.ncd-field input,.ncd-field select,.ncd-field textarea { padding:11px 14px;border:1.5px solid var(--d-ink-12);border-radius:var(--d-r);font-size:14px;font-family:var(--d-fb);color:var(--d-ink);background:var(--d-cream);transition:border-color .2s;width:100%; }
.ncd-field input:focus,.ncd-field select:focus,.ncd-field textarea:focus { outline:none;border-color:var(--d-green);background:var(--d-white); }
.ncd-field input:disabled { opacity:.5;cursor:not-allowed; }
.ncd-pass-wrap { position:relative; }
.ncd-pass-wrap input { padding-right:44px; }
.ncd-pass-toggle { position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;padding:0; }
.ncd-field-row { display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem; }
.ncd-check { display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer; }
.ncd-check input { width:auto; }
.ncd-forgot { font-size:13px;color:var(--d-green);text-decoration:none; }
.ncd-req { color:var(--d-red); }
.ncd-optional { color:var(--d-ink-60);font-weight:400; }

.ncd-btn-submit { width:100%;padding:13px;border-radius:50px;background:var(--d-green);color:#fff;font-size:15px;font-weight:600;font-family:var(--d-fb);border:none;cursor:pointer;box-shadow:0 4px 20px rgba(31,168,104,.35);transition:background .2s,transform .15s; }
.ncd-btn-submit:hover { background:#17865a;transform:translateY(-1px); }
.ncd-btn-loader { display:inline-block;animation:ncdPulse 1s infinite;letter-spacing:3px; }

.ncd-social-divider { display:flex;align-items:center;gap:12px;margin:1.25rem 0; }
.ncd-social-divider::before,.ncd-social-divider::after { content:'';flex:1;height:1px;background:var(--d-ink-12); }
.ncd-social-divider span { font-size:12px;color:var(--d-ink-60);white-space:nowrap; }
.ncd-social-btns { display:flex;gap:10px; }
.ncd-social-btn { flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:var(--d-r);font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s,transform .15s;border:1.5px solid var(--d-ink-12);font-family:var(--d-fb); }
.ncd-social-btn:hover { opacity:.88;transform:translateY(-1px); }
.ncd-social-google { background:var(--d-white);color:var(--d-ink); }
.ncd-social-facebook { background:#1877f2;color:#fff;border-color:#1877f2; }
.ncd-terms { font-size:11px;color:var(--d-ink-60);margin-top:1rem;text-align:center; }
.ncd-terms a { color:var(--d-green); }

/* ── DASHBOARD LAYOUT ── */
.ncd-dashboard { display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 64px);background:var(--d-cream);max-width:100%;width:100%;margin:0; }

.ncd-sidebar { background:var(--d-green-900);display:flex;flex-direction:column;padding:2rem 1.25rem;gap:0; }
.ncd-sidebar-top { text-align:center;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1.5rem; }
.ncd-avatar-wrap { position:relative;display:inline-block;margin-bottom:.75rem; }
.ncd-avatar { width:72px;height:72px;border-radius:50%;object-fit:cover;display:flex;border:3px solid rgba(46,194,126,.4); }
.ncd-avatar-initials { background:var(--d-green);color:#fff;align-items:center;justify-content:center;font-family:var(--d-fd);font-size:24px;font-weight:700; }
.ncd-avatar-lg { width:80px;height:80px;font-size:28px; }
.ncd-premium-badge { position:absolute;bottom:-4px;right:-4px;background:var(--d-amber);color:#fff;font-size:9px;font-weight:700;padding:2px 7px;border-radius:50px;text-transform:uppercase; }
.ncd-sidebar-name { color:#fff;font-size:15px;font-weight:600;margin-bottom:3px; }
.ncd-sidebar-email { color:rgba(255,255,255,.5);font-size:12px;margin-bottom:6px; }
.ncd-sidebar-goal { background:rgba(46,194,126,.15);color:var(--d-green-lt);font-size:11px;font-weight:600;padding:3px 10px;border-radius:50px;display:inline-block; }

.ncd-nav { display:flex;flex-direction:column;gap:4px;flex:1; }
.ncd-nav-item { display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--d-r);background:none;border:none;color:rgba(255,255,255,.6);font-size:14px;font-weight:500;font-family:var(--d-fb);cursor:pointer;text-align:left;transition:background .2s,color .2s; }
.ncd-nav-item:hover { background:rgba(255,255,255,.07);color:#fff; }
.ncd-nav-item.active { background:rgba(46,194,126,.18);color:var(--d-green-lt); }

.ncd-usage { padding:1.25rem 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem; }
.ncd-usage-label { display:flex;justify-content:space-between;font-size:12px;color:rgba(255,255,255,.5);margin-bottom:6px; }
.ncd-usage-track { height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;margin-bottom:10px; }
.ncd-usage-fill { height:100%;background:var(--d-green);border-radius:3px;transition:width .8s ease; }
.ncd-upgrade-btn { display:block;text-align:center;padding:8px;border-radius:var(--d-r);background:rgba(245,158,11,.15);color:var(--d-amber);font-size:12px;font-weight:600;text-decoration:none;border:1px solid rgba(245,158,11,.25);transition:background .2s; }
.ncd-upgrade-btn:hover { background:rgba(245,158,11,.25); }

.ncd-logout-btn { display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--d-r);background:none;border:none;color:rgba(255,255,255,.4);font-size:13px;font-family:var(--d-fb);cursor:pointer;transition:color .2s,background .2s;margin-top:auto; }
.ncd-logout-btn:hover { color:#fff;background:rgba(239,68,68,.12); }

.ncd-main { overflow-y:auto;min-height:calc(100vh - 64px); }
.ncd-section { display:none;padding:2rem 2.5rem; }
.ncd-section.active { display:block;animation:ncdFade .3s ease; }
@keyframes ncdFade { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes ncdPulse { 0%,100%{opacity:1} 50%{opacity:.4} }

.ncd-section-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem; }
.ncd-section-header h2 { font-family:var(--d-fd);font-size:1.6rem;font-weight:700;letter-spacing:-.4px;margin:0; }
.ncd-analyze-cta { display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border-radius:50px;background:var(--d-green);color:#fff;font-size:14px;font-weight:600;font-family:var(--d-fb);border:none;cursor:pointer;box-shadow:0 4px 16px rgba(31,168,104,.3);transition:background .2s,transform .15s; }
.ncd-analyze-cta:hover { background:#17865a;transform:translateY(-1px); }

.ncd-stats-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:1.5rem; }
.ncd-stat-card { background:var(--d-white);border:1px solid var(--d-ink-12);border-radius:var(--d-r-lg);padding:1.25rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;box-shadow:var(--d-sh);transition:transform .2s,box-shadow .2s; }
.ncd-stat-card:hover { transform:translateY(-2px);box-shadow:var(--d-sh-lg); }
.ncd-stat-score { background:linear-gradient(135deg,var(--d-green-50),var(--d-white)); }
.ncd-stat-icon { font-size:28px; }
.ncd-stat-num { font-family:var(--d-fm);font-size:2rem;font-weight:700;color:var(--d-ink);line-height:1; }
.ncd-stat-label { font-size:12px;color:var(--d-ink-60);font-weight:600;text-transform:uppercase;letter-spacing:.6px; }
.ncd-stat-sub { font-size:11px;color:var(--d-ink-60); }

.ncd-score-ring { width:90px;height:90px; }
.ncd-ring-bg { fill:none;stroke:var(--d-ink-12);stroke-width:10; }
.ncd-ring-fill { fill:none;stroke-width:10;stroke-linecap:round;stroke-dasharray:314;stroke-dashoffset:314;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset 1s ease; }
.ncd-ring-num { font-family:var(--d-fd);font-size:22px;font-weight:700;text-anchor:middle;dominant-baseline:middle; }
.ncd-ring-sub { font-size:9px;fill:var(--d-ink-60);text-anchor:middle;dominant-baseline:middle; }

.ncd-card { background:var(--d-white);border:1px solid var(--d-ink-12);border-radius:var(--d-r-lg);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--d-sh); }
.ncd-card h3 { font-family:var(--d-fd);font-size:1rem;font-weight:700;margin:0 0 1rem; }
.ncd-card-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem; }
.ncd-card-header h3 { margin:0; }
.ncd-link { background:none;border:none;color:var(--d-green);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--d-fb); }

.ncd-macro-bars { display:flex;flex-direction:column;gap:10px; }
.ncd-mbar-row { display:grid;grid-template-columns:72px 1fr 52px;align-items:center;gap:12px; }
.ncd-mbar-lbl { font-size:13px;color:var(--d-ink-60);font-weight:500; }
.ncd-mbar-track { height:8px;background:var(--d-green-50);border-radius:4px;overflow:hidden; }
.ncd-mbar-fill { height:100%;border-radius:4px;transition:width 1s ease; }
.ncd-mbar-val { font-family:var(--d-fm);font-size:12px;color:var(--d-ink);text-align:right;font-weight:600; }

.ncd-recent-grid,.ncd-history-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px; }
.ncd-meal-card { background:var(--d-white);border:1px solid var(--d-ink-12);border-radius:var(--d-r-lg);overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:var(--d-sh); }
.ncd-meal-card:hover { transform:translateY(-3px);box-shadow:var(--d-sh-lg); }
.ncd-meal-img-wrap { position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--d-green-50); }
.ncd-meal-img-wrap img { width:100%;height:100%;object-fit:cover;display:block; }
.ncd-meal-img-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:36px; }
.ncd-meal-score { position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;background:rgba(250,249,245,.9);border:2px solid;display:flex;align-items:center;justify-content:center;font-family:var(--d-fd);font-size:13px;font-weight:700;backdrop-filter:blur(4px); }
.ncd-delete-btn { position:absolute;top:8px;left:8px;width:26px;height:26px;border-radius:50%;background:rgba(239,68,68,.85);color:#fff;border:none;font-size:11px;cursor:pointer;display:none;align-items:center;justify-content:center; }
.ncd-meal-card:hover .ncd-delete-btn { display:flex; }
.ncd-meal-info { padding:10px 12px; }
.ncd-meal-name { font-size:13px;font-weight:600;color:var(--d-ink);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ncd-meal-meta { display:flex;justify-content:space-between;font-size:11px;margin-bottom:5px; }
.ncd-meal-cal { color:var(--d-green);font-family:var(--d-fm);font-weight:600; }
.ncd-meal-date { color:var(--d-ink-60); }
.ncd-meal-tags { display:flex;gap:4px;flex-wrap:wrap; }
.ncd-tag { background:var(--d-green-50);color:var(--d-green);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 7px;border-radius:50px;border:1px solid var(--d-green-100); }

.ncd-empty-state { text-align:center;padding:3rem; }
.ncd-empty-full { grid-column:1/-1; }
.ncd-empty-icon { font-size:48px;margin-bottom:1rem; }
.ncd-empty-state h3 { font-family:var(--d-fd);font-size:1.3rem;margin-bottom:.5rem; }
.ncd-empty-state p { color:var(--d-ink-60);margin-bottom:1.25rem; }

.ncd-load-more-wrap { text-align:center;padding:1.5rem 0; }
.ncd-load-more { padding:10px 28px;border-radius:50px;border:1.5px solid var(--d-green);color:var(--d-green);background:none;font-size:14px;font-weight:600;font-family:var(--d-fb);cursor:pointer;transition:background .2s,color .2s; }
.ncd-load-more:hover { background:var(--d-green);color:#fff; }

.ncd-profile-form { display:flex;flex-direction:column;gap:0; }
.ncd-profile-avatar-row { display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem; }
.ncd-badge-row { display:flex;gap:8px;margin-bottom:4px; }
.ncd-tier-badge { font-size:12px;font-weight:700;padding:3px 12px;border-radius:50px; }
.ncd-tier-free { background:var(--d-green-50);color:var(--d-green);border:1px solid var(--d-green-100); }
.ncd-tier-premium { background:rgba(245,158,11,.12);color:var(--d-amber);border:1px solid rgba(245,158,11,.25); }
.ncd-member-since { font-size:12px;color:var(--d-ink-60); }
.ncd-field-grid { display:grid;grid-template-columns:1fr 1fr;gap:0 1rem; }
.ncd-field-full { grid-column:1/-1; }
.ncd-btn-save { align-self:flex-start;padding:11px 28px;border-radius:50px;background:var(--d-green);color:#fff;border:none;font-size:14px;font-weight:600;font-family:var(--d-fb);cursor:pointer;box-shadow:0 4px 16px rgba(31,168,104,.3);transition:background .2s,transform .15s; }
.ncd-btn-save:hover { background:#17865a;transform:translateY(-1px); }

.ncd-upgrade-card { display:flex;align-items:center;gap:1.25rem;background:linear-gradient(135deg,#fffbeb,#fff);border:1px solid rgba(245,158,11,.25);border-radius:var(--d-r-lg);padding:1.5rem;margin-top:1.5rem;box-shadow:var(--d-sh); }
.ncd-upgrade-icon { font-size:36px;flex-shrink:0; }
.ncd-upgrade-text h3 { font-family:var(--d-fd);font-size:1rem;margin:0 0 4px; }
.ncd-upgrade-text p { font-size:13px;color:var(--d-ink-60);margin:0; }
.ncd-upgrade-btn-lg { padding:10px 22px;border-radius:50px;background:var(--d-amber);color:#fff;font-size:14px;font-weight:600;text-decoration:none;flex-shrink:0;transition:opacity .2s; }
.ncd-upgrade-btn-lg:hover { opacity:.9; }

.ncd-modal { position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:1rem; }
.ncd-modal.ncd-hidden { display:none!important; }
.ncd-modal-overlay { position:absolute;inset:0;background:rgba(10,56,40,.65);backdrop-filter:blur(6px); }
.ncd-modal-box { position:relative;z-index:1;background:var(--d-white);border-radius:var(--d-r-xl);width:100%;max-width:680px;max-height:88vh;overflow-y:auto;box-shadow:var(--d-sh-lg);animation:ncdFade .3s ease; }
.ncd-modal-close { position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:var(--d-green-50);border:1px solid var(--d-green-100);color:var(--d-ink-60);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s; }
.ncd-modal-close:hover { background:var(--d-green-100);color:var(--d-ink); }
.ncd-report-hero { background:var(--d-green-900);border-radius:var(--d-r-xl) var(--d-r-xl) 0 0;overflow:hidden;position:relative; }
.ncd-report-hero-img { width:100%;height:220px;object-fit:cover;display:block;opacity:.7; }
.ncd-report-hero-overlay { position:absolute;inset:0;background:linear-gradient(to bottom,transparent 30%,rgba(10,56,40,.95)); }
.ncd-report-hero-content { position:absolute;bottom:1.25rem;left:1.5rem;right:1.5rem; }
.ncd-report-hero-content h2 { font-family:var(--d-fd);color:#fff;font-size:1.4rem;margin:0 0 4px; }
.ncd-report-meta { display:flex;gap:.75rem;flex-wrap:wrap;align-items:center; }
.ncd-report-cal { font-family:var(--d-fm);color:var(--d-green-lt);font-size:1.1rem;font-weight:700; }
.ncd-report-date { color:rgba(255,255,255,.5);font-size:12px; }
.ncd-report-body { padding:1.5rem; }
.ncd-report-macros { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.5rem; }
.ncd-report-macro { background:var(--d-cream);border:1px solid var(--d-ink-12);border-radius:var(--d-r);padding:12px 8px;text-align:center; }
.ncd-report-macro-num { font-family:var(--d-fm);font-size:1.2rem;font-weight:700; }
.ncd-report-macro-lbl { font-size:10px;color:var(--d-ink-60);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:3px; }

@media (max-width:768px) {
  .ncd-auth-wrap { grid-template-columns:1fr;min-height:auto; }
  .ncd-auth-left { padding:2rem;order:2; }
  .ncd-auth-right { padding:2rem; }
  .ncd-dashboard { grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:auto; }
  .ncd-sidebar { flex-direction:row;flex-wrap:wrap;padding:1rem;gap:.5rem;align-items:center; }
  .ncd-sidebar-top { display:flex;align-items:center;gap:.75rem;text-align:left;padding:0;border:none;margin:0;width:100%;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1); }
  .ncd-avatar-wrap { margin:0; }
  .ncd-nav { flex-direction:row;overflow-x:auto;width:100%; }
  .ncd-usage { display:none; }
  .ncd-logout-btn { margin:0;margin-left:auto; }
  .ncd-main { max-height:none; }
  .ncd-section { padding:1.25rem; }
  .ncd-stats-grid { grid-template-columns:1fr 1fr; }
  .ncd-field-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .ncd-stats-grid { grid-template-columns:1fr; }
  .ncd-recent-grid,.ncd-history-grid { grid-template-columns:1fr 1fr; }
}

/* ── Profile enhancements ── */
.ncd-profile-section-title {
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--d-green);margin:1.25rem 0 .75rem;padding-bottom:.5rem;
  border-bottom:1.5px solid var(--d-green-100);
}
.ncd-profile-info { display:flex;flex-direction:column;gap:4px; }

/* Avatar upload */
.ncd-avatar-upload-wrap { display:flex;flex-direction:column;align-items:center;gap:.6rem; }
.ncd-avatar-preview {
  width:88px;height:88px;border-radius:50%;overflow:hidden;
  background:var(--d-green-50);border:3px solid var(--d-green-100);
  display:flex;align-items:center;justify-content:center;
  position:relative;cursor:pointer;
}
.ncd-avatar-preview img { width:100%;height:100%;object-fit:cover;display:block; }
.ncd-avatar-icon { color:var(--d-green-600);opacity:.7; }
.ncd-avatar-upload-btn {
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:600;color:var(--d-green-600);cursor:pointer;
  background:var(--d-green-50);border:1px solid var(--d-green-100);
  padding:5px 12px;border-radius:50px;transition:background .2s;
  white-space:nowrap;
}
.ncd-avatar-upload-btn:hover { background:var(--d-green-100); }

/* Field section / unit rows */
.ncd-field-section-title {
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--d-green);margin:.25rem 0 .75rem;padding-bottom:.5rem;
  border-bottom:1.5px solid var(--d-green-100);grid-column:1/-1;
}
.ncd-field-row-3 { display:grid;grid-template-columns:1fr 1fr;gap:0 1rem; }
.ncd-field-row-unit,.ncd-field-with-unit { display:flex;flex-direction:column;gap:5px; }
.ncd-input-unit-wrap { display:flex;align-items:center;gap:0; }
.ncd-input-unit-wrap input { flex:1;border-radius:var(--d-r) 0 0 var(--d-r)!important;border-right:0!important; }
.ncd-unit-toggle { display:flex;flex-shrink:0; }
.ncd-unit-btn {
  padding:0 12px;height:44px;border:1.5px solid var(--d-ink-12);
  background:var(--d-cream);color:var(--d-ink-60);font-size:13px;font-weight:600;
  font-family:var(--d-fb);cursor:pointer;transition:all .2s;
  border-left:0;
}
.ncd-unit-btn:last-child { border-radius:0 var(--d-r) var(--d-r) 0; }
.ncd-unit-btn.active { background:var(--d-green);color:#fff;border-color:var(--d-green); }
.ncd-unit-btn:hover:not(.active) { background:var(--d-green-50);color:var(--d-green); }

/* Auth form — new field styles */
.ncd-field-row-3 { display:grid;grid-template-columns:1fr 1fr;gap:0 1rem; }
.ncd-field-row-unit { display:flex;gap:0;align-items:flex-end;margin-bottom:1rem; }
.ncd-field-grow { flex:1; }
.ncd-field-unit { width:80px;flex-shrink:0; }
.ncd-field-unit select { border-radius:0 var(--d-r) var(--d-r) 0!important;border-left:0!important; }
.ncd-field-grow input { border-radius:var(--d-r) 0 0 var(--d-r)!important;border-right:0!important; }

/* ── MEASURE ROW (weight/height + toggle) ── */
.ncd-measure-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
}
.ncd-measure-input {
  flex: 1;
  min-width: 0;
  border-radius: var(--d-r) 0 0 var(--d-r) !important;
  border-right: 0 !important;
  padding: 11px 14px;
  border: 1.5px solid var(--d-ink-12);
  font-size: 14px;
  font-family: var(--d-fb);
  color: var(--d-ink);
  background: var(--d-cream);
  transition: border-color .2s;
}
.ncd-measure-input:focus {
  outline: none;
  border-color: var(--d-green);
  background: var(--d-white);
}
.ncd-toggle-group {
  display: flex;
  flex-shrink: 0;
  border: 1.5px solid var(--d-ink-12);
  border-radius: 0 var(--d-r) var(--d-r) 0;
  overflow: hidden;
}
.ncd-toggle-btn {
  padding: 0 16px;
  height: 44px;
  background: var(--d-cream);
  color: var(--d-ink-60);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--d-fb);
  border: none;
  border-left: 1px solid var(--d-ink-12);
  cursor: pointer;
  transition: all .18s;
  white-space: nowrap;
}
.ncd-toggle-btn:first-child { border-left: none; }
.ncd-toggle-btn.active {
  background: var(--d-green);
  color: #fff;
}
.ncd-toggle-btn:hover:not(.active) {
  background: var(--d-green-50);
  color: var(--d-green);
}

/* ── 2-col field grid for sex + age ── */
.ncd-field-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}

/* ── Mobile dashboard fixes ── */
@media (max-width: 768px) {
  /* All 3 nav items must fit */
  .ncd-nav { gap: 2px; }
  .ncd-nav-item {
    padding: 8px 10px;
    font-size: 12px;
    gap: 6px;
    white-space: nowrap;
  }
  .ncd-nav-item svg { width: 15px; height: 15px; flex-shrink: 0; }
  /* Make sidebar name/email compact on mobile */
  .ncd-sidebar-name { font-size: 13px; }
  .ncd-sidebar-email { font-size: 11px; }
  /* Full-width measure rows on mobile */
  .ncd-measure-row { width: 100%; }
  .ncd-toggle-btn { padding: 0 12px; }
  /* 2-col grid stacks on small mobile */
  .ncd-field-grid2 { grid-template-columns: 1fr; }
}

/* ── BMI STAT CARD (overview) ── */
.ncd-stat-bmi { background:linear-gradient(135deg,var(--d-white),var(--d-green-50)); }
.ncd-bmi-label-top { font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--d-ink-60);margin-bottom:.25rem; }
.ncd-bmi-number { font-family:var(--d-fd);font-size:2.4rem;font-weight:700;line-height:1; }
.ncd-bmi-category { font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-top:2px;margin-bottom:.75rem; }
.ncd-bmi-scale-wrap { width:100%; }
.ncd-bmi-scale {
  height:8px;width:100%;border-radius:4px;position:relative;margin-bottom:4px;
  background:linear-gradient(90deg,#3b82f6 0%,#1fa868 30%,#f59e0b 65%,#ef4444 100%);
}
.ncd-bmi-marker {
  position:absolute;top:-3px;
  width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--d-ink);
  transform:translateX(-50%);
  transition:left .6s cubic-bezier(.25,.46,.45,.94);
  box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.ncd-bmi-scale-labels { display:flex;justify-content:space-between;font-size:9px;color:var(--d-ink-60);font-family:var(--d-fm); }

/* ── BMI CARD (profile) ── */
.ncd-bmi-card {
  background:var(--d-white);border:1px solid var(--d-ink-12);border-radius:var(--d-r-lg);
  padding:1.5rem;margin-top:1.5rem;box-shadow:var(--d-sh);
}
.ncd-bmi-card-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem; }
.ncd-bmi-card-header h3 { font-family:var(--d-fd);font-size:1.1rem;margin:0; }
.ncd-bmi-updated { font-size:11px;color:var(--d-ink-60); }
.ncd-bmi-card-body { display:grid;grid-template-columns:180px 1fr;gap:1.5rem;align-items:center; }
.ncd-bmi-gauge { width:100%;max-width:200px; }
.ncd-bmi-ranges { display:flex;flex-direction:column;gap:8px; }
.ncd-bmi-range {
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:var(--d-r);
  border:1px solid var(--d-ink-12);background:var(--d-cream);
  font-size:13px;
}
.ncd-bmi-dot { width:10px;height:10px;border-radius:50%;flex-shrink:0; }
.ncd-bmi-range span:nth-child(2) { flex:1;font-weight:500;color:var(--d-ink); }
.ncd-bmi-range-val { font-family:var(--d-fm);font-size:12px;color:var(--d-ink-60); }
.ncd-bmi-detail {
  display:flex;gap:1.5rem;flex-wrap:wrap;
  margin-top:1rem;padding-top:1rem;
  border-top:1px solid var(--d-ink-12);
  font-size:13px;color:var(--d-ink-60);
}
.ncd-bmi-detail strong { color:var(--d-ink); }
@media (max-width:640px) {
  .ncd-bmi-card-body { grid-template-columns:1fr; }
  .ncd-bmi-gauge { max-width:160px;margin:0 auto; }
}

/* ── BMI empty state ── */
.ncd-bmi-empty {
  display:flex;flex-direction:column;align-items:center;
  text-align:center;padding:1.5rem;gap:.75rem;
}
.ncd-bmi-empty-icon { font-size:40px; }
.ncd-bmi-empty p { font-size:14px;color:var(--d-ink-60);line-height:1.65;margin:0; }
.ncd-bmi-empty strong { color:var(--d-green); }

/* ══════════════════════════════════════
   BMI OVERVIEW CARD (above recent meals)
══════════════════════════════════════ */
.ncd-bmi-overview-card { padding:1.25rem 1.5rem; }

.ncd-bmi-ov-inner {
  display: grid;
  grid-template-columns: 180px 1px 1fr 140px;
  gap: 0;
  align-items: center;
  min-height: 130px;
}

/* Gauge column */
.ncd-bmi-ov-gauge-wrap { display:flex;flex-direction:column;align-items:center;padding-right:1.25rem; }
.ncd-bmi-ov-svg { width:150px;height:90px; }
.ncd-bmi-ov-label { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--d-ink-60);margin-top:-.25rem; }

/* Vertical divider */
.ncd-bmi-ov-divider { width:1px;background:var(--d-ink-12);align-self:stretch;margin:0 1.25rem; }

/* Ranges column */
.ncd-bmi-ov-ranges { display:flex;flex-direction:column;gap:6px; }
.ncd-bmi-ov-range {
  display:flex;align-items:center;gap:10px;
  padding:7px 12px;border-radius:var(--d-r);
  border:1px solid var(--d-ink-12);
  background:var(--d-cream);
  transition:all .2s;
}
.ncd-bmi-ov-range--active { font-weight:600; }
.ncd-bmi-ov-dot { width:9px;height:9px;border-radius:50%;flex-shrink:0; }
.ncd-bmi-ov-range-text { display:flex;flex-direction:column;flex:1;gap:1px; }
.ncd-bmi-ov-cat { font-size:13px;font-weight:500;color:var(--d-ink); }
.ncd-bmi-ov-range-val { font-size:11px;color:var(--d-ink-60);font-family:var(--d-fm); }
.ncd-bmi-ov-you { font-size:11px;font-weight:700;color:var(--d-green);white-space:nowrap;flex-shrink:0; }

/* Stats column */
.ncd-bmi-ov-stats {
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  padding-left:1.25rem;border-left:1px solid var(--d-ink-12);text-align:center;
}
.ncd-bmi-ov-stat { display:flex;flex-direction:column;gap:2px; }
.ncd-bmi-ov-stat-val { font-family:var(--d-fm);font-size:1rem;font-weight:700;color:var(--d-ink); }
.ncd-bmi-ov-stat-lbl { font-size:10px;color:var(--d-ink-60);text-transform:uppercase;letter-spacing:.5px;font-weight:600; }
.ncd-bmi-ov-edit { font-size:12px;color:var(--d-green);font-weight:600;text-decoration:none;margin-top:.25rem; }
.ncd-bmi-ov-edit:hover { text-decoration:underline; }

/* Empty state */
.ncd-bmi-ov-empty {
  display:flex;align-items:center;gap:1rem;padding:.5rem;
}
.ncd-bmi-ov-empty-icon { font-size:36px;flex-shrink:0; }
.ncd-bmi-ov-empty strong { display:block;font-size:15px;font-family:var(--d-fd);margin-bottom:4px; }
.ncd-bmi-ov-empty p { font-size:13px;color:var(--d-ink-60);margin:0;line-height:1.55; }
.ncd-bmi-ov-empty a { color:var(--d-green);font-weight:600;text-decoration:none; }

/* Mobile */
@media (max-width:768px) {
  .ncd-bmi-ov-inner { grid-template-columns:1fr;gap:1rem; }
  .ncd-bmi-ov-divider { display:none; }
  .ncd-bmi-ov-gauge-wrap { padding-right:0; }
  .ncd-bmi-ov-svg { width:130px;height:78px; }
  .ncd-bmi-ov-stats { border-left:none;padding-left:0;border-top:1px solid var(--d-ink-12);padding-top:.75rem;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:1rem; }
}
