@import url("auth-dashboard.css");
/* NextMove Phase 4A — Global frontend foundation
   Shared visual system only. No business/auth/data logic. */

:root {
  color-scheme: light;
  --nm-bg: #f5f8fa;
  --nm-surface: #ffffff;
  --nm-surface-2: #eef4f5;
  --nm-surface-3: #e6eff0;
  --nm-text: #0e2030;
  --nm-text-soft: #344b5d;
  --nm-muted: #566e7e;
  --nm-line: rgba(15, 45, 60, .12);
  --nm-line-strong: rgba(15, 45, 60, .20);
  --nm-primary: #008f83;
  --nm-primary-strong: #006f68;
  --nm-primary-soft: rgba(0, 143, 131, .10);
  --nm-primary-border: rgba(0, 143, 131, .25);
  --nm-success: #167a4b;
  --nm-warning: #9b6300;
  --nm-danger: #b42318;
  --nm-info: #1769aa;
  --nm-shadow-xs: 0 1px 2px rgba(16, 42, 55, .05);
  --nm-shadow-sm: 0 8px 24px rgba(16, 42, 55, .08);
  --nm-shadow-md: 0 18px 44px rgba(16, 42, 55, .12);
  --nm-radius-sm: 8px;
  --nm-radius: 14px;
  --nm-radius-lg: 22px;
  --nm-container: 1180px;
  --nm-nav-height: 72px;
  --nm-focus: 0 0 0 3px rgba(0, 143, 131, .22);
  --nm-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --nm-bg: #071018;
  --nm-surface: #0d1822;
  --nm-surface-2: #111f2b;
  --nm-surface-3: #172735;
  --nm-text: #f3f8fa;
  --nm-text-soft: #c3d1d9;
  --nm-muted: #8fa2ae;
  --nm-line: rgba(224, 242, 246, .10);
  --nm-line-strong: rgba(224, 242, 246, .18);
  --nm-primary: #18c5b3;
  --nm-primary-strong: #65dfd1;
  --nm-primary-soft: rgba(24, 197, 179, .11);
  --nm-primary-border: rgba(24, 197, 179, .28);
  --nm-success: #55c98a;
  --nm-warning: #f7bd5c;
  --nm-danger: #ff8a80;
  --nm-info: #7bb9ef;
  --nm-shadow-xs: 0 1px 2px rgba(0, 0, 0, .24);
  --nm-shadow-sm: 0 10px 28px rgba(0, 0, 0, .26);
  --nm-shadow-md: 0 22px 56px rgba(0, 0, 0, .34);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--nm-bg); }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--nm-bg);
  color: var(--nm-text-soft);
  font-family: var(--nm-font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body, button, input, select, textarea { font-family: var(--nm-font); }
img { max-width: 100%; }
a { color: var(--nm-primary); }

:focus { outline: none; }
:focus-visible { box-shadow: var(--nm-focus); outline: 2px solid transparent; border-radius: 6px; }
::selection { background: var(--nm-primary-soft); color: var(--nm-text); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Layout */
.nm-container { width: min(calc(100% - 32px), var(--nm-container)); margin-inline: auto; }
.nm-section { padding: clamp(56px, 7vw, 92px) 0; }
.nm-section-compact { padding: clamp(36px, 5vw, 64px) 0; }
.nm-eyebrow { color: var(--nm-primary); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.nm-title { color: var(--nm-text); font-size: clamp(30px, 5vw, 56px); line-height: 1.04; letter-spacing: -.035em; margin: 0; }
.nm-subtitle { color: var(--nm-muted); font-size: clamp(15px, 2vw, 19px); line-height: 1.65; }

/* Global navigation */
.nm-site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 10000;
  background: color-mix(in srgb, var(--nm-bg) 88%, transparent);
  border-bottom: 1px solid var(--nm-line);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.nm-site-nav {
  width: min(calc(100% - 28px), 1240px);
  height: var(--nm-nav-height);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 18px;
}
.nm-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--nm-text);
  text-decoration: none;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -.03em;
  flex: 0 0 auto;
}
.nm-brand img { width: 36px; height: 36px; object-fit: contain; }
.nm-brand span span { color: var(--nm-primary); }
.nm-nav-links { display: flex; align-items: center; gap: 2px; margin-left: 10px; }
.nm-nav-link {
  color: var(--nm-text-soft);
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  border-radius: 9px;
  padding: 9px 10px;
  white-space: nowrap;
  transition: background .16s ease, color .16s ease;
}
.nm-nav-link:hover, .nm-nav-link.active { color: var(--nm-text); background: var(--nm-primary-soft); }
.nm-nav-spacer { flex: 1; }
.nm-nav-tools { display: flex; align-items: center; gap: 8px; }
.nm-segmented {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  gap: 2px;
  border: 1px solid var(--nm-line);
  background: var(--nm-surface);
  border-radius: 10px;
  box-shadow: var(--nm-shadow-xs);
}
.nm-segmented button {
  min-width: 32px;
  height: 29px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--nm-muted);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.nm-segmented button:hover { color: var(--nm-text); }
.nm-segmented button.active { color: var(--nm-primary-strong); background: var(--nm-primary-soft); }
.nm-theme-button { min-width: 34px !important; font-size: 15px !important; }
.nm-nav-account, .nm-btn-primary, .nm-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  border-radius: 10px;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.nm-nav-account, .nm-btn-secondary { color: var(--nm-text); background: var(--nm-surface); border-color: var(--nm-line); }
.nm-btn-primary { color: #fff; background: var(--nm-primary); box-shadow: 0 8px 20px rgba(0, 143, 131, .18); }
.nm-nav-account:hover, .nm-btn-secondary:hover { border-color: var(--nm-primary-border); background: var(--nm-primary-soft); }
.nm-btn-primary:hover { transform: translateY(-1px); background: var(--nm-primary-strong); }
.nm-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--nm-line);
  border-radius: 10px;
  background: var(--nm-surface);
  color: var(--nm-text);
  cursor: pointer;
}
.nm-menu-toggle svg { width: 22px; height: 22px; }
html.nm-menu-open { overflow: hidden; }
.nm-mobile-menu {
  display: none;
  position: fixed;
  top: calc(var(--nm-nav-height) + 8px);
  left: 14px;
  right: 14px;
  z-index: 9999;
  max-height: calc(100vh - var(--nm-nav-height) - 26px);
  overflow: auto;
  border: 1px solid var(--nm-line);
  border-radius: 16px;
  background: var(--nm-surface);
  box-shadow: var(--nm-shadow-md);
  padding: 12px;
}
.nm-mobile-menu.open { display: block; }
.nm-mobile-menu-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 0 6px auto;
  border: 1px solid var(--nm-line);
  border-radius: 10px;
  background: var(--nm-bg);
  color: var(--nm-text);
  cursor: pointer;
  position: relative;
  z-index: 1;
  pointer-events: auto;
}
.nm-mobile-menu-close svg { width: 18px; height: 18px; pointer-events: none; }
.nm-mobile-menu-close:hover { border-color: var(--nm-primary-border); background: var(--nm-primary-soft); }
.nm-mobile-menu a { display: block; padding: 12px; color: var(--nm-text-soft); text-decoration: none; font-weight: 750; border-radius: 10px; }
.nm-mobile-menu a:hover, .nm-mobile-menu a.active { background: var(--nm-primary-soft); color: var(--nm-text); }
.nm-mobile-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px 4px 4px; border-top: 1px solid var(--nm-line); margin-top: 8px; }
.nm-mobile-controls .nm-segmented { justify-content: center; }
.nm-nav-offset { height: var(--nm-nav-height); }

