@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#203535;--muted:#727e7c;--paper:#f6f7f3;--white:#fff;--line:#e2e7de;--green:#173d35;--lime:#d7edaa;--orange:#cc6340;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,.brand{font-family:Manrope,Arial,sans-serif}h1,h2,h3,p{margin:0}h1{font-size:36px;line-height:1.18;letter-spacing:-1.5px;font-weight:800}h2{font-size:22px;line-height:1.35;letter-spacing:-.6px}h3{font-size:16px;letter-spacing:-.3px}button,input,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d28054;outline-offset:3px}.skip{position:fixed;top:-80px;left:15px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.sidebar{width:244px;background:#182e2b;color:#e8efe6;position:fixed;inset:0 auto 0 0;padding:33px 22px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:1.8px;font-weight:800;margin-bottom:43px}.brand small{display:block;font-size:10px;font-weight:500;color:#9baea4;margin-top:4px;letter-spacing:1px}.brand-mark{border:1px solid #73877b;color:var(--lime);height:39px;width:39px;display:grid;place-items:center;position:relative;font-size:28px;font-weight:600;letter-spacing:-5px;padding-right:5px;border-radius:10px}.brand-mark span{font-size:18px;position:absolute;right:3px;top:1px;letter-spacing:0}.sidebar-label{font-size:9px;color:#90a49b;font-weight:700;letter-spacing:1.7px;margin:0 12px 12px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:8px;font-size:12px;color:#b9c9bf;transition:background .15s}.sidebar nav a:hover{background:#29443c;color:white}.sidebar nav a.active{background:#d7edaa;color:#203a2b;font-weight:700}.sidebar nav a>span{font-size:17px;width:20px;text-align:center}.sidebar nav a b{margin-left:auto;font-size:10px;border-radius:4px;background:#345043;padding:1px 5px;color:#cbd8cf}.chapters-label{margin-top:34px}.sidebar .chapter-nav a{font-size:11px;padding:8px 12px;gap:11px}.chapter-nav .chapter-num{font-size:10px;width:20px;color:#8ba69a}.sidebar-bottom{margin-top:auto;border-top:1px solid #355047;padding-top:20px}.local-label{font-size:10px;font-weight:600;display:flex;align-items:center;gap:8px}.status-dot{height:6px;width:6px;border-radius:50%;background:var(--lime)}.sidebar-bottom p{font-size:10px;color:#97afa2;line-height:1.7;margin:9px 0 9px}.text-button{background:none;border:0;padding:0;color:var(--green);font-size:12px;font-weight:600}.text-button.light{color:#acbeb1;font-size:10px;text-decoration:underline;text-underline-offset:3px}.app-shell{margin-left:244px}.topbar{height:84px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;background:#fcfdfb}.breadcrumb{font-size:11px;font-weight:600;color:#88918a;white-space:nowrap}.breadcrumb span{margin:0 12px;color:#c8cec6}.search{margin-left:auto;display:flex;align-items:center;gap:10px;width:310px;background:#f4f6f0;border:1px solid #e8ece4;border-radius:8px;padding:9px 13px;color:#818f83}.search>span{font-size:23px;line-height:1}.search input{background:none;border:0;outline:none;width:100%;font-size:11px;color:var(--ink)}.search kbd{background:white;padding:0 6px;border:1px solid var(--line);border-radius:4px;color:#99a496;font-size:11px}.profile{height:34px;width:34px;border-radius:50%;background:#e8e6d7;color:#7c805f;display:grid;place-items:center;font-size:10px;font-weight:700}.menu-button{display:none}main{max-width:1460px;margin:auto;padding:35px 42px 52px;min-height:calc(100vh - 130px)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--muted);display:block;margin-bottom:9px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:20px}.page-heading p{color:var(--muted);margin-top:9px;font-size:12px}.semester-pill{font-size:10px;background:#ecefe5;border:1px solid var(--line);border-radius:20px;padding:7px 13px;white-space:nowrap;display:flex;gap:7px;align-items:center}.semester-pill i{height:5px;width:5px;background:#6c8a40;border-radius:50%}.hero{display:grid;grid-template-columns:1fr 290px;background:#dce9c9;border-radius:20px;padding:31px 32px;min-height:246px;position:relative;overflow:hidden;gap:20px;margin-bottom:26px}.hero .eyebrow{color:#5f7552}.hero h2{font-size:29px;line-height:1.3;max-width:500px;letter-spacing:-1px}.hero p{font-size:12px;max-width:390px;line-height:1.8;color:#5f7158;margin:13px 0 21px}.button{border:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-weight:600;font-size:11px;padding:11px 17px;min-height:39px;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:white}.button.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.button.orange{background:var(--orange);color:white}.hero-art{width:290px;align-self:center;justify-self:center}.hero-art svg{width:100%;height:196px}.hero-foot{display:flex;gap:12px;align-items:center;font-size:10px;color:#6b7e5b}.hero .button{margin-right:14px}.hero-foot span{display:inline-flex;align-items:center;gap:6px}.summary-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:16px;margin-bottom:30px}.summary-card{padding:20px 22px;background:white;border:1px solid var(--line);border-radius:12px;display:flex;gap:15px;align-items:center}.summary-icon{height:42px;width:42px;border-radius:10px;display:grid;place-items:center;background:#f1f4ea;font-size:19px;color:#6e8056}.summary-card strong{display:block;font-size:22px;font-weight:600;letter-spacing:-.8px}.summary-card span{font-size:11px;color:var(--muted)}.progress-card{display:block}.progress-top{display:flex;justify-content:space-between;margin-bottom:10px;font-size:11px}.progress-top strong{font-size:11px;letter-spacing:0}.progress-track{height:5px;background:#edf0e8;border-radius:5px;overflow:hidden}.progress-track>div{height:100%;background:#779555;transition:width .3s}.progress-card small{display:block;font-size:9px;color:#8e968a;margin-top:8px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:15px}.section-heading h2{font-size:19px}.section-heading p{font-size:11px;color:var(--muted);margin-top:3px}.section-heading a{font-size:11px;font-weight:600}.overview-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:25px}.course-list{border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}.chapter-row{display:flex;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);transition:background .15s}.chapter-row:last-child{border-bottom:0}.chapter-row:hover{background:#f8faf5}.chapter-square{width:39px;height:39px;border:1px solid #e4e9dc;border-radius:9px;background:#f2f5eb;color:#7e8c66;display:grid;place-items:center;font-size:11px;flex-shrink:0;font-weight:700}.chapter-row.available .chapter-square{background:#edf4dd;color:#54752e;border-color:#dbe7c8}.chapter-info{flex:1}.chapter-info h3{font-size:12px;font-weight:700}.chapter-info p{font-size:10px;color:var(--muted);margin-top:4px}.chapter-row .arrow{color:#7e8b75;font-size:18px}.badge{font-size:9px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:20px;white-space:nowrap;background:#f2f4ee;color:#78826e}.badge.green{background:#edf4e2;color:#5a7c34}.badge.orange{background:#faeee5;color:#b77143}.library-card{border-radius:14px;border:1px solid var(--line);background:#fff;padding:24px;margin-bottom:16px}.library-card .mini-icon{color:#a17c48;font-size:21px;margin-bottom:14px;display:block}.library-card h3{font-size:17px;margin-bottom:7px}.library-card p{color:var(--muted);font-size:11px;line-height:1.8;margin-bottom:19px}.library-card .button{width:100%}.note-card{background:#f0eee2}.note-card .eyebrow{font-size:9px;color:#988b63}.note-card p{margin-bottom:0;color:#827c67;font-size:11px}.filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:22px}.filter{padding:8px 15px;border:1px solid var(--line);background:white;border-radius:22px;font-size:11px;color:#788374}.filter.active{background:var(--green);border-color:var(--green);color:white}.filter-count{margin-left:auto;font-size:11px;color:var(--muted)}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.resource-card{border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.resource-art{height:125px;background:#edf2e4;position:relative;overflow:hidden;padding:18px 20px;display:flex;justify-content:space-between;align-items:flex-start}.resource-art.tonal-1{background:#e8eceb}.resource-art.tonal-2{background:#f1eade}.resource-art .type{font-size:9px;letter-spacing:1px;font-weight:600;color:#748265}.document-art{position:absolute;width:73px;height:91px;background:#fcfdfb;border:1px solid #d0d8c2;bottom:-12px;right:48px;transform:rotate(-10deg);border-radius:5px;box-shadow:6px 8px 0 #d9e1ce;display:flex;flex-direction:column;gap:6px;padding:17px 12px}.document-art i{height:3px;background:#d0d7c5;display:block;width:100%}.document-art i:first-child{height:16px;width:21px;border:2px solid #8f9d7a;background:none;border-radius:3px;margin-bottom:2px}.document-art i:last-child{width:65%}.save-button{width:29px;height:29px;background:#fff9;border:1px solid #d8dfcf;border-radius:7px;font-size:17px;color:#68804a;display:grid;place-items:center;position:relative;z-index:1}.save-button.saved{background:var(--green);color:var(--lime);border-color:var(--green)}.resource-body{padding:18px 19px;flex:1;display:flex;flex-direction:column}.resource-body .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:6px}.resource-body h3{font-size:14px;line-height:1.5;margin-bottom:8px}.resource-body p{font-size:10px;color:var(--muted);margin-bottom:18px}.resource-actions{display:flex;gap:8px;margin-top:auto;align-items:center}.resource-actions .button{font-size:10px;padding:8px 11px;min-height:34px}.resource-actions .text-button{font-size:10px;margin-left:auto}.check-button{font-size:10px;display:flex;align-items:center;gap:6px;color:#80916c;background:none;border:0;padding:0 0 0 2px;margin-top:14px}.check-button.done{color:#4e772f}.check-button span{height:13px;width:13px;border:1px solid #cad3be;border-radius:3px;display:grid;place-items:center;font-size:10px}.check-button.done span{background:#658343;border-color:#658343;color:white}.empty{padding:50px 25px;text-align:center;background:white;border:1px dashed #d7dfcf;border-radius:14px}.empty .empty-icon{font-size:33px;display:block;color:#a6b18f;margin-bottom:12px}.empty h3{font-size:17px;margin-bottom:7px}.empty p{max-width:420px;color:var(--muted);margin:0 auto 18px;font-size:12px}.chapter-head{background:#e6ebdb;border:1px solid #d9e1cc;border-radius:16px;padding:25px 28px;margin-bottom:23px;display:flex;justify-content:space-between;gap:20px;align-items:center}.chapter-head h1{font-size:30px}.chapter-head p{color:#748466;font-size:11px;margin-top:9px}.chapter-controls{display:flex;gap:10px;flex-wrap:wrap}.section-note{font-size:11px;color:#817c69;padding:15px 18px;background:#f0eee3;border:1px solid #e5e1d3;border-radius:9px;margin-top:22px}.chapter-footer{display:flex;justify-content:space-between;margin-top:25px;gap:12px}.chapter-footer a{font-size:11px;color:#728167;padding:10px 0}footer{border-top:1px solid var(--line);padding:19px 42px;font-size:9px;color:#8a9383;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:16px;padding:0;max-width:900px;width:90vw;color:var(--ink);box-shadow:0 25px 80px #152b2b33}dialog::backdrop{background:#10292288;backdrop-filter:blur(3px)}.dialog-header{padding:21px 25px;display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-header h2{font-size:19px}.dialog-header .eyebrow{font-size:9px;margin-bottom:5px}.icon-button{border:1px solid var(--line);background:white;border-radius:7px;min-width:32px;height:32px;color:var(--ink)}.preview-notice{padding:10px 25px;background:#f4f1e8;font-size:11px;color:#847857}#preview-frame{width:100%;height:59vh;border:0;background:#e9ece5}.dialog-footer{padding:17px 25px;display:flex;justify-content:flex-end;gap:10px;align-items:center}#notes-dialog{max-width:600px}#notes-dialog .notes-help{padding:0 25px;margin-bottom:15px;color:var(--muted);font-size:11px}#notes-dialog label{display:block;padding:0 25px;margin-bottom:8px;font-size:11px;font-weight:600}#notes-text{display:block;width:calc(100% - 50px);margin:0 25px;border:1px solid #dce2d2;border-radius:8px;min-height:220px;padding:14px;resize:vertical;background:#fafbf7;font-size:13px}#note-status{margin-right:auto;color:#82916f;font-size:11px}.toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translateX(-50%) translateY(90px);background:var(--green);color:white;border:1px solid #49624f;border-radius:9px;padding:12px 20px;font-size:12px;z-index:100;transition:transform .25s}.toast.show{transform:translateX(-50%) translateY(0)}
@media(min-width:1450px){main{padding-top:46px}.hero{min-height:270px}.hero-art svg{height:220px}.chapter-row{padding:21px 22px}}
@media(max-width:1100px){.sidebar{width:215px;padding:30px 16px}.app-shell{margin-left:215px}.topbar,main{padding-left:28px;padding-right:28px}.hero{grid-template-columns:1fr 220px;padding:27px}.hero-art{width:220px}.hero h2{font-size:25px}.overview-columns{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr)}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-head{align-items:flex-start;flex-direction:column}.chapter-head h1{font-size:27px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .25s;width:244px}.sidebar.open{transform:translateX(0);box-shadow:20px 0 80px #13291d55}.app-shell{margin-left:0}.menu-button{display:block}.topbar{height:72px;padding:0 20px;gap:12px}.breadcrumb{font-size:10px}.search{max-width:280px}.profile{display:none}main{padding:25px 22px 35px}h1{font-size:30px}.hero{grid-template-columns:1fr 200px;padding:26px;gap:5px}.hero-art{width:200px}.summary-card{padding:16px;gap:10px}.summary-icon{width:34px;height:34px}.summary-card strong{font-size:20px}.overview-columns{grid-template-columns:1fr}.side-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.library-card{margin-bottom:0}.toast{left:50%}footer{padding:18px 22px}.sidebar-bottom{padding-top:15px}}
@media(max-width:540px){.breadcrumb{display:none}.search{max-width:none;width:100%;margin-left:0}.topbar{gap:14px}.page-heading{align-items:flex-start;gap:10px}.page-heading .semester-pill{font-size:8px;padding:5px 8px;margin-top:4px}.page-heading h1{font-size:28px}.page-heading p{font-size:11px}.hero{grid-template-columns:1fr;padding:24px;min-height:0}.hero h2{font-size:26px}.hero-art{position:absolute;right:-48px;bottom:-45px;width:160px;opacity:.23;pointer-events:none}.hero-copy{position:relative;z-index:1}.hero p{max-width:310px}.hero-foot{flex-wrap:wrap;gap:10px}.summary-grid{grid-template-columns:1fr 1fr;gap:10px}.summary-card{padding:14px 12px}.progress-card{grid-column:1/-1}.summary-card span{font-size:10px}.overview-columns{gap:23px}.side-cards{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr}.resource-art{height:115px}.chapter-row{padding:17px 14px;gap:12px}.chapter-row .badge{display:none}.chapter-head{padding:22px}.chapter-head h1{font-size:25px}.filter-count{width:100%;margin-left:0;margin-top:5px}footer{display:block}footer span{display:block;margin-top:5px}.dialog-header{padding:18px}.dialog-header h2{font-size:17px}.preview-notice{padding:10px 18px}.dialog-footer{padding:15px 18px}.chapter-footer a{max-width:47%}.search kbd{display:none}}
[hidden]{display:none!important}.auth-gate{min-height:100vh;padding:40px;display:flex;flex-direction:column;align-items:center;background:radial-gradient(circle at 80% 15%,#dce9c9 0,transparent 40%),#f6f7f3}.auth-brand{font-family:Manrope,Arial,sans-serif;font-size:18px;letter-spacing:-.5px;font-weight:800;align-self:flex-start;color:#173d35}.auth-brand span{font-family:'DM Sans',Arial,sans-serif;font-size:9px;letter-spacing:2px;margin-left:13px;color:#7e8b71}.auth-card{margin:auto;padding:45px;max-width:600px;width:100%;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 22px 80px #23442c0a}.auth-card h1{font-size:36px;margin:15px 0 18px}.auth-card>p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:25px}.auth-card .auth-detail{font-size:11px;line-height:1.8;margin:20px 0 0}.auth-card .button{font-size:12px;min-height:44px}.auth-card .button:disabled{cursor:default;background:#8d9d87;transform:none}.auth-card .button.secondary{margin-left:5px}@media(max-width:540px){.auth-gate{padding:23px}.auth-card{padding:28px}.auth-card h1{font-size:30px}.auth-card .eyebrow{font-size:8px}}
.slide-viewer{max-width:1180px;width:94vw}.slide-viewer .dialog-header{padding:16px 22px}.slide-viewer .preview-notice{font-size:10px;padding:8px 22px}#presentation-shell{background:#152723;display:flex;flex-direction:column}#slide-stage{height:56vh;min-height:230px;display:flex;align-items:center;justify-content:center;position:relative;padding:12px 18px;overflow:hidden}#slide-stage #preview-frame{height:100%;width:100%;background:#e9ece5}#slide-canvas{display:block;background:white;box-shadow:0 5px 30px #0004;object-fit:contain;max-width:100%;max-height:100%}#slide-status{color:#dce6d9;font-size:13px;max-width:400px;text-align:center;padding:20px}.presentation-toolbar{display:flex;align-items:center;justify-content:center;gap:13px;padding:13px 20px;border-top:1px solid #344b3f}.presentation-toolbar .button{font-size:11px;min-height:36px;padding:8px 12px;background:#273e32;color:#e4efda;border-color:#4d614d}.presentation-toolbar .button:disabled{opacity:.35;cursor:default;transform:none}.presentation-toolbar #slide-count{color:#d2dfc9;font-size:11px;min-width:95px;text-align:center}.presentation-toolbar #slide-fullscreen{margin-left:auto}#presentation-help{color:#94a68f;text-align:center;font-size:10px;padding:0 20px 12px}#presentation-shell:fullscreen{width:100vw;height:100vh}#presentation-shell:fullscreen #slide-stage{height:auto;min-height:0;flex:1}#slide-text-details{background:#f4f6ee;padding:11px 22px;font-size:11px;color:#67765b}#slide-text-details summary{cursor:pointer;font-weight:600}#slide-text-details p{padding-top:12px;max-height:150px;overflow:auto;line-height:1.8}.slide-viewer .dialog-footer{padding:12px 22px}@media(max-width:540px){.slide-viewer{width:98vw}.slide-viewer .dialog-header h2{font-size:15px}#slide-stage{height:42vh;min-height:210px;padding:8px}.presentation-toolbar{padding:10px;gap:8px;flex-wrap:wrap}.presentation-toolbar .button{font-size:10px;padding:7px 9px}.presentation-toolbar #slide-count{min-width:78px}.presentation-toolbar #slide-fullscreen{margin-left:0}#presentation-shell:fullscreen .presentation-toolbar #slide-fullscreen{margin-left:auto}#presentation-help{font-size:9px;padding:0 12px 10px}}
.slide-viewer.expanded-view{width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;border:0;border-radius:0}.slide-viewer.expanded-view>.dialog-header,.slide-viewer.expanded-view>.preview-notice,.slide-viewer.expanded-view>.dialog-footer,.slide-viewer.expanded-view>#slide-text-details{display:none}#presentation-shell.expanded-view{height:100vh;width:100%}#presentation-shell.expanded-view #slide-stage{height:auto;min-height:0;flex:1}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
