/**
 * NC Dashboard — v3 "Instrument" skin
 * ------------------------------------------------------------------
 * Loads AFTER dashboard.css and dashboard-v2-skin.css (declared as
 * dependencies in the enqueue), so these rules win the cascade without
 * needing !important on structural properties.
 *
 * Direction: scientific instrument panel, not sci-fi HUD. The brand
 * value is "Accuracy First", so numerics are set in a monospace face
 * with tabular figures and depth comes from layered translucency
 * rather than glow on every surface. Boldness is spent in exactly one
 * place — the Day Arc — and everything around it stays quiet.
 *
 * Every section is restyled, not just Overview, so History / Planner /
 * Profile etc. don't render as light-on-dark leftovers.
 */

.ncd-dashboard{
  /* Green-biased darks — never neutral black, keeps brand in shadow */
  --v3-void:#06120E;
  --v3-panel:#0B1C16;
  --v3-panel-2:#11291F;
  --v3-raised:#16362A;
  --v3-line:rgba(232,245,239,.07);
  --v3-line-2:rgba(184,242,77,.14);

  --v3-lime:#B8F24D;
  --v3-mint:#4DE8A8;
  --v3-amber:#F2B84D;
  --v3-rose:#F2708C;
  --v3-blue:#4D9BE8;

  --v3-ice:#E8F5EF;
  --v3-muted:#7FA394;
  --v3-muted-2:#557267;

  --v3-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --v3-display:'Space Grotesk','Inter',system-ui,sans-serif;
}

/* ── SHELL ───────────────────────────────────────────────── */
.ncd-dashboard{
  background:var(--v3-void);
  color:var(--v3-ice);
  position:relative;
}
.ncd-dashboard::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(900px 500px at 78% -8%, rgba(184,242,77,.06), transparent 60%),
    radial-gradient(700px 500px at 5% 105%, rgba(77,232,168,.045), transparent 60%);
}
.ncd-dashboard > *{position:relative;z-index:1}
.ncd-main{background:transparent}

.ncd-v3-mono{font-family:var(--v3-mono);font-variant-numeric:tabular-nums}

/* ── SIDEBAR ─────────────────────────────────────────────── */
.ncd-dashboard .ncd-sidebar{
  background:linear-gradient(180deg,var(--v3-panel) 0%,#081711 100%);
  border-right:1px solid var(--v3-line);
}
.ncd-dashboard .ncd-sidebar-top{border-bottom:1px solid var(--v3-line)}
.ncd-dashboard .ncd-sidebar-name{
  color:var(--v3-ice);font-family:var(--v3-display);font-weight:600;letter-spacing:-.01em;
}
.ncd-dashboard .ncd-sidebar-email{
  color:var(--v3-muted-2);font-family:var(--v3-mono);font-size:10.5px;word-break:break-all;
}
.ncd-dashboard .ncd-sidebar-goal{
  background:rgba(184,242,77,.12);color:var(--v3-lime);
  border:1px solid rgba(184,242,77,.22);
}
.ncd-dashboard .ncd-avatar{
  background:linear-gradient(135deg,#2C5F49,#153728);
  border:1.5px solid rgba(184,242,77,.28);color:var(--v3-ice);
}

/* Level ring wraps the avatar — identity and progress become one object */
.ncd-v3-ava-shell{position:relative;display:inline-block}
.ncd-v3-ring{position:absolute;inset:-7px;transform:rotate(-90deg);pointer-events:none}
.ncd-v3-ring circle{fill:none;stroke-width:2.5;stroke-linecap:round}
.ncd-v3-ring .bg{stroke:rgba(232,245,239,.09)}
.ncd-v3-ring .fg{stroke:var(--v3-lime);filter:drop-shadow(0 0 5px rgba(184,242,77,.5));transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}
.ncd-v3-lvl{
  position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);
  background:var(--v3-lime);color:#08160F;
  font-family:var(--v3-mono);font-size:9.5px;font-weight:700;letter-spacing:.04em;
  padding:2px 9px;border-radius:20px;white-space:nowrap;z-index:2;
}
.ncd-v3-xp{margin-top:12px}
.ncd-v3-xp-track{height:4px;background:rgba(232,245,239,.08);border-radius:9px;overflow:hidden;margin-bottom:5px}
.ncd-v3-xp-fill{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--v3-mint),var(--v3-lime))}
.ncd-v3-xp-txt{font-family:var(--v3-mono);font-size:10px;color:var(--v3-muted)}