/* Footer */
.nm-site-footer { border-top: 1px solid var(--nm-line); background: var(--nm-surface); color: var(--nm-muted); }
.nm-footer-inner { width: min(calc(100% - 32px), var(--nm-container)); margin: 0 auto; padding: 34px 0; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 28px; }
.nm-footer-brand { display: flex; align-items: center; gap: 9px; color: var(--nm-text); text-decoration: none; font-weight: 900; }
.nm-footer-brand img { width: 32px; height: 32px; object-fit: contain; }
.nm-footer-copy { max-width: 420px; margin-top: 12px; font-size: 13px; line-height: 1.65; }
.nm-footer-title { color: var(--nm-text); font-size: 12px; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; margin-bottom: 10px; }
.nm-footer-links { display: grid; gap: 8px; }
.nm-footer-links a { color: var(--nm-muted); text-decoration: none; font-size: 13px; }
.nm-footer-links a:hover { color: var(--nm-primary); }
.nm-footer-bottom { width: min(calc(100% - 32px), var(--nm-container)); margin: 0 auto; border-top: 1px solid var(--nm-line); padding: 16px 0 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12px; }

/* Shared components */
.nm-card, .card, .panel, .form-card, .li-card, .su-card, .ce-card {
  background: var(--nm-surface);
  color: var(--nm-text-soft);
  border-color: var(--nm-line);
  box-shadow: var(--nm-shadow-xs);
}
.nm-card { border: 1px solid var(--nm-line); border-radius: var(--nm-radius); padding: 22px; }
.nm-card h1, .nm-card h2, .nm-card h3, .li-card h2, .su-card h2 { color: var(--nm-text); }
.nm-muted { color: var(--nm-muted); }
.nm-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 10px; font-size: 11px; font-weight: 800; background: var(--nm-primary-soft); color: var(--nm-primary-strong); border: 1px solid var(--nm-primary-border); }
.nm-alert { border: 1px solid var(--nm-line); border-radius: var(--nm-radius-sm); padding: 12px 14px; font-size: 13px; line-height: 1.55; }
.nm-alert-info { background: color-mix(in srgb, var(--nm-info) 9%, var(--nm-surface)); color: var(--nm-info); }
.nm-alert-success { background: color-mix(in srgb, var(--nm-success) 9%, var(--nm-surface)); color: var(--nm-success); }
.nm-alert-warning { background: color-mix(in srgb, var(--nm-warning) 10%, var(--nm-surface)); color: var(--nm-warning); }
.nm-alert-danger { background: color-mix(in srgb, var(--nm-danger) 9%, var(--nm-surface)); color: var(--nm-danger); }

/* Generic forms */
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  background: var(--nm-surface);
  color: var(--nm-text);
  border-color: var(--nm-line-strong);
}
input::placeholder, textarea::placeholder { color: var(--nm-muted); opacity: .9; }
input:focus, select:focus, textarea:focus { border-color: var(--nm-primary) !important; box-shadow: var(--nm-focus); }
button { -webkit-tap-highlight-color: transparent; }

