:root{--score-0:#bbb;--score-1:#d32f2f;--score-2:#c07a00;--score-3:#2e7d32;--score-4:#1565c0;--score-1-bg:#fee2e2;--score-1-text:#991b1b;--score-2-bg:#fef3c7;--score-2-text:#92400e;--score-3-bg:#bbf7d0;--score-3-text:#166534;--score-4-bg:#dbeafe;--score-4-text:#1e40af;--font-base:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--bg:#f5f5f7;--bg-secondary:#ececf0;--surface:#fff;--surface-2:#e5e5ea;--surface-glass:#ffffffd1;--border:#d1d1d6;--border-2:#c7c7cc;--text:#1d1d1f;--text-1:#1d1d1f;--text-2:#636366;--text-3:#58585d;--active:#007aff;--active-light:#007aff14;--accent:#007aff;--accent-light:#007aff1a;--late:#ff9500;--priority:#ff3b30;--priority-light:#ff3b3014;--toolbar-bg-start:#f6f6f6;--toolbar-bg-end:#ececec;--divider-subtle:#0000000f;--divider-medium:#00000017;--divider-strong:#0000001f;--divider-heavy:#00000024;--overlay-hover:#0000000a;--overlay-pressed:#00000014;--btn-hover-blue:#06d;--toggle-hover-dark:#1a1a2e;--danger:#c62828;--iep-badge:#e08600;--mod-badge:#5856d6;--score-1-dark:#b71c1c;--score-2-dark:#a06800;--score-3-dark:#1b5e20;--score-4-dark:#0d47a1;--focus-banner-bg:#e8f0fe;--focus-banner-border:#c4d7f2;--section-hover:#f0ede4;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 8px 32px #0000001f, 0 4px 8px #0000000a;--text-2xs:.625rem;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.8125rem;--text-md:.875rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.5rem;--text-3xl:1.75rem;--text-4xl:2.25rem;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xs:4px;--radius-xl:20px;--ease-out:cubic-bezier(.25, .1, .25, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-micro:.15s;--duration-fast:.25s;--duration-normal:.35s;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.04em;--dock-h:52px;--toolbar-h:52px;--sidebar-w:240px;--z-navbar:50;--z-fab:100;--z-modal:200;--z-sheet:210;--z-toast:300;--z-banner:500;--z-popover:1000;--z-skip:9000;--z-loading:9500;--z-top:9900}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}html,body{overscroll-behavior-x:none;margin:0}body{font-family:var(--font-base);background:var(--bg);color:var(--text);font-size:var(--text-md);line-height:1.5}button,input,textarea,select{font:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--active);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--active);color:#fff;z-index:1000;border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:8px 16px;text-decoration:none;position:fixed;top:-100px;left:16px}.skip-link:focus{top:8px}.shell-loading{min-height:100vh;color:var(--text-2);place-items:center;display:grid}.page-state-panel{background:var(--surface,#fff);color:var(--text-2,#4a5568);border-radius:.875rem;margin:2rem;padding:1.125rem;font-size:.875rem}.page-state-panel.is-error{color:#8a1c1c;background:#fde8e8}.u-flex-col-fill{flex-direction:column;min-width:0;display:flex}.fv-toast{z-index:9000;border:1px solid var(--border-1,#e2e8f0);background:var(--surface-1,#fff);width:min(100% - 2rem,28rem);color:var(--text-1,#1a202c);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000001f}.fv-toast-success{border-color:#22c55e4d}.fv-toast-error{border-color:#ef44444d}.fv-toast-message{flex:1;min-width:0}.fv-toast-undo{color:var(--accent,#2563eb);cursor:pointer;white-space:nowrap;background:0 0;border:0;font-weight:700}.fv-designation-badges{flex-wrap:wrap;gap:.25rem;display:inline-flex}.fv-designation-badge{letter-spacing:.03em;text-transform:uppercase;background:var(--surface-2,#edf2f7);color:var(--text-2,#4a5568);border-radius:.25rem;padding:.1rem .35rem;font-size:.65rem;font-weight:700;line-height:1.2;display:inline-block}.fv-designation-badge[data-designation=iep]{color:#92400e;background:#fef3c7}.fv-designation-badge[data-designation=mod]{color:#1e40af;background:#dbeafe}.fv-designation-badge[data-designation=ell]{color:#065f46;background:#d1fae5}.fv-designation-badge[data-designation=sel]{color:#5b21b6;background:#ede9fe}.fv-designation-badge[data-designation="504"]{color:#9d174d;background:#fce7f3}.auth-page{justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}.auth-card{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:16px;width:100%;max-width:400px;margin:20px;padding:40px 36px 36px}.auth-title{font-size:var(--text-2xl);text-align:center;letter-spacing:-.02em;margin:0 0 4px;font-weight:700}.auth-subtitle{font-size:var(--text-md);color:var(--text-2);text-align:center;margin:0 0 28px}.auth-tabs{background:var(--divider-subtle);border-radius:8px;gap:2px;margin-bottom:24px;padding:2px;display:flex}.auth-tab{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 0}.auth-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form[hidden]{display:none}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-label{font-size:var(--text-sm);color:var(--text-2);font-weight:500}.auth-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px 14px}.auth-input:focus{border-color:var(--active);outline:none;box-shadow:0 0 0 3px #007aff1f}.auth-submit,.auth-demo{color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:6px;padding:12px;font-weight:600}.auth-submit{background:var(--active)}.auth-submit:hover{background:var(--btn-hover-blue)}.auth-demo{background:var(--text)}.auth-demo:disabled,.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-forgot{text-align:center}.auth-link-button{color:var(--active);cursor:pointer;background:0 0;border:none;padding:0}.auth-error,.auth-success{font-size:var(--text-sm);text-align:center;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-weight:500;display:none}.auth-error{background:var(--priority-light);color:var(--priority)}.auth-success{background:var(--score-3-bg);color:var(--score-3-text)}.auth-error.visible,.auth-success.visible{display:block}.auth-mode-note{font-size:var(--text-sm);color:var(--text-2);text-align:center;margin:0}.dash-page{height:calc(100vh - var(--dock-h));background:var(--bg-secondary,#ececf0);flex-direction:column;display:flex}.dash-section{margin:0}.dash-toolbar{background:var(--surface);border-bottom:1px solid var(--divider-strong,#0000001f);z-index:10;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:10px 20px;display:flex}.dash-scroll{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 12px 20px;display:flex;overflow-y:auto}.cm-overlay{z-index:var(--z-modal);position:fixed;inset:0}.cm-scrim{cursor:pointer;background:#0f172a61;border:0;padding:0;position:absolute;inset:0}.cm-panel{background:#f4f5f8;border-radius:18px;flex-direction:column;display:flex;position:absolute;inset:24px;overflow:hidden;box-shadow:0 20px 80px #0f172a47}.cm-topbar{background:var(--surface);border-bottom:1px solid var(--divider-strong,#0000001f);justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:18px 20px;display:flex;overflow:visible}.cm-topbar-title{margin:0;font-size:1rem;line-height:1.1}.cm-topbar-button,.cm-primary-button,.cm-inline-button,.cm-archive-button,.cm-course-item{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px}.cm-topbar-button,.cm-primary-button,.cm-inline-button,.cm-archive-button{cursor:pointer;padding:8px 12px}.cm-topbar-button{white-space:nowrap;justify-content:center;align-items:center;min-height:40px;line-height:1;display:inline-flex}.cm-topbar-button.primary,.cm-primary-button{background:var(--active);border-color:var(--active);color:#fff;font-weight:600}.cm-ghost-button{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:inherit;cursor:pointer;border-radius:10px;padding:8px 12px;transition:background .15s,border-color .15s}.cm-ghost-button:hover{background:var(--bg-2,#f5f5f5)}.cm-primary-button.sm,.cm-ghost-button.sm{padding:6px 14px;font-size:.78rem}.cm-section-title{color:var(--text);margin-bottom:6px;font-size:.88rem;font-weight:600}.cm-hint{color:var(--text-3);font-size:.78rem;line-height:1.4}.cm-layout{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.cm-sidebar{border-right:1px solid var(--divider-strong,#00000014);background:#e8ebf0;padding:18px 14px;overflow:auto}.cm-sidebar-title{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:.72rem;font-weight:700}.cm-sidebar-title.archived{margin-top:20px}.cm-course-list{flex-direction:column;gap:8px;display:flex}.cm-course-item{text-align:left;cursor:pointer;width:100%;padding:10px 12px}.cm-course-item.selected{border-color:var(--active);background:#007aff14}.cm-course-item.muted{opacity:.72}.cm-detail{padding:20px;overflow:auto}.cm-detail-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.cm-col-left,.cm-col-right{flex-direction:column;gap:0;display:flex}.cm-section{background:var(--surface);border:1px solid var(--divider-strong,#0000001a);border-radius:14px;margin-bottom:16px;padding:18px}.cm-section-header,.cm-actions,.cm-row-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.cm-section-header h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:0;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.82rem;font-weight:700}.cm-field{flex-direction:column;gap:6px;margin-top:14px;display:flex}.cm-field span,.cm-field-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;font-weight:600}.cm-actions-group{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.cm-field input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;padding:9px 11px}.cm-field select,.cm-mini-grid input,.cm-mini-grid select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:9px 11px}.cm-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.cm-meta,.cm-student-meta{color:var(--text-3);font-size:.82rem}.cm-enrolled-date{color:var(--text-3);opacity:.75;margin-left:6px;font-size:.78rem}.cm-empty-state{color:var(--text-3);text-align:center;border:1px dashed var(--border);border-radius:10px;padding:18px}.cm-student-list{flex-direction:column;gap:10px;display:flex}.cm-student-row{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.cm-student-name{font-weight:600}.cm-inline-button.danger,.cm-archive-button{color:#a12d1b}.cm-error-banner{color:#8a1c1c;background:#fde8e8;border:1px solid #f5b9b9;border-radius:12px;padding:12px 14px}.cm-subsection{border-top:1px solid var(--divider-subtle,#00000014);margin-top:18px;padding-top:16px}.cm-advanced-section{background:#fbfcfd}.cm-subsection-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.cm-subsection-header h4{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:0;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.8rem;font-weight:700}.cm-stack{flex-direction:column;gap:10px;display:flex}.cm-card-block{border:1px solid var(--border);background:#fbfcfd;border-radius:12px;padding:12px}.cm-mini-grid{gap:10px;display:grid}.cm-mini-grid-categories,.cm-mini-grid-special,.cm-mini-grid-rules{grid-template-columns:repeat(4,minmax(0,1fr))}.cm-mini-row{grid-template-columns:minmax(0,1fr) 92px;gap:8px;margin-top:8px;display:grid}.cm-adv-row{align-items:flex-end;gap:10px;display:flex}.cm-adv-field{flex-direction:column;gap:4px;display:flex}.cm-adv-field--grow{flex:1;min-width:0}.cm-adv-field--narrow{flex:0 0 80px}.cm-adv-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.cm-adv-field input,.cm-adv-field select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:7px 10px;font-family:inherit;font-size:.85rem}.cm-adv-check{color:var(--text-2);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding-bottom:4px;font-size:.82rem;display:flex}.cm-adv-check input[type=checkbox]{accent-color:var(--active)}.cm-adv-band-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);grid-template-columns:1fr 80px;gap:8px;margin-top:12px;padding:0 2px 4px;font-size:.72rem;font-weight:600;display:grid}.cm-adv-band-row{grid-template-columns:1fr 80px;gap:8px;margin-top:6px;display:grid}.cm-adv-band-row input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:6px 10px;font-family:inherit;font-size:.85rem}.cm-adv-percent-input{position:relative}.cm-adv-percent-input input{padding-right:24px}.cm-adv-percent-suffix{color:var(--text-3);pointer-events:none;font-size:.8rem;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.cm-adv-group{padding:0 0 20px}.cm-adv-group+.cm-adv-group{border-top:1px solid var(--border);padding-top:20px}.cm-adv-group-top{margin-bottom:12px}.cm-adv-group-title{color:var(--text);margin:0 0 4px;font-size:.88rem;font-weight:600}.cm-adv-group-desc{color:var(--text-3);margin:0;font-size:.78rem;line-height:1.45}.cm-adv-cards{flex-direction:column;gap:10px;display:flex}.cm-adv-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;position:relative}.cm-adv-card-remove{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:8px;right:8px}.cm-adv-card-remove:hover{color:#dc2626;background:#dc262614}.cm-adv-empty{color:var(--text-3);text-align:center;padding:16px 0;font-size:.82rem;font-style:italic}.cm-adv-add-btn{border:1.5px dashed var(--border);width:100%;color:var(--text-2);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;margin-top:10px;padding:10px;font-size:.82rem;font-weight:500;transition:border-color .15s,color .15s,background .15s;display:flex}.cm-adv-add-btn:hover{border-color:var(--active);color:var(--active);background:#007aff0a}.cm-adv-code-input{text-transform:uppercase;letter-spacing:.05em;width:100%;font-family:SF Mono,ui-monospace,monospace;font-size:.85rem}.cm-inline-check{color:var(--text-2);align-items:center;gap:8px;font-size:.82rem;display:inline-flex}.cm-checkbox-field{cursor:pointer;align-items:flex-start;gap:10px;padding:12px 0;display:flex}.cm-checkbox-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--active);flex-shrink:0;margin-top:1px}.cm-checkbox-field>div{flex-direction:column;gap:2px;display:flex}.cm-checkbox-field>div>span:first-child{color:var(--text);font-size:.88rem;font-weight:500}.cm-checkbox-field .cm-hint{color:var(--text-3);font-size:.78rem;line-height:1.4}.cm-textarea{border:1px solid var(--border);width:100%;min-height:48px;font:inherit;resize:vertical;background:var(--bg-1,#fff);color:var(--text-1);border-radius:6px;padding:6px 8px;font-size:.88rem}.cm-textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.cm-stats-row{gap:16px;padding:8px 0;display:flex}.cm-stat{color:var(--text-1);font-size:1.1rem;font-weight:600}.cm-stat-label{color:var(--text-3);font-size:.78rem;font-weight:400}.cm-course-item-meta{color:var(--text-3);margin-top:1px;font-size:.72rem;font-weight:400;display:block}.cm-designation-badge{background:var(--accent-light,#007aff1a);color:var(--accent);vertical-align:middle;border-radius:4px;margin-right:3px;padding:1px 6px;font-size:.72rem;font-weight:600;line-height:1.4;display:inline-block}.cm-subject-list{flex-direction:column;gap:6px;display:flex}.cm-subject-row{background:0 0;align-items:center;gap:10px;padding:0;display:flex}.cm-subject-dot{border-radius:4px;flex-shrink:0;width:14px;height:14px}.cm-subject-name{color:var(--text-1);font-size:.88rem}.cm-standards-list{flex-direction:column;gap:2px;display:flex}.cm-standards-group{border:1px solid var(--border);background:var(--surface,#fff);border-radius:14px;margin-bottom:12px;overflow:visible}.cm-standards-group--ungrouped{border-style:dashed;border-color:var(--border)}.cm-standards-group--ungrouped>.cm-group-header{opacity:.7}.cm-group-header{background:var(--bg-1,#fff);width:100%;color:var(--text-1);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;min-height:48px;padding:14px 16px;font-size:.95rem;transition:background .1s;display:flex;position:relative}.cm-group-header:hover{background:var(--bg-2,#f8f8f8)}.cm-group-chevron{color:var(--text-3);text-align:center;flex-shrink:0;width:16px;font-size:.72rem;transition:transform .15s}.cm-standards-group.open>.cm-group-header .cm-group-chevron{transform:rotate(90deg)}.cm-group-icon{font-size:.85rem}.cm-group-name{flex:1;font-weight:600}.cm-group-count{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;margin-left:auto;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.72rem;font-weight:500}.cm-group-body{border-top:1px solid var(--border);padding:6px 10px 10px;display:none}.cm-standards-group.open>.cm-group-body{display:block}.cm-standard-row{cursor:pointer;align-items:center;gap:8px;min-height:40px;padding:8px 12px 8px 28px;transition:background .1s;display:flex;position:relative}.cm-standard-row:hover{background:#007aff08}.cm-standard-color-bar{border-radius:2px;flex-shrink:0;align-self:stretch;width:3px}.cm-standard-code{background:var(--overlay-hover,#f1f3f5);min-width:32px;color:var(--text-2);text-transform:uppercase;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 6px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.72rem;font-weight:700;display:inline-flex}.cm-standard-name{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.92rem;font-weight:600;overflow:hidden}.cm-standard-subject{color:var(--text-3);background:var(--overlay-hover,#f1f3f5);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:1px 8px;font-size:.72rem;display:inline-flex}.cm-standard-subject-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.cm-curriculum-list{flex-direction:column;gap:8px;display:flex}.cm-curriculum-link{background:#007aff0a;border:1px solid #007aff2e;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.cm-curriculum-badge{min-width:46px;color:var(--accent);letter-spacing:.02em;background:#007aff14;border-radius:8px;justify-content:center;align-items:center;padding:4px 10px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.78rem;font-weight:700;display:inline-flex}.cm-curriculum-label{color:var(--text);font-size:.95rem;font-weight:500}.cm-curriculum-add-btn{border:1.5px dashed var(--border);width:100%;color:var(--text-3);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:10px;padding:10px 16px;font-family:inherit;font-size:.84rem;font-weight:500;transition:all .15s;display:flex}.cm-curriculum-add-btn:hover{border-color:var(--accent);color:var(--accent);background:#007aff08}.cw-steps{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin-bottom:18px;padding-bottom:12px;display:flex}.cw-step-wrapper{align-items:center;gap:4px;display:flex}.cw-step-arrow{color:var(--text-3);margin:0 2px;font-size:1.1rem}.cw-step{color:var(--text-3);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;display:flex}.cw-step.active{background:var(--accent);color:#fff;font-weight:600}.cw-step.done{color:var(--score-3)}.cw-step-num{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-flex}.cw-step.active .cw-step-num{background:#ffffff26;border-color:#fff}.cw-step.done .cw-step-num{border-color:var(--score-3)}.cw-empty-msg{text-align:center;color:var(--text-3);padding:28px 16px;font-size:.88rem;line-height:1.5}.cw-grade-row{flex-wrap:wrap;gap:6px;display:flex}.cw-grade-btn{all:unset;cursor:pointer;border:1.5px solid var(--border);color:var(--text-2);border-radius:6px;padding:6px 14px;font-size:.82rem;font-weight:500;transition:all .12s}.cw-grade-btn:hover{border-color:var(--accent);color:var(--accent)}.cw-grade-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cw-subject-row{flex-wrap:wrap;gap:6px;display:flex}.cw-subject-btn{all:unset;cursor:pointer;border:1.5px solid var(--border);color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;transition:all .12s;display:inline-flex}.cw-subject-btn:hover{border-color:var(--accent)}.cw-subject-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cw-subject-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.cw-course-list{flex-direction:column;gap:4px;display:flex}.cw-course-item{all:unset;cursor:pointer;border:1.5px solid var(--border);border-radius:6px;grid-template-columns:22px 1fr auto auto;align-items:center;gap:8px;padding:8px 10px;font-size:.82rem;transition:all .12s;display:grid}.cw-course-item:hover{border-color:var(--accent)}.cw-course-item.selected{border-color:var(--accent);background:#6366f10f}.cw-course-check{border:1.5px solid var(--border);width:18px;height:18px;color:var(--accent);border-radius:4px;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}.cw-course-item.selected .cw-course-check{background:var(--accent);border-color:var(--accent);color:#fff}.cw-course-name{color:var(--text);font-weight:500}.cw-course-tag{color:var(--text-3);font-size:.72rem;font-weight:600;font-family:var(--mono)}.cw-course-count{color:var(--text-3);text-align:right;white-space:nowrap;font-size:.72rem}.cw-selection-summary{color:var(--text-2);background:#6366f10f;border-radius:6px;margin-top:8px;padding:8px 12px;font-size:.82rem}.cw-custom-btn{all:unset;cursor:pointer;color:var(--text-3);margin-top:12px;font-size:.82rem;transition:color .12s;display:block}.cw-custom-btn:hover{color:var(--accent)}.cw-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;display:flex}.cw-review-card{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:14px 16px}.cw-review-title{margin-bottom:2px;font-size:.95rem;font-weight:700}.cw-review-meta{color:var(--text-3);margin-bottom:10px;font-size:.78rem}.cw-review-sections{flex-direction:column;gap:4px;display:flex}.cw-review-sec{color:var(--text-2);align-items:center;gap:6px;font-size:.78rem;display:flex}.cw-review-sec-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.cw-review-sec-count{color:var(--text-3);margin-left:auto;font-size:.72rem}.cw-relink-panel{padding:8px 0}.cm-confirm-options{flex-direction:column;gap:8px;display:flex}.cm-confirm-option{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:10px;padding:12px 16px;font-size:.85rem;line-height:1.4;transition:background .15s,border-color .15s}.cm-confirm-option:hover{background:var(--bg-2,#f5f5f5)}.cm-confirm-option.primary{background:var(--active);border-color:var(--active);color:#fff}.cm-confirm-option.primary:hover{opacity:.92}.cm-confirm-option.caution{border-color:var(--score-2);color:var(--score-2)}.cm-confirm-option.caution:hover{background:#ff95000f}.cm-confirm-option strong{font-weight:600}.cm-curriculum-link-name{color:var(--text-2);font-size:.85rem}.cm-csv-preview{border:1px solid var(--accent);border-radius:var(--radius-sm);background:#007aff05;margin-top:8px;padding:10px 12px}.cm-csv-table{border-collapse:collapse;width:100%;font-size:.78rem}.cm-csv-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);border-bottom:1px solid var(--border);padding:3px 6px;font-size:.72rem;font-weight:600}.cm-csv-table td{border-bottom:1px solid var(--divider-subtle,var(--border));padding:3px 6px}.cm-csv-status{font-size:.65rem;font-weight:600}.cm-csv-status.new{color:var(--score-3)}.cm-csv-status.skip{color:var(--priority,#f59e0b)}.cm-color-swatch{cursor:pointer;border:2px solid #00000014;border-radius:4px;flex-shrink:0;width:20px;height:20px;transition:transform .1s}.cm-color-swatch:hover{transform:scale(1.15)}.cm-color-palette{flex-wrap:wrap;gap:4px;padding:4px 0;display:flex}.cm-color-palette-inline{padding:2px 0}.cm-color-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;transition:transform .1s,border-color .15s}.cm-color-dot:hover{transform:scale(1.2)}.cm-color-dot.selected{border-color:var(--text-1);box-shadow:inset 0 0 0 2px #fffc}.cm-inline-input{min-width:0;font:inherit;color:var(--text-1);background:0 0;border:1px solid #0000;border-radius:4px;flex:1;padding:3px 6px;font-size:.88rem;transition:border-color .15s,background .15s}.cm-inline-input:hover{border-color:var(--border)}.cm-inline-input:focus{border-color:var(--accent);background:var(--bg-1,#fff);outline:none}.cm-delete-mini{width:22px;height:22px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;transition:background .15s,color .15s;display:inline-flex}.cm-delete-mini:hover{color:#ef4444;background:#ef44441a}.cm-confirm-inline{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.cm-group-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .12s;display:flex}.cm-group-header:hover .cm-group-actions{opacity:1}.cm-header-actions{align-items:center;gap:6px;display:flex}.cm-group-toggle{cursor:pointer;width:20px;height:20px;color:var(--text-3);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:.65rem;display:inline-flex}.cm-group-color-dot{cursor:pointer;border:1.5px solid #0000001a;border-radius:50%;flex-shrink:0;width:14px;height:14px;padding:0;transition:transform .1s;position:relative}.cm-group-color-dot:hover{transform:scale(1.2)}.cm-group-color-hidden{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.cm-group-name-input{color:var(--text-1);cursor:pointer;background:0 0;border:none;border-bottom:1.5px solid #0000;border-radius:2px;outline:none;flex:1;width:auto;min-width:0;max-width:320px;padding:2px 4px;font-family:inherit;font-size:1.05rem;font-weight:600}.cm-group-name-input:hover{border-bottom-color:var(--border)}.cm-group-name-input:focus{cursor:text;background:var(--bg-2,#f8f8f8);border-bottom-color:var(--accent)}.cm-std-card{border-bottom:1px solid var(--border-light,#0000000a)}.cm-std-card:last-child{border-bottom:none}.cm-std-card.expanded{background:var(--bg-2,#f8f8f8)}.cm-standard-row-clickable{cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:none}.cm-standard-row-clickable:hover{background:var(--bg-3,#f0f0f0)}.cm-std-chevron{color:var(--text-3);text-align:center;flex-shrink:0;width:16px;margin-left:auto;font-size:.65rem}.cm-std-body{border-top:1px solid var(--border-light,#0000000a);flex-direction:column;gap:8px;padding:8px 12px 12px 28px;display:flex}.cm-std-actions{justify-content:flex-end;gap:6px;padding-top:4px;display:flex}.cm-mono-input{letter-spacing:.05em;text-transform:uppercase;font-family:SF Mono,Fira Code,Consolas,monospace}.cm-std-card[draggable=true] .cm-standard-row:before{content:"⠿";width:22px;color:var(--text-3);opacity:.2;cursor:grab;justify-content:center;align-items:center;font-size:1.05rem;transition:opacity .12s;display:flex;position:absolute;top:0;bottom:0;left:4px}.cm-std-card[draggable=true]:hover .cm-standard-row:before{opacity:.5}.cm-std-card.dragging{opacity:.4}.cm-std-card.merge-target{z-index:2;border:1px solid var(--accent);background:#6366f10f;border-radius:16px;transition:border-radius .2s,background .2s,border-color .2s;animation:.35s ease-out forwards cm-merge-pulse;position:relative}.cm-std-card.merge-target:after{content:"📁 Create Group";z-index:3;background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;border-radius:8px;padding:3px 10px;font-size:.78rem;font-weight:600;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.cm-std-card.merge-target .cm-standard-row{background:#ffffffeb;border-radius:16px}.cm-std-card.drop-before{border-top:2px solid var(--accent)}.cm-std-card.drop-after{border-bottom:2px solid var(--accent)}.cm-std-card.merge-target.drop-before,.cm-std-card.merge-target.drop-after{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent)}.cm-standards-group.drag-over{outline:2px dashed var(--accent);outline-offset:-2px}.cm-add-group-btn{border:2px dashed var(--border);width:100%;color:var(--text-3);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:14px;font-family:inherit;font-size:.88rem;font-weight:500;transition:all .12s;display:flex}.cm-add-group-btn:hover{border-color:var(--accent);color:var(--accent);background:#007aff08}.cm-add-link{border:1px solid var(--border);background:var(--surface);color:var(--text-3);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .12s;display:inline-flex}.cm-add-link:hover{border-color:var(--accent);color:var(--accent);background:#007aff0a}.cm-add-link:disabled{opacity:.4;cursor:default}@keyframes cm-merge-pulse{0%{transform:scale(1);box-shadow:0 0 #6366f14d}50%{transform:scale(.94);box-shadow:0 0 0 8px #6366f126}to{transform:scale(.96);box-shadow:0 0 0 4px #6366f140}}.cm-bulk-bar{background:var(--bg-2,#f8f8f8);border-radius:6px;flex-direction:column;gap:8px;margin-bottom:4px;padding:8px 10px;display:flex}.cm-bulk-top-row{align-items:center;gap:8px;display:flex}.cm-bulk-count{color:var(--text-3);margin-left:auto;font-size:.78rem}.cm-bulk-actions{border-top:1px solid var(--border,#e0e0e0);align-items:flex-end;gap:10px;padding-top:6px;display:flex}.cm-bulk-field{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.cm-bulk-field-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.cm-bulk-input{padding:5px 8px;font-size:.82rem}.cm-teams-import-panel{background:var(--bg-2,#f8f8f8);border-radius:6px;margin-top:6px;margin-bottom:4px;padding:10px 12px}.cm-bulk-checkbox{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.cm-inline-button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cm-inline-button.active:hover{background:var(--accent-dark,#006d80)}.cm-toggle-group{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.cm-toggle-btn{border:none;border-right:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;padding:7px 14px;font-size:.82rem;font-weight:500;transition:background .15s,color .15s}.cm-toggle-btn:last-child{border-right:none}.cm-toggle-btn:hover{background:var(--bg-2,#f5f5f5)}.cm-toggle-btn.active{background:var(--accent);color:#fff;font-weight:600}.cm-cw-slider-row{align-items:center;gap:16px;padding:8px 0;display:flex}.cm-cw-slider-row input[type=range]{accent-color:var(--accent);flex:1}.cm-cw-labels{color:var(--text-3);justify-content:space-between;margin-bottom:2px;font-size:.75rem;display:flex}.cm-cw-values{justify-content:space-between;margin-top:2px;font-size:.78rem;font-weight:600;display:flex}.cm-student-row-compact{border-bottom:1px solid var(--divider-subtle,#0000000d);align-items:center;gap:6px;padding:5px 8px;font-size:.85rem;line-height:1.4;display:flex}.cm-student-row-compact:last-child{border-bottom:none}.cm-student-row-compact .cm-student-name{white-space:nowrap;font-weight:600}.cm-student-pref{color:var(--text-2);white-space:nowrap;font-size:.8rem;font-style:italic}.cm-student-pronouns{color:var(--text-3);white-space:nowrap;font-size:.78rem}.cm-student-number{color:var(--text-3);white-space:nowrap;font-family:SF Mono,ui-monospace,monospace;font-size:.68rem}.cm-student-row-compact .cm-row-actions{flex-shrink:0;gap:2px;margin-left:auto}.cm-icon-btn{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.72rem;display:inline-flex}.cm-icon-btn:hover{background:var(--bg-3,#eee);color:var(--text)}.cm-icon-btn.danger:hover{color:#a12d1b;background:#fde8e8}.cm-designation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:8px;display:grid}.cm-designation-check{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:3px 4px;font-size:.82rem;display:flex}.cm-designation-check:hover{background:var(--bg-2,#f8f8f8)}.cm-designation-check input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0}.cm-designation-code{color:var(--accent);min-width:14px;font-weight:700}.cm-designation-label{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.cm-grading-field{margin-top:14px}.cm-grading-label{color:var(--text-2);letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.cm-bottom-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 0;display:flex}.cm-action-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.82rem}.cm-action-btn:hover{background:var(--bg-2,#f5f5f5)}.cm-danger-zone{border-top:1px solid var(--border);margin-top:8px;padding:14px 0}.cm-danger-btn{background:var(--surface);color:#a12d1b;cursor:pointer;border:1px solid #e5a5a5;border-radius:8px;padding:8px 14px;font-size:.82rem}.cm-danger-btn:hover{background:#fde8e8}.cm-danger-hint{color:var(--text-3);margin-left:10px;font-size:.78rem;display:inline}.cm-roster-actions{align-items:center;gap:8px;padding:8px 0;display:flex}.cm-roster-actions .cm-add-link{color:var(--accent);background:0 0;border:none;padding:4px 0;font-size:.85rem}.cm-roster-actions .cm-add-link:hover{background:0 0;text-decoration:underline}.cm-roster-actions .cm-divider{color:var(--border)}.cm-student-list-compact{border:1px solid var(--border);border-radius:8px;overflow:hidden}@media (width<=960px){.cm-panel{inset:12px}.cm-layout{grid-template-columns:1fr}.cm-sidebar{border-right:none;border-bottom:1px solid var(--divider-strong,#00000014)}.cm-form-grid,.cm-detail-columns,.cm-designation-grid{grid-template-columns:1fr}}.dash-course-select,.dash-sort-select,.dash-search-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px}.dash-course-select,.dash-sort-select{font-size:var(--text-base);padding:6px 28px 6px 10px}.dash-search-wrap{flex:0 0 240px;position:relative}.dash-search-wrap .search-icon{font-size:var(--text-sm);color:var(--text-3);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.dash-search-input{width:100%;font-size:var(--text-base);padding:6px 10px 6px 30px}.dash-add-btn,.dash-filter-chip{border-radius:8px;align-items:center;gap:5px;min-height:32px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.dash-add-btn{background:var(--active);color:#fff;border:none;padding:6px 14px;font-weight:600}.dash-add-btn:hover{background:var(--btn-hover-blue);box-shadow:0 2px 8px #007aff33}.dash-add-btn:active,.dash-filter-chip:active{transform:scale(.98)}.dash-filter-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;padding:5px 12px}.dash-filter-chip:hover{border-color:var(--priority)}.dash-filter-chip.active{background:var(--priority);border-color:var(--priority);color:#fff}.dash-toolbar-spacer{flex:1}.dash-toolbar-label,.dash-section-title,.dash-mini-stat-label,.dash-card-badge-label,.dash-section-name,.dash-coverage-caption,.dash-card-student-number{letter-spacing:.04em;text-transform:uppercase;font-family:SF Mono,ui-monospace,Menlo,monospace}.dash-toolbar-label{color:var(--text-3);font-size:var(--text-xs)}.dash-overview{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.dash-overview-section{background:var(--surface);border:1px solid var(--divider-strong,#0000001f);box-shadow:var(--shadow-sm);border-radius:12px;padding:16px 20px}.dash-section-title{color:var(--text-2);font-size:var(--text-xs);align-items:center;gap:6px;margin-bottom:10px;font-weight:600;display:flex}.dash-section-title a{color:var(--active);font-family:var(--font-base);letter-spacing:0;text-transform:none;font-size:var(--text-sm);margin-left:auto;text-decoration:none}.dash-section-title a:hover,.dash-action-link:hover{text-decoration:underline}.dash-mt-14{margin-top:14px}.dash-distribution-bar{gap:2px;height:30px;display:flex}.dist-seg{border-radius:4px;justify-content:center;align-items:center;min-width:30px;font-weight:700;display:flex;position:relative}.dist-seg span{font-size:.82rem}.level-1{color:var(--score-1-text,#991b1b);background:var(--score-1-bg,#fee2e2)}.level-2{color:var(--score-2-text,#92400e);background:var(--score-2-bg,#fef3c7)}.level-3{color:var(--score-3-text,#166534);background:var(--score-3-bg,#bbf7d0)}.level-4{color:var(--score-4-text,#1e40af);background:var(--score-4-bg,#dbeafe)}.dash-distribution-legend{color:var(--text-2);justify-content:center;gap:12px;margin-top:6px;font-size:.7rem;display:flex}.dash-legend-item{align-items:center;gap:4px;display:inline-flex}.dash-legend-dot{border-radius:2px;width:8px;height:8px}.dash-quick-stats{gap:12px;margin-bottom:12px;display:flex}.dash-mini-stat{text-align:center;background:var(--bg);border:1px solid var(--overlay-pressed,#00000014);border-radius:8px;flex:1;padding:8px}.dash-mini-stat-val{font-size:var(--text-2xl);font-weight:700;line-height:1.1}.dash-mini-stat-label{color:var(--text-3);font-size:var(--text-2xs);margin-top:1px}.dash-outcome-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.dash-outcome-label{width:110px;font-size:var(--text-sm);white-space:nowrap;font-weight:500}.dash-outcome-bar-track{background:var(--divider-subtle);border-radius:4px;flex:1;height:8px;overflow:hidden}.dash-outcome-bar-fill{border-radius:4px;height:100%}.dash-outcome-val{text-align:right;width:32px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);font-weight:600}.dash-coverage-caption{color:var(--text-3);margin-top:10px;margin-bottom:4px;font-size:.52rem}.dash-tag-grid{flex-wrap:wrap;gap:4px;display:flex}.dash-tag-pip{border:1px solid var(--divider-strong,#0000001f);border-radius:4px;width:10px;height:10px}.dash-birthday-list{margin-top:14px}.bday-row{align-items:center;gap:8px;padding:6px 0;display:flex}.bday-avatar{background:var(--text);width:34px;height:34px;color:var(--surface);font-size:var(--text-sm);border-radius:12px;place-items:center;font-family:SF Mono,ui-monospace,Menlo,monospace;font-weight:700;display:grid}.bday-info{flex:1}.bday-name{font-size:var(--text-base);font-weight:600}.bday-date,.bday-countdown,.dash-empty-panel-copy{color:var(--text-3);font-size:var(--text-sm)}.dash-cc-grid{flex-wrap:wrap;gap:6px;display:flex}.dash-cc-pill{background:var(--bg);border:1px solid var(--divider-strong,#0000001f);font-family:inherit;font-size:var(--text-sm);color:inherit;cursor:default;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-weight:500;display:inline-flex;position:relative}.dash-cc-pill.is-muted{opacity:.45}.dash-cc-dot{border-radius:999px;width:8px;height:8px}.dash-cc-count{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs)}.dash-action-list{flex-direction:column;gap:8px;display:flex}.dash-action-item{background:var(--overlay-hover);border:1px solid var(--divider-subtle);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 12px;display:flex}.dash-action-dot{background:var(--score-2,#c07a00);border-radius:999px;width:6px;height:6px;margin-top:6px}.dash-action-dot.is-good{background:var(--score-3,#2e7d32)}.dash-action-text{color:var(--text-2);font-size:var(--text-sm);flex:1}.dash-action-text.is-good{color:var(--score-3,#2e7d32)}.dash-action-link{color:var(--active);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;font-weight:600;text-decoration:none}.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dash-card{color:inherit;background:var(--surface);border:1px solid var(--divider-strong,#0000001f);box-shadow:var(--shadow-sm);border-radius:12px;text-decoration:none;transition:box-shadow .18s,transform .18s,border-color .18s;display:block;overflow:visible}.dash-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.dash-card{--flag-red:#d32f2f;--flag-green:#22c55e;--flag-yellow:#eab308;--flag-blue:#3b82f6;--flag-purple:#a855f7;--flag-orange:#f97316;--flag-teal:#14b8a6;--flag-pink:#ec4899;--flag-brown:#a16207;--flag-grey:#6b7280}.dash-card.has-flags{border-left-color:#0000;position:relative}.dash-card.has-flags:before{content:"";background:var(--flag-stripes);z-index:1;border-radius:12px 0 0 12px;width:4px;position:absolute;top:0;bottom:0;left:0}.dash-card-header{align-items:center;gap:10px;padding:20px 16px 14px;display:flex}.dash-flag-btn{color:var(--border);font-size:var(--text-lg);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;margin:-8px -4px -8px -10px;padding:8px 10px;transition:color .12s,background .12s}.dash-flag-btn:hover{color:var(--priority);background:#0000000a}.dash-card.has-flags .dash-flag-btn{color:var(--flag-primary-color,var(--priority))}.dash-card-info{flex:1;min-width:0}.dash-card-name{font-size:var(--text-xl);white-space:nowrap;font-weight:600;overflow:visible}.dash-card-pronouns{color:var(--text-3);font-size:var(--text-sm)}.dash-card-student-number{color:var(--text-3);font-size:var(--text-2xs)}.dash-desig-tag{vertical-align:middle;font-size:var(--text-2xs,10px);letter-spacing:.03em;color:#4338ca;background:#6366f11f;border-radius:4px;margin-left:5px;padding:1px 6px;font-weight:600;display:inline-block;position:relative}.dash-desig-tag[data-tooltip]:after{content:attr(data-tooltip);background:var(--text,#1e293b);color:#fff;font-size:var(--text-xs,11px);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;border-radius:6px;padding:4px 8px;transition:opacity .1s;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.dash-desig-tag:hover[data-tooltip]:after{opacity:1}.dash-card-badge{text-align:center;border-radius:12px;flex-shrink:0;padding:6px 12px}.dash-card-badge-num{font-size:var(--text-2xl);font-weight:700;line-height:1}.dash-card-badge-label{font-size:var(--text-2xs);margin-top:1px;font-weight:600}.dash-card-sections{gap:6px;margin-bottom:12px;padding:4px 16px;display:flex}.dash-section-mini{text-align:center;border-radius:8px;flex:1;min-width:0;padding:12px 4px;position:relative}.dash-section-mini[data-tooltip]:after{content:attr(data-tooltip);background:var(--text,#1e293b);color:#fff;font-size:var(--text-xs,11px);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;border-radius:6px;padding:4px 8px;transition:opacity .1s;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.dash-section-mini:hover[data-tooltip]:after{opacity:1}.dash-section-mini-top{border-radius:2px;height:3px;position:absolute;top:0;left:4px;right:4px}.dash-section-name{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:11px;font-weight:500;overflow:hidden}.dash-section-val{font-size:var(--text-lg);font-weight:700}.dash-card-footer{border-top:1px solid var(--overlay-pressed,#00000014);align-items:center;gap:10px;padding:12px 16px 16px;display:flex}.dash-card-meta{color:var(--text-2);font-size:var(--text-sm);align-items:center;gap:6px;display:flex}.dash-trend.trend-up{color:var(--score-3,#2e7d32)}.dash-trend.trend-down{color:var(--score-1,#d32f2f)}.dash-trend.trend-flat{color:var(--text-3)}.dash-card-obs{min-width:0;color:var(--text-3);font-size:var(--text-sm);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.dash-empty,.dash-state-panel{text-align:center;color:var(--text-3);background:var(--surface);border:1px solid var(--divider-subtle);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:80px 20px;display:flex}.dash-state-panel.is-error{color:var(--priority)}.dash-empty-icon{opacity:.45;margin-bottom:8px;font-size:2.25rem}.dash-empty-title{color:var(--text-2);font-size:var(--text-lg);margin-bottom:4px;font-weight:600}.dash-empty-text{font-size:var(--text-md)}.dist-seg .dist-tip,.dash-cc-pill .dist-tip{white-space:nowrap;background:var(--surface);border:1px solid var(--divider-strong,#0000001f);min-width:150px;max-width:240px;box-shadow:var(--shadow-md);z-index:40;border-radius:8px;padding:8px 12px;display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.dist-seg:hover .dist-tip,.dist-seg:focus-within .dist-tip,.dash-cc-pill:hover .dist-tip,.dash-cc-pill:focus .dist-tip{display:block}.dist-tip-title{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;margin-bottom:4px}.dist-tip-name{font-size:var(--text-sm);color:var(--text);line-height:1.5}@media (width<=1320px){.dash-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1080px){.dash-overview{grid-template-columns:1fr}.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.dash-page{padding:0 6px 16px}.obs-hero,.obs-layout,.obs-row,.obs-filters,.obs-card-header,.obs-card-actions,.obs-actions{flex-direction:column}.obs-layout{display:flex}.dash-toolbar{padding:10px 12px}.dash-search-wrap{flex:100%}.dash-grid{grid-template-columns:1fr}.dash-card-sections{flex-wrap:wrap}.dash-card-footer{flex-direction:column;align-items:flex-start}.dash-card-obs{text-align:left}}.asg-page{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:calc(100vh - var(--dock-h));min-height:calc(100vh - var(--dock-h));background:var(--bg);font-family:var(--font-base);display:grid}.page-layout.sidebar-hidden .asg-page{grid-template-columns:minmax(0,1fr)}.asg-sidebar{border-right:1px solid var(--divider-subtle);background:var(--surface);z-index:1;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.page-layout.sidebar-hidden .asg-sidebar{display:none}.page-layout.sidebar-hidden .asg-workspace .assess-course-select{display:inline-block}.asg-sidebar-toolbar{border-bottom:1px solid var(--divider-subtle);gap:8px;padding:16px 16px 12px;display:grid}.asg-sidebar-course-select,.asg-sidebar-search{width:100%;font-family:var(--font-base);font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.assess-course-select{font-family:var(--font-base);font-size:var(--text-base);border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' fill='none' stroke='%23222222' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:8px;padding:6px 28px 6px 10px;font-weight:400;transition:border .12s;display:none}.asg-sidebar-course-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' fill='none' stroke='%23222222' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:6px 28px 6px 10px;font-weight:400}.assess-course-select{flex-shrink:0}.assess-course-select:hover,.asg-sidebar-course-select:hover{border-color:var(--text-3)}.asg-sidebar-search{padding:6px 10px}.asg-sidebar-search::placeholder{color:var(--text-3)}.asg-sidebar-list{flex:1;padding:8px;overflow:auto}.asg-student-row{border-radius:var(--radius-sm);width:100%;color:inherit;text-align:left;cursor:pointer;transition:background var(--duration-micro);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.asg-student-row:hover{background:var(--overlay-hover)}.asg-student-row.active{background:var(--active-light)}.asg-student-avatar{color:#fff;width:28px;height:28px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.asg-student-name{min-width:0;font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.asg-student-badge{border-radius:var(--radius-xs);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-align:center;flex-shrink:0;margin-left:auto;padding:2px 8px;font-weight:700}.asg-student-badge.tone-strong{color:#1d4ed8;background:#e8f0ff}.asg-student-badge.tone-on-track{color:#2f855a;background:#edf7ee}.asg-student-badge.tone-watch{color:#c05621;background:#fff4e8}.asg-student-badge.tone-risk{color:#c53030;background:#fdeaea}.asg-student-row.active .asg-student-name{color:var(--active);font-weight:600}.asg-sidebar-footer{border-top:1px solid var(--divider-subtle);color:var(--text-3);font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.asg-sidebar-link{color:var(--text-2);cursor:pointer;font-family:var(--font-base);font-size:var(--text-xs);background:0 0;border:none;padding:0}.asg-workspace{z-index:0;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.asg-canvas{flex:1;min-height:0;padding:16px 16px 28px;overflow:hidden auto}.asg-form-card{border:2px solid var(--active);border-radius:var(--radius);background:var(--surface);margin-bottom:18px;padding:24px 28px;box-shadow:0 4px 20px #007aff1f}.asg-description{background:var(--bg);color:var(--text-2);font-size:var(--text-base);border-radius:8px;margin:8px 0 12px;padding:10px 14px;line-height:1.5}.asg-empty-inline{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-3);font-size:var(--text-base);padding:10px 12px}.tb-action-btn,.tb-dropdown-btn,.btn.btn-ghost,.btn.btn-primary{border-radius:10px}.tb-action-btn{background:var(--active);color:#fff;cursor:pointer;transition:all var(--duration-micro) var(--ease-out);min-height:32px;font-weight:600;line-height:1;font-family:var(--font-base);font-size:var(--text-base);white-space:nowrap;border:none;align-items:center;padding:8px 16px;display:inline-flex}.tb-action-btn:hover{filter:brightness(.92);box-shadow:0 2px 8px #007aff40}.tb-dropdown-btn{font-family:var(--font-base);font-size:var(--text-base);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:8px;padding:5px 12px;font-weight:500;transition:all .12s}.tb-dropdown-btn.active,.tb-dropdown-btn.open{border-color:var(--active);color:var(--active);background:#007aff0a;box-shadow:0 0 0 3px #007aff29,inset 0 0 0 1px #007aff2e}.btn.btn-ghost,.btn.btn-primary{border:1px solid var(--border);cursor:pointer;min-height:32px;font-family:var(--font-base);font-size:var(--text-base);padding:0 14px}.btn.btn-ghost{background:var(--surface);color:var(--text-2)}.btn.btn-primary{background:var(--active);border-color:var(--active);color:#fff}.type-badge{text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.type-badge-s{background:var(--active);color:#fff}.type-badge-f{color:#616774;background:#eef1f5}.collab-badge{color:var(--text-3);background:var(--overlay-hover);letter-spacing:.02em;cursor:default;border-radius:999px;align-items:center;gap:3px;padding:1px 8px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11px;font-weight:600;display:inline-flex}.pts-input-cell,.pts-pct-cell{flex:1;justify-content:center;align-items:center;gap:4px;min-width:90px;display:flex}.gb-pts-input.readonly{text-align:right;min-width:28px;font-weight:700;display:inline-block}.gb-pts-max,.gb-pts-live-pct{color:var(--active);font-weight:600}.rubric-preview-header .score-col-header{cursor:default}.rubric-preview-row{align-items:stretch}.rubric-preview-cell{color:#0f172a42;border:1px solid var(--divider-subtle);border-left:none;flex:1;justify-content:center;align-items:center;min-width:120px;display:flex}.rubric-preview-cell:first-of-type{border-left:1px solid var(--divider-subtle)}.rubric-preview-cell.active{color:#fff;background:#2f855a;border-color:#2f855a}.asg-state-panel{background:var(--surface);border-radius:14px;margin:32px;padding:18px}.asg-state-panel.is-error{color:#8a1c1c;background:#fde8e8}.ti-overlay{z-index:var(--z-top);animation:tiFadeIn var(--duration-fast) var(--ease-out);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes tiFadeIn{0%{opacity:0}to{opacity:1}}.ti-card{background:var(--surface);border-radius:var(--radius-lg);width:90vw;max-width:720px;max-height:85vh;box-shadow:var(--shadow-lg);animation:tiSlideUp var(--duration-normal) var(--ease-spring);flex-direction:column;display:flex}@keyframes tiSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.ti-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.ti-title{font-family:var(--font-base);font-size:var(--text-xl);color:var(--text);margin:0;font-weight:600}.ti-close{border-radius:var(--radius-xs);width:auto;height:auto;color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.ti-close:hover{background:var(--overlay-hover)}.ti-steps{gap:4px;padding:16px 24px 0;display:flex}.ti-step-pill{background:var(--divider-medium);height:4px;transition:background var(--duration-fast) var(--ease-out);border-radius:2px;flex:1}.ti-step-pill.active{background:var(--active)}.ti-step-pill.done{background:#2f855a}.ti-step-label{color:var(--text-3);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;padding:8px 24px 0;font-weight:700}.ti-body{flex:1;min-height:200px;padding:16px 24px 24px;overflow-y:auto}.ti-footer{border-top:1px solid var(--divider-subtle);justify-content:flex-end;gap:8px;padding:16px 24px 20px;display:flex}.ti-step-panel,.ti-stage-select{gap:16px;display:grid}.ti-stage-copy{color:var(--text-2);font-size:var(--text-md)}.ti-stage-copy-primary{color:var(--text);margin-bottom:4px;font-weight:500}.ti-upload-card{gap:12px;padding:4px 0 8px;display:grid}.ti-upload-sources{flex-wrap:wrap;gap:8px;display:flex}.ti-source-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px;padding:6px 12px;font-weight:600}.ti-source-chip.active{border-color:var(--active);color:var(--active);background:#007aff14}.ti-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;transition:border-color var(--duration-fast), background var(--duration-fast);padding:48px 24px}.ti-dropzone:hover,.ti-dropzone.drag-over{border-color:var(--active);background:var(--active-light)}.ti-dropzone-icon{color:var(--text-3);margin-bottom:12px;font-size:36px}.ti-dropzone-text{font-family:var(--font-base);font-size:var(--text-md);color:var(--text-2)}.ti-dropzone-hint{font-family:var(--font-base);font-size:var(--text-xs);color:var(--text-3);margin-top:8px}.ti-file-input{display:none}.ti-file-info{background:var(--score-3-bg);border-radius:var(--radius-sm);align-items:center;gap:12px;margin-top:16px;padding:12px 16px;display:flex}.ti-file-info-icon{font-size:20px}.ti-file-info-text{font-family:var(--font-base);font-size:var(--text-md);color:var(--score-3-text);font-weight:500}.ti-upload-actions{justify-content:flex-end;display:flex}.ti-stage-jobs{gap:10px;display:grid}.ti-stage-job{border:1px solid var(--divider-subtle);text-align:left;cursor:pointer;background:#f8f9fb;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ti-stage-job.active,.ti-match-table tr.is-selected td,.ti-assign-item.is-selected{background:#007aff0f}.ti-stage-job.active{border-color:var(--active)}.ti-stage-job-main{gap:4px;display:grid}.ti-stage-job-name{color:var(--text);font-weight:700}.ti-stage-job-meta{color:var(--text-3);font-size:var(--text-sm)}.ti-review-layout{grid-template-columns:minmax(0,1fr) 320px;gap:14px;display:grid}.ti-review-layout.assignments{grid-template-columns:minmax(0,1fr) 340px}.ti-review-table-wrap{border:1px solid var(--divider-subtle);border-radius:12px;overflow:hidden}.ti-row-select,.ti-assign-select{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none}.ti-row-select{padding:0}.ti-assign-select{align-items:center;gap:10px;width:100%;display:flex}.ti-row-select:focus,.ti-assign-select:focus,.ti-stage-job:focus,.ti-row-select:focus-visible,.ti-assign-select:focus-visible,.ti-stage-job:focus-visible{outline:2px solid var(--active);outline-offset:-2px}.ti-match-summary{color:var(--text-2);font-size:var(--text-sm);gap:16px;display:flex}.ti-match-summary b,.ti-preview-stat b,.ti-results-stat b{font-weight:600}.ti-match-table,.ti-preview-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.ti-match-table th{border-bottom:1px solid var(--divider-medium);color:var(--text-3);font-size:var(--text-xs);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:6px 8px;font-weight:500}.ti-match-table td{border-bottom:1px solid var(--divider-subtle);vertical-align:middle;padding:8px}.ti-match-table tr:last-child td{border-bottom:none}.ti-match-email,.ti-assign-meta{color:var(--text-3);font-size:var(--text-xs)}.ti-badge{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-weight:600;display:inline-block}.ti-badge-matched{color:#2f855a;background:#2f855a24}.ti-badge-new{color:#1d74f5;background:#1d74f51f}.ti-badge-skip{color:var(--text-3);background:#0f172a12}.ti-badge-dupe{color:#b45309;background:#f59e0b29;margin-left:8px}.ti-action-select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;padding:4px 8px}.ti-quick-actions{gap:8px;margin-bottom:12px;display:flex}.ti-select-all{border-bottom:1px solid var(--divider-medium);color:var(--text-2);font-size:var(--text-sm);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;font-weight:600;display:flex}.ti-assign-list{margin:0;padding:0;list-style:none}.ti-assign-item{border-bottom:1px solid var(--divider-subtle);font-size:var(--text-base);align-items:center;gap:10px;padding:8px 0;display:flex}.ti-assign-item:last-child{border-bottom:none}.ti-assign-item input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--active)}.ti-assign-select{padding:0}.ti-assign-title{color:var(--text);flex:1}.ti-preview-summary{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.ti-preview-stat{color:var(--text-2);font-size:var(--text-sm)}.ti-preview-stat b{color:var(--text);font-size:var(--text-lg);display:block}.ti-preview-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:340px;overflow:auto}.ti-preview-table{width:max-content;min-width:100%;font-size:var(--text-xs)}.ti-preview-table th{z-index:1;border-bottom:1px solid var(--border);background:var(--bg);color:var(--text-3);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:120px;padding:6px 10px;font-weight:500;position:sticky;top:0;overflow:hidden}.ti-preview-table td{border-bottom:1px solid var(--divider-subtle);white-space:nowrap;padding:5px 10px}.ti-preview-table tr:last-child td{border-bottom:none}.ti-cell-score{color:var(--text);font-weight:600}.ti-cell-feedback{color:#1d74f5;font-weight:600}.ti-cell-empty{color:var(--text-3)}.ti-results-card{text-align:center;padding:24px}.ti-results-icon{margin-bottom:12px;font-size:3rem}.ti-results-title{color:var(--text);font-size:var(--text-xl);margin-bottom:16px;font-weight:700}.ti-results-stats{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.ti-results-stat{color:var(--text-2);font-size:var(--text-sm)}.ti-results-stat b{color:#2f855a;font-size:var(--text-2xl);display:block}.import-center-card{border:1px solid var(--divider-subtle);background:var(--surface);border-radius:18px;margin-bottom:18px;padding:20px 22px}.import-center-header,.import-job-summary,.import-rows-toolbar,.import-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.import-center-title{margin:0;font-size:1.1rem}.import-center-subtitle,.import-job-timestamps,.import-row-subtitle,.import-pagination-label,.import-status-summary{color:var(--text-3);font-size:.88rem}.import-filter-groups{gap:10px;display:grid}.import-center-grid{grid-template-columns:260px minmax(0,1fr);gap:18px;margin-top:16px;display:grid}.import-jobs-list,.import-job-detail{gap:10px;display:grid}.import-job-row{border:1px solid var(--divider-subtle);background:var(--bg);text-align:left;cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.import-job-row.active{border-color:var(--active);background:#007aff14}.import-job-name,.import-job-file,.import-row-title{font-weight:600}.import-job-status,.import-row-kind,.import-row-status,.import-chip{border:1px solid var(--divider-subtle);background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:4px 8px;font-size:.8rem;display:inline-flex}.import-job-actions,.import-summary-stats{flex-wrap:wrap;gap:8px;display:flex}.import-result-card{border:1px solid var(--divider-subtle);background:#f8fafc;border-radius:16px;gap:14px;margin-top:14px;padding:16px 18px;display:grid}.import-result-card.is-success{background:#2f855a14;border-color:#2f855a38}.import-result-card.is-error{background:#dc26260f;border-color:#dc262633}.import-result-card.is-info{background:#1d74f50f;border-color:#1d74f52e}.import-result-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.import-result-title{font-size:.98rem;font-weight:700}.import-result-subtitle{color:var(--text-2);font-size:.88rem}.import-result-metrics{flex-wrap:wrap;gap:8px;display:flex}.import-result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.import-result-group{color:var(--text-2);background:#ffffffb8;border-radius:12px;gap:6px;padding:12px;font-size:.88rem;display:grid}.import-result-label{color:var(--text);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}.import-result-errors{color:#8a1c1c;gap:6px;font-size:.88rem;display:grid}.import-warning-banner{color:#92400e;background:#f59e0b1f;border:1px solid #f59e0b47;border-radius:12px;margin-top:14px;padding:12px 14px;font-size:.9rem;font-weight:600}.ti-error{color:#991b1b;background:#ef44441a;border:1px solid #ef444447;border-radius:12px;margin-top:14px;padding:12px 16px;font-size:.9rem;font-weight:500}.ti-loading{color:var(--text-secondary);background:#007aff0f;border-radius:12px;align-items:center;gap:10px;margin-top:14px;padding:12px 16px;font-size:.9rem;font-weight:500;display:flex}.ti-spinner{border:2px solid #007aff33;border-top-color:#007affcc;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite ti-spin}@keyframes ti-spin{to{transform:rotate(360deg)}}.import-detail-meta{font-size:var(--text-xs);color:var(--text-secondary);padding:6px 0}.import-rows-table{gap:10px;display:grid}.import-row{border:1px solid var(--divider-subtle);background:var(--bg);text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:12px 14px;display:grid}.import-row.active{border-color:var(--active);background:#007aff0f}.import-row-primary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.import-row-errors{color:#8a1c1c;margin-top:6px;font-size:.85rem}.import-row-resolution{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.import-resolution-chip{color:var(--text-2);background:#0f172a0f;border-radius:999px;align-items:center;padding:4px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.import-review-grid{grid-template-columns:minmax(0,1.3fr) 320px;gap:14px;display:grid}.import-detail-panel{border:1px solid var(--divider-subtle);background:#fbfcfd;border-radius:14px;align-content:start;gap:14px;padding:14px;display:grid}.import-detail-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.import-detail-title{font-weight:700}.import-detail-subtitle,.import-detail-note{color:var(--text-3);font-size:.88rem}.import-detail-chips{flex-wrap:wrap;gap:8px;display:flex}.import-detail-actions{flex-wrap:wrap;gap:10px;display:flex}.import-review-block{border:1px solid var(--divider-subtle);background:#f6f8fb;border-radius:12px;gap:8px;padding:12px;display:grid}.import-review-label{color:var(--text-2);font-size:.82rem;font-weight:700}.import-review-helper{color:var(--text-3);font-size:.82rem}.import-review-results{gap:8px;display:grid}.import-review-result{border:1px solid var(--divider-subtle);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.import-review-result-title{color:var(--text);font-size:.92rem;font-weight:700}.import-review-result-meta{color:var(--text-3);font-size:.82rem}.import-review-result-actions{flex-wrap:wrap;gap:8px;display:flex}.import-detail-fields{gap:10px;display:grid}.import-detail-field{border-bottom:1px solid var(--divider-subtle);gap:4px;padding-bottom:10px;display:grid}.import-detail-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.import-detail-value{color:var(--text);word-break:break-word;font-size:.92rem}.import-detail-errors{color:#8a1c1c;gap:6px;font-size:.88rem;display:grid}.import-status-summary{flex-wrap:wrap;gap:12px;display:flex}.status-duplicate,.status-failed,.status-invalid{color:#8a1c1c}.status-needs_review{color:#9a6700}.status-committed,.status-matched{color:#2f855a}.assess-toolbar{background:var(--surface);border-bottom:.5px solid var(--divider-medium);flex-wrap:nowrap;align-items:center;gap:10px;padding:10px 20px;display:flex;position:relative}.page-layout:not(.sidebar-hidden) .asg-workspace .assess-toolbar:before{content:"";background:var(--surface);border-bottom:.5px solid var(--divider-medium);pointer-events:none;width:20px;position:absolute;top:0;bottom:-.5px;left:-20px}.assess-course-select,.assess-search-input,.af-input,.af-textarea,.advanced-grid-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-base);font-size:var(--text-md)}.assess-seg-control{border-radius:var(--radius-sm);background:var(--divider-subtle);gap:2px;padding:2px;display:flex}.assess-seg-btn,.assess-ungraded-chip,.tb-dropdown-btn,.tb-action-btn,.focus-banner-btn,.btn.btn-ghost,.btn.btn-primary,.advanced-reset-btn,.advanced-danger-btn,.student-comment-btn,.rubric-row-menu,.btn-compact{font:inherit;border:1px solid #0000;border-radius:8px}.assess-seg-btn,.assess-ungraded-chip{color:var(--text-2);cursor:pointer;font-weight:500;font-size:var(--text-base);white-space:nowrap;background:0 0;padding:5px 14px;line-height:1.2;transition:all .18s cubic-bezier(.4,0,.2,1)}.assess-seg-btn:hover{color:var(--text)}.assess-seg-btn.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.assess-ungraded-chip{font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);align-items:center;gap:5px;padding:3px 10px;display:flex}.assess-ungraded-chip:hover{border-color:var(--priority)}.assess-ungraded-chip.active{background:var(--priority);color:#fff;border-color:var(--priority);box-shadow:none}.assess-search-wrap{align-items:center;display:flex;position:relative}.assess-search-icon{color:var(--text-3);font-size:var(--text-xs);pointer-events:none;line-height:1;position:absolute;left:9px}.assess-search-input{background:var(--overlay-hover);border:1px solid #0000;border-radius:8px;outline:none;width:100px;min-width:80px;padding:5px 12px 5px 28px;transition:all .2s}.assess-search-input::placeholder{color:var(--text-3)}.assess-search-input:focus{background:var(--surface);border-color:var(--active);width:150px;box-shadow:0 0 0 3px #007aff1f}.assess-toolbar-actions{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex;position:relative}.assess-expand-collapse{margin-left:4px}.tb-dropdown-wrap{position:relative}.tb-dropdown-btn,.btn.btn-ghost{border-color:var(--border);background:var(--surface);min-height:32px;color:var(--text-2);cursor:pointer;font-size:var(--text-base);border-radius:8px;padding:5px 12px}.tb-dropdown-btn:hover{border-color:var(--text-3);color:var(--text)}.tb-dropdown-btn.open{border-color:var(--active);color:var(--active);background:#007aff0a;box-shadow:0 0 0 3px #007aff29,inset 0 0 0 1px #007aff2e}.tb-action-btn,.btn.btn-primary,.focus-banner-btn,.student-comment-btn{background:var(--active);color:#fff;cursor:pointer;min-height:32px;font-weight:600;font-size:var(--text-base);white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:8px 16px;transition:all .15s}.tb-action-btn:hover,.btn.btn-primary:hover,.focus-banner-btn:hover{background:#0064d2;box-shadow:0 2px 8px #007aff33}.tb-show-all-btn{margin-left:2px}.tb-dropdown-panel{z-index:9000;border:1px solid var(--divider-strong);background:var(--surface);border-radius:12px;gap:14px;min-width:300px;max-width:420px;max-height:70vh;padding:14px 16px;display:none;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 8px 32px #00000024,0 2px 8px #0000000f}.tb-dropdown-panel.open{display:grid}.settings-title,.settings-row label,.advanced-section-title{font-family:SF Mono,ui-monospace,Menlo,monospace}.settings-title,.advanced-section-title{color:#666b74;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.settings-title{margin-top:2px}.settings-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-row label,.settings-row span{color:var(--text);font-size:1rem}.settings-row-rubrics{margin-bottom:6px}.tb-dropdown-panel .settings-row,.tb-dropdown-panel .advanced-check-row,.tb-dropdown-panel .advanced-action-row{min-height:36px}.advanced-method-select{background:var(--surface);width:auto;min-width:168px;min-height:40px;color:var(--text);font:inherit;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5 7 7.5 13 1.5' fill='none' stroke='%23444b57' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;border:1px solid #cfd3db;border-radius:12px;padding:0 40px 0 14px;font-size:.98rem}.advanced-helper-copy{color:#5a606b;margin-top:-2px;font-size:.94rem;line-height:1.45}.advanced-slider-row{align-items:center;gap:10px}.advanced-slider-row label{min-width:104px}.advanced-slider-row input[type=range],.advanced-category-slider-row input[type=range]{accent-color:var(--active);flex:1}.advanced-level-grid{grid-template-columns:44px minmax(0,1fr) 68px;align-items:center;gap:10px 12px;display:grid}.advanced-grid-heading,.advanced-section-title{align-self:end}.advanced-grid-cell.level{color:#4a4f57;font-size:.98rem;font-weight:700}.advanced-grid-input{background:var(--surface);min-height:42px;color:var(--text);border:1px solid #cfd3db;border-radius:12px;padding:0 16px;font-size:.98rem}.advanced-percent-input{text-align:center;width:100%}.advanced-reset-btn{color:#323741;cursor:pointer;background:#f2f3f5;border:1px solid #0000;border-radius:8px;justify-self:start;min-height:32px;padding:6px 14px;font-size:.88rem;font-weight:600}.advanced-check-row,.advanced-action-row{align-items:center;gap:12px;display:flex}.advanced-check-row{justify-content:flex-start;min-height:42px}.advanced-check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--active);margin:0 12px 0 0}.advanced-category-sliders{margin-top:8px}.advanced-category-range{width:100%;accent-color:var(--active);margin:0}.advanced-category-stats{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:start;gap:8px;margin-top:10px;display:grid}.advanced-category-stat{gap:2px;min-width:0;display:grid}.advanced-category-stat label{color:var(--text-2);font-size:.82rem;display:block}.advanced-category-stat span{color:var(--text);font-size:.82rem;font-weight:600;display:block}.advanced-category-stat-right{text-align:right}.advanced-category-arrow{text-align:center;color:var(--text-3);align-self:end;font-size:1rem}.advanced-check-row{align-items:center;gap:8px}.advanced-check-row span{font-size:.82rem;line-height:1.35}.advanced-section-divider{background:#cfd3db8c;height:1px;margin:12px 0 4px}.advanced-action-row .btn.btn-primary{min-width:auto;min-height:32px;line-height:1.1;font-size:var(--text-base);border-radius:8px;justify-content:center;padding:6px 12px}.advanced-danger-btn{color:#ff3b30;cursor:pointer;background:0 0;border:none;min-height:32px;padding:0 10px;font-size:.98rem;font-weight:500}.advanced-danger-btn:disabled{opacity:.4;cursor:not-allowed}.focus-banner+.asg-canvas{padding-top:16px}.focus-banner{z-index:0;background:var(--focus-banner-bg);border-bottom:1px solid var(--focus-banner-border);justify-content:space-between;align-items:center;padding:10px 20px;display:flex;position:relative}.page-layout:not(.sidebar-hidden) .asg-workspace .focus-banner:before{content:"";top:0;bottom:-1px;left:calc(-1 * var(--sidebar-w));width:var(--sidebar-w);background:var(--focus-banner-bg);border-bottom:1px solid var(--focus-banner-border);pointer-events:none;z-index:-1;position:absolute}.focus-banner-label{z-index:1;color:var(--text-1);font-size:var(--text-md);margin-left:-7px;position:relative}.asg-form-card,.mod-folder,.assess-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;box-shadow:0 1px 2px #0f172a0a,0 4px 12px #0f172a08}.asg-form-card{padding:24px 28px}.af-field{margin-bottom:14px;display:block}.af-label,.mod-folder-meta,.import-detail-label,.score-grid-header-name,.score-col-header-id{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:600}.af-input,.af-textarea{outline:none;width:100%;padding:9px 12px;transition:border .12s}.af-input:focus,.af-textarea:focus{border-color:var(--active);box-shadow:0 0 0 2px #007aff26}.af-textarea{resize:vertical;min-height:36px;line-height:1.5;transition:border .12s,min-height .2s}.af-textarea:focus{min-height:80px}.af-inline-row,.af-row,.af-students-header,.af-actions{gap:12px;display:flex}.af-inline-row>:first-child,.af-row>.af-field{flex:1}.af-row-dates .af-today-block{flex:1.2}.af-static-date{color:#1f2937;align-items:center;min-height:46px;font-size:.95rem;font-weight:600;display:flex}.af-type-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);gap:0;display:flex;overflow:hidden}.af-row .af-field:nth-child(3) .af-type-toggle{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.af-type-btn{color:var(--text-2);font:inherit;font-size:var(--text-base);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:0;flex:1;padding:8px 12px;font-weight:500;transition:all .12s}.af-type-btn:first-child{border-right:1px solid var(--border)}.af-type-btn:hover{background:var(--active-light)}.af-type-btn.active{background:var(--active);color:#fff}.af-students-field{border:1px solid var(--border);border-radius:var(--radius);padding:16px}.af-students-actions{gap:10px;margin-left:auto;display:flex}.btn-compact{min-height:28px;padding:0 12px}.af-student-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 18px;display:grid}.af-student-check{align-items:center;gap:8px;display:flex}.af-student-count{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs)}.af-chip{border:1px solid var(--border);background:var(--surface);min-width:36px;height:32px;color:var(--text-2);font-family:var(--font-base);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:.72rem}.af-chip.active{background:var(--active);border-color:var(--active);color:#fff}.af-max-points-field{flex:none}.af-weight-field{flex:none;min-width:92px}.af-max-points-row{align-items:center;gap:6px;display:flex}.af-max-points-input{text-align:center;width:92px}.af-max-points-picks{gap:4px;display:flex}.collab-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:10px;padding:14px;animation:.2s ease-out collabSlideIn}@keyframes collabSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.collab-panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.collab-panel-title{color:var(--text-3);font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:700}.collab-panel-actions{gap:6px;display:flex}.collab-panel-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--font-base);font-size:var(--text-sm);cursor:pointer;border-radius:8px;padding:5px 12px;font-weight:600;transition:all .12s}.collab-panel-btn:hover{border-color:var(--active);color:var(--active);background:#007aff0a}.collab-panel-btn.active{border-color:var(--active);background:var(--active);color:#fff}.collab-panel-empty{color:var(--text-3);text-align:center;padding:20px;font-size:.82rem}.collab-student-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px;max-height:240px;padding:2px;display:grid;overflow-y:auto}.collab-student-item{border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);cursor:pointer;align-items:center;gap:8px;padding:5px 8px;transition:background .1s;display:flex}.collab-student-item:hover{background:var(--overlay-hover)}.collab-student-item input[type=checkbox]{accent-color:var(--active);flex-shrink:0}.collab-student-item.excluded{opacity:.4;text-decoration:line-through}.collab-groups-container{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;max-height:360px;padding:2px;display:grid;overflow-y:auto}.collab-group-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:60px;padding:10px}.collab-group-header{color:var(--text-3);font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:700;display:flex}.collab-group-member{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-sm);cursor:grab;align-items:center;gap:6px;margin:2px 0;padding:4px 6px;transition:all .1s;display:flex}.collab-group-member:active{cursor:grabbing;box-shadow:0 2px 8px #0000001f}.member-avatar{border-radius:var(--radius-sm);background:var(--active);color:#fff;width:22px;height:22px;font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-2xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.collab-stepper{align-items:center;gap:8px;margin-bottom:12px;display:flex}.collab-stepper-label{color:var(--text-2);font-size:var(--text-base);font-weight:500}.collab-stepper-controls{align-items:center;gap:0;display:flex}.collab-stepper-btn{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text);font-size:var(--text-xl);cursor:pointer;justify-content:center;align-items:center;font-weight:700;display:flex}.collab-stepper-btn:first-child{border-radius:8px 0 0 8px}.collab-stepper-btn:last-child{border-radius:0 8px 8px 0}.collab-stepper-btn:hover{background:var(--bg)}.collab-stepper-val{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);width:40px;height:32px;color:var(--text);font-size:var(--text-lg);justify-content:center;align-items:center;font-weight:700;display:flex}.collab-stepper-info{color:var(--text-3);font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);margin-left:8px}.af-tags-container,.af-cc-chips,.af-standards-list{flex-direction:column;gap:12px;display:flex}.af-standards-group{gap:8px;display:grid}.af-standards-group-ungrouped{border:1px dashed var(--divider-strong);border-radius:18px;padding:14px 10px 10px}.af-standards-group-label{color:var(--text-2);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;align-items:center;gap:8px;font-weight:700;display:inline-flex}.af-standards-group-label-muted{color:var(--text-3)}.af-standards-group-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.af-standards-folder{font-size:var(--text-sm)}.af-standards-group-body{gap:8px;display:grid}.af-standards-row{border:1px solid var(--divider-subtle);background:var(--surface);cursor:pointer;border-radius:18px;align-items:center;gap:10px;min-height:56px;padding:0 14px;transition:background .1s,border-color .1s;display:flex}.af-standards-row:hover{background:#007aff08}.af-standards-row.checked{background:#007aff08;border-color:#007aff2e}.af-standards-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--active);flex-shrink:0}.af-standards-color-bar{border-radius:2px;flex-shrink:0;width:4px;height:30px}.af-standards-tag{background:var(--overlay-hover);color:var(--text-2);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);white-space:nowrap;border-radius:12px;padding:1px 8px;font-weight:600}.af-standards-name{min-width:0;color:var(--text);font-size:var(--text-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.af-tag-item{border-bottom:1px solid var(--overlay-hover);cursor:pointer;font-size:var(--text-md);align-items:center;gap:10px;padding:8px 12px;transition:background .1s;display:flex}.af-tag-item:hover{background:#007aff08}.af-tag-item.checked{background:#1a1a2e0f}.af-tag-id{width:32px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);flex-shrink:0;font-weight:600}.af-cc-chips{flex-flow:wrap;gap:6px}.af-cc-chip{font-family:var(--font-base);font-size:var(--text-base);border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-weight:500;transition:all .12s;display:flex}.af-cc-chip:hover{border-color:var(--cc-color);color:var(--text)}.af-cc-chip.active{border-color:var(--cc-color);background:var(--overlay-hover);color:var(--text);font-weight:600}.af-cc-dot{border-radius:999px;width:8px;height:8px}.mod-folder{margin-bottom:16px;overflow:visible}.mod-folder.no-module{border-style:dashed;border-color:var(--border)}.mod-folder.no-module .mod-folder-header{opacity:.7}.mod-folder.drag-over{border-color:var(--active);background:#007aff08;box-shadow:0 0 0 3px #007aff26}.mod-folder-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #0000;align-items:center;gap:10px;min-height:48px;padding:14px 16px;transition:background .1s,padding .12s;display:flex;position:relative}.mod-folder.open .mod-folder-header{border-bottom-color:var(--border)}.mod-folder-header:hover{background:var(--overlay-hover)}.mod-folder.drag-over:not(.open) .mod-folder-header{padding:20px 16px}.mod-folder-grip,.assess-header-grip{color:var(--text-3);font-size:var(--text-lg);cursor:grab;opacity:.2;-webkit-user-select:none;user-select:none;flex-shrink:0;margin:-4px 0;padding:4px 2px;transition:opacity .12s}.mod-folder-header:hover .mod-folder-grip{opacity:.5}.mod-folder-grip:active{cursor:grabbing;opacity:.7}.mod-folder.dragging{opacity:.35}.mod-drop-zone{z-index:5;border-radius:2px;height:0;margin:-22px 0;padding:22px 0;transition:all .12s;position:relative}.mod-drop-zone:after{content:"";background:0 0;border-radius:2px;height:3px;transition:background .12s,box-shadow .12s;display:block}.mod-drop-zone.drag-over{margin:-18px 0;padding:26px 0}.mod-drop-zone.drag-over:after{background:var(--active);box-shadow:0 0 10px #007aff4d}.assess-header-grip{display:none}.mod-folder-chevron,.assess-chevron{width:20px;color:var(--text-3);text-align:center;flex-shrink:0;transition:transform .15s}.mod-folder.open .mod-folder-chevron{transform:rotate(90deg)}.mod-folder-color,.mod-folder-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.mod-folder-color{cursor:pointer;border:1.5px solid #0000001a;position:relative}.mod-folder-color:hover{transition:transform .1s;transform:scale(1.2)}.mod-folder-color input[type=color]{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.mod-folder-name,.mod-folder-name-input,.assess-title,.student-rubric-name{color:var(--text);font-size:var(--text-lg);font-weight:600}.mod-folder-name-muted{color:var(--text-3);font-size:.95rem;font-weight:500}.mod-folder-name-input{cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;border-bottom:1.5px solid #0000;outline:none;width:auto;max-width:320px;padding:2px 4px}.mod-folder-name-input:hover{border-bottom-color:var(--border)}.mod-folder-name-input:focus{cursor:text;background:var(--overlay-hover);border-bottom-color:var(--active)}.mod-folder-meta{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;flex-shrink:0;margin-left:auto;font-weight:500}.mod-folder-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex}.mod-folder-header:hover .mod-folder-actions{opacity:1}.mod-folder-action{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-3);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mod-folder-action:hover{background:var(--surface-2);color:var(--text)}.mod-folder-action.delete:hover{color:var(--priority)}.mod-folder.drop-ready .mod-folder-header{transition:background .14s,box-shadow .14s,border-color .14s}.mod-folder.drag-over .mod-folder-header{background:#007aff0f;box-shadow:inset 0 0 0 1px #007aff33}.mod-folder-body{padding:6px 10px 10px;display:none}.mod-folder.open .mod-folder-body{display:block}.mod-folder-body .assess-card{border:1px solid #0f172a14;margin-bottom:8px;box-shadow:0 1px 2px #0f172a06}.mod-folder-body .assess-card:last-child{margin-bottom:0}.assess-card{margin-bottom:12px;overflow:visible}.assess-card.active{border-color:var(--active)}.assess-card.open .assess-chevron{color:var(--active)}.assess-header{cursor:pointer;align-items:center;gap:10px;padding:12px 16px 12px 32px;transition:background .1s;display:flex;position:relative}.assess-header:hover{background:#007aff08}.assess-card[draggable=true] .assess-header:before{content:"⠿";width:24px;color:var(--text-3);opacity:.22;cursor:grab;justify-content:center;align-items:center;font-size:18px;transition:opacity .12s;display:flex;position:absolute;top:0;bottom:0;left:8px}.assess-card[draggable=true]:hover .assess-header:before{opacity:.48}.assess-card.dragging{opacity:.38;transform:scale(.985)}.assess-card.drag-sibling{transition:box-shadow .12s,border-color .12s,background .12s}.mod-folder.drag-over .assess-card.drag-sibling{border-color:#007aff38}.asg-canvas.drag-over-unassigned{background:linear-gradient(#007aff0a,#007aff00 140px),0 0}.assess-unassigned-drop-indicator{color:var(--active);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);letter-spacing:.05em;text-align:center;text-transform:uppercase;background:#007aff0d;border:2px dashed #007aff80;border-radius:12px;margin:0 16px 12px 0;padding:12px 14px;font-weight:700}@keyframes merge-pulse{0%{transform:scale(1);box-shadow:0 0 #6366f14d}50%{transform:scale(.94);box-shadow:0 0 0 8px #6366f126}to{transform:scale(.96);box-shadow:0 0 0 4px #6366f140}}.assess-card.merge-target{z-index:2;border-color:var(--mod-badge);background:#6366f10f;border-radius:16px;transition:border-radius .2s,background .2s,border-color .2s;animation:.35s ease-out forwards merge-pulse;position:relative}.assess-card.merge-target:after{content:"📁 Create Module";z-index:3;border-radius:var(--radius);background:var(--mod-badge);color:#fff;white-space:nowrap;pointer-events:none;padding:3px 10px;font-size:12px;font-weight:600;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.assess-header-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.assess-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assess-meta>*{flex-shrink:0}.assess-header-actions{opacity:0;pointer-events:none;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;transition:opacity .12s,transform .12s;display:flex;transform:translate(6px)}.assess-header:hover .assess-header-actions,.assess-card.open .assess-header-actions{opacity:1;pointer-events:auto;transform:translate(0)}.assess-inline-pill{color:var(--text-3);font-size:var(--text-xs);letter-spacing:var(--tracking-tight);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;font-weight:510;transition:all .15s}.assess-inline-pill:hover{color:var(--text-2)}.assess-title{white-space:normal;word-break:break-word;font-size:18px;font-weight:600;line-height:1.3}.assess-header-action-btn{border:1px solid var(--border);min-height:30px;color:var(--text-3);font-size:var(--text-sm);cursor:pointer;background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 10px;transition:all .12s;display:flex;box-shadow:0 2px 6px #0f172a0f}.assess-header-action-btn:hover{color:var(--text);background:#fff;border-color:#0f172a29}.assess-header-action-btn .action-icon{font-size:.95rem;line-height:1}.assess-header-action-btn .action-label{letter-spacing:.06em;text-transform:uppercase;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.72rem;font-weight:700}.assess-header-action-btn.action-delete{color:var(--text-3)}.assess-header-action-btn.action-delete:hover{color:var(--priority);background:#fff5f5;border-color:#c5303038}.rubric-badge,.cc-badge,.student-exception-chip{border:1px solid;border-radius:12px;justify-content:center;align-items:center;min-height:20px;padding:1px 7px;font-size:11px;font-weight:600;transition:background .12s,border-color .12s,color .12s,transform .12s;display:inline-flex}.rubric-badge{border-color:var(--text-3);color:var(--text-3);letter-spacing:.02em;cursor:default;background:0 0;gap:3px;font-family:SF Mono,ui-monospace,Menlo,monospace}.cc-badge{letter-spacing:.02em;cursor:default;background:0 0;padding:1px 7px;font-family:SF Mono,ui-monospace,Menlo,monospace}.rubric-badge:hover,.cc-badge:hover{background:#007aff0a;transform:translateY(-.5px)}.assess-date{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:13px;line-height:1.2}.rubric-view-toggle{background:var(--divider-subtle);border-radius:8px;gap:1px;margin-right:4px;padding:2px;display:inline-flex}.rubric-view-btn{color:var(--text-3);font-family:var(--font-base);letter-spacing:-.01em;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:510;line-height:1.2;transition:all .15s}.rubric-view-btn.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000001f}.rubric-view-btn:hover:not(.active){color:var(--text-2)}.assess-body{border-top:1px solid var(--border);padding:0 16px 16px;display:none}.assess-card.open .assess-body{display:block}.score-grid{margin:10px 0}.score-grid-header{border-bottom:2px solid var(--border);align-items:center;gap:0;padding:6px 0;display:flex}.score-grid-header-name{width:140px;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);flex-shrink:0;font-weight:500}.score-col-header{flex:1;min-width:90px}.score-col-header-name{font-size:var(--text-xs);color:var(--text-3);line-height:1.3;display:block}.score-row.has-status .pts-input-cell,.score-row.has-status .pts-pct-cell{opacity:.2;pointer-events:none}.score-row.has-late{border-left:3px solid var(--score-2);padding-left:8px}.pts-input-cell{flex:1;justify-content:center;align-items:center;gap:2px;min-width:90px;display:flex}.gb-pts-input{width:64px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-md);text-align:right;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);outline:none;padding:4px 6px;font-weight:600}.gb-pts-input:focus{border-color:var(--active);box-shadow:0 0 0 2px #007aff26}.gb-pts-input:disabled{opacity:.3;cursor:not-allowed}.gb-pts-max{font-size:var(--text-sm);color:var(--text-3);font-weight:500}.pts-pct-cell{flex:1;justify-content:center;align-items:center;min-width:60px;display:flex}.gb-pts-live-pct{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);color:var(--text-2);font-weight:600}.rubric-matrix-header{border-bottom:2px solid var(--border);grid-template-columns:240px repeat(4,minmax(140px,1fr)) 36px;align-items:stretch;margin-top:8px;margin-bottom:4px;padding:0 0 6px;display:grid}.score-grid-header{border-bottom:2px solid var(--border);align-items:stretch;gap:0;margin-bottom:4px;padding:0 0 6px;display:flex}.score-grid-header-name{width:140px;color:var(--text-3);flex-shrink:0;align-items:flex-end;padding:4px 0;display:flex}.score-col-header{border-radius:var(--radius-sm);text-align:center;flex:1;min-width:90px;padding:3px 2px;transition:background .1s;position:relative}.score-col-header:hover{background:#007aff1f}.score-col-header-id{line-height:1.3;font-size:var(--text-sm);display:block}.rubric-band{border-radius:12px;justify-content:center;align-items:center;min-height:40px;display:flex}.rubric-band.extending{color:#1f6fd8;background:#eaf1ff}.rubric-band.proficient{color:#3f7f3b;background:#edf5e8}.rubric-band.developing{color:#ca7a04;background:#fbf3e8}.rubric-band.emerging{color:#e55445;background:#fcedec}.student-rubric-block{border-top:1px solid #edf0f3;grid-template-columns:200px minmax(0,1fr);gap:18px;padding:14px 0;display:grid}.student-rubric-meta{align-content:start;gap:12px;display:grid}.student-rubric-actions{flex-wrap:wrap;gap:8px;display:flex}.student-exception-chip{color:#636a73;background:#fff;border-width:1px;border-color:#d4d8df;min-height:26px;padding:0 9px;font-size:.76rem}.student-comment-btn{min-height:28px;padding:0 12px;font-size:.82rem}.rsg-grid{margin:8px 0}.additional-tags-block{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.additional-tags-heading{margin-bottom:6px}.additional-tags-label{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.6rem;font-weight:600}.rsg-header{border-bottom:1px solid var(--border);grid-template-columns:200px 1fr 36px;margin-bottom:6px;padding:0 0 8px;display:grid}.rsg-header-spacer{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);align-items:flex-end;padding:4px 0;display:flex}.rsg-header-inner{align-items:stretch;gap:0;display:flex}.rsg-header-crit-spacer{flex-shrink:0;width:160px}.rsg-header-levels{flex:1;gap:2px;display:flex}.rsg-header-level{font-size:var(--text-base);letter-spacing:.01em;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s var(--ease-out);background:0 0;border:none;border-radius:8px;flex:1;padding:8px 4px;font-weight:600}.rsg-header-level:hover{transform:scale(1.02)}.rsg-header-level.hl1{color:var(--score-1);background:#d32f2f0f}.rsg-header-level.hl2{color:var(--score-2);background:#c07a000f}.rsg-header-level.hl3{color:var(--score-3);background:#2e7d320f}.rsg-header-level.hl4{color:var(--score-4);background:#1565c00f}.rsg-header-level.hl1:hover{background:#d32f2f24}.rsg-header-level.hl2:hover{background:#c07a0024}.rsg-header-level.hl3:hover{background:#2e7d3224}.rsg-header-level.hl4:hover{background:#1565c024}.rsg-header-action{flex-shrink:0;width:36px}.rsg-student{border-bottom:1px solid var(--divider-subtle);grid-template-columns:200px 1fr 36px;align-items:start;gap:0;padding:14px 0;display:grid}.rsg-student:last-child{border-bottom:none}.rsg-student:hover{border-radius:var(--radius-sm);background:#007aff05;margin:0 -8px;padding-left:8px;padding-right:8px}.rsg-student.is-excused{background:#1d4ed80a}.rsg-student.is-no-score{background:#4755690a}.rsg-student.is-late{background:#ff95000d}.rsg-student.has-status .score-row-action{opacity:.2;pointer-events:none}.rsg-student-name{color:var(--text);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);padding-top:4px;padding-right:16px;font-weight:700;line-height:1.25}.rsg-criteria{flex-direction:column;gap:4px;display:flex}.additional-tags-inline-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 2px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.64rem;font-weight:700}.rsg-criterion-row{border:1px solid var(--overlay-pressed);background:var(--surface);min-height:36px;transition:box-shadow .15s var(--ease-out);border-radius:8px;align-items:stretch;gap:0;display:flex;overflow:hidden}.rsg-criterion-row:hover{box-shadow:var(--shadow-sm)}.rsg-criterion-label{border-right:1px solid var(--divider-subtle);width:160px;color:var(--text-2);font-size:var(--text-base);background:#00000004;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;font-weight:600;line-height:1.3;display:flex}.rsg-criterion-row.is-tag .rsg-criterion-label{background:#007aff08;border-right-color:#007aff1a}.rsg-tag-icon{opacity:.4;flex-shrink:0;width:14px;height:14px}.rsg-levels{flex:1;display:flex}.rsg-level{border-left:1px solid var(--divider-subtle);color:var(--divider-strong);font-size:var(--text-sm);text-align:center;-webkit-user-select:none;user-select:none;transition:all .12s var(--ease-out);flex:1;justify-content:center;align-items:center;padding:8px 4px;font-weight:500;display:flex}.rsg-level:first-child{border-left:none}.rsg-level:hover:not(.active){color:var(--text-2)}.rsg-level.active.l4{background:var(--score-4);color:#fff;font-weight:700}.rsg-level.active.l3{background:var(--score-3);color:#fff;font-weight:700}.rsg-level.active.l2{background:var(--score-2);color:#fff;font-weight:700}.rsg-level.active.l1{background:var(--score-1);color:#fff;font-weight:700}.rsg-level.active.mixed{box-shadow:inset 0 0 0 2px #ffffff8c}.rsg-level.l4:not(.active):hover{color:var(--score-4);background:#1565c014}.rsg-level.l3:not(.active):hover{color:var(--score-3);background:#2e7d3214}.rsg-level.l2:not(.active):hover{color:var(--score-2);background:#c07a0014}.rsg-level.l1:not(.active):hover{color:var(--score-1);background:#d32f2f14}.rsg-level.suppressed{opacity:.32}.score-row-action{justify-content:center;align-items:flex-start;width:36px;padding-top:4px;display:flex;position:relative}.student-status-toggles{gap:6px;margin-top:6px;display:flex}.student-status-row2{margin-top:2px}.student-status-btn{border:1px solid var(--border);border-radius:var(--radius-xl);min-height:26px;color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:all .15s var(--ease-out);background:0 0;padding:4px 10px;font-weight:600;line-height:1.3}.student-status-btn:hover{border-color:var(--text-2);color:var(--text-2);background:#00000008}.student-status-btn.active{color:#fff;border-color:#0000}.student-status-btn.active.excused{background:#1d4ed8}.student-status-btn.active.no-score{background:#475569}.student-status-btn.active.late{background:#ff9500}.comment-btn{border-radius:var(--radius-xl);background:var(--active);color:#fff;font-family:var(--font-base);font-size:var(--text-xs);letter-spacing:var(--tracking-tight);cursor:pointer;border:none;align-items:center;gap:4px;padding:4px 12px;font-weight:600;transition:all .15s;display:inline-flex}.comment-btn:hover{background:var(--btn-hover-blue)}.comment-btn.active{box-shadow:0 0 0 3px #007aff2e}.comment-btn .comment-count{border-radius:var(--radius);min-width:14px;font-size:var(--text-2xs);text-align:center;background:#ffffff40;padding:0 5px;font-weight:700}.comment-popover-overlay{z-index:9999;background:var(--divider-strong);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.comment-popover{background:var(--surface);width:min(420px,90vw);max-height:80vh;box-shadow:0 20px 60px #0003, 0 0 0 .5px var(--overlay-pressed);border-radius:14px;flex-direction:column;animation:.15s ease-out commentPopIn;display:flex}@keyframes commentPopIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.comment-popover-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.comment-popover-title{font-family:var(--font-base);font-size:var(--text-md);color:var(--text);letter-spacing:var(--tracking-tight);font-weight:650}.comment-popover-subtitle{color:var(--text-3);font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);margin-top:1px}.comment-popover-close{border-radius:var(--radius-sm);color:var(--text-3);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;padding:4px 8px;transition:all .15s}.comment-popover-close:hover{background:var(--divider-subtle);color:var(--text)}.comment-popover-body{flex:1;padding:12px 20px;overflow-y:auto}.comment-popover-entries{flex-direction:column;gap:6px;display:flex}.comment-entry{background:var(--bg);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.comment-entry-text{color:var(--text);font-size:var(--text-base);flex:1;line-height:1.45}.comment-entry-date{color:var(--text-3);flex-shrink:0;margin-top:2px;font-family:SF Mono,ui-monospace,monospace;font-size:.52rem}.comment-entry-del{color:var(--text-3);font-size:var(--text-xs);opacity:0;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;transition:opacity .15s}.comment-entry:hover .comment-entry-del{opacity:1}.comment-entry-del:hover{color:var(--priority)}.comment-popover-empty{color:var(--text-3);font-size:var(--text-base);text-align:center;padding:20px 0;font-style:italic}.comment-popover-footer{border-top:1px solid var(--border);gap:8px;padding:12px 20px 16px;display:flex}.comment-popover-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-family:var(--font-base);font-size:var(--text-base);outline:none;flex:1;padding:8px 14px;transition:border-color .15s}.comment-popover-input:focus{border-color:var(--active);box-shadow:0 0 0 3px #007aff14}.comment-popover-input::placeholder{color:var(--text-3)}.comment-popover-submit{border-radius:var(--radius);background:var(--active);color:#fff;font-family:var(--font-base);font-size:var(--text-base);cursor:pointer;border:none;padding:8px 18px;font-weight:600;transition:background .15s}.comment-popover-submit:hover{background:var(--btn-hover-blue)}.rsg-descriptor-bar{z-index:10000;border:1px solid var(--overlay-pressed);border-radius:var(--radius);background:var(--surface-glass);width:calc(100% - 32px);max-width:1400px;color:var(--text);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);align-items:center;gap:14px;padding:6px 16px;display:flex;position:fixed;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000d}.rsg-descriptor-left{flex-shrink:0;align-items:center;gap:8px;display:flex}.rsg-descriptor-label{color:var(--text);font-size:var(--text-base);white-space:nowrap;font-weight:600}.rsg-descriptor-tags{flex-wrap:nowrap;gap:4px;display:flex}.rsg-descriptor-tag{border-radius:var(--radius-xl);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;background:#00000008;border:1px solid;padding:1px 8px;font-weight:500}.rsg-descriptor-text{border-left:1.5px solid var(--border);min-width:0;color:var(--text-2);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:14px;font-weight:400;line-height:1.35;overflow:hidden}.rsg-descriptor-bar .rsg-descriptor-idle{color:var(--text-3);font-size:var(--text-sm);font-style:italic}.student-rubric-grid{gap:6px;display:grid}.rubric-matrix-row{grid-template-columns:176px repeat(4,minmax(140px,1fr)) 36px;display:grid}.score-row{border-bottom:1px solid var(--overlay-hover);align-items:stretch;gap:0;padding:6px 0;display:flex;position:relative}.score-row:last-child{border-bottom:none}.score-row:hover{background:#007aff08;border-radius:4px;margin:0 -8px;padding-left:8px;padding-right:8px}.score-name{width:140px;font-size:var(--text-md);flex-shrink:0;padding-top:2px;font-weight:500}.rubric-criterion-name{color:#5a616b;border:1px solid #e7eaef;border-right:none;border-radius:12px 0 0 12px;align-items:center;padding:0 14px;font-weight:600;display:flex}.rubric-choice,.rubric-row-menu{color:#1f29372e;background:#fff;border:1px solid #e7eaef;justify-content:center;align-items:center;min-height:42px;display:flex}.rubric-choice.active{color:#fff;font-weight:700}.rubric-choice.active.extending{background:#1f6fd8;border-color:#1f6fd8}.rubric-choice.active.proficient{background:#35853a;border-color:#35853a}.rubric-choice.active.developing{background:#d28716;border-color:#d28716}.rubric-choice.active.emerging{background:#e55445;border-color:#e55445}.rubric-row-menu{color:#525862;cursor:pointer;border-left:none;border-radius:0 12px 12px 0}.rubric-row-menu-wrap{position:relative}.rubric-row-menu-popover{z-index:4;border:1px solid var(--border);background:#fff;border-radius:12px;gap:2px;min-width:160px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 28px #0f172a24}.rubric-row-menu-item{width:100%;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 10px}.rubric-row-menu-item:hover{background:#007aff0f}.mod-folder-empty{color:var(--text-3);font-size:var(--text-base);text-align:center;padding:28px 16px;font-style:italic}.add-module-btn{border:2px dashed var(--border);border-radius:var(--radius);width:100%;color:var(--text-3);cursor:pointer;font-family:var(--font-base);font-size:var(--text-md);background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:14px;font-weight:500;transition:all .12s;display:flex}.add-module-btn:hover{border-color:var(--active);color:var(--active);background:#007aff08}.btn.btn-primary.btn-muted{opacity:.72}.col-fill-menu{z-index:9999;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:140px;padding:4px;display:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000001f}.col-fill-menu.open{display:block}.col-fill-option{border-radius:var(--radius-xs);width:100%;color:var(--text);font-family:var(--font-base);font-size:var(--text-base);white-space:nowrap;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:5px 8px;display:flex}.col-fill-option:hover{background:var(--active-light)}.col-fill-dot{color:#fff;width:14px;height:14px;font-size:var(--text-2xs);border-radius:4px;justify-content:center;align-items:center;font-weight:700;display:flex}.row-fill-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:28px;height:28px;color:var(--text-3);font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;transition:all .1s;display:flex;position:relative}.row-fill-btn:hover{border-color:var(--active);background:var(--surface);color:var(--active)}.af-collab-grid{gap:12px;display:grid}.af-collab-grid.pairs{grid-template-columns:repeat(6,minmax(0,1fr))}.af-collab-grid.groups{grid-template-columns:repeat(4,minmax(0,1fr))}.af-collab-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:#f8f9fb;overflow:hidden}.af-collab-card-header,.af-group-count-row{color:var(--text-2);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:12px;font-weight:700;display:flex}.af-collab-card-header{justify-content:space-between;padding:10px 12px}.af-group-count-row{margin-bottom:14px}.af-collab-card-body{gap:6px;padding:0 10px 12px;display:grid}.af-collab-student{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:10px;min-height:34px;padding:0 10px;display:flex}.af-collab-avatar{background:var(--active);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.7rem;font-weight:700;display:inline-flex}.af-group-stepper{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.af-group-stepper button,.af-group-stepper span{justify-content:center;align-items:center;width:36px;height:34px;display:inline-flex}.af-group-stepper button{cursor:pointer;background:0 0;border:none}.af-group-summary{color:var(--text-3);font-size:var(--text-md);text-transform:none;letter-spacing:0;font-family:var(--font-base)}.rubric-modal-overlay{z-index:5000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.15s rubricFadeIn;display:flex;position:fixed;inset:0}@keyframes rubricFadeIn{0%{opacity:0}to{opacity:1}}.rubric-editor{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:80vw;min-width:700px;max-width:1200px;height:85vh;max-height:85vh;animation:.15s rubricSlideIn;display:flex;box-shadow:0 20px 60px #00000038}.rubric-editor.rubric-editor-bank{min-width:860px;max-width:1280px;height:min(88vh,900px)}.rubric-editor-bank .rubric-editor-body{overflow:hidden}@keyframes rubricSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.rubric-editor-header,.rubric-editor-footer{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:20px 28px 16px;display:flex}.rubric-editor-footer{border-top:1px solid var(--border);background:var(--surface);border-bottom:none;border-radius:0 0 14px 14px;justify-content:flex-end;gap:8px;padding:14px 28px}.rubric-editor-title{color:var(--text);font-family:var(--font-base);font-size:var(--text-2xl);margin:0;font-weight:600}.rubric-editor-title-wrap{flex:1;min-width:0}.rubric-editor-subtitle{color:var(--text-2);font-size:var(--text-base);margin:4px 0 0;line-height:1.45}.rubric-editor-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:32px;height:32px;color:var(--text-3);font-size:var(--text-lg);cursor:pointer;justify-content:center;align-items:center;transition:all .1s;display:flex}.rubric-editor-close:hover{border-color:var(--active);color:var(--text)}.rubric-editor-body{flex:1;padding:24px 28px;overflow-y:auto}.rubric-bank-layout{border:1px solid var(--border);background:var(--bg);border-radius:14px;grid-template-rows:1fr;grid-template-columns:minmax(260px,320px) minmax(0,1fr);height:100%;display:grid;overflow:hidden}.rubric-bank-list{border-right:1px solid var(--border);background:#007aff08;align-content:start;gap:8px;padding:18px;display:grid;overflow-y:auto}.rubric-bank-item{background:var(--surface);width:100%;color:var(--text);text-align:left;border:1px solid #0000;border-radius:12px;align-items:center;gap:4px;padding:4px 4px 4px 0;transition:all .12s;display:flex}.rubric-bank-item:hover{border-color:#007aff33;box-shadow:0 4px 16px #0f172a0f}.rubric-bank-item.active{background:#007aff14;border-color:#007aff59;box-shadow:inset 0 0 0 1px #007aff29}.rubric-bank-item-select{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;gap:4px;padding:10px 12px;display:grid}.rubric-bank-item-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .12s;display:flex}.rubric-bank-item:hover .rubric-bank-item-actions{opacity:1}.rubric-bank-action-btn{color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-weight:500;transition:background .1s,color .1s}.rubric-bank-action-btn:hover{color:#007affe6;background:#007aff1a}.rubric-bank-action-btn.delete:hover{color:#ff3b30e6;background:#ff3b301a}.rubric-bank-name{font-size:var(--text-md);font-weight:600}.rubric-bank-meta,.rubric-bank-summary-label{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.rubric-bank-detail{background:var(--surface);align-content:start;gap:20px;padding:26px 28px;display:grid;overflow-y:auto}.rubric-bank-summary{gap:10px;display:grid}.rubric-bank-summary-name{color:var(--text);font-size:1.45rem;font-weight:700;line-height:1.15}.rubric-bank-summary-copy{max-width:44ch;color:var(--text-2);font-size:var(--text-md);line-height:1.55}.rubric-bank-preview{border:1px solid var(--border);background:linear-gradient(#007aff08,#0f172a03);border-radius:12px;overflow:clip}.rubric-bank-preview-header{border-bottom:1px solid var(--border);background:#ffffffb3;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.rubric-bank-preview-meta{color:var(--text-2);font-size:var(--text-sm);font-weight:600}.rubric-bank-preview-list{gap:12px;padding:14px;display:grid}.rubric-bank-preview-card{background:#ffffffe6;border:1px solid #0f172a14;border-radius:12px;gap:12px;padding:14px;display:grid}.rubric-bank-preview-card-top{align-items:flex-start;gap:12px;display:flex}.rubric-bank-preview-index{width:26px;height:26px;color:var(--active);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);background:#007aff1f;border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.rubric-bank-preview-title-wrap{gap:8px;min-width:0;display:grid}.rubric-bank-preview-title{color:var(--text);font-size:var(--text-md);font-weight:700}.rubric-bank-preview-tags{flex-wrap:wrap;gap:6px;display:flex}.rubric-bank-preview-tag{color:var(--text-2);font-size:var(--text-sm);background:#0f172a0f;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.rubric-bank-preview-tag strong{color:var(--text);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs)}.rubric-bank-preview-tag-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.rubric-bank-preview-empty,.rubric-bank-empty{color:var(--text-2);font-size:var(--text-sm);line-height:1.5}.rubric-bank-empty{border:1px dashed var(--border);text-align:center;background:#0f172a05;border-radius:12px;justify-content:center;align-items:center;min-height:180px;padding:24px;display:flex}.rubric-bank-preview-levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rubric-bank-preview-level{border:1px solid #0000;border-radius:10px;gap:6px;padding:10px 12px;display:grid}.rubric-bank-preview-level-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.rubric-bank-preview-level-copy{color:var(--text-2);font-size:var(--text-sm);line-height:1.5}.rubric-bank-preview-level.level-4{background:#38b54a14;border-color:#38b54a33}.rubric-bank-preview-level.level-3{background:#1fa1440f;border-color:#1fa1442e}.rubric-bank-preview-level.level-2{background:#eda60014;border-color:#eda60033}.rubric-bank-preview-level.level-1{background:#d32f2f12;border-color:#d32f2f2e}.rubric-bank-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.rubric-name-input,.rubric-level-text{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font-base)}.rubric-name-input{width:100%;color:var(--text);font-size:var(--text-lg);margin-bottom:20px;padding:11px 14px;font-weight:600}.rubric-name-input:focus{border-color:var(--active);box-shadow:0 0 0 2px #007aff26}.rubric-criteria-stack{gap:8px;display:grid}.rubric-criterion{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:8px;overflow:hidden}.rubric-criterion.collapsed .rubric-criterion-header{background:#0f172a08;border-bottom:none}.rubric-criterion.collapsed .rubric-criterion-name{color:var(--text-2)}.rubric-criterion-header{background:var(--overlay-hover);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;transition:background .1s;display:flex}.rubric-criterion-num{border-radius:var(--radius-sm);background:var(--active);color:#fff;width:24px;height:24px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.rubric-editor .rubric-criterion-name{border-radius:var(--radius-sm);width:180px;color:var(--text);font-size:var(--text-md);background:0 0;border:none;flex:1;padding:3px 6px;font-weight:600}.rubric-editor .rubric-criterion-name:focus{background:var(--surface);box-shadow:0 0 0 2px #007aff26}.rubric-criterion-chevron,.rubric-criterion-delete{border-radius:var(--radius-xs);width:26px;height:26px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .1s;display:flex}.rubric-criterion-delete:hover{color:var(--score-1);background:#d32f2f14;border-color:#d32f2f33}.rubric-selected-tags{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:5px;min-height:40px;padding:10px 14px;display:flex}.rubric-selected-tags-label{color:var(--text-3);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-right:4px;font-weight:600}.rubric-selected-chip{border-radius:var(--radius);color:var(--text);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);cursor:pointer;background:#1a1a2e14;align-items:center;gap:4px;padding:2px 8px 2px 6px;font-weight:600;transition:all .1s;display:inline-flex}.rubric-selected-chip:hover{color:var(--score-1);background:#d32f2f1a}.rubric-selected-chip .chip-label{color:var(--text-2);font-family:var(--font-base);font-size:var(--text-sm);font-weight:400}.rubric-tag-picker,.rubric-levels{display:grid}.rubric-tag-picker{grid-template-columns:240px 1fr}.rubric-tag-sections{border-right:1px solid var(--border);max-height:200px;padding:8px 0;overflow-y:auto}.rubric-tag-sec-btn,.rubric-tag-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 14px;display:flex}.rubric-tag-sec-btn{width:100%;color:var(--text-2);font-family:var(--font-base);font-size:var(--text-base);font-weight:500;transition:all 80ms}.rubric-tag-sec-btn:hover{color:var(--text);background:#007aff0d}.rubric-tag-sec-btn.active{color:var(--text);background:#007aff1f;font-weight:600}.rubric-tag-sec-dot{border-radius:999px;width:8px;height:8px}.rubric-tag-list{max-height:200px;padding:8px 12px;overflow-y:auto}.rubric-tag-item{border-radius:var(--radius-xs);font-size:var(--text-md);margin-bottom:1px;padding:5px 8px;transition:background 80ms}.rubric-tag-item:hover{background:#007aff0d}.rubric-tag-item.selected{background:#1a1a2e12}.rubric-tag-id{color:#1492c6;width:30px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);flex-shrink:0;font-weight:700}.rubric-levels{border-top:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0}.rubric-level-card{border-right:1px solid var(--border);background:var(--surface);overflow:hidden}.rubric-level-card:last-child{border-right:none}.rubric-level-header{border-bottom:1px solid var(--border);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-weight:700;display:flex}.rubric-level-text{width:100%;min-height:180px;color:var(--text);font-size:var(--text-base);resize:none;border:none;border-radius:0;padding:12px;line-height:1.55}.rubric-level-text:focus{background:#007aff08}.rubric-add-criterion-btn{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-family:var(--font-base);font-size:var(--text-base);cursor:pointer;background:0 0;margin-right:auto;padding:8px 16px;font-weight:600;transition:all .1s}.rubric-add-criterion-btn:hover{border-color:var(--active);color:var(--text);background:#007aff08}.rubric-editor-actions{gap:10px;display:flex}.rubric-editor-actions .btn:disabled,.rubric-bank-actions .btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}@media (width<=1200px){.asg-page{grid-template-columns:180px minmax(0,1fr)}}@media (width<=1100px){.ti-card{width:calc(100vw - 20px)}.rubric-editor,.rubric-editor.rubric-editor-bank{width:min(96vw,1200px);min-width:0}.ti-review-layout,.ti-review-layout.assignments,.import-center-grid,.import-review-grid{grid-template-columns:1fr}.import-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-row{grid-template-columns:1fr}}@media (width<=900px){.rubric-bank-layout{grid-template-columns:1fr}.rubric-bank-list{border-right:none;border-bottom:1px solid var(--border);max-height:240px}.rubric-bank-preview-levels{grid-template-columns:1fr}.rubric-editor-header,.rubric-editor-footer,.rubric-editor-body{padding-left:20px;padding-right:20px}}@media (width<=1024px){.asg-page{grid-template-columns:1fr}.asg-sidebar{display:none}.asg-workspace .assess-course-select{display:inline-block}}@media (width<=1100px){.asg-sidebar{border-right:none;border-bottom:1px solid var(--divider-subtle)}.af-student-grid,.af-collab-grid.pairs,.af-collab-grid.groups,.student-rubric-block,.rubric-matrix-row,.rubric-matrix-header,.rubric-tag-picker,.rubric-levels{grid-template-columns:1fr}}.page-main:has(.gb-page){min-height:0!important;overflow:hidden!important}.gb-page{background:var(--bg);overscroll-behavior:contain;--score-1:#c2584a;--score-2:#b8893a;--score-3:#548c5a;--score-4:#3e7d91;flex-direction:column;height:100%;min-height:0;display:flex}.gb-toolbar{background:var(--surface);border-bottom:.5px solid var(--divider-medium);z-index:3;--tb-ctrl-h:34px;flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex;position:relative}.gb-toolbar-spacer{flex:1}.gb-toolbar-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);white-space:nowrap;font-weight:500}.gb-course-select{font-family:var(--font-base);font-size:var(--text-base);color:var(--text);border:1px solid var(--border);min-width:140px;height:var(--tb-ctrl-h);box-sizing:border-box;cursor:pointer;background:var(--surface);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:8px;padding:0 32px 0 14px;font-weight:600;transition:border .12s}.gb-course-select:hover{border-color:var(--text-3)}.gb-seg-control{background:var(--divider-subtle);height:var(--tb-ctrl-h);box-sizing:border-box;border-radius:8px;gap:2px;padding:2px;display:flex}.gb-seg-btn{font-family:var(--font-base);font-size:var(--text-base);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:5px 14px;font-weight:500;line-height:1.2;transition:all .18s cubic-bezier(.4,0,.2,1)}.gb-seg-btn:hover{color:var(--text)}.gb-seg-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a, 0 1px 2px var(--divider-subtle);font-weight:600}.gb-filter-trigger{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;height:var(--tb-ctrl-h);box-sizing:border-box;border-radius:8px;align-items:center;gap:5px;padding:0 12px;font-weight:500;transition:all .15s;display:flex;position:relative}.gb-filter-trigger:hover{border-color:var(--text-3);color:var(--text)}.gb-filter-trigger.has-filters{border-color:var(--active);color:var(--active)}.gb-filter-trigger .filter-count{background:var(--active);color:#fff;min-width:16px;height:16px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;font-weight:700;display:inline-flex}.gb-search-wrap{align-items:center;display:flex;position:relative}.gb-search-icon{font-size:var(--text-xs);color:var(--text-3);pointer-events:none;position:absolute;left:9px}.gb-search-input{font-family:var(--font-base);font-size:var(--text-base);background:var(--overlay-hover);color:var(--text);width:130px;height:var(--tb-ctrl-h);box-sizing:border-box;border:1px solid #0000;border-radius:8px;outline:none;padding:0 12px 0 28px;transition:all .2s}.gb-search-input:focus{background:var(--surface);border-color:var(--active);width:180px;box-shadow:0 0 0 3px #007aff1f}.tb-toggle-btn,.tb-action-btn{font-family:var(--font-base);font-size:var(--text-sm);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);height:var(--tb-ctrl-h);box-sizing:border-box;border-radius:8px;align-items:center;gap:5px;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.tb-action-btn{background:var(--active);color:#fff;border:none}.gb-filter-strip{border-bottom:.5px solid var(--divider-medium);background:#00000004;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;animation:.2s ease-out gbFilterSlideIn;display:none}.gb-filter-strip.open{display:flex}@keyframes gbFilterSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.gb-filter-strip-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);flex-shrink:0;font-weight:500}.gb-filter-strip-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gb-filter-strip-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.gb-filter-chip{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:500;transition:all .12s;display:inline-flex}.gb-type-chip{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text-2);cursor:pointer;align-items:center;padding:3px 10px;font-weight:600;transition:all .12s;display:inline-flex}.gb-filter-chip.active,.gb-type-chip.active{background:var(--text);color:#fff;border-color:var(--text)}.chip-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.gb-filter-clear{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text-3);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px 6px}.gb-grid-shell{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;min-height:0;margin:0 20px 20px;display:flex;position:relative;overflow:hidden}.gb-scroll-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:1;min-height:0;margin:0 20px 20px;display:flex;position:relative;overflow:hidden}.gb-scroll{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.gb-table{border-collapse:separate;border-spacing:0;width:max-content}.gb-table th,.gb-table td{padding:0}.gb-table tbody tr{height:54px}.gb-table tbody tr:nth-child(2n) td{background:#00000004}.gb-table tbody tr:hover td{background:var(--active-light)!important}.gb-corner,.gb-name{z-index:4;background:var(--bg);border-bottom:.5px solid var(--divider-medium);width:180px;min-width:180px;max-width:180px;padding:8px 14px;position:sticky;left:0}.gb-corner{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-2);font-weight:700}.gb-overall-col,.gb-overall-col-header{z-index:4;background:var(--bg);text-align:center;border-bottom:.5px solid var(--divider-medium);border-right:1px solid var(--divider-strong);width:96px;min-width:96px;max-width:96px;position:sticky;left:180px}.gb-overall-col-header{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:700}.gb-summary{text-align:center;border-bottom:.5px solid var(--divider-medium);background:var(--surface);width:88px;min-width:88px;max-width:88px;padding:6px 5px}.gb-summary-table{table-layout:fixed}.gb-summary-table thead tr{height:56px}.gb-summary-table thead th{vertical-align:middle}.gb-grid{--qr:calc(var(--radius) - 1px);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;grid-template-rows:auto minmax(0,1fr);grid-template-columns:200px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.gb-grid-corner{background:var(--bg);border-right:2px solid var(--border);border-bottom:2px solid var(--border);z-index:3;border-top-left-radius:var(--qr);grid-area:1/1;align-items:flex-end;padding:8px 12px;display:flex;position:relative;overflow:hidden}.gb-grid-corner-inner{text-transform:uppercase;letter-spacing:.5px;color:var(--text-2);font-size:11px;font-weight:600}.gb-grid-colheads{border-bottom:2px solid var(--border);background:var(--bg);z-index:2;border-top-right-radius:var(--qr);grid-area:1/2;position:relative;overflow:visible}.gb-grid-colheads-inner{will-change:transform;width:max-content;display:flex;position:relative}.gb-grid-colhead{appearance:none;width:48px;box-shadow:none;font:inherit;color:inherit;background:0 0;border:none;border-radius:0;flex-direction:column;flex:0 0 48px;padding:0;display:flex;position:relative}.gb-grid-colhead:after{content:"";border-right:1px solid var(--divider-subtle);transform-origin:100% 100%;pointer-events:none;width:0;position:absolute;top:0;bottom:0;right:0;transform:skew(-45deg)}.gb-grid-colhead-text{flex:1;position:relative;overflow:visible}.gb-grid-colhead .gb-scores-assess-name{transform-origin:0 100%;white-space:nowrap;text-align:left;position:absolute;bottom:14px;left:36px;transform:rotate(-45deg)}.gb-grid-colhead .gb-scores-assess-meta{transform-origin:0 100%;white-space:nowrap;text-align:left;position:absolute;bottom:0;left:36px;transform:rotate(-45deg)}@keyframes gb-hover-card-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.gb-colhead-hover-card{z-index:var(--z-top);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);pointer-events:none;min-width:180px;max-width:320px;padding:10px 12px;animation:.15s ease-out gb-hover-card-in;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #0000002e}.gb-hover-title{font-weight:700;font-size:var(--text-sm);color:var(--text);margin-bottom:6px}.gb-hover-meta{font-size:var(--text-xs);color:var(--text-2);align-items:center;gap:6px;margin-bottom:6px;display:flex}.gb-hover-row{font-size:var(--text-xs);color:var(--text-2);margin-bottom:3px;line-height:1.45}.gb-hover-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.gb-hover-tag{background:var(--overlay-hover);color:var(--text-2);border-radius:999px;padding:1px 6px;font-size:10px}.gb-grid-rowheads{border-right:2px solid var(--border);background:var(--bg);border-bottom-left-radius:var(--qr);grid-area:2/1;overflow:hidden}.gb-grid-data{overscroll-behavior:contain;border-bottom-right-radius:var(--qr);grid-area:2/2;min-width:0;min-height:0;overflow:auto}.gb-grid-rows-virtual{width:max-content;min-width:100%;position:relative}.gb-grid-rowhead,.gb-scores-row,.gb-grid-comp-row{box-sizing:border-box;display:flex;position:absolute;top:0;left:0}.gb-grid-rowhead{border-bottom:.5px solid var(--divider-subtle);background:var(--bg);justify-content:space-between;align-items:center;width:100%;padding:0 12px;right:0}.gb-grid-rowhead.gb-scores-alt{background:#00000004}.gb-grid-rowhead-pct{flex-shrink:0;margin-left:8px;font-size:12px;font-weight:700}.gb-grid-corner-comp{flex-direction:column;justify-content:flex-end;display:flex}.gb-grid-corner-row1{justify-content:space-between;gap:16px;width:100%;display:flex}.gb-grid-colheads-comp{flex-direction:column}.gb-grid-colheads-row1,.gb-grid-colheads-row2{display:flex}.gb-grid-colheads-row1{border-bottom:1px solid var(--border)}.gb-grid-assess-group{text-align:center;border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:8px 6px 4px;position:relative;overflow:hidden}.gb-grid-assess-group .gb-assess-title{color:var(--text);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;text-decoration:none;display:block;overflow:hidden}.gb-grid-assess-group .gb-assess-meta{justify-content:center;align-items:center;gap:4px;margin-top:2px;display:flex}.gb-assess-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3)}.gb-assess-type-pill{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-radius:var(--radius);padding:1px 6px;font-weight:700;line-height:1.4}.gb-assess-type-pill.sum{background:var(--active);color:#fff}.gb-assess-type-pill.form{background:var(--surface-2);color:var(--text-2)}.gb-assess-badge{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--active);background:#6366f11a;border-radius:8px;padding:1px 5px;font-weight:600}.gb-assess-stripe{height:3px;position:absolute;bottom:0;left:0;right:0}.gb-grid-tag-header{text-align:center;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-right:.5px solid var(--divider-subtle);background:var(--surface);box-sizing:border-box;border-bottom:2px solid;flex-shrink:0;padding:4px 2px;font-weight:600}.gb-grid-rowhead-comp{box-sizing:border-box;border-bottom:.5px solid var(--divider-subtle);justify-content:space-between;align-items:center;height:48px;padding:0 12px;display:flex}.gb-grid-rowhead-overall small{text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:600;display:block}.gb-sheet{background:var(--surface);flex:1;min-height:0;position:relative;overflow:auto}.gb-sheet-header{z-index:6;background:var(--bg);border-bottom:2px solid var(--border);display:flex;position:sticky;top:0}.gb-sheet-header-left,.gb-sheet-row-left{z-index:5;background:var(--bg);border-right:2px solid var(--border);width:314px;min-width:314px;max-width:314px;padding:0;display:block;position:sticky;left:0}.gb-sheet-header-left{min-height:64px}.gb-sheet-header-main,.gb-sheet-row-main{width:max-content;min-width:100%;display:flex}.gb-sheet-header-scores .gb-grid-colhead{cursor:pointer;background:0 0;border-right:none;width:48px;min-width:48px;height:100%;min-height:200px;padding:12px 0 4px;position:relative;overflow:visible}.gb-grid-colhead-fill{opacity:.07;pointer-events:none;transform-origin:100% 100%;position:absolute;inset:0;transform:skew(-45deg)}.gb-grid-colhead-stripe{height:4px;position:absolute;bottom:0;left:0;right:0}.gb-colhead-score-only .gb-grid-colhead-fill{opacity:.85}.gb-scores-assess-name,.gb-scores-assess-meta{transform-origin:0 100%;white-space:nowrap;z-index:1;text-align:left;position:absolute;left:34px;transform:rotate(-45deg)}.gb-scores-assess-name{color:var(--text);font-size:11px;font-weight:600;line-height:1.05;bottom:14px}.gb-scores-assess-meta{color:var(--text-3);padding-right:10px;font-size:9px;line-height:1.1;bottom:0}.gb-sheet-header-detailed{align-items:stretch}.gb-detailed-header-cell{border-right:.5px solid var(--divider-subtle);background:var(--surface);border-bottom:2px solid;flex-direction:column;justify-content:center;padding:8px 6px 6px;display:flex}.gb-detailed-header-title{font-size:var(--text-sm);color:var(--text);font-weight:600}.gb-detailed-header-meta{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3)}.gb-summary-header{text-align:center;background:var(--surface);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-bottom:1px solid var(--divider-strong);white-space:normal;word-wrap:break-word;width:88px;min-width:88px;max-width:88px;padding:6px 5px;font-weight:700;line-height:1.3}.gb-summary-student-header{z-index:12;border-bottom:1px solid var(--divider-strong);border-right:1px solid var(--divider-strong);background:var(--bg);width:180px;min-width:180px;max-width:180px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-align:center;vertical-align:middle;padding:8px 14px;font-weight:700;position:sticky;left:0}.gb-summary-overall-header{z-index:12;border-bottom:1px solid var(--divider-strong);border-right:1px solid var(--divider-strong);background:var(--bg);width:96px;min-width:96px;max-width:96px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-align:center;vertical-align:middle;padding:8px 10px;font-weight:700;position:sticky;left:180px}.gb-summary-grade-cell{width:140px;min-width:140px}.gb-sheet-body{min-width:max-content;position:relative}.gb-sheet-row,.gb-sheet-stats{width:max-content;display:flex;position:absolute;left:0;right:0}.gb-sheet-row{border-bottom:.5px solid var(--divider-medium)}.gb-sheet-row-left{font-size:var(--text-sm);color:var(--text);font-weight:500}.gb-frozen-header-grid,.gb-frozen-row-grid{grid-template-columns:226px 88px;width:100%;height:100%;display:grid}.gb-frozen-header-grid{align-items:end}.gb-frozen-header-grid>span:first-child,.gb-frozen-row-grid>span:first-child{border-right:1px solid #14202c14}.gb-frozen-header-grid>span,.gb-frozen-row-grid>span{align-items:center;height:100%;padding:0 14px;display:flex}.gb-frozen-header-grid>span:first-child{justify-content:flex-start}.gb-frozen-header-grid>span:last-child{justify-content:flex-end}.gb-grid-rowhead-name{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:3px;font-weight:500;display:flex;overflow:hidden}.gb-grid-rowhead-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gb-des-tag{background:var(--overlay-hover);color:var(--text-3);vertical-align:middle;cursor:default;border-radius:3px;flex-shrink:0;padding:1px 4px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:9px;font-weight:700;line-height:1;display:inline-block}.gb-grid-rowhead-overall{text-align:right;flex-shrink:0;margin-left:8px;font-size:13px;font-weight:700}.gb-score,.gb-scores-cell{background:var(--surface);cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;font:inherit;appearance:none;border:none}.gb-score{border-bottom:.5px solid var(--divider-medium);justify-content:center;align-items:center;min-width:54px;padding:4px 2px;transition:background .1s;display:inline-flex}.gb-scores-cell{text-align:center;border-right:1px solid var(--divider-subtle);border-bottom:1px solid var(--divider-subtle);box-sizing:border-box;width:48px;min-width:48px;height:100%;padding:8px 4px;display:block}.gb-score:hover{background:#007aff0f}.gb-scores-cell:hover{outline:2px solid var(--active);outline-offset:-2px;z-index:1;position:relative}.gb-summary-header:hover{background:#007aff0f}.gb-focus{outline:2px solid var(--active);outline-offset:-1px;z-index:2;position:relative}.gb-scores-focus{outline:2px solid var(--active);outline-offset:-2px;z-index:2;position:relative;background:#007aff0a!important}.gb-scores-cell.gb-scores-warning{outline-offset:-2px;outline:2px solid var(--late)!important}.gb-scores-cell.gb-scores-warning:after{content:"⚠";color:var(--late);font-size:9px;position:absolute;top:1px;right:2px}.gb-score-val,.gb-summary-val{border-radius:var(--radius-xs);width:34px;height:28px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);color:#fff;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.gb-summary-val{width:auto;height:auto;color:inherit;border-radius:0}.gb-score-val.s0{color:var(--text-3);background:0 0}.gb-scores-val{font-weight:600;font-size:var(--text-sm);background:0 0}.gb-score-val.s1{background:var(--score-1)}.gb-score-val.s2{background:var(--score-2)}.gb-score-val.s3{background:var(--score-3)}.gb-score-val.s4{background:var(--score-4)}.gb-scores-val.level-1{color:var(--score-1)}.gb-scores-val.level-2{color:var(--score-2)}.gb-scores-val.level-3{color:var(--score-3)}.gb-scores-val.level-4{color:var(--score-4)}.gb-scores-val.empty{color:var(--text-3)}.gb-scores-zero{color:var(--score-1);font-weight:700}.gb-scores-missing{color:var(--text-3)}.gb-scores-overdue:not(.gb-scores-col-active){box-shadow:inset 0 1px #ff950014}.gb-unscored,.gb-pts-empty{color:var(--text-3);opacity:.6}.gb-pts-display{flex-direction:column;align-items:center;gap:2px;display:flex}.gb-pts-score{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);font-weight:700}.gb-pts-max,.gb-pts-pct{font-size:var(--text-xs);color:var(--text-3)}.gb-scores-input,.gb-pts-input{text-align:center;width:100%;font-family:var(--font-base);font-size:var(--text-sm);color:var(--text);-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0 4px;font-weight:600}.gb-scores-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gb-scores-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gb-pts-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gb-pts-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gb-group-start{border-left:3px solid var(--border-2)}.gb-group-alt{background:#00000006}.gb-scores-alt .gb-sheet-row-left,.gb-scores-alt .gb-score,.gb-scores-alt .gb-scores-cell,.gb-scores-alt .gb-summary-cell{background:#00000004}.gb-scores-col-active{background:#007aff08!important}.gb-scoremode-active{text-decoration:underline;text-decoration-thickness:2px}.gb-stats-row>div>.gb-score,.gb-stats-row>div>.gb-scores-cell,.gb-stats-row>.gb-score,.gb-stats-row>.gb-scores-cell,.gb-score-stats,.gb-scores-cell-stats{border-top:1px solid var(--divider-strong);background:var(--bg)!important}.gb-avg-val{font-weight:700}.gb-overall-num{font-family:var(--font-base);font-size:var(--text-lg);font-weight:700;line-height:1}.gb-overall-label{text-transform:uppercase;letter-spacing:.3px;color:var(--text-3);margin-top:2px;font-size:9px;font-weight:600;display:block}.gb-summary-row-stats .gb-summary-cell,.gb-sheet-row-stats{border-top:1px solid var(--divider-strong);background:var(--bg)!important}.gb-trend{font-size:var(--text-base);font-weight:700}.gb-trend-up{color:var(--score-3)}.gb-trend-down{color:var(--score-1)}.gb-trend-flat{color:var(--text-3)}.gb-header-resize-handle{cursor:row-resize;z-index:10;height:6px;position:absolute;bottom:-3px;left:0;right:0}.gb-header-resize-handle:hover,.gb-header-resize-handle:active{background:var(--active);opacity:.3}.gb-grid-rowhead-stats{font-weight:700;font-size:var(--text-sm);color:var(--text-2);border-top:1px solid var(--border)}.gb-grid-rowhead.gb-row-hover,.gb-scores-row.gb-row-hover>div>.gb-scores-cell,.gb-grid-comp-row.gb-row-hover>div>.gb-score,.gb-scores-row.gb-row-hover>.gb-scores-cell,.gb-grid-comp-row.gb-row-hover>.gb-score,.gb-col-hover .gb-scores-cell,.gb-col-hover .gb-score,.gb-scores-cell.gb-col-hover,.gb-score.gb-col-hover{background:var(--active-light)!important}.gb-grid-colhead.gb-col-hover .gb-grid-colhead-fill{opacity:.25}.gb-grid-colhead.gb-col-hover:after{border-right-color:var(--active)}.gb-ctx-menu{z-index:var(--z-top);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;font-family:var(--font-base);font-size:var(--text-sm);padding:4px 0;position:fixed;box-shadow:0 4px 20px #00000026}.gb-ctx-item{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;padding:8px 16px;display:block}.gb-ctx-item:hover{background:var(--active);color:#fff}.gb-ctx-danger{color:var(--priority)}.gb-ctx-danger:hover{background:var(--priority);color:#fff}.gb-ctx-divider{background:var(--divider-subtle);height:1px;margin:4px 0}.gb-loading,.gb-empty{min-height:240px;color:var(--text-3);font-size:var(--text-base);flex:1;justify-content:center;align-items:center;display:flex}.gb-grid-colhead:focus-visible,.gb-scores-cell:focus-visible,.gb-score:focus-visible,.gb-ctx-item:focus-visible{outline:2px solid var(--active,#007aff);outline-offset:-2px;z-index:2;position:relative}.gb-scores-input:focus-visible,.gb-pts-input:focus-visible{outline:2px solid var(--active,#007aff);outline-offset:0}.gb-grid-corner-label{text-transform:uppercase;letter-spacing:.08em;color:#5e6570;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11px;font-weight:700}.gb-grid-corner-label-overall{justify-content:flex-end}@media print{.gb-toolbar,.gb-filter-strip,.gb-undo-hint,.gb-header-resize-handle{display:none!important}.gb-scores-scroll{max-height:none;overflow:visible}.gb-scores-wrap{border:none}.gb-scores-table th,.gb-scores-table td{border:1px solid #ccc}.gb-scores-table{font-size:7pt}.gb-scores-cell{min-width:0!important;padding:1px 2px!important}.gb-grid{max-height:none!important;display:block!important;overflow:visible!important}.gb-grid-data{overflow:visible!important}.gb-grid-cols,.gb-grid-colheads-inner{transform:none!important}.gb-grid-shell,.gb-sheet{border:none;overflow:visible!important}.gb-sheet-header{position:static}.gb-sheet-row,.gb-sheet-stats{position:static;transform:none!important}}@media (width<=960px){.gb-toolbar{flex-wrap:wrap}.gb-grid-shell{margin:0 12px 12px}.gb-sheet-header-left,.gb-sheet-row-left{width:278px;min-width:278px;max-width:278px}.gb-frozen-header-grid,.gb-frozen-row-grid{grid-template-columns:198px 80px}}.stu-page-grid{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:calc(100vh - var(--dock-h));display:grid}.stu-page-grid.sidebar-hidden{grid-template-columns:0 minmax(0,1fr)}.stu-page-grid.sidebar-hidden .legacy-student-sidebar-slot{display:none}.stu-main{flex-direction:column;height:100%;min-height:0;display:flex}.student-toolbar{background:var(--surface);border-bottom:.5px solid #00000017;flex-shrink:0;align-items:center;gap:12px;padding:8px 20px;display:flex}.student-scroll{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.student-toolbar .tb-back-btn{font-size:var(--text-base);background:var(--active);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:7px 16px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 4px #007aff1f}.student-toolbar .tb-back-btn:hover{background:var(--btn-hover-blue);box-shadow:0 2px 8px #007aff40}.student-toolbar .tb-back-btn:active{transform:scale(.97)}.student-toolbar .tb-edit-btn{font-size:var(--text-base);background:var(--active);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s,transform .1s;display:inline-flex;box-shadow:0 1px 4px #007aff1f}.student-toolbar .tb-edit-btn:hover{background:var(--btn-hover-blue);box-shadow:0 2px 8px #007aff40}.student-toolbar .tb-edit-btn:active{transform:scale(.97)}.student-header-top{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:0;margin-bottom:16px;padding:20px 24px 16px;display:flex}.sh-row1{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.student-identity{flex-shrink:0;align-items:center;gap:14px;display:flex}.student-avatar-xl{border-radius:var(--radius-lg);background:var(--text);color:#fff;width:48px;height:48px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xl);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex;box-shadow:0 2px 8px #1a1a2e26}.student-identity-text{flex-direction:column;gap:2px;display:flex}.student-name-xl{font-family:var(--font-base);font-size:var(--text-2xl);color:var(--text);letter-spacing:var(--tracking-tight);font-weight:700;line-height:1.2}.student-pronouns{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.sh-spacer{flex:1}.sh-stats{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.sh-stat{flex-direction:column;justify-content:center;align-items:center;min-width:60px;padding:8px 12px;display:flex}.sh-stat+.sh-stat{border-left:1px solid var(--divider-subtle)}.sh-stat-val{font-family:var(--font-base);font-size:var(--text-2xl);font-weight:700;line-height:1.1}.sh-stat-label{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-top:2px;font-weight:500}.sh-row2{border-top:1px solid var(--divider-subtle);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.sh-chip{border-radius:var(--radius-xl);font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);color:var(--text-2);background:var(--overlay-hover);letter-spacing:var(--tracking-wide);align-items:center;gap:4px;padding:3px 10px;font-weight:500;display:inline-flex}.sh-chip-icon{font-style:normal}.sh-chip-email{cursor:pointer;border:none;transition:background .15s,color .15s}.sh-chip-email:hover{background:var(--overlay-active);color:var(--active)}.sh-chip-desig{color:var(--active);background:#007aff14;font-weight:600}.sh-chip-desig.low-inc{color:var(--priority);background:#ff3b3014}.sh-chip-iep{color:var(--iep-badge);background:#ff95001a;font-weight:600}.sh-chip-mod{color:var(--mod-badge);background:#5856d61a;font-weight:600}.overall-card{border-radius:var(--radius);flex-shrink:0;align-items:center;gap:10px;padding:8px 18px;display:flex}.overall-val{font-family:var(--font-base);font-size:var(--text-3xl);font-weight:700;line-height:1}.overall-word{font-family:var(--font-base);font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:600}.page-toggle-btn{border-radius:var(--radius);font-family:var(--font-base);font-size:var(--text-base);letter-spacing:.01em;background:var(--active);color:#fff;cursor:pointer;transition:all var(--duration-micro);border:none;flex-shrink:0;align-items:center;gap:6px;padding:8px 18px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 4px #007aff1f}.page-toggle-btn:hover{filter:brightness(.92);box-shadow:0 2px 8px #007aff40}.page-toggle-btn:active{transform:scale(.97)}.stu-main .dash-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px;display:grid}.stu-main .dash-section{background:var(--surface);border:1px solid var(--overlay-hover);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;position:relative;overflow:hidden}.stu-main .dash-section-stripe{height:4px;position:absolute;top:0;left:0;right:0}.stu-main .dash-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stu-main .dash-section-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text);font-weight:600}.stu-main .dash-section-subject{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3)}.dash-tag-row{border:0;border-bottom:1px solid var(--overlay-hover);width:100%;font:inherit;font-size:var(--text-base);color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:6px 0;display:flex}.dash-tag-row:last-child{border-bottom:none}.dash-tag-row:hover{background:var(--overlay-hover);border-radius:var(--radius-sm);margin:0 -8px;padding-left:8px;padding-right:8px}.dash-tag-label{min-width:0;font-size:var(--text-base);color:var(--text);flex:1}.dash-tag-bar{flex-shrink:0;width:100px}.dash-tag-evidence{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3);text-align:center;flex-shrink:0;width:24px}.tag-detail{border-radius:0 0 var(--radius-sm) var(--radius-sm);background:#00000004;padding:4px 0 8px;display:none}.dash-tag-row.open+.tag-detail{display:block}.tag-assess-row{font-size:var(--text-sm);color:inherit;border-bottom:1px solid var(--overlay-hover);grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:5px 8px;text-decoration:none;transition:background .1s;display:grid}.tag-assess-row:last-child{border-bottom:none}.tag-assess-row:hover{background:var(--overlay-hover)}.tag-assess-row:hover .tag-assess-title{color:var(--active);text-decoration:underline}.tag-assess-pip{border-radius:var(--radius-xs);width:22px;height:20px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.tag-assess-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.tag-assess-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3);white-space:nowrap;text-align:right;flex-shrink:0}.prof-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm);color:#fff;padding:3px 8px;display:inline-block}.prof-bar{background:var(--surface-2);border-radius:var(--radius-xs);height:6px;overflow:hidden}.prof-bar-fill{border-radius:var(--radius-xs);height:100%;transition:width .3s}.growth-sparkline{align-items:center;gap:0;padding:4px 0;display:flex}.sparkline-dot{cursor:default;z-index:1;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block;position:relative}.sparkline-line{background:var(--border-2,var(--border));flex-shrink:0;width:16px;height:2px}.section-goal,.section-reflection{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}.section-goal-label,.section-reflection-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);align-items:center;gap:6px;margin-bottom:3px;font-weight:600;display:flex}.section-goal-text,.section-reflection-text{font-size:var(--text-base);color:var(--text);font-style:italic;line-height:1.45}.section-goal-text:empty:before,.section-reflection-text:empty:before{content:"Not set";color:var(--text-3);font-style:italic}.confidence-badge{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);border-radius:var(--radius-xs);color:#fff;padding:1px 6px;font-weight:600;display:inline-block}.edit-btn-inline{font-size:var(--text-sm);color:var(--active);cursor:pointer;text-transform:uppercase;letter-spacing:var(--tracking-wide);background:0 0;border:none;padding:0 4px;font-family:SF Mono,ui-monospace,Menlo,monospace}.edit-btn-inline:hover{text-decoration:underline}.inline-edit-area textarea{width:100%;font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;min-height:36px;padding:6px 10px}.inline-edit-area textarea:focus{border-color:var(--active);outline:none;box-shadow:0 0 0 2px #007aff26}.inline-edit-actions{gap:6px;margin-top:4px;display:flex}@media (width<=1400px){.stu-main .dash-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.stu-main .dash-grid{grid-template-columns:1fr!important}}.student-stats-bar{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-wrap:wrap;align-items:stretch;margin-bottom:20px;display:flex;overflow:hidden}.completion-card{border-right:1px solid var(--divider-subtle);border-bottom:1px solid var(--divider-subtle);background:#00000005;flex:none;align-items:center;gap:14px;padding:12px 20px;display:flex}.completion-stats{flex-direction:column;gap:3px;display:flex}.completion-stat{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);color:var(--text-2)}.completion-stat strong{color:var(--text);font-weight:700}.completion-ring{width:56px;height:56px;margin:0 auto 4px;position:relative}.completion-ring svg{transform:rotate(-90deg)}.completion-ring-text{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.section-mini-card{text-align:center;border:0;border-right:1px solid var(--divider-subtle);border-bottom:1px solid var(--divider-subtle);color:inherit;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;flex:1 1 0;min-width:120px;padding:16px 8px;transition:background .15s,box-shadow .15s;position:relative}.section-mini-card:hover{background:#00000005}.section-mini-card.active-filter{background:#007aff14;box-shadow:inset 0 0 0 1px #007aff33}.section-mini-card.active-filter .section-mini-stripe{height:5px}.section-mini-card:not(.active-filter).dimmed{background:#00000004}.section-mini-card:not(.active-filter).dimmed .section-mini-val,.section-mini-card:not(.active-filter).dimmed .section-mini-label{opacity:.5}.stu-group-accordion{border-top:1px solid var(--divider-subtle);background:var(--bg);flex-wrap:wrap;width:100%;display:flex}.stu-group-accordion .section-mini-card{min-width:80px;padding:8px}.stu-group-accordion .section-mini-val{font-size:var(--text-xl)}.stu-group-accordion .section-mini-label{font-size:11px}.section-mini-stripe{height:3px;position:absolute;top:0;left:0;right:0}.section-mini-val{font-family:var(--font-base);font-size:var(--text-3xl);font-weight:700;line-height:1.2}.section-mini-label{font-family:var(--font-base);font-size:var(--text-xs);text-transform:uppercase;color:var(--text-2);letter-spacing:var(--tracking-wide);margin-top:4px;font-weight:600;line-height:1.3}.insights-grid{grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:20px;display:grid}.insight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.insight-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:12px;font-weight:600}.gp-section-row{align-items:center;gap:8px;margin-bottom:5px;display:flex}.gp-section-label{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:90px;font-weight:500;overflow:hidden}.gp-section-bar-track{border-radius:var(--radius-xs);background:#0000000d;flex:1;height:6px;overflow:hidden}.gp-section-bar-fill{border-radius:var(--radius-xs);height:100%;transition:width .3s}.gp-section-val{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-sm);text-align:right;flex-shrink:0;width:24px;font-weight:600}.gp-section-trend{font-size:var(--text-xs);text-align:center;flex-shrink:0;width:14px}.gp-divider{background:var(--divider-subtle);height:1px;margin:10px 0}.gp-dims{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.gp-dim-pip{border-radius:var(--radius);font-size:var(--text-xs);font-weight:500;font-family:var(--font-base);align-items:center;gap:3px;padding:2px 7px;display:flex}.gp-dim-pip.active{color:var(--active);background:#007aff14}.gp-dim-pip.inactive{color:var(--text-3);background:#00000008}.gp-obs-stat{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text-3)}.gp-coverage-row{align-items:center;gap:8px;display:flex}.gp-coverage-bar{background:#0000000d;border-radius:2px;flex:1;height:4px;overflow:hidden}.gp-coverage-fill{background:var(--active);border-radius:2px;height:100%}.gp-coverage-label{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-xs);color:var(--text-3);flex-shrink:0}.attention-item{border-bottom:1px solid var(--overlay-hover);align-items:center;gap:10px;padding:8px 0;display:flex}.attention-item:last-child{border-bottom:none}.attention-icon{width:26px;height:26px;font-size:var(--text-sm);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.attention-info{flex:1;min-width:0}.attention-title{font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.attention-detail{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.attention-empty{font-size:var(--text-base);color:var(--text-3);text-align:center;padding:20px 0}.notes-panel{flex-direction:column;display:flex}.notes-scroll{-webkit-overflow-scrolling:touch;max-height:380px;margin-bottom:10px;overflow-y:auto}.notes-list{flex-direction:column;gap:0;display:flex}.note-inline{border-radius:var(--radius);align-items:flex-start;gap:10px;padding:10px 12px;transition:background .15s;display:flex}.note-inline:hover{background:#007aff08}.note-inline-left{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;min-width:48px;padding-top:2px;display:flex}.note-inline-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.note-inline-body{flex:1;min-width:0}.note-inline-text{font-size:var(--text-md);color:var(--text);word-wrap:break-word;line-height:1.5}.note-inline-dims{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.note-dim-tag{border-radius:var(--radius);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;background:var(--overlay-hover);color:var(--text-3);align-items:center;gap:2px;padding:1px 6px;font-weight:600;display:inline-flex}.note-dim-tag-icon{font-size:var(--text-xs);line-height:1}.note-assign-badge{border-radius:var(--radius);font-size:var(--text-xs);color:var(--active);background:#007aff14;align-items:center;gap:3px;margin-bottom:2px;padding:1px 8px;font-weight:600;display:inline-flex}.note-inline-del{cursor:pointer;color:var(--text-3);font-size:var(--text-sm);opacity:0;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:2px 4px;transition:opacity .15s}.note-inline:hover .note-inline-del{opacity:1}.note-inline-del:hover{color:var(--danger);background:#c6282814}.note-add-row{border-top:1px solid var(--divider-subtle);gap:8px;padding-top:10px;display:flex}.note-add-input{font-family:var(--font-base);font-size:var(--text-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);outline:none;flex:1;padding:8px 12px;transition:all .15s}.note-add-input:focus{border-color:var(--active);box-shadow:0 0 0 3px #007aff14}.note-add-input::placeholder{color:var(--text-3)}.note-add-btn{font-family:var(--font-base);font-size:var(--text-base);border-radius:var(--radius);background:var(--active);color:#fff;cursor:pointer;border:none;flex-shrink:0;padding:8px 16px;font-weight:600;transition:all .15s}.note-add-btn:hover{background:#0064d2}.note-add-btn:active{transform:scale(.97)}.note-search-input{width:100%;font-family:var(--font-base);font-size:var(--text-base);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23999'%3E%3Ccircle cx='5' cy='5' r='4' stroke='%23999' stroke-width='1.5' fill='none'/%3E%3Cline x1='8' y1='8' x2='11' y2='11' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E") 8px center no-repeat;color:var(--text);outline:none;margin-bottom:8px;padding:6px 10px 6px 28px;transition:all .15s}.note-search-input:focus{border-color:var(--active)}.notes-empty{text-align:center;color:var(--text-3);font-size:var(--text-base);padding:20px 10px;line-height:1.5}.notes-empty-icon{font-size:var(--text-3xl);opacity:.5;margin-bottom:6px}.dash-tag-chevron{font-size:var(--text-2xs);color:var(--text-3);flex-shrink:0;width:10px;transition:transform .15s}.dash-tag-row.open .dash-tag-chevron{transform:rotate(90deg)}.cc-profile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:16px 20px}.cc-profile-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:12px;font-weight:600}.cc-profile-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.cc-group-label{font-family:var(--font-base);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:8px;font-weight:600}.cc-bar-row{align-items:center;gap:8px;margin-bottom:5px;display:flex}.cc-bar-label{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:140px;overflow:hidden}.cc-bar-track{background:var(--surface-2);border-radius:4px;flex:1;height:8px;overflow:hidden}.cc-bar-fill{border-radius:4px;height:100%;transition:width .3s}.cc-bar-count{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-align:right;flex-shrink:0;width:20px;font-weight:700}.cc-badge-sm{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);background:0 0;border:1.5px solid;border-radius:8px;flex-shrink:0;padding:1px 5px;font-weight:600;display:inline-block}.focus-callout{margin-top:16px}.grades-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:20px;margin-bottom:20px;padding:16px 0}.grades-header{border-bottom:1px solid var(--divider-subtle);justify-content:space-between;align-items:center;padding:0 20px 12px;display:flex}.grades-legend{align-items:center;gap:10px;display:flex}.grades-legend-item{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide);align-items:center;gap:4px;display:flex}.grades-legend-dot{border-radius:var(--radius-xs);flex-shrink:0;width:10px;height:10px}.grades-table-wrap{padding:0;transition:max-height .3s;overflow-x:auto}.grades-table-wrap.collapsed{max-height:280px;overflow-y:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000 100%);mask-image:linear-gradient(#000 70%,#0000 100%)}.grades-toggle-btn{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--active);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin:0 auto;padding:8px 0;font-weight:600;display:flex}.grades-toggle-btn:hover{text-decoration:underline}.grades-table{border-collapse:collapse;width:100%;font-family:var(--font-base)}.grades-table thead th{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);text-align:center;white-space:nowrap;border-bottom:2px solid var(--border);background:var(--surface);padding:10px 6px 8px;font-weight:600;position:sticky;top:0}.gt-col-status{width:28px}.gt-col-title{min-width:180px;text-align:left!important}.gt-col-date{width:90px}.gt-col-type{width:36px}.gt-col-score{width:42px}.gt-col-avg{width:48px}.gt-row{transition:background .1s}.gt-row:hover{background:#007aff08}.gt-row-empty{opacity:.5}.gt-row td{border-bottom:1px solid var(--overlay-hover);font-size:var(--text-base);text-align:center;vertical-align:middle;padding:7px 6px}.gt-cell-status{font-size:var(--text-sm)}.gt-cell-title{align-items:center;gap:6px;display:flex;text-align:left!important}.gt-title-text{white-space:nowrap;text-overflow:ellipsis;max-width:240px;color:inherit;font-weight:500;text-decoration:none;display:block;overflow:hidden}.gt-title-text:hover{color:var(--active)}.gt-module-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.gt-status-tag{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:1px 5px;font-weight:600;line-height:1.3}.gt-tag-ns{color:var(--score-1);background:#ff3b301a}.gt-tag-exc{color:var(--active);background:#007aff14}.gt-tag-late{color:var(--score-2);background:#ff95001a}.gt-row-status{opacity:.6}.gt-status-dot{background:var(--score-3,#2e7d32);border-radius:50%;width:8px;height:8px;display:inline-block}.gt-cell-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);color:var(--text-3);white-space:nowrap}.gt-cell-score{padding:4px 2px}.gt-cell-na{background:repeating-linear-gradient(45deg,#0000,#0000 3px,#00000005 3px 6px)}.gt-score-pip{width:24px;height:24px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);color:#fff;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.gt-score-empty{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);color:var(--text-3)}.gt-cell-avg{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base)}.override-btn{cursor:pointer;color:var(--text-3);font-size:var(--text-sm);border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;gap:4px;padding:4px;line-height:1;transition:all .15s;display:flex}.override-btn:hover{color:var(--active);background:var(--active-light)}.override-btn.active{color:var(--active)}.override-label{text-transform:uppercase;letter-spacing:.04em;color:var(--active);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.688rem;font-style:italic;font-weight:600}.override-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:8px 0 12px;padding:16px 20px;animation:.2s ease-out overrideSlideIn}@keyframes overrideSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.override-panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.override-panel-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-2);font-weight:600}.override-panel-close{cursor:pointer;color:var(--text-3);font-size:var(--text-lg);border-radius:var(--radius-xs);background:0 0;border:none;padding:2px 6px;line-height:1}.override-panel-close:hover{color:var(--text);background:#0000000f}.override-calculated{font-size:var(--text-sm);color:var(--text-3);margin-bottom:12px}.override-calculated strong{color:var(--text-2);font-weight:600}.override-levels{border:1px solid var(--border);border-radius:var(--radius-sm);gap:0;margin-bottom:12px;display:flex;overflow:hidden}.override-level-btn{cursor:pointer;font-size:var(--text-sm);color:var(--text-2);text-align:center;border:none;border-right:1px solid var(--border);background:0 0;flex:1;padding:8px 4px;font-weight:500;transition:all .12s}.override-level-btn:last-child{border-right:none}.override-level-btn:hover{background:#00000008}.override-level-btn.selected{color:#fff;font-weight:600}.override-level-btn.selected[data-level="4"]{background:var(--score-4)}.override-level-btn.selected[data-level="3"]{background:var(--score-3)}.override-level-btn.selected[data-level="2"]{background:var(--score-2)}.override-level-btn.selected[data-level="1"]{background:var(--score-1)}.override-reason{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-base);font-size:var(--text-sm);resize:vertical;box-sizing:border-box;min-height:48px;padding:8px 12px;transition:border .12s}.override-reason:focus{border-color:var(--active);outline:none;box-shadow:0 0 0 2px #007aff26}.override-reason-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:4px;font-weight:600;display:block}.override-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.edit-modal-overlay{z-index:var(--z-top);-webkit-backdrop-filter:blur(8px);background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.edit-modal{background:var(--surface);border:1px solid var(--divider-strong);border-radius:14px;width:520px;max-width:90vw;padding:24px 28px;box-shadow:0 8px 32px #0000002e,0 2px 8px #00000014}.edit-modal-title{font-family:var(--font-base);font-size:var(--text-lg);color:var(--text);margin-bottom:16px;font-weight:700}.edit-modal-form{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}.edit-modal-form .cm-field{margin-bottom:0}.edit-modal-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.edit-modal-actions .btn-ghost{font-size:var(--text-base);color:var(--text-2);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:7px 16px;font-weight:600;transition:all .12s}.edit-modal-actions .btn-ghost:hover{background:var(--overlay-hover)}.edit-modal-actions .btn-primary{font-size:var(--text-base);background:var(--active);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:7px 18px;font-weight:600;transition:all .12s;box-shadow:0 1px 4px #007aff1f}.edit-modal-actions .btn-primary:hover{background:var(--btn-hover-blue)}.desig-check-grid{grid-template-columns:1fr 1fr;gap:4px;max-height:200px;padding:2px;display:grid;overflow-y:auto}.desig-check-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);align-items:center;gap:6px;padding:4px 8px;transition:background .1s;display:flex}.desig-check-item:hover{background:var(--overlay-hover)}.desig-check{flex-shrink:0;margin:0}.desig-check-code{color:var(--active);font-family:SF Mono,ui-monospace,monospace;font-weight:700;font-size:var(--text-sm)}.desig-check-name{font-family:var(--font-base);color:var(--text-2);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=1100px){.insights-grid{grid-template-columns:1fr 1fr}.student-name-xl{font-size:var(--text-xl)}.overall-val{font-size:var(--text-2xl)}}@media (width<=900px){.cc-profile-grid,.stu-page-grid{grid-template-columns:1fr}.stu-page-grid .legacy-student-sidebar-slot{display:none}}@media (width<=700px){.insights-grid{grid-template-columns:1fr}}.rpt-page{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:calc(100vh - var(--dock-h));min-height:calc(100vh - var(--dock-h));background:var(--bg);font-family:var(--font-base);display:grid}.page-layout.sidebar-hidden .rpt-page{grid-template-columns:minmax(0,1fr)}.rpt-sidebar{border-right:1px solid var(--divider-subtle);background:var(--surface);z-index:1;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.page-layout.sidebar-hidden .rpt-sidebar{display:none}.rpt-sidebar-toolbar{border-bottom:1px solid var(--divider-subtle);gap:8px;padding:16px 16px 12px;display:grid}.rpt-sidebar-course-select,.rpt-sidebar-search{width:100%;font-family:var(--font-base);font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.rpt-sidebar-course-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' fill='none' stroke='%23222222' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:6px 28px 6px 10px;font-weight:400}.rpt-sidebar-course-select:hover{border-color:var(--text-3)}.rpt-sidebar-search{padding:6px 10px}.rpt-sidebar-search::placeholder{color:var(--text-3)}.rpt-sidebar-list{flex:1;padding:8px;overflow:auto}.rpt-student-row{border-radius:var(--radius-sm);width:100%;color:inherit;text-align:left;cursor:pointer;transition:background var(--duration-micro);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.rpt-student-row:hover{background:var(--overlay-hover)}.rpt-student-row.active{background:var(--active-light)}.rpt-student-avatar{color:#fff;width:28px;height:28px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.rpt-student-name{min-width:0;font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.rpt-student-row.active .rpt-student-name{color:var(--active);font-weight:600}.rpt-student-badge{border-radius:var(--radius-xs);font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-align:center;flex-shrink:0;margin-left:auto;padding:2px 8px;font-weight:700}.rpt-student-badge.tone-strong{color:#1d4ed8;background:#e8f0ff}.rpt-student-badge.tone-on-track{color:#2f855a;background:#edf7ee}.rpt-student-badge.tone-watch{color:#c05621;background:#fff4e8}.rpt-student-badge.tone-risk{color:#c53030;background:#fdeaea}.rpt-sidebar-footer{border-top:1px solid var(--divider-subtle);color:var(--text-3);font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.rpt-sidebar-link{color:var(--text-2);cursor:pointer;font-family:var(--font-base);font-size:var(--text-xs);background:0 0;border:none;padding:0}.rpt-workspace{z-index:0;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.page-main:has(.report-toolbar){overflow:hidden!important}.report-toolbar{background:var(--surface);border-bottom:.5px solid var(--divider-medium);z-index:2;flex-shrink:0;align-items:center;gap:12px;padding:8px 12px;display:flex}.report-content{flex:1;min-height:0;padding:12px;overflow-y:auto}.report-toolbar-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);white-space:nowrap;font-weight:500}.report-toolbar input[type=text]{font-family:var(--font-base);font-size:var(--text-sm);background:var(--overlay-hover);height:32px;color:var(--text);border:1px solid #0000;border-radius:8px;outline:none;width:220px;padding:0 12px;transition:all .2s}.report-toolbar input[type=text]:focus{background:var(--surface);border-color:var(--active);box-shadow:0 0 0 3px #007aff1f}.report-term-select{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);background:var(--bg);height:32px;color:var(--text);cursor:pointer;border-radius:8px;outline:none;padding:0 12px}.report-term-select:focus{border-color:var(--active);outline:none}.report-seg-control{background:var(--divider-subtle);border-radius:8px;gap:2px;padding:2px;display:flex}.report-seg-btn{height:28px;font-family:var(--font-base);font-size:var(--text-sm);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0 14px;font-weight:500;line-height:28px;transition:all .18s cubic-bezier(.4,0,.2,1)}.report-seg-btn:hover{color:var(--text)}.report-seg-btn.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.report-toolbar-spacer{flex:1}.report-print-btn{height:32px;font-family:var(--font-base);font-size:var(--text-sm);white-space:nowrap;background:var(--active);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:0 14px;font-weight:600;line-height:32px;transition:all .15s}.report-print-btn:hover{background:#0064d2;box-shadow:0 2px 8px #007aff33}.report-anon-btn{height:32px;font-family:var(--font-base);font-size:var(--text-sm);white-space:nowrap;background:var(--overlay-hover);color:var(--text-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:0 14px;font-weight:500;line-height:32px;transition:all .15s}.report-anon-btn:hover{border-color:var(--text-3)}.report-anon-btn.active{background:var(--active);color:#fff;border-color:var(--active)}.tq-toolbar-arrow:disabled{opacity:.4;cursor:default}.student-picker{display:inline-block;position:relative}.student-picker-btn{font-family:var(--font-base);font-size:var(--text-sm);background:var(--surface);border:1px solid var(--border);cursor:pointer;height:32px;color:var(--text);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-width:150px;padding:0 10px;transition:border .12s;display:flex}.student-picker-btn:hover{border-color:var(--active)}.student-picker-btn .arrow{font-size:var(--text-xs);color:var(--text-3)}.student-picker-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:100;min-width:240px;max-height:360px;display:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 24px #0000001f}.student-picker-dropdown.open{display:block}.student-picker-item{cursor:pointer;font-size:var(--text-md);border-bottom:1px solid var(--overlay-hover);align-items:center;gap:10px;padding:8px 14px;transition:background 80ms;display:flex}.student-picker-item:hover{background:#007aff0d}.student-picker-item.checked{background:#1a1a2e0d}.student-picker-check{border:1.5px solid var(--border);width:18px;height:18px;font-size:var(--text-sm);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .1s;display:flex}.student-picker-item.checked .student-picker-check{background:var(--text);border-color:var(--text)}.student-picker-actions{border-top:1px solid var(--border);background:var(--surface);gap:6px;padding:8px 14px;display:flex;position:sticky;bottom:0}.student-picker-action{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border:1px solid var(--border);cursor:pointer;color:var(--text-2);background:0 0;border-radius:4px;padding:4px 10px;transition:all .1s}.student-picker-action:hover{border-color:var(--active);color:var(--text)}#report-output:has(.rb-layout){overflow:hidden}.rb-layout{flex:1;gap:0;height:100%;min-height:0;display:flex}.rb-panel{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow-y:auto}.rb-preview{flex:1;padding:20px 28px;overflow-y:auto}.rb-panel-header{padding:14px 16px 0}.rb-panel-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);font-weight:600}.rb-presets{background:var(--divider-subtle);border-radius:8px;gap:2px;margin:10px 14px 6px;padding:2px;display:flex}.rb-preset-btn{font-family:var(--font-base);font-size:var(--text-sm);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;padding:5px 6px;font-weight:500;line-height:1.2;transition:all .18s cubic-bezier(.4,0,.2,1)}.rb-preset-btn:hover{color:var(--text)}.rb-preset-btn.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.rb-blocks{flex:1;padding:6px 10px 16px}.rb-block{background:var(--surface);cursor:grab;border:1.5px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-bottom:1px;padding:8px 10px;transition:all .12s;display:flex}.rb-block:hover{background:#007aff08}.rb-block.dragging{opacity:.85;background:var(--surface);z-index:1000;transform:scale(.97);box-shadow:0 4px 16px #00000026}.rb-block.drag-over{border-color:var(--active);box-shadow:0 0 0 2px #007aff1a}.rb-block-placeholder{border:2px dashed var(--active);opacity:.4;background:#007aff08;border-radius:8px;margin-bottom:1px}.rb-block.locked{cursor:default;opacity:.6}.rb-drag-grip{color:var(--text-3);font-size:var(--text-sm);cursor:grab;-webkit-user-select:none;user-select:none;text-align:center;flex-shrink:0;width:14px}.rb-block.locked .rb-drag-grip{cursor:default;font-size:var(--text-xs)}.rb-block-label{font-size:var(--text-base);color:var(--text);font-weight:500;font-family:var(--font-base);flex:1}.rb-block-toggle{cursor:pointer;flex-shrink:0;align-items:center;display:flex}.rb-block-toggle input[type=checkbox]{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rb-block-switch{background:var(--border);border-radius:9px;flex-shrink:0;width:30px;height:17px;transition:background .2s;position:relative}.rb-block-switch:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.rb-block.enabled .rb-block-switch{background:var(--active)}.rb-block.enabled .rb-block-switch:after{transform:translate(13px)}.report-student{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px 28px}.report-header{text-align:center;border-bottom:2px solid var(--text);margin-bottom:20px;padding-bottom:14px}.report-course-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);text-transform:uppercase;letter-spacing:.14em;color:var(--text-2);margin-bottom:6px}.report-student-name{font-family:var(--font-base);font-size:var(--text-3xl);color:var(--text);margin-bottom:5px;font-weight:700}.report-period{font-family:var(--font-base);font-size:var(--text-md);color:var(--text-3)}.report-block-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:14px;padding:14px 18px}.report-block-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:8px;font-weight:600}.report-overall{border:1px solid var(--border);border-radius:var(--radius);align-items:stretch;gap:0;margin-bottom:24px;display:flex;overflow:hidden}.report-overall-main{background:var(--text);color:#fff;flex-direction:column;flex:0 0 200px;justify-content:center;padding:18px 22px;display:flex}.report-overall-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:#fff9;margin-bottom:3px}.report-overall-word{font-family:var(--font-base);font-size:var(--text-2xl);font-weight:700}.report-overall-sections{flex-wrap:wrap;flex:1;display:flex}.report-section-chip{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex:130px;min-width:110px;padding:14px 16px}.report-section-chip:last-child{border-right:none}.report-section-chip-name{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:3px}.report-section-chip-value{font-family:var(--font-base);font-size:var(--text-lg);font-weight:600}.report-narrative{background:var(--bg);border-left:4px solid var(--active);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--text-lg);color:var(--text);margin-bottom:24px;padding:16px 20px;line-height:1.7}.report-learner-profile{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;overflow:hidden}.report-learner-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-2);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 18px;font-weight:600}.report-learner-dims{flex-wrap:wrap;gap:0;padding:14px 18px;display:flex}.report-learner-dim{flex:33%;align-items:center;gap:10px;min-width:140px;padding:8px 10px;display:flex}.report-learner-dim-icon{font-size:var(--text-xl);flex-shrink:0}.report-learner-dim-info{flex:1}.report-learner-dim-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:2px}.report-learner-dim-value{font-family:var(--font-base);font-size:var(--text-md);font-weight:600}.report-learner-dim-bar{background:var(--divider-subtle);border-radius:2px;height:4px;margin-top:3px}.report-learner-dim-fill{border-radius:2px;height:100%;transition:width .3s}.report-dim-desc{font-size:var(--text-sm);color:var(--text-2);margin-top:1px;line-height:1.3}.report-dim-example{font-size:var(--text-xs);color:var(--text-3);margin-top:1px;font-style:italic;line-height:1.3}.report-obs-notes{border-top:1px solid var(--border);padding:12px 18px}.report-obs-notes-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:8px}.report-obs-note{font-size:var(--text-md);color:var(--text);border-left:3px solid var(--border);margin-bottom:6px;padding-left:10px;line-height:1.5}.report-obs-note-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--text-3)}.report-subject-title{font-family:var(--font-base);font-size:var(--text-2xl);color:var(--text);border-bottom:1px solid var(--border);margin:28px 0 14px;padding-bottom:8px;font-weight:600}.report-section-block{page-break-inside:avoid;margin-bottom:20px}.report-section-header{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text);border-left:4px solid var(--text-3);background:var(--report-block-bg);margin-bottom:0;padding:8px 14px;font-weight:600}.report-tag-table{border-collapse:collapse;width:100%}.report-tag-table th{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);border-bottom:2px solid var(--border);text-align:left;background:var(--bg);padding:8px 12px}.report-tag-table td{border-bottom:1px solid var(--divider-subtle);font-size:var(--text-md);vertical-align:middle;padding:10px 12px;line-height:1.55}.report-tag-table tr:last-child td{border-bottom:none}.report-tag-statement{color:var(--text)}.report-tag-prof{white-space:nowrap;min-width:90px;font-weight:600;font-size:var(--text-md)}.report-tag-evidence{font-size:var(--text-md);color:var(--text-2);min-width:170px}.report-tag-evidence div{margin-bottom:3px}.report-outcome-section{page-break-inside:avoid;margin-bottom:16px}.report-outcome-section-header{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-2);border-bottom:1.5px solid var(--border);margin-bottom:2px;padding-bottom:5px;font-weight:700}.report-outcome-row{border-bottom:1px solid var(--overlay-hover);align-items:center;gap:12px;padding:8px 0;display:flex}.report-outcome-row:last-child{border-bottom:none}.report-outcome-info{flex:1;min-width:0;overflow:hidden}.report-outcome-label{font-size:var(--text-md);color:var(--text);font-weight:600}.report-outcome-statement{font-size:var(--text-sm);color:var(--text-2);margin-top:1px;line-height:1.35}.report-ican-list{margin:4px 0 0;padding:0 0 0 16px;list-style:none}.report-ican-item{font-size:var(--text-sm);color:var(--text-2);padding:2px 0 2px 12px;line-height:1.4;position:relative}.report-ican-item:before{content:"";background:var(--text-3);border-radius:50%;width:4px;height:4px;position:absolute;top:8px;left:0}.report-outcome-status{flex-shrink:0;align-items:center;gap:8px;display:flex}.report-outcome-bar{border-radius:var(--radius-xs);background:var(--divider-subtle);width:48px;height:6px;overflow:hidden}.report-outcome-bar-fill{border-radius:var(--radius-xs);height:100%}.report-outcome-pill{border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;padding:3px 10px;font-weight:600}.report-outcome-evidence{font-size:var(--text-sm);color:var(--text-3);flex-wrap:wrap;gap:2px 0;max-width:75%;margin-top:3px;font-weight:400;line-height:1.6;display:flex}.report-outcome-ev{white-space:nowrap}.report-next-steps{background:var(--report-callout-bg);border:1px solid var(--report-callout-border);border-radius:var(--radius);margin:24px 0;padding:18px 22px}.report-next-steps-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--late);margin-bottom:10px;font-weight:600}.report-next-step-item{font-size:var(--text-md);color:var(--text);gap:10px;padding:5px 0;line-height:1.5;display:flex}.report-next-step-bullet{width:22px;height:22px;font-size:var(--text-sm);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-weight:700;display:flex}.report-legend{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);gap:0;margin-bottom:20px;display:flex;overflow:hidden}.report-legend-item{border-right:1px solid var(--border);font-size:var(--text-base);flex:1;align-items:center;gap:8px;padding:8px 10px;line-height:1.35;display:flex}.report-legend-item:last-child{border-right:none}.report-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.report-legend-text{flex-direction:column;gap:1px;display:flex}.report-legend-word{font-family:var(--font-base);font-size:var(--text-sm);font-weight:700}.report-legend-desc{font-size:var(--text-sm);color:var(--text-3);line-height:1.3}.report-parent-response{page-break-inside:avoid;margin-bottom:14px}.report-parent-lines{gap:24px;margin-bottom:16px;display:flex}.report-parent-line{flex:1;align-items:flex-end;gap:8px;display:flex}.report-parent-label{font-size:var(--text-base);color:var(--text-2);white-space:nowrap;font-weight:600}.report-parent-field{border-bottom:1.5px solid var(--text-3);flex:1;min-height:24px}.report-parent-checks{flex-direction:column;gap:10px;margin:14px 0;display:flex}.report-parent-check{font-size:var(--text-md);color:var(--text);align-items:center;gap:10px;line-height:1.4;display:flex}.report-parent-checkbox{border:1.5px solid var(--text-3);border-radius:var(--radius-xs);flex-shrink:0;width:15px;height:15px}.report-reflect-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.report-reflect-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.report-reflect-card-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.report-reflect-card-icon{font-size:var(--text-xl)}.report-reflect-card-label{font-size:var(--text-base);color:var(--text);font-weight:700}.report-reflect-card-prompt{font-size:var(--text-sm);color:var(--text-2);margin-bottom:10px;font-style:italic;line-height:1.35}.report-reflect-scale{justify-content:space-between;align-items:center;gap:0;display:flex}.report-reflect-bubble-group{align-items:center;gap:6px;display:flex}.report-reflect-bubble{border:1.5px solid var(--text-3);border-radius:50%;flex-shrink:0;width:14px;height:14px}.report-reflect-scale-label{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:600}.report-reflect-open{margin-top:6px}.report-reflect-open-line{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.report-reflect-open-label{font-size:var(--text-base);color:var(--text);white-space:nowrap;font-weight:600}.report-reflect-open-field{border-bottom:1.5px solid var(--border);flex:1;min-height:20px}.report-habits-table{border-collapse:collapse;width:100%;margin-bottom:16px}.report-habits-table th{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);text-align:center;border-bottom:1.5px solid var(--border);padding:6px 4px}.report-habits-table th:first-child{text-align:left;width:55%}.report-habits-table td{border-bottom:1px solid var(--overlay-hover);font-size:var(--text-base);color:var(--text);text-align:center;padding:9px 4px}.report-habits-table td:first-child{text-align:left}.report-habits-bubble{border:1.5px solid var(--text-3);border-radius:50%;width:14px;height:14px;display:inline-block}.report-habits-checks{grid-template-columns:1fr 1fr;gap:8px 24px;margin-bottom:14px;display:grid}.class-summary-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}.class-summary-table th{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);background:var(--text);color:#fff;text-align:left;padding:12px 14px}.class-summary-table td{border-bottom:1px solid var(--border);font-size:var(--text-md);padding:10px 14px}.class-summary-table tr:nth-child(2n) td{background:var(--bg)}.class-summary-table tr:hover td{background:var(--active-light)}.class-summary-name{font-weight:600}.class-summary-name a:hover{text-decoration:underline;color:var(--active)!important}.tq-wrap{--tq-top-panel-height:1020px;--tq-bottom-panel-height:180px;grid-template-columns:minmax(0,1.12fr) minmax(0,.86fr) minmax(0,1fr);grid-template-rows:auto minmax(var(--tq-top-panel-height), auto) 1fr auto;grid-template-areas:"header header header""rate data write""rate obs obs""footer footer footer";align-items:stretch;gap:12px;padding:12px 2px 4px;display:grid}.student-header-top{grid-area:header;margin-bottom:4px}.tq-panel{background:var(--surface-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border:.5px solid var(--overlay-pressed);box-shadow:0 .5px 1px var(--overlay-hover), 0 2px 8px var(--overlay-hover);border-radius:14px;flex-direction:column;padding:12px 14px;display:flex}.tq-panel-title{font-family:var(--font-base);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-2);align-items:center;gap:8px;margin-bottom:10px;font-weight:650;display:flex}.tq-panel.fill{flex:1;min-height:0}.tq-panel-title.spread{justify-content:space-between}.tq-panel-title .tq-panel-badge{font-family:var(--font-base);font-size:var(--text-xs);border-radius:var(--radius-xs);background:var(--overlay-hover);color:var(--text-3);padding:2px 7px;font-weight:500}.tq-dim-pills,.tq-rate-pills{background:var(--divider-subtle);border-radius:8px;gap:1px;padding:2px;display:flex}.tq-pill,.tq-rate-pill{border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;color:var(--text-2);text-align:center;font-weight:510;line-height:1.15;font-family:var(--font-base);letter-spacing:var(--tracking-tight);background:0 0;border:none;flex:1;padding:6px;transition:all .2s}.tq-pill:hover,.tq-rate-pill:hover{color:var(--text)}.tq-pill.active,.tq-rate-pill.active{background:var(--surface);color:var(--text);box-shadow:0 .5px 1.5px #0000001f, 0 0 .5px var(--overlay-pressed);font-weight:600}.tq-pill.active.pill-1,.tq-rate-pill.active.rp-1{background:var(--score-1-bg);color:var(--score-1-text);box-shadow:0 .5px 2px #d32f2f26}.tq-pill.active.pill-2,.tq-rate-pill.active.rp-2{background:var(--score-2-bg);color:var(--score-2-text);box-shadow:0 .5px 2px #c07a0026}.tq-pill.active.pill-3,.tq-rate-pill.active.rp-3{background:var(--score-3-bg);color:var(--score-3-text);box-shadow:0 .5px 2px #2e7d3226}.tq-pill.active.pill-4,.tq-rate-pill.active.rp-4{background:var(--score-4-bg);color:var(--score-4-text);box-shadow:0 .5px 2px #1565c026}.tq-col-rate{flex-direction:column;grid-area:rate;align-self:start;gap:10px;display:flex}.tq-dim-row{border-bottom:.5px solid var(--divider-subtle);flex-direction:column;gap:5px;padding:10px 0;display:flex}.tq-dim-row:last-child{border-bottom:none}.tq-dim-header{align-items:center;gap:7px;display:flex}.tq-dim-icon{font-size:var(--text-md);text-align:center;filter:saturate(.85);flex-shrink:0;width:20px}.tq-dim-label{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text);letter-spacing:var(--tracking-tight);flex:1;font-weight:560}.tq-dim-evidence-count{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-2xs);color:var(--text-3);cursor:help;opacity:.6;flex-shrink:0;font-weight:500}.tq-dim-row:hover .tq-dim-evidence-count{opacity:1}.tq-rate-row{border-bottom:.5px solid var(--divider-subtle);flex-direction:column;gap:5px;padding:10px 0;display:flex}.tq-rate-row:last-child{border-bottom:none}.tq-rate-label{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text);letter-spacing:var(--tracking-tight);font-weight:560}.tq-traits-row{border-bottom:none;gap:10px;width:100%;padding:10px 0 2px;display:flex}.tq-traits-label{font-family:var(--font-base);font-size:var(--text-sm);color:var(--text);width:80px;min-width:80px;letter-spacing:var(--tracking-tight);flex-shrink:0;align-self:center;font-weight:560}.tq-traits-content{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.tq-trait-wrap{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.tq-trait-chip{border-radius:var(--radius-lg);font-size:var(--text-xs);cursor:pointer;background:var(--overlay-hover);color:var(--text-2);font-weight:500;line-height:1.1;font-family:var(--font-base);letter-spacing:var(--tracking-tight);border:none;padding:5px 11px;transition:all .18s}.tq-trait-chip:hover{background:var(--overlay-pressed);color:var(--text)}.tq-trait-chip.active{color:#248a3d;background:#34c75924;font-weight:600;box-shadow:inset 0 0 0 1px #34c75933}.tq-trait-chip.concern{background:var(--overlay-hover);color:#a06400a6}.tq-trait-chip.concern:hover{color:#a06400e6;background:#ff950014}.tq-trait-chip.concern.active{color:#af5200;background:#ff95001f;font-weight:600;box-shadow:inset 0 0 0 1px #ff950033}.tq-trait-divider{border:none;border-top:.5px solid var(--divider-subtle);width:100%;height:0;margin:4px 0}.tq-col-data,.tq-col-write,.tq-col-observations{flex-direction:column;display:flex}.tq-col-data{grid-area:data;align-self:stretch;gap:12px;min-height:100%}.tq-col-write{grid-area:write;align-self:stretch;gap:12px;min-height:100%}.tq-col-observations{grid-area:obs;align-self:stretch}.tq-col-data>.tq-panel.fill,.tq-col-write>.tq-panel.fill{flex:auto;min-height:100%}.tq-col-observations>.tq-panel.fill{flex:auto}.tq-col-data>.tq-panel[data-panel-id=academic-snapshot]{height:var(--tq-top-panel-height);max-height:var(--tq-top-panel-height);min-height:var(--tq-top-panel-height);flex-direction:column;display:flex}.tq-col-write>.tq-panel[data-panel-id=narrative-comment]{height:var(--tq-top-panel-height);max-height:var(--tq-top-panel-height);min-height:var(--tq-top-panel-height)}.tq-col-observations>.tq-panel{width:100%;min-height:var(--tq-bottom-panel-height);flex:auto}.tq-col-observations .tq-evidence-list{flex:1;min-height:0;overflow-y:auto}.tq-snapshot-grid{flex-direction:column;gap:3px;display:flex}.tq-snapshot-item{background:var(--bg);box-sizing:border-box;border-radius:6px;justify-content:space-between;align-items:center;height:36px;padding:0 10px;display:flex}.tq-snapshot-item-label{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text);font-weight:700}.tq-snapshot-item-value{font-size:var(--text-md);letter-spacing:var(--tracking-tight);border-radius:var(--radius-sm);text-align:center;box-sizing:border-box;min-width:110px;padding:1px 8px;font-weight:800}.tq-snapshot-item.overall{background:var(--overlay-hover)}.tq-snapshot-item.overall .tq-snapshot-item-label{font-weight:700}.tq-assignment-section{flex-direction:column;flex:auto;min-height:0;margin-top:10px;display:flex;overflow:hidden}.tq-assignment-section .tq-panel-title{margin-bottom:6px;font-size:.5rem}.tq-obs-summary{flex-wrap:wrap;gap:6px;display:flex}.tq-obs-stat{border-radius:var(--radius-sm);background:var(--bg);font-size:var(--text-sm);color:var(--text-2);align-items:center;gap:3px;padding:4px 10px;font-weight:500;display:flex}.tq-evidence-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.tq-evidence-item{width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--text-2);border:0;border-left:2px solid var(--border);background:var(--bg);text-align:left;cursor:pointer;border-radius:0 6px 6px 0;align-items:flex-start;gap:6px;padding:5px 8px;line-height:1.35;transition:all .15s;display:flex}.tq-evidence-item:hover{background:var(--divider-subtle)}.tq-evidence-item.selected{border-left-color:var(--active);background:#007aff0f}.tq-evidence-item .tq-tag-check{border:1.5px solid var(--border);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-top:2px;display:flex}.tq-evidence-item.selected .tq-tag-check{background:var(--active);border-color:var(--active)}.tq-evidence-item .tq-tag-check:after{content:"✓";color:#fff;font-size:var(--text-2xs);display:none}.tq-evidence-item.selected .tq-tag-check:after{display:block}.tq-evidence-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;display:-webkit-box;overflow:hidden}.tq-evidence-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);margin-left:4px}.tq-evidence-sentiment{margin-right:3px;display:inline-block}.tq-reflection-row{border-radius:var(--radius-sm);background:var(--bg);justify-content:space-between;align-items:center;margin-bottom:3px;padding:4px 8px;display:flex}.tq-reflection-row:last-child{margin-bottom:0}.tq-reflection-label{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.tq-reflection-val{font-size:var(--text-xs);flex-shrink:0;font-weight:600}.tq-obs-wide-date{font-size:var(--text-sm);color:var(--text-3);white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:8px}.tq-assignment-list{scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:3px;height:100%;min-height:0;margin-top:6px;padding-right:2px;display:flex;overflow-y:scroll}.tq-assignment-row{background:var(--bg);border-radius:var(--radius-sm);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:5px 10px;transition:all .1s;display:flex}.tq-assignment-row:hover{background:var(--divider-subtle)}.tq-assignment-row.selected{background:#007aff0f;border:1px solid #007aff26;padding:4px 9px}.tq-assignment-row .tq-tag-check{border-radius:var(--radius-xs);border:1.5px solid var(--border);width:13px;height:13px;font-size:var(--text-2xs);color:#fff;flex-shrink:0;justify-content:center;align-items:center;transition:all .1s;display:flex}.tq-assignment-row.selected .tq-tag-check{background:var(--active);border-color:var(--active)}.tq-assignment-title{font-size:var(--text-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.tq-assignment-type{font-family:SF Mono,ui-monospace,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);border-radius:var(--radius-xs);background:var(--overlay-hover);flex-shrink:0;padding:1px 5px}.tq-assignment-score{font-size:var(--text-sm);text-align:right;flex-shrink:0;min-width:60px;font-weight:700}.tq-editor-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-direction:column;flex:1;min-height:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.tq-editor-wrap:focus-within{border-color:var(--active);background:var(--surface);box-shadow:0 0 0 3px #007aff14}.tq-narrative-editor{min-height:0;font-family:var(--font-base);font-size:var(--text-base);color:var(--text);cursor:text;outline:none;flex:1;padding:12px 14px;line-height:1.65;overflow-y:auto}.tq-narrative-editor:empty:before{content:attr(data-placeholder);color:var(--text-3);pointer-events:none;font-style:italic}.tq-narrative-editor p{margin:0 0 10px}.tq-narrative-editor p:last-child{margin-bottom:0}.tq-narrative-editor b,.tq-narrative-editor strong{font-weight:600}.tq-narrative-editor i,.tq-narrative-editor em{font-style:italic}.tq-narrative-editor u{text-underline-offset:2px;-webkit-text-decoration:underline #00000059;text-decoration:underline #00000059}.tq-narrative-editor ul,.tq-narrative-editor ol{margin:4px 0 4px 18px;padding:0}.tq-narrative-editor li{margin-bottom:2px}.tq-auto-btn{font-family:var(--font-base);font-size:var(--text-sm);background:var(--overlay-hover);color:var(--text-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;width:100%;padding:7px 14px;font-weight:500;transition:all .12s}.tq-auto-btn:hover{border-color:var(--active);color:var(--active);background:#007aff0a}.tq-nav-footer{border-top:1px solid var(--border);z-index:10;background:var(--bg);grid-area:footer;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:14px;display:flex;position:relative}.tq-nav-btn{font-family:var(--font-base);font-size:var(--text-base);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 28px;font-weight:600;transition:all .12s}.tq-nav-btn:hover{border-color:var(--text-3)}.tq-nav-btn:disabled{opacity:.4;cursor:default}.tq-nav-btn.primary{background:var(--active);color:#fff;border-color:var(--active)}.tq-nav-btn.primary:hover{background:#0064d2}.tq-obs-filter-bar{gap:4px;margin-bottom:6px;display:flex}.tq-obs-hint{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.55rem}.tq-obs-empty{font-size:var(--text-sm);color:var(--text-3);padding:12px 0}.tq-obs-assign-tag{color:var(--active);margin-right:3px;font-size:.5rem;font-weight:600}.tq-nav-counter{color:var(--text-3);text-transform:uppercase;text-align:center;flex:1;font-family:SF Mono,ui-monospace,monospace;font-size:.6rem}.tq-obs-filter-btn{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-3);cursor:pointer;font-weight:500;font-family:var(--font-base);background:0 0;padding:2px 8px;transition:all .15s}.tq-obs-filter-btn:hover{background:var(--overlay-hover);color:var(--text)}.tq-obs-filter-btn.active{background:var(--active);color:#fff;border-color:var(--active)}.report-comments{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.report-comments-title{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);margin-bottom:8px}.report-comment{font-size:var(--text-md);color:var(--text);border-left:3px solid var(--border);margin-bottom:8px;padding-left:12px;line-height:1.6}.report-comment-date{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-sm);color:var(--text-3)}.tq-student-nav{align-items:center;gap:4px;display:flex}.tq-toolbar-arrow{width:28px;height:28px;color:var(--text-3);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.tq-toolbar-arrow:hover{background:var(--divider-subtle);color:var(--text)}.tq-toolbar-arrow:active{background:#0000001a}.tq-student-name{font-family:var(--font-base);font-size:var(--text-base);color:var(--text);text-align:center;min-width:90px;padding:0 4px;font-weight:600}.tq-progress-ring{flex-shrink:0;width:30px;height:30px;margin-left:4px;position:relative}.tq-progress-ring svg{transform:rotate(-90deg)}.tq-progress-ring .ring-bg{fill:none;stroke:var(--divider-subtle);stroke-width:3px}.tq-progress-ring .ring-fill{fill:none;stroke:var(--active);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .4s}.tq-progress-label{color:var(--text-2);justify-content:center;align-items:center;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.45rem;font-weight:700;display:flex;position:absolute;inset:0}.tq-toolbar{background:var(--overlay-hover);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:1px;padding:5px 6px;display:flex;overflow:hidden}.tq-toolbar-group{background:var(--overlay-hover);border-radius:var(--radius-sm);align-items:center;gap:1px;padding:2px;display:flex}.tq-toolbar-group+.tq-toolbar-group{margin-left:6px}.tq-toolbar-sep{background:#0000001a;flex-shrink:0;width:1px;height:18px;margin:0 4px}.tq-tb-btn{border-radius:var(--radius-xs);width:26px;height:24px;color:var(--text-2);cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;transition:all .1s;display:inline-flex;position:relative}.tq-tb-btn:hover{background:var(--divider-subtle);color:var(--text)}.tq-tb-btn:active{background:#0000001a;transform:scale(.94)}.tq-tb-btn.active{color:var(--active);background:#007aff1f;box-shadow:0 .5px 1px #0000000f}.tq-tb-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.tq-tb-action{width:auto;height:26px;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm);background:var(--overlay-hover);color:var(--text-2);gap:4px;padding:0 10px;font-weight:600}.tq-tb-action svg{width:13px;height:13px}.tq-tb-btn.tq-tb-auto{width:auto;height:32px;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm);background:var(--active);color:#fff;gap:5px;margin-left:auto;padding:4px 14px;font-weight:600}.tq-tb-btn.tq-tb-auto:hover{background:var(--btn-hover-blue,#06d);color:#fff}.tq-tb-btn.tq-tb-auto svg{fill:#fff;width:13px;height:13px}.tq-tb-btn.tq-tb-copy{width:auto;height:32px;font-size:var(--text-sm);border-radius:var(--radius-sm);background:var(--overlay-hover);color:var(--text-2);gap:5px;padding:4px 12px;font-weight:600}.tq-tb-btn.tq-tb-copy:hover{color:var(--active);background:#007aff14}.tq-tb-btn.tq-tb-copy.copied{color:#30a14e;background:#34c7591f}.tq-tb-btn.tq-tb-copy svg{width:15px;height:15px}@media print{@page{size:letter;margin:.5in .55in}@page:left{margin-left:.65in;margin-right:.45in}@page:right{margin-left:.45in;margin-right:.65in}body{color:#000!important;background:#fff!important;padding:0!important;font-size:9.5pt!important;line-height:1.4!important}#app-dock,#gb-sidebar,#sidebar-mount,.no-print,.report-controls,.report-type-tabs,.page-layout>aside,.sidebar-toggle,.rb-panel,.report-toolbar,.rpt-sidebar{display:none!important}.page-layout,.page-layout.route-owned-layout,.u-flex-col-fill,.page-layout .u-flex-col-fill,.page-layout:not(.dashboard-layout) .u-flex-col-fill,.page-layout.route-owned-layout .u-flex-col-fill{height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}.shell-main,.page-main,.page-layout .shell-main,.page-layout:not(.dashboard-layout) .shell-main,.page-layout.route-owned-layout .shell-main{height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;display:block!important;overflow:visible!important}.rpt-page,.rpt-workspace{height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}.report-content{height:auto!important;max-height:none!important;overflow:visible!important}.rb-layout{height:auto!important;max-height:none!important;display:block!important;overflow:visible!important}#report-output{height:auto!important;overflow:visible!important}.rb-preview{max-width:none!important;height:auto!important;max-height:none!important;padding:0!important;overflow:visible!important}.report-student{page-break-after:always;max-width:none!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}.report-student:last-child{page-break-after:auto}.report-student-name{font-size:var(--text-2xl)!important;margin-bottom:2px!important}.report-period{font-size:var(--text-base)!important}.report-course-title{font-size:var(--text-xs)!important}.report-overall{margin-bottom:12px!important}.report-overall-main{flex:0 0 150px!important;padding:10px 14px!important}.report-overall-word{font-size:var(--text-xl)!important}.report-overall-label{font-size:var(--text-xs)!important}.report-section-chip{padding:8px 10px!important}.report-section-chip-name{font-size:var(--text-2xs)!important}.report-section-chip-value{font-size:var(--text-base)!important}.report-narrative{font-size:var(--text-md)!important;margin-bottom:12px!important;padding:10px 14px!important;line-height:1.5!important}.report-block-box{margin-bottom:10px!important;padding:10px 14px!important}.report-block-title{font-size:var(--text-2xs)!important;margin-bottom:4px!important}.report-learner-profile{margin-bottom:10px!important}.report-learner-title{font-size:var(--text-sm)!important;padding:6px 14px!important}.report-learner-dims{gap:6px!important;padding:8px 14px!important}.report-learner-dim-label,.report-learner-dim-value{font-size:var(--text-sm)!important}.report-next-steps{margin-bottom:10px!important}.report-next-steps-title{font-size:var(--text-sm)!important}.report-legend{margin-bottom:10px!important}.report-legend-word{font-size:var(--text-sm)!important}.report-legend-desc{font-size:var(--text-xs)!important}.report-legend-dot{width:8px!important;height:8px!important}.report-tag-table th{font-size:var(--text-xs)!important;padding:4px 8px!important}.report-tag-table td{font-size:var(--text-sm)!important;padding:4px 8px!important}.report-subject-title{font-size:var(--text-lg)!important;margin:16px 0 8px!important}.report-section-header{font-size:var(--text-sm)!important;padding:5px 10px!important}.report-section-block{page-break-inside:avoid!important}.report-section-header,.report-subject-title{page-break-after:avoid!important}.report-tag-table{page-break-inside:avoid!important}.report-block-box{page-break-inside:avoid!important;border-color:#bbb!important}.report-next-steps,.report-narrative,.report-overall{page-break-inside:avoid!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.class-summary-table{page-break-inside:auto}.class-summary-table tr{page-break-inside:avoid}.report-learner-profile,.report-outcome-section,.report-parent-response,.report-habits-table{page-break-inside:avoid!important}svg{overflow:visible!important}.tq-wrap{display:none!important}}.obs-page{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:calc(100vh - var(--dock-h));min-height:calc(100vh - var(--dock-h));background:var(--bg);font-family:var(--font-base);display:grid}.page-layout.sidebar-hidden .obs-page{grid-template-columns:minmax(0,1fr)}.obs-workspace{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.obs-sidebar{border-right:1px solid var(--divider-subtle);background:var(--surface);z-index:1;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.page-layout.sidebar-hidden .obs-sidebar{display:none}.obs-sidebar-toolbar{border-bottom:1px solid var(--divider-subtle);gap:8px;padding:16px 16px 12px;display:grid}.obs-sidebar-course-select,.obs-sidebar-search{width:100%;font-family:var(--font-base);font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--divider-subtle);border-radius:8px;outline:none;transition:border-color .15s}.obs-sidebar-course-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' fill='none' stroke='%23222222' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:6px 28px 6px 10px;font-weight:400}.obs-sidebar-course-select:hover{border-color:var(--text-3)}.obs-sidebar-search{padding:6px 10px}.obs-sidebar-search::placeholder{color:var(--text-3)}.obs-sidebar-list{flex:1;min-height:0;padding:6px 0;overflow-y:auto}.obs-student-row{cursor:pointer;width:100%;font-family:var(--font-base);font-size:var(--text-base);color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:5px 16px;transition:background 80ms;display:flex}.obs-student-row:hover{background:var(--overlay-hover)}.obs-student-row.active{background:#007aff0f;font-weight:600}.obs-student-avatar{color:#fff;width:26px;height:26px;font-size:var(--text-2xs);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.obs-student-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.obs-student-badge{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);background:var(--overlay-hover);color:var(--text-3);border-radius:6px;flex-shrink:0;padding:1px 5px;font-weight:600}.obs-sidebar-footer{border-top:1px solid var(--divider-subtle);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.obs-sidebar-count{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:500}.obs-sidebar-add{font-size:var(--text-sm);color:var(--active);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-weight:600}.obs-sidebar-add:hover{text-decoration:underline}.obs-capture{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 16px}.obs-capture-row{align-items:flex-start;gap:8px;display:flex}.obs-capture-student{flex-shrink:0;position:relative}.obs-capture-student-btn{font-family:var(--font-base);font-size:var(--text-base);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;text-align:left;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;min-width:140px;padding:5px 12px;font-weight:500;transition:all .15s;display:flex}.obs-capture-student-btn:hover{border-color:var(--text-3);color:var(--text)}.obs-capture-student-btn:focus{border-color:var(--active);outline:none;box-shadow:0 0 0 3px #007aff1a}.obs-capture-student-btn.has-selection{border-color:var(--active);color:var(--active);font-weight:600}.obs-btn-arrow{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") 50% no-repeat;width:10px;height:6px;margin-left:auto;display:inline-block}.has-selection .obs-btn-arrow,.has-tags .obs-btn-arrow,.active .obs-btn-arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23007AFF'/%3E%3C/svg%3E")}.obs-capture-input{font-family:var(--font-base);font-size:var(--text-base);background:var(--overlay-hover);color:var(--text);resize:none;border:1px solid #0000;border-radius:8px;outline:none;flex:1;min-width:0;padding:8px 12px;line-height:1.4;transition:all .2s}.obs-capture-input:focus{background:var(--surface);border-color:var(--active);box-shadow:0 0 0 3px #007aff1f}.obs-capture-input::placeholder{color:var(--text-3)}.obs-capture-add{font-family:var(--font-base);font-size:var(--text-sm);background:var(--active);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:5px 14px;font-weight:600;transition:all .15s}.obs-capture-add:hover{background:var(--btn-hover-blue);box-shadow:0 2px 8px #007aff33}.obs-capture-add:active{transform:scale(.97)}.obs-capture-add:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.obs-capture-secondary{flex-direction:column;gap:6px;margin-top:8px;display:flex}.obs-capture-tokens{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.obs-enrichment-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.obs-enrichment-sep{background:var(--border);width:1px;height:16px;margin:0 4px}.obs-sentiment-pill{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:500;transition:all .12s;display:inline-flex}.obs-sentiment-pill:hover{border-color:var(--text-3)}.obs-sentiment-pill.active{font-weight:600}.obs-assessment-toggle{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:500;transition:all .12s;display:inline-flex}.obs-assessment-toggle:hover{border-color:var(--text-3)}.obs-assessment-toggle.active{color:#36a;background:#eef3ff;border-color:#90b0e0;font-weight:600}.obs-context-chip{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--divider-subtle);border-radius:var(--radius-lg);background:var(--bg);color:var(--text-3);cursor:pointer;white-space:nowrap;align-items:center;gap:3px;padding:3px 9px;font-weight:500;transition:all .12s;display:inline-flex}.obs-context-chip:hover{border-color:var(--border);color:var(--text-2)}.obs-context-chip.active{background:var(--active-light);border-color:var(--active);color:var(--active);font-weight:600}.obs-token{border-radius:var(--radius-xl);color:var(--active);font-size:var(--text-sm);background:#007aff14;align-items:center;gap:3px;padding:2px 7px 2px 8px;font-weight:600;display:inline-flex}.obs-token-x{cursor:pointer;font-family:inherit;font-size:var(--text-xs);color:var(--active);opacity:.5;background:0 0;border:0;padding:0;transition:opacity .1s}.obs-token-x:hover{opacity:1}.obs-tag-pill{border-radius:var(--radius-xl);font-size:var(--text-sm);background:var(--divider-subtle);color:var(--text-2);align-items:center;gap:3px;padding:2px 7px 2px 5px;font-weight:500;display:inline-flex}.obs-tag-pill .pill-dot{border-radius:50%;width:6px;height:6px}.obs-tag-pill-x{cursor:pointer;font-family:inherit;font-size:var(--text-2xs);color:var(--text-3);opacity:.6;background:0 0;border:0;margin-left:1px;padding:0}.obs-tag-pill-x:hover{opacity:1;color:var(--priority)}.obs-popover{z-index:200;background:var(--surface);border:1px solid var(--overlay-pressed);border-radius:var(--radius);box-shadow:0 8px 30px var(--overlay-pressed), 0 0 0 .5px var(--divider-subtle);max-height:380px;margin-top:4px;display:none;position:absolute;top:100%;left:0;overflow:hidden}.obs-popover.open{flex-direction:column;display:flex}.obs-popover.right-align{left:auto;right:0}.obs-popover-search{font-family:var(--font-base);font-size:var(--text-base);border:none;border-bottom:1px solid var(--border);box-sizing:border-box;width:100%;color:var(--text);background:var(--surface);outline:none;padding:8px 10px}.obs-popover-search::placeholder{color:var(--text-3)}.obs-popover-list{flex:1;overflow-y:auto}.obs-popover-item{text-align:left;cursor:pointer;width:100%;font-family:inherit;font-size:var(--text-base);color:var(--text);background:0 0;border:0;align-items:center;gap:7px;padding:5px 10px;transition:background 80ms;display:flex}.obs-popover-item:hover{background:#007aff0f}.obs-popover-item.selected{background:#007aff0a;font-weight:600}.obs-popover-check{border:1.5px solid var(--border);width:16px;height:16px;font-size:var(--text-2xs);color:#0000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:flex}.obs-popover-item.selected .obs-popover-check{background:var(--active);border-color:var(--active);color:#fff}.obs-popover-section{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);-webkit-user-select:none;user-select:none;padding:8px 10px 3px;font-weight:600}.obs-popover-section:not(:first-child){border-top:1px solid var(--border);margin-top:2px;padding-top:8px}.obs-tag-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.obs-popover-add-row{border-top:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;display:flex}.obs-popover-add-input{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--surface);outline:none;flex:1;padding:4px 8px}.obs-popover-add-input:focus{border-color:var(--active)}.obs-popover-add-input::placeholder{color:var(--text-3)}.obs-popover-add-btn{font-family:var(--font-base);font-size:var(--text-sm);color:var(--active);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-weight:600}.obs-popover-add-btn:hover{background:#007aff14}.obs-tag-trigger-wrap{flex-shrink:0;position:relative}.obs-tag-trigger{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;font-weight:500;transition:all .15s;display:flex}.obs-tag-trigger:hover{border-color:var(--text-3);color:var(--text)}.obs-tag-trigger.has-tags{border-color:var(--active);color:var(--active);font-weight:600}.obs-tag-trigger .tag-icon{justify-content:center;align-items:center;width:14px;height:14px;display:flex}.obs-tag-trigger .tag-icon svg{width:14px;height:14px}.obs-badge{background:var(--active);color:#fff;min-width:16px;height:16px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;font-weight:700;display:inline-flex}.obs-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.obs-search-wrap{align-items:center;display:flex;position:relative}.obs-search-icon{pointer-events:none;color:var(--text-3);align-items:center;width:13px;height:13px;display:flex;position:absolute;left:8px}.obs-search-icon svg{width:13px;height:13px}.obs-search-input{font-family:var(--font-base);font-size:var(--text-sm);background:var(--overlay-hover);color:var(--text);border:1px solid #0000;border-radius:8px;outline:none;width:160px;padding:5px 12px 5px 28px;transition:all .2s}.obs-search-input:focus{background:var(--surface);border-color:var(--active);width:220px;box-shadow:0 0 0 3px #007aff14}.obs-search-input::placeholder{color:var(--text-3)}.obs-toolbar-divider{background:var(--border);flex-shrink:0;width:1px;height:18px}.obs-strip-popover-wrap{position:relative}.obs-strip-trigger{font-family:var(--font-base);font-size:var(--text-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-weight:500;transition:all .15s;display:flex}.obs-strip-trigger:hover{border-color:var(--text-3);color:var(--text)}.obs-strip-trigger.active{border-color:var(--active);color:var(--active);font-weight:600}.obs-toolbar-sentiments{gap:4px;display:flex}.obs-toolbar-count{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-3);white-space:nowrap;margin-left:auto;font-weight:500}.obs-filter-clear{width:20px;height:20px;font-size:var(--text-sm);color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .12s;display:flex}.obs-filter-clear:hover{color:var(--priority);background:#ff3b3014}.obs-filter-pills{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.obs-filter-pill{font-family:inherit;font-size:var(--text-xs);color:var(--active);cursor:pointer;background:#007aff14;border:0;border-radius:14px;align-items:center;gap:3px;padding:2px 6px 2px 5px;font-weight:500;transition:all .1s;display:inline-flex}.obs-filter-pill:hover{background:#007aff24}.obs-filter-pill .pill-dot{border-radius:50%;width:5px;height:5px}.obs-filter-pill-x{font-size:var(--text-2xs);opacity:.5;margin-left:1px}.obs-filter-pill:hover .obs-filter-pill-x{opacity:1}.obs-feed{flex:1;min-height:0;padding:12px 20px 20px;overflow-y:auto}.obs-feed-date-group{margin-top:24px}.obs-feed-date-group:first-child{margin-top:0}.obs-feed-date-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);align-items:center;gap:12px;margin-bottom:12px;padding:0 4px;font-weight:600;display:flex}.obs-feed-date-label:after{content:"";background:var(--border);flex:1;height:1px}.obs-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);cursor:pointer;border-radius:14px;margin-bottom:8px;padding:10px 14px;transition:box-shadow .15s,transform .15s}.obs-card:hover{transform:translateY(-1px);box-shadow:0 3px 14px #0000000f}.obs-card:focus-visible{outline:2px solid var(--active);outline-offset:2px}.obs-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.obs-card-sentiment{margin-right:4px}.obs-card-student{font-size:var(--text-md);color:var(--text);font-weight:700}.obs-card-time{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);margin-left:6px}.obs-card-context{font-size:var(--text-2xs);color:var(--text-3);margin-left:6px}.obs-card-assessment{font-size:var(--text-2xs);color:#36a;margin-left:6px;font-weight:500}.obs-card-delete{cursor:pointer;font-size:var(--text-xs);color:var(--text-3);opacity:0;background:0 0;border:none;border-radius:6px;flex-shrink:0;margin-top:2px;padding:4px 8px;transition:all .12s}.obs-card:hover .obs-card-delete{opacity:1}.obs-card-delete:hover{color:#dc2626;background:#dc262614}.obs-card-delete.confirming{opacity:1;background:var(--score-1);color:#fff;font-weight:600;font-size:var(--text-xs)}.obs-card-text{font-size:var(--text-sm);color:var(--text);white-space:pre-wrap;word-wrap:break-word;-webkit-line-clamp:5;-webkit-box-orient:vertical;line-height:1.65;display:-webkit-box;overflow:hidden}.obs-card-dims{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.obs-card-dim{font-size:var(--text-2xs);background:var(--overlay-hover);color:var(--text-2);border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-weight:500;transition:background .12s;display:inline-flex}.obs-card-dim:hover{background:var(--overlay-pressed,#00000014)}.obs-card-dim .dim-dot{border-radius:50%;width:6px;height:6px}.obs-empty{text-align:center;color:var(--text-3);padding:60px 20px}.obs-empty-icon{font-size:var(--text-4xl);opacity:.4;margin-bottom:10px}.obs-empty-title{font-size:var(--text-md);color:var(--text-2);margin-bottom:4px;font-weight:600}.obs-empty-sub{font-size:var(--text-base)}.obs-view-toggle{background:var(--overlay-hover);border-radius:8px;gap:1px;margin-left:auto;padding:2px;display:flex}.obs-view-toggle button{font-family:var(--font-base);font-size:var(--text-2xs);color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:3px 10px;font-weight:500;transition:all .15s}.obs-view-toggle button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000014}.obs-view-toggle button:hover:not(.active){color:var(--text-2)}.obs-feed.view-sticky{padding:16px 40px 20px}.obs-feed.view-sticky .obs-feed-date-group{flex-wrap:wrap;gap:14px;display:flex}.obs-feed.view-sticky .obs-feed-date-label{width:100%}.obs-feed.view-sticky .obs-card{border:none;border-radius:3px;flex-shrink:0;width:calc(50% - 7px);margin-bottom:0;padding:14px 16px 12px;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1);box-shadow:2px 3px 10px #00000017,0 1px 3px #0000000f}.obs-feed.view-sticky .obs-card:nth-child(5n+2){transform:rotate(-.6deg)}.obs-feed.view-sticky .obs-card:nth-child(5n+3){transform:rotate(.8deg)}.obs-feed.view-sticky .obs-card:nth-child(5n+4){transform:rotate(-.3deg)}.obs-feed.view-sticky .obs-card:nth-child(5n+1){transform:rotate(.5deg)}.obs-feed.view-sticky .obs-card:nth-child(5n){transform:rotate(-.4deg)}.obs-feed.view-sticky .obs-card[data-sentiment=strength]{background:#c8e6c9}.obs-feed.view-sticky .obs-card[data-sentiment=growth]{background:#bbdefb}.obs-feed.view-sticky .obs-card[data-sentiment=concern]{background:#ffe0b2}.obs-feed.view-sticky .obs-card:hover{z-index:1;cursor:pointer;box-shadow:4px 6px 18px #0000001a;transform:rotate(0)scale(1.03)!important}.obs-card-header-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.obs-feed.view-sticky .obs-card-header{margin-bottom:6px}.obs-feed.view-sticky .obs-card-student{font-weight:700;font-size:var(--text-sm)}.obs-feed.view-sticky .obs-card-time{opacity:.5}.obs-feed.view-sticky .obs-card-text{font-size:var(--text-sm);line-height:1.55}.obs-feed.view-sticky .obs-card-delete{opacity:0}.obs-feed.view-sticky .obs-card:hover .obs-card-delete{opacity:.6}.obs-feed.view-sticky .obs-card-dim{background:#0000000f;padding:2px 6px 2px 5px;font-size:9px}.obs-feed.view-waveform .obs-card{background:var(--overlay-hover);border:none;border-radius:16px;margin-bottom:8px;padding:10px 16px 14px;transition:background .15s;position:relative;overflow:hidden}.obs-feed.view-waveform .obs-card:hover{box-shadow:none;background:var(--overlay-pressed);transform:none}.obs-feed.view-waveform .obs-card:after{content:"";background:var(--border);opacity:.4;border-radius:1.5px;height:3px;position:absolute;bottom:0;left:16px;right:16px}.obs-feed.view-waveform .obs-card[data-sentiment=strength]:after{opacity:.7;background:#2e7d32}.obs-feed.view-waveform .obs-card[data-sentiment=growth]:after{opacity:.7;background:#007aff}.obs-feed.view-waveform .obs-card[data-sentiment=concern]:after{opacity:.7;background:#c07a00}.obs-feed.view-waveform .obs-card-text:before{content:"";opacity:.12;background:repeating-linear-gradient(90deg, var(--text) 0px, var(--text) 2px, transparent 2px, transparent 5px);clip-path:polygon(0% 60%,2% 40%,4% 55%,6% 25%,8% 50%,10% 20%,12% 45%,14% 30%,16% 55%,18% 15%,20% 50%,22% 35%,24% 60%,26% 20%,28% 45%,30% 30%,32% 55%,34% 10%,36% 40%,38% 25%,40% 50%,42% 35%,44% 60%,46% 20%,48% 45%,50% 15%,52% 50%,54% 30%,56% 55%,58% 25%,60% 40%,62% 15%,64% 50%,66% 35%,68% 55%,70% 20%,72% 45%,74% 30%,76% 50%,78% 40%,80% 55%,82% 25%,84% 45%,86% 35%,88% 50%,90% 30%,92% 55%,94% 40%,96% 50%,98% 45%,100% 55%,100% 100%,0% 100%);border-radius:2px;height:24px;margin-bottom:6px;display:block}.obs-feed.view-waveform .obs-card[data-sentiment=strength] .obs-card-text:before{opacity:.25;background:repeating-linear-gradient(90deg,#2e7d32 0 2px,#0000 2px 5px)}.obs-feed.view-waveform .obs-card[data-sentiment=growth] .obs-card-text:before{opacity:.25;background:repeating-linear-gradient(90deg,#007aff 0 2px,#0000 2px 5px)}.obs-feed.view-waveform .obs-card[data-sentiment=concern] .obs-card-text:before{opacity:.25;background:repeating-linear-gradient(90deg,#c07a00 0 2px,#0000 2px 5px)}.obs-feed.view-waveform .obs-card-header{margin-bottom:2px}.obs-feed.view-waveform .obs-card-student{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-weight:600}.obs-feed.view-waveform .obs-card-time{opacity:.5;font-size:9px}.obs-feed.view-waveform .obs-card-text{line-height:1.55}.obs-feed.view-waveform .obs-card-dims{margin-top:8px}.obs-feed.view-waveform .obs-card-dim{font-size:var(--text-2xs);background:#ffffff0d;border-radius:12px}.obs-feed.view-waveform .obs-card-delete{opacity:0}.obs-feed.view-waveform .obs-card:hover .obs-card-delete{opacity:.4}@media (width<=1200px){.obs-page{grid-template-columns:180px minmax(0,1fr)}}@media (width<=1024px){.obs-page{grid-template-columns:1fr}.obs-sidebar{display:none}}.obs-page.mobile{grid-template-columns:1fr}.obs-page.mobile .obs-sidebar{display:none}.obs-focus-backdrop{z-index:100;background:#0000004d;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.obs-focus-card{background-image:repeating-linear-gradient(#0000,#0000 27px,#b4a0822e 27px 28px);background-position:0 0;border-radius:14px;width:680px;max-width:calc(100% - 48px);max-height:calc(100vh - 80px);padding:20px 24px 24px;position:relative;overflow:visible;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f}.obs-focus-card:before{content:"";pointer-events:none;background:#c8505033;width:1px;position:absolute;top:0;bottom:0;left:60px}.obs-focus-card[data-sentiment=strength]{background-color:#eef5e8}.obs-focus-card[data-sentiment=growth]{background-color:#eef2f8}.obs-focus-card[data-sentiment=concern]{background-color:#f5efe0}.obs-focus-card:not([data-sentiment]){background-color:#fff8e7}.obs-focus-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.obs-focus-student{font-size:var(--text-2xl);color:var(--text);font-weight:700}.obs-focus-time{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);color:var(--text-3);margin-left:8px}.obs-focus-close{width:28px;height:28px;color:var(--text-2);font-size:var(--text-sm);cursor:pointer;background:#0000000f;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.obs-focus-close:hover{color:var(--text);background:#0000001f}.obs-focus-sentiments,.obs-focus-contexts{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.obs-focus-pill{border:1px solid var(--border);font-family:var(--font-base);font-size:var(--text-xs);color:var(--text-2);cursor:pointer;background:0 0;border-radius:20px;align-items:center;gap:4px;padding:5px 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.obs-focus-pill:hover{background:var(--overlay-hover)}.obs-focus-pill.active{border-color:currentColor}.obs-focus-pill.active[data-sentiment=strength]{color:#2e7d32;background:#2e7d321f;border-color:#2e7d32}.obs-focus-pill.active[data-sentiment=growth]{color:#007aff;background:#007aff1f;border-color:#007aff}.obs-focus-pill.active[data-sentiment=concern]{color:#c07a00;background:#c07a001f;border-color:#c07a00}.obs-focus-textarea{width:100%;font-family:var(--font-base);font-size:var(--text-lg);color:var(--text);resize:none;field-sizing:content;background:0 0;border:none;outline:none;min-height:140px;max-height:280px;margin-bottom:12px;padding:0;line-height:28px;overflow-y:auto}.obs-focus-dims{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.obs-focus-dim{font-size:var(--text-2xs);background:var(--overlay-hover);color:var(--text-2);cursor:default;border:none;border-radius:20px;align-items:center;gap:5px;padding:4px 10px 4px 8px;font-weight:500;display:inline-flex}.obs-focus-dim .dim-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.obs-focus-dim-remove{cursor:pointer;color:var(--text-3);font-size:var(--text-2xs);background:0 0;border:none;padding:0 0 0 4px;line-height:1;transition:color .12s}.obs-focus-dim-remove:hover{color:var(--text)}.obs-focus-add-tag{font-size:var(--text-2xs);color:var(--text-3);border:1px dashed var(--border);cursor:pointer;font-weight:500;font-family:var(--font-base);background:0 0;border-radius:20px;align-items:center;gap:3px;padding:4px 10px;transition:background .12s,color .12s;display:inline-flex}.obs-focus-add-tag:hover{background:var(--overlay-hover);color:var(--text-2)}.obs-focus-tag-popover-wrap{display:inline-flex;position:relative}.obs-focus-tag-popover-wrap .obs-popover{margin-top:0;margin-bottom:4px;top:auto;bottom:100%}#root{width:100%}body:has(#app-dock){display:block}#app-dock{z-index:100;height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--divider-subtle);align-items:center;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.tb-group{align-items:center;gap:2px;display:flex}.tb-left{flex-shrink:0}.tb-center{position:absolute;left:50%;transform:translate(-50%)}.tb-right{gap:6px;margin-left:auto}.tb-badge{font-size:var(--text-sm);color:var(--text-2);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.tb-seg{background:var(--divider-subtle);border-radius:var(--radius-sm);align-items:center;gap:2px;padding:3px;display:inline-flex}.tb-seg-link{font-size:var(--text-base);color:var(--text-3);border-radius:6px;padding:6px 16px;font-weight:500;line-height:1;text-decoration:none}.tb-seg-link.tb-seg-active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #10182814,0 0 0 1px #1018280a}.tb-sync{align-items:center;display:inline-flex}.tb-sync-dot{background:#2e7d32;border-radius:999px;width:8px;height:8px}.tb-sync-dot.syncing{background:#007aff}.tb-sync-dot.error{background:#ff3b30}.tb-course-select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 10px}.tb-user-chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:10px;padding:6px 10px;display:flex}.tb-user-menu{margin-left:4px;position:relative}.tb-user-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--font-base);font-size:var(--text-sm);color:var(--text-2);white-space:nowrap;border-radius:8px;align-items:center;gap:5px;max-width:180px;padding:4px 10px;transition:all .15s;display:flex}.tb-user-btn:hover{border-color:var(--text-3);color:var(--text)}.tb-user-name{text-overflow:ellipsis;font-size:var(--text-sm);color:var(--text-2);overflow:hidden}.tb-user-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:1000;border-radius:8px;min-width:120px;padding:4px;display:none;position:absolute;top:calc(100% + 4px);right:0}.tb-user-menu.open .tb-user-dropdown{display:block}.tb-user-signout{text-align:left;width:100%;font-family:var(--font-base);font-size:var(--text-sm);color:var(--priority);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 12px;font-weight:500;transition:background .12s;display:block}.tb-user-signout:hover{background:var(--priority-light)}.tb-btn{border-radius:var(--radius-sm);cursor:pointer;width:34px;height:30px;color:var(--text-2);transition:background var(--duration-micro);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tb-btn-legacy-sidebar{border-radius:10px;width:38px;height:34px}.tb-btn:hover{background:var(--divider-subtle)}.tb-btn:active,.tb-btn[aria-pressed=true]{background:var(--overlay-pressed)}.tb-btn svg{pointer-events:none}.page-layout{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;padding-top:var(--dock-h);display:grid}.page-layout.dashboard-layout,.page-layout.route-owned-layout{grid-template-columns:minmax(0,1fr)}.legacy-student-sidebar-slot{height:calc(100vh - var(--dock-h));z-index:2;background:var(--surface);min-height:0;position:relative;overflow:hidden}.page-layout.sidebar-hidden .legacy-student-sidebar-slot{display:none}#gb-sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--divider-subtle);flex-direction:column;flex-shrink:0;height:100%;min-height:0;display:flex;overflow:hidden}#gb-sidebar-top{border-bottom:1px solid var(--divider-subtle);flex-shrink:0;padding:16px 16px 12px}#gb-course-select{width:100%;font-family:var(--font-base);font-size:var(--text-base);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25L6 6.25L11 1.25' fill='none' stroke='%23222222' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;margin-bottom:8px;padding:6px 10px}#gb-course-select:hover{border-color:var(--text-3)}#gb-roster-search{width:100%;font-family:var(--font-base);font-size:var(--text-base);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;padding:6px 10px}#gb-roster-search:focus{border-color:var(--active);box-shadow:0 0 0 3px #007aff1a}#gb-roster-search::placeholder{color:var(--text-3)}#gb-roster-list{overscroll-behavior:contain;flex:1;min-height:0;padding:8px;overflow-y:auto}.student-row{cursor:pointer;border-radius:var(--radius-sm);width:100%;transition:background var(--duration-micro);color:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:8px 12px;text-decoration:none;display:flex}.student-row:hover{background:var(--overlay-hover)}.student-row.selected{background:var(--active-light)}.student-row.selected .student-row-name{color:var(--active);font-weight:600}.student-avatar{color:#fff;width:28px;height:28px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-2xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.student-info{flex:1;min-width:0}.student-row-name{font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.student-row-prof{min-width:0;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);border-radius:var(--radius-xs);flex-shrink:0;padding:2px 8px;font-weight:700}#gb-sidebar-foot{border-top:1px solid var(--divider-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}#gb-sidebar-foot button{font-family:var(--font-base);font-size:var(--text-xs);color:var(--text-2);cursor:pointer;transition:color var(--duration-micro);background:0 0;border:none;align-items:center;gap:5px;display:flex}#gb-sidebar-foot button:hover{color:var(--active)}#gb-sidebar-foot .sb-count{font-size:var(--text-xs);color:var(--text-3)}.shell-sidebar{border-right:1px solid var(--divider-subtle);background:#ffffffbf;padding:24px 18px}.shell-sidebar-group+.shell-sidebar-group{margin-top:24px}.shell-sidebar-title{font-size:var(--text-sm);color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-weight:700}.shell-side-link{color:var(--text);border-radius:10px;padding:9px 10px;text-decoration:none;display:block}.shell-side-link.active{color:var(--active);background:#007aff14;font-weight:600}.shell-sidebar-copy,.page-toolbar-copy{font-size:var(--text-sm);color:var(--text-2)}.page-toolbar{border-bottom:1px solid var(--divider-subtle);background:linear-gradient(#f6f6f6 0%,#ececec 100%);justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 28px 16px;display:flex}.page-eyebrow{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.page-title{font-size:var(--text-xl);margin:2px 0 0}.shell-main{padding:24px 28px 32px}.page-layout:not(.dashboard-layout) .u-flex-col-fill{min-height:0;height:calc(100vh - var(--dock-h));max-height:calc(100vh - var(--dock-h))}.page-layout:not(.dashboard-layout) .shell-main{flex:1;min-height:0}.page-layout:not(.dashboard-layout):not(.route-owned-layout) .shell-main{overflow-y:auto}.shell-main.dashboard-main{padding:0}.page-layout.route-owned-layout .shell-main{flex:1;min-height:0;padding:0;overflow:hidden}.page-layout.route-owned-layout .u-flex-col-fill{height:calc(100vh - var(--dock-h));max-height:calc(100vh - var(--dock-h))}.placeholder-page{gap:20px;display:grid}.placeholder-hero{background:var(--surface);border:1px solid var(--divider-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);justify-content:space-between;gap:20px;padding:22px 24px;display:flex}.placeholder-hero h2{margin:0 0 6px;font-size:1.4rem}.placeholder-hero p{color:var(--text-2);max-width:55ch;margin:0}.placeholder-kicker,.placeholder-status-label{font-size:var(--text-sm);color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.placeholder-status code{background:#f3f4f6;border-radius:10px;padding:8px 10px;display:inline-block}.placeholder-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.placeholder-card{background:var(--surface);border:1px solid var(--divider-subtle);border-radius:var(--radius);padding:18px}.placeholder-card h3{font-size:var(--text-lg);margin:0 0 10px}.placeholder-card p,.placeholder-card pre{color:var(--text-2);margin:0}.placeholder-card pre{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm)}@media (width<=768px){:root{--dock-h:48px;--toolbar-h:48px}#app-dock{padding:0 4px}}@media (width<=900px){.page-layout{grid-template-columns:1fr}.shell-sidebar,.tb-center{display:none}.page-toolbar,.placeholder-hero,.placeholder-grid{grid-template-columns:1fr;display:grid}}.mobile-boot-loader{text-align:center;background:radial-gradient(circle at 0 0,#7b6fff1f,#0000 32%),radial-gradient(circle at 100% 0,#22c55e1f,#0000 28%),linear-gradient(#f8fafc 0%,#eef2ff 100%);place-content:center;gap:.25rem;min-height:100dvh;display:grid}.mobile-boot-brand{color:#111827;letter-spacing:-.03em;font-size:2rem;font-weight:800}.mobile-boot-kicker{letter-spacing:.1em;text-transform:uppercase;color:#6366f1;font-size:.75rem;font-weight:700}.mobile-shell{background:var(--bg);color:#111827;flex-direction:column;min-height:100dvh;display:flex}.mobile-shell-header,.mobile-shell-toolbar,.mobile-shell-main,.mobile-tab-bar{width:min(100%,760px);margin:0 auto}.mobile-shell-header{padding:calc(1rem + env(safe-area-inset-top)) 1rem .75rem;justify-content:space-between;gap:1rem;display:flex}.mobile-shell-brand,.mobile-shell-meta{flex-direction:column;gap:.2rem;display:flex}.mobile-shell-kicker,.mobile-page-kicker{letter-spacing:.08em;text-transform:uppercase;color:#4f46e5;font-size:.74rem;font-weight:700}.mobile-shell-title{font-size:1.6rem;font-weight:800}.mobile-shell-user{text-align:right;font-size:.95rem;font-weight:600}.mobile-shell-status{color:#475569;justify-content:flex-end;align-items:center;gap:.45rem;font-size:.82rem;display:inline-flex}.mobile-shell-status-dot{background:#22c55e;border-radius:999px;width:.55rem;height:.55rem}.mobile-shell-status-dot.is-syncing{background:#f59e0b}.mobile-shell-status-dot.is-error{background:#ef4444}.mobile-shell-toolbar{align-items:flex-end;gap:.75rem;padding:0 1rem .75rem;display:flex}.mobile-course-field,.mobile-select-field,.mobile-sheet-field{color:#475569;flex-direction:column;gap:.4rem;font-size:.8rem;font-weight:700;display:flex}.mobile-course-field{flex:1}.mobile-course-field select,.mobile-select-field select,.mobile-search-field input,.mobile-sheet-field select,.mobile-sheet-field textarea{width:100%;font:inherit;color:#111827;background:#ffffffe0;border:1px solid #4f46e529;border-radius:16px;padding:.8rem .95rem;box-shadow:0 12px 40px #0f172a0f}.mobile-search-field{flex:1}.mobile-sheet-field textarea{resize:vertical;min-height:7rem}.mobile-picker-trigger,.mobile-picker-option{color:#111827;width:100%;font:inherit;background:#ffffffe0;border:1px solid #4f46e529;box-shadow:0 12px 40px #0f172a0f}.mobile-picker-trigger{text-align:left;border-radius:16px;min-height:3.25rem;padding:.75rem .95rem}.mobile-picker-placeholder{color:#64748b}.mobile-picker-chip-wrap{flex-wrap:wrap;gap:.45rem;display:flex}.mobile-picker-chip{color:#3730a3;background:#4f46e51f;border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.86rem;font-weight:700;display:inline-flex}.mobile-picker-panel{flex-direction:column;gap:.65rem;display:flex}.mobile-picker-search{margin-top:.65rem}.mobile-picker-options{flex-direction:column;gap:.5rem;max-height:16rem;display:flex;overflow:auto}.mobile-picker-option{cursor:pointer;border-radius:18px;align-items:center;gap:.75rem;padding:.8rem .95rem;display:flex}.mobile-picker-option.is-selected{background:#eef2fff5;border-color:#4f46e547}.mobile-picker-check{text-align:center;color:#4f46e5;flex-shrink:0;width:1rem;font-weight:800}.mobile-signout-btn,.mobile-primary-btn,.mobile-toggle-btn,.mobile-filter-pill,.mobile-chip,.mobile-icon-btn,.mobile-score-btn,.mobile-swipe-nav,.mobile-sheet-close,.mobile-thumb,.mobile-quick-student{font:inherit;cursor:pointer;border:0}.mobile-signout-btn,.mobile-primary-btn,.mobile-action-link,.mobile-action-link.secondary{border-radius:999px;justify-content:center;align-items:center;padding:.82rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.mobile-signout-btn,.mobile-action-link.secondary{color:#334155;background:#ffffffe6;box-shadow:0 10px 30px #0f172a14}.mobile-primary-btn,.mobile-action-link{color:#fff;background:linear-gradient(135deg,#4f46e5,#2563eb);box-shadow:0 16px 36px #4f46e53d}.mobile-primary-btn.compact{padding-inline:1rem}.mobile-shell-main{padding:env(safe-area-inset-top,0px) 1rem calc(49px + env(safe-area-inset-bottom) + .75rem);flex:1;overflow-x:hidden}.mobile-route-container.is-push{animation:.35s cubic-bezier(.2,.9,.3,1) both mobile-route-push}.mobile-route-container.is-pop{animation:.35s cubic-bezier(.2,.9,.3,1) both mobile-route-pop}@keyframes mobile-route-push{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes mobile-route-pop{0%{transform:translate(-30%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.mobile-route-container.is-push,.mobile-route-container.is-pop{animation:none}}.mobile-page{flex-direction:column;gap:1rem;display:flex}.mobile-page-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding-top:.5rem;display:flex}.mobile-page-header h1{margin:.15rem 0 0;font-size:clamp(1.9rem,6vw,2.4rem);line-height:1;transition:font-size .25s}.mobile-page.is-scrolled .mobile-page-header h1{font-size:1.1rem}.mobile-page.is-scrolled .mobile-page-kicker{display:none}.mobile-header-copy{color:#475569;margin:.45rem 0 0}.mobile-toggle-group,.mobile-filter-strip,.mobile-chip-row,.mobile-toolbar-group,.mobile-thumb-strip{flex-wrap:wrap;gap:.65rem;display:flex}.mobile-toggle-group,.mobile-toolbar-group,.mobile-filter-strip,.mobile-quick-bar,.mobile-list,.mobile-observation-feed,.mobile-sheet,.mobile-toast-bar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;border:1px solid #94a3b824;box-shadow:0 24px 48px #0f172a14}.mobile-toggle-group,.mobile-toolbar-group,.mobile-filter-strip,.mobile-quick-bar,.mobile-thumb-strip,.mobile-toast-bar{border-radius:24px;padding:.8rem}.mobile-toggle-btn,.mobile-filter-pill,.mobile-chip,.mobile-score-btn,.mobile-swipe-nav,.mobile-sheet-close{color:#334155;background:#e2e8f0b3;border-radius:999px;padding:.72rem .95rem;transition:background-color .14s,color .14s,transform .14s}.mobile-toggle-btn.is-active,.mobile-filter-pill.is-active,.mobile-chip.is-active,.mobile-score-btn.is-active{color:#fff;background:linear-gradient(135deg,#4f46e5,#2563eb)}.mobile-chip.static{cursor:default}.mobile-list{border-radius:28px;overflow:hidden}.mobile-list-row{color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.05rem;text-decoration:none;display:flex}.mobile-list-row+.mobile-list-row{border-top:1px solid #94a3b824}.mobile-list-row-main,.mobile-grade-card-header,.mobile-observation-card-main,.mobile-observation-card-header,.mobile-sheet-header,.mobile-student-surface-header{align-items:flex-start;gap:.85rem;display:flex}.mobile-list-row h2,.mobile-grade-card h2,.mobile-observation-group h2,.mobile-student-surface h2{margin:0;font-size:1rem}.mobile-list-row p,.mobile-grade-card p,.mobile-student-surface p{color:#64748b;margin:.2rem 0 0}.mobile-list-row-side{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.mobile-score-badge{text-align:center;color:#3730a3;background:#4f46e51f;border-radius:999px;min-width:3rem;padding:.45rem .7rem;font-weight:800}.mobile-avatar-wrap{flex-shrink:0;position:relative}.m-missing-dot{border:2px solid var(--bg,#f8fafc);background:#ef4444;border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.mobile-mini-link,.mobile-inline-link{color:#2563eb;background:0 0;padding:0;font-weight:600;text-decoration:none}.mobile-swipe-deck{perspective:1200px;margin:8px 0 32px;position:relative}.mobile-swipe-deck-stack{touch-action:pan-y;height:calc(100dvh - 282px);min-height:360px;max-height:680px;position:relative}.mobile-swipe-card{background:var(--surface);will-change:transform;border-radius:20px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;inset:0 8px;overflow:hidden;box-shadow:0 4px 24px #0000001f,0 1px 4px #0000000f}.mobile-swipe-card-depth-0{z-index:3}.mobile-swipe-card.is-dragging{transition:none}.mobile-swipe-card.is-spring-back{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.mobile-swipe-card.is-exit-left,.mobile-swipe-card.is-exit-right{opacity:0;transition:transform .3s ease-out,opacity .3s ease-out}.mobile-swipe-controls{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.mobile-swipe-counter{text-align:center;color:var(--text-3);padding:8px 0;font-size:13px;font-weight:500;position:absolute;bottom:-28px;left:0;right:0}@media (prefers-reduced-motion:reduce){.mobile-swipe-card,.mobile-swipe-card.is-dragging,.mobile-swipe-card.is-spring-back,.mobile-swipe-card.is-exit-left,.mobile-swipe-card.is-exit-right{transition:none}}.mobile-student-surface,.mobile-grade-card{box-sizing:border-box;height:100%;box-shadow:none;background:0 0;border-radius:0;flex-direction:column;padding:20px;display:flex;position:relative;overflow:hidden}.mobile-scard-actions{flex-shrink:0;gap:10px;margin-top:14px;display:flex}.mobile-scard-btn{cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;padding:10px 0;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.mobile-scard-btn:active{opacity:.7}.mobile-scard-btn-observe{color:var(--active,#007aff);background:#007aff1f}.mobile-scard-btn-view{background:var(--bg-secondary,#0000000d);color:var(--text)}.mobile-scard-customize{color:var(--text-3);cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:1;opacity:.5;background:0 0;border:none;border-radius:50%;padding:10px;line-height:0;transition:opacity .15s,background .15s;position:absolute;top:8px;right:8px}.mobile-scard-customize:hover,.mobile-scard-customize:active{background:var(--bg-secondary,#0000000d);opacity:1}.mobile-student-avatar{color:#fff;letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:22px;font-weight:700;display:inline-flex}.mobile-student-avatar.small{border-radius:50%;width:32px;height:32px;font-size:12px}.mobile-student-name-row{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.mobile-student-name-row h2{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:18px;overflow:hidden}.mobile-pill{border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.mobile-pill.success{color:#166534;background:#22c55e24}.mobile-pill.danger{color:#991b1b;background:#ef444424}.mobile-pill.subtle{color:#3730a3;background:#6366f11a}.mobile-student-subtitle,.mobile-card-meta{color:#64748b;flex-wrap:wrap;gap:.45rem;font-size:.9rem;display:flex}.mobile-student-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.mobile-stat-card{background:#ffffffdb;border-radius:20px;flex-direction:column;gap:.35rem;padding:.85rem;display:flex}.mobile-stat-label,.mobile-student-note-label{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:.76rem;font-weight:700}.mobile-student-note{background:#ffffffd1;border-radius:22px;padding:1rem}.mobile-student-note p{color:#334155;margin:.45rem 0 0}.mobile-student-actions{flex-wrap:wrap;gap:.7rem;display:flex}.mobile-student-surface-header{align-items:center;gap:14px;margin-bottom:16px;display:flex}.mobile-student-heading{flex:1;min-width:0}.mobile-student-name-row h2{color:var(--text);margin:0;font-size:20px;font-weight:700;line-height:1.2}.mobile-student-subtitle{color:var(--text-3);margin-top:2px;font-size:13px}.mobile-scard-prof{flex-direction:column;flex-shrink:0;align-items:center;width:72px;display:flex}.mobile-scard-prof-val{font-size:36px;font-weight:800;line-height:1}.mobile-scard-prof-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);text-align:center;max-width:100%;margin-top:2px;font-size:10px;font-weight:600}.mobile-scard-widgets{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow-y:auto}.mobile-scard-widgets::-webkit-scrollbar{display:none}.mobile-scard-widgets:after{content:"";background:linear-gradient(transparent, var(--surface));pointer-events:none;flex-shrink:0;height:8px;position:sticky;bottom:0;left:0;right:0}.mobile-wdg-sections{background:0 0;border-radius:0;flex-direction:column;gap:6px;margin-bottom:4px;padding:0;display:flex}.mobile-wdg-sec-row{align-items:center;gap:8px;display:flex}.mobile-wdg-sec-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.mobile-wdg-sec-name{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.mobile-wdg-sec-bar{background:var(--bg-secondary,#0000000f);border-radius:3px;flex-shrink:0;width:60px;height:6px;overflow:hidden}.mobile-wdg-sec-fill{border-radius:3px;height:100%;transition:width .3s}.mobile-wdg-obs-snippet{color:var(--text-2);background:var(--bg,#f5f5f7);border-radius:10px;margin-bottom:auto;padding:10px 12px;font-size:13px;line-height:1.35}.mobile-wdg-obs-snippet.is-empty{color:var(--text-3);background:0 0;padding:10px 0;font-style:italic}.mobile-wdg-obs-snippet-time{color:var(--text-3);font-size:12px}.mobile-wdg-2up{gap:10px;display:flex}.mobile-wdg-tile{background:var(--bg,#f5f5f7);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px;display:flex}.mobile-wdg-alert{background:#ef444414}.mobile-wdg-alert-val{color:var(--priority,#c62828);font-size:18px;font-weight:800;line-height:1}.mobile-wdg-tile-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);font-size:11px;font-weight:600}.mobile-wdg-arc text{font-family:inherit}.mobile-wdg-growth{background:var(--bg,#f5f5f7);color:var(--text-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;font-size:13px;display:flex}.mobile-wdg-growth-label{color:var(--text);font-size:13px;font-weight:600}.mobile-wdg-growth-arrow{font-size:13px;font-weight:700}.mobile-wdg-growth-meta{color:var(--text-3);font-size:13px}.mobile-wdg-obs-summary{color:var(--text-3);padding:4px 0;font-size:13px}.mobile-wdg-dispositions{background:0 0;align-items:center;gap:12px;padding:0;display:flex}.mobile-wdg-petal{flex-shrink:0}.mobile-wdg-disp-text{color:#334155;font-size:.82rem;font-weight:500}.mobile-wdg-traits,.mobile-wdg-concerns{flex-wrap:wrap;gap:.4rem;display:flex}.mobile-wdg-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.mobile-wdg-chip-positive{color:#2e7d32;background:#2e7d321f}.mobile-wdg-chip-concern{color:#c62828;background:#c628281a}.mobile-wdg-chip-neutral{color:#3730a3;background:#4f46e51a}.mobile-wdg-chip-more{background:var(--bg-secondary,#e2e8f0);color:#64748b}.mobile-wdg-chip-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.mobile-wdg-habits{background:var(--bg,#f5f5f7);border-radius:10px;gap:1.5rem;padding:10px 14px;display:flex}.mobile-wdg-habit-col{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.mobile-wdg-pips{gap:4px;display:flex}.mobile-wdg-pip{border-radius:50%;width:10px;height:10px}.mobile-wdg-growth-areas{background:0 0;flex-direction:column;gap:6px;padding:0;display:flex}.mobile-wdg-chips{flex-wrap:wrap;gap:.4rem;display:flex}.mobile-wdg-section-label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.65rem;font-weight:700}.mobile-wdg-narrative{background:var(--bg,#f5f5f7);border-radius:10px;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.mobile-wdg-narrative-text{color:#475569;font-size:.83rem;line-height:1.45}.mobile-observation-feed,.mobile-observation-group,.mobile-observation-card,.mobile-grade-groups,.mobile-grade-group{flex-direction:column;gap:.85rem;display:flex}.mobile-observation-feed{border-radius:28px;padding:1rem}.mobile-observation-group h2{letter-spacing:.05em;text-transform:uppercase;color:#64748b;font-size:.9rem}.mobile-observation-card{background:#ffffffe0;border-radius:24px;padding:1rem}@keyframes m-post-new-flash{0%{background:#4f46e526}to{background:#ffffffe0}}.mobile-observation-card.m-post-new{animation:.8s ease-out forwards m-post-new-flash}.mobile-observation-card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.mobile-observation-text{color:#1e293b;margin:0;line-height:1.55}.mobile-icon-btn{color:#991b1b;background:#ef444414;border-radius:999px;padding:.55rem .8rem}.mobile-icon-btn.mobile-icon-btn-edit{color:#3730a3;background:#4f46e514}.mobile-sheet-locked-value{color:#475569;background:#94a3b81a;border-radius:16px;padding:.8rem .95rem;font-weight:600}.mobile-quick-sheet-header{align-items:center;gap:.65rem;padding:.3rem 0;display:flex}.mobile-quick-sheet-name{font-size:1.05rem;font-weight:700}.mobile-quick-template{width:100%;font:inherit;color:#1e293b;text-align:left;cursor:pointer;background:#ffffffd1;border:0;border-radius:16px;align-items:center;gap:.65rem;padding:.75rem .85rem;font-size:.92rem;display:flex}.mobile-quick-template:active{background:#4f46e514}.mobile-status-row{gap:.5rem;display:flex}.mobile-status-pill{font:inherit;letter-spacing:.04em;color:#64748b;cursor:pointer;background:#ffffffb3;border:1.5px solid #94a3b84d;border-radius:999px;padding:.4rem .85rem;font-size:.78rem;font-weight:700;transition:background-color .12s,border-color .12s,color .12s}.mobile-status-pill.is-active.mobile-status-ns{color:#991b1b;background:#ef44441f;border-color:#ef444466}.mobile-status-pill.is-active.mobile-status-exc{color:#3730a3;background:#4f46e51f;border-color:#4f46e566}.mobile-status-pill.is-active.mobile-status-late{color:#92400e;background:#f59e0b1f;border-color:#f59e0b66}.mobile-offline-banner{color:#92400e;text-align:center;background:#fef3c7;border-bottom:1px solid #fbbf24;padding:.5rem 1rem;font-size:.82rem;font-weight:600}.mobile-pull-indicator{color:#4f46e5;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.82rem;font-weight:600;display:flex}.mobile-pull-spinner{border:2px solid #4f46e533;border-top-color:#4f46e5;border-radius:999px;width:1rem;height:1rem;animation:.6s linear infinite mobile-spin}@keyframes mobile-spin{to{transform:rotate(360deg)}}.mobile-quick-compose-btn{width:100%;font:inherit;color:#4f46e5;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:16px;padding:.75rem .85rem;font-size:.92rem;font-weight:600}.mobile-quick-bar{overflow-x:auto}.mobile-quick-student{white-space:nowrap;background:#ffffffb3;border-radius:999px;align-items:center;gap:.6rem;padding:.45rem .65rem;display:inline-flex}.mobile-grade-group{background:#ffffffdb;border-radius:22px;padding:.95rem}.mobile-grade-group-header{align-items:center;gap:.5rem;font-weight:700;display:flex}.mobile-tag-dot{border-radius:999px;width:.7rem;height:.7rem}.mobile-score-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;display:grid}.mobile-points-row{justify-content:center;align-items:center;gap:.75rem;display:flex}.mobile-points-btn{color:#4f46e5;cursor:pointer;background:#e0e7ff;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.25rem;font-weight:700;transition:background .15s;display:flex}.mobile-points-btn:active{background:#c7d2fe}.mobile-points-display{text-align:center;min-width:5rem}.mobile-points-current{color:#111827;font-size:1.75rem;font-weight:700}.mobile-points-max{color:#6b7280;font-size:.95rem}.mobile-thumb-strip{overflow-x:auto}.mobile-thumb{background:#ffffffb8;border-radius:18px;padding:.28rem}.mobile-thumb.is-current{box-shadow:inset 0 0 0 2px #4f46e5}.mobile-thumb.is-graded{background:#22c55e2e}.mobile-assessment-progress{flex-direction:column;align-items:flex-end;gap:.4rem;min-width:5.4rem;display:flex}.mobile-progress-bar{background:#94a3b833;border-radius:999px;width:100%;height:.48rem;overflow:hidden}.mobile-progress-bar-fill{border-radius:inherit;background:linear-gradient(135deg,#22c55e,#0ea5e9);height:100%}.mobile-fab{right:max(1rem,50vw - min(100vw,760px)/2 + 1rem);bottom:calc(6.75rem + env(safe-area-inset-bottom));color:#fff;background:linear-gradient(135deg,#4f46e5,#2563eb);border:0;border-radius:999px;width:3.8rem;height:3.8rem;font-size:2rem;line-height:1;position:fixed;box-shadow:0 18px 36px #4f46e547}.mobile-sheet-backdrop{z-index:220;background:#0f172a57;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-sheet{width:min(100%,760px);padding:.8rem 1rem calc(1rem + env(safe-area-inset-bottom));border-top-left-radius:28px;border-top-right-radius:28px;flex-direction:column;gap:.9rem;margin:0 auto;display:flex}.mobile-sheet-handle{background:#94a3b899;border-radius:999px;width:4rem;height:.32rem;margin:0 auto .2rem}.mobile-sheet-section{color:#475569;flex-direction:column;gap:.55rem;font-size:.8rem;font-weight:700;display:flex}.mobile-toast-bar{bottom:calc(6rem + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky}.mobile-toast-bar button{color:#2563eb;cursor:pointer;background:0 0;border:0;font-weight:700}.mobile-shell-toast{left:50%;bottom:calc(6.25rem + env(safe-area-inset-bottom));z-index:30;width:min(100% - 2rem,28rem);position:fixed;transform:translate(-50%)}.mobile-shell-toast.is-success{border-color:#22c55e42;box-shadow:0 24px 48px #22c55e1f}.mobile-shell-toast.is-error{border-color:#ef44443d;box-shadow:0 24px 48px #ef44441f}.mobile-shell-toast.is-timeout{border-color:#f59e0b3d;box-shadow:0 24px 48px #f59e0b1f}.mobile-settings-sheet{gap:1rem}.mobile-settings-user{text-align:center;padding:.25rem 0}.mobile-settings-name{color:#0f172a;font-size:1rem;font-weight:700}.mobile-settings-email,.mobile-settings-sync,.mobile-settings-version{color:#64748b;font-size:.86rem}.mobile-settings-email{margin-top:.15rem}.mobile-settings-sync,.mobile-settings-version{text-align:center}.mobile-settings-btn{width:100%}.mobile-settings-signout{color:#dc2626;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}.mobile-empty-state{color:#475569;text-align:center;background:#ffffffb8;border-radius:24px;padding:1.4rem}.mobile-tab-bar{height:calc(49px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);border-top:.5px solid var(--divider-medium);z-index:var(--z-fab);flex-shrink:0;justify-content:space-around;align-items:center;display:flex;position:sticky;bottom:0}.mobile-tab-link{color:var(--text-3);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:4px 0 2px;text-decoration:none;transition:color .15s;display:flex}.mobile-tab-link.is-active{color:var(--active)}.mobile-tab-icon svg{stroke:currentColor;stroke-width:1.8px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:25px;height:25px}.mobile-tab-link.is-active .mobile-tab-icon svg{stroke:var(--active);stroke-width:2px}.mobile-tab-label{letter-spacing:.01em;font-size:11px;font-weight:500}.mobile-install-banner{color:#fff;background:linear-gradient(135deg,#4f46e5,#2563eb);border-radius:16px;justify-content:space-between;align-items:center;gap:.75rem;margin:0 .75rem;padding:.75rem 1rem;font-size:.85rem;line-height:1.35;display:flex}.mobile-install-banner-actions{flex-shrink:0;gap:.5rem;display:flex}.mobile-install-btn{color:#4f46e5;cursor:pointer;background:#fff;border:none;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:600}.mobile-install-dismiss{color:#fffc;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:999px;padding:.4rem .6rem;font-size:.82rem}.mobile-detail-page{gap:.85rem}.mobile-detail-nav{padding:.4rem 0 0}.mobile-detail-hero{background:#ffffffdb;border-radius:24px;align-items:center;gap:.85rem;padding:1rem;display:flex;box-shadow:0 12px 32px #0f172a0f}.mobile-detail-hero-info{flex:1;min-width:0}.mobile-detail-hero-info h1{margin:0;font-size:1.35rem;line-height:1.2}.mobile-detail-pronouns{color:#64748b;margin:.15rem 0 0;font-size:.88rem}.mobile-detail-hero-prof{flex-direction:column;flex-shrink:0;align-items:center;gap:.3rem;display:flex}.mobile-detail-prof-badge{color:#fff;border-radius:16px;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-size:1.15rem;font-weight:800;display:inline-flex}.mobile-detail-prof-label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;text-align:center;font-size:.7rem;font-weight:700}.mobile-detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-detail-block{flex-direction:column;gap:.55rem;display:flex}.mobile-detail-block-title{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:0;font-size:.82rem;font-weight:700}.mobile-detail-empty{color:#94a3b8;text-align:center;margin:0;padding:1rem}.mobile-detail-focus-row{background:#ffffffd1;border-radius:16px;align-items:center;gap:.6rem;padding:.6rem .85rem;display:flex}.mobile-detail-focus-name{flex:1;font-size:.92rem}.mobile-detail-section-card{background:#ffffffd1;border-radius:20px;padding:.75rem .85rem}.mobile-detail-section-header{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.55rem;margin:0;padding:0;display:flex}.mobile-detail-section-name{flex:1;font-size:.95rem;font-weight:600}.mobile-detail-sparkline{flex-shrink:0}.mobile-detail-section-trend{font-size:.95rem;font-weight:700}.mobile-detail-section-prof{text-align:right;min-width:2rem;font-size:.95rem;font-weight:800}.mobile-detail-section-body{border-top:1px solid #94a3b824;margin-top:.65rem;padding-top:.65rem}.mobile-detail-section-empty{color:#94a3b8;margin:0;font-size:.88rem}.mobile-detail-timeline{flex-direction:column;gap:.5rem;display:flex}.mobile-detail-tl-item{align-items:center;gap:.6rem;display:flex}.mobile-detail-tl-dot{color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.72rem;font-weight:800;display:inline-flex}.mobile-detail-tl-name{font-size:.88rem;font-weight:600}.mobile-detail-tl-date{color:#64748b;font-size:.78rem}.mobile-detail-insight{color:#475569;margin:.55rem 0 0;font-size:.85rem}.mobile-detail-insight-up{color:#2e7d32}.mobile-detail-insight-down{color:#c62828}.mobile-detail-assess-row{background:#ffffffd1;border-radius:16px;padding:.65rem .85rem}.mobile-detail-assess-top{align-items:center;gap:.5rem;display:flex}.mobile-detail-type-badge{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.72rem;font-weight:800;display:inline-flex}.mobile-detail-type-summative{color:#3730a3;background:#4f46e524}.mobile-detail-type-formative{color:#166534;background:#22c55e24}.mobile-detail-assess-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.92rem;font-weight:600;overflow:hidden}.mobile-detail-assess-date{color:#64748b;flex-shrink:0;font-size:.78rem}.mobile-detail-assess-scores{border-top:1px solid #94a3b81a;flex-wrap:wrap;gap:.5rem;margin-top:.45rem;padding-top:.45rem;display:flex}.mobile-detail-score-chip{flex-direction:column;align-items:center;gap:.1rem;display:flex}.mobile-detail-score-chip-label{color:#64748b;font-size:.68rem}.mobile-detail-obs-card{background:#ffffffd1;border-radius:20px;flex-direction:column;gap:.4rem;padding:.75rem .85rem;display:flex}.mobile-detail-obs-header{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.mobile-detail-obs-context{color:#475569}.mobile-detail-obs-time{color:#94a3b8;margin-left:auto;font-size:.78rem}.mobile-detail-obs-text{color:#1e293b;margin:0;font-size:.92rem;line-height:1.5}.mobile-detail-obs-dims{flex-wrap:wrap;gap:.4rem;display:flex}.m-nav-bar{z-index:var(--z-navbar);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);padding-top:env(safe-area-inset-top,0px);border-bottom:.5px solid #0000;flex-shrink:0;transition:border-color .2s;position:sticky;top:0}.m-nav-bar.m-nav-bar-scrolled{border-bottom-color:var(--divider-medium)}.m-nav-bar-inner{align-items:center;height:44px;padding:0 16px;display:flex}.m-nav-bar-back{color:var(--active);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:4px;min-width:44px;min-height:44px;margin-left:-4px;padding:8px 8px 8px 0;font-size:17px;text-decoration:none;display:flex}.m-nav-bar-back svg{flex-shrink:0;width:13px;height:20px}.m-nav-bar-title-inline{text-align:center;color:var(--text);opacity:0;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:17px;font-weight:600;transition:opacity .2s;overflow:hidden}.m-nav-bar-scrolled .m-nav-bar-title-inline{opacity:1}.m-nav-bar-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.m-nav-bar-action{color:var(--active);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;display:flex}.m-title-large{letter-spacing:.37px;color:var(--text);margin:0;padding:0 16px 8px;font-size:34px;font-weight:700;transition:opacity .15s,transform .15s,height .15s,padding .15s}.m-title-large.m-title-hidden{opacity:0;height:0;padding-top:0;padding-bottom:0;overflow:hidden;transform:translateY(-8px)}.m-search-wrap{padding:0 16px 8px}.m-search-input{background:var(--overlay-pressed,#0000000f);width:100%;min-height:44px;color:var(--text);box-sizing:border-box;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%236E6E73' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16' y1='16' x2='22' y2='22'/%3E%3C/svg%3E");background-position:10px;background-repeat:no-repeat;border:none;border-radius:10px;outline:none;padding:0 12px 0 32px;font-family:inherit;font-size:17px}.m-search-input:focus{box-shadow:0 0 0 3px #007aff33}.m-search-input::placeholder{color:var(--text-3)}.m-list{background:var(--surface);border-radius:12px;margin:0 16px 16px;padding:0;list-style:none;overflow:hidden}.m-list-item{display:block}.m-list-inset-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.02em;padding:24px 16px 6px;font-size:13px;font-weight:400}.m-cell{cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;color:inherit;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;transition:background .15s;display:flex;position:relative}.m-cell:active{background:var(--overlay-hover)}.m-cell+.m-cell:before{content:"";background:var(--divider-subtle);height:.5px;position:absolute;top:0;left:60px;right:0}.m-cell-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:flex;position:relative}.m-cell-avatar .m-missing-dot{background:var(--priority);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.m-cell-body{flex:1;min-width:0}.m-cell-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:400;overflow:hidden}.m-cell-subtitle{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:1px;font-size:13px;display:flex}.m-cell-accessory{flex-shrink:0;align-items:center;gap:8px;display:flex}.m-cell-chevron{width:8px;height:13px;color:var(--text-3);opacity:.5}.m-prof-badge{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:flex}.m-obs-date-group{color:var(--text-3);text-transform:uppercase;letter-spacing:.02em;padding:16px 16px 6px;font-size:13px;font-weight:600}.m-obs-card{background:var(--surface);border-left:4px solid var(--text-3);border-radius:12px;margin:0 16px 8px;padding:14px 16px;position:relative;overflow:hidden}.m-obs-card[data-sentiment=strength]{border-left-color:#2e7d32}.m-obs-card[data-sentiment=growth]{border-left-color:#007aff}.m-obs-card[data-sentiment=concern]{border-left-color:#c07a00}.m-obs-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.m-obs-student-name{color:var(--text);flex:1;font-size:15px;font-weight:600}.m-obs-context{color:var(--text-3);background:var(--overlay-hover);border-radius:4px;padding:2px 6px;font-size:12px}.m-obs-time{color:var(--text-3);font-size:12px}.m-obs-text{color:var(--text);margin-bottom:8px;font-size:15px;line-height:1.4}.m-obs-edit-btn,.m-obs-delete-btn{cursor:pointer;color:var(--text-3);opacity:.6;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:16px;transition:opacity .15s;display:flex}.m-obs-edit-btn:hover,.m-obs-delete-btn:hover{opacity:1}.m-obs-edit-btn:active{color:var(--active)}.m-obs-delete-btn:active{color:var(--priority)}.m-obs-tags{flex-wrap:wrap;gap:4px;display:flex}.m-obs-tag-chip{background:var(--overlay-hover);color:var(--text-2);border-radius:10px;align-items:center;gap:3px;padding:2px 8px;font-size:12px;display:inline-flex}.m-obs-tag-dot{border-radius:50%;width:6px;height:6px}.m-filter-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:0 16px 12px;display:flex;overflow-x:auto}.m-filter-strip::-webkit-scrollbar{display:none}.m-filter-pill{border:1px solid var(--border,#0000001f);background:var(--surface);min-height:36px;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border-radius:22px;flex:none;padding:6px 14px;font-size:14px;font-weight:500;transition:all .15s}.m-filter-pill.m-filter-active,.m-filter-pill.is-active{background:var(--active);color:#fff;border-color:var(--active)}.m-view-toggle{background:#7676801f;border-radius:8px;gap:0;margin-right:8px;padding:2px;display:flex}.m-view-toggle-btn{min-height:32px;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.m-view-toggle-btn.is-active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000014,0 .5px 1px #0000000a}.mobile-shell-main .m-nav-bar{margin-inline:-1rem;margin-top:calc(-1 * env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.mobile-shell-main .m-title-large,.mobile-shell-main .m-search-wrap,.mobile-shell-main .m-filter-strip,.mobile-shell-main .m-obs-date-group{padding-inline:0}.mobile-shell-main .m-list,.mobile-shell-main .m-obs-card,.mobile-shell-main .m-section-card,.mobile-shell-main .m-focus-row{margin-inline:0}.mobile-shell-main .m-hero,.mobile-shell-main .m-stats-strip{padding-inline:0}@media (width>=768px){.mobile-shell-main{padding-inline:1.5rem}}
