.grade-summary,.grade-legend{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin:0 0 1.25rem;color:var(--muted);font-size:.875rem}.grade-summary strong{color:var(--green);font-variant-numeric:tabular-nums}.gradebook-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:.8rem;background:var(--white); background: var(--light-dark(white, #1a2420));isolation:isolate}.gradebook{border-collapse:separate;border-spacing:0;min-width:1100px;width:100%;font-variant-numeric:tabular-nums;font-size:.875rem}.gradebook th,.gradebook td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.55rem .4rem;text-align:center;vertical-align:middle;min-width:3.5rem}.gradebook thead th{background:var(--mint);color:var(--green);font-size:.75rem;font-weight:650;position:sticky;top:0;z-index:2}.gradebook abbr{text-decoration:none}.gradebook .grade-name{position:sticky;left:0;z-index:1;text-align:left;width:14rem;min-width:14rem;max-width:14rem;background:var(--white); background: var(--light-dark(white, #1a2420));padding:.75rem 1rem;border-right:2px solid var(--line);overflow-wrap:anywhere;white-space:normal}.gradebook thead .grade-name{z-index:3;background:var(--mint)}.gradebook tbody tr:nth-child(even)>*{background:var(--bg)}.gradebook .grade-name small{display:block;font-size:.625rem;font-weight:400;color:var(--muted);margin-top:.2rem}.gradebook tbody .grade-name a{color:var(--ink)}.gradebook .grade-average{color:var(--green);font-weight:700;background:var(--mint);min-width:4.5rem}.gradebook tfoot th,.gradebook tfoot td{font-size:.75rem;font-weight:650;background:var(--mint);color:var(--green);border-bottom:0}.gradebook tfoot .grade-name{background:var(--mint)}.grade-cell{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.125rem;min-height:2rem}.grade-value{display:inline-flex;align-items:center;justify-content:center;padding:.2rem;min-height:2rem;min-width:1.25rem;background:transparent;border:0;border-radius:.3rem;color:var(--green);font-size:1rem;box-shadow:none;line-height:1.2}.weight-50{font-weight:400}.weight-100{font-weight:550}.weight-150{font-weight:700}.weight-200{font-weight:900}.grade-value:focus-visible{outline:2px solid var(--green);outline-offset:1px}.grade-value[aria-expanded=true]{background:var(--mint)}.grade-legend{margin-top:1rem;font-size:.75rem}.grade-legend b{font-size:1rem;color:var(--green);margin-right:.3rem}.grade-popover{position:fixed;z-index:90;width:min(340px,calc(100vw - 24px));background:var(--white); background: var(--light-dark(white, #1a2420));border:1px solid var(--line);border-radius:.8rem;box-shadow:0 12px 40px #24352e26;padding:1rem;color:var(--ink)}.grade-popover[hidden]{display:none}.grade-popover>a{display:flex;align-items:flex-start;gap:1rem;color:inherit;text-decoration:none;min-height:44px}.grade-popover>a>span{display:flex;flex-direction:column;gap:.45rem;min-width:0;padding-right:1.25rem;font-size:.8125rem;overflow-wrap:anywhere}.grade-card-number{font-size:2.5rem;line-height:1;border-right:2px solid var(--green);padding-right:.8rem;color:var(--green)}.grade-card-action{color:var(--green);font-weight:650;margin-top:.25rem}.grade-card-close{position:absolute;right:.15rem;top:.15rem;min-height:36px;min-width:36px;padding:.2rem;font-size:1.25rem}.grade-edit{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.grade-edit label{min-width:9rem;margin:0}.grade-edit button{margin:0}.grade-review-list{display:grid;gap:0}.grade-review-item{display:flex;align-items:start;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1rem 0;border-top:1px solid var(--line)}.grade-review-item>div{flex:1 1 12rem}.grade-review-item>form{flex:0 1 17rem}.grade-review-item .grade-edit{flex-basis:19rem}.grade-review-item p:last-child{margin-bottom:0}.grade-review-item select{min-width:7rem}
@media(hover:hover) and (pointer:fine){.grade-value:hover{background:var(--mint);color:var(--green-hover)}.gradebook tbody tr:hover>*{background:var(--mint)}}
@media(pointer:coarse){.grade-value{min-width:44px;min-height:44px}.grade-cell{gap:.25rem}}
@media(max-width:600px){.gradebook .grade-name{width:9.5rem;min-width:9.5rem;max-width:9.5rem;padding:.65rem .6rem}.gradebook{min-width:1020px}.grade-summary{gap:.6rem 1rem}.grade-edit{align-items:stretch}.grade-edit button{align-self:end}.grade-review-item>form{flex-basis:100%}}
/* Override shared action-button states so small grade numerals stay legible. */
.gradebook .grade-value[aria-expanded=true]{background:var(--mint);color:var(--green)}
.gradebook .grade-value:active{background:var(--green);color:var(--white); color: var(--light-dark(white, #10201a));}
@media(hover:hover) and (pointer:fine){.gradebook .grade-value:hover{background:var(--mint);color:var(--green-hover)}}
.gradebook .grade-semester{background:var(--mint);color:var(--green);font-weight:700;border-inline:1px solid #b8cfc1; border-inline: 1px solid light-dark(#b8cfc1, #304037);min-width:4rem}
.grade-options{width:min(30rem,calc(100vw - 2rem));max-height:calc(100svh - 2rem);overflow:auto;padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:var(--white); background: var(--light-dark(white, #1a2420));color:var(--ink);box-shadow:0 18px 70px #24352e33}
.grade-options::backdrop{background:#12271e80}.grade-options .section-head{align-items:center;flex-wrap:nowrap}.grade-options .section-head h2{margin:0}.grade-options .actions{justify-content:flex-end}