/* Authentication surfaces */
.li-wrap, .su-wrap, .ce-wrap { background: radial-gradient(circle at 50% 0%, var(--nm-primary-soft), transparent 42%); }
.li-card, .su-card, .ce-card { background: var(--nm-surface) !important; border-color: var(--nm-line) !important; box-shadow: var(--nm-shadow-md); }
.li-card h2, .su-card h2, .ce-card h2, .li-field label, .su-field label { color: var(--nm-text) !important; }
.li-card .sub, .su-card .sub, .ce-card .sub, .li-foot, .su-foot { color: var(--nm-muted) !important; }
.li-field input, .su-field input, .su-field select { background: var(--nm-bg) !important; color: var(--nm-text) !important; border-color: var(--nm-line-strong) !important; }
.li-submit, .su-submit { background: var(--nm-primary) !important; color: #fff !important; }

/* Common legacy shell normalization */
.sm-nav { display: none !important; }
.sm-mobile-nav { display: none !important; }
.sm-footer { display: none !important; }
#navSpacer { display: none !important; }
#globalStyle { display: none; }

/* Table safety */
table { border-color: var(--nm-line); }
th { color: var(--nm-text); }
td { color: var(--nm-text-soft); }
.nm-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (max-width: 980px) {
  .nm-nav-links { display: none; }
  .nm-menu-toggle { display: inline-grid; place-items: center; }
  .nm-nav-account, .nm-nav-tools > .nm-segmented { display: none; }
}

@media (max-width: 760px) {
  :root { --nm-nav-height: 64px; }
  .nm-site-nav { width: min(calc(100% - 20px), 1240px); gap: 10px; }
  .nm-brand img { width: 32px; height: 32px; }
  .nm-brand { font-size: 15px; }
  .nm-btn-primary.nm-nav-primary { display: none; }
  .nm-footer-inner { grid-template-columns: 1fr; }
  .nm-footer-bottom { display: grid; }
}

@media (max-width: 430px) {
  .nm-site-nav { width: calc(100% - 16px); }
  .nm-mobile-menu { left: 8px; right: 8px; }
  .nm-container { width: min(calc(100% - 24px), var(--nm-container)); }
}

/* --------------------------------------------------------------------------
   Phase 4B.7 — Legacy light/dark contrast compatibility
   Older pages were authored with dark-only hexadecimal colors. These rules
   remap those surfaces and text colors to the active design tokens without
   changing page logic or markup.
   -------------------------------------------------------------------------- */

/* Legal / company / pricing pages */
.legal-title,
.legal-h2,
.legal-contact-title,
.about-title,
.about-h2,
.about-founder-name,
.about-value-title,
.pricing-title,
.early-banner-title,
.plan-amount,
.compare-title,
.faq-title,
.faq-q,
.pricing-cta-title {
  color: var(--nm-text) !important;
}

.legal-date,
.legal-p,
.legal-ul li,
.legal-contact-p,
.about-lead,
.about-p,
.about-founder-bio,
.about-value-desc,
.pricing-sub,
.early-banner-sub,
.plan-name,
.plan-period,
.plan-desc,
.compare-table th,
.compare-table td,
.faq-a,
.pricing-cta-sub {
  color: var(--nm-text-soft) !important;
}

.legal-contact,
.about-value,
.plan-card,
.faq-item,
.compare-wrap,
.pricing-cta {
  background: var(--nm-surface) !important;
  border-color: var(--nm-line) !important;
  box-shadow: var(--nm-shadow-xs);
}

.legal-h2,
.plan-desc,
.compare-table th,
.compare-table td {
  border-color: var(--nm-line) !important;
}

/* Authentication and common legacy cards */
.li-card,
.su-card,
.ce-card,
.bs-card,
.sd-form-card,
.listing-row,
.sidebar-card,
.spec-item,
.lender-row,
.comm-card,
.testimonial,
.perk-card,
.sidebar-section,
.listing-card,
.ghost-card {
  background: var(--nm-surface) !important;
  border-color: var(--nm-line) !important;
  color: var(--nm-text-soft) !important;
}

.li-card h2,
.su-card h2,
.ce-card h2,
.bs-card h2,
.sd-head h1,
.sd-form-card h2,
.listing-row .info h3,
.spec-value,
.sidebar-header-title,
.lcard-title,
.comm-title,
.comm-stat-val,
.comm-card-title,
.benefit-text strong,
.form-success-title,
.members-text strong,
.t-name,
.perk-title,
.soon-title,
.mech-title,
.mech-how-title,
.mech-step-title,
.mech-earn-title,
.mec-label,
.mech-form-title,
.mfs-title,
.puz-text {
  color: var(--nm-text) !important;
}

.li-card .sub,
.su-card .sub,
.ce-card .sub,
.li-foot,
.su-foot,
.ce-foot,
.puz-sub,
.dt-role {
  color: var(--nm-muted) !important;
}

.li-field input,
.su-field input,
.su-field select,
.bs-field input,
.bs-field select,
.sd-field input,
.sd-field select,
.sd-field textarea,
.fg input,
.fg select,
.fg textarea,
.filter-range input,
.topbar-sort,
.cs-form input,
.cs-form select,
.cs-form textarea {
  background: var(--nm-bg) !important;
  color: var(--nm-text) !important;
  border-color: var(--nm-line-strong) !important;
}

/* Inline legacy colors: only remap the dark-theme palette, never button white. */
html[data-theme="light"] [style*="color:#f0f4f8"],
html[data-theme="light"] [style*="color: #f0f4f8"],
html[data-theme="light"] [style*="color:#F0F4F8"],
html[data-theme="light"] [style*="color: #F0F4F8"] {
  color: var(--nm-text) !important;
}

html[data-theme="light"] [style*="color:#9aa5b4"],
html[data-theme="light"] [style*="color: #9aa5b4"],
html[data-theme="light"] [style*="color:#94a3b8"],
html[data-theme="light"] [style*="color: #94a3b8"],
html[data-theme="light"] [style*="color:#6b7a8d"],
html[data-theme="light"] [style*="color: #6b7a8d"] {
  color: var(--nm-text-soft) !important;
}

html[data-theme="light"] [style*="background:#0f1520"],
html[data-theme="light"] [style*="background: #0f1520"],
html[data-theme="light"] [style*="background:#12171f"],
html[data-theme="light"] [style*="background: #12171f"],
html[data-theme="light"] [style*="background:#0d1117"],
html[data-theme="light"] [style*="background: #0d1117"],
html[data-theme="light"] [style*="background:#06080f"],
html[data-theme="light"] [style*="background: #06080f"],
html[data-theme="light"] [style*="background:#07090f"],
html[data-theme="light"] [style*="background: #07090f"] {
  background: var(--nm-surface) !important;
  border-color: var(--nm-line) !important;
}

/* Ensure older page body text is readable in either theme. */
.legal-wrap,
.about-wrap,
.pricing-wrap,
.li-wrap,
.su-wrap,
.ce-wrap {
  color: var(--nm-text-soft);
}

/* Keep accent links readable in both themes. */
.legal-wrap a,
.about-wrap a,
.pricing-wrap a {
  color: var(--nm-primary-strong) !important;
}

/* Legacy pages that define their own dark-only token names. */
html[data-theme="light"] body.nm-legacy-token-page {
  --bg: var(--nm-bg);
  --bg2: var(--nm-surface-2);
  --card: var(--nm-surface);
  --card2: var(--nm-surface-2);
  --teal: var(--nm-primary);
  --td: var(--nm-primary-soft);
  --tb: var(--nm-primary-border);
  --white: var(--nm-text);
  --text: var(--nm-text-soft);
  --muted: var(--nm-muted);
  --dim: color-mix(in srgb, var(--nm-muted) 72%, var(--nm-bg));
  --border: var(--nm-line);
  --bord2: var(--nm-line);
}

html[data-theme="dark"] body.nm-legacy-token-page {
  --bg: var(--nm-bg);
  --bg2: var(--nm-surface-2);
  --card: var(--nm-surface);
  --card2: var(--nm-surface-2);
  --teal: var(--nm-primary);
  --td: var(--nm-primary-soft);
  --tb: var(--nm-primary-border);
  --white: var(--nm-text);
  --text: var(--nm-text-soft);
  --muted: var(--nm-muted);
  --dim: color-mix(in srgb, var(--nm-muted) 72%, var(--nm-bg));
  --border: var(--nm-line);
  --bord2: var(--nm-line);
}

.nm-mobile-logout{width:100%;padding:13px 12px;border:0;border-top:1px solid var(--nm-line);background:transparent;color:var(--nm-text);text-align:left;font:inherit;font-size:13px;font-weight:800;cursor:pointer}


/* Phase 4C.4 — simplified navigation and account checkpoint */
.nm-language-control{
  display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 9px;
  border:1px solid var(--nm-line);border-radius:11px;background:var(--nm-surface);
  color:var(--nm-muted);box-shadow:var(--nm-shadow-xs)
}
.nm-language-icon{width:16px;height:16px;flex:0 0 auto;color:var(--nm-primary-strong)}
.nm-language-select{
  appearance:none;-webkit-appearance:none;border:0!important;background:transparent!important;
  color:var(--nm-text)!important;padding:0 18px 0 0!important;min-height:auto!important;
  font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;box-shadow:none!important;
  background-image:linear-gradient(45deg,transparent 50%,var(--nm-muted) 50%),linear-gradient(135deg,var(--nm-muted) 50%,transparent 50%)!important;
  background-position:calc(100% - 7px) 50%,calc(100% - 3px) 50%!important;
  background-size:4px 4px,4px 4px!important;background-repeat:no-repeat!important
}
.nm-language-control.compact .nm-language-select{max-width:88px}
.nm-theme-toggle{
  width:40px;height:40px;border:1px solid var(--nm-line);border-radius:11px;
  background:var(--nm-surface);color:var(--nm-text);font-size:16px;cursor:pointer;
  box-shadow:var(--nm-shadow-xs)
}
.nm-theme-toggle:hover,.nm-language-control:hover{border-color:var(--nm-primary-border);background:var(--nm-primary-soft)}
.nm-mobile-controls{grid-template-columns:minmax(0,1fr) 44px;align-items:center}
.nm-mobile-controls .nm-language-control{width:100%}
.nm-mobile-controls .nm-language-select{width:100%;max-width:none}
.nm-mobile-logout{width:100%;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--nm-text-soft);font:inherit;font-weight:750;text-align:left;cursor:pointer}
.nm-mobile-logout:hover{background:var(--nm-primary-soft);color:var(--nm-text)}
.nm-consent-box{
  margin:14px 0 16px;padding:13px;border:1px solid var(--nm-line);border-radius:13px;
  background:var(--nm-bg)
}
.nm-consent-box label{display:flex;align-items:flex-start;gap:10px;color:var(--nm-text-soft);font-size:11.5px;line-height:1.5;cursor:pointer}
.nm-consent-box input{margin-top:2px;accent-color:var(--nm-primary)}
.nm-consent-box a{color:var(--nm-primary-strong);font-weight:800}
.nm-consent-note{display:block;margin-top:7px;padding-left:25px;color:var(--nm-muted);font-size:10px}
.nm-auth-submit:disabled,.nm-auth-google:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.15)}
.nm-auth-system-note{margin-top:12px;padding:11px 12px;border:1px solid var(--nm-line);border-radius:11px;background:var(--nm-bg);color:var(--nm-muted);font-size:10.5px;line-height:1.5}
.nm-auth-required-note{align-items:flex-start}
.nm-auth-required-note span{display:block}
.nm-auth-required-note .nm-auth-required-actions{display:flex;gap:8px;margin-top:7px;flex-wrap:wrap}
.nm-auth-required-note .nm-auth-required-actions a{font-weight:850;color:var(--nm-primary-strong);text-decoration:none}

