
:root{--navy:#0b2f57;--blue:#0b5cab;--blue2:#eaf4ff;--gold:#f4b942;--ink:#172033;--muted:#596579;--line:#d8e0ea;--paper:#fff;--bg:#f4f7fb;--good:#eaf7ef;--warn:#fff7df}
.subplan-page{background:var(--bg);color:var(--ink)}
.subplan-hero{background:linear-gradient(135deg,var(--navy),#164e83);color:#fff;padding:42px 0 34px}
.subplan-hero .eyebrow{color:#bcdcff;font-weight:800;letter-spacing:.09em;text-transform:uppercase;font-size:.78rem}
.subplan-hero h1{margin:.35rem 0 .55rem;font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}
.subplan-hero p{max-width:800px;font-size:1.08rem;line-height:1.65;color:#edf6ff}
.subplan-meta{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.1rem}.subplan-meta span{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.42rem .72rem;font-weight:700;font-size:.88rem}
.subplan-shell{padding:28px 0 54px}.subplan-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}
.subplan-main,.subplan-side-card,.subplan-course-card,.subplan-index-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px rgba(11,47,87,.07)}
.subplan-main{padding:clamp(22px,4vw,42px)}.subplan-main h2{color:var(--blue);font-size:1.45rem;margin:1.8rem 0 .7rem;border-bottom:3px solid var(--blue2);padding-bottom:.45rem}.subplan-main h2:first-child{margin-top:0}.subplan-main h3{font-size:1.08rem;margin:1.2rem 0 .45rem}.subplan-main p,.subplan-main li{line-height:1.62}.subplan-main ul,.subplan-main ol{padding-left:1.35rem}.subplan-main li+li{margin-top:.35rem}
.subplan-side{display:grid;gap:16px;position:sticky;top:90px}.subplan-side-card{padding:19px}.subplan-side-card h2{font-size:1.05rem;color:var(--navy);margin:0 0 .75rem}.subplan-side-card ul{margin:0;padding-left:1.15rem}.subplan-side-card li{margin:.38rem 0;line-height:1.4}.subplan-callout{background:var(--blue2);border-left:5px solid var(--blue);padding:16px 18px;border-radius:10px;margin:1rem 0}.subplan-callout.warn{background:var(--warn);border-left-color:#c88a00}.subplan-callout.good{background:var(--good);border-left-color:#2e8b57}
.response-box{border:2px solid #b9c6d6;border-radius:12px;min-height:90px;margin:.55rem 0 1rem;background:linear-gradient(#fff 31px,#e7edf4 32px);background-size:100% 32px}.response-box.tall{min-height:160px}.response-box.sketch{min-height:260px;background:#fff}.response-box.small{min-height:58px}
.data-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.95rem}.data-table th{background:var(--navy);color:#fff;text-align:left}.data-table th,.data-table td{border:1px solid #bfcbd9;padding:.65rem;vertical-align:top}.data-table tr:nth-child(even) td{background:#f7f9fc}
.step-label{display:inline-block;color:#fff;background:var(--blue);font-weight:800;border-radius:999px;padding:.25rem .6rem;margin-right:.35rem}.checklist{list-style:none!important;padding-left:0!important}.checklist li{padding-left:1.8rem;position:relative}.checklist li:before{content:'☐';position:absolute;left:0;color:var(--blue);font-weight:900}
.subplan-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.subplan-print{border:0;background:var(--gold);color:#172033;border-radius:999px;padding:.75rem 1rem;font-weight:800;cursor:pointer}.subplan-link{display:inline-block;background:var(--navy);color:#fff!important;text-decoration:none;border-radius:999px;padding:.75rem 1rem;font-weight:800}
.subplan-index-intro{padding:34px 0}.subplan-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.subplan-course-card{padding:22px;border-top:6px solid var(--blue)}.subplan-course-card h2{margin:.15rem 0 .55rem;color:var(--navy)}.subplan-course-card ul{padding-left:1.2rem}.subplan-course-card li{margin:.55rem 0}.subplan-course-card a{font-weight:750}.subplan-index-card{padding:22px;margin-top:22px}.subplan-index-card h2{color:var(--navy);margin-top:0}
@media(max-width:900px){.subplan-grid{grid-template-columns:1fr}.subplan-side{position:static}.subplan-course-grid{grid-template-columns:1fr}}
@media print{
  @page{size:Letter portrait;margin:.48in .52in .55in}
  html,body{width:100%;margin:0!important;padding:0!important;background:#fff!important;color:#000!important;font-size:10.5pt;line-height:1.35;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .site-header,.footer,.site-breadcrumbs,.back-to-top,.subplan-actions,.subplan-side{display:none!important}
  .container{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
  .subplan-page,.subplan-shell{background:#fff!important;padding:0!important}
  .subplan-grid{display:block!important}
  .subplan-hero{background:#fff!important;color:#000!important;padding:0 0 10pt!important;border-bottom:2pt solid #0b5cab;margin-bottom:12pt}
  .subplan-hero .eyebrow{color:#0b5cab!important;font-size:8pt!important;letter-spacing:.08em!important;margin:0 0 3pt!important}
  .subplan-hero h1{color:#000!important;font-size:20pt!important;line-height:1.05!important;margin:0 0 4pt!important}
  .subplan-hero p{color:#333!important;font-size:10pt!important;line-height:1.3!important;margin:0 0 6pt!important;max-width:none!important}
  .subplan-meta{gap:4pt!important;margin-top:5pt!important}
  .subplan-meta span{color:#000!important;background:#fff!important;border:1pt solid #777!important;border-radius:3pt!important;padding:2pt 5pt!important;font-size:7.5pt!important}
  .subplan-main{box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important}
  .print-student-info{display:grid!important;grid-template-columns:1.7fr .75fr .85fr;gap:12pt;border:1pt solid #8ca3ba;border-radius:5pt;padding:7pt 9pt;margin:0 0 12pt;background:#f5f9fd!important}
  .print-student-info div{font-size:9pt;font-weight:700;white-space:nowrap}
  .print-student-info span{display:inline-block;min-width:72pt;border-bottom:.8pt solid #333;height:10pt;vertical-align:bottom;margin-left:4pt}
  .subplan-main h2{color:#0b5cab!important;font-size:13pt!important;line-height:1.15!important;margin:13pt 0 5pt!important;padding:0 0 3pt!important;border-bottom:1.5pt solid #cfe3f7!important;break-after:avoid-page;page-break-after:avoid}
  .subplan-main h2:first-of-type{margin-top:0!important}
  .subplan-main h3{font-size:10.5pt!important;margin:9pt 0 3pt!important;break-after:avoid-page;page-break-after:avoid}
  .subplan-main p{margin:3pt 0 6pt!important;line-height:1.35!important}
  .subplan-main ul,.subplan-main ol{margin:4pt 0 7pt!important;padding-left:18pt!important}
  .subplan-main li{line-height:1.3!important;margin:2pt 0!important}
  .subplan-callout{background:#eef6ff!important;border-left:3pt solid #0b5cab!important;border-radius:3pt!important;padding:7pt 9pt!important;margin:7pt 0 9pt!important;break-inside:avoid-page;page-break-inside:avoid}
  .subplan-callout.warn{background:#fff8e6!important;border-left-color:#b87800!important}
  .subplan-callout.good{background:#edf8f1!important;border-left-color:#2e8b57!important}
  .response-box{border:1.2pt solid #93a5b8!important;border-radius:4pt!important;min-height:64pt!important;margin:4pt 0 8pt!important;background:repeating-linear-gradient(to bottom,#fff 0,#fff 20pt,#d7e0e9 20.5pt,#fff 21pt)!important;break-inside:avoid-page;page-break-inside:avoid}
  .response-box.small{min-height:40pt!important}
  .response-box.tall{min-height:105pt!important}
  .response-box.sketch{min-height:175pt!important;background:#fff!important}
  .data-table{width:100%!important;border-collapse:collapse!important;margin:6pt 0 9pt!important;font-size:8.6pt!important;break-inside:avoid-page;page-break-inside:avoid}
  .data-table th{background:#0b2f57!important;color:#fff!important;font-weight:700!important}
  .data-table th,.data-table td{border:.8pt solid #8194a8!important;padding:4pt!important;vertical-align:top!important}
  .data-table tr:nth-child(even) td{background:#f5f7fa!important}
  .step-label{color:#0b5cab!important;background:#fff!important;border:1pt solid #0b5cab!important;border-radius:3pt!important;padding:1pt 4pt!important}
  .checklist{margin-bottom:7pt!important}
  .checklist li:before{color:#0b5cab!important}
  table,tr,td,th,img,svg,.response-box,.subplan-callout{max-width:100%!important}
  tr{break-inside:avoid-page;page-break-inside:avoid}
  a{color:#000!important;text-decoration:none!important}
  a[href]:after{content:none!important}
  .print-only{display:block!important}
  .screen-only{display:none!important}
}
@media screen{.print-only,.print-student-info{display:none}}
