:root{--ink:#283c36;--muted:#707b72;--green:#355e4c;--line:#e3e7df;--paper:#fafbf7}
[hidden]{display:none!important}
.assessment-type-label{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.4px;color:var(--green);background:var(--soft,#f5f7f1);border:1px solid var(--line);border-radius:5px;padding:4px 7px;margin-bottom:10px}.event-details{display:block;flex-basis:100%;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
#assignmentDetails .dialog-actions{flex-wrap:wrap}#deleteAssignment{margin-right:auto}
.assignment-card[data-edit-assignment]{cursor:pointer}.assignment-card[data-edit-assignment]:hover{border-color:#97ab8a;box-shadow:0 3px 12px #283c3610}.assignment-card[data-edit-assignment]:focus-visible{outline:2px solid var(--green);outline-offset:2px}.assignment-card h4 button{font:inherit;color:inherit;text-align:left;background:none;padding:0;width:100%}.card-checklist-progress{font-size:11px;color:var(--muted);margin:12px 0 0}.brief-link{color:var(--green);font-size:12px}.assignment-checklist-section{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.assignment-checklist-section .panel-head{margin-bottom:10px}.assignment-checklist-section h3{font-size:15px}.checklist-item{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;font-size:13px}.checklist-item input{width:17px;height:17px;accent-color:var(--green)}.checklist-item span{flex:1;overflow-wrap:anywhere}.checked-title{text-decoration:line-through;color:var(--muted)}.subtask-add{display:flex;gap:8px;margin-top:15px}.subtask-add input{min-width:0}.backup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.backup-actions button{font-size:12px}.backup-actions p{flex-basis:100%;font-size:11px;color:var(--muted);margin:2px 0}#assignmentDetails{max-height:90vh;overflow-y:auto;width:min(560px,calc(100% - 32px))}
#info{background:#f7f9f3;border:1px solid var(--line);padding:18px;border-radius:10px;color:var(--ink)}
.grade-guide-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;font-size:12px}.grade-guide-heading strong{font-weight:600}.grade-guide-heading>span{color:var(--muted);font-size:11px}
.grade-guide{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:8px}
.grade-guide li{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:12px 5px}
.grade-guide-letter{font-size:16px;font-weight:600;color:var(--green);line-height:1.2}.grade-guide-range{font-size:10px;color:var(--muted);white-space:nowrap}.grade-guide-points{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.grade-guide-points small{font-size:10px;font-weight:400;color:var(--muted)}
#view-assignments .container.single>div{min-width:0}
#view-assignments .card.panel{background:transparent;border:0;padding:0}
#assignmentRows{display:flex;align-items:flex-start;gap:18px;overflow-x:auto;padding:5px 2px 20px;scroll-snap-type:x proximity}
.module-assignments{flex:1 0 260px;max-width:340px;min-width:0;border:1px solid var(--line);border-radius:12px;background:#edf1e7;padding:12px;scroll-snap-align:start}
.module-assignments>.panel-head{padding:6px 5px 16px;margin:0;align-items:flex-start}
.module-assignments h3{font-size:14px;margin:0;line-height:1.5;overflow-wrap:anywhere}
.module-count{font-size:12px;color:var(--muted);background:#e1e7d9;min-width:23px;text-align:center;padding:3px 6px;border-radius:5px}
.module-cards{display:flex;flex-direction:column;gap:10px}
.assignment-card{padding:16px;background:#fff;border:1px solid #dfe5d8;border-radius:8px;box-shadow:0 2px 3px #283c3604}
.card-accent{display:block;width:34px;height:5px;background:#829674;border-radius:4px;margin-bottom:12px}
.module-assignments:nth-child(4n+2) .card-accent{background:#a08bb5}.module-assignments:nth-child(4n+3) .card-accent{background:#c2a274}.module-assignments:nth-child(4n+4) .card-accent{background:#7c9da6}
.assignment-card h4{font-weight:500;font-size:14px;line-height:1.5;margin:0 0 13px;overflow-wrap:anywhere}
.assignment-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.assignment-weight{font-size:11px;color:var(--muted)}
.assignment-card .status-select{width:100%;background:#fafbf7}
.assignment-card.submitted{background:#f7f9f3}.assignment-card.submitted h4{color:var(--muted)}
.module-add{display:block;text-align:left;width:100%;background:transparent;color:var(--green);padding:13px 5px 3px;font-size:13px}.module-add:hover{background:#e2e9db}
.module-empty{font-size:12px;color:var(--muted);padding:10px 5px;margin:0}
#assignmentRows>.empty-state{flex:1}
@media(max-width:700px){.module-assignments{flex:0 0 85%;max-width:310px}}

body{background:var(--paper);color:var(--ink);font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;padding-left:230px}
body>header{position:fixed;inset:0 auto 0 0;width:230px;background:#f0f3ec;color:var(--ink);padding:38px 22px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:38px;border-right:1px solid var(--line)}
header h1{font-family:Georgia,serif;font-size:29px;font-weight:400;letter-spacing:-1px}header p{font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-top:12px}
.tabs{flex-direction:column;background:none;padding:0;gap:7px}.tab{text-align:left;color:#6d786f;padding:13px 16px;font-weight:500;border-radius:7px}.tab:hover{background:#e6ebe1}.tab.active{background:#dfe7d9;color:#284b39}.nav-icon{display:inline-block;width:29px;font-size:18px}.account{margin-top:auto;display:flex;flex-wrap:wrap;font-size:12px;color:var(--muted)}.account-btn{background:white;color:var(--green);border:1px solid var(--line)}
.workspace-bar{margin:0 42px;padding:25px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.workspace-bar span:first-child{color:var(--green)}
.container{max-width:1400px;margin:32px auto;padding:0 42px;gap:24px;grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.container.single{grid-template-columns:minmax(0,1fr)}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);text-transform:uppercase;font-weight:600;margin-bottom:13px}.page-heading h2{font-family:Georgia,serif;font-weight:400;font-size:42px;letter-spacing:-1.5px;margin:0 0 10px}.page-heading p{color:var(--muted);margin:0;line-height:1.6}
.card{border:1px solid var(--line);box-shadow:none;border-radius:12px}.main-card,.planner{padding:26px}h2{font-size:21px;font-weight:600}h3{font-weight:600}.subtitle,.sub,.hint,.outof{color:var(--muted)}
button{font-weight:500;transition:background .15s}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}.primary{background:var(--green);color:white}.add,.reset{color:var(--green);border-color:#cbd6c7}.primary:hover{background:#294c3c}input,select,textarea{color:var(--ink);border-color:#dce2d7;font-size:13px;background:#fff;border-radius:6px}input:focus,select:focus,textarea:focus{border-color:#7d9b7c;box-shadow:0 0 0 3px #dfe7d977}
.info,.outcome,.head,.comp-head,.planner-box{background:#f5f7f1;border-color:var(--line);color:#66756b}.row,.stats,.stat,.comp-row,.assess-head{border-color:var(--line)}.gpa{color:var(--green)}.circle{background:conic-gradient(#799679 var(--pct,0%),#edf0e8 0)}.message{background:#f0f5ec;border-color:#dfe7d9;color:var(--green)}
.overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.metric{padding:22px 24px}.metric-label{color:var(--muted);font-size:12px}.metric-value{font-family:Georgia,serif;font-size:35px;margin:13px 0 7px}.metric-foot{font-size:11px;color:var(--muted)}.metric:first-child{background:#eaf0e3;border-color:#dce5d3}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:24px}.panel{padding:25px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.panel-head h3{margin:0;font-size:17px}.text-button{padding:4px;background:none;color:var(--green);font-size:12px}.task-row{display:flex;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid #edf0e8}.task-row:last-child{border-bottom:0}.task-check{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}.task-body{flex:1;min-width:0}.task-title{font-weight:500;line-height:1.5;overflow-wrap:anywhere}.task-meta{font-size:11px;color:var(--muted);margin-top:5px;display:flex;gap:8px;flex-wrap:wrap}.task-row.done .task-title{text-decoration:line-through;color:var(--muted)}.pill{font-size:10px;padding:5px 9px;border-radius:5px;background:#eff2eb;color:#62745e;white-space:nowrap}.pill.late{color:#a25846;background:#fbefea}.pill.high{color:#9c783f;background:#f7f0df}.status-select{width:125px;font-size:11px;padding:8px}.empty-state{text-align:center;padding:35px 20px;color:var(--muted);line-height:1.7}.empty-state strong{display:block;color:var(--ink);font-weight:500;margin-bottom:5px}.quiet-note{margin-top:22px;padding:23px;background:#f1f3eb;border-radius:10px;color:#73806e;font-family:Georgia,serif;font-size:19px;line-height:1.5}.quiet-note small{display:block;font:11px 'Segoe UI',sans-serif;margin-top:12px;letter-spacing:1px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}.toolbar input{flex:1;min-width:180px}.toolbar select{width:auto}.filter-buttons{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.filter-buttons button{background:none;color:var(--muted);font-size:12px;padding:8px 12px}.filter-buttons button.selected{background:#e9eee2;color:var(--green)}
dialog{border:1px solid var(--line);border-radius:15px;padding:30px;width:min(500px,calc(100% - 32px));color:var(--ink);box-shadow:0 20px 80px #263b3326}dialog::backdrop{background:#25382d55;backdrop-filter:blur(3px)}dialog h2{font-family:Georgia,serif;font-size:29px;margin-bottom:22px}dialog label{display:block;font-size:12px;margin:15px 0}dialog label input,dialog label select,dialog label textarea{margin-top:7px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.assess-grid{gap:20px}.assess-card{padding:24px}.view[hidden]{display:none!important}
@media(min-width:1200px){#view-gpa .row{grid-template-columns:24px minmax(100px,1fr) 65px 75px 90px 45px 25px;gap:8px;padding:12px}#view-gpa .row input,#view-gpa .row select{padding:9px 6px}}
@media(max-width:1100px){body{padding-left:190px}body>header{width:190px;padding:30px 15px}.container{padding:0 24px;grid-template-columns:1fr}.workspace-bar{margin:0 24px}.overview-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.page-heading h2{font-size:36px}}
@media(max-width:700px){body{padding-left:0}body>header{position:static;width:100%;padding:20px;gap:18px;border-right:0;border-bottom:1px solid var(--line)}header p{display:none}.tabs{flex-direction:row;gap:4px}.tab{flex:1;text-align:center;padding:10px 5px;font-size:11px}.nav-icon{display:block;width:auto;margin-bottom:5px}.account{margin-top:0}.workspace-bar{padding:18px 0;margin:0 20px}.container{margin:25px auto;padding:0 20px}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading h2{font-size:34px}.overview-stats{gap:10px}.metric{padding:18px}.metric-value{font-size:30px}.panel{padding:20px}.task-row{gap:9px;flex-wrap:wrap}.status-select{width:113px}.main-card,.planner{padding:18px}.toolbar{gap:8px}.form-pair{gap:10px}}