/* RC1.12 — explicit section-aware navigation state */
.nm-nav-link.active {
  color: var(--nm-primary-strong);
  background: var(--nm-primary-soft);
  box-shadow: inset 0 -2px 0 var(--nm-primary);
}

/* RC1.23.2 — focused premium navigation */
.nm-account-group{position:relative}
.nm-utility-trigger{
  min-height:40px;padding:0 14px;border:1px solid var(--nm-line);border-radius:11px;
  background:var(--nm-surface);color:var(--nm-text);font:inherit;font-size:12.5px;font-weight:850;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:var(--nm-shadow-xs);
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease
}
.nm-utility-trigger svg{width:16px;height:16px;color:var(--nm-muted);transition:transform .16s ease}
.nm-utility-group.open .nm-utility-trigger svg{transform:rotate(180deg)}
.nm-utility-trigger:hover,.nm-utility-group.open .nm-utility-trigger{
  border-color:var(--nm-primary-border);background:var(--nm-primary-soft);box-shadow:none
}
.nm-account-menu{
  display:none;position:absolute;right:0;top:calc(100% + 10px);z-index:1200;min-width:250px;
  padding:9px;border:1px solid var(--nm-line);border-radius:15px;background:var(--nm-surface);
  box-shadow:var(--nm-shadow-md)
}
.nm-account-group.open .nm-account-menu{display:grid}
.nm-account-menu a,.nm-account-menu button{
  width:100%;padding:11px 12px;border:0;border-radius:10px;background:transparent;color:var(--nm-text);
  text-align:left;text-decoration:none;font:inherit;font-size:12.5px;font-weight:760;cursor:pointer
}
.nm-account-menu a:hover,.nm-account-menu button:hover{background:var(--nm-primary-soft);color:var(--nm-primary-strong)}
.nm-account-menu small{display:block;padding:9px 12px 5px;color:var(--nm-muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.09em}
.nm-utility-language{padding:7px 4px 3px}
.nm-utility-language .nm-language-control{width:100%;box-shadow:none}
.nm-utility-language .nm-language-select{width:100%;max-width:none}
.nm-utility-divider{height:1px;background:var(--nm-line);margin:7px 4px}

@media (max-width:980px){
  .nm-utility-group,.nm-nav-tools>.nm-theme-toggle{display:none}
}

/* ============================================================================
   RC1.28A — Unified Premium Dashboard System
   Extends the existing --nm-* tokens above. No second design system.
   All classes here are additive (prefixed .nm-op-*, .nm-dash-*) — nothing
   removes or renames an existing selector, ID, or class used by admin.html,
   mechanic-dashboard.html, mechanic-inspection.html or buyer-dashboard.html
   business logic (RPC calls, event handlers, data-* attributes).
   ============================================================================ */

:root{
  --nm-status-good:#0a8f63; --nm-status-good-soft:rgba(16,185,129,.12); --nm-status-good-border:rgba(16,185,129,.3);
  --nm-status-attention:#b45309; --nm-status-attention-soft:rgba(217,119,6,.12); --nm-status-attention-border:rgba(217,119,6,.3);
  --nm-status-critical:#dc2626; --nm-status-critical-soft:rgba(220,38,38,.1); --nm-status-critical-border:rgba(220,38,38,.28);
  --nm-status-neutral:var(--nm-muted); --nm-status-neutral-soft:var(--nm-surface-2); --nm-status-neutral-border:var(--nm-line);
  --nm-status-info:#1769aa; --nm-status-info-soft:rgba(23,105,170,.1); --nm-status-info-border:rgba(23,105,170,.26);
  --nm-space-1:4px; --nm-space-2:8px; --nm-space-3:12px; --nm-space-4:16px; --nm-space-5:24px; --nm-space-6:32px; --nm-space-7:48px;
  --nm-fs-page-title:32px; --nm-fs-section-title:24px; --nm-fs-card-title:18px; --nm-fs-body:16px; --nm-fs-meta:13px;
}

/* ---------- Application shell (role-specific, shares one token set) ---------- */
.nm-op-shell{display:flex;min-height:100vh;background:var(--nm-bg)}
.nm-op-rail{
  width:236px;flex:0 0 236px;background:var(--nm-surface);border-right:1px solid var(--nm-line);
  padding:var(--nm-nav-height) var(--nm-space-3) var(--nm-space-5);position:fixed;top:0;left:0;bottom:0;overflow-y:auto;
}
.nm-op-rail-group{margin-bottom:var(--nm-space-5)}
.nm-op-rail-label{padding:0 var(--nm-space-3);margin-bottom:var(--nm-space-2);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--nm-muted)}
.nm-op-rail-link{
  display:flex;align-items:center;gap:10px;min-height:44px;padding:0 var(--nm-space-3);border-radius:11px;
  color:var(--nm-text-soft);text-decoration:none;font-size:var(--nm-fs-meta);font-weight:800;cursor:pointer;border:0;background:transparent;width:100%;text-align:left
}
.nm-op-rail-link:hover{background:var(--nm-primary-soft);color:var(--nm-text)}
.nm-op-rail-link.active{background:var(--nm-primary-soft);color:var(--nm-primary-strong)}
.nm-op-rail-link svg{width:18px;height:18px;flex:0 0 18px}
.nm-op-rail-count{margin-left:auto;min-width:20px;padding:2px 6px;border-radius:999px;background:var(--nm-status-critical-soft);color:var(--nm-status-critical);font-size:11px;font-weight:900;text-align:center}
.nm-op-main{flex:1;margin-left:236px;padding:calc(var(--nm-nav-height) + var(--nm-space-5)) var(--nm-space-6) var(--nm-space-7)}
.nm-op-main-inner{max-width:1180px;margin:0 auto}
@media (max-width:1100px){
  .nm-op-rail{display:none}
  .nm-op-main{margin-left:0;padding:calc(var(--nm-nav-height) + var(--nm-space-4)) var(--nm-space-4) 100px}
}