.ncd-dashboard .ncd-nav-item{
  color:var(--v3-muted);background:transparent;border:none;
  border-radius:10px;transition:background .16s,color .16s,transform .16s;
}
.ncd-dashboard .ncd-nav-item:hover{
  background:rgba(232,245,239,.05);color:var(--v3-ice);transform:translateX(2px);
}
.ncd-dashboard .ncd-nav-item.active{
  background:linear-gradient(90deg,rgba(184,242,77,.15),rgba(184,242,77,.02));
  color:var(--v3-lime);font-weight:600;position:relative;
}
.ncd-dashboard .ncd-nav-item.active::before{
  content:'';position:absolute;left:0;top:22%;bottom:22%;width:2.5px;
  border-radius:0 3px 3px 0;background:var(--v3-lime);box-shadow:0 0 9px var(--v3-lime);
}

.ncd-dashboard .ncd-usage{border-top:1px solid var(--v3-line)}
.ncd-dashboard .ncd-usage-label{color:var(--v3-muted);font-family:var(--v3-mono);font-size:10px}
.ncd-dashboard .ncd-usage-track{background:rgba(232,245,239,.08)}
.ncd-dashboard .ncd-usage-fill{background:var(--v3-amber)}
.ncd-dashboard .ncd-upgrade-btn{
  background:linear-gradient(135deg,rgba(242,184,77,.16),rgba(242,184,77,.06));
  border:1px solid rgba(242,184,77,.3);color:var(--v3-amber);
}
.ncd-dashboard .ncd-upgrade-btn:hover{background:rgba(242,184,77,.22)}
.ncd-dashboard .ncd-logout-btn{
  color:var(--v3-muted);background:transparent;border:1px solid var(--v3-line);
}
.ncd-dashboard .ncd-logout-btn:hover{color:var(--v3-rose);border-color:rgba(242,112,140,.35)}

.ncd-dashboard .ncd-sidebar-aff{
  background:rgba(232,245,239,.035);border:1px solid var(--v3-line);
}
.ncd-dashboard .ncd-sidebar-aff-name{color:var(--v3-ice)}
.ncd-dashboard .ncd-sidebar-aff-price,
.ncd-dashboard .ncd-sidebar-aff-badge{color:var(--v3-muted)}
.ncd-dashboard .ncd-sidebar-aff-btn{background:var(--v3-raised);color:var(--v3-lime)}

/* Slightly off-white so the plate doesn't punch a hole in a panel this
   dark, with a hairline to tie it back to the rest of the instrument. */
.ncd-dashboard .ncd-sidebar-aff-thumb{
  background:#f4f7f5;border:1px solid var(--v3-line);border-radius:12px;
}
.ncd-dashboard .ncd-sidebar-aff-thumb--icon{background:transparent;border-color:transparent}

/* ── HEADERS / GENERIC CARDS (applies to every section) ──── */
.ncd-dashboard .ncd-section-header h2{
  font-family:var(--v3-display);font-weight:600;color:var(--v3-ice);letter-spacing:-.025em;
}
.ncd-dashboard .ncd-card,
.ncd-dashboard .ncd-stat-card,
.ncd-dashboard .ncd-bmi-overview-card,
.ncd-dashboard .ncd-upgrade-card,
.ncd-dashboard .ncd-empty-state,
.ncd-dashboard .ncd-empty-full,
.ncd-dashboard .ncd-profile-form{
  background:linear-gradient(160deg,var(--v3-panel-2) 0%,var(--v3-panel) 100%);
  border:1px solid var(--v3-line);
  color:var(--v3-ice);
}
.ncd-dashboard .ncd-card-header h3{
  font-family:var(--v3-mono);font-size:10.5px;font-weight:500;
  letter-spacing:.15em;text-transform:uppercase;color:var(--v3-muted);
}
.ncd-dashboard .ncd-link{color:var(--v3-lime);background:none;border:none}
.ncd-dashboard .ncd-stat-label,
.ncd-dashboard .ncd-stat-sub,
.ncd-dashboard .ncd-mbar-lbl,
.ncd-dashboard .ncd-meal-meta,
.ncd-dashboard .ncd-member-since,
.ncd-dashboard .ncd-optional{color:var(--v3-muted)}
.ncd-dashboard .ncd-stat-num,
.ncd-dashboard .ncd-mbar-val{
  color:var(--v3-ice);font-family:var(--v3-mono);font-variant-numeric:tabular-nums;
}
.ncd-dashboard .ncd-mbar-track,
.ncd-dashboard .ncd-bmi-scale{background:rgba(232,245,239,.07)}

