:root{
  --ink:#263c33;
  --green:#213d33;
  --muted:#738077;
  --paper:#f6f7f3;
  --line:#e0e4db;
  --sage:#eaf0e2;
  --lime:#d2e6a1;
  --gold:#a68141;
  --white:#fff;
  --serif:'Instrument Serif',Georgia,serif;
  --sans:'DM Sans',sans-serif
}
*{
  box-sizing:border-box
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.6
}
button,input{
  font:inherit
}
button,a,input{
  touch-action:manipulation
}
button{
  cursor:pointer
}
a{
  color:inherit
}
button:focus-visible,a:focus-visible,input:focus-visible{
  outline:2px solid #76944b;
  outline-offset:4px
}
button:disabled{
  cursor:default;
  opacity:.38
}
a{
  text-decoration:none
}
.sidebar{
  width:230px;
  position:fixed;
  inset:0 auto 0 0;
  border-right:1px solid var(--line);
  background:#f0f2eb;
  padding:33px 23px 20px;
  display:flex;
  flex-direction:column;
  z-index:20
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  width:fit-content;
  font-family:var(--serif);
  font-size:31px;
  line-height:.8;
  margin-bottom:58px
}
.brand-small{
  display:block;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:4px;
  margin-top:9px
}
.sidebar-label{
  font-size:9px;
  letter-spacing:1.7px;
  color:#879084;
  margin-bottom:14px
}
.side-nav{
  display:flex;
  flex-direction:column;
  gap:6px
}
.side-nav a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  border-radius:6px;
  color:#778078;
  font-size:12px;
  font-weight:500;
  transition:background .18s,color .18s
}
.side-nav a>span:first-child{
  font-size:19px;
  width:20px;
  text-align:center
}
.side-nav a:hover{
  background:#e8ede0;
  color:var(--green)
}
.side-nav a.active{
  background:#dce6cf;
  color:var(--green)
}
.nav-count{
  font-size:10px;
  margin-left:auto;
  background:#c3d5af;
  padding:0 6px;
  border-radius:3px
}
.sidebar-note{
  margin-top:auto;
  padding-top:60px
}
.mini-line{
  display:block;
  width:23px;
  border-top:2px solid #8a9e72
}
.sidebar-note p{
  font-family:var(--serif);
  font-size:27px;
  line-height:1.15;
  margin:16px 0
}
.sidebar-note small{
  font-size:8px;
  letter-spacing:1.2px;
  line-height:1.9;
  color:#818a7e
}
.course-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  border:1px solid #d3dbca;
  padding:9px 10px;
  border-radius:5px;
  margin-top:28px
}
.course-link:hover{
  background:#e2e9d9
}
.sidebar-footer{
  font-size:9px;
  color:#8b9489;
  margin:15px 0 0;
  line-height:1.5
}
.app-shell{
  margin-left:230px
}
.topbar{
  height:70px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 42px;
  font-size:11px;
  background:rgba(246,247,243,.94)
}
.breadcrumb{
  font-size:9px;
  letter-spacing:1.5px;
  color:#859181
}
.crumb-divider{
  margin:0 15px;
  color:#c3cbbd
}
.top-meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  color:#7b897c
}
.status-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#90a377
}
.top-badge{
  border:1px solid #dbe2d3;
  border-radius:20px;
  padding:4px 11px;
  margin-left:9px;
  color:#4a644c
}
main{
  padding:38px 42px 0;
  max-width:1560px;
  margin:auto
}
.page{
  display:none
}
.page.active{
  display:block;
  animation:fade-in .2s ease-out
}
.eyebrow{
  font-size:9px;
  letter-spacing:1.8px;
  font-weight:600;
  color:#7d8b75;
  margin:0 0 14px
}
.page-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start
}
.page-heading h1,h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:58px;
  line-height:1.03;
  letter-spacing:-1px;
  margin:0 0 16px
}
h1 em{
  font-weight:400;
  color:#70885a
}
.heading-description{
  font-size:12px;
  line-height:1.75;
  color:#7d877a;
  margin:0 0 30px
}
.print-button{
  background:none;
  border:1px solid #d7dfd0;
  border-radius:5px;
  padding:9px 12px;
  font-size:10px;
  color:#68785d;
  margin-top:36px;
  display:flex;
  gap:8px;
  align-items:center
}
.print-button:hover{
  background:#e9efdf
}
.print-button span{
  font-size:17px
}
.hero-strip{
  background:var(--green);
  color:#edf0e8;
  border-radius:9px;
  padding:25px 27px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px
}
.hero-intro{
  display:flex;
  gap:20px;
  align-items:center
}
.hero-icon{
  display:grid;
  place-items:center;
  color:#d9e5bf;
  width:45px;
  height:45px;
  border:1px solid #526950;
  border-radius:50%;
  font-size:24px
}
.hero-kicker{
  font-size:8px;
  letter-spacing:1.5px;
  color:#b1c39b
}
.hero-strip h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:27px;
  line-height:1.2;
  margin:6px 0
}
.hero-strip p{
  font-size:10px;
  color:#b9c7b5;
  margin:0
}
.hero-stats{
  display:flex;
  gap:28px
}
.hero-stats>div{
  padding-left:26px;
  border-left:1px solid #49604c;
  min-width:60px
}
.hero-stats strong{
  display:block;
  font-family:var(--serif);
  font-weight:400;
  font-size:31px;
  line-height:1.1;
  color:#dce9bd;
  white-space:nowrap
}
.hero-stats strong>span{
  font-size:17px
}
.hero-stats>div>span{
  font-size:8px;
  white-space:nowrap;
  color:#c0cbb4
}
.section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin:29px 0 17px
}
.section-heading h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:27px;
  margin:0;
  line-height:1.25
}
.section-heading p{
  font-size:10px;
  color:#839079;
  margin:5px 0 0
}
.legend{
  font-size:8px;
  display:flex;
  align-items:center;
  gap:6px;
  color:#7a8972;
  white-space:nowrap
}
.legend i{
  width:5px;
  height:5px;
  background:#a1b295;
  border-radius:50%
}
.legend i.review-dot{
  background:#b9995c;
  margin-left:9px
}
.roadmap{
  display:flex;
  gap:14px;
  margin-bottom:26px
}
.cycle{
  flex:1;
  min-width:0
}
.cycle-heading{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px
}
.cycle-heading>span{
  font-size:8px;
  letter-spacing:1.5px;
  color:#7d8d71
}
.cycle-heading>span:first-child{
  font-size:10px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  background:#e6ebde;
  border-radius:50%;
  letter-spacing:0
}
.cycle-heading:after{
  content:'';
  flex:1;
  height:1px;
  background:var(--line);
  margin-left:4px
}
.cycle-weeks{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px
}
.week-btn{
  position:relative;
  border:1px solid #dce2d6;
  background:#f9faf7;
  border-radius:6px;
  min-height:72px;
  color:#68765e;
  text-align:left;
  padding:9px 7px;
  transition:background .16s,border-color .16s,transform .16s
}
.week-btn:hover{
  background:#edf2e5;
  transform:translateY(-2px)
}
.week-btn>span{
  font-size:7px;
  letter-spacing:.3px;
  display:block;
  white-space:nowrap
}
.week-btn>strong{
  font-family:var(--serif);
  font-size:27px;
  font-weight:400;
  line-height:1.25
}
.week-btn>i{
  position:absolute;
  right:6px;
  bottom:11px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#b3c4a4
}
.week-btn.review{
  background:#f3efe4;
  border-color:#e2d8bd;
  color:#a4844d
}
.week-btn.review i{
  background:#b9a06e
}
.week-btn.selected{
  background:#dfeacb;
  border-color:#acc589;
  color:#2d4a30
}
.week-btn.selected i{
  background:#64844f
}
.week-btn.review.selected{
  background:#e9dec5;
  border-color:#bfa569;
  color:#6c532f
}
.detail-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 243px;
  gap:20px
}
.week-detail{
  padding:25px 28px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px;
  min-width:0
}
.week-detail-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px
}
.week-kicker{
  font-size:9px;
  letter-spacing:1px;
  font-weight:600;
  color:#7c9068
}
.week-stepper{
  display:flex;
  gap:5px
}
.week-stepper button{
  background:none;
  border:1px solid #e1e6da;
  display:grid;
  place-items:center;
  border-radius:4px;
  width:25px;
  height:25px;
  color:#5e7453
}
.week-detail h2{
  font-family:var(--serif);
  font-size:34px;
  font-weight:400;
  line-height:1.1;
  margin:15px 0 11px;
  max-width:530px
}
.subject-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 18px
}
.subject-tags span{
  background:#eff3e9;
  color:#6a7f59;
  border-radius:3px;
  font-size:8px;
  padding:3px 8px
}
.focus-intro{
  color:#75806e;
  font-size:11px;
  line-height:1.8
}
.focus-section h3,.materials-section h3{
  font-size:10px;
  letter-spacing:.3px;
  font-weight:600;
  margin:21px 0 9px
}
.focus-section ul{
  margin:0;
  padding:0;
  list-style:none
}
.focus-section li{
  font-size:11px;
  line-height:1.75;
  padding:5px 0 5px 18px;
  position:relative;
  color:#6d7965
}
.focus-section li:before{
  content:'';
  position:absolute;
  left:0;
  top:13px;
  width:5px;
  height:5px;
  border:1px solid #9bb389;
  border-radius:50%
}
.materials-section{
  margin-top:22px;
  padding-top:3px;
  border-top:1px solid #e8ece2
}
.materials-section>p{
  font-size:9px;
  color:#829075;
  line-height:1.75;
  margin-bottom:12px
}
.material-compact{
  padding:10px 0;
  border-top:1px solid #edf0e7;
  display:flex;
  align-items:center;
  gap:10px
}
.material-icon{
  height:29px;
  width:29px;
  border:1px solid #e4e9dc;
  border-radius:5px;
  display:grid;
  place-items:center;
  font-size:14px;
  color:#7d916b;
  flex-shrink:0
}
.material-title{
  font-size:10px;
  line-height:1.6;
  margin:0;
  color:#55674a
}
.material-location{
  font-size:8px;
  color:#9ba58e;
  margin-top:2px
}
.material-compact>a{
  margin-left:auto;
  color:#758b62;
  font-size:17px;
  padding:5px;
  flex-shrink:0
}
.material-extra{
  margin:10px 0 0;
  font-size:10px
}
.material-extra a{
  text-decoration:underline;
  text-underline-offset:3px
}
.full-brief{
  margin-top:16px;
  border-top:1px solid #e8ece1;
  padding-top:12px
}
.full-brief summary{
  cursor:pointer;
  font-size:10px;
  color:#728962
}
.full-brief p{
  font-size:11px;
  color:#73806b;
  line-height:1.85
}
.study-aside{
  padding:25px 23px;
  background:#edf1e6;
  border:1px solid #e1e7d7;
  border-radius:9px;
  align-self:start
}
.study-aside h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:28px;
  line-height:1.15;
  margin:12px 0 20px
}
.study-aside h3 em{
  color:#82956c
}
.mini-routine{
  list-style:none;
  margin:0;
  padding:0
}
.mini-routine li{
  font-size:9px;
  border-bottom:1px solid #dce4d2;
  padding:10px 0;
  display:flex;
  gap:12px
}
.mini-routine li span{
  color:#99aa84;
  font-size:9px
}
.text-link{
  display:inline-flex;
  gap:12px;
  font-size:9px;
  color:#7b8d66;
  margin-top:18px
}
.text-link:hover{
  text-decoration:underline
}
.mastery-note{
  border-top:1px solid #dce4d2;
  margin-top:22px;
  padding-top:18px;
  font-size:11px
}
.mastery-note p{
  font-size:9px;
  color:#869576;
  line-height:1.75;
  margin:7px 0 0
}
.bottom-note{
  display:flex;
  gap:13px;
  padding:17px 18px;
  border:1px solid #e1e6d8;
  background:#f1f4e9;
  border-radius:6px;
  margin-top:23px;
  color:#7c8a6e
}
.bottom-note>span{
  font-size:16px
}
.bottom-note p{
  font-size:9px;
  line-height:1.9;
  margin:0
}
.bottom-note strong{
  font-weight:600;
  color:#657858
}
.main-footer{
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  margin-top:37px;
  padding:19px 0 22px;
  color:#a0a991;
  font-size:8px;
  letter-spacing:.5px
}
.footer-dot{
  margin:0 7px
}
.routine-total{
  display:flex;
  align-items:baseline;
  gap:20px;
  margin:22px 0 0;
  padding:20px 27px;
  background:var(--green);
  color:#cedcbb;
  border-radius:8px
}
.routine-total strong{
  font-family:var(--serif);
  font-size:36px;
  font-weight:400
}
.routine-total span{
  font-size:11px
}
.routine-timeline{
  list-style:none;
  padding:10px 0;
  margin:10px 0 25px
}
.routine-timeline li{
  display:flex;
  gap:28px;
  padding:25px 10px;
  border-bottom:1px solid var(--line);
  align-items:flex-start
}
.routine-num{
  font-family:var(--serif);
  font-size:38px;
  line-height:1.2;
  color:#90a379;
  min-width:48px
}
.routine-timeline li>div{
  flex:1
}
.duration{
  font-size:9px;
  letter-spacing:1.4px;
  color:#8a9b78
}
.routine-timeline h2{
  font-family:var(--serif);
  font-size:29px;
  font-weight:400;
  line-height:1.2;
  margin:5px 0 10px
}
.routine-timeline p{
  font-size:12px;
  color:#7a8672;
  max-width:640px;
  margin:0
}
.routine-tag{
  font-size:9px;
  border:1px solid #dde5d4;
  padding:4px 10px;
  border-radius:20px;
  color:#7d9269;
  margin-top:5px
}
.two-notes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.two-notes article{
  background:#eaf0e1;
  border-radius:8px;
  padding:27px
}
.two-notes h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:28px;
  line-height:1.2;
  margin:0 0 15px
}
.two-notes p{
  font-size:11px;
  color:#7d8e6c;
  line-height:1.85
}
.two-notes label{
  font-size:10px;
  font-weight:500
}
.score-fields{
  display:flex;
  gap:8px;
  align-items:center;
  margin-top:8px
}
.score-fields input{
  width:95px;
  min-width:0;
  padding:8px;
  border:1px solid #cddbbf;
  border-radius:4px;
  background:#f8faf5;
  color:#49613c;
  font-size:11px
}
.score-result{
  font-weight:500;
  min-height:36px
}
.disclaimer{
  color:#8a957c;
  font-size:10px;
  line-height:1.8;
  margin:26px 0 0
}
.materials-banner{
  display:flex;
  align-items:center;
  gap:19px;
  padding:22px 26px;
  background:var(--green);
  border-radius:9px;
  color:#cadabb;
  margin:25px 0
}
.materials-banner p{
  margin:0;
  font-size:11px;
  line-height:1.85
}
.materials-banner strong{
  color:#e1ebce
}
.check-mark{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid #859b6d;
  border-radius:50%;
  flex-shrink:0
}
.resource-guide{
  display:flex;
  gap:28px;
  margin:28px 0 32px
}
.resource-guide article{
  flex:1;
  padding-right:20px;
  border-right:1px solid #dce4d1
}
.resource-guide article:last-child{
  border:0;
  padding-right:0
}
.resource-format{
  font-size:9px;
  letter-spacing:1.5px;
  color:#9baf81
}
.resource-guide h2{
  font-family:var(--serif);
  font-size:27px;
  font-weight:400;
  margin:10px 0
}
.resource-guide p{
  font-size:11px;
  color:#849378;
  line-height:1.85;
  margin:0
}
.search-label{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid #dce4d3;
  border-radius:7px;
  padding:11px 16px
}
.search-label>span{
  font-size:23px;
  color:#8ca271;
  line-height:1
}
.search-label input{
  border:0;
  background:none;
  width:100%;
  font-size:12px;
  color:#537044;
  outline-offset:1px
}
.search-label input::placeholder{
  color:#a0ad93
}
.filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:15px 0 12px
}
.filter-row button{
  border:1px solid #e0e7d7;
  border-radius:20px;
  background:none;
  padding:6px 13px;
  font-size:10px;
  color:#8a9b78
}
.filter-row button.selected{
  background:#dfeacb;
  border-color:#c4d7ad;
  color:#526a41
}
.resource-count{
  font-size:10px;
  color:#99a58a;
  margin:14px 0
}
.resource-list{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px
}
.resource-row{
  display:flex;
  gap:16px;
  align-items:center;
  padding:17px 21px;
  border-bottom:1px solid #edf0e7
}
.resource-row:last-child{
  border:0
}
.resource-row>div:not(.material-icon){
  flex:1;
  min-width:0
}
.resource-row h3{
  font-size:11px;
  font-weight:500;
  line-height:1.65;
  margin:0
}
.resource-row p{
  font-size:9px;
  color:#98a68a;
  margin:4px 0 0
}
.resource-row .resource-actions{
  flex:0;
  display:flex;
  gap:8px;
  align-items:center
}
.resource-actions button{
  padding:5px 8px;
  border:1px solid #e0e8d5;
  background:none;
  border-radius:4px;
  color:#80976b;
  font-size:9px;
  white-space:nowrap
}
.resource-actions a{
  color:#7c9468;
  font-size:18px;
  padding:4px
}
.empty-results{
  padding:35px 20px;
  color:#8b9d7c;
  text-align:center;
  font-size:12px
}
.verified-reading{
  margin-top:34px;
  padding:27px;
  background:#eaf0df;
  border-radius:9px
}
.verified-reading h2{
  font-family:var(--serif);
  font-size:31px;
  font-weight:400;
  line-height:1.25;
  margin:0 0 14px
}
.verified-reading p{
  font-size:12px;
  color:#7b8c67;
  line-height:1.9
}
.reading-links{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:20px
}
.reading-links a{
  font-size:11px;
  text-decoration:underline;
  text-underline-offset:4px
}
.priority-list{
  margin:25px 0
}
.priority-list article{
  display:flex;
  gap:27px;
  align-items:flex-start;
  padding:27px 0;
  border-bottom:1px solid var(--line)
}
.priority-list article>span{
  font-family:var(--serif);
  font-size:38px;
  color:#a0b28a;
  line-height:1.2;
  min-width:42px
}
.priority-list article>div{
  flex:1
}
.priority-list h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:30px;
  line-height:1.2;
  margin:0 0 13px
}
.priority-list p{
  font-size:12px;
  color:#859478;
  margin:0;
  max-width:680px;
  line-height:1.9
}
.priority-list article>strong{
  border:1px solid #dce6ce;
  white-space:nowrap;
  border-radius:20px;
  padding:4px 10px;
  font-size:9px;
  color:#93a77c;
  font-weight:500
}
.sample-note{
  padding:25px 28px;
  background:var(--green);
  border-radius:8px;
  margin:28px 0;
  color:#c8d8b5
}
.sample-note h3{
  font-family:var(--serif);
  font-size:29px;
  font-weight:400;
  margin:0 0 12px;
  color:#e3ecd3
}
.sample-note p{
  font-size:12px;
  line-height:1.9;
  margin:0
}
.source-badge{
  font-size:9px;
  white-space:nowrap;
  color:#8c9e76
}
.official-sources{
  background:#fff;
  border:1px solid #e3e9da;
  border-radius:8px
}
.official-sources a{
  display:flex;
  gap:15px;
  padding:17px 21px;
  border-bottom:1px solid #eaf0e2;
  font-size:11px;
  align-items:center
}
.official-sources a:last-child{
  border:0
}
.official-sources a:hover{
  background:#f3f7ed
}
.official-sources a>span:first-child{
  font-family:var(--serif);
  font-size:23px;
  color:#a5b78d;
  width:32px
}
.official-sources a>span:last-child{
  margin-left:auto;
  color:#89a16f;
  font-size:18px
}
.toast{
  position:fixed;
  bottom:24px;
  right:25px;
  background:var(--green);
  color:#e0ebce;
  padding:12px 19px;
  border-radius:6px;
  font-size:11px;
  box-shadow:0 8px 25px #213d3320;
  opacity:0;
  transform:translateY(10px);
  transition:.2s;
  pointer-events:none;
  z-index:50;
  max-width:calc(100vw - 40px)
}
.toast.show{
  opacity:1;
  transform:none
}
.skip-link{
  position:fixed;
  top:-100px;
  left:250px;
  z-index:100;
  background:#fff;
  padding:10px
}
.skip-link:focus{
  top:5px
}
.loading{
  color:#839574;
  font-size:12px
}
.noscript{
  background:#eaf0e0;
  padding:20px
}
.print-full-plan{
  display:none
}
@keyframes fade-in{
  from{
    opacity:0;
    transform:translateY(5px)
  }
  to{
    opacity:1;
    transform:none
  }
}
@media(min-width:1500px){
  main{
    padding-top:45px
  }
  .page-heading h1,h1{
    font-size:67px
  }
  .hero-strip{
    padding:29px 32px
  }
  .detail-layout{
    grid-template-columns:minmax(0,1fr) 280px
  }
  .week-btn{
    min-height:84px;
    padding:12px
  }
  .week-btn>strong{
    font-size:31px
  }
  .week-btn>span{
    font-size:8px
  }
}
@media(max-width:1170px){
  .sidebar{
    width:196px;
    padding:30px 16px
  }
  .app-shell{
    margin-left:196px
  }
  main{
    padding:32px 27px 0
  }
  .topbar{
    padding:0 27px
  }
  .hero-stats{
    gap:14px
  }
  .hero-stats>div{
    padding-left:16px
  }
  .hero-strip{
    padding:22px
  }
  .hero-icon{
    display:none
  }
  .hero-strip h2{
    font-size:24px
  }
  .hero-stats strong{
    font-size:29px
  }
  .detail-layout{
    grid-template-columns:minmax(0,1fr) 215px
  }
  .week-detail{
    padding:23px
  }
  .study-aside{
    padding:23px 19px
  }
  .roadmap{
    gap:10px
  }
  .cycle-weeks{
    gap:4px
  }
  .week-btn{
    padding:8px 6px
  }
  .week-btn>strong{
    font-size:24px
  }
  .week-btn>span{
    font-size:6px
  }
  .cycle-heading>span{
    font-size:7px
  }
}
@media(max-width:950px){
  .sidebar{
    width:170px;
    padding:26px 13px
  }
  .app-shell{
    margin-left:170px
  }
  .brand{
    font-size:28px
  }
  .brand img{
    width:32px;
    height:32px
  }
  .side-nav a{
    font-size:10px;
    padding:10px 7px;
    gap:8px
  }
  .sidebar-label{
    font-size:8px;
    letter-spacing:1px
  }
  .hero-strip{
    align-items:flex-start;
    flex-direction:column;
    gap:18px
  }
  .hero-stats{
    width:100%;
    gap:30px
  }
  .hero-stats>div{
    padding:0;
    border:0
  }
  .hero-intro h2{
    font-size:26px
  }
  .detail-layout{
    grid-template-columns:1fr
  }
  .study-aside{
    display:none
  }
  .cycle-heading>span:last-child{
    letter-spacing:.6px
  }
  .cycle-weeks{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .week-btn>span{
    font-size:8px
  }
  .week-btn{
    min-height:70px;
    padding:9px 11px
  }
  .week-btn>strong{
    font-size:27px
  }
  .resource-guide{
    gap:16px
  }
  .resource-guide article{
    padding-right:12px
  }
  .resource-guide h2{
    font-size:24px
  }
  .priority-list article>strong{
    display:none
  }
  .two-notes{
    gap:14px
  }
  .two-notes article{
    padding:22px
  }
  .routine-tag{
    display:none
  }
}
@media(max-width:650px){
  .sidebar{
    position:relative;
    width:100%;
    height:auto;
    padding:17px 20px 0;
    border-right:0;
    border-bottom:1px solid var(--line);
    background:#f0f3eb
  }
  .brand{
    font-size:28px;
    margin-bottom:16px;
    gap:10px
  }
  .brand img{
    width:34px;
    height:34px
  }
  .brand-small{
    font-size:8px;
    margin-top:7px;
    letter-spacing:3.5px
  }
  .sidebar-label,.sidebar-note,.sidebar-footer,.course-link{
    display:none
  }
  .side-nav{
    flex-direction:row;
    gap:6px;
    overflow-x:auto;
    padding-bottom:11px
  }
  .side-nav a{
    font-size:10px;
    white-space:nowrap;
    padding:8px 9px;
    gap:6px;
    flex-shrink:0
  }
  .side-nav a>span:first-child{
    font-size:14px;
    width:14px
  }
  .nav-count{
    display:none
  }
  .app-shell{
    margin-left:0
  }
  .topbar{
    height:47px;
    padding:0 21px
  }
  .breadcrumb{
    font-size:8px;
    letter-spacing:1px
  }
  .crumb-divider{
    margin:0 8px
  }
  .top-meta{
    font-size:8px
  }
  .top-badge{
    display:none
  }
  main{
    padding:29px 21px 0
  }
  .page-heading h1,h1{
    font-size:47px;
    letter-spacing:-.5px
  }
  .page-heading{
    position:relative
  }
  .eyebrow{
    font-size:8px;
    letter-spacing:1.4px
  }
  .heading-description{
    font-size:11px;
    max-width:300px;
    margin-bottom:24px
  }
  .print-button{
    position:absolute;
    right:0;
    top:-9px;
    font-size:0;
    width:29px;
    height:29px;
    padding:0;
    display:grid;
    place-items:center;
    margin-top:0
  }
  .print-button span{
    font-size:16px
  }
  .hero-strip{
    padding:20px;
    border-radius:8px;
    gap:20px
  }
  .hero-intro h2{
    font-size:26px;
    max-width:280px
  }
  .hero-strip p{
    font-size:9px;
    line-height:1.8
  }
  .hero-stats{
    justify-content:space-between;
    gap:10px
  }
  .hero-stats>div{
    min-width:auto
  }
  .hero-stats strong{
    font-size:30px
  }
  .hero-stats>div>span{
    font-size:8px
  }
  .section-heading{
    margin-top:26px;
    align-items:flex-start
  }
  .section-heading h2{
    font-size:25px
  }
  .section-heading p{
    font-size:9px;
    max-width:235px
  }
  .legend{
    font-size:0;
    gap:4px;
    margin-top:7px
  }
  .legend i{
    width:6px;
    height:6px
  }
  .roadmap{
    flex-direction:column;
    gap:15px
  }
  .cycle-heading{
    margin-bottom:7px
  }
  .cycle-heading>span:last-child{
    font-size:8px;
    letter-spacing:1px
  }
  .cycle-weeks{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px
  }
  .week-btn{
    padding:9px 11px;
    min-height:70px
  }
  .week-btn>span{
    font-size:7px
  }
  .week-btn>strong{
    font-size:29px
  }
  .week-detail{
    padding:23px 21px
  }
  .week-detail h2{
    font-size:33px
  }
  .focus-intro,.focus-section li{
    font-size:11px
  }
  .material-title{
    font-size:9px
  }
  .material-location{
    font-size:8px
  }
  .bottom-note{
    padding:15px
  }
  .bottom-note p{
    font-size:9px
  }
  .main-footer{
    font-size:7px;
    flex-direction:column;
    gap:6px;
    margin-top:28px
  }
  .routine-total{
    padding:18px 21px;
    display:block
  }
  .routine-total strong{
    font-size:37px;
    display:block;
    line-height:1.3
  }
  .routine-total span{
    font-size:9px
  }
  .routine-timeline li{
    gap:18px;
    padding:25px 0
  }
  .routine-num{
    font-size:32px;
    min-width:32px
  }
  .routine-timeline h2{
    font-size:28px
  }
  .routine-timeline p{
    font-size:11px
  }
  .two-notes{
    grid-template-columns:1fr
  }
  .two-notes article{
    padding:23px
  }
  .materials-banner{
    padding:20px;
    gap:13px
  }
  .materials-banner p{
    font-size:10px
  }
  .resource-guide{
    flex-direction:column;
    gap:20px
  }
  .resource-guide article{
    border-right:0;
    border-bottom:1px solid #dce4d1;
    padding:0 0 18px
  }
  .resource-guide h2{
    font-size:27px;
    margin:8px 0
  }
  .resource-guide p{
    font-size:11px
  }
  .resource-row{
    padding:16px 15px;
    gap:10px
  }
  .resource-row h3{
    font-size:10px
  }
  .resource-row p{
    font-size:8px
  }
  .resource-row .resource-actions{
    flex-direction:column
  }
  .resource-actions button{
    font-size:8px;
    padding:4px
  }
  .resource-row .material-icon{
    display:none
  }
  .filter-row button{
    font-size:9px;
    padding:5px 10px
  }
  .search-label input{
    font-size:10px
  }
  .verified-reading{
    padding:24px 21px
  }
  .verified-reading h2{
    font-size:29px
  }
  .verified-reading p{
    font-size:11px
  }
  .priority-list article{
    gap:18px;
    padding:24px 0
  }
  .priority-list article>span{
    font-size:33px;
    min-width:32px
  }
  .priority-list h2{
    font-size:28px
  }
  .priority-list p{
    font-size:11px
  }
  .sample-note{
    padding:23px
  }
  .sample-note h3{
    font-size:28px
  }
  .sample-note p{
    font-size:11px
  }
  .official-sources a{
    font-size:10px;
    padding:14px 15px;
    gap:10px
  }
  .official-sources a>span:first-child{
    font-size:22px;
    min-width:22px;
    width:22px
  }
  .source-badge{
    font-size:8px
  }
  .skip-link{
    left:10px
  }
  .desktop-break{
    display:none
  }
}
@media(prefers-reduced-motion:reduce){
  *{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
@media print{
  body{
    background:white;
    color:#222;
    font-family:Arial,sans-serif;
    font-size:11pt
  }
  .sidebar,.topbar,.print-button,.toast,.week-stepper,.study-aside,.main-footer,.roadmap,.section-heading,.hero-strip,.detail-layout,.bottom-note{
    display:none!important
  }
  .app-shell{
    margin:0
  }
  main{
    padding:0
  }
  .page:not(.active){
    display:none!important
  }
  .page-heading h1,h1{
    font-size:32pt
  }
  .heading-description{
    font-size:11pt;
    color:#444
  }
  .print-full-plan{
    display:block
  }
  .print-week{
    break-inside:avoid;
    padding:18px 0;
    border-top:1px solid #ddd
  }
  .print-week h2{
    font-size:18pt;
    margin:0 0 8px
  }
  .print-week p{
    font-size:10pt;
    color:#444
  }
  #cronograma.active .print-full-plan{
    display:block
  }
  .routine-timeline h2,.two-notes h3{
    font-size:20pt
  }
  .routine-total,.sample-note,.materials-banner{
    background:white;
    color:#222;
    border:1px solid #ddd
  }
  .routine-total span,.sample-note p,.sample-note h3{
    color:#222
  }
  .resource-row{
    break-inside:avoid
  }
  .resource-actions button{
    display:none
  }
}
.clear-filter{
  border:0;
  background:none;
  color:#738b5d;
  font-size:9px;
  text-decoration:underline;
  cursor:pointer;
  margin-left:12px
}