/* Field-service (partner) shell — no sidebar, task-first, card column */
.nm-field-shell{max-width:720px;margin:0 auto;padding:calc(var(--nm-nav-height) + var(--nm-space-5)) var(--nm-space-4) 100px}

/* Premium customer-portal (buyer) shell — no sidebar, single generous column */
.nm-portal-shell{max-width:900px;margin:0 auto;padding:calc(var(--nm-nav-height) + var(--nm-space-5)) var(--nm-space-4) var(--nm-space-7)}

/* ---------- Page / section headers ---------- */
.nm-page-header{margin-bottom:var(--nm-space-6);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--nm-space-4);flex-wrap:wrap}
.nm-page-header h1{margin:0 0 6px;font-size:var(--nm-fs-page-title);line-height:1.08;letter-spacing:-.02em;color:var(--nm-text)}
.nm-page-header p{margin:0;font-size:var(--nm-fs-body);color:var(--nm-muted);max-width:560px;line-height:1.5}
.nm-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--nm-space-3);margin:var(--nm-space-6) 0 var(--nm-space-4)}
.nm-section-header h2{margin:0;font-size:var(--nm-fs-section-title);letter-spacing:-.01em;color:var(--nm-text)}
.nm-section-header .nm-section-sub{font-size:var(--nm-fs-meta);color:var(--nm-muted);margin-top:2px}
@media (max-width:760px){
  .nm-page-header h1{font-size:26px}
  .nm-section-header h2{font-size:20px}
}

