/* AI2Practice v2 theme: one palette and type system for every page.
   Loaded last, after assets/css/lesson-layout.css (curriculum pages) or assets/css/site.css (section pages).
   Route colors match the home page map: core curriculum = navy, Research Lab = rust, Leadership = blue. */
/* Arial sized to IBM Plex Sans, so text keeps its width while the web font loads and the header doesn't jump on swap. */
@font-face {
  font-family: 'Plex Fallback';
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  size-adjust: 102.8%; ascent-override: 99.7%; descent-override: 26.8%; line-gap-override: 0%;
}
:root {
  /* Route palette (shared with assets/css/home.css) */
  --route-core: #17324d;
  --route-res: #a8492c;
  --route-res-light: #f6e6df;
  --route-lead: #0369a1;
  --route-lead-light: #e0f0f9;
  --route-edu: #3f6e8c;
  --route-beg: #4b9b8f;
  --route-int: #5b8db5;
  --route-adv: #7c3aed;
  --route-ink: #111827;
  --route-muted: #6b7280;
  --route-soft: #f5f6f8;
  --route-line: #e5e7eb;
  --plex: 'IBM Plex Sans', 'Plex Fallback', system-ui, sans-serif;
  --plex-mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* assets/css/site.css tokens */
  --ink: var(--route-ink);
  --muted: var(--route-muted);
  --paper: #ffffff;
  --paper-2: var(--route-soft);
  --line: var(--route-line);
  --navy: var(--route-core);
  --blue: var(--route-edu);
  --teal: var(--route-lead);
  --sans: var(--plex);
  --serif: var(--plex);

  --editorial-navy: var(--route-core);
  --editorial-blue: var(--route-lead);
  --editorial-cyan: var(--route-lead);
  --editorial-teal: var(--route-res);
  --editorial-paper: #ffffff;
  --editorial-line: var(--route-line);

  /* assets/css/lesson-layout.css tokens */
  --primary: var(--route-core);
  --primary-mid: var(--route-edu);
  --accent: var(--route-lead);
  --accent-dark: #075985;
  --accent-light: var(--route-lead-light);
  --offwhite: #ffffff;
  --heading: var(--plex);
}