.ncd-dashboard .ncd-analyze-cta{
  background:var(--v3-lime);color:#08160F;border:none;font-weight:700;
  box-shadow:0 5px 22px rgba(184,242,77,.24);transition:transform .16s,box-shadow .16s;
}
.ncd-dashboard .ncd-analyze-cta:hover{
  transform:translateY(-2px);box-shadow:0 9px 30px rgba(184,242,77,.34);
}

/* ── HERO ROW: Day Arc + Streak ──────────────────────────── */
.ncd-v3-hero{
  display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-bottom:18px;
}
.ncd-v3-card{
  background:linear-gradient(160deg,var(--v3-panel-2) 0%,var(--v3-panel) 100%);
  border:1px solid var(--v3-line);border-radius:22px;padding:24px;
  position:relative;overflow:hidden;
}
.ncd-v3-card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}
.ncd-v3-card-h h3{
  font-family:var(--v3-mono);font-size:10.5px;font-weight:500;margin:0;
  letter-spacing:.15em;text-transform:uppercase;color:var(--v3-muted);
}
.ncd-v3-card-h a,.ncd-v3-card-h button{
  font-size:12px;color:var(--v3-lime);text-decoration:none;font-weight:600;
  background:none;border:none;cursor:pointer;padding:0;
}
.ncd-v3-card-h a:hover,.ncd-v3-card-h button:hover{text-decoration:underline}