/* ---------- Status chip — the ONE status vocabulary for all roles ---------- */
.nm-status-chip{
  display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;
  font-size:var(--nm-fs-meta);font-weight:850;white-space:nowrap;border:1px solid var(--nm-status-neutral-border);
  background:var(--nm-status-neutral-soft);color:var(--nm-status-neutral)
}
.nm-status-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 7px}
.nm-status-chip.good{background:var(--nm-status-good-soft);border-color:var(--nm-status-good-border);color:var(--nm-status-good)}
.nm-status-chip.attention{background:var(--nm-status-attention-soft);border-color:var(--nm-status-attention-border);color:var(--nm-status-attention)}
.nm-status-chip.critical{background:var(--nm-status-critical-soft);border-color:var(--nm-status-critical-border);color:var(--nm-status-critical)}
.nm-status-chip.info{background:var(--nm-status-info-soft);border-color:var(--nm-status-info-border);color:var(--nm-status-info)}
.nm-status-chip.lg{padding:8px 14px;font-size:15px}

/* ---------- Card hierarchy: primary / standard / passive ---------- */
.nm-card{background:var(--nm-surface);border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:var(--nm-space-4)}
.nm-card.primary{
  border-left:4px solid var(--nm-primary);box-shadow:var(--nm-shadow-md);padding:var(--nm-space-5);
  background:linear-gradient(180deg,var(--nm-surface) 0%,var(--nm-surface) 100%)
}
.nm-card.primary.critical{border-left-color:var(--nm-status-critical)}
.nm-card.primary.attention{border-left-color:var(--nm-status-attention)}
.nm-card.standard{box-shadow:var(--nm-shadow-xs)}
.nm-card.passive{opacity:.82;box-shadow:none;background:var(--nm-surface-2)}
.nm-card-title{font-size:var(--nm-fs-card-title);font-weight:800;color:var(--nm-text);margin:0 0 4px;letter-spacing:-.01em}

