
/* Modern academic/scientific presentation layer for Dr. Easttom's learning labs. */
:root {
  color-scheme: light;
  --bg: #f5f7fa;
  --canvas: #f5f7fa;
  --surface: #ffffff;
  --surface-2: #eef4f8;
  --panel: #ffffff;
  --panel-2: #f7fafc;
  --ink: #172033;
  --text: #172033;
  --bright: #172033;
  --muted: #5f6b7a;
  --navy: #17365d;
  --blue: #245a8d;
  --accent: #245a8d;
  --accent-2: #17365d;
  --line: #d7e0e8;
  --line-soft: #e3e9ef;
  --good: #1b7f5a;
  --success: #1b7f5a;
  --warn: #9a6500;
  --warning: #9a6500;
  --bad: #a43c3c;
  --danger: #a43c3c;
  --green: #1b7f5a;
  --blue-soft: #eaf2f8;
  --button: #edf3f7;
  --button-hover: #e1ebf2;
  --shadow: 0 12px 30px rgba(23,54,93,.08);
  --radius: 14px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.academic-lab {
  margin: 0 !important;
  min-height: 100vh;
  background: #f5f7fa !important;
  color: #172033 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 16.5px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}
.academic-lab a { color: #174f82; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.academic-lab a:hover { color: #0d355a; }
.academic-lab h1,
.academic-lab h2,
.academic-lab h3,
.academic-lab h4,
.academic-lab .eyebrow,
.academic-lab label,
.academic-lab button,
.academic-lab input,
.academic-lab select,
.academic-lab .badge,
.academic-lab .pill,
.academic-lab .tag,
.academic-lab .purpose-label,
.academic-lab .panel-title,
.academic-lab .status-pill,
.academic-lab summary {
  font-family: "Segoe UI", Arial, sans-serif !important;
}
.academic-lab h1 { color: #17365d !important; letter-spacing: -.025em; }
.academic-lab h2, .academic-lab h3, .academic-lab h4 { color: #17365d !important; }
.academic-lab .lead,
.academic-lab .subtitle,
.academic-lab .subtle,
.academic-lab .section-intro,
.academic-lab .small-note,
.academic-lab .hint,
.academic-lab .unit,
.academic-lab .footnote { color: #5f6b7a !important; }
.academic-lab .wrap { width: min(1180px, calc(100% - 40px)) !important; margin-left: auto !important; margin-right: auto !important; }

/* Hero regions */
.academic-lab > header:not(.app-header),
.academic-lab .app-header,
.academic-lab .topbar {
  background: linear-gradient(135deg,#edf4f9 0%,#ffffff 58%,#eef3f7 100%) !important;
  color: #172033 !important;
  border-color: #d7e0e8 !important;
}
.academic-lab > header:not(.app-header) { padding-top: 54px !important; padding-bottom: 40px !important; }
.academic-lab .app-header { padding-top: 38px !important; padding-bottom: 30px !important; border-bottom: 1px solid #d7e0e8 !important; }
.academic-lab .eyebrow { color: #245a8d !important; font-size: .78rem !important; font-weight: 750 !important; letter-spacing: .12em !important; text-transform: uppercase; }
.academic-lab .header-badges { gap: 8px; }
.academic-lab .badge,
.academic-lab .pill,
.academic-lab .status-pill {
  color: #17365d !important;
  background: #eaf2f8 !important;
  border-color: #cbd9e4 !important;
  box-shadow: none !important;
}
.academic-lab .badge-dot,
.academic-lab .status-pill .light { background: #1b7f5a !important; box-shadow: none !important; }

/* Internal sticky navigation */
.academic-lab nav {
  background: rgba(255,255,255,.96) !important;
  border-color: #d7e0e8 !important;
  box-shadow: 0 4px 16px rgba(23,54,93,.05);
  backdrop-filter: blur(10px);
}
.academic-lab nav a { color: #334155 !important; font-family: "Segoe UI", Arial, sans-serif !important; font-weight: 600; }
.academic-lab nav a:hover,
.academic-lab nav a:focus-visible { color: #17365d !important; background: #eaf2f8 !important; border-color: #cbd9e4 !important; }
.academic-lab nav .brand { color: #17365d !important; }

/* Common content surfaces */
.academic-lab .card,
.academic-lab .panel,
.academic-lab .calc,
.academic-lab .lab:not(.sim-grid),
.academic-lab .purpose-card,
.academic-lab .callout,
.academic-lab .state,
.academic-lab .metric,
.academic-lab .metric-card,
.academic-lab .result,
.academic-lab .lesson article,
.academic-lab .equation:not(.formula),
.academic-lab .formula,
.academic-lab .result-panel,
.academic-lab .scenario-box,
.academic-lab .warning-panel {
  background: #ffffff !important;
  color: #172033 !important;
  border-color: #d7e0e8 !important;
  box-shadow: 0 10px 26px rgba(23,54,93,.07) !important;
}
.academic-lab .card,
.academic-lab .panel,
.academic-lab .calc,
.academic-lab .purpose-card,
.academic-lab .callout,
.academic-lab .state,
.academic-lab .result-panel,
.academic-lab .scenario-box { border-radius: 14px !important; }
.academic-lab .control,
.academic-lab .input-group,
.academic-lab .status,
.academic-lab .interpret,
.academic-lab .equation-box,
.academic-lab .warning-item,
.academic-lab .lesson-card,
.academic-lab .reynolds-primer,
.academic-lab .regime-seg,
.academic-lab .purpose-step,
.academic-lab .metric-card,
.academic-lab .result {
  background: #f8fafc !important;
  color: #27364a !important;
  border-color: #dce4eb !important;
  box-shadow: none !important;
}
.academic-lab .term { border-left-color: #245a8d !important; }
.academic-lab .term .symbol,
.academic-lab .formula,
.academic-lab .eq,
.academic-lab .equation,
.academic-lab .control-value,
.academic-lab .live-value,
.academic-lab .value-badge { color: #245a8d !important; }
.academic-lab code,
.academic-lab .formula,
.academic-lab .equation,
.academic-lab .eq { font-family: Cambria, Georgia, "Times New Roman", serif !important; }
.academic-lab .formula { background: #eef4f8 !important; border-color: #d5e0e8 !important; }
.academic-lab details { border-color: #d9e1e8 !important; }
.academic-lab summary { color: #17365d !important; font-weight: 650; }

/* Forms and controls */
.academic-lab label, .academic-lab .field-label { color: #334155 !important; }
.academic-lab input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
.academic-lab select,
.academic-lab textarea {
  background: #ffffff !important;
  color: #172033 !important;
  border: 1px solid #b9c7d4 !important;
  border-radius: 9px;
  box-shadow: none !important;
}
.academic-lab input:focus,
.academic-lab select:focus,
.academic-lab textarea:focus {
  border-color: #245a8d !important;
  outline: 3px solid rgba(36,90,141,.12) !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}
.academic-lab input[type="range"] { accent-color: #245a8d !important; }
.academic-lab input[type="checkbox"], .academic-lab input[type="radio"] { accent-color: #245a8d !important; }
.academic-lab button,
.academic-lab .action-btn,
.academic-lab .scenario-btn,
.academic-lab .tab-btn {
  color: #17365d !important;
  background: #edf3f7 !important;
  border: 1px solid #c5d2dc !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  font-weight: 700 !important;
}
.academic-lab button:hover,
.academic-lab .action-btn:hover,
.academic-lab .scenario-btn:hover,
.academic-lab .tab-btn:hover { background: #e3edf4 !important; border-color: #9eb4c5 !important; transform: translateY(-1px); }
.academic-lab button.primary,
.academic-lab button.solve,
.academic-lab .action-btn:not(.secondary),
.academic-lab .tab-btn.active {
  color: #ffffff !important;
  background: #17365d !important;
  border-color: #17365d !important;
}
.academic-lab button.primary:hover,
.academic-lab button.solve:hover,
.academic-lab .action-btn:not(.secondary):hover { background: #245a8d !important; }
.academic-lab button.secondary,
.academic-lab .action-btn.secondary { color: #334155 !important; background: #f8fafc !important; }

/* Tables */
.academic-lab table { background: #ffffff; color: #172033 !important; }
.academic-lab th { color: #17365d !important; background: #eef4f8 !important; border-color: #d7e0e8 !important; }
.academic-lab td { color: #334155 !important; border-color: #e0e6ec !important; }
.academic-lab td strong { color: #172033 !important; }
.academic-lab tbody tr:nth-child(even) { background: #fbfcfd !important; }
.academic-lab tbody tr:hover { background: #f5f9fc !important; }

/* Status semantics */
.academic-lab .good,
.academic-lab .status.good,
.academic-lab .regime.laminar { color: #205c47 !important; border-color: #b9ddcf !important; background: #f1fbf7 !important; }
.academic-lab .warn,
.academic-lab .status.warn,
.academic-lab .warning,
.academic-lab .regime.transition { color: #704911 !important; border-color: #e4c996 !important; background: #fff9ee !important; }
.academic-lab .bad,
.academic-lab .status.bad,
.academic-lab .regime.turbulent { color: #713030 !important; border-color: #deb6b6 !important; background: #fff5f5 !important; }
.academic-lab .level.low { color:#176a86 !important; background:#eef8fb !important; }
.academic-lab .level.moderate { color:#805d08 !important; background:#fff9e9 !important; }
.academic-lab .level.high,
.academic-lab .level.very-high,
.academic-lab .level.extreme { color:#8f3030 !important; background:#fff3f3 !important; }

/* Landing page: same restrained academic language as the main site */
body.page-landing {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto !important;
  padding: 42px 0 72px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
  align-content: start;
}
.page-landing > header.wrap {
  grid-column: 1 / -1;
  width: 100% !important;
  padding: 38px 40px !important;
  margin: 0 0 12px !important;
  border: 1px solid #d7e0e8;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(23,54,93,.08);
}
.page-landing h1 { margin: .4rem 0 .7rem; font-size: clamp(2.25rem,5vw,3.7rem); }
.page-landing .auto-style2 { max-width: 850px !important; color: #5f6b7a !important; font-size: 1rem !important; }
.page-landing > p { margin: 0 !important; max-width: none !important; }
.page-landing > p:has(a) a {
  min-height: 74px;
  display: flex;
  align-items: center;
  padding: 17px 20px;
  background: #ffffff;
  border: 1px solid #d7e0e8;
  border-radius: 12px;
  box-shadow: 0 5px 18px rgba(23,54,93,.045);
  color: #17365d;
  text-decoration: none;
  font: 650 1rem/1.3 "Segoe UI", Arial, sans-serif;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.page-landing > p:has(a) a::after { content: "→"; margin-left: auto; color: #245a8d; font-size: 1.2rem; }
.page-landing > p:has(a) a:hover { transform: translateY(-2px); border-color: #adc0cf; box-shadow: 0 9px 22px rgba(23,54,93,.075); }
.page-landing > p:not(:has(a)) { display:none; }

/* General Hypersonics Learning Lab (calc.html) */
.page-calc header.wrap { padding-left: 0 !important; padding-right: 0 !important; }
.page-calc header.wrap > * { max-width: 1060px; }
.page-calc header.wrap .purpose-card { max-width: 1180px; }
.page-calc .purpose-card { margin-top: 24px; padding: 24px; display:grid; grid-template-columns: 1.1fr .9fr; gap: 22px; }
.page-calc .purpose-grid { display:grid; gap:10px; }
.page-calc .purpose-step { display:grid; grid-template-columns:34px 1fr; gap:10px; padding:10px; border-radius:10px; }
.page-calc .purpose-step > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#eaf2f8; color:#17365d; font:700 .85rem "Segoe UI",Arial,sans-serif; }
.page-calc .number-note { grid-column:1/-1; color:#5f6b7a; }
.page-calc .notice { max-width:1180px; margin:16px auto 0; padding:14px 16px; border:1px solid #ccd9e3; border-radius:12px; background:#f4f8fb; color:#435268; }
.page-calc main.wrap { padding: 36px 0 70px; }
.page-calc section { padding: 30px 0; scroll-margin-top: 78px; }
.page-calc .inputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.page-calc .card { padding:22px; margin-top:14px; }
.page-calc .actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.page-calc .result-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:16px; }
.page-calc .status-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.page-calc .grid { display:grid; gap:16px; }
.page-calc .grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.page-calc .grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-calc .result-grid > *, .page-calc .status-row > * { padding:13px; border:1px solid #dce4eb; border-radius:11px; background:#f8fafc; }
.page-calc .explain, .page-calc .callout { margin-top:14px; padding:14px 16px; border-left:3px solid #245a8d !important; }
.page-calc .inline-info { display:inline-grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#eaf2f8; color:#17365d; font:700 .72rem "Segoe UI",Arial,sans-serif; }
.page-calc .refs { color:#5f6b7a; }

/* Rocket Studio */
.page-rocket .controls { background:#ffffff !important; border-color:#d7e0e8 !important; box-shadow:0 10px 28px rgba(23,54,93,.08) !important; scrollbar-color:#a8bac9 transparent !important; }
.page-rocket .control-section { background:#f8fafc !important; border-color:#dce4eb !important; }
.page-rocket .control-section summary { color:#17365d !important; }
.page-rocket .control-section summary::after { color:#245a8d !important; border-color:#bfd0dc !important; background:#fff; }
.page-rocket .stabilizer-block { background:#f5f9fc !important; border-color:#d7e4ec !important; }
.page-rocket .checkbox-row { color:#334155 !important; }
.page-rocket .inline-help { color:#64748b !important; }
.page-rocket .card-header { background:#fbfcfd !important; border-color:#e1e7ec !important; }
.page-rocket .card-header p { color:#5f6b7a !important; }
.page-rocket .svg-wrap {
  background: linear-gradient(rgba(83,200,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(83,200,255,.05) 1px,transparent 1px),radial-gradient(circle at 50% 40%,rgba(32,75,105,.28),transparent 52%),#07111f !important;
  background-size:28px 28px,28px 28px,auto,auto !important;
}
.page-rocket .legend { color:#475569 !important; background:#fbfcfd !important; border-color:#d7e0e8 !important; }
.page-rocket .metric-card h3 { color:#17365d !important; }
.page-rocket .metric-line dt { color:#5f6b7a !important; }
.page-rocket .metric-line dd { color:#172033 !important; }
.page-rocket .warning-item { color:#334155 !important; }
.page-rocket .warning-item strong { color:#172033 !important; }
.page-rocket .equation-box h4 { color:#17365d !important; }
.page-rocket .reference-list { color:#475569 !important; }
.page-rocket .disclaimer { color:#6b511c !important; background:#fff9ee !important; border-color:#e4c996 !important; }
.page-rocket footer { color:#6b7280 !important; }

/* Aircraft lift tutorial: preserve dark scientific plots, lighten everything else */
.page-aircraft .hero-grid,
.page-aircraft .grid-2,
.page-aircraft .grid-3,
.page-aircraft .control-grid,
.page-aircraft .advanced-grid,
.page-aircraft .sim-grid { gap:18px; }
.page-aircraft .control { background:#f8fafc !important; border-color:#dce4eb !important; }
.page-aircraft .visual-panel,
.page-aircraft .aircraft-panel,
.page-aircraft svg.airflow,
.page-aircraft canvas { background:#071522 !important; border-color:#29445d !important; }
.page-aircraft .badge.good { color:#205c47 !important; background:#f1fbf7 !important; }
.page-aircraft .badge.warn { color:#704911 !important; background:#fff9ee !important; }
.page-aircraft .badge.bad { color:#713030 !important; background:#fff5f5 !important; }
.page-aircraft .quiz-item { background:#f8fafc !important; border-color:#dce4eb !important; }

/* Radar simulator: light console surrounding an intentionally dark radar scope */
.page-radar .app { padding: 20px; }
.page-radar .topbar { padding: 28px 30px; margin-bottom:16px; border:1px solid #d7e0e8; border-radius:14px; box-shadow:0 10px 26px rgba(23,54,93,.07); }
.page-radar .panel { border-radius:12px !important; overflow:hidden; }
.page-radar .panel-title { color:#17365d !important; background:#eef4f8 !important; border-color:#d7e0e8 !important; }
.page-radar .scope-wrap,
.page-radar .chart-wrap { background:#07111f !important; }
.page-radar #radarCanvas { background:#06111f !important; }
.page-radar #chartCanvas { background:#0b1322 !important; }
.page-radar .metrics { background:#f8fafc !important; color:#172033 !important; border:1px solid #dce4eb; }
.page-radar .export-columns label { color:#334155 !important; }
.page-radar .control-help { color:#66768a !important; }
.page-radar .severity-value { color:#5f6b7a !important; }

/* Compact Euler and transition pages */
.page-euler section,
.page-transition section { border-color:#d7e0e8 !important; }
.page-euler .group,
.page-transition .panel h3 { color:#245a8d !important; border-color:#d7e0e8 !important; }
.page-euler .group.r { color:#17365d !important; }
.page-euler .group.n { color:#8a6412 !important; }
.page-euler .plot { background:#ffffff !important; border-color:#d7e0e8 !important; box-shadow:0 10px 26px rgba(23,54,93,.06) !important; }
.page-euler .metrics > div { background:#ffffff !important; border-color:#d7e0e8 !important; box-shadow:0 6px 18px rgba(23,54,93,.05) !important; }
.page-transition .stage { background:linear-gradient(#07111f,#102b47) !important; border-color:#29445d !important; }
.page-transition .stage .craft { fill:#9bb0c855 !important; stroke:#e8f2ff !important; }
.page-transition .stage .gridline { stroke:#7f9bb4 !important; }
.page-transition .state p, .page-transition .lesson p { color:#5f6b7a !important; }
.page-transition footer, .page-euler footer { color:#6b7280 !important; }

/* Flow visualizer */
.page-flowviz .notice { background:#f4f8fb !important; color:#435268 !important; border-color:#ccd9e3 !important; }
.page-flowviz .visual-shell { background:#06101b !important; border-color:#29445d !important; }
.page-flowviz .visual-caption { background:#091724 !important; color:#c7d8e5 !important; }
.page-flowviz .lesson-card li { color:#475569 !important; }
.page-flowviz .status .body { color:#334155 !important; }

/* Navier-Stokes */
.page-navier section { border-color:#d7e0e8 !important; }
.page-navier .chip { color:#435268 !important; background:#eef4f8 !important; border-color:#ccd9e3 !important; }
.page-navier .tabs .tab-btn.active { color:#fff !important; }
.page-navier .metric { background:#f8fafc !important; }
.page-navier canvas { background:#071522 !important; border-color:#29445d !important; }
.page-navier .context-table td:first-child { color:#17365d !important; }
.page-navier .footer { color:#6b7280 !important; }
.page-navier .kbd { background:#eef4f8 !important; color:#17365d !important; border-color:#d5e0e8 !important; }

/* Reynolds explorer was already light; align it to the main site's palette */
.page-reynolds header { background:linear-gradient(135deg,#edf4f9 0%,#fff 58%,#eef3f7 100%) !important; color:#172033 !important; border-bottom:1px solid #d7e0e8; }
.page-reynolds header p { color:#5f6b7a !important; }
.page-reynolds .card { border-radius:14px !important; }
.page-reynolds .equation { color:#17365d !important; background:#eef4f8 !important; border-left-color:#245a8d !important; }
.page-reynolds .note { background:#f4f8fb !important; color:#435268 !important; border-color:#ccd9e3 !important; }
.page-reynolds .warning-note { background:#fff9ee !important; color:#68471a !important; border-color:#e5c79e !important; }
.page-reynolds .tabbar button.active { color:#fff !important; background:#17365d !important; border-color:#17365d !important; }
.page-reynolds .result-number { color:#17365d !important; }
.page-reynolds .result-panel { position:sticky; top:16px; }

/* Wind tunnel */
.page-windtunnel .notice { background:#f4f8fb !important; color:#435268 !important; border-color:#ccd9e3 !important; }
.page-windtunnel .lesson-strip { background:#d7e0e8 !important; border-color:#d7e0e8 !important; }
.page-windtunnel .lesson-strip div { background:#ffffff !important; }
.page-windtunnel .tunnel-stage,
.page-windtunnel .chart { background:#07131f !important; border-color:#29445d !important; }
.page-windtunnel .stage-badge { background:rgba(7,17,31,.9) !important; color:#dcecf7 !important; }
.page-windtunnel .stage-legend { color:#a8bfd4 !important; }
.page-windtunnel .result { background:#f8fafc !important; }
.page-windtunnel .result .key { color:#5f6b7a !important; }
.page-windtunnel .result .value { color:#172033 !important; }
.page-windtunnel .result .unit { color:#64748b !important; }
.page-windtunnel .status p { color:#5f6b7a !important; }
.page-windtunnel .quiz-q label { color:#334155 !important; }
.page-windtunnel footer { color:#6b7280 !important; border-color:#d7e0e8 !important; }

@media (max-width: 950px) {
  body.page-landing { grid-template-columns:1fr; }
  .page-calc .purpose-card { grid-template-columns:1fr; }
  .page-calc .inputs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-calc .result-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-calc .grid.three { grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px) {
  body.academic-lab { font-size:16px; }
  .academic-lab .wrap { width:min(100% - 24px,1180px) !important; }
  body.page-landing { width:min(100% - 24px,1180px); padding-top:22px; }
  .page-landing > header.wrap { padding:28px 24px !important; }
  .page-calc .inputs,
  .page-calc .result-grid,
  .page-calc .status-row,
  .page-calc .grid.two,
  .page-calc .grid.three { grid-template-columns:1fr; }
  .academic-lab > header:not(.app-header) { padding-top:38px !important; padding-bottom:30px !important; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; transition:none !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