/* SIGNATURE — Day Arc */
.ncd-v3-arc-card{display:flex;flex-direction:column}
.ncd-v3-arc-wrap{position:relative;flex:1;display:grid;place-items:center;padding-top:4px}
.ncd-v3-arc-svg{width:100%;max-width:340px;height:auto;overflow:visible}
.ncd-v3-arc-track{fill:none;stroke:rgba(232,245,239,.07);stroke-width:11;stroke-linecap:round}
.ncd-v3-arc-fill{
  fill:none;stroke:url(#ncdArcGrad);stroke-width:11;stroke-linecap:round;
  filter:drop-shadow(0 0 7px rgba(184,242,77,.35));
  animation:ncdArcDraw 1.5s cubic-bezier(.22,1,.36,1) .2s backwards;
}
@keyframes ncdArcDraw{from{stroke-dashoffset:440}}
.ncd-v3-node{cursor:pointer}
.ncd-v3-node circle.dot{transition:r .18s,fill .18s}
.ncd-v3-node:hover circle.dot{r:8;fill:var(--v3-lime)}
.ncd-v3-arc-center{
  position:absolute;top:56%;left:50%;transform:translate(-50%,-50%);
  text-align:center;pointer-events:none;width:100%;
}
.ncd-v3-arc-num{
  font-family:var(--v3-mono);font-size:42px;font-weight:700;
  letter-spacing:-.04em;line-height:1;display:block;color:var(--v3-ice);
  font-variant-numeric:tabular-nums;
}
.ncd-v3-arc-num.over{color:var(--v3-amber)}
.ncd-v3-arc-unit{font-family:var(--v3-mono);font-size:11.5px;color:var(--v3-muted);letter-spacing:.06em}
.ncd-v3-arc-sub{font-size:11.5px;color:var(--v3-muted);margin-top:7px}
.ncd-v3-arc-scale{
  display:flex;justify-content:space-between;font-family:var(--v3-mono);
  font-size:9.5px;color:var(--v3-muted-2);letter-spacing:.06em;margin-top:-4px;padding:0 6px;
}
.ncd-v3-arc-empty{text-align:center;padding:26px 10px;color:var(--v3-muted);font-size:13px}
.ncd-v3-arc-empty strong{display:block;color:var(--v3-ice);font-size:15px;margin-bottom:6px;font-family:var(--v3-display)}

/* Streak */
.ncd-v3-streak-card{display:flex;flex-direction:column;gap:16px}
.ncd-v3-streak-hero{display:flex;align-items:center;gap:16px}
.ncd-v3-flame{
  width:62px;height:62px;border-radius:18px;flex-shrink:0;
  background:linear-gradient(145deg,rgba(242,184,77,.22),rgba(242,112,140,.12));
  border:1px solid rgba(242,184,77,.32);
  display:grid;place-items:center;font-size:29px;
  animation:ncdEmber 3.2s ease-in-out infinite;
}
.ncd-v3-flame.cold{
  background:rgba(232,245,239,.05);border-color:var(--v3-line);
  animation:none;filter:grayscale(1);opacity:.6;
}
@keyframes ncdEmber{
  0%,100%{box-shadow:0 0 0 0 rgba(242,184,77,.28)}
  50%{box-shadow:0 0 22px 3px rgba(242,184,77,.18)}
}
.ncd-v3-streak-n{
  font-family:var(--v3-mono);font-size:38px;font-weight:700;line-height:1;
  letter-spacing:-.04em;color:var(--v3-ice);font-variant-numeric:tabular-nums;
}
.ncd-v3-streak-lb{font-size:12.5px;color:var(--v3-muted);margin-top:3px}
.ncd-v3-streak-note{font-size:12px;margin-top:5px;font-weight:500;color:var(--v3-amber)}
.ncd-v3-streak-note.good{color:var(--v3-mint)}

.ncd-v3-chain{display:flex;gap:7px}
.ncd-v3-day{flex:1;text-align:center;min-width:0}
.ncd-v3-day-dot{
  height:38px;border-radius:9px;display:grid;place-items:center;
  font-family:var(--v3-mono);font-size:12px;font-weight:700;margin-bottom:5px;
  border:1px solid transparent;
}
.ncd-v3-day.done .ncd-v3-day-dot{
  background:rgba(77,232,168,.15);border-color:rgba(77,232,168,.35);color:var(--v3-mint);
}
.ncd-v3-day.today .ncd-v3-day-dot{
  background:rgba(184,242,77,.16);border-color:var(--v3-lime);color:var(--v3-lime);
  animation:ncdBeat 2.4s ease-in-out infinite;
}
.ncd-v3-day.today.done .ncd-v3-day-dot{
  background:rgba(184,242,77,.22);
}
@keyframes ncdBeat{
  0%,100%{box-shadow:0 0 0 0 rgba(184,242,77,.4)}
  50%{box-shadow:0 0 0 5px rgba(184,242,77,0)}
}
.ncd-v3-day.off .ncd-v3-day-dot{
  background:rgba(232,245,239,.035);border-color:var(--v3-line);color:var(--v3-muted-2);
}
.ncd-v3-day-lb{
  font-family:var(--v3-mono);font-size:9px;color:var(--v3-muted-2);
  letter-spacing:.05em;overflow:hidden;text-overflow:ellipsis;
}

/* ── MACRO TELEMETRY ─────────────────────────────────────── */
.ncd-v3-tele{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.ncd-v3-t{
  background:var(--v3-panel);border:1px solid var(--v3-line);
  border-radius:14px;padding:17px 18px;transition:border-color .18s,transform .18s;
}
.ncd-v3-t:hover{border-color:var(--v3-line-2);transform:translateY(-2px)}
.ncd-v3-t-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:11px;gap:8px}
.ncd-v3-t-name{
  font-family:var(--v3-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--v3-muted);
}
.ncd-v3-t-val{
  font-family:var(--v3-mono);font-size:19px;font-weight:700;
  letter-spacing:-.02em;color:var(--v3-ice);font-variant-numeric:tabular-nums;white-space:nowrap;
}
.ncd-v3-t-val small{font-size:11px;color:var(--v3-muted-2);font-weight:400}
.ncd-v3-t-bar{height:5px;background:rgba(232,245,239,.07);border-radius:9px;overflow:hidden}
.ncd-v3-t-bar i{display:block;height:100%;border-radius:9px;animation:ncdGrow 1.1s cubic-bezier(.22,1,.36,1) .35s backwards}
@keyframes ncdGrow{from{width:0}}
.ncd-v3-t-meta{font-family:var(--v3-mono);font-size:9.5px;color:var(--v3-muted-2);margin-top:8px;letter-spacing:.04em}

/* ── MISSIONS + ACHIEVEMENTS ─────────────────────────────── */
.ncd-v3-grid2{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-bottom:18px}
.ncd-v3-mission{
  display:flex;align-items:center;gap:13px;padding:13px 0;
  border-bottom:1px solid var(--v3-line);
}
.ncd-v3-mission:last-child{border-bottom:none;padding-bottom:0}
.ncd-v3-chk{
  width:23px;height:23px;border-radius:7px;flex-shrink:0;
  border:1.5px solid var(--v3-muted-2);display:grid;place-items:center;
  font-size:12px;color:transparent;transition:all .18s;
}
.ncd-v3-mission.ok .ncd-v3-chk{background:var(--v3-mint);border-color:var(--v3-mint);color:#06120E}
.ncd-v3-m-name{font-size:13.5px;font-weight:500;flex:1;color:var(--v3-ice);min-width:0}
.ncd-v3-mission.ok .ncd-v3-m-name{color:var(--v3-muted);text-decoration:line-through;text-decoration-color:var(--v3-muted-2)}
.ncd-v3-m-prog{font-family:var(--v3-mono);font-size:10.5px;color:var(--v3-muted-2);white-space:nowrap}
.ncd-v3-m-xp{
  font-family:var(--v3-mono);font-size:10.5px;color:var(--v3-lime);font-weight:700;
  background:rgba(184,242,77,.1);padding:3px 8px;border-radius:20px;white-space:nowrap;
}
.ncd-v3-mission.ok .ncd-v3-m-xp{color:var(--v3-muted-2);background:rgba(232,245,239,.05)}
.ncd-v3-earned{font-family:var(--v3-mono);font-size:11px;color:var(--v3-lime)}

.ncd-v3-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.ncd-v3-badge{
  text-align:center;padding:14px 6px;border-radius:14px;
  background:rgba(232,245,239,.03);border:1px solid var(--v3-line);
  transition:transform .18s;
}
.ncd-v3-badge:hover{transform:translateY(-3px)}
.ncd-v3-badge-em{font-size:22px;display:block;margin-bottom:6px}
.ncd-v3-badge-n{font-size:10px;color:var(--v3-muted);line-height:1.35;display:block}
.ncd-v3-badge.locked{opacity:.4}
.ncd-v3-badge.locked .ncd-v3-badge-em{filter:grayscale(1)}
.ncd-v3-next{margin-top:14px;padding-top:14px;border-top:1px solid var(--v3-line)}
.ncd-v3-next-top{display:flex;justify-content:space-between;font-size:11.5px;color:var(--v3-muted);margin-bottom:7px;gap:10px}
.ncd-v3-next-top b{color:var(--v3-ice);font-weight:600}
.ncd-v3-next-bar{height:5px;background:rgba(232,245,239,.07);border-radius:9px;overflow:hidden}
.ncd-v3-next-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--v3-mint),var(--v3-lime));border-radius:9px}