body { font-family: var(--plex); background: #fff; }
h1, h2, h3, h4 { font-family: var(--plex); letter-spacing: -0.02em; }

/* Header: same look on section pages (static header) and curriculum pages (shared.js nav) */
.site-header, .site-nav { background: rgba(255,255,255,.96); border-bottom: 1px solid var(--route-line); }
.navbar, .nav-inner { min-height: 66px; }
.nav-links a, .nav-links .nav-drop-toggle { font-family: var(--plex); font-weight: 500; font-size: .93rem; line-height: 1.4; }
.nav-links a.active { font-weight: 500; }
.nav-links a.login {
  border: 1px solid var(--route-line); padding: 6px 12px; border-radius: 8px;
}
.nav-links a.login:hover { border-color: var(--route-core); }

/* Research Lab pages use the rust route color */
.page-hero.route-res { border-top: 6px solid var(--route-res); }
.page-hero.route-lead { border-top: 6px solid var(--route-lead); }
.page-hero.route-core { border-top: 6px solid var(--route-core); }

/* Module landing pages */
.module-tracks { margin: 10px 0 0; line-height: 1.9; font-size: .92rem; }
.module-soon { border-style: dashed; opacity: .8; }
.module-soon .label { color: var(--route-muted); }
.module-branch { margin-top: 22px; }

/* AI2PRACTICE LIFECYCLE QUESTIONS */
.stage-question { margin:2px 0 9px !important; color:var(--route-lead); font-weight:600; font-style:italic; }
/* /AI2PRACTICE LIFECYCLE QUESTIONS */

/* AI2PRACTICE NAV + PROGRESS ARCHITECTURE */
.nav-drop{position:relative}.nav-drop-toggle{appearance:none;border:0;background:transparent;font:inherit;color:#394355;padding:9px 11px;border-radius:10px;cursor:pointer}.nav-drop-toggle:hover,.nav-drop.open .nav-drop-toggle{background:#edf1ef;color:var(--navy)}
.nav-drop-menu{display:none;position:absolute;z-index:300;top:calc(100% + 6px);left:0;width:285px;padding:7px;background:#fff;border:1px solid var(--route-line);border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.15)}.nav-drop.open .nav-drop-menu{display:block}.nav-drop-menu::before{content:'';position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block!important;padding:10px 11px!important;border-radius:7px!important}.nav-drop-menu strong,.nav-drop-menu small{display:block}.nav-drop-menu small{margin-top:2px;color:var(--route-muted);font-size:.72rem;font-weight:400;line-height:1.3}
.local-progress-note{max-width:1060px;margin:10px auto 0;padding:8px 16px;color:#66717a;font-size:.76rem;text-align:right}.local-progress-note a{font-weight:700;color:var(--route-core)}
.related-resource-card,.next-choice-grid{display:grid;gap:14px}.related-resource-card{grid-template-columns:1fr auto;align-items:center;padding:18px;border:1px solid var(--route-line);border-radius:12px;background:#f8fafc}.related-resource-card span,.next-choice span{display:block;margin-bottom:4px;color:var(--route-muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.related-resource-card strong{display:block}.related-resource-card p{margin:5px 0 0;font-size:.86rem;color:#53606d}.related-resource-card>a{font-weight:800;text-decoration:none}.next-choice-grid{grid-template-columns:1fr 1fr}.next-choice{display:block;padding:20px;border:1px solid var(--route-line);border-radius:12px;text-decoration:none;color:inherit}.next-choice.primary{border-top:5px solid var(--route-core)}.next-choice:not(.primary){border-top:5px solid var(--route-lead)}.next-choice strong{display:block;font-size:1.05rem}.next-choice p{margin:6px 0 0;color:#5c6772;font-size:.86rem}
.progress-shell{max-width:1040px}.progress-local-note{padding:20px;border:1px solid #d5dee6;border-left:5px solid var(--route-core);border-radius:10px;background:#f8fafc}.progress-local-note p{margin:5px 0 0;color:#56616c}.progress-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.progress-tools select{padding:9px;border:1px solid var(--route-line);border-radius:8px;background:#fff}.progress-reset{color:#8a2d2d}.progress-import-status{min-height:1.2em;margin:8px 0 0!important;font-size:.8rem}.progress-summary{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin:22px 0 44px;padding:16px 18px;border:1px solid var(--route-line);border-radius:12px}.progress-summary span{display:block;color:var(--route-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.progress-summary strong{display:block}.progress-summary-bar{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress-summary-bar i{display:block;height:100%;background:var(--route-core)}.progress-section{padding:34px 0;border-top:1px solid var(--route-line)}.progress-section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:20px}.progress-section-head h2{margin:0}.progress-section-head>p{margin:0;color:#62707c}.progress-core-list{display:grid;gap:8px}.progress-core-item{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:13px 15px;border:1px solid var(--route-line);border-radius:10px;text-decoration:none;color:inherit}.progress-core-item.done{background:#f3f8f5}.progress-check{display:grid;place-items:center;width:25px;height:25px;border:2px solid #aeb8c1;border-radius:50%;font-size:.75rem;font-weight:900}.done .progress-check{background:#2e7d5b;border-color:#2e7d5b;color:#fff}.progress-core-item small,.progress-core-item strong{display:block}.progress-core-item small{color:var(--route-muted);font-size:.7rem}.progress-core-item b{font-size:.78rem;color:var(--route-core)}.pathway-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pathway-card{padding:18px;text-align:left;border:1px solid var(--route-line);border-radius:12px;background:#fff;cursor:pointer}.pathway-card:hover,.pathway-card.selected{border-color:var(--route-core);box-shadow:0 5px 16px rgba(23,50,77,.08)}.pathway-card.selected{background:#f3f6f9}.pathway-card span,.pathway-card strong,.pathway-card small{display:block}.pathway-card span{font-size:1.05rem;font-weight:800}.pathway-card strong{margin:7px 0;font-size:.81rem;font-weight:500;line-height:1.45;color:#4f5b66}.pathway-card small{color:var(--route-core);font-weight:700}.progress-small-note{color:#68747f;font-size:.8rem}.completion-steps{display:grid;gap:8px}.completion-step{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:15px;border:1px solid var(--route-line);border-radius:10px}.completion-step small{display:block;margin-top:2px;color:var(--route-muted)}.completion-step a{font-weight:800;text-decoration:none}.progress-specializations{display:grid;grid-template-columns:1fr 1fr;gap:14px}.progress-specialization{padding:20px;border:1px solid var(--route-line);border-top:5px solid var(--c);border-radius:12px;text-decoration:none;color:inherit}.progress-specialization.research{--c:var(--route-res)}.progress-specialization.leadership{--c:var(--route-lead)}.progress-specialization span,.progress-specialization strong{display:block}.progress-specialization span{font-weight:800}.progress-specialization p{margin:7px 0 0;color:#596672;font-size:.84rem}.progress-looking-ahead{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.progress-looking-ahead h2{margin:0}.progress-looking-ahead p{margin:7px 0 0}@media(max-width:960px){.nav-drop-menu{position:static;width:auto;margin:0 12px;box-shadow:none}.nav-drop-toggle{width:100%;text-align:left}.progress-section-head,.pathway-grid,.progress-specializations,.next-choice-grid{grid-template-columns:1fr}.progress-summary{grid-template-columns:1fr}.progress-looking-ahead{grid-template-columns:1fr}.related-resource-card{grid-template-columns:1fr}.local-progress-note{text-align:left}}
.next-step-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 24px;border:1px solid var(--route-line);border-left:4px solid var(--route-core);border-radius:0 12px 12px 0;background:#fff}.next-step-copy span{display:block;margin-bottom:4px;color:var(--route-muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.next-step-copy strong{display:block;color:var(--navy);font-size:1.12rem}.next-step-copy p{margin:6px 0 0;color:#5c6772;font-size:.88rem;max-width:58ch}.next-step-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.next-step-depth{display:inline-flex;padding:3px;gap:2px;border-radius:8px;background:#f1f3f5}.next-step-depth button{border:0;background:none;padding:6px 11px;border-radius:6px;color:#6b7280;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.next-step-depth button:hover{color:var(--navy)}.next-step-depth button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:0 1px 2px rgba(17,24,39,.12)}.next-step-link{display:inline-flex;align-items:center;padding:10px 16px;border-radius:8px;background:var(--navy);color:#fff!important;font-weight:600;font-size:.88rem;text-decoration:none;white-space:nowrap}.next-step-link:hover{background:#0f2438}
@media(max-width:760px){.next-step-card{grid-template-columns:1fr}.next-step-actions{align-items:stretch}.next-step-depth{justify-content:space-between}.next-step-depth button{flex:1}.next-step-link{justify-content:center}}
/* The last dropdown (Resources) opens leftward so it never runs past the right edge and makes the page scroll sideways. */
@media(min-width:961px){.nav-links>.nav-drop:nth-last-child(2) .nav-drop-menu{left:auto;right:0}.nav-links>.nav-drop:nth-last-child(2) .nav-drop-menu::before{left:0;right:0}}
/* /AI2PRACTICE NAV + PROGRESS ARCHITECTURE */

/* Footer injected by assets/js/shared.js on legacy-layout pages (lessons, tracker, practice) */
.legacy-footer{padding:22px 0;background:#0d1d32}
.legacy-footer .compact-footer-row{width:min(calc(100% - 40px),1200px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.legacy-footer .footer-mini-brand{display:flex;align-items:center;gap:14px;color:#bac6d2;font-size:.7rem}
.legacy-footer .footer-mini-brand img{width:96px;height:auto}
.legacy-footer nav{display:flex;gap:15px;flex-wrap:wrap}
.legacy-footer nav a{color:#d8e0e8;text-decoration:none;font-size:.69rem}
.legacy-footer nav a:hover{color:#fff}
@media(max-width:760px){.legacy-footer .compact-footer-row{align-items:flex-start;flex-direction:column}}

/* Educator plan builder (pages/educators.html) */
.edu-builder{display:grid;gap:18px;padding:22px;border:1px solid var(--route-line);border-radius:12px;background:#fff}
.edu-field{display:grid;gap:6px;border:0;padding:0;margin:0}
.edu-field>span,.edu-field legend{font-weight:600;color:var(--navy);padding:0}
.edu-field small{font-weight:400;color:var(--route-muted)}
.edu-field input[type=text],.edu-field select,.edu-link-row input{width:100%;padding:9px 11px;border:1px solid var(--route-line);border-radius:8px;font:inherit;background:#fff}
.edu-checks{display:grid;gap:12px}
.edu-checks label{display:flex;gap:8px;align-items:baseline;font-size:.93rem}
.edu-mod{display:grid;gap:5px}
.edu-mod strong{font-size:.85rem;color:var(--route-muted)}
.edu-output{display:grid;gap:6px;padding-top:14px;border-top:1px solid var(--route-line)}
.edu-link-row{display:flex;gap:10px}
.edu-link-row .btn{white-space:nowrap}
.edu-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.edu-map-mod{padding:16px;border:1px solid var(--route-line);border-radius:10px;background:#fff}
.edu-map-mod a{text-decoration:none;color:var(--navy)}
.edu-map-mod ul{margin:8px 0 0;padding-left:18px;font-size:.88rem}
.edu-map-mod .is-dev{color:var(--route-muted)}
.edu-map-mod small{font-size:.72rem;color:var(--route-muted)}
@media(max-width:760px){.edu-map{grid-template-columns:1fr}.edu-link-row{flex-direction:column}}
.muted{color:var(--route-muted,#5f6878)}

/* Page-to-page crossfade (browsers that support cross-document view transitions).
   The header and course outline keep their place instead of fading. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .16s; }
  .site-nav { view-transition-name: ai2-nav; }
  .ai2-outline { view-transition-name: ai2-outline; }
}
