:root{--brand-red:#cb2c30;--brand-red-dark:#9f1e24;--ink:#202124;--muted:#666b73;--line:#dedfe3;--surface:#ffffff;--surface-soft:#f6f6f7;--surface-strong:#eceef1;--success:#24744f;--warning:#935d00;--danger:#a72b2b;--shadow:0 18px 45px rgba(32,33,36,0.12)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{color:var(--ink);background:var(--surface-soft);font-family:Source Sans\ 3,Source Sans Pro,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}a{color:inherit}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(500px,.85fr) minmax(520px,1fr)}.login-brand{display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:100vh;padding:58px;color:#fff;background-color:var(--brand-red);background-repeat:no-repeat;background-position:left 36px bottom 24px;background-size:330px auto}.brand-mark{width:-moz-fit-content;width:fit-content}.detail-panel h2,.login-brand h1,.login-panel h2,.section-heading h2,.student-summary h2,.topbar h1{margin:0;font-family:"Source Serif 4","Source Serif Pro",Georgia,serif;font-weight:700;letter-spacing:0}.login-brand h1{max-width:560px;font-size:clamp(40px,4.8vw,64px);line-height:1.04}.login-brand p{max-width:560px;color:rgba(255,255,255,.9);font-size:18px;line-height:1.55}.login-proof{display:inline-flex;align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;padding:12px 14px;border:1px solid rgba(255,255,255,.34);border-radius:8px;background:rgba(255,255,255,.08)}.login-proof span{font-size:14px}.login-panel{align-self:center;width:min(520px,calc(100% - 48px));margin:40px auto;padding:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.login-panel-header{display:flex;align-items:center;gap:18px;margin-bottom:24px}.login-panel-header img{width:82px;height:auto}.eyebrow{margin:0 0 6px;color:var(--brand-red);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.auth-form,.detail-panel,.metric-card,.modal,.panel,.student-summary{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.auth-form{display:grid;grid-gap:14px;gap:14px;padding:18px}.auth-form.compact{background:#fbfbfc}.form-title{display:flex;align-items:center;gap:9px;font-weight:800}label{display:grid;grid-gap:7px;gap:7px;color:#373a40;font-size:13px;font-weight:800}input,select,textarea{width:100%;min-height:42px;border:1px solid #cfd2d8;border-radius:8px;padding:10px 12px;color:var(--ink);background:#fff;outline:none}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--brand-red);box-shadow:0 0 0 3px rgba(203,44,48,.14)}.danger-button,.ghost-button,.icon-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:8px;border:1px solid transparent;padding:0 14px;font-weight:800;text-decoration:none;white-space:nowrap}.primary-button{color:#fff;background:var(--brand-red)}.primary-button:hover{background:var(--brand-red-dark)}.secondary-button{color:var(--brand-red);border-color:rgba(203,44,48,.25);background:#fff}.ghost-button{color:#fff;border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.08)}.danger-button{color:var(--danger);border-color:rgba(167,43,43,.25);background:#fff}.icon-button{width:40px;padding:0;color:var(--ink);border-color:var(--line);background:#fff}.auth-message,.helper-text{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.auth-message{margin-top:16px;color:var(--ink);font-weight:700}.dev-link{display:inline-flex;margin-top:12px;color:var(--brand-red);font-weight:800}.divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.demo-accounts{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px}.request-button{position:relative}.request-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;padding:0 7px;color:#fff;background:var(--brand-red);font-size:12px;font-weight:900}.app-shell{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:24px 18px;color:#fff;background:#202124}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.16);font-weight:900}.sidebar-brand img{width:58px;height:auto}.sidebar nav{display:grid;grid-gap:6px;gap:6px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;border:0;border-radius:8px;padding:0 12px;color:rgba(255,255,255,.82);background:transparent;text-align:left}.nav-item.active,.nav-item:hover{color:#fff;background:var(--brand-red)}.sidebar-footer{display:grid;grid-gap:8px;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}.sidebar-footer p,.sidebar-footer span{margin:0}.sidebar-footer span{color:rgba(255,255,255,.72);font-size:12px;text-transform:uppercase}.main-area{min-width:0;padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.topbar h1{font-size:34px}.button-pair,.inline-form,.partner-form,.section-heading,.toolbar,.topbar-actions{display:flex;align-items:center;gap:12px}.screen-grid{display:grid;grid-gap:18px;gap:18px}.metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.metric-card{padding:18px}.metric-card p{margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:800}.metric-card strong{font-size:31px}.metric-card.emphasized{color:#fff;border-color:var(--brand-red);background:var(--brand-red)}.metric-card.emphasized p{color:rgba(255,255,255,.86)}.detail-panel,.panel,.student-summary{padding:20px}.panel.wide{min-width:0}.section-heading{justify-content:space-between;margin-bottom:16px}.section-heading h2{font-size:22px}.student-summary{display:flex;align-items:center;justify-content:space-between;color:#fff;border-color:var(--brand-red);background-color:var(--brand-red);background-repeat:no-repeat;background-position:right 24px center;background-size:380px auto}.student-summary .eyebrow,.student-summary p{color:rgba(255,255,255,.86)}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}.data-table{width:100%;min-width:780px;border-collapse:collapse;background:#fff}.data-table td,.data-table th{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:14px}.data-table.compact td,.data-table.compact th{padding:11px 12px}.data-table th{color:var(--muted);background:#fafafa;font-size:12px;font-weight:900;text-transform:uppercase}.data-table tr:last-child td{border-bottom:0}.status-chip{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap}.status-chip.approved{color:var(--success);background:#e9f5ee}.status-chip.pending{color:var(--warning);background:#fff5dc}.status-chip.danger{color:var(--danger);background:#fdecec}.status-chip.neutral{color:#49515d;background:#eef0f3}.audit-list{display:grid;grid-gap:12px;gap:12px}.audit-item{display:grid;grid-template-columns:10px 1fr;grid-gap:10px;gap:10px}.audit-item span{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--brand-red)}.audit-item p{margin:0;color:var(--muted);line-height:1.45}.approval-layout,.gradebook-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:18px;gap:18px;align-items:start}.approval-list{display:grid;grid-gap:8px;gap:8px}.approval-row{display:grid;grid-template-columns:minmax(170px,1fr) 96px 66px minmax(150px,max-content);align-items:center;grid-gap:12px;gap:12px;width:100%;min-height:68px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;text-align:left}.approval-row.selected{border-color:var(--brand-red);box-shadow:0 0 0 3px rgba(203,44,48,.1)}.approval-row span{display:grid;grid-gap:4px;gap:4px}.approval-row small{color:var(--muted)}.detail-panel{display:grid;grid-gap:14px;gap:14px;position:-webkit-sticky;position:sticky;top:24px}.detail-list{display:grid;grid-gap:10px;gap:10px;margin:0}.detail-list div,.setup-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.detail-list dt,.setup-row span{color:var(--muted);font-size:13px;font-weight:800}.detail-list dd{margin:0;font-weight:800}.note-box{padding:12px;border-radius:8px;color:#4f535b;background:var(--surface-soft);line-height:1.45}.search-box,.sort-label{display:inline-flex;align-items:center;gap:8px;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--muted);background:#fff;font-size:13px;font-weight:800}.toolbar{flex-wrap:wrap;margin-bottom:18px}.toolbar select{width:260px}.segmented-control{display:inline-flex;min-height:38px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fff}.segmented-control button{border:0;border-radius:6px;padding:0 12px;color:var(--muted);background:transparent;font-weight:900}.segmented-control button.active{color:#fff;background:var(--brand-red)}.tab{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:var(--muted);background:#fff;font-weight:900}.tab.active{color:#fff;border-color:var(--brand-red);background:var(--brand-red)}.grade-group{margin-top:18px}.view-note{margin-bottom:10px;color:var(--muted);font-size:13px;font-weight:800}.grade-group h3{margin:0 0 10px;font-size:17px}.inline-form{align-items:stretch;margin-bottom:18px}.inline-form input{flex:1 1}.partner-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:stretch;margin-bottom:18px}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.mini-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.mini-card h3,.mini-card p{margin:0}.mini-card h3{margin-bottom:8px}.mini-card p{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(32,33,36,.54)}.modal{width:min(560px,100%)}.modal,.request-modal{padding:22px;box-shadow:var(--shadow)}.request-modal{width:min(820px,100%);max-height:min(760px,calc(100vh - 40px));display:grid;grid-gap:16px;gap:16px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.request-quick-form{grid-template-columns:minmax(220px,1fr) 160px 128px auto;align-items:stretch}.request-list,.request-quick-form{display:grid;grid-gap:10px;gap:10px}.request-list{min-height:120px;overflow-y:auto;padding-right:4px}.request-item{display:grid;grid-template-columns:42px minmax(0,1fr) 150px;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.initials-avatar{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;color:#fff;background:var(--brand-red);font-size:13px;font-weight:900}.request-item h3,.request-item p{margin:0}.request-item h3{font-size:15px}.empty-state,.request-item p,.request-item small{color:var(--muted);font-size:13px;line-height:1.4}.request-item small{display:block;margin-top:5px}.empty-state{border:1px dashed var(--line);border-radius:8px;padding:18px;text-align:center}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:14px}.modal .helper-text{margin:10px 0 16px}@media (max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-layout,.gradebook-layout{grid-template-columns:1fr}.detail-panel{position:static}.cards-grid,.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1300px){.gradebook-layout{grid-template-columns:1fr}.gradebook-layout .detail-panel{position:static}}@media (max-width:760px){.login-page{grid-template-columns:1fr}.login-brand{min-height:auto;padding:34px 24px}.login-brand h1{font-size:42px}.login-panel{width:calc(100% - 28px);padding:20px}.main-area{padding:18px}.section-heading,.student-summary,.topbar{align-items:flex-start;flex-direction:column}.button-pair,.topbar-actions{width:100%}.button-pair button,.topbar-actions .primary-button{flex:1 1}.approval-row,.cards-grid,.field-grid,.metric-row,.partner-form,.sidebar nav{grid-template-columns:1fr}.inline-form{flex-direction:column}.request-item,.request-quick-form{grid-template-columns:1fr}}