/* MVE Program OS — portal styles. Tokens copied verbatim from Website/assets/mve.css
   so the portal and the marketing site read as one product. Mobile-first. */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Barlow+Condensed:wght@600;700;800&family=Barlow+Semi+Condensed:wght@600;700;800&display=swap');

:root {
  --mve-navy: #2F316B;
  --mve-red: #A42126;
  --mve-gray: #D5D5D5;
  --navy-900: #1B1C3E;
  --navy-800: #242650;
  --navy-50: #F0F0F7;
  --red-300: #E99A9D;
  --red-900: #6E1417;
  --gray-600: #6B6B6B;
  --gray-200: #E4E4E4;
  --gray-100: #F1F1F1;
  --gray-50: #F8F8F8;
  --color-text: var(--navy-900);
  --color-text-muted: var(--gray-600);
  --color-border: var(--gray-200);
  --font-display: 'Anton', 'Barlow Condensed', Impact, sans-serif;
  --font-heading: 'Barlow Semi Condensed', 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --container: 1120px;
  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 14px; --radius-xl: 22px;
  --shadow-sm: 0 1px 2px rgba(27,28,62,.08);
  --shadow-md: 0 4px 14px rgba(27,28,62,.10);
  --shadow-lg: 0 12px 32px rgba(27,28,62,.16);
  --green: #1E7A3C; --amber: #B07B10;
}

* { box-sizing: border-box; }
body {
  margin: 0; font-family: var(--font-body); color: var(--color-text);
  background: var(--gray-50); line-height: 1.55; -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--mve-navy); }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 16px; }
.container-narrow { max-width: 640px; }
.section { padding: 32px 0 64px; }

/* Top bar */
.topbar { background: var(--mve-navy); color: #fff; }
.topbar-inner { display: flex; align-items: center; gap: 12px; padding: 10px 16px; max-width: var(--container); margin: 0 auto; }
.topbar img { height: 34px; }
.topbar a { color: #fff; text-decoration: none; font-family: var(--font-heading); font-weight: 700; }
.topbar .spacer { flex: 1; }
.topbar nav { display: flex; gap: 16px; font-size: .95rem; align-items: center; }
.stripe { height: 5px; background: linear-gradient(100deg, var(--mve-red) 0 60%, var(--red-900) 60% 100%); }

.eyebrow {
  font-family: var(--font-heading); font-weight: 700; font-size: .8rem;
  letter-spacing: .16em; text-transform: uppercase; color: var(--mve-red); margin: 0 0 10px;
}
.display {
  font-family: var(--font-display); font-weight: 400; line-height: .98;
  letter-spacing: .01em; text-transform: uppercase; color: var(--mve-navy); margin: 0 0 8px;
}
h1.display { font-size: clamp(1.9rem, 5vw, 3rem); }
h2.display { font-size: clamp(1.4rem, 3.5vw, 2rem); margin-top: 32px; }
.muted { color: var(--color-text-muted); }
.small { font-size: .875rem; }

/* Cards & forms */
.card {
  background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm); padding: 20px; margin: 16px 0;
}
label { display: block; font-family: var(--font-heading); font-weight: 700; font-size: .9rem; margin: 14px 0 4px; }
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=number], select, textarea {
  width: 100%; padding: 12px; font: inherit; font-size: 1rem; border: 1px solid var(--color-border);
  border-radius: var(--radius-md); background: #fff; min-height: 46px;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--mve-navy); outline-offset: 1px; }
.check { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; font-weight: 400; }
.check input { width: 22px; height: 22px; margin-top: 2px; flex: none; }
.grid2 { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
@media (min-width: 640px) { .grid2 { grid-template-columns: 1fr 1fr; } }

.btn {
  display: inline-block; border: 0; cursor: pointer; text-decoration: none; text-align: center;
  font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  padding: 14px 24px; border-radius: var(--radius-md); font-size: 1rem; min-height: 48px;
}
.btn-red { background: var(--mve-red); color: #fff; }
.btn-red:hover { background: var(--red-900); }
.btn-navy { background: var(--mve-navy); color: #fff; }
.btn-ghost { background: transparent; color: var(--mve-navy); border: 2px solid var(--mve-navy); }
.btn-block { display: block; width: 100%; }
.btn-sm { padding: 8px 14px; min-height: 36px; font-size: .85rem; }

/* Tables (admin) */
.table-wrap { overflow-x: auto; }
table.data { width: 100%; border-collapse: collapse; background: #fff; font-size: .92rem; }
table.data th {
  font-family: var(--font-heading); text-transform: uppercase; letter-spacing: .05em; font-size: .75rem;
  text-align: left; padding: 10px 12px; background: var(--navy-50); color: var(--mve-navy);
  border-bottom: 2px solid var(--color-border); white-space: nowrap;
}
table.data td { padding: 10px 12px; border-bottom: 1px solid var(--gray-100); }
table.data tr:hover td { background: var(--gray-50); }

/* Stat tiles */
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 16px 0; }
@media (min-width: 900px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 16px; }
.stat .num { font-family: var(--font-display); font-size: 2.2rem; line-height: 1; color: var(--mve-navy); }
.stat .lbl { font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; font-size: .72rem; letter-spacing: .08em; color: var(--color-text-muted); margin-top: 6px; }
.stat.alert .num { color: var(--mve-red); }

/* Badges */
.badge {
  display: inline-block; font-family: var(--font-heading); font-weight: 700; font-size: .72rem;
  text-transform: uppercase; letter-spacing: .05em; padding: 3px 10px; border-radius: 999px;
}
.badge-green { background: #E3F3E9; color: var(--green); }
.badge-amber { background: #FBF0DA; color: var(--amber); }
.badge-red { background: #F9E4E5; color: var(--mve-red); }
.badge-gray { background: var(--gray-100); color: var(--gray-600); }

/* Order summary */
.order-line { display: flex; justify-content: space-between; padding: 6px 0; }
.order-total { border-top: 2px solid var(--mve-navy); font-weight: 800; font-size: 1.15rem; }

/* Flash messages */
.flash { padding: 14px 16px; border-radius: var(--radius-md); margin: 16px 0; font-weight: 600; }
.flash-ok { background: #E3F3E9; color: var(--green); }
.flash-err { background: #F9E4E5; color: var(--red-900); }

.footer { padding: 32px 16px; text-align: center; color: var(--color-text-muted); font-size: .85rem; }