/* ---------- Primary action panel ---------- */
.nm-action-panel{
  display:flex;align-items:center;justify-content:space-between;gap:var(--nm-space-4);flex-wrap:wrap;
  padding:var(--nm-space-4);border-radius:var(--nm-radius);background:var(--nm-primary-soft);border:1px solid var(--nm-primary-border)
}
.nm-action-panel .nm-action-panel-text strong{display:block;font-size:var(--nm-fs-card-title);color:var(--nm-text);margin-bottom:2px}
.nm-action-panel .nm-action-panel-text span{font-size:var(--nm-fs-meta);color:var(--nm-text-soft)}

/* ---------- Buttons — unified, 44px minimum ---------- */
.nm-btn{min-height:44px;padding:0 18px;border-radius:11px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;text-decoration:none}
.nm-btn.primary{background:var(--nm-primary);color:#fff}
.nm-btn.primary:hover{background:var(--nm-primary-strong)}
.nm-btn.secondary{background:var(--nm-surface);border-color:var(--nm-line-strong);color:var(--nm-text)}
.nm-btn.secondary:hover{border-color:var(--nm-primary-border);color:var(--nm-primary-strong)}
.nm-btn.danger{background:var(--nm-status-critical-soft);border-color:var(--nm-status-critical-border);color:var(--nm-status-critical)}
.nm-btn:disabled{opacity:.5;cursor:not-allowed}
.nm-btn:focus-visible,.nm-op-rail-link:focus-visible,a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--nm-focus)}

/* ---------- KPI tile ---------- */
.nm-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--nm-space-3)}
.nm-kpi-tile{background:var(--nm-surface);border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:var(--nm-space-4)}
.nm-kpi-tile .nm-kpi-val{font-size:28px;font-weight:900;color:var(--nm-text);letter-spacing:-.02em;line-height:1}
.nm-kpi-tile .nm-kpi-lbl{margin-top:6px;font-size:var(--nm-fs-meta);color:var(--nm-muted);font-weight:700}

/* ---------- Attention queue / task card / case card ---------- */
.nm-attention-list{display:flex;flex-direction:column;gap:var(--nm-space-3)}
.nm-task-card,.nm-case-card{
  display:flex;align-items:flex-start;gap:var(--nm-space-4);padding:var(--nm-space-4);border-radius:var(--nm-radius);
  background:var(--nm-surface);border:1px solid var(--nm-line);box-shadow:var(--nm-shadow-xs);cursor:pointer;text-align:left;width:100%;font:inherit
}
.nm-task-card:hover,.nm-case-card:hover{border-color:var(--nm-primary-border);box-shadow:var(--nm-shadow-sm)}
.nm-task-card.urgent,.nm-case-card.urgent{border-left:4px solid var(--nm-status-critical)}
.nm-task-icon{width:42px;height:42px;border-radius:11px;background:var(--nm-primary-soft);color:var(--nm-primary-strong);display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 42px}
.nm-task-body{flex:1;min-width:0}
.nm-task-title{font-size:var(--nm-fs-body);font-weight:800;color:var(--nm-text);margin:0 0 3px}
.nm-task-meta{font-size:var(--nm-fs-meta);color:var(--nm-muted);display:flex;flex-wrap:wrap;gap:4px 10px}
.nm-task-action{font-size:var(--nm-fs-meta);font-weight:850;color:var(--nm-primary-strong);white-space:nowrap;align-self:center}

/* ---------- List row / table row (used instead of compressed <table> on mobile) ---------- */
.nm-list{display:flex;flex-direction:column;gap:var(--nm-space-2)}
.nm-list-row{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:var(--nm-space-3);align-items:center;padding:var(--nm-space-3) var(--nm-space-4);border-radius:12px;border:1px solid var(--nm-line);background:var(--nm-surface)}
@media (max-width:900px){.nm-list-row{grid-template-columns:1fr}}

/* ---------- Filters / tabs ---------- */
.nm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--nm-space-4)}
.nm-tab{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--nm-line);background:var(--nm-surface);color:var(--nm-text-soft);font-size:var(--nm-fs-meta);font-weight:800;cursor:pointer}
.nm-tab.active{background:var(--nm-primary-soft);border-color:var(--nm-primary-border);color:var(--nm-primary-strong)}
.nm-tab .nm-tab-count{margin-left:6px;opacity:.75}

