.t-ok{color:var(--green)}.t-no{color:var(--red)}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.tile{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);color:inherit;gap:2px;padding:12px 14px;text-decoration:none;display:grid}.tile:hover{border-color:var(--blue)}.tile-num{letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1.1}.tile-num.is-ok{color:var(--green)}.tile-num.is-no{color:var(--red)}.tile-num.is-blue{color:var(--blue-deep)}.tile-label{color:var(--ink-2);font-size:13px}.tile-sub{color:var(--ink-3);font-size:12.5px}.meter{align-items:center;gap:10px;width:100%;min-width:0;display:inline-flex}.meter-bar{border-radius:var(--radius);background:var(--paper-3);flex:auto;min-width:60px;height:6px;overflow:hidden}.meter-bar span{transform-origin:0;background:var(--blue);width:100%;height:100%;display:block}.meter-bar--green span{background:var(--green)}.meter-num{font-variant-numeric:tabular-nums;color:var(--ink);flex:none;font-size:14px;font-weight:700}.meter-den{color:var(--ink-3);font-weight:500}.spill{border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;height:24px;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.spill--done{background:var(--green-tint);color:var(--green);border-color:var(--green-tint)}.spill--progress{background:var(--blue-tint);color:var(--blue-deep);border-color:var(--blue-tint-2)}.spill--idle{background:var(--paper-3);color:var(--ink-3);border-color:var(--rule-soft)}.spill--late{background:var(--red-tint);color:var(--red);border-color:var(--red-tint)}.asg{gap:12px;display:grid}.asg-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;display:flex}.asg-head h2{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700;line-height:1.25}.asg-meta{color:var(--ink-3);font-size:13px}.asg-due{font-size:13px;font-weight:600}.asg-due--late{color:var(--red)}.asg-due--soon{color:var(--ink-2)}.asg-due--muted{color:var(--ink-3)}.asg-instr{color:var(--ink-2);max-width:70ch;margin:0;font-size:14.5px}.asg-line{color:var(--ink);font-size:15px}.asg-items{gap:8px;margin:0;padding:0;list-style:none;display:grid}.asg-item{border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--paper);color:inherit;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:10px 12px;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.asg-item:hover{border-color:var(--blue);background:var(--blue-tint)}.asg-item-title{font-size:14.5px;font-weight:600;line-height:1.3}.asg-item-sub{color:var(--ink-3);font-size:12.5px}.asg-item-right{flex-direction:column;align-items:flex-end;gap:4px;min-width:150px;display:flex}.asg-item-right .meter{width:150px}.asg-item-right small{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}@media (max-width:639px){.asg-item{grid-template-columns:1fr}.asg-item-right{align-items:flex-start}.asg-item-right .meter{width:100%}}.ptable{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.ptable th{text-align:left;letter-spacing:.02em;color:var(--ink-3);border-bottom:1px solid var(--rule);background:var(--paper-2);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:700}.ptable td{border-bottom:1px solid var(--rule-soft);vertical-align:middle;padding:10px}.ptable tr:last-child td{border-bottom:0}.ptable td.num,.ptable th.num{text-align:right;font-variant-numeric:tabular-nums}.ptable .cell-label{display:none}@media (max-width:767px){.ptable,.ptable tbody,.ptable tr,.ptable td{display:block}.ptable thead{display:none}.ptable tr{border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--paper);margin-bottom:8px;padding:10px 12px}.ptable td{border-bottom:0;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.ptable td.num{text-align:right}.ptable td.cell-main{border-bottom:1px solid var(--rule-soft);margin-bottom:4px;padding-bottom:6px;display:block}.ptable .cell-label{color:var(--ink-3);font-size:12px;font-weight:600;display:inline}.ptable .meter{width:60%}}.smatrix{background:var(--rule-soft);border:1px solid var(--rule-soft);border-radius:var(--radius);gap:1px;font-size:13px;display:grid;overflow:hidden}.smatrix>*{background:var(--paper);min-width:0;padding:8px 10px}.smatrix .mh{background:var(--paper-2);color:var(--ink-3);font-size:12px;font-weight:700}.smatrix .mrow{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.smatrix .mcell{text-align:center;font-variant-numeric:tabular-nums}.smatrix .mcell.c-done{background:var(--green-tint);color:var(--green);font-weight:700}.smatrix .mcell.c-part{background:var(--blue-tint);color:var(--blue-deep);font-weight:700}.smatrix .mcell.c-none{color:var(--ink-3)}.smatrix-wrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.smatrix{min-width:max-content}.mcell:before{content:attr(data-student);display:none}@media (max-width:767px){.smatrix{flex-wrap:wrap;gap:1px;min-width:0;display:flex}.smatrix .mh,.smatrix .mh.mcell{display:none}.smatrix .mrow{white-space:normal;flex:100%;padding-bottom:4px}.smatrix .mcell{flex-direction:column;flex:calc(25% - 1px);align-items:center;gap:2px;min-width:72px;padding:6px 4px 8px;display:flex}.smatrix .mcell:before{color:var(--ink-3);font-size:11px;font-weight:600;display:block}.smatrix .mcell.c-done:before{color:var(--green)}.smatrix .mcell.c-part:before{color:var(--blue-deep)}}.cell-val{white-space:nowrap}.alist{gap:10px;display:grid}.arow{border-top:1px dashed var(--rule-soft);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:8px 0;display:grid}.arow:first-child{border-top:0}.arow-label{border-radius:var(--radius);background:var(--blue-tint);min-width:26px;height:26px;color:var(--blue-deep);place-items:center;font-size:12.5px;font-weight:800;display:inline-grid}.arow-prompt{color:var(--ink-2);min-width:0;font-size:14.5px}.arow-vals{flex-wrap:wrap;gap:6px;display:flex}.aval{border-radius:var(--radius);border:1.5px solid var(--rule);background:var(--paper);min-height:30px;color:var(--ink);align-items:center;gap:6px;padding:2px 10px;font:600 14px ui-monospace,Menlo,monospace;display:inline-flex}.aval--ok{border-color:var(--green);background:var(--green-tint);color:var(--green)}.aval--no{border-color:var(--red);background:var(--red-tint);color:var(--red)}.aval--clip{text-overflow:ellipsis;white-space:nowrap;max-width:26ch;display:inline-block;overflow:hidden}.aval--empty{color:var(--ink-3);font-family:inherit;font-style:italic;font-weight:500}.aval-word{font:700 12px var(--font-sans)}@media (max-width:639px){.arow{grid-template-columns:30px minmax(0,1fr)}.arow-vals{grid-column:2}}.fld{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);min-height:44px;color:var(--ink);padding:8px 12px;font-size:15px}.fld:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--blue)}.fld[aria-invalid=true]{border-color:var(--red)}textarea.fld{resize:vertical;min-height:64px}.pfilter{background:var(--paper);border:1px solid var(--rule-soft);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 16px;padding:10px 14px;font-size:13px;display:flex}.pfilter-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pfilter-label{color:var(--ink-3);margin-right:2px;font-weight:600}.pchip{border-radius:var(--radius);border:1px solid var(--rule);background:var(--paper);min-height:36px;color:var(--ink-2);align-items:center;gap:5px;padding:0 10px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.pchip:hover{background:var(--paper-2);border-color:var(--blue)}.pchip[aria-current=true],.pchip[aria-pressed=true]{background:var(--blue-tint);border-color:var(--blue);color:var(--blue-deep)}.pchip small{color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}.pchip[aria-current=true] small,.pchip[aria-pressed=true] small{color:var(--blue-deep)}.pfilter-count{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto}.pfilter-reset{color:var(--blue-deep);font-weight:600;text-decoration:none}.pfilter-reset:hover{text-decoration:underline}@media (max-width:767px){.pfilter{gap:8px 10px;padding:8px 12px}.pfilter-count{width:100%;margin-left:0}}.pchip.is-on{background:var(--blue-tint);border-color:var(--blue);color:var(--blue-deep)}.crumb-link{padding:10px 0;display:inline-block}@media (max-width:767px){.ptable td a{padding:9px 0;display:inline-block}.ptable td.cell-main a{padding:6px 0}#h-wrong~ul a,#h-reviews~ul a{padding-block:6px}}.week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;margin-top:12px;display:grid}.week-col{grid-template-rows:18px 120px auto auto;justify-items:center;gap:4px;display:grid}.week-num{color:var(--green);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.week-track{background:var(--paper-2);border-radius:var(--radius);width:100%;max-width:44px;height:100%;position:relative;overflow:hidden}.week-ghost,.week-bar{border-radius:var(--radius) var(--radius) 0 0;transform-origin:bottom;animation:.42s cubic-bezier(.16,1,.3,1) both week-grow;animation-delay:calc(var(--i,0) * var(--stagger));position:absolute;bottom:0;left:0;right:0}.week-ghost{background:var(--blue-tint-2)}.week-bar{background:var(--green)}@keyframes week-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.week-label{color:var(--ink-2);font-size:12.5px;font-weight:600}.week-date{color:var(--ink-3);font-size:11.5px}.week-col.is-today .week-label{color:var(--blue-deep)}.skill-chip{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);max-width:100%;color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:4px;padding:6px 10px;font-size:13.5px;text-decoration:none;display:inline-flex}.skill-chip:hover{border-color:var(--blue)}.skill-chip small{color:var(--ink-3)}.skill-chip.is-ok{border-color:var(--green-tint);background:var(--green-tint)}.skill-chip.is-no{border-color:var(--red-tint);background:var(--red-tint)}.skill-chip.is-no small{color:var(--red)}.rq{gap:12px;display:grid}.rq-count{color:var(--ink-2);margin:0;font-size:13.5px}.rcard{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 18px;scroll-margin-top:72px}.rcard.is-collapsed{background:var(--paper-2);box-shadow:none;padding:10px 18px}.rcard:focus-within{border-color:var(--blue)}.rcard-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.rcard-who{flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:15px;display:flex}.rcard-where{color:var(--ink-2);font-size:13px}.rcard-code{color:var(--ink-2);font:600 12px ui-monospace,Menlo,monospace}.rcard-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rverdict{color:var(--ink-2);align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.rverdict.is-ok{color:var(--green)}.rverdict.is-no{color:var(--red)}.rcard-body{border-top:1px solid var(--rule-soft);gap:14px 24px;margin-top:12px;padding-top:12px;display:grid}@media (min-width:1024px){.rcard-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}.rcol{align-content:start;gap:10px;min-width:0;display:grid}.rcol--model{background:var(--paper-2);border-radius:var(--radius);padding:10px 12px}.rq-stem{color:var(--ink);font-weight:600}.rq-prompt{color:var(--ink);font-size:15px}.rq-prompt .q-subpart-line{margin:0}.rq-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);cursor:default;font-size:12px;font-weight:700;display:block}summary.rq-label{cursor:pointer}.rq-answer{gap:6px;display:grid}.rq-val{border:1.5px solid var(--rule);border-radius:var(--radius);background:var(--paper);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);padding:8px 12px;font:500 15px/1.5 ui-monospace,Menlo,monospace}.rq-val-label{font:600 12px var(--font-sans);color:var(--ink-3);margin-bottom:2px;display:block}.rq-self{color:var(--ink-3);font-size:12.5px}.rq-notes p{background:var(--paper-2);border-radius:var(--radius);white-space:pre-wrap;color:var(--ink-2);margin:4px 0 0;padding:8px 12px;font-size:14px}.rq-model{color:var(--ink);margin-top:6px;font-size:14.5px;line-height:1.55}.rq-model .q-subpart-card{border-top:1px dashed var(--rule-soft);gap:8px;padding:6px 0;display:flex}.rq-model .q-subpart-card:first-child{border-top:0}.rq-model .q-subpart-badge{color:var(--blue-deep);font-weight:800}.rcard-controls{border-top:1px solid var(--rule-soft);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;padding-top:12px;display:flex}.rseg{border:1px solid var(--rule);border-radius:var(--radius);display:inline-flex;overflow:hidden}.rseg-btn{background:var(--paper);min-height:40px;color:var(--ink-2);font:600 14px var(--font-sans);cursor:pointer;border:0;align-items:center;gap:6px;padding:0 14px;transition:background-color .15s,color .15s;display:inline-flex}.rseg-btn+.rseg-btn{border-left:1px solid var(--rule)}.rseg-btn:hover{background:var(--paper-2)}.rseg-btn--ok.is-on{background:var(--green-tint);color:var(--green)}.rseg-btn--no.is-on{background:var(--red-tint);color:var(--red)}.rmarks{color:var(--ink-2);align-items:center;gap:6px;font-size:13.5px;display:inline-flex}.rmarks .fld{text-align:center;width:72px;min-height:40px}.rcomment{flex:260px;min-height:40px}.ractions{align-items:center;gap:10px;margin-left:auto;display:flex}.btn-primary{border-radius:var(--radius);border:1px solid var(--blue);background:var(--blue);color:#fff;min-height:40px;font:600 14px var(--font-sans);cursor:pointer;justify-content:center;align-items:center;padding:0 14px;transition:background-color .15s;display:inline-flex}.btn-primary:hover{background:var(--blue-deep);border-color:var(--blue-deep)}.btn-primary:disabled{opacity:.5;cursor:default}.rerror{color:var(--red);flex-basis:100%;margin:0;font-size:13.5px}@media (max-width:639px){.rcard{padding:12px 14px}.rcard-controls{gap:10px}.rseg{width:100%}.rseg-btn{flex:1;justify-content:center;min-height:44px}.rcomment{flex-basis:100%;min-height:44px}.ractions{width:100%;margin-left:0}.ractions .btn-primary{flex:1;min-height:44px}.rcol--model details:not([open]) summary{padding:4px 0}}.table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;margin:6px 0;overflow-x:auto}.katex-display{max-width:100%;overflow:auto hidden}.rcard .katex,.arow-prompt .katex,.rcard .katex .base,.arow-prompt .katex .base,.rcard .katex .katex-base,.arow-prompt .katex .katex-base{white-space:normal;overflow-wrap:anywhere;width:auto}.rq-stem img,.rq-prompt img,.rq-model img,.arow-prompt img{max-width:100%;height:auto}.ps-block{break-inside:avoid;page-break-inside:avoid;margin:0 0 16px}.ps-h{font:700 14px/1.3 var(--font-sans);border-bottom:1px solid var(--ink);margin:0 0 6px;padding-bottom:4px}.ps-tiles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.ps-tiles div{border:1px solid var(--rule);border-radius:var(--radius);gap:2px;padding:8px 10px;display:grid}.ps-tiles b{font:800 22px/1.1 var(--font-sans);font-variant-numeric:tabular-nums}.ps-tiles span{font:400 12px/1.3 var(--font-sans);color:var(--ink-2)}.ps-table{border-collapse:collapse;width:100%;font:400 13px/1.4 var(--font-sans)}.ps-table th,.ps-table td{border:1px solid var(--rule);text-align:center;vertical-align:middle;padding:5px 8px}.ps-table th:first-child{text-align:left;font-weight:600}.ps-table thead th{background:var(--paper-2);font-weight:700}.ps-bar{background:var(--green);border-radius:var(--radius);max-width:100%;height:6px;margin:0 auto 3px;display:block}.ps-list{font:400 13.5px/1.5 var(--font-sans);gap:4px;margin:0;padding-left:18px;display:grid}.ps-list span{color:var(--ink-2)}@media (max-width:640px){.ps-tiles{grid-template-columns:repeat(2,1fr)}.ps-table{table-layout:fixed;font-size:12px}.ps-table th:first-child{overflow-wrap:anywhere;width:36%}.ps-table th,.ps-table td{padding:4px 5px}}@media print{.ps-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#000}.ps-tiles div,.ps-table th,.ps-table td{border-color:#000}.ps-table thead th{background:#eee!important}}.habits{gap:16px;display:grid}.rev-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.rev-title{margin:0;font-size:16px;font-weight:700}.rev-sub{color:var(--ink-2);margin:2px 0 0;font-size:14.5px}.streak{color:var(--ink);margin:0;font-size:15px}.streak strong{color:var(--green);font-size:18px}.streak small{color:var(--ink-3);margin-left:6px;font-size:13px}.goal{gap:6px;display:grid}.goal-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;font-size:14.5px;display:flex}.goal-select{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);min-height:40px;color:var(--ink);font:500 14px var(--font-sans);padding:0 10px}.habits>*+*{border-top:1px solid var(--rule-soft);padding-top:14px}.summary-primary{border-radius:var(--radius);background:var(--blue);border:1px solid var(--blue);color:#fff;justify-content:center;align-items:center;min-height:44px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.summary-primary:hover{background:var(--blue-deep)}.me-actions{flex-wrap:wrap;gap:8px;display:flex}.me-actions>a{white-space:nowrap}@media (max-width:520px){.me-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.me-actions>a{justify-content:center}.me-actions>a:last-child{order:-1;grid-column:1/-1}}.streak-flame{vertical-align:-2px;width:16px;height:16px;color:var(--green);transform-origin:50% 90%;animation:flame-pop var(--dur-base) var(--ease-out) both;margin-right:4px;display:inline-block}@keyframes flame-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.streak-flame,.week-ghost,.week-bar{animation:none}}
