:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#173f43;background:#f4f6f3;font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer;border:1px solid #cbd8d2;background:white;color:#173f43;border-radius:9px;padding:10px 16px;font-weight:600}button:hover{background:#eaf2ee}button:disabled{cursor:not-allowed;color:#637971;background:#f2f4f2}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #d39331;outline-offset:3px}.primary{background:#176458;color:white;border-color:#176458}.primary:hover{background:#124d44}.demo{padding:8px 24px;background:#efe9d8;color:#5a4c2e;font-size:12px;letter-spacing:.04em;font-weight:700}.demo span{font-weight:400;letter-spacing:0;margin-left:16px;font-size:13px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 36px)}aside{background:#153e3d;color:white;padding:32px 18px;display:flex;flex-direction:column}.brand{font-size:30px;color:white;text-decoration:none;font-weight:650;letter-spacing:-1px;margin:0 14px 48px}.brand span{display:block;font-size:11px;letter-spacing:4px;color:#b8d5ca;font-weight:500}.nav-label{font-size:11px;letter-spacing:1.6px;color:#bdd0c9;margin:0 14px 14px}nav button{width:100%;text-align:left;background:transparent;color:#dbe7e2;border:0;margin-bottom:5px;font-weight:500}nav button:hover{background:#28504e}nav button.active{background:#e6eee6;color:#173f43}.side-note{margin:auto 14px 0;padding-top:70px;font-size:15px;color:#d3e2da}.side-note small{color:#abc5b9}.workspace{min-width:0}header{padding:22px 36px;background:white;border-bottom:1px solid #e0e7df;display:flex;justify-content:space-between;gap:18px;align-items:center;font-size:14px}.switch{display:flex;gap:10px;align-items:center;flex-wrap:wrap}select{border:1px solid #cbd8d2;border-radius:8px;padding:8px;background:white;color:#173f43}main{padding:34px 38px;max-width:1280px;margin:auto}h1{font-size:32px;line-height:1.2;letter-spacing:-.8px;margin:8px 0 10px}h2{font-size:21px;line-height:1.3;margin:0 0 12px}h3{font-size:17px;margin:0 0 9px}p{margin:8px 0 18px}.muted{color:#5b7169}.eyebrow{font-size:12px;letter-spacing:1.6px;font-weight:700;color:#587264}.hero{background:#e3eddf;border:1px solid #d4e1d0;border-radius:16px;padding:28px 30px;display:grid;grid-template-columns:1fr auto;gap:24px;margin:24px 0 30px;align-items:center}.hero p{max-width:570px}.hero .number{font-size:44px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card{background:white;border:1px solid #dde5dc;border-radius:13px;padding:23px;margin-bottom:18px}.grid .card{margin:0}.card-num{font-size:13px;color:#6b7e73;margin-bottom:22px;display:flex;justify-content:space-between}.tag{font-size:12px;color:#4b6557;border:1px solid #d6e2d6;background:#f3f7ef;border-radius:20px;padding:3px 9px;display:inline-block}.section-title{margin:28px 0 16px}.row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid #e3e8e0;padding:17px 0}.row:last-child{border:0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.number{font-size:34px;font-weight:650;display:block;line-height:1.3;margin:12px 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.lesson{max-width:820px}.step{display:grid;grid-template-columns:35px 1fr;gap:16px;margin:25px 0}.step b{background:#e4efdf;border-radius:50%;height:34px;display:grid;place-items:center}.checklist{padding-left:24px;margin:10px 0 0}.checklist li{margin:10px 0}.quiz-question{padding:18px 0;border-bottom:1px solid #e3e8e0}.quiz-question:last-child{border-bottom:0}.review-note{border-color:#d8c797;background:#fffaf0}.review-note h2{margin-top:14px}.field{display:block;margin:16px 0}.field input,.field textarea{display:block;width:100%;padding:12px;margin-top:6px;border:1px solid #c6d6ca;border-radius:8px;color:#173f43;background:white}.help{font-size:14px;color:#63746a}.empty{padding:24px;border:1px dashed #b8cbbd;border-radius:10px;margin-top:15px}.success{color:#176458;background:#e6f1e5;padding:12px;border-radius:8px}#notice:not(:empty){background:#173f43;color:white;position:fixed;bottom:20px;right:20px;max-width:calc(100% - 40px);padding:14px 20px;border-radius:10px;box-shadow:0 4px 20px #0002}progress{width:100%;height:12px;accent-color:#176458}.wide{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid #dfe7df;font-size:15px}th{font-weight:600;color:#597064}.error{color:#922f28}a{color:#176458}.lesson-figure{margin:20px 0 26px}.lesson-figure img{display:block;width:100%;height:auto;border:1px solid #d9e3dc;border-radius:10px;background:#f7f9f7}.lesson-figure figcaption,.lesson-video figcaption{margin-top:9px;color:#63746a;font-size:14px}.lesson-video{margin:20px 0 26px}.lesson-video video{display:block;width:100%;height:auto;border:1px solid #d9e3dc;border-radius:10px;background:#102827}@media(min-width:1450px){main{padding-top:45px}}@media(max-width:900px){.shell{grid-template-columns:190px 1fr}aside{padding:25px 10px}main{padding:25px}.stats{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.hero .hero-side{display:none}}@media(max-width:650px){.shell{display:block}aside{padding:16px}.brand{margin:0 0 16px;font-size:24px}.nav-label,.side-note{display:none}nav{display:flex;flex-wrap:wrap;gap:4px}nav button{width:auto;font-size:14px;padding:8px}.grid{grid-template-columns:1fr}header{padding:15px;flex-wrap:wrap}main{padding:22px 16px}h1{font-size:27px}.hero{padding:22px}.demo span{display:block;margin:0}.card{padding:19px}.switch{font-size:13px}.deadline-card{overflow-x:hidden}.deadline-table,.deadline-table tbody,.deadline-table tr,.deadline-table td{display:block;width:100%}.deadline-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.deadline-table tr{padding:12px 0;border-bottom:1px solid #dfe7df}.deadline-table tr:last-child{border-bottom:0}.deadline-table td{padding:5px 0;border:0}.deadline-table td::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;color:#597064;margin-bottom:2px}}
/* Account forms reuse the portal's existing cards and field styles. */
.auth-card { width: 100%; max-width: 520px; margin: 24px auto; }
.auth-card form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.lesson-choices { display: grid; gap: 10px; margin: 16px 0; }
.lesson-choices label { display: flex; align-items: baseline; gap: 8px; }
.lesson-choices input { width: auto; }
[hidden] { display: none !important; }

.field select { max-width: 100%; }