/* ── MEAL CARDS (Overview + History + Barcode) ───────────── */
.ncd-dashboard .ncd-meal-card{
  background:var(--v3-panel);border:1px solid var(--v3-line);
  transition:transform .18s,border-color .18s;
}
.ncd-dashboard .ncd-meal-card:hover{transform:translateY(-4px);border-color:var(--v3-line-2)}
.ncd-dashboard .ncd-meal-name{color:var(--v3-ice)}
.ncd-dashboard .ncd-meal-meta{font-family:var(--v3-mono);font-size:10.5px;color:var(--v3-muted-2)}
.ncd-dashboard .ncd-meal-img-placeholder{background:var(--v3-raised)}
.ncd-dashboard .ncd-meal-score{
  background:rgba(6,18,14,.82);backdrop-filter:blur(7px);
  font-family:var(--v3-mono);font-weight:700;
}
.ncd-dashboard .ncd-tag{
  background:rgba(232,245,239,.06);color:var(--v3-muted);border:1px solid var(--v3-line);
}

/* ── BMI CARD ────────────────────────────────────────────── */
.ncd-dashboard .ncd-bmi-ov-range{background:rgba(232,245,239,.03);border:1px solid var(--v3-line)}
.ncd-dashboard .ncd-bmi-ov-cat{color:var(--v3-ice)}
.ncd-dashboard .ncd-bmi-ov-range-val,
.ncd-dashboard .ncd-bmi-ov-stat-lbl,
.ncd-dashboard .ncd-bmi-ov-label{color:var(--v3-muted)}
.ncd-dashboard .ncd-bmi-ov-stat-val{color:var(--v3-ice);font-family:var(--v3-mono)}
.ncd-dashboard .ncd-bmi-ov-divider{background:var(--v3-line)}
.ncd-dashboard .ncd-bmi-ov-edit{color:var(--v3-lime)}
.ncd-dashboard .ncd-bmi-ov-svg text{fill:var(--v3-ice)!important}