/* ---------- Journey / progress tracker ---------- */
.nm-journey{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:var(--nm-space-4) 0}
.nm-journey-step{padding:10px 6px;border-radius:11px;background:var(--nm-surface-2);border:1px solid var(--nm-line);color:var(--nm-muted);font-size:11px;font-weight:800;text-align:center;line-height:1.3}
.nm-journey-step.done{background:var(--nm-primary-soft);border-color:var(--nm-primary-border);color:var(--nm-primary-strong)}
.nm-journey-step.current{background:var(--nm-primary);border-color:var(--nm-primary);color:#fff}
@media (max-width:760px){.nm-journey{grid-template-columns:repeat(3,1fr)}}
@media (max-width:400px){.nm-journey{grid-template-columns:repeat(2,1fr)}}

/* ---------- Timeline ---------- */
.nm-timeline{display:flex;flex-direction:column}
.nm-timeline-item{position:relative;padding:0 0 var(--nm-space-5) 28px;border-left:2px solid var(--nm-line)}
.nm-timeline-item:last-child{border-color:transparent;padding-bottom:0}
.nm-timeline-item::before{content:"";position:absolute;left:-6px;top:2px;width:10px;height:10px;border-radius:50%;background:var(--nm-primary);border:2px solid var(--nm-surface)}
.nm-timeline-time{font-size:11px;color:var(--nm-muted);font-weight:800}
.nm-timeline-text{font-size:var(--nm-fs-meta);color:var(--nm-text-soft);margin-top:2px;line-height:1.5}

/* ---------- Evidence gallery ---------- */
.nm-evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--nm-space-2)}
.nm-evidence-item{aspect-ratio:1;border:1px solid var(--nm-line);border-radius:12px;overflow:hidden;background:var(--nm-surface-2);display:flex;align-items:center;justify-content:center}
.nm-evidence-item img{width:100%;height:100%;object-fit:cover}

/* ---------- Report card (promoted, primary treatment) ---------- */
.nm-report-card{background:var(--nm-surface);border:1px solid var(--nm-primary-border);border-radius:var(--nm-radius-lg);box-shadow:var(--nm-shadow-md);padding:var(--nm-space-5);position:relative;overflow:hidden}
.nm-report-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--nm-primary),var(--nm-primary-strong))}
.nm-report-score-hero{display:flex;align-items:center;gap:var(--nm-space-4);margin:var(--nm-space-3) 0}
.nm-report-score-num{font-size:44px;font-weight:900;color:var(--nm-primary-strong);letter-spacing:-.03em;line-height:1}

/* ---------- Alert / empty / loading / error states ---------- */
.nm-alert{display:flex;gap:10px;align-items:flex-start;padding:var(--nm-space-4);border-radius:var(--nm-radius);font-size:var(--nm-fs-meta);line-height:1.55}
.nm-alert.info{background:var(--nm-status-info-soft);border:1px solid var(--nm-status-info-border);color:var(--nm-text-soft)}
.nm-alert.attention{background:var(--nm-status-attention-soft);border:1px solid var(--nm-status-attention-border);color:var(--nm-text-soft)}
.nm-alert.critical{background:var(--nm-status-critical-soft);border:1px solid var(--nm-status-critical-border);color:var(--nm-text-soft)}
.nm-alert strong{color:var(--nm-text);display:block;margin-bottom:2px}
.nm-empty-state{text-align:center;padding:var(--nm-space-7) var(--nm-space-4);color:var(--nm-muted)}
.nm-empty-state h3{margin:0 0 6px;color:var(--nm-text);font-size:18px}
.nm-empty-state p{margin:0 0 var(--nm-space-4);font-size:var(--nm-fs-body)}
.nm-loading-state{display:flex;align-items:center;justify-content:center;gap:10px;padding:var(--nm-space-6);color:var(--nm-muted);font-size:var(--nm-fs-body)}
.nm-spinner{width:18px;height:18px;border:2.5px solid var(--nm-line-strong);border-top-color:var(--nm-primary);border-radius:50%;animation:nmSpin .7s linear infinite}
@keyframes nmSpin{to{transform:rotate(360deg)}}
.nm-error-state{padding:var(--nm-space-4);border-radius:var(--nm-radius);background:var(--nm-status-critical-soft);border:1px solid var(--nm-status-critical-border);color:var(--nm-text-soft);font-size:var(--nm-fs-body)}

/* ---------- Sticky mobile action ---------- */
.nm-sticky-action{display:none}
@media (max-width:760px){
  .nm-sticky-action{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:800;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:var(--nm-surface);border-top:1px solid var(--nm-line);box-shadow:0 -8px 24px rgba(16,42,55,.08)
  }
  .nm-sticky-action .nm-btn{flex:1}
}

/* ---------- Confirmation dialog ---------- */
.nm-confirm-backdrop{position:fixed;inset:0;z-index:3000;background:rgba(4,10,18,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.nm-confirm-box{width:min(420px,100%);background:var(--nm-surface);border-radius:var(--nm-radius-lg);box-shadow:var(--nm-shadow-md);padding:var(--nm-space-5)}
.nm-confirm-box h3{margin:0 0 8px;font-size:19px;color:var(--nm-text)}
.nm-confirm-box p{margin:0 0 var(--nm-space-4);font-size:var(--nm-fs-body);color:var(--nm-muted);line-height:1.55}
.nm-confirm-actions{display:flex;gap:10px;justify-content:flex-end}

/* ---------- Mobile-wide baseline: enforce 16px body / 44px controls everywhere in scope ---------- */
@media (max-width:760px){
  .nm-op-main,.nm-field-shell,.nm-portal-shell{font-size:var(--nm-fs-body)}
  .nm-card-title{font-size:17px}
  .nm-task-title{font-size:16px}
}
