.bp-page{display:grid;gap:14px;min-width:0}
.bp-stats{display:flex;align-items:center;gap:24px;min-height:30px;padding:2px 0;color:var(--muted,#687386);font-size:13px;flex-wrap:wrap}
.bp-stat{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}
.bp-stat strong{color:var(--text,#202938);font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}
.bp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bp-search{flex:1 1 280px;min-width:220px;max-width:460px}
.bp-toolbar-actions,.bp-filters,.bp-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bp-filters{padding:2px 0}
.bp-filter{display:flex;align-items:center;gap:7px;color:var(--muted,#687386);font-size:13px;white-space:nowrap}
.bp-filter .select{min-width:110px;max-width:190px}
.bp-filter select{box-sizing:border-box;min-height:40px;height:40px;padding-right:36px;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2364778b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 6 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:14px 14px}
.bp-table-wrap{max-width:100%;overflow-x:auto}
.bp-class-directory{min-width:0;max-width:100%}
.bp-class-directory .bp-table{min-width:2400px}
.bp-class-directory .bp-table td:first-child{min-width:100px}
.bp-class-directory .bp-table td:nth-child(2){min-width:180px}
.bp-table{min-width:880px;table-layout:auto}
.bp-table th,.bp-table td{white-space:nowrap;vertical-align:middle}
.bp-table td:first-child{min-width:170px;white-space:nowrap}
.bp-table td:first-child strong,.bp-table td:first-child small{display:block}
.bp-table td:first-child small{margin-top:3px;color:var(--muted,#687386);font-size:12px}
.bp-data-row{cursor:pointer}
.bp-data-row:hover{background:var(--surface-hover,#EAF2F6)}
.bp-row-toggle{border:0;background:transparent;color:var(--primary,#426C84);font:inherit;cursor:pointer;padding:5px 7px;white-space:nowrap}
.bp-row-toggle:hover{text-decoration:underline}
.bp-expanded>td{padding:12px 16px;background:var(--surface-subtle,#EAF2F6)}
.bp-row-actions{min-height:30px;margin-bottom:8px}
.bp-row-actions:empty{display:none}
.bp-related-classes{margin:8px 0 14px;padding:12px 14px;border:1px solid var(--line,#e5e9f0);border-radius:8px;background:var(--surface,#fff)}
.bp-related-classes ul{display:flex;flex-wrap:wrap;gap:8px 18px;margin:7px 0 0;padding:0;list-style:none}
.bp-related-classes-toggle{border:0;background:transparent;color:var(--primary,#426C84);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:0 2px}
.bp-related-classes-toggle:focus-visible{outline:2px solid var(--primary,#426C84);outline-offset:2px;border-radius:2px}
.bp-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;background:#EAF2F6;color:#426C84;font-size:12px;white-space:nowrap}
.bp-status.is-off{background:#f1f2f4;color:#6c7480}
.bp-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line,#e5e9f0);padding:6px 0 16px}
.bp-detail-heading h2{margin:0 0 6px;font-size:20px}
.bp-detail-heading p{margin:0;color:var(--muted,#687386)}
.bp-back{justify-self:start;border:0;background:transparent;padding:4px 0;color:var(--primary,#426C84);font:inherit;cursor:pointer}
.bp-back span{font-size:20px;vertical-align:-1px;margin-right:5px}
.bp-detail-section{padding-top:6px}
.bp-detail-section h3{margin:4px 0 10px;font-size:15px}
.bp-detail-section h3 span{margin-left:5px;color:var(--muted,#687386);font-size:12px;font-weight:400}
@media(max-width:760px){.bp-stats{gap:14px}.bp-toolbar{align-items:stretch}.bp-search{max-width:none}.bp-toolbar-actions{width:100%}.bp-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}.bp-filter .select{min-width:120px}.bp-detail-heading{flex-direction:column}}

.bp-toolbar .toolbar-left{flex:1 1 280px;min-width:180px}.bp-toolbar .bp-search{width:auto;flex:1 1 280px;min-width:min(160px,100%);max-width:460px}.bp-toolbar .toolbar-right{flex:0 0 auto}.bp-tabs .tab span{margin-left:5px;font-size:.9em}.bp-page .tabs{padding:0}.bp-row-toggle svg{width:18px;height:18px;vertical-align:middle}
.bp-student-detail .page-block{margin:0}
.bp-student-detail .bp-detail-heading{padding:0;border-bottom:0}
.bp-student-detail .bp-profile-tabs{display:flex;flex-wrap:nowrap;gap:24px;overflow-x:auto;padding:0 24px;border-bottom:1px solid var(--line,#e5e9f0)}
.bp-profile-tabs .tab{position:relative;flex:0 0 auto;padding:17px 2px;border:0;border-radius:0;background:transparent;color:#7b8ba4;white-space:nowrap}
.bp-profile-tabs .tab::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#426C84;transform:scaleX(0);transform-origin:center;transition:transform .18s ease}
.bp-profile-tabs .tab.active{color:#426C84;background:transparent}
.bp-profile-tabs .tab.active::after{transform:scaleX(1)}
.bp-profile-tabs .tab span{font-size:12px;margin-left:5px}
.bp-student-detail .bp-profile-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px 28px}
.bp-profile-fields>div{display:grid;gap:6px;min-width:0}
.bp-profile-fields span{font-size:13px;color:var(--muted,#687386)}
.bp-profile-fields strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}
.bp-student-detail .bp-detail-section+.bp-detail-section{margin-top:24px}
@media(prefers-reduced-motion:reduce){.bp-profile-tabs .tab::after{transition:none}}

@media(max-width:760px){.bp-toolbar .bp-search{max-width:none}}

/* Keep long student names and course lists inside their roster columns. */
.bp-student-roster{min-width:0;max-width:100%}
.bp-student-roster .bp-table{width:100%;min-width:760px;table-layout:fixed}
.bp-student-roster .bp-table th,.bp-student-roster .bp-table td{white-space:normal;overflow-wrap:anywhere;word-break:normal;min-width:0}
.bp-student-roster .bp-table th:nth-child(1){width:18%}
.bp-student-roster .bp-table th:nth-child(2){width:8%}
.bp-student-roster .bp-table th:nth-child(3){width:12%}
.bp-student-roster .bp-table th:nth-child(4){width:24%}
.bp-student-roster .bp-table th:nth-child(5){width:9%}
.bp-student-roster .bp-table th:nth-child(6){width:11%}
.bp-student-roster .bp-table th:nth-child(7){width:18%}
.bp-student-roster .bp-table th:last-child,.bp-student-roster .bp-data-row>td:last-child{position:sticky;right:0;z-index:1;background:var(--surface,#fff);box-shadow:-5px 0 8px -7px #64748b}
.bp-student-roster .bp-table th:last-child{z-index:2;background:var(--surface-subtle,#EAF2F6)}
.bp-student-roster .bp-data-row:hover>td:last-child{background:var(--surface-hover,#EAF2F6)}
.bp-student-roster .bp-student-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.bp-student-roster .bp-student-actions>.btn,.bp-student-roster .bp-row-toggle{flex:0 0 auto;margin:0;white-space:nowrap}

/* Override the global wide-table rule only for academic and teacher rosters. */
body .content .bp-student-roster table.table.bp-table{table-layout:fixed!important;width:100%;min-width:760px;max-width:100%}
body .content .bp-student-roster table.table.bp-table :is(th,td){white-space:normal!important;overflow-wrap:anywhere;word-break:normal;min-width:0}
body .content .bp-student-roster table.table.bp-table :is(th,td) :is(strong,small,span){white-space:normal;overflow-wrap:anywhere;word-break:normal}
