:root{--ink:#18352f;--muted:#687a73;--green:#d9f36b;--paper:#f6f8f5;--line:#e5eae3;--font:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--display:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1rem}.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.live-dot{width:7px;height:7px;border-radius:50%;background:#d9f36b;display:inline-block;box-shadow:0 0 0 3px #d9f36b24}.site-header{height:76px;display:flex;align-items:center;padding:0 max(32px,calc((100vw - 1160px)/2));background:var(--paper);border-bottom:1px solid #edf0eb;gap:35px}.brand{display:flex;align-items:center;text-decoration:none;white-space:nowrap}.brand-logo{height:30px;width:auto;display:block}.community-mark span{color:#81a725}.main-nav{display:flex;gap:30px;margin:auto;font-size:0.875rem;color:#697871}.main-nav a{color:inherit;text-decoration:none;padding:29px 0;position:relative}.main-nav a:hover,.main-nav a.active{color:#18352f}.main-nav .active:after{content:'';position:absolute;bottom:19px;left:0;width:100%;height:2px;background:#a7cc3b}.upload-link{border:1px solid #cbd4cb;padding:10px 15px;min-height:40px;display:inline-flex;align-items:center;gap:8px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:0.8125rem;font-weight:600;white-space:nowrap}.upload-link .icon{flex:none}.menu-toggle{display:none;border:0;background:none;color:var(--ink);font-size:1.375rem;min-width:36px;min-height:36px;align-items:center;justify-content:center;cursor:pointer}.hero{min-height:528px;display:grid;grid-template-columns:0.97fr 1.03fr;position:relative;align-items:center;padding-top:24px;padding-bottom:57px}.hero-copy{padding:30px 0 37px;z-index:2}.eyebrow{font-size:0.8125rem;letter-spacing:0.9px;font-weight:600;color:#71857a;display:flex;align-items:center;gap:8px}.eyebrow-star{font-size:1.125rem;color:#83a62e}.hero h1{font:600 clamp(3rem,5.5vw,4.375rem)/1.04 var(--display);letter-spacing:-4.5px;margin:19px 0 17px}.hero h1 span{color:#83a62e}.hero-intro{font-size:1rem;line-height:1.75;color:#6b7c74;max-width:435px;margin:0 0 27px}.search{height:56px;background:#fff;border:1px solid #e6ebe3;border-radius:9px;box-shadow:0 8px 26px #2944390a;display:flex;align-items:center;padding:5px 5px 5px 16px;max-width:532px}.search-icon{color:#91a098;margin-right:11px;display:grid;place-items:center;flex:none}.search input{border:0;outline:0;min-width:0;flex:1;font:0.875rem var(--font);color:var(--ink)}.search input::placeholder{color:#9ca8a1}.search button{border:0;background:#173730;color:#fff;border-radius:6px;height:44px;padding:0 17px;font:600 0.8125rem var(--font);cursor:pointer}.search button .icon{color:var(--green);flex:none;margin-left:8px}.search button:hover,.community-button:hover{background:#284c40}.popular{display:flex;align-items:center;gap:8px;margin-top:17px}.popular>span{font-size:0.75rem;letter-spacing:0.8px;color:#849189;font-weight:600;margin-right:2px}.popular button{border:1px solid #e2e8df;background:transparent;border-radius:20px;padding:6px 11px;min-height:32px;font:0.8125rem var(--font);color:#697a72;cursor:pointer}.popular button:hover{border-color:#9dbb49;background:#f0f6df}.hero-art{width:100%;aspect-ratio:1281/1024;align-self:end;margin-bottom:-3px;display:flex;align-items:center;justify-content:center}.hero-image{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.hero-foot{position:absolute;bottom:15px;left:0;right:0;border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;color:#829088;font-size:0.8125rem}.hero-foot b{color:#425d50}.hero-foot-right{display:flex;align-items:center;gap:10px}.avatar-stack{display:flex;padding-left:4px}.avatar-stack i{width:21px;height:21px;margin-left:-4px;border:2px solid var(--paper);border-radius:50%;background:#e4a479;color:white;display:grid;place-items:center;font:600 0.75rem var(--font);font-style:normal}.avatar-stack i:nth-child(2){background:#91aeca}.avatar-stack i:nth-child(3){background:#98ae67}.avatar-stack i:nth-child(4){background:#d5dcae;color:#526640}.resource-section{background:#fff;padding:78px 0 82px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:27px}.section-head h2,.updates-heading h2{font:600 2rem/1.2 var(--display);letter-spacing:-1.5px;margin:10px 0 0}.section-head h2 span,.updates-heading h2 span{color:#83a62e}.text-link{color:#476754;text-decoration:none;font-size:0.8125rem;font-weight:600;border-bottom:1px solid #bfd08d;padding-bottom:5px}.text-link span{font-size:1rem;margin-left:7px}.resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.resource-card{min-height:229px;padding:18px 18px 16px;border-radius:9px;text-decoration:none;color:var(--ink);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.resource-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px #243b2614}.card-peach{background:#fbebe1}.card-lilac{background:#eee9f6}.card-mint{background:#e7f1e8}.card-yellow{background:#f8f0d9}.card-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.card-icon{width:34px;height:34px;background:#fff9;border-radius:8px;display:grid;place-items:center;font-size:1.125rem}.card-arrow{color:#62796b;display:grid;place-items:center;flex:none}.card-bottom{position:relative;z-index:1;margin-top:23px}.card-label{font-size:0.8125rem;letter-spacing:0.7px;font-weight:600;color:#78867e}.card-bottom h3{font:600 1.125rem var(--display);letter-spacing:-.5px;margin:6px 0}.card-bottom p{font-size:0.8125rem;line-height:1.6;color:#6d7a72;max-width:195px;margin:0 0 12px}.card-count{font-size:0.8125rem;font-weight:600;color:#506d58}.card-count .icon{margin-left:5px;color:#83a62e;flex:none}.card-decoration{position:absolute;color:#fff7;font-weight:600;pointer-events:none}.decor-lines{font-size:120px;right:-9px;top:8px;transform:rotate(-18deg)}.decor-paper{font:600 2.8125rem/.8 var(--display);right:13px;top:54px;transform:rotate(11deg);color:#fff9;text-align:center}.decor-check{font-size:110px;right:18px;top:34px;transform:rotate(10deg)}.decor-star{font-size:106px;right:11px;top:31px}.filters{margin-top:46px;background:#f5f7f2;border:1px solid #e8ede6;border-radius:10px;padding:22px 25px;display:flex;align-items:center;justify-content:space-between}.filter-intro h3{font:600 1.125rem var(--display);letter-spacing:-.5px;margin:6px 0}.filter-intro p{font-size:0.8125rem;color:#7b8881;margin:0}.filter-controls{display:flex;gap:12px}.filter-controls label{font-size:0.75rem;letter-spacing:0.7px;color:#7c8a81;font-weight:600}.filter-controls select{display:block;margin-top:7px;min-width:176px;height:39px;border:1px solid #dfe6dc;border-radius:6px;padding:0 30px 0 11px;background:#fff;color:#3c594b;font:0.8125rem var(--font);letter-spacing:0}.results-bar{display:flex;align-items:center;justify-content:space-between;color:#63756a;font-size:0.8125rem;margin:23px 0 10px}.results-bar span:last-child{font-size:0.8125rem;letter-spacing:1.3px;color:#98a39b}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e9eee7;border-radius:8px;color:var(--ink);text-decoration:none;background:white;transition:border-color .2s}.result-card:hover{border-color:#aac664}.result-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;background:#eff5df;border-radius:7px;color:#77962e;font-size:1rem}.result-info{min-width:0;flex:1}.result-info strong{display:block;font-size:0.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-info small{display:block;color:#8a968e;font-size:0.75rem;margin-top:4px}.result-type{border:1px solid #e8eee4;border-radius:20px;padding:4px 7px;color:#718378;font-size:0.8125rem;white-space:nowrap}.result-arrow{color:#94aa64}.empty-state{padding:26px;text-align:center;color:#75857b;font-size:0.875rem}.updates-section{display:grid;grid-template-columns:.78fr 1.22fr;gap:74px;padding-top:80px;padding-bottom:84px}.updates-heading{position:relative}.updates-heading h2{font-size:2.25rem;margin:13px 0}.updates-heading p{font-size:0.8125rem;line-height:1.7;color:#718078;max-width:260px;margin:0 0 20px}.updates-heading .text-link{display:inline-block}.live-dot{background:#8fb237;box-shadow:0 0 0 3px #8fb23724}.updates-doodle{position:absolute;right:45px;top:21px;font-size:3.25rem;color:#e4e9d8}.notice-list{border-top:1px solid var(--line)}.notice{display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.notice-date{font:600 0.8125rem var(--display);color:#718378;text-align:center;line-height:1.3}.notice-date b{font:600 1.25rem var(--display);display:block;color:#345343}.notice-type{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.8px;color:#8a9b63;font-weight:600}.notice h3{font:600 0.8125rem/1.45 var(--font);margin:4px 0 0;color:#40584a}.notice a{font-size:1.125rem;color:#8da34a;text-decoration:none;padding:8px;min-width:34px;min-height:34px;display:inline-grid;place-items:center;border-radius:5px}.community{min-height:210px;background:#e8f0d8;border-radius:12px;margin-bottom:64px;padding:37px 47px;display:flex;align-items:center;gap:31px;position:relative;overflow:hidden}.community-mark{font:600 2.875rem var(--display);letter-spacing:-5px;flex:none}.community .eyebrow{color:#7a8d5a}.community h2{font:600 1.5rem/1.22 var(--display);letter-spacing:-.8px;margin:8px 0}.community p{font-size:0.8125rem;line-height:1.6;color:#6e7d69;margin:0;max-width:385px}.community-button{margin-left:auto;background:#173730;color:#fff;padding:13px 18px;border-radius:6px;text-decoration:none;font-size:0.8125rem;font-weight:600;white-space:nowrap;z-index:1;transition:background .2s}.community-button span{color:var(--green);font-size:1rem;margin-left:12px}.community-spark{position:absolute;right:220px;top:-16px;font-size:100px;color:#dce9c8}.footer{border-top:1px solid var(--line);padding:20px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;color:#849189;font-size:0.8125rem}.heart{color:#e58a70}
@media(max-width:900px){.site-header{gap:20px}.main-nav{gap:16px}.hero{grid-template-columns:1fr 0.9fr}.resource-grid{grid-template-columns:repeat(2,1fr)}.updates-section{gap:35px}.community{padding-inline:28px;gap:20px}.community-spark{right:180px}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}.site-header{height:65px;padding:0 18px;justify-content:space-between}.main-nav{display:none;position:absolute;left:0;right:0;top:101px;background:#fff;padding:10px 20px;z-index:5;box-shadow:0 10px 15px #263a2914}.main-nav.open{display:flex;flex-direction:column;gap:0}.main-nav a{padding:13px 4px}.main-nav .active:after{bottom:7px;width:22px}.upload-link{margin-left:auto;padding:8px 10px;font-size:0.8125rem}.menu-toggle{display:block}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:30px;padding-bottom:50px}.hero-copy{padding:20px 0 0}.hero h1{font-size:3.5rem;letter-spacing:-3px;margin-top:15px}.hero-intro{font-size:0.9375rem}.search{height:52px}.search button{height:40px;padding:0 11px;font-size:0.8125rem}.popular{flex-wrap:wrap}.popular button{font-size:0.8125rem}.hero-art{max-height:352px;align-self:auto;margin:0}.hero-foot{bottom:7px;font-size:0.75rem}.hero-foot-right{gap:5px}.resource-section{padding:56px 0}.section-head{align-items:start;gap:15px}.section-head h2{font-size:1.75rem}.section-head .text-link{font-size:0.8125rem;white-space:nowrap;margin-top:22px}.resource-grid{gap:9px}.resource-card{padding:14px;min-height:215px}.card-bottom{margin-top:18px}.card-bottom h3{font-size:1.125rem}.card-bottom p{font-size:0.8125rem}.filters{margin-top:27px;padding:18px;align-items:stretch;flex-direction:column;gap:18px}.filter-controls{gap:8px}.filter-controls label{flex:1;min-width:0}.filter-controls select{min-width:0;width:100%;font-size:0.8125rem;padding-left:7px}.results-grid{grid-template-columns:1fr}.result-type{display:none}.updates-section{grid-template-columns:1fr;gap:27px;padding-top:57px;padding-bottom:56px}.updates-heading h2{font-size:2rem}.updates-doodle{right:22px;top:0}.notice{grid-template-columns:49px 1fr auto;gap:9px;padding:13px 0}.notice h3{font-size:0.8125rem}.notice-type{font-size:0.75rem}.community{padding:25px 22px;display:grid;grid-template-columns:42px 1fr;gap:13px;margin-bottom:44px}.community-mark{font-size:2.25rem}.community h2{font-size:1.25rem}.community p{font-size:0.8125rem}.community-button{grid-column:2;margin:3px 0 0;width:max-content}.community-spark{right:17px;top:1px;font-size:4.25rem}.footer-inner{flex-wrap:wrap;gap:13px}.footer-inner>span:last-child{width:100%;padding-left:36px}.footer-inner>span:nth-child(2){font-size:0.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* --- standard webapp sizing: comfortable interactive targets --- */
.main-nav{font-size:0.9375rem;gap:2rem}
.upload-link{font-size:0.875rem}
.search input{font-size:1rem}
.search button{font-size:0.9375rem}
.filter-controls select{font-size:0.875rem;height:2.75rem}
.text-link{font-size:0.875rem}
.mini-button{font-size:0.8125rem}
.filter-intro p,.result-info small{font-size:0.8125rem}
.notice h3{font-size:0.875rem}
.community p{font-size:0.875rem}
.community-button{font-size:0.875rem}
.empty-state{font-size:0.9375rem}
.footer-base{font-size:0.8125rem}
.footer-col a{font-size:0.875rem}

/* Routed student platform */
:focus-visible{outline:3px solid #a8c957;outline-offset:3px;border-radius:4px}.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto}.header-icon{color:#385747;text-decoration:none;position:relative;width:34px;height:34px;display:grid;place-items:center;border-radius:7px}.header-icon:hover{color:#83a62e}.saved-count{position:absolute;top:-5px;right:-7px;font:600 0.75rem var(--font);background:#d9f36b;border-radius:10px;padding:2px 4px}.bottom-nav{display:none}.hero-ctas{display:flex;gap:9px;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid transparent;border-radius:7px;text-decoration:none;font:600 0.8125rem var(--font);cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s}.button:hover,.mini-button:hover{transform:translateY(-1px)}.button-dark{background:#173730;color:#fff}.button-dark:hover{background:#284c40}.button-outline{border-color:#cdd9c9;color:#3f5e4c;background:transparent}.button-outline:hover{background:#eef4e2;border-color:#a9c66c}.button:disabled{opacity:.5;cursor:not-allowed}.hero{min-height:550px}.journey-section{padding:64px 0;background:#eef2e9}.journey-section .section-head{align-items:end}.journey-section .section-head>p{color:#758279;font-size:0.8125rem;max-width:260px;line-height:1.6}.journey-grid{display:grid;grid-template-columns:.85fr .9fr 1.25fr;gap:13px}.journey-step{background:#fff;border:1px solid #e4eae0;border-radius:9px;padding:19px;min-height:132px}.step-label{font-size:0.75rem;letter-spacing:1.2px;font-weight:600;color:#829086}.choice-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.choice-chip{border:1px solid #e2e9df;background:#fbfcf9;border-radius:6px;padding:9px 12px;min-height:36px;color:#506a59;font:600 0.8125rem var(--font);cursor:pointer;min-width:37px;transition:.15s}.choice-chip:hover,.choice-chip.selected{background:#dff0aa;border-color:#b4d267;color:#284434}.home-subjects{display:grid;gap:5px;margin-top:10px}.journey-hint{font-size:0.8125rem;color:#87948c;line-height:1.6}.home-subject-link{display:flex;justify-content:space-between;padding:8px 9px;border-radius:5px;background:#f6f8f2;text-decoration:none;color:#355242;font-size:0.8125rem}.home-subject-link:hover{background:#edf4db}.home-subject-link span{color:#88a43d}.resource-section{padding:65px 0}.home-lower{padding-top:0;padding-bottom:65px}.home-lower .recent-block{margin:0 0 30px}.home-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.home-shortcuts a{padding:17px;border:1px solid #e6ebe3;background:#fff;border-radius:8px;display:grid;grid-template-columns:32px 1fr auto;grid-template-rows:auto auto;text-decoration:none;color:#375746;align-items:center}.home-shortcuts a>span{grid-row:span 2;width:27px;height:27px;border-radius:7px;background:#edf4dc;display:grid;place-items:center;color:#829f37}.home-shortcuts b{font:600 0.8125rem var(--display)}.home-shortcuts small{font-size:0.8125rem;color:#829087;margin-top:3px}.home-shortcuts i{grid-column:3;grid-row:1/3;font-style:normal;color:#91a951}.page-wrap{padding-top:28px;padding-bottom:75px;min-height:70vh}.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:0.8125rem;color:#9aa49c;margin-bottom:32px}.breadcrumbs a{color:#728379;text-decoration:none;padding:4px 0;display:inline-block}.breadcrumbs a:hover{color:#6f912d}.breadcrumbs b{color:#415e4d;font-weight:600}.page-head{margin-bottom:24px;max-width:750px}.page-head h1,.subject-hero h1,.resource-detail-head h1{font:600 clamp(2.375rem,5vw,3.5rem)/1.08 var(--display);letter-spacing:-2.8px;margin:11px 0 12px}.page-head h1 span,.subject-hero h1 span,.resource-detail-head h1 span{color:#83a62e}.page-head p,.subject-hero>p,.resource-detail-head>div>p{font-size:0.875rem;line-height:1.7;color:#75847c;max-width:610px;margin:0}.page-actions{display:flex;gap:9px;margin-top:17px}.sample-note{margin:20px 0;padding:12px 15px;background:#f0f4e6;border-left:3px solid #a5c553;border-radius:0 6px 6px 0;color:#68795d;font-size:0.8125rem;line-height:1.6}.sample-note a{color:#49663a}.browse-panel{background:#fff;border:1px solid #e5ebe2;border-radius:9px;padding:22px;margin:24px 0 40px}.browse-selects{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.field-label{display:block;color:#78877e;font-size:0.75rem;letter-spacing:.8px;font-weight:600}.field-label input,.field-label select,.field-label textarea{display:block;width:100%;height:41px;padding:0 11px;margin-top:7px;border:1px solid #dfe6dc;border-radius:6px;background:#fff;color:#355343;font:0.8125rem var(--font);letter-spacing:0}.field-label textarea{height:auto;padding:11px;resize:vertical}.field-label input:focus,.field-label select:focus,.field-label textarea:focus{outline:2px solid #bfd47a;border-color:transparent}.browse-progress{display:flex;align-items:center;gap:12px;margin-top:20px;color:#9aa69d;font-size:0.8125rem}.browse-progress .done{color:#5e7e39;font-weight:600}.browse-progress i{font-style:normal;color:#c5cec2}.browse-results-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.browse-results-head h2,.section-head.in-page h2{font:600 1.5625rem var(--display);letter-spacing:-.9px;margin:7px 0}.browse-results-head>span{font-size:0.8125rem;color:#8c9990}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.subject-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:140px;padding:15px;border:1px solid #e5ebe2;border-radius:8px;background:#fff;text-decoration:none;color:#294638;transition:transform .18s,border-color .18s,box-shadow .18s}.subject-card:hover{transform:translateY(-2px);border-color:#b5cb7b;box-shadow:0 8px 20px #253c2e0d}.subject-code{font-size:0.8125rem;letter-spacing:.8px;color:#8a9b72;font-weight:600}.subject-card h3{font:600 0.9375rem var(--display);margin:7px 25px 4px 0}.subject-card p{font-size:0.75rem;color:#89958e;margin:0}.subject-card>.card-arrow{position:absolute;right:13px;top:13px}.subject-counts{display:flex;gap:6px;margin-top:15px;flex-wrap:wrap}.subject-counts span{padding:4px 6px;background:#f4f7ef;border-radius:4px;font-size:0.8125rem;color:#6d7f70}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:20px 0 38px}.stat-card{padding:13px;border:1px solid #e4eae2;background:white;border-radius:7px;color:#62736a;text-decoration:none;display:flex;align-items:baseline;gap:8px}.stat-card:hover{border-color:#a9c66c}.stat-card b{font:600 1.375rem var(--display);color:#547435}.stat-card span{font-size:0.8125rem}.subject-hero{padding:25px 0 5px}.subject-hero h1{margin-bottom:8px}.subject-hero-actions{display:flex;gap:8px;margin-top:20px}.section-head.in-page{margin-top:38px}.resource-list{display:grid;gap:8px}.resource-row{display:flex;align-items:center;gap:12px;padding:13px 14px;background:#fff;border:1px solid #e7ece5;border-radius:7px;min-width:0}.resource-row:hover{border-color:#c2d39b}.resource-row[hidden]{display:none}.resource-kind-icon{width:33px;height:33px;flex:none;display:grid;place-items:center;border-radius:7px;background:#eff4e3;color:#718e32;font-size:1rem}.resource-main{min-width:0;flex:1}.resource-meta{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:4px}.resource-meta span{font-size:0.8125rem;letter-spacing:.4px;color:#849389}.resource-meta span:first-child{color:#7d963d;font-weight:600;text-transform:uppercase}.resource-title{color:#304e3d;text-decoration:none;font-size:0.875rem;line-height:1.4;font-weight:600;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.resource-title:hover{color:#72942f}.resource-sub{font-size:0.75rem;color:#929e96;margin-top:4px}.resource-sub span{color:#9fac9d}.resource-actions{display:flex;align-items:center;gap:7px;flex:none}.mini-button,.save-button{min-height:36px;border:1px solid #e0e7dd;border-radius:5px;background:#fff;color:#526e5b;text-decoration:none;font:600 0.75rem var(--font);padding:0 9px;display:flex;align-items:center;gap:6px;cursor:pointer}.mini-button span{color:#89a247}.save-button{color:#66796d}.save-button.is-saved,.save-detail.is-saved{color:#688a2e;border-color:#c5d996;background:#f4f8e9}.save-button:hover{background:#f6f8f1}.resource-row.compact{padding:10px 12px}.results-bar{display:flex;justify-content:space-between;align-items:center;margin:20px 0 10px;color:#718076;font-size:0.8125rem}.results-bar span:last-child{font-size:0.8125rem;letter-spacing:1px;color:#9aa49d}.library-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;padding:17px;background:#fff;border:1px solid #e5ebe2;border-radius:8px}.library-filters .library-search{grid-column:1/-1;display:flex;gap:8px}.library-search input{flex:1;min-width:0;height:41px;border:1px solid #dfe6dc;border-radius:6px;padding:0 11px;font:0.8125rem var(--font)}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:17px 0}.filter-tab{min-height:36px;border:1px solid #e3e9e0;border-radius:18px;padding:0 12px;background:transparent;color:#718178;font:0.8125rem var(--font);cursor:pointer}.filter-tab:hover,.filter-tab.selected{background:#eaf2d7;border-color:#ccdda2;color:#4d683b}.empty-panel{min-height:190px;padding:30px 20px;border:1px dashed #d8e1d4;background:#fbfcf9;border-radius:8px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-icon{color:#89a344;font-size:1.375rem}.empty-panel h3{font:600 1.125rem var(--display);margin:9px 0 3px;color:#385744}.empty-panel p{font-size:0.8125rem;color:#89968d;margin:0 0 15px}.notice-list-page{border-top:1px solid var(--line);margin-top:18px}.notice-list-page .notice{grid-template-columns:55px 1fr 24px;padding:17px 0}.notice-list-page .notice p{font-size:0.8125rem;color:#849087;margin:6px 0 0;line-height:1.5}.notice-list-page .notice h3{font-size:0.8125rem}.notice-list-page .notice-date{font-size:0.75rem}.notice[hidden]{display:none}.official-note,.fine-print,.side-note{font-size:0.75rem;color:#87948c;line-height:1.6}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tool-card{min-height:163px;padding:18px;background:white;border:1px solid #e5ebe2;border-radius:8px;color:#365744;text-decoration:none;transition:transform .18s,border-color .18s}.tool-card:hover{transform:translateY(-3px);border-color:#afc977}.tool-icon{width:34px;height:34px;background:#eef4df;color:#809e37;border-radius:7px;display:grid;place-items:center;flex:none}.tool-card h3{font:600 1rem var(--display);margin:13px 0 5px}.tool-card p{font-size:0.8125rem;color:#849087;line-height:1.5;min-height:27px;margin:0 0 10px}.tool-card>b{font-size:0.75rem;color:#739332}.tool-workspace{max-width:790px}.calculator,.planner-form,.planner-board{padding:23px;background:#fff;border:1px solid #e5ebe2;border-radius:9px}.calc-title h2,.planner-form h2{font:600 1.5rem var(--display);letter-spacing:-1px;margin:7px 0}.calc-title h2 span,.planner-form h2 span{color:#83a62e}.calc-title p{font-size:0.8125rem;color:#86938a}.grade-row{display:grid;grid-template-columns:26px 1fr 100px 110px 32px;align-items:end;gap:9px;margin:12px 0}.grade-index{font-size:0.8125rem;color:#88948c;padding-bottom:14px;text-align:center}.grade-row .field-label input,.grade-row .field-label select{height:36px}.remove-grade{width:32px;height:32px;border:0;background:#f6f7f3;border-radius:5px;color:#87948c;cursor:pointer}.remove-grade:hover{background:#f8e9e2;color:#ad674b}.calculator>.button{margin-top:13px;margin-right:6px}.calc-result{display:block;padding:14px;margin-top:17px;background:#f2f6e8;border-radius:6px;color:#46613e;font:600 0.8125rem var(--font);min-height:45px}.fine-print{margin:12px 0 0}.semester-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:16px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:18px 0}.calculator>.field-label{max-width:320px;margin:16px 0}.calculator .form-grid{max-width:520px}.planner{display:grid;gap:12px}.planner-form .form-grid{margin:17px 0}.planner-board{min-height:100px}.planner-tabs{display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap}.planner-item{display:grid;grid-template-columns:75px 1fr 110px auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf0ea}.planner-item-date{font-size:0.75rem;color:#607566}.planner-item-date span{display:block;color:#96a582;margin-top:4px}.planner-item b{font-size:0.8125rem;color:#385744}.planner-item small{display:block;font-size:0.75rem;color:#8b978f;margin-top:3px}.planner-item select{height:30px;border:1px solid #e0e7dd;border-radius:4px;font:0.8125rem var(--font);color:#607467}.planner-item>button{border:0;background:transparent;color:#849087;font-size:1.125rem;cursor:pointer}.timer-display{font:600 4rem var(--display);letter-spacing:-3px;text-align:center;color:#2b4b39;margin:25px 0}.pomodoro{max-width:580px}.timer-controls,.timer-presets{display:flex;justify-content:center;gap:8px}.timer-presets{margin-top:18px;flex-wrap:wrap}.timer-presets button{border:1px solid #e1e8dc;background:transparent;border-radius:18px;padding:8px 12px;min-height:36px;font:0.8125rem var(--font);color:#627568;cursor:pointer}.share-form{max-width:750px;padding:22px;background:#fff;border:1px solid #e5ebe2;border-radius:9px}.share-form .form-grid{margin-top:0}.share-form .field-label select{display:block}.file-field input{height:auto;padding:10px}.file-field small{display:block;font-size:0.75rem;letter-spacing:0;font-weight:400;line-height:1.5;margin-top:6px}.check-field{display:flex;align-items:flex-start;gap:9px;font-size:0.8125rem;color:#697b70;margin:15px 0}.check-field input{accent-color:#789532}.success-panel{margin-top:15px;padding:14px;background:#edf5dc;border-radius:6px;font-size:0.8125rem;color:#4d683d}.success-panel p{margin:5px 0 0;font-size:0.8125rem}.resource-detail-head{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:10px 0}.resource-detail-head h1{font-size:2.625rem;letter-spacing:-2px}.resource-detail-head .button{flex:none;margin-top:8px}.resource-meta-large{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.resource-meta-large span{padding:5px 8px;background:#f0f4e7;border-radius:4px;font-size:0.75rem;color:#697b5a}.preview-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:15px;margin-top:18px}.preview-panel,.side-card{border:1px solid #e4eae2;background:#fff;border-radius:8px;overflow:hidden}.preview-toolbar{height:42px;padding:0 14px;border-bottom:1px solid #edf0ea;display:flex;align-items:center;justify-content:space-between;font-size:0.75rem;color:#78877e}.preview-toolbar>span:last-child{color:#9ba49d}.file-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#adca64;margin-right:6px}.preview-content{padding:28px 32px;min-height:360px;background:linear-gradient(#fff 32px,transparent 33px),linear-gradient(90deg,#fff 32px,transparent 33px);background-size:100% 33px,33px 100%;background-color:#fbfcf9}.preview-symbol{font-size:1.5rem;color:#8aa342}.preview-content h2{font:600 1.375rem var(--display);margin:16px 0 5px}.preview-content h3{font:600 0.875rem var(--display);color:#728277}.preview-content p{white-space:pre-line;font-size:0.8125rem;line-height:1.8;color:#7b8980;max-width:490px}.preview-lines{height:70px;background:repeating-linear-gradient(to bottom,transparent 0 17px,#e9ede6 18px 19px);max-width:460px;margin-top:20px}.preview-callout{margin-top:20px;padding:10px;background:#f7f1df;border-radius:4px;color:#82734e;font-size:0.75rem}.resource-side{display:grid;align-content:start;gap:11px}.side-card{padding:16px}.side-card dl{margin:13px 0}.side-card dt{font-size:0.8125rem;color:#919d94;margin-top:10px}.side-card dd{font-size:0.8125rem;color:#425f4d;margin:3px 0 0}.side-card>b{font:600 0.8125rem var(--display)}.side-card p{font-size:0.8125rem;line-height:1.5;color:#849087}.full{width:100%}.side-note{display:block;margin-top:8px}.search.large-search{margin:25px 0;max-width:680px}.search-results{max-width:850px}.search-group{margin-top:24px}.search-group>.eyebrow{margin-bottom:11px}.search-suggestion-pills{display:flex;gap:8px;flex-wrap:wrap}.search-suggestion-pills button{border:1px solid #dfe7db;background:#fff;border-radius:20px;padding:9px 13px;min-height:38px;color:#58705c;font:0.8125rem var(--font);cursor:pointer}.about-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}.about-grid article{padding:26px;background:#fff;border:1px solid #e6ebe4;border-radius:8px}.about-grid h2{font:600 1.125rem var(--display);letter-spacing:-.5px;margin:9px 0}.about-grid h2 span{color:#83a62e}.about-grid p{font-size:0.8125rem;line-height:1.7;color:#7a8880;max-width:440px}
.about-closing{margin-top:44px;padding:46px 32px 48px;text-align:center;border-top:1px solid var(--line)}
.about-closing-kicker{font-size:0.875rem;color:#8b978f;margin:0 0 13px}
.about-closing h2{font:600 clamp(1.375rem,3.2vw,2.125rem) var(--display);letter-spacing:-.022em;line-height:1.25;margin:0 0 28px;color:var(--ink);text-wrap:balance}
.about-closing-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.text-link{cursor:pointer}.text-button{border:0;background:transparent;text-decoration:underline;text-decoration-color:#c6d79c;color:#617d44;font:600 0.8125rem var(--font);cursor:pointer}.toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;background:#173730;color:#fff;padding:11px 16px;border-radius:7px;font-size:0.8125rem;box-shadow:0 7px 24px #17373030}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.main-nav{gap:13px}.main-nav a{font-size:0.8125rem}.header-actions{gap:9px}.upload-link{padding:8px 10px}.journey-grid{grid-template-columns:1fr 1fr}.subject-step{grid-column:1/-1;grid-row:auto}.home-subjects{grid-template-columns:repeat(2,1fr)}.subject-grid{grid-template-columns:repeat(2,1fr)}.library-filters{grid-template-columns:repeat(2,1fr)}.preview-layout{grid-template-columns:1fr .75fr}}
@media(max-width:640px){body{padding-bottom:60px}.site-header{height:62px;padding-inline:18px;gap:10px}.site-header>.main-nav{display:none;position:absolute;left:0;right:0;top:95px;background:#fff;padding:10px 20px;z-index:10;box-shadow:0 10px 15px #263a2914}.site-header>.main-nav.open{display:flex;flex-direction:column;gap:0}.main-nav a{padding:13px 4px;font-size:0.875rem}.header-actions{display:none}.brand-logo{height:26px}.menu-toggle{display:block}.bottom-nav{position:fixed;z-index:15;bottom:0;left:0;right:0;height:58px;background:#fff;border-top:1px solid #e4eae2;display:flex;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{flex:1;text-decoration:none;color:#819087;font-size:0.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.bottom-nav a .icon{color:#59734e;flex:none}.bottom-nav a:hover{color:#496c32}.hero{min-height:0;padding-top:25px;padding-bottom:47px}.hero h1{font-size:3.25rem;letter-spacing:-3px}.hero-intro{font-size:0.875rem}.search{height:51px;padding-left:10px}.search button{padding:0 10px}.hero .search{height:auto;max-width:532px;padding:0;background:none;border:0;box-shadow:none;display:block}.hero .search .search-icon,.hero .search input{display:none}.hero .search button{width:100%;height:50px;padding:0 18px;font-size:0.875rem}.hero-art{max-height:352px;align-self:auto;margin:0}.hero-foot{font-size:0.75rem;bottom:8px}.hero-foot-right{font-size:0}.hero-foot-right .avatar-stack{font-size:0.75rem}.hero-ctas .button{font-size:0.8125rem;padding:0 10px;min-height:40px}.journey-section{padding:42px 0}.journey-section .section-head{display:block}.journey-section .section-head>p{margin:8px 0 0}.journey-grid{grid-template-columns:1fr;gap:8px}.journey-step{min-height:0;padding:15px}.subject-step{grid-column:auto}.home-subjects{grid-template-columns:1fr 1fr}.resource-section{padding:44px 0}.section-head{align-items:center}.section-head h2{font-size:1.5rem}.section-head>.text-link{font-size:0.75rem}.resource-grid{grid-template-columns:repeat(2,1fr);gap:8px}.resource-card{min-height:185px;padding:12px}.card-bottom{margin-top:14px}.card-bottom p{font-size:0.75rem}.card-bottom h3{font-size:1rem}.home-shortcuts{grid-template-columns:1fr}.home-lower{padding-bottom:42px}.page-wrap{padding-top:19px;padding-bottom:45px}.breadcrumbs{margin-bottom:23px;font-size:0.75rem}.page-head h1,.subject-hero h1{font-size:2.5rem;letter-spacing:-2px}.page-head p{font-size:0.8125rem}.browse-selects{grid-template-columns:1fr;gap:10px}.browse-panel{padding:15px;margin:19px 0 30px}.browse-progress{gap:7px;font-size:0.75rem}.browse-results-head h2,.section-head.in-page h2{font-size:1.375rem}.subject-grid{grid-template-columns:1fr}.subject-card{min-height:125px}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat-card:last-child{grid-column:1/-1}.resource-row{gap:8px;padding:10px}.resource-actions{gap:4px}.mini-button{padding:0 9px;min-height:36px}.save-button{padding:0;min-width:36px;min-height:36px;justify-content:center}.save-button span{display:none}.resource-sub{font-size:0.8125rem;line-height:1.4}.resource-title{font-size:0.8125rem}.resource-kind-icon{width:29px;height:29px}.library-filters{grid-template-columns:1fr 1fr;gap:8px;padding:12px}.library-filters .library-search{grid-column:1/-1}.library-filters .button{min-width:106px;padding:0 8px}.filter-tabs{gap:5px}.filter-tab{padding:0 9px;font-size:0.75rem}.results-bar{font-size:0.75rem}.tool-grid{grid-template-columns:1fr 1fr;gap:8px}.tool-card{padding:13px;min-height:154px}.tool-card h3{font-size:0.875rem}.tool-card p{font-size:0.75rem}.calculator,.planner-form,.planner-board{padding:16px}.grade-row{grid-template-columns:20px minmax(100px,1fr) 63px 74px 32px;gap:5px}.grade-row .field-label{font-size:0.8125rem}.grade-row .field-label input,.grade-row .field-label select{padding:0 6px}.grade-index{font-size:0.75rem}.semester-score-grid{grid-template-columns:repeat(2,1fr)}.form-grid{gap:10px}.field-label input,.field-label select,.field-label textarea,.library-search input,.search input,.planner-item select{font-size:1.125rem}.grade-row .field-label input,.grade-row .field-label select{font-size:1rem}.planner-item{grid-template-columns:55px 1fr 92px auto;gap:6px}.planner-item b{font-size:0.8125rem}.timer-display{font-size:3.625rem}.share-form{padding:15px}.resource-detail-head{display:block}.resource-detail-head h1{font-size:2.25rem}.resource-detail-head .button{margin:15px 0 0}.preview-layout{grid-template-columns:1fr}.preview-content{padding:22px 19px;min-height:260px}.side-card{padding:14px}.about-grid{grid-template-columns:1fr;gap:12px}.about-grid article{padding:20px}.footer{padding:15px 0}.footer-inner{gap:9px}.footer-inner>span:last-child{font-size:0.75rem}.footer-inner>span:nth-child(2){font-size:0.75rem}.toast{bottom:72px;white-space:nowrap}.search.large-search{margin:20px 0}.official-note{line-height:1.7}}
.syllabus-select{display:grid;grid-template-columns:.8fr 1.2fr;align-items:end;gap:15px;padding:19px;background:white;border:1px solid #e5ebe2;border-radius:8px;margin:20px 0 13px}.syllabus-course{padding:0 0 4px 12px;border-left:1px solid #e4eae2}.syllabus-course h2{font:600 1.125rem var(--display);margin:7px 0 0}.syllabus-modules{border-top:1px solid #e5ebe2;margin:18px 0}.module-accordion{border-bottom:1px solid #e5ebe2;background:#fff}.module-accordion summary{display:grid;grid-template-columns:85px 1fr 20px;gap:12px;align-items:center;padding:15px;cursor:pointer;list-style:none}
.module-accordion summary>b{line-height:1.45}
.module-accordion summary>i{line-height:1}.module-accordion summary::-webkit-details-marker{display:none}.module-accordion summary>span{font-size:0.75rem;letter-spacing:1px;color:#8a9d6b;font-weight:600}.module-accordion summary>b{font:600 0.8125rem var(--display);color:#405d4b}.module-accordion summary>i{font-style:normal;color:#7c963d;transition:transform .15s}.module-accordion[open] summary>i{transform:rotate(45deg)}.module-body{padding:0 15px 14px 112px;color:#75837a;font-size:0.8125rem;line-height:1.7}.module-body ul{padding-left:15px}.module-body p{margin-top:0}
@media(max-width:640px){.syllabus-select{grid-template-columns:1fr;gap:14px;padding:14px}.syllabus-course{border-left:0;border-top:1px solid #e4eae2;padding:12px 0 0}.module-accordion summary{grid-template-columns:63px 1fr 15px;padding:13px 9px;gap:8px}.module-accordion summary>b{font-size:0.8125rem}.module-body{padding-left:80px}}

/* Routed student platform: components that had no rules and rendered unstyled */
.search{position:relative}
.suggestions{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:12;max-height:290px;overflow-y:auto;overscroll-behavior:contain;padding:5px;background:#fff;border:1px solid #e2e9df;border-radius:9px;box-shadow:0 16px 34px #2944391f;text-align:left}
.suggestions p{margin:0;padding:11px 12px;font-size:0.8125rem;line-height:1.5;color:#8a978f}
.suggestions a{display:block;padding:9px 11px;border-radius:6px;color:#2f4d3c;font-size:0.8125rem;line-height:1.4;text-decoration:none}
.suggestions a:hover,.suggestions a:focus-visible{background:#f2f7e6}
.suggestions a span{display:block;margin-bottom:2px;font-size:0.75rem;letter-spacing:1px;font-weight:600;text-transform:uppercase;color:#8a9b72}

.skeleton-stack{display:grid;gap:9px}
.skeleton-stack i{height:76px;border-radius:7px;background:linear-gradient(90deg,#eef1ea 25%,#f7f9f4 42%,#eef1ea 60%);background-size:280% 100%;animation:skeleton-sweep 1.25s linear infinite}
@keyframes skeleton-sweep{from{background-position:120% 0}to{background-position:-20% 0}}

.timer-ring{position:relative;width:186px;height:186px;margin:26px auto 0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#a5c553 var(--progress,0%),#e7ecdf var(--progress,0%))}
.timer-ring:before{content:'';position:absolute;inset:13px;border-radius:50%;background:#fff}
.timer-ring .timer-display{position:relative;margin:0;font-size:2.75rem;letter-spacing:-2px}

.sample-tag,.resource-meta .sample-tag,.resource-meta-large .unverified-tag{display:inline-block;padding:3px 7px;border-radius:4px;background:#f6f0dd;color:#8a7742;font-size:0.75rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap}

.home-discovery{margin-top:64px;padding:56px 0;background:#fff;border-top:1px solid var(--line)}
.home-alerts{margin-top:44px;padding-top:34px;border-top:1px solid var(--line)}
.home-tools{margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.tool-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.tool-shortcut{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 15px;border:1px solid #dfe7db;background:#fbfcf9;border-radius:20px;color:#4d6b52;font:600 0.8125rem var(--font);text-decoration:none;transition:background .18s,border-color .18s,transform .18s}
.tool-shortcut span{color:#8aa63c;font-size:0.9375rem}
.tool-shortcut:hover{background:#f2f7e6;border-color:#b6cf7c;transform:translateY(-1px)}

.recent-searches{margin-top:26px;padding:18px;background:#fff;border:1px solid #e5ebe2;border-radius:8px}
.recent-search-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.recent-search-head b{font:600 0.875rem var(--display);color:#355243}
.recent-searches>p{margin:0;font-size:0.8125rem;line-height:1.6;color:#8a978f}
.recent-search-chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;margin:0 7px 7px 0;padding:0 13px;border:1px solid #dfe7db;background:#fbfcf9;border-radius:20px;color:#4d6b52;font:600 0.8125rem var(--font);cursor:pointer}
.recent-search-chip span{color:#8aa63c}
.recent-search-chip:hover{background:#f2f7e6;border-color:#b6cf7c}

.share-review{margin-top:22px;padding:22px;background:#fff;border:1px solid #e5ebe2;border-radius:9px}
.share-review h2{margin:8px 0 0;font:600 1.5rem var(--display);letter-spacing:-.8px}
.share-review h2 span{color:#83a62e}
.review-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:18px 0 0}
.review-fields>div{min-width:0}
.review-fields dt{margin-bottom:4px;font-size:0.8125rem;letter-spacing:.7px;font-weight:600;text-transform:uppercase;color:#7b8d63}
.review-fields dd{margin:0;font-size:0.875rem;line-height:1.5;color:#355343;overflow-wrap:anywhere}

.alert-detail-card{padding:24px;background:#fff;border:1px solid #e5ebe2;border-radius:9px}
.alert-detail-card p{margin:10px 0 0;font-size:0.875rem;line-height:1.75;color:#6d7c73}
.alert-detail-card .button{margin-top:18px}

#countdown-result>b{display:block;font:600 0.9375rem var(--display);color:#2f4d3c}
.countdown-units{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.countdown-units i{display:grid;gap:3px;font-style:normal;font-size:0.75rem;letter-spacing:.6px;text-transform:uppercase;color:#7c8d74}
.countdown-units strong{font:600 1.75rem var(--display);letter-spacing:-1px;color:#2f4d3c}

.planner-form-actions{display:flex;flex-wrap:wrap;gap:9px}
.planner-actions{display:flex;align-items:center;justify-content:flex-end;gap:3px}
.planner-actions button{min-width:30px;height:30px;padding:0 7px;border:1px solid #e0e7dd;border-radius:5px;background:#fff;color:#61776a;font:600 0.8125rem var(--font);cursor:pointer}
.planner-actions button:hover{background:#f6f8f1;border-color:#c2d39b}
.planner-item-date .priority-high{color:#b3603f}
.planner-item-date .priority-medium{color:#8a7a3f}
.planner-item-date .priority-low{color:#6f8579}

.field-label input,.field-label select,.field-label textarea,.library-search input,.search input,.planner-item select{min-width:0}
.notice-list-page .notice{grid-template-columns:55px 1fr 40px}

@media(max-width:640px){
.suggestions{font-size:0.8125rem}
.review-fields{grid-template-columns:1fr;gap:12px}
.timer-ring{width:158px;height:158px;margin-top:20px}
.timer-ring:before{inset:11px}
.timer-ring .timer-display{font-size:2.375rem}
.countdown-units{gap:6px}
.countdown-units strong{font-size:1.5rem}
.grade-row{grid-template-columns:16px minmax(0,1fr) 56px 62px 32px;gap:4px}
.home-discovery{margin-top:44px;padding:38px 0}
.home-alerts{margin-top:32px;padding-top:26px}
.tool-shortcut{width:100%}
}

@media(prefers-reduced-motion:reduce){
.skeleton-stack i{animation:none}
}

/* grid and flex children must be allowed to shrink below their content width */
.form-grid>*,.browse-selects>*,.library-filters>*,.semester-score-grid>*,.grade-row>*,.subject-grid>*{min-width:0}
.check-field input{width:18px;height:18px;flex:none;margin:1px 0 0}
.search input{align-self:stretch}
.text-link{display:inline-block;padding:4px 0}
.breadcrumbs a{padding:6px 0}

@media(max-width:400px){
.form-grid,.library-filters{grid-template-columns:1fr}
}
@media(max-width:640px){
.search button{font-size:0.875rem}
}

/* tap-target polish: enlarge hit areas without changing layout */
.main-nav{gap:12px}
.main-nav a{padding-left:9px;padding-right:9px}
.main-nav.open{gap:0}
.resource-title{padding:6px 0;margin:-6px 0}
.text-link{display:inline-block;padding:6px 0}
.check-field{padding:7px 0;align-items:center;cursor:pointer}
.check-field input{width:20px;height:20px;margin:0}

/* the desktop nav needs ~365px; below that it wraps and spills out of the header,
   so collapse it into the menu button earlier (641-840px) */
.main-nav a{white-space:nowrap}
@media(min-width:641px) and (max-width:840px){
.site-header{gap:20px}
.menu-toggle{display:block}
.main-nav{display:none;position:absolute;left:0;right:0;top:112px;background:#fff;padding:10px 20px;z-index:10;box-shadow:0 10px 15px #263a2914}
.main-nav.open{display:flex;flex-direction:column;gap:0}
.main-nav a{padding:13px 4px;font-size:0.875rem}
.main-nav .active:after{bottom:7px;width:22px;left:4px}
}

/* ---- icons ---- */
.icon{display:inline-block;vertical-align:middle;flex:none}
.icon-fill{fill:currentColor;stroke:currentColor}

/* ---- alignment corrections ---- */
.resource-row,.subject-card,.card-top,.card-bottom{position:relative}
.subject-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.subject-card-top .subject-code{line-height:1.5}
.subject-card>.card-arrow{position:static}
.resource-kind-icon{line-height:0}
.resource-actions{align-self:center}
.search button{display:inline-flex;align-items:center;justify-content:center}
.card-count{display:inline-flex;align-items:center;gap:0}
.mini-button,.save-button{justify-content:center;white-space:nowrap}
.tool-card b{display:inline-flex;align-items:center;gap:6px}
.shortcut-icon{width:34px;height:34px;border-radius:7px;background:#f1f5e6;color:#6f8c31;display:grid;place-items:center;flex:none;margin-bottom:10px}
.home-shortcuts a>i{margin-left:auto;display:grid;place-items:center;color:#8aa04e}
.main-nav{align-items:center;gap:32px}
.main-nav a{padding:0;line-height:76px}
.main-nav .active:after{bottom:22px;left:0;right:0;width:auto}

/* ---- footer ---- */
.footer{background:#173730;color:#cfddd4;padding:56px 0 0;margin-top:0;border-top:0}
.footer .wrap{width:min(1160px,calc(100% - 64px))}
.footer-inner{display:grid;grid-template-columns:1.7fr repeat(4,1fr);gap:40px;padding-bottom:44px;align-items:start;flex-wrap:normal;justify-content:normal}
.footer-brand-col p{font-size:0.875rem;line-height:1.75;color:#9db3a8;max-width:290px;margin:16px 0 0}
.footer-col{display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.footer-col h2{font:600 0.8125rem var(--font);letter-spacing:1.5px;text-transform:uppercase;color:#8fa79b;margin:0 0 3px}
.footer-col a{font-size:0.875rem;color:#cfddd4;text-decoration:none;line-height:1.5;transition:color .15s}
.footer-col a:hover{color:var(--green)}
.footer-base{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #ffffff1a;padding:20px 0 24px;font-size:0.8125rem;color:#8fa79b}
.footer-base a{color:var(--green);text-decoration:none}
.footer-base a:hover{text-decoration:underline}
.footer-base .heart{color:#e88b7a}
.footer .icon{color:#8fa79b}

@media (max-width:1000px){
  .footer-inner{grid-template-columns:1fr 1fr 1fr;gap:32px}
  .footer-brand-col{grid-column:1/-1}
}
@media (max-width:620px){
  .footer{padding-top:40px}
  .footer .wrap{width:calc(100% - 36px)}
  .footer-inner{grid-template-columns:1fr;gap:30px;padding-bottom:30px}
  .footer-base{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:78px}
  .main-nav a{line-height:44px}
  .main-nav .active:after{bottom:6px}
}

/* --- stats band --- */
.stats-band{background:#173730;padding:52px 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.stat-item{display:grid;gap:5px;justify-items:center}
.stat-item b{font:600 2.5rem/1 var(--display);color:#d9f36b;letter-spacing:-1.5px}
.stat-item span{font-size:0.875rem;font-weight:600;color:#eef4ea}
.stat-item small{font-size:0.75rem;color:#a8bdb0}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:30px 20px}}
@media(max-width:640px){.stats-band{padding:40px 0}.stat-item b{font-size:2rem}.stats-grid{gap:26px 14px}}

/* --- faq --- */
.faq-section{padding:78px 0 84px}
.faq-wrap{display:grid;grid-template-columns:.86fr 1.14fr;gap:64px;align-items:start}
.faq-intro{position:sticky;top:96px}
.faq-intro h2{font:600 2rem/1.18 var(--display);letter-spacing:-1px;margin:10px 0 14px}
.faq-intro h2 span{color:#83a62e}
.faq-intro p{font-size:0.9375rem;line-height:1.7;color:#6b7c74;margin:0 0 20px;max-width:32ch}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:21px 0;font-size:1.0625rem;font-weight:600;color:var(--ink);gap:20px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:#5b7a3c}
.faq-item summary i{margin-left:auto;font-style:normal;font-size:1.375rem;font-weight:400;color:#83a62e;flex:none;line-height:1;transition:transform .2s}
.faq-item[open] summary i{transform:rotate(45deg)}
.faq-body{padding:0 44px 22px 0}
.faq-body p{margin:0;font-size:0.9375rem;line-height:1.72;color:#63756a;max-width:62ch}
@media(max-width:900px){.faq-section{padding:60px 0 64px}.faq-wrap{grid-template-columns:1fr;gap:30px}.faq-intro{position:static}.faq-intro p{max-width:52ch}}
@media(max-width:640px){.faq-item summary{font-size:1rem;padding:18px 0;gap:12px}.faq-body{padding-right:0;font-size:0.875rem}}

/* --- legal pages --- */
.legal-updated{font-size:0.75rem;color:#7b8881;margin:-6px 0 26px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.legal-body{max-width:70ch}
.legal-body h2{font:600 1.25rem var(--display);letter-spacing:-.4px;margin:34px 0 10px}
.legal-body h2:first-child{margin-top:0}
.legal-body p{font-size:1rem;line-height:1.75;color:#5c6f66;margin:0 0 14px}
.legal-body ul{margin:0 0 18px;padding-left:0;list-style:none}
.legal-body li{position:relative;padding-left:22px;font-size:1rem;line-height:1.72;color:#5c6f66;margin-bottom:9px}
.legal-body li:before{content:'';position:absolute;left:0;top:11px;width:6px;height:6px;border-radius:50%;background:#b6d36a}
.legal-body li b{color:var(--ink)}
.legal-body a{color:#4a6b39}
.legal-body h3{font:600 0.9375rem var(--display);letter-spacing:-.2px;margin:22px 0 8px;color:#3c5a48}
.legal-body .legal-contact{font-style:normal;display:grid;gap:3px;margin:0 0 16px;padding:14px 16px;background:#f4f7ee;border-left:3px solid #a5c553;border-radius:0 6px 6px 0;font-size:0.9375rem;line-height:1.6;color:#4c6155}
.legal-body .legal-note{font-size:0.875rem;color:#7c8a81;margin:26px 0 0;padding-top:16px;border-top:1px solid var(--line)}

/* --- contact page --- */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;margin-top:8px}
.contact-panel h2,.contact-aside h2{font:600 1.25rem var(--display);letter-spacing:-.4px;margin:0 0 8px}
.contact-panel>p,.contact-aside p{font-size:0.9375rem;line-height:1.7;color:#63756a;margin:0 0 22px;max-width:56ch}
.contact-form{display:grid;gap:15px}
.contact-aside ul{margin:0 0 22px;padding-left:0;list-style:none}
.contact-aside li{position:relative;padding-left:20px;font-size:0.875rem;line-height:1.68;color:#63756a;margin-bottom:10px}
.contact-aside li:before{content:'';position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:#b6d36a}
.contact-receipt{margin-top:22px;padding:18px 20px;background:#e8f0d8;border-radius:9px;border:1px solid #d3e2b4;font-size:0.9375rem;line-height:1.65;color:#3f5738}
.contact-receipt b{display:block;font-size:1rem;margin-bottom:3px}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:38px}}

/* --- semibold is the maximum weight: cap UA defaults too --- */
b,strong,h1,h2,h3,h4,h5,h6,th{font-weight:600}
/* keep the decorative watermarks visible at the lighter weight */
.card-decoration{color:#ffffffad}
.decor-paper{color:#ffffffb3}

/* --- dedicated faq page: full-width list, generous measure --- */
.faq-wrap-page{display:block;max-width:820px;margin-top:6px}
.faq-wrap-page .faq-item summary{font-size:1.125rem;padding:24px 0}
.faq-wrap-page .faq-body{padding:0 56px 26px 0}
.faq-wrap-page .faq-body p{font-size:1rem;line-height:1.78}
.faq-page-foot{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line)}
.faq-page-foot p{margin:0;font-size:0.9375rem;color:#63756a}
.faq-page-foot .text-link{white-space:nowrap}
/* offset anchor targets so a jump does not hide the heading under the header */
:target{scroll-margin-top:104px}
@media(max-width:640px){.faq-wrap-page .faq-item summary{font-size:1rem;padding:18px 0}.faq-wrap-page .faq-body{padding-right:0}.faq-page-foot{gap:16px}}


@media(max-width:380px){.hero h1{font-size:2.5rem;letter-spacing:-2px}.hero-intro{font-size:0.9375rem}}

/* --- FAQ: scroll offset + micro-interactions --- */
.faq-section{scroll-margin-top:104px}
.faq-item summary{transition:color .18s ease}
.faq-item summary:hover{color:#5b7a3c}
.faq-item summary:focus-visible{outline:2px solid #9dbb49;outline-offset:4px;border-radius:5px}
.faq-item summary i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef3e2;transition:transform .3s cubic-bezier(.34,1.36,.64,1),background-color .18s ease}
.faq-item summary:hover i{background:#e0ecc4}
.faq-item[open] summary i{background:#dcecb9}
html{interpolate-size:allow-keywords}
.faq-item::details-content{block-size:0;overflow:hidden;transition:block-size .3s cubic-bezier(.22,.61,.36,1),content-visibility .3s allow-discrete}
.faq-item[open]::details-content{block-size:auto}
@keyframes faq-flash{0%{background-color:rgba(217,243,107,0)}22%{background-color:rgba(217,243,107,.3)}100%{background-color:rgba(217,243,107,0)}}
.faq-wrap.faq-flash{animation:faq-flash 1.15s ease-out;border-radius:12px}
@media(prefers-reduced-motion:reduce){.faq-wrap{animation:none!important}.faq-item summary i{transition:none}.faq-item::details-content{transition:none}}

/* --- mobile touch targets: keep tappable areas >=36px on touch screens --- */
@media(pointer:coarse),(max-width:640px){
  .footer-col a{position:relative;display:inline-block}
  .footer-col a::after{content:'';position:absolute;left:-5px;right:-5px;top:-5px;bottom:-5px}
  .brand{min-height:40px}
  .menu-toggle{min-width:44px;min-height:44px}
  .breadcrumbs a{display:inline-flex;align-items:center;min-height:36px}
  .check-field input[type=checkbox]{width:24px;height:24px}
  .filter-tab{min-height:44px;display:inline-flex;align-items:center}
  .choice-chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .field-label input,.field-label select,.library-search input{min-height:44px}
  .field-label textarea{min-height:44px}
  .search-suggestion-pills button{min-height:44px}
  .legal-body .legal-contact a{display:inline-block;padding:3px 0}
  .text-link{border-bottom:0;text-decoration:underline;text-decoration-color:#bfd08d;text-underline-offset:3px;padding-top:10px;padding-bottom:10px;min-height:40px}
}



/* Keyboard entry point for assistive technology and keyboard users */
.skip-link{position:fixed;top:0;left:0;z-index:60;transform:translateY(-120%);padding:12px 18px;background:#173730;color:#fff;font:600 0.875rem var(--font);text-decoration:none;border-radius:0 0 8px 0}
.skip-link:focus{transform:translateY(0)}
