:root{color:#243a33;font-synthesis:none;text-rendering:optimizelegibility;--green:#194c3e;--green-dark:#103b30;--muted:#5d6d64;--line:#dce2d9;--paper:#fff;--soft:#eef2e9;--ink:#243a33;--radius:12px;background:#f5f6f2;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;display:inline-flex}button:disabled,a[aria-disabled=true]{opacity:.6;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #986b19}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.2px;margin-bottom:12px;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:650;line-height:1.22}h2{letter-spacing:-.3px;margin-bottom:16px;font-size:1.22rem;line-height:1.4}h3{margin-bottom:8px;font-size:1rem;line-height:1.5}p{margin-bottom:16px;line-height:1.7}small,.muted{color:var(--muted);line-height:1.6}small{font-size:.78rem}svg{flex-shrink:0}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #829088;border-radius:7px;min-height:44px;padding:11px 12px;display:block}textarea{resize:vertical;line-height:1.7}input[type=checkbox],input[type=radio]{width:19px;height:19px;accent-color:var(--green);cursor:pointer;flex-shrink:0}progress{appearance:none;background:#dde4d8;border:none;border-radius:2px;width:100%;height:7px;overflow:hidden}progress::-webkit-progress-bar{background:#dde4d8}progress::-webkit-progress-value{background:#47735d}progress::-moz-progress-bar{background:#47735d}.primary,.secondary,.light-button,.danger{border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 16px;font-size:.86rem;font-weight:600;display:inline-flex}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.secondary{background:#fff;border:1px solid #829088}.secondary:hover{background:var(--soft)}.light-button{color:#194c3e;background:#faf9ef}.danger{color:#8e3429;border:1px solid #ad5547}.text-button{min-height:40px;color:var(--green);padding:8px 0;font-size:.82rem;font-weight:600}.text-button:hover{text-decoration:underline}.icon-button{border-radius:6px;min-width:38px;min-height:40px}.icon-button:hover{background:var(--soft)}.eyebrow{letter-spacing:1.4px;color:var(--muted);text-transform:uppercase;margin-bottom:10px;font-size:.66rem;font-weight:700;line-height:1.7}.small-label{letter-spacing:1px;font-size:.6rem}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fcfcf9;flex-direction:column;flex-shrink:0;width:248px;height:100vh;padding:30px 18px 18px;display:flex;position:fixed;top:0;left:0}.brand{letter-spacing:.1px;align-items:center;gap:11px;font-size:.88rem;font-weight:500;line-height:1.25;display:flex}.brand strong{font-weight:700;display:block}.brand-symbol{background:var(--green);color:#fff;border-radius:9px;place-items:center;width:42px;height:44px;display:grid}.sidebar .brand{margin-bottom:44px;padding:0 10px}.sidebar-label{letter-spacing:1.3px;color:#6a786f;margin:0 13px 13px;font-size:.61rem;font-weight:650}.sidebar nav{flex-direction:column;gap:5px;margin-bottom:25px;display:flex}.sidebar nav a{color:#58675e;border-radius:7px;align-items:center;gap:12px;min-height:45px;padding:12px 14px;font-size:.86rem;display:flex;position:relative}.sidebar nav a.active{color:#194c3e;background:#e9efe4;font-weight:650}.sidebar nav a:hover{background:#eef2e9}.active-dot{background:#194c3e;border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-note{background:#f0f2e9;border-radius:8px;margin-top:auto;padding:18px 14px}.sidebar-note p{margin:8px 0 0;font-size:.79rem;line-height:1.6}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:20px;padding:20px 0 0;display:flex}.profile>div{flex:1;min-width:0}.profile strong{white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;display:block;overflow:hidden}.profile small{font-size:.66rem;display:block}.avatar{background:#e2e8da;border-radius:50%;place-items:center;width:34px;height:34px;font-family:Georgia,serif;display:grid}.main-column{width:calc(100% - 248px);margin-left:248px}.topbar{border-bottom:1px solid var(--line);background:#fcfcf9;justify-content:space-between;align-items:center;height:76px;padding:0 42px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:12px;font-size:.75rem;display:flex}.breadcrumb span{color:#243a33}.semester-label{color:#516357;align-items:center;gap:8px;font-size:.72rem;display:flex}.main-column>main{max-width:1400px;min-height:calc(100vh - 140px);margin:auto;padding:37px 42px 60px}.page-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.page-head p{color:var(--muted);margin-bottom:0;font-size:.88rem}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:22px;padding:25px}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-head h2,.section-head .eyebrow{margin-bottom:0}.dashboard-grid{grid-template-columns:1.55fr 1fr;gap:24px;margin-bottom:25px;display:grid}.dashboard-grid .panel{margin:0}.focus-panel{border-radius:var(--radius);background:var(--green);color:#faf9ef;padding:28px 30px}.focus-panel .eyebrow{color:#d4e0cd;font-size:.64rem}.focus-top{justify-content:space-between;gap:15px;display:flex}.focus-top h2{white-space:pre-line;letter-spacing:-.4px;margin:5px 0 16px;font-family:Georgia,Times New Roman,serif;font-size:1.9rem;font-weight:400;line-height:1.35}.focus-top>svg{color:#bdcdb8;margin-top:20px}.focus-panel p{color:#e5eadc;margin-bottom:16px;font-size:.8rem}.focus-meta{color:#d5e1ce;flex-wrap:wrap;gap:20px;margin-bottom:22px;font-size:.69rem;display:flex}.focus-meta span{align-items:center;gap:6px;display:flex}.next-class{flex-direction:column;justify-content:space-between;display:flex}.next-class .section-head{margin:0}.next-class p{color:var(--muted);margin-bottom:0;font-size:.79rem}.date-display{align-items:center;gap:18px;margin:20px 0;display:flex}.date-display strong{font-family:Georgia,serif;font-size:4rem;font-weight:400;line-height:1}.date-display span{font-size:.78rem;line-height:1.8}.rule{background:var(--line);height:1px;margin:18px 0}.secondary-grid{grid-template-columns:1.55fr 1fr}.task-row{border-bottom:1px solid #e7ebe4;align-items:center;gap:12px;padding:17px 0;display:flex}.task-row:last-child{border-bottom:none}.task-row>div{flex:1;min-width:0}.task-row strong{overflow-wrap:anywhere;font-size:.83rem;font-weight:600;display:block}.task-row small{margin-top:3px;font-size:.7rem;display:block}.due{color:#556046;white-space:nowrap;background:#f1f2e9;border-radius:4px;padding:6px 8px;font-size:.65rem}.due.late{color:#8c382d;background:#faede7}.progress-panel h2{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.progress-value{letter-spacing:-1.5px;margin:12px 0;font-size:2.4rem}.progress-value span{letter-spacing:0;color:var(--muted);margin-left:7px;font-size:.72rem}.progress-panel p{margin:10px 0 4px;font-size:.76rem}.progress-panel small{font-size:.7rem}.progress-panel .text-button{margin-top:12px;display:flex}.course-preview{margin-top:32px}.course-strip{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.course-strip>button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:22px;display:block}.course-strip>button:hover,.course-card:hover{border-color:#6a8270}.course-number{color:#556c53;font-family:Georgia,serif;font-size:1.3rem}.course-strip h3{margin-top:18px;margin-bottom:20px}.course-strip button>span:last-child{color:var(--muted);justify-content:space-between;align-items:center;font-size:.7rem;display:flex}.app-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:20px 42px;font-size:.65rem;display:flex}.onboarding{background:#eef2e7;border:1px solid #bfcdb4;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;padding:17px 20px;display:flex}.onboarding strong{font-size:.84rem}.onboarding p{color:var(--muted);margin:4px 0 0;font-size:.77rem}.notice{background:#f0f3e8;border-left:3px solid #668454;margin:20px 0;padding:14px 17px;font-size:.83rem;line-height:1.65}.error{color:#8d3128;overflow-wrap:anywhere;background:#fff0eb;border-left:3px solid #a34435;padding:12px 16px;line-height:1.6}.empty{text-align:center;min-height:190px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:25px;display:flex}.empty h3{color:var(--ink);margin:16px 0 8px}.empty div{max-width:360px;font-size:.82rem;line-height:1.7}.empty .text-button{margin:10px auto 0}.course-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.course-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;padding:26px;display:flex}.course-card h2{margin-top:10px;font-size:1.16rem}.course-card p{color:var(--muted);flex:1;font-size:.84rem}.course-card .section-head:last-child{margin:15px 0 0}.search{max-width:410px;margin-bottom:15px}.back{margin-bottom:20px}.learning-layout{grid-template-columns:245px minmax(0,1fr);align-items:start;gap:24px;display:grid}.lesson-nav{padding:22px 16px;position:sticky;top:20px}.lesson-nav>button{text-align:left;border-radius:7px;justify-content:flex-start;width:100%;padding:13px 10px;font-size:.82rem;line-height:1.5;display:flex}.lesson-nav>button.selected{background:var(--soft)}.lesson-nav button span{margin-right:4px;font-family:Georgia,serif;font-size:1.1rem}.lesson-nav p{font-size:.77rem}.lesson-body{padding:35px 38px}.lesson-body>h2{font-family:Georgia,serif;font-size:1.85rem;font-weight:400;line-height:1.35}.lesson-body section{margin-top:28px}.lesson-body p{font-size:.94rem;line-height:1.9}.objective{background:#f3f5ee;margin:24px 0;padding:18px 20px;font-size:.86rem}.objective p{margin:5px 0 0}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.example{border-left:3px solid #9eac80;padding:2px 0 2px 20px}.example p{margin:5px 0}.quiz{border:0;margin:0 0 18px;padding:0}.quiz label{cursor:pointer;border:1px solid #829088;border-radius:7px;align-items:center;gap:12px;margin:9px 0;padding:13px;font-size:.87rem;display:flex}.quiz label.chosen{border-color:var(--green);background:#eaf0e3}.checklist{border-top:1px solid var(--line);padding-top:24px}.checklist>label,.check-field{align-items:center;gap:10px;margin:14px 0;font-size:.87rem;line-height:1.6;display:flex}.sources{border-top:1px solid var(--line);padding-top:22px}.sources a{color:var(--green);align-items:center;gap:7px;margin-bottom:12px;font-size:.83rem;text-decoration:underline;display:flex}.sources small{display:block}.tabs{border-bottom:1px solid var(--line);gap:6px;margin-bottom:25px;display:flex;overflow:auto}.tabs button{white-space:nowrap;border-bottom:2px solid #0000;padding:12px 18px;font-size:.83rem}.tabs button.selected{border-color:var(--green);color:var(--green);font-weight:650}.done strong{text-decoration:line-through}.field{margin-bottom:18px;display:block}.field>label{margin-bottom:7px;font-size:.8rem;font-weight:600;display:block}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.modal{border:1px solid var(--line);border-radius:12px;width:min(570px,100% - 32px);max-height:90dvh;padding:27px;overflow:auto;box-shadow:0 20px 80px #152c3526}.modal::backdrop{background:#13251c66}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.subtask{gap:8px;margin-bottom:10px;display:flex}.agenda-controls{align-items:center;gap:12px;margin-bottom:24px;display:flex}.agenda-controls strong{font-size:.88rem}.agenda-day{border:1px solid var(--line);background:#fff;border-radius:10px;gap:25px;margin-bottom:12px;padding:20px;display:flex}.agenda-day.today{border-left:4px solid var(--green)}.agenda-date{flex-shrink:0;width:70px}.agenda-date strong{font-family:Georgia,serif;font-size:2rem;display:block}.agenda-date span{color:var(--muted);font-size:.71rem}.agenda-items{flex:1;min-width:0}.agenda-item{background:#f6f7f2;border-radius:6px;align-items:center;gap:10px;margin-bottom:7px;padding:10px 12px;font-size:.83rem;display:flex}.agenda-item>div{flex:1}.agenda-item strong,.agenda-item small{display:block}.class-item{background:#e6eedf}.study{background:0 0;border:1px dashed #85987e}.narrow{max-width:720px}.delete-zone{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.two-column{grid-template-columns:1fr 1.2fr;align-items:start;gap:22px;display:grid}.reference,.announcement{border-bottom:1px solid var(--line);padding:18px 0}.reference:first-child,.announcement:first-child{padding-top:0}.reference a{align-items:center;gap:8px;font-size:.92rem;font-weight:600;text-decoration:underline;display:flex}.reference small{margin:5px 0;display:block}.reference p{font-size:.85rem}.privacy-note{color:var(--muted);align-items:center;gap:8px;margin-bottom:22px;font-size:.77rem;line-height:1.6;display:flex}.journal-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:22px;display:grid}.journal-list{padding:15px}.search-wrap{align-items:center;gap:9px;margin-bottom:15px;display:flex}.search-wrap input{min-width:0}.journal-list>button{text-align:left;border-bottom:1px solid var(--line);border-radius:7px;width:100%;padding:17px 12px;line-height:1.6;display:block}.journal-list>button.selected{background:var(--soft)}.journal-list button small,.journal-list button strong,.journal-list button span{display:block}.journal-list button strong{overflow-wrap:anywhere;font-size:.87rem}.journal-list button span{color:var(--muted);font-size:.74rem}.journal-editor{padding:30px}.save-status{color:var(--muted);font-size:.7rem}.saved{color:#236134;font-size:.7rem}.button-row{flex-wrap:wrap;gap:12px;display:flex}.admin-summary{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px;display:grid}.admin-summary>div{border:1px solid var(--line);background:#fff;border-radius:10px;padding:23px}.admin-summary strong{font-size:1.7rem;font-weight:500;display:block}.admin-summary span{color:var(--muted);margin-top:9px;font-size:.78rem;display:block}.user-row{border-bottom:1px solid var(--line);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:10px;padding:16px 0;font-size:.85rem;display:flex}.user-row strong,.user-row small{display:block}.content-row{text-align:left;border-bottom:1px solid var(--line);width:100%;padding:15px 0;font-size:.87rem;display:block}.content-row span{color:var(--muted);margin-top:5px;font-size:.74rem;display:block}.audit-row{border-bottom:1px solid var(--line);padding:13px 0;font-size:.84rem}.audit-row small{display:block}details{border:1px solid var(--line);border-radius:8px;margin:15px 0;padding:15px}summary{cursor:pointer;font-weight:600;line-height:1.5}details[open] summary{margin-bottom:20px}.loading{min-height:100vh;color:var(--muted);place-items:center;display:grid}.toast{color:#fff;z-index:80;background:#193e32;border-radius:8px;align-items:center;gap:20px;max-width:min(640px,90vw);padding:12px 18px;font-size:.85rem;line-height:1.5;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}.toast .icon-button:hover{background:#345747}.mobile-menu{display:none}.skip-link{z-index:100;background:#fff;padding:15px;position:fixed;top:-100px;left:15px}.skip-link:focus{top:15px}.sr-only{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.landing{background:#f8f8f1;min-height:100vh}.landing>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:28px 7%;display:flex}.tag{color:var(--muted);font-size:.76rem}.welcome{grid-template-columns:1.2fr 1fr;align-items:center;gap:8%;max-width:1260px;margin:auto;padding:70px 6% 80px;display:grid}.welcome-copy h1{letter-spacing:-1.5px;font-family:Georgia,serif;font-size:clamp(2.6rem,4vw,3.7rem);font-weight:400;line-height:1.23}.welcome-copy h1 em{color:#3b6950;font-style:normal}.welcome-copy>p{color:var(--muted);max-width:480px;font-size:.98rem}.welcome-list{flex-direction:column;gap:14px;margin:25px 0 32px;font-size:.85rem;display:flex}.welcome-list span{align-items:center;gap:12px;display:flex}.welcome-list svg{width:18px}.login{min-width:230px}.setup-note{margin-top:15px;font-size:.79rem!important}.welcome-panel{background:#e8eddf;border-radius:15px;min-height:480px;padding:43px}.welcome-panel h2{margin-top:20px;font-family:Georgia,serif;font-size:2.2rem;font-weight:400;line-height:1.35}.book-mark{color:#487154;justify-content:center;align-items:center;height:135px;display:flex}.welcome-panel p{margin-bottom:10px;font-size:.78rem}.welcome-line{border-top:1px solid #afc0a4;margin-bottom:15px}.welcome-panel>span{color:#4e6552;font-size:.75rem}.landing>footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:20px 7%;font-size:.73rem;display:flex}.ai-status{background:#f2f4eb;border-radius:8px;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;padding:18px;display:flex}.chat-message{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1f4eb;border-radius:8px;margin:15px 0;padding:17px 20px;font-size:.89rem;line-height:1.8}.chat-message.user{background:#e5ecdf;margin-left:35px}.chat-message>strong{margin-bottom:7px;font-size:.72rem;display:block}.chat-options{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.chat-options button{border:1px solid #879684;border-radius:6px;padding:9px;font-size:.77rem}.companion-code{border:1px solid var(--line);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#eef1e8;padding:14px;font-family:monospace}.scrim{display:none}@media (width>=1450px){.main-column>main{padding:42px 60px}.topbar{padding:0 60px}}@media (width<=1100px){.sidebar{width:216px;padding-inline:12px}.main-column{width:calc(100% - 216px);margin-left:216px}.main-column>main{padding:28px 26px}.topbar{padding:0 26px}.dashboard-grid{grid-template-columns:1.3fr 1fr;gap:16px}.focus-panel{padding:25px}.focus-top>svg{display:none}.focus-top h2{font-size:1.6rem}.learning-layout{grid-template-columns:190px minmax(0,1fr);gap:16px}.lesson-body{padding:25px}.journal-layout{grid-template-columns:230px minmax(0,1fr)}.due{white-space:normal}.two-column{grid-template-columns:1fr}.semester-label{font-size:.65rem}.course-strip{gap:12px}.course-strip>button{padding:17px}.course-strip h3{font-size:.87rem}}@media (width<=800px){.sidebar{visibility:hidden;width:250px;transition:transform .15s;transform:translate(-100%)}.sidebar.open{visibility:visible;transform:translate(0)}.main-column{width:100%;margin-left:0}.mobile-menu{display:flex}.topbar{gap:12px;height:64px;padding:0 18px}.breadcrumb{margin-right:auto}.breadcrumb>span,.breadcrumb>svg{display:none}.semester-label{text-align:right;max-width:150px}.main-column>main{padding:25px 20px 45px}.page-head{align-items:flex-start}.page-head>.primary{padding:10px;font-size:.75rem}.page-head p{font-size:.82rem}.dashboard-grid{grid-template-columns:1.25fr 1fr}.scrim{z-index:15;background:#142c2855;display:block;position:fixed;inset:0}.learning-layout{grid-template-columns:1fr}.lesson-nav{position:static}.lesson-nav .rule,.lesson-nav>p{display:none}.journal-layout{grid-template-columns:1fr}.journal-list{max-height:270px;overflow:auto}.onboarding{flex-direction:column;align-items:flex-start}.welcome{gap:5%;padding-top:40px}.welcome-panel{min-height:420px;padding:28px}.welcome-copy h1{font-size:2.6rem}.welcome-panel h2{font-size:1.8rem}.welcome-list{font-size:.78rem}.app-footer{padding:20px}.app-footer span{text-align:right;max-width:190px}}@media (width<=560px){.dashboard-grid,.course-grid,.course-strip,.admin-summary,.welcome{grid-template-columns:1fr}.page-head{flex-wrap:wrap;gap:14px}.page-head h1{font-size:1.85rem}.dashboard-grid{gap:17px}.focus-top h2{font-size:1.9rem}.focus-top>svg{width:55px;display:block}.next-class .date-display{margin:12px 0}.next-class .date-display strong{font-size:3.3rem}.panel{padding:20px}.course-strip>button{grid-template-columns:35px 1fr;align-items:center;gap:8px;display:grid}.course-strip h3{margin:0;font-size:.96rem}.course-strip button>span:last-child{grid-column:2}.secondary-grid{margin-top:15px}.section-head{gap:10px}.section-head h2{font-size:1.08rem}.section-head .text-button{font-size:.71rem}.task-row{flex-wrap:wrap;gap:8px}.task-row>div{min-width:calc(100% - 40px)}.task-row .due{margin-left:30px}.agenda-controls{flex-wrap:wrap;gap:8px}.agenda-controls strong{font-size:.72rem}.agenda-day{gap:10px;padding:14px}.agenda-date{width:44px}.agenda-date strong{font-size:1.7rem}.agenda-item{flex-wrap:wrap}.agenda-item .text-button{margin-left:26px}.agenda-item strong{font-size:.78rem}.agenda-item small{font-size:.68rem}.form-grid{gap:10px}.privacy-note{align-items:flex-start;font-size:.73rem}.admin-summary{grid-template-columns:repeat(2,1fr);gap:10px}.admin-summary>div{padding:17px}.admin-summary>div:last-child{grid-column:1/-1}.tabs button{padding:11px 13px}.welcome{padding:40px 7%}.welcome-panel{min-height:360px;margin-top:15px}.welcome-copy h1{font-size:2.5rem}.landing>header{padding:20px 7%}.landing .tag{display:none}.landing>footer{text-align:center;flex-direction:column;gap:12px}.lesson-body>h2{font-size:1.65rem}.journal-editor .section-head{flex-wrap:wrap}.toast{width:90vw;bottom:15px}.ai-status{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
