.dashboard{max-width:1320px;margin:auto}.dash-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 28px}.dash-kicker{font-size:11px;letter-spacing:2px;font-weight:700;color:#64796c}.dash-heading h1{font-size:29px;letter-spacing:-1px;margin:10px 0}.dash-heading p{font-size:14px;color:#78847d;margin:0}.dash-date{font-size:13px;color:#7c8981;white-space:nowrap}.dash-main{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px}.dash-hero{position:relative;overflow:hidden;isolation:isolate;background:#233e30;border-radius:20px;color:#f1f5e9;padding:34px 36px;min-height:260px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.dash-hero .dash-kicker{color:#b6cba7}.dash-hero h1,.dash-hero h2{font-size:29px;line-height:1.5;max-width:77%;margin:16px 0 9px;letter-spacing:-.5px}.dash-hero p{font-size:14px;line-height:1.85;color:#c4d3c5;max-width:75%;margin:0 0 22px}.dash-primary{display:flex;align-items:center;gap:35px;background:#dfedc6;color:#233e30;border:0;border-radius:10px;padding:12px 20px;font-weight:700}.dash-primary:hover{background:#edf6da}.dash-hero-foot{font-size:11px;color:#a8bda9;margin-top:20px}.dash-hero-art{position:absolute;right:-38px;bottom:-65px;width:245px;height:300px;z-index:-1;transform:rotate(-18deg);opacity:.5}.dash-hero-art i{position:absolute;border:1px solid #89a87a;border-radius:36px;width:180px;height:220px;right:20px;top:25px}.dash-hero-art i:nth-of-type(2){transform:translate(-27px,27px)}.dash-hero-art i:nth-of-type(3){transform:translate(-54px,54px)}.dash-hero-art span{position:absolute;right:45px;top:75px;font-size:96px;font-weight:300;color:#93b17f}.dashboard .card{border:1px solid #e2e8df;border-radius:18px;box-shadow:none;margin:0;padding:24px}.dash-cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.dash-cardhead h2{font-size:17px;margin:0}.dash-cardhead>span{font-size:12px;color:#859087}.dash-week-total{display:flex;gap:10px;align-items:baseline;margin-top:22px}.dash-week-total b{font-size:40px;font-weight:500}.dash-week-total span{font-size:12px;color:#7a897f}.dash-bars{display:flex;justify-content:space-between;align-items:flex-end;height:130px;gap:12px}.dash-bars>div{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1}.dash-bars i{display:block;width:100%;max-width:29px;min-height:3px;border-radius:5px;background:#dfe8d8}.dash-bars i.today{background:#55764f}.dash-bars span,.dash-bars small{font-size:11px;color:#839080}.dash-metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e2e8df;background:#fff;border-radius:16px;margin:20px 0 28px;padding:20px 0}.dash-metrics>div{display:flex;flex-direction:column;gap:10px;padding:0 26px;border-right:1px solid #e8ede5}.dash-metrics>div:last-child{border:0}.dash-metrics span{font-size:12px;color:#7e8b81}.dash-metrics strong{font-size:28px;line-height:1.2;font-weight:500;color:#294331}.dash-bottom{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px;align-items:start}.dash-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dash-subject{padding:18px;background:#f8faf6;border:1px solid #e9eee5;border-radius:13px}.dash-subject-title{display:flex;align-items:center;gap:10px;margin-bottom:20px}.dash-subject-title>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:white;background:var(--subject-color);font-size:14px}.dash-subject-title b{font-size:15px}.dash-subject-title button{margin-left:auto;white-space:nowrap;font-size:12px;padding:0}.dash-subbar{margin:12px 0 0}.dash-subbar>div{display:flex;justify-content:space-between;font-size:11px;color:#7d887c;margin-bottom:6px}.dash-subbar b{color:#506748;font-size:11px}.dash-subbar progress{width:100%;height:5px;display:block;border:0;border-radius:9px;overflow:hidden;accent-color:#6f8e5c}.dash-subbar progress::-webkit-progress-bar{background:#e8eee2}.dash-subbar progress::-webkit-progress-value{background:#799666;border-radius:9px}.dash-side{display:grid;gap:18px}.dash-actions h2{font-size:20px;margin:12px 0 10px}.dash-actions>button{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;border:0;border-radius:0;border-bottom:1px solid #e7ece3;background:transparent;padding:18px 0;font-size:14px}.dash-actions>button:last-child{border:0;padding-bottom:0}.dash-actions small{display:block;font-size:11px;color:#869080;line-height:1.6;margin-top:7px}.dash-insight{padding:24px;border-radius:18px;background:#eaf0e2}.dash-insight>span{font-size:10px;letter-spacing:2px;color:#6d8460}.dash-insight p{font-size:14px;line-height:1.9;color:#4c6544;margin:12px 0 0}.dashboard .dash-recent{margin-top:24px}.dash-record{display:flex;gap:14px;align-items:center;border:0;border-bottom:1px solid #edf0e9;background:transparent;border-radius:0;padding:15px 0;width:100%;text-align:left}.dash-record:last-child{border:0}.dash-record-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#edf2e7;color:#6b8658;flex-shrink:0}.dash-record-title{min-width:0;flex:1}.dash-record-title b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.dash-record-title small{display:block;color:#8a9488;font-size:11px;margin-top:6px}.dash-record-score{font-size:12px;color:#6e8064;white-space:nowrap}.dash-empty,.dash-loading{padding:35px 15px;text-align:center;font-size:14px;color:#82907c}.dash-empty p{font-size:12px;line-height:1.8}.dash-heading .dash-kicker{font-size:10px}.dashboard button:focus-visible{outline:2px solid #749665;outline-offset:4px}@media(max-width:1050px){.dash-main,.dash-bottom{grid-template-columns:1fr}.dash-week{display:none}.dash-side{grid-template-columns:1fr 1fr}.dash-hero h2{max-width:82%}}@media(max-width:650px){.dash-heading{display:block}.dash-heading h1{font-size:24px}.dash-date{display:block;margin-top:12px}.dash-hero{padding:24px}.dash-hero h2{font-size:24px;max-width:100%}.dash-hero p{max-width:90%}.dash-metrics{grid-template-columns:repeat(2,1fr);gap:22px;padding:20px 0}.dash-metrics>div{padding:0 20px}.dash-metrics>div:nth-child(2){border:0}.dash-metrics strong{font-size:25px}.dash-subjects,.dash-side{grid-template-columns:1fr}.dashboard .card{padding:20px}.dash-hero-art{opacity:.18}.dash-record-title b{font-size:12px}}

.dash-metrics:has(.dash-metric-link){grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.dash-metric-link{display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;background:#f7faf5;border:1px solid #e0e8db;border-radius:12px;padding:20px;cursor:pointer}.dash-metric-link:hover{background:#eaf2e4;border-color:#739165}.dash-metric-link:focus-visible{outline:3px solid #3467a0;outline-offset:2px}.manager-contact{margin-top:20px;padding:16px 20px;border-top:1px solid #dce4d8;display:flex;flex-direction:column;gap:8px;font-size:13px}.manager-contact a{color:inherit;text-decoration:underline}.manager-contact b{font-size:11px;color:#627566}.manager-contact .link{text-align:left;padding:0}@media(max-width:650px){.dash-metrics:has(.dash-metric-link){grid-template-columns:repeat(2,minmax(0,1fr))}.dash-metric-link{padding:16px}.manager-contact{margin:12px 0}}

.course-credit{font-size:12px;line-height:1.8;margin:16px 0 0;color:#64766a}
aside{overflow-y:auto}.manager-contact{flex-shrink:0}

/* A calm, cohesive workspace and course signature. */
aside{padding:26px 18px 18px;background:linear-gradient(180deg,#fff 0%,#fafbf7 100%);scrollbar-width:thin;scrollbar-color:#d7dfd1 transparent}
nav button{padding:10px 13px;margin:3px 0;border-radius:10px;transition:background .18s,color .18s}nav button:hover{background:#f0f4eb}nav button.active{background:#e7efdf;box-shadow:inset 3px 0 #547650}
.navlabel{margin:28px 13px 13px;letter-spacing:1px}.brand{gap:8px;font-size:23px;letter-spacing:2px}.brand small{letter-spacing:1.7px}
.asidefoot{padding:0;margin-top:auto;background:#fff;border:1px solid #e1e8dc;border-radius:16px;overflow:hidden;flex-shrink:0;box-shadow:0 6px 24px #26412a06}
.sidebar-motto{position:relative;padding:19px 16px 17px;background:linear-gradient(135deg,#274936,#355b40);color:#f4f4dc;overflow:hidden}.sidebar-motto:after{content:"";position:absolute;width:105px;height:105px;border:1px solid #b9d39a35;border-radius:50%;right:-47px;top:-32px}.sidebar-eyebrow{display:block;font-size:8px;letter-spacing:2.1px;color:#b9ceab;margin-bottom:10px}.sidebar-motto b{display:block;font-size:12px;line-height:2;font-weight:500;white-space:nowrap}.motto-line{display:block;width:25px;height:2px;background:#c4cf99;margin-top:12px}
.course-credit{margin:0;padding:14px 16px 13px;color:#7b897b;font-size:10px;line-height:1.7}.course-label{font-size:9px;letter-spacing:2px;color:#8b967d}.course-credit p{margin:5px 0 7px;font-size:13px;font-weight:600;line-height:1.65;letter-spacing:.5px;color:#3f5543}.course-credit>span:last-child{white-space:nowrap;font-size:10px}
.asidefoot .manager-contact{margin:0 15px;padding:11px 0 14px;border-top:1px solid #e8ece2;gap:4px;font-size:12px}.contact-heading{display:flex;justify-content:space-between;align-items:center}.manager-contact .contact-heading b{font-size:9px;font-weight:500;letter-spacing:1px;color:#8a9685}.contact-edit{border:0;background:#f0f4e9;color:#58704d;width:23px;height:23px;line-height:1;padding:0;border-radius:7px;font-size:15px}.contact-edit:hover{background:#e0ead5}.contact-edit:focus-visible{outline:2px solid #547650;outline-offset:2px}.contact-name{color:#425744;font-weight:600}.asidefoot .manager-contact a{font-size:14px;letter-spacing:.6px;font-variant-numeric:tabular-nums;color:#3b5c42;text-decoration:none}.asidefoot .manager-contact a:hover{text-decoration:underline}
.dashboard{padding-bottom:12px}.dash-heading{margin-bottom:26px}.dash-heading h1{font-weight:600;line-height:1.5}.dash-date{padding:10px 14px;border:1px solid #e3e8dc;border-radius:30px;background:#ffffffb3;font-size:12px}.dash-hero{background:radial-gradient(ellipse at 95% 5%,#57714b70,transparent 62%),linear-gradient(125deg,#203c2e,#36543b);box-shadow:0 12px 28px #29442b12}.dash-primary{box-shadow:0 4px 12px #10271c1a}.dashboard .card{box-shadow:0 5px 22px #30442b04}.dash-metrics:has(.dash-metric-link){background:transparent;border:0;padding:0;gap:14px;margin:22px 0 28px}.dash-metric-link{background:#fff;border:1px solid #e3e9dd;padding:21px 23px;border-radius:15px;position:relative;box-shadow:0 3px 16px #30442b04}.dash-metric-link:after{content:"↗";position:absolute;right:19px;top:18px;font-size:15px;color:#a3b296}.dash-metric-link strong{font-size:31px;font-weight:550}.dash-metric-link:hover{transform:translateY(-2px);background:#fbfdf8;box-shadow:0 8px 24px #30442b0b}.dash-subject{background:#fafbf7}.dash-insight{background:linear-gradient(135deg,#eaf0e2,#f2f4e9)}
@media(min-width:651px) and (max-height:900px){aside{padding-top:20px}.navlabel{margin-top:20px;margin-bottom:9px}nav button{padding-top:8px;padding-bottom:8px;margin:2px 0}.sidebar-motto{padding:13px 16px}.sidebar-eyebrow{margin-bottom:6px}.motto-line{margin-top:8px}.course-credit{padding:10px 16px}.course-credit p{margin:3px 0 5px}.asidefoot .manager-contact{padding:8px 0 11px}}
@media(min-width:651px) and (max-width:1000px){aside{width:218px}.main{margin-left:218px}.brand{font-size:22px}}
@media(max-width:650px){aside{padding:16px;background:#fff}.asidefoot{display:block;margin-top:14px;border-radius:12px}.sidebar-motto,.course-credit{display:none}.asidefoot .manager-contact{padding:10px 0;margin:0 14px;border:0;display:grid;grid-template-columns:1fr auto;column-gap:12px}.contact-heading{grid-column:1/-1}.contact-name{align-self:center}.dash-date{display:inline-block;margin-top:14px}.dash-metric-link{padding:17px}.dash-metric-link strong{font-size:26px}nav button{padding:10px}.dash-hero{border-radius:16px}}
@media(prefers-reduced-motion:reduce){nav button,.dash-metric-link{transition:none}.dash-metric-link:hover{transform:none}}
.dash-metric-link:after{content:none}.asidefoot .contact-edit{min-height:23px;height:23px;min-width:23px;flex-shrink:0}
