:root{--brand-green:#018944;--brand-forest:#213a30;--brand-bright:#01a954;--page-bg:#f5f7f5;--green-wash:#edf7f0;--border:#dce5df;--input-border:#b9cbbf;--muted:#56665c;font-family:Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--brand-forest);background:var(--page-bg);font-synthesis:none;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a{color:inherit}.masthead{height:128px;background:#fff;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--brand-green)}.brand{display:block;text-decoration:none;flex-shrink:0;line-height:0}.brand-logo{display:block;width:288px;max-width:100%;height:auto}.header-note,.eyebrow{font-size:11px;font-weight:750;letter-spacing:.16em}.header-note{font-family:Oswald,ui-sans-serif,sans-serif;font-size:18px;font-weight:600;letter-spacing:.04em;color:var(--brand-forest);text-align:right}.header-note small{display:block;font-family:Roboto,ui-sans-serif,sans-serif;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--brand-green);margin-top:5px}main{max-width:1240px;margin:auto;padding:48px 40px 80px;min-height:calc(100vh - 208px)}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center;min-height:560px}.intro h1{font-size:clamp(48px,5.7vw,80px);line-height:1.01;letter-spacing:-.065em;margin:24px 0}.intro h1 span{color:var(--brand-green)}.intro>p{max-width:390px;font-size:18px;color:var(--muted)}.intro .eyebrow{display:flex;align-items:center;gap:10px}.intro .eyebrow:before{content:"";width:26px;height:2px;background:var(--brand-green)}.tracks{display:flex;flex-wrap:wrap;gap:10px;margin-top:35px}.tracks span,.pill{font-size:12px;padding:6px 11px;border:1px solid var(--border);border-radius:100px;background:var(--green-wash)}.card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:32px;box-shadow:0 12px 34px #213a3008}.auth-card{padding:36px 38px}.card h2{margin:6px 0 8px;font-size:27px;letter-spacing:-.035em}.muted{color:var(--muted);font-size:14px}.auth-card>p{margin-top:0;margin-bottom:27px}label{display:block;font-size:13px;font-weight:650;margin:18px 0 7px}input,select{width:100%;border:1px solid var(--input-border);border-radius:8px;padding:11px 13px;color:var(--brand-forest);background:#fff;min-height:47px}input:focus,select:focus{outline:2px solid var(--brand-green);outline-offset:2px}button{cursor:pointer;border:0;border-radius:8px;padding:12px 18px;font-weight:700;background:var(--brand-green);color:#fff;min-height:44px}button:disabled{cursor:wait;opacity:.65}button:hover:not(:disabled){filter:brightness(.92)}button:focus-visible,a:focus-visible{outline:3px solid var(--brand-green);outline-offset:3px}.wide{width:100%;margin-top:24px}.text-button{padding:6px 0;background:none;color:var(--brand-forest);min-height:40px;font-size:13px;text-decoration:underline;text-underline-offset:4px}.outline{background:transparent;color:var(--brand-forest);border:1px solid var(--input-border)}.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:15px}.auth-note{border-top:1px solid var(--border);margin-top:24px;padding-top:18px;font-size:12px;color:var(--muted)}.notice{padding:13px 16px;margin:18px 0 0;border-radius:8px;background:var(--green-wash);color:var(--brand-forest);font-size:14px;white-space:pre-line}.notice.error{background:#fff0e8;color:#8d3d20}.loading{padding:70px;text-align:center}.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:32px}.dashboard-heading h1{font-size:40px;letter-spacing:-.055em;margin:8px 0}.dashboard-heading p{margin:0}.dashboard-heading button{flex-shrink:0}.section-nav{display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:18px;margin-bottom:28px}.section-nav button{background:transparent;color:var(--brand-forest)}.section-nav button[aria-pressed=true]{background:var(--brand-green);color:white}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.cards h3{margin:12px 0 8px}.cards .card{padding:25px}.cards p{font-size:14px;color:var(--muted)}.section-intro h2{margin:0;font-size:25px;letter-spacing:-.03em}.section-intro p{margin-top:6px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.grid-form .wide{grid-column:1/-1}.member-list{display:grid;gap:14px;margin-top:24px}.member{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:20px 24px}.member h3{margin:0;font-size:17px}.member p{margin:4px 0;overflow-wrap:anywhere}.member .pill{display:inline-block;font-size:11px;padding:3px 8px;margin-top:4px}.member-actions{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.member-actions label{margin:0 0 4px;font-size:11px}.member-actions select{min-height:42px;padding:8px;max-width:160px;font-size:13px}.member-actions button{font-size:12px;min-height:42px;padding:8px 12px}.status-line{display:flex;gap:8px}.danger{color:#943d2a;border-color:#dcbeb3}.account-card{max-width:650px}.account-card dl{display:grid;grid-template-columns:110px 1fr;font-size:14px;gap:12px}.account-card dd{margin:0;overflow-wrap:anywhere}.account-card dt{color:var(--muted)}footer{border-top:1px solid var(--border);margin:0 6%;padding:23px 0;font-size:10px;font-weight:750;letter-spacing:.12em;display:flex;justify-content:space-between;gap:20px}footer span{font-weight:450;letter-spacing:0;color:var(--muted);font-size:12px}[hidden]{display:none!important}@media(max-width:850px){main{padding:38px 24px}.login-layout{gap:35px;grid-template-columns:1fr 1fr}.intro h1{font-size:52px}.auth-card{padding:27px}.cards{grid-template-columns:1fr}.member-actions{width:100%}}@media(max-width:640px){.masthead{height:106px;padding:0 24px}.brand-logo{width:240px}.header-note{display:none}.login-layout{display:block;min-height:0}.intro{margin-bottom:30px}.intro h1{font-size:49px;margin:16px 0}.intro>p{font-size:16px}.tracks{margin-top:20px}.auth-card{padding:26px}.dashboard-heading h1{font-size:31px}.dashboard-heading{flex-wrap:wrap}.grid-form{grid-template-columns:1fr;gap:0}.card{padding:24px}.member-actions>div{flex:1;min-width:110px}.member-actions select{max-width:none}.section-nav{flex-wrap:wrap}footer{flex-direction:column;gap:6px}.loading{padding:40px 10px}}
textarea{font:inherit;width:100%;border:1px solid var(--input-border);border-radius:8px;padding:12px;color:var(--brand-forest);background:#fff;resize:vertical;line-height:1.6}textarea:focus{outline:2px solid var(--brand-green);outline-offset:2px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:25px}.section-heading h2{font-size:30px;letter-spacing:-.04em;margin:0 0 8px}.section-heading p{margin:0}.section-heading>button{flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:var(--green-wash);border-radius:14px;margin:20px 0 28px}.stats>div{padding:21px 25px;border-right:1px solid var(--border)}.stats>div:last-child{border:0}.stats strong{display:block;font-size:30px;letter-spacing:-.04em}.stats span{font-size:12px;color:var(--muted)}.library-tools{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:25px}.library-tools label{margin:0}.library-tools input,.library-tools select{margin-top:8px}.lesson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.lesson-card{display:flex;flex-direction:column}.lesson-card h3{font-size:23px;line-height:1.3;margin:23px 0 8px;letter-spacing:-.025em}.lesson-card p{margin:5px 0 14px}.lesson-card .button-row{margin-top:auto;padding-top:12px}.lesson-meta{font-size:12px;color:var(--muted)}.card-top,.button-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.button-row{justify-content:flex-start;flex-wrap:wrap}.success{color:var(--brand-forest);background:#e2f4e9;border-color:#a8d3b9}.empty-state{grid-column:1/-1;border:1px dashed var(--input-border);border-radius:14px;padding:36px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--brand-forest);margin-top:0}.prose{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.85;margin:20px 0;max-width:85ch}video{display:block;width:100%;max-height:560px;border-radius:10px;background:#162b23}.review-row{padding-top:20px;border-top:1px solid var(--border)}.quiz-card,.history,.editor-quiz,.assignment-panel{margin-top:24px}.quiz-card h3{margin-top:0}.quiz-card fieldset{padding:0;border:0;min-width:0}.quiz-card fieldset.quiz-question{margin:24px 0;padding:20px 0;border-top:1px solid var(--border)}.quiz-question legend{font-weight:700;padding:0 0 10px}.answer{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--input-border);padding:12px;border-radius:8px;cursor:pointer;margin:8px 0;font-weight:450;font-size:15px}.answer input,.check input{width:18px;height:18px;min-height:18px;padding:0;flex-shrink:0;margin:3px 0;accent-color:var(--brand-green)}.check{display:flex;gap:10px;align-items:center;font-size:14px}.answer:has(input:checked){border-color:var(--brand-green);background:var(--green-wash)}fieldset:disabled .answer{opacity:.55}.feedback{padding:18px 0;border-bottom:1px solid var(--border)}.feedback p{margin:5px 0}.feedback+button{margin-top:20px}.history summary,.assignment-panel summary{cursor:pointer;font-weight:700}.question-editor{min-width:0;border:1px solid var(--border);border-radius:12px;padding:18px;margin:18px 0 25px;background:#f7faf8}.question-editor legend{font-weight:700;padding:0 8px}.question-editor .grid-form{margin-top:4px}.full-width{grid-column:1/-1}.table-wrap{overflow-x:auto;margin:24px 0}table{border-collapse:collapse;width:100%;font-size:13px;background:#fff}th{text-align:left;font-weight:700;background:var(--green-wash);padding:12px;white-space:nowrap}td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:top}td small{display:block;color:var(--muted)}.table-wrap .pill{white-space:nowrap}.post-list{display:grid;gap:22px}.post-list h3{font-size:24px;letter-spacing:-.03em}.post-list .prose{font-size:16px}.individual-assignments p{font-size:13px;border-top:1px solid var(--border);padding-top:12px}#lesson-editor>#save-lesson{width:100%}#progress-member{max-width:360px}.editor-quiz #add-question{margin-top:12px}@media(max-width:700px){.stats>div{padding:16px 12px}.stats strong{font-size:25px}.stats span{font-size:10px}.lesson-grid{grid-template-columns:1fr}.section-heading{flex-wrap:wrap}.library-tools{grid-template-columns:1fr;gap:12px}.section-nav{gap:4px}.section-nav button{font-size:13px;padding:10px}.section-heading h2{font-size:27px}.card-top{flex-wrap:wrap}.answer{font-size:14px}.prose{font-size:15px}}

/* Typography and palette match WrenchTree's public website. */
h1,h2,h3,.stats strong{font-family:Oswald,ui-sans-serif,system-ui,sans-serif;font-weight:600}
.intro h1{font-size:clamp(56px,6.2vw,88px);line-height:1.08;letter-spacing:-.02em}
.dashboard-heading h1{font-size:42px;letter-spacing:-.015em}
.card h2,.section-heading h2,.section-intro h2{letter-spacing:-.01em}
.lesson-card h3,.post-list h3{font-size:25px;letter-spacing:0}
.card h2{font-size:29px}
.section-heading h2{font-size:32px}
.eyebrow{color:var(--brand-green)}
footer{border-top:2px solid var(--brand-forest);color:var(--brand-forest)}
footer span{color:var(--brand-forest);font-style:italic}
@media(max-width:850px){.intro h1{font-size:58px}}
@media(max-width:640px){.intro h1{font-size:54px}.dashboard-heading h1{font-size:34px}.section-heading h2{font-size:29px}.card h2{font-size:27px}}

/* Private streaming and resilient upload controls. */
.stream-frame{display:block;border:0;width:100%;aspect-ratio:16/9;background:#142a20;border-radius:12px;margin-bottom:22px}
.upload-progress{padding:16px;margin:16px 0;background:var(--green-wash);border:1px solid var(--border);border-radius:12px}
.upload-progress progress{display:block;width:100%;height:18px;accent-color:var(--brand-green)}
.upload-progress p{margin:8px 0}.upload-history{margin-top:18px}.upload-history summary{cursor:pointer;font-weight:600}
.upload-item{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}
.upload-item span{overflow-wrap:anywhere}.upload-item button{flex-shrink:0;font-size:13px}
#retry-video{margin-bottom:18px}@media(max-width:600px){.upload-item{align-items:flex-start;flex-direction:column}}