/* ── AD SLOT ─────────────────────────────────────────────── */
.ncd-dashboard .ncd-ad-slot-inner{
  background:rgba(232,245,239,.025);border:1px dashed var(--v3-line);color:var(--v3-muted-2);
}
.ncd-dashboard .ncd-ad-slot-label{color:var(--v3-muted-2);font-family:var(--v3-mono);font-size:9.5px}

/* ── FORMS (Profile section) ─────────────────────────────── */
.ncd-dashboard input[type=text],
.ncd-dashboard input[type=email],
.ncd-dashboard input[type=number],
.ncd-dashboard input[type=password],
.ncd-dashboard select,
.ncd-dashboard textarea{
  background:rgba(232,245,239,.04);
  border:1px solid var(--v3-line);
  color:var(--v3-ice);
}
.ncd-dashboard input::placeholder,
.ncd-dashboard textarea::placeholder{color:var(--v3-muted-2)}
.ncd-dashboard input:focus,
.ncd-dashboard select:focus,
.ncd-dashboard textarea:focus{
  border-color:var(--v3-lime);outline:none;
  box-shadow:0 0 0 3px rgba(184,242,77,.12);
}
.ncd-dashboard label,
.ncd-dashboard .ncd-field-section-title,
.ncd-dashboard .ncd-profile-section-title{color:var(--v3-ice)}
.ncd-dashboard .ncd-unit-btn,
.ncd-dashboard .ncd-toggle-btn,
.ncd-dashboard .ncd-tab{
  background:rgba(232,245,239,.04);border:1px solid var(--v3-line);color:var(--v3-muted);
}
.ncd-dashboard .ncd-unit-btn.active,
.ncd-dashboard .ncd-toggle-btn.active,
.ncd-dashboard .ncd-tab.active{
  background:rgba(184,242,77,.15);border-color:var(--v3-lime);color:var(--v3-lime);
}
.ncd-dashboard .ncd-btn-save,
.ncd-dashboard .ncd-btn-submit,
.ncd-dashboard .ncd-load-more{
  background:var(--v3-lime);color:#08160F;border:none;font-weight:700;
}
.ncd-dashboard .ncd-btn-save:hover,
.ncd-dashboard .ncd-load-more:hover{background:#C9F86B}

/* ── MODAL (report detail) ───────────────────────────────── */
.ncd-dashboard .ncd-modal-box,
.ncd-modal-box{
  background:linear-gradient(160deg,var(--v3-panel-2,#11291F) 0%,var(--v3-panel,#0B1C16) 100%);
  color:#E8F5EF;border:1px solid rgba(232,245,239,.07);
}
.ncd-modal-box .ncd-report-macro-num{color:#E8F5EF;font-family:'JetBrains Mono',monospace}
.ncd-modal-box .ncd-report-macro-lbl,
.ncd-modal-box .ncd-report-meta{color:#7FA394}

/* ── EMPTY STATES ────────────────────────────────────────── */
.ncd-dashboard .ncd-empty-state h3,
.ncd-dashboard .ncd-empty-full h3{color:var(--v3-ice);font-family:var(--v3-display)}
.ncd-dashboard .ncd-empty-state p,
.ncd-dashboard .ncd-empty-full p{color:var(--v3-muted)}

/* ── GREETING HEADER ─────────────────────────────────────── */
.ncd-v3-top{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:20px;flex-wrap:wrap;margin-bottom:24px;
}
.ncd-v3-eyebrow{
  font-family:var(--v3-mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--v3-muted-2);margin-bottom:5px;
}
.ncd-v3-hi{
  font-family:var(--v3-display);font-size:30px;font-weight:600;
  margin:0;letter-spacing:-.025em;color:var(--v3-ice);line-height:1.15;
}
.ncd-v3-hi em{font-style:normal;color:var(--v3-lime)}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:1050px){
  .ncd-v3-hero,.ncd-v3-grid2{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ncd-v3-tele{grid-template-columns:1fr}
  .ncd-v3-badges{grid-template-columns:repeat(2,1fr)}
  .ncd-v3-hi{font-size:24px}
  .ncd-v3-card{padding:18px}
  .ncd-v3-day-lb{font-size:8px}
}

/* Quality floor: motion is decoration here, never information */
@media(prefers-reduced-motion:reduce){
  .ncd-dashboard *,
  .ncd-dashboard *::before,
  .ncd-dashboard *::after{
    animation:none!important;transition:none!important;
  }
}

/* ── CONTEXTUAL AFFILIATE SLOT ────────────────────────────────
   Deliberately styled as a native recommendation card rather than a
   banner: same panel material, radius and hairline as every other
   card on the dashboard. A slot that looks like an ad gets ignored
   like an ad. The disclosure stays visible at all times — FTC
   requires it, and hiding it would undercut the trust that makes
   these convert in the first place. */
.ncd-dashboard .ncd-aff-slot{margin:18px 0}
.ncd-dashboard .ncd-aff-label{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--v3-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--v3-muted-2);margin-bottom:8px;
}
.ncd-dashboard .ncd-aff-label a{color:var(--v3-muted-2);text-decoration:underline;text-underline-offset:2px}
.ncd-dashboard .ncd-aff-label a:hover{color:var(--v3-muted)}

.ncd-dashboard .ncd-aff-card{
  display:flex;align-items:center;gap:18px;
  background:linear-gradient(160deg,var(--v3-panel-2) 0%,var(--v3-panel) 100%);
  border:1px solid var(--v3-line);border-radius:18px;
  padding:18px 20px;text-decoration:none;color:inherit;
  transition:border-color .18s,transform .18s,box-shadow .18s;
}
.ncd-dashboard .ncd-aff-card:hover{
  border-color:var(--v3-line-2);transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}

.ncd-dashboard .ncd-aff-media{
  width:74px;height:74px;flex-shrink:0;border-radius:14px;overflow:hidden;
  background:rgba(232,245,239,.05);border:1px solid var(--v3-line);
  display:grid;place-items:center;
}
.ncd-dashboard .ncd-aff-media img{width:100%;height:100%;object-fit:cover;display:block}
.ncd-dashboard .ncd-aff-icon{font-size:32px}

.ncd-dashboard .ncd-aff-body{flex:1;min-width:0}
/* The "why" line is the whole point — it proves the pick came from
   the user's own data, so it gets the accent colour and top billing. */
.ncd-dashboard .ncd-aff-why{
  font-family:var(--v3-mono);font-size:10px;letter-spacing:.06em;
  color:var(--v3-lime);margin-bottom:6px;
}
.ncd-dashboard .ncd-aff-name{
  font-family:var(--v3-display);font-size:15.5px;font-weight:600;
  color:var(--v3-ice);margin-bottom:4px;
}
.ncd-dashboard .ncd-aff-blurb{
  font-size:12.5px;color:var(--v3-muted);line-height:1.55;
}

.ncd-dashboard .ncd-aff-cta{
  display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;
}
.ncd-dashboard .ncd-aff-price{
  font-family:var(--v3-mono);font-size:17px;font-weight:700;color:var(--v3-ice);
}
.ncd-dashboard .ncd-aff-btn{
  background:var(--v3-lime);color:#08160F;
  font-size:12.5px;font-weight:700;padding:9px 16px;border-radius:10px;
  white-space:nowrap;transition:background .16s;
}
.ncd-dashboard .ncd-aff-card:hover .ncd-aff-btn{background:#C9F86B}

@media(max-width:640px){
  .ncd-dashboard .ncd-aff-card{flex-wrap:wrap;gap:14px}
  .ncd-dashboard .ncd-aff-media{width:54px;height:54px}
  .ncd-dashboard .ncd-aff-icon{font-size:24px}
  .ncd-dashboard .ncd-aff-body{flex:1 1 60%}
  .ncd-dashboard .ncd-aff-cta{flex-direction:row;align-items:center;justify-content:space-between;flex:1 1 100%}
}
