/* Students domain. This file owns the complete Students visual system. */

/* Compact page heading and internal navigation */
.student-page-head{display:grid;gap:.42rem;margin:0 0 .48rem;padding:.54rem .65rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(120deg,var(--surface-1),var(--brand-softer) 58%,var(--secondary-soft));box-shadow:var(--shadow-sm),var(--shadow-inset)}
.student-page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.student-page-title h1{margin:0;font-size:1.3rem;line-height:1;letter-spacing:-.045em}.student-page-title p:not(.eyebrow){max-width:54rem;margin:.16rem 0 0;color:var(--muted);font-size:.67rem;line-height:1.4}
.student-live{display:inline-flex;align-items:center;gap:.36rem;white-space:nowrap;padding:.35rem .52rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-1);color:var(--muted);font-size:.58rem;font-weight:900}.student-live i{width:.45rem;height:.45rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0 .18rem var(--gold-soft)}.student-live.remote{color:var(--green)}.student-live.remote i{background:var(--green);box-shadow:0 0 0 .18rem var(--green-soft)}
.student-page-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.student-page-actions .btn{min-height:2rem}
.student-tabs{display:flex;align-items:stretch;gap:.42rem;overflow:auto;margin-bottom:.58rem;padding:.3rem;border:1px solid var(--line);border-radius:.92rem;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));scrollbar-width:thin;box-shadow:var(--shadow-inset)}
.student-tabs button{display:grid;grid-template-columns:1.9rem minmax(max-content,1fr) auto;align-items:center;gap:.48rem;min-height:3.15rem;white-space:nowrap;border:1px solid transparent;padding:.46rem .68rem;border-radius:.7rem;background:var(--control-ash);color:var(--muted);text-align:left;font-weight:900}
.student-tabs button>i{width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:.55rem;background:var(--surface-1);color:var(--primary);font-style:normal;font-size:.65rem;box-shadow:var(--shadow-xs)}.student-tabs button>span{display:grid;gap:.08rem}.student-tabs button strong{font-size:.64rem;color:inherit}.student-tabs button small{font-size:.49rem;color:var(--muted);font-weight:700}.student-tabs button:hover{color:var(--text);border-color:var(--selection-line);background:var(--control-ash-hover)}.student-tabs button.active{color:var(--selection-on);border-color:transparent;background:linear-gradient(135deg,var(--selection),var(--selection-strong));box-shadow:0 .32rem .9rem rgba(var(--selection-rgb),.22)}.student-tabs button.active>i{background:rgba(255,255,255,.2);color:var(--selection-on)}.student-tabs button.active small{color:color-mix(in srgb,var(--selection-on) 76%,transparent)}
.student-tabs b{display:inline-grid;place-items:center;min-width:1.28rem;height:1.28rem;padding:0 .24rem;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);color:inherit;font-size:.52rem}.student-tabs .student-refresh{grid-template-columns:1fr;margin-left:auto;min-width:3rem;color:var(--primary);background:var(--surface-1);font-size:.92rem;text-align:center}
.student-loading{min-height:12rem;display:grid;place-items:center;color:var(--muted);font-size:.72rem;font-weight:850}.student-warnings{margin:0 0 .7rem;padding:.62rem .72rem;border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);border-radius:.78rem;background:var(--gold-soft);color:var(--gold)}.student-warnings summary{font-size:.68rem;font-weight:900;cursor:pointer}.student-warnings p{margin:.35rem 0 0;font-size:.62rem}

/* Dense operational summary, not dashboard cards */
.student-summary-bar{display:flex;align-items:stretch;gap:.38rem;overflow:auto;margin:0 0 .45rem;padding:.08rem;scrollbar-width:thin}
.student-summary-item{--summary:var(--primary);display:grid;grid-template-columns:auto auto;align-items:baseline;gap:.36rem;min-width:max-content;padding:.34rem .5rem;border:1px solid color-mix(in srgb,var(--summary) 20%,var(--line));border-radius:.68rem;background:color-mix(in srgb,var(--summary) 7%,var(--surface-1));box-shadow:var(--shadow-inset)}
.student-summary-item.primary{--summary:var(--primary)}.student-summary-item.secondary{--summary:var(--secondary)}.student-summary-item.blue{--summary:var(--blue)}.student-summary-item.green{--summary:var(--green)}.student-summary-item.gold{--summary:var(--gold)}.student-summary-item.red{--summary:var(--red)}
.student-summary-item strong{color:var(--summary);font-size:.86rem;line-height:1;font-weight:950}.student-summary-item small{color:var(--muted);font-size:.54rem;font-weight:850}

/* Data console, filters and paging */
.student-console{padding:0;overflow:hidden}.student-console-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.68rem .78rem;background:linear-gradient(110deg,var(--brand-softer),var(--secondary-soft))}
.student-console-top h2{margin:0;font-size:.94rem;letter-spacing:-.025em}.student-console-top p{margin:.18rem 0 0;color:var(--muted);font-size:.59rem;line-height:1.35}
.student-quick{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.student-quick button{border:1px solid var(--line);padding:.38rem .5rem;border-radius:.56rem;background:var(--control-ash);color:var(--muted);font-size:.56rem;font-weight:900}
.student-quick button:hover{border-color:var(--selection-line);background:var(--control-ash-hover);color:var(--text)}
.student-quick button.active{color:var(--selection-on);border-color:transparent;background:var(--selection)}
.student-filters{display:flex;align-items:flex-end;gap:.38rem;flex-wrap:wrap;padding:.58rem .72rem;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.student-search{position:relative;flex:1 1 18.75rem}.student-search>span{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--muted)}.student-search .input{padding-left:2.4rem}
.compact-filter{display:grid;gap:.25rem;min-width:7.5rem}.compact-filter>span{font-size:.5rem;font-weight:950;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.compact-filter .select{padding:.62rem .68rem;border-radius:.75rem;font-size:.62rem}
.filter-direction{width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-1);color:var(--primary);font-weight:950}
.student-filter-builder{display:grid;grid-template-columns:minmax(10rem,.8fr) minmax(12rem,1fr) auto;gap:.5rem;align-items:end;padding:.58rem .72rem;background:color-mix(in srgb,var(--brand-soft) 62%,var(--surface-2));border-bottom:1px solid var(--line)}
.student-filter-chips{display:flex;gap:.32rem;flex-wrap:wrap;align-items:center;min-height:2.15rem;padding:.42rem .72rem;background:var(--surface-1);border-bottom:1px solid var(--line)}
.student-filter-chips button{border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:999px;padding:.36rem .55rem;background:var(--brand-soft);color:var(--primary);font-size:.56rem;font-weight:850}.student-filter-chips span{font-size:.58rem;color:var(--muted)}
.student-table{min-width:67.5rem}.student-table td{background:transparent}.intake-table{min-width:72rem}.admitted-row{opacity:.78;background:color-mix(in srgb,var(--green-soft) 45%,transparent)}
.student-pager{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.58rem .72rem;background:var(--surface-2);border-top:1px solid var(--line);font-size:.62rem;color:var(--muted)}.student-pager>div{display:flex;gap:.42rem}
.row-actions{display:flex;gap:.35rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.mini-btn.danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 28%,var(--line));background:var(--red-soft)}

/* Student and assignment cells */
.student-name{display:flex;align-items:center;gap:.62rem;text-align:left;border:0;background:transparent;color:var(--text);padding:0}.student-name strong{display:block;font-size:.68rem}.student-name small,.cell-sub{display:block;margin-top:.25rem;color:var(--muted);font-size:.56rem}
.student-avatar{width:2.38rem;height:2.38rem;border-radius:.82rem;display:grid;place-items:center;flex:0 0 auto;color:#fff;font-size:.68rem;font-weight:950;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 .45rem 1.05rem rgba(var(--primary-rgb),.19)}
.student-avatar.intake{background:linear-gradient(135deg,var(--blue),var(--teal))}.student-avatar.small{width:1.95rem;height:1.95rem;border-radius:.62rem;font-size:.56rem}
.course-stack{display:flex;gap:.3rem;flex-wrap:wrap;max-width:20rem}.assignment-chip{display:inline-flex;padding:.3rem .44rem;border-radius:999px;font-size:.56rem;font-weight:900}.assignment-chip.group{background:var(--blue-soft);color:var(--blue)}.assignment-chip.individual{background:var(--brand-soft);color:var(--primary)}
.attention-chip{display:inline-flex;padding:.3rem .5rem;border-radius:999px;background:var(--gold-soft);color:var(--gold);font-size:.56rem;font-weight:900}.due-text{color:var(--red)}.mini-btn.more{letter-spacing:.12em}
.issue-chip,.risk-chip{display:inline-flex;padding:.3rem .44rem;border-radius:999px;font-size:.55rem;font-weight:900}.issue-chip.unassigned{background:var(--red-soft);color:var(--red)}.issue-chip.incomplete{background:var(--gold-soft);color:var(--gold)}.issue-chip.waiting{background:var(--blue-soft);color:var(--blue)}.issue-chip.assigned{background:var(--green-soft);color:var(--green)}
.risk-chip.duplicate{background:var(--red-soft);color:var(--red)}.risk-chip.family{background:var(--gold-soft);color:var(--gold)}.risk-chip.similar{background:var(--blue-soft);color:var(--blue)}.risk-summary{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.3rem}
.file-pills{display:flex;gap:.3rem;flex-wrap:wrap}.file-pills button{border:0;border-radius:.56rem;padding:.38rem .5rem;background:var(--brand-soft);color:var(--primary);font-size:.56rem;font-weight:850}.file-pills.large button{padding:.56rem .75rem;font-size:.62rem}
.contact-link{color:var(--primary);text-decoration:underline;text-decoration-color:rgba(var(--primary-rgb),.28);text-underline-offset:.18rem}

/* Families */
.family-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.family-card{padding:.95rem;border:1px solid var(--line);border-radius:1.18rem;background:linear-gradient(145deg,var(--surface-1),var(--surface-2));margin-bottom:.75rem}
.family-card-head,.family-card-head>div{display:flex;align-items:center;gap:.62rem}.family-card-head{justify-content:space-between}.family-card-head strong,.family-card-head small{display:block}.family-card-head small{font-size:.56rem;color:var(--muted);margin-top:.2rem}
.family-icon{width:2.12rem;height:2.12rem;border-radius:.75rem;display:grid;place-items:center;background:var(--primary);color:#fff}.family-members{display:grid;gap:.38rem;margin:.75rem 0}
.family-members button{display:flex;align-items:center;gap:.5rem;border:0;border-radius:.75rem;padding:.5rem;background:var(--surface-2);text-align:left;color:var(--text)}.family-members button>span{width:1.7rem;height:1.7rem;border-radius:.56rem;display:grid;place-items:center;background:var(--brand-soft);color:var(--primary);font-size:.5rem;font-weight:950}
.family-members button strong,.family-members button small{display:block}.family-members button small{font-size:.5rem;color:var(--muted);margin-top:.12rem}.family-reason{padding:.5rem .62rem;border-radius:.62rem;background:var(--gold-soft);color:var(--gold);font-size:.56rem;font-weight:800}.family-actions{display:flex;justify-content:flex-end;gap:.38rem;margin-top:.62rem}
.family-parent-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.family-parent-options label{display:flex;align-items:center;gap:.55rem;padding:.68rem;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2);cursor:pointer}.family-parent-options label:has(input:checked){border-color:var(--selection);background:var(--selection-soft);box-shadow:0 0 0 3px var(--selection-softer)}.family-parent-options input{accent-color:var(--selection)}.family-parent-options strong,.family-parent-options small{display:block}.family-parent-options small{font-size:.55rem;color:var(--muted);margin-top:.16rem}
.family-form-members{display:grid;gap:.5rem;margin-top:.95rem}.family-form-members>div{display:grid;grid-template-columns:auto 1fr minmax(8.75rem,.5fr);align-items:center;gap:.56rem;padding:.56rem;border-radius:.8rem;background:var(--surface-2)}.family-form-members strong,.family-form-members small{display:block}.family-form-members small{font-size:.56rem;color:var(--muted)}
.family-search-card{margin-bottom:1rem;padding:.88rem}

/* Contacts */
.contacts-layout{grid-template-columns:minmax(0,1.5fr) minmax(18.75rem,.5fr)}.check-row{display:flex;align-items:flex-start;gap:.56rem;padding:.62rem 0;color:var(--muted);font-size:.62rem;line-height:1.4}.check-row input{margin-top:.12rem;accent-color:var(--primary)}
.contact-events{margin-top:1.25rem}.contact-events h3{font-size:.8rem}.contact-events article{display:grid;gap:.12rem;padding:.56rem 0;border-bottom:1px solid var(--line)}.contact-events article strong{font-size:.62rem}.contact-events article span,.contact-events article small{font-size:.56rem;color:var(--muted)}

.contact-naming-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--blue) 24%,var(--line));border-radius:1rem;background:linear-gradient(115deg,var(--blue-soft),var(--brand-soft))}.contact-naming-card>div:first-child{display:grid;gap:.22rem}.contact-naming-card strong{font-size:.72rem}.contact-naming-card>div:first-child span,.endpoint-text{font-size:.56rem;color:var(--muted);overflow-wrap:anywhere}.contact-naming-card>div:last-child{display:flex;gap:.38rem;flex-wrap:wrap;justify-content:flex-end}.contact-naming-card>div:last-child span{padding:.35rem .48rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-1);font-size:.55rem;font-weight:850}.contact-error{max-width:18rem;color:var(--red)}.contact-events article.failed{border-left:.2rem solid var(--red);padding-left:.52rem}.contact-events article.success{border-left:.2rem solid var(--green);padding-left:.52rem}.contact-debug{padding:.75rem;border:1px solid var(--line);border-radius:.9rem;background:var(--surface-3)}.contact-debug summary{cursor:pointer;font-size:.62rem;font-weight:900}.contact-debug pre{max-height:24rem;margin:.65rem 0 0;padding:.75rem;overflow:auto;border-radius:.75rem;background:#111827;color:#d1fae5;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.56rem;line-height:1.5}.notice.warning{border-color:color-mix(in srgb,var(--gold) 40%,var(--line));background:var(--gold-soft);color:var(--gold)}

/* Profiles and intake details */
.student-profile-head,.intake-profile-head{display:flex;align-items:center;justify-content:space-between;gap:1.1rem;padding:.82rem;border-radius:1rem;background:linear-gradient(125deg,color-mix(in srgb,var(--primary) 35%,#150b1d),var(--primary) 56%,color-mix(in srgb,var(--secondary) 55%,var(--primary)));color:#fff;margin-bottom:1rem}
.student-profile-head>div:nth-child(2),.intake-profile-head>div:first-child{flex:1}.student-profile-head h2,.intake-profile-head h2{font-size:1.3rem;margin:.3rem 0 .2rem}.student-profile-head p,.intake-profile-head p{margin:0;color:rgba(255,255,255,.78)}
.student-profile-avatar{width:4.6rem;height:4.6rem;border-radius:1.5rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--secondary),var(--primary));font-size:1.38rem;font-weight:950}.profile-balance{text-align:right}.profile-balance span,.profile-balance strong{display:block}.profile-balance span{font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.72)}.profile-balance strong{font-size:1.1rem;margin-top:.3rem}
.profile-section{padding:1rem;border:1px solid var(--line);border-radius:1.18rem;background:var(--surface-2);margin-bottom:.88rem}.profile-section h3{font-size:.88rem;margin-bottom:.75rem}.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.56rem}.profile-info{padding:.62rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-1)}.profile-info.wide{grid-column:span 3}.profile-info span,.profile-info strong{display:block}.profile-info span{font-size:.5rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.profile-info strong{font-size:.62rem;margin-top:.25rem;overflow-wrap:anywhere}
.profile-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.88rem}.profile-list-row,.match-row{width:100%;display:flex;align-items:center;gap:.56rem;border:0;border-radius:.75rem;padding:.56rem;background:var(--surface-1);text-align:left;color:var(--text);margin-bottom:.38rem}.profile-list-row strong,.profile-list-row small,.match-row strong,.match-row small{display:block}.profile-list-row small,.match-row small{font-size:.56rem;color:var(--muted);margin-top:.18rem}
.portal-state,.portal-summary,.portal-summary>div{display:flex;align-items:center;justify-content:space-between;gap:.62rem}.portal-state{padding:.75rem;border-radius:.8rem;background:var(--surface-1);margin-bottom:.62rem}.portal-state span{display:block;font-size:.56rem;color:var(--muted);margin-top:.18rem}.portal-summary{padding:.88rem;border-radius:1rem;background:var(--surface-2);margin-bottom:.95rem}.portal-summary>div{justify-content:flex-start}.portal-summary strong,.portal-summary small{display:block}.portal-summary small{font-size:.56rem;color:var(--muted);margin-top:.18rem}
.assignment-row{display:flex;align-items:center;gap:.62rem;padding:.62rem;border-bottom:1px solid var(--line)}.assignment-row strong,.assignment-row small{display:block}.assignment-row small{font-size:.56rem;color:var(--muted);margin-top:.18rem}.finance-signal{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.62rem}
.profile-intake-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}.profile-intake-row .profile-list-row{margin-bottom:.38rem}.profile-intake-row .file-pills{justify-content:flex-end}.raw-meta{padding:.75rem;border-radius:.88rem;background:var(--surface-3)}.raw-meta summary{font-size:.62rem;font-weight:900;cursor:pointer}.raw-meta pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.56rem}

/* Forms and admission safety */
.form-section{display:grid;grid-template-columns:11.9rem minmax(0,1fr);gap:1.1rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0}.form-section>div:first-child h3{font-size:.88rem;margin-bottom:.3rem}.form-section>div:first-child p{font-size:.62rem;line-height:1.5;color:var(--muted)}
.admission-clear{padding:.8rem;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:.9rem;background:var(--green-soft);color:var(--green);font-size:.64rem;font-weight:850}
.admission-risk{display:grid;gap:.75rem}.admission-risk-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem;border-radius:.9rem;background:var(--gold-soft);color:var(--gold)}.admission-risk-head p{margin:.2rem 0 0;font-size:.57rem}.admission-risk-head>div:last-child{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
.admission-risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.admission-risk-card{display:grid;gap:.55rem;padding:.78rem;border:1px solid var(--line);border-radius:.95rem;background:var(--surface-1)}.admission-risk-card.duplicate{border-color:color-mix(in srgb,var(--red) 34%,var(--line))}.admission-risk-card.family{border-color:color-mix(in srgb,var(--gold) 34%,var(--line))}.admission-risk-card.similar{border-color:color-mix(in srgb,var(--blue) 34%,var(--line))}.admission-risk-card>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:.42rem}.admission-risk-card>div:first-child strong,.admission-risk-card>div:first-child small{grid-column:2}.admission-risk-card small{font-size:.54rem;color:var(--muted)}
.risk-tags{display:flex;gap:.28rem;flex-wrap:wrap}.risk-tags span{padding:.25rem .38rem;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:.52rem;font-weight:800}.due-box{display:grid;gap:.18rem;padding:.52rem;border-radius:.68rem;background:var(--red-soft);color:var(--red)}.due-box.good{background:var(--green-soft);color:var(--green)}.due-box strong{font-size:.57rem}.due-box small{color:inherit}
.danger-panel,.success-panel{padding:.88rem;border-radius:.95rem;margin-bottom:.88rem}.danger-panel{background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 35%,transparent);color:var(--red)}.danger-panel p{margin:.3rem 0 0;font-size:.62rem;line-height:1.5}.success-panel{display:flex;align-items:center;gap:.75rem;background:var(--green-soft);color:var(--green)}.success-panel>span{width:2.38rem;height:2.38rem;border-radius:.8rem;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:950}.success-panel p{margin:.25rem 0 0;font-size:.62rem}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem}.action-grid.compact{margin-top:.88rem}.action-grid button{min-height:7.5rem;display:grid;align-content:start;gap:.3rem;text-align:left;border:1px solid var(--line);border-radius:1.05rem;padding:.88rem;background:linear-gradient(145deg,var(--surface-1),var(--surface-2));color:var(--text)}.action-grid button>span{width:2.12rem;height:2.12rem;border-radius:.68rem;display:grid;place-items:center;background:var(--brand-soft);color:var(--primary);font-weight:950}.action-grid button strong{font-size:.68rem}.action-grid button small{font-size:.56rem;color:var(--muted);line-height:1.4}.action-grid button.danger{background:var(--red-soft);color:var(--red)}.action-grid button.danger>span{background:color-mix(in srgb,var(--red-soft) 70%,var(--red));color:var(--red)}

/* Private file viewer */
.file-viewer{display:grid;place-items:center;min-height:30rem;max-height:72vh;overflow:auto;border:1px solid var(--line);border-radius:1rem;background:var(--surface-3)}.file-viewer-image{display:block;max-width:100%;max-height:68vh;object-fit:contain}.file-viewer-pdf{width:100%;height:68vh;border:0;background:var(--surface-1)}.file-viewer-audio{width:min(42rem,100%);padding:2rem}.file-viewer-audio audio{width:100%}.file-unknown{display:grid;gap:.75rem;justify-items:center;padding:2rem;text-align:center}.file-unknown p{color:var(--muted)}

/* Students domain responsive behavior */
@media(max-width:1100px){.family-layout,.contacts-layout{grid-template-columns:1fr}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-info.wide{grid-column:span 2}.form-section{grid-template-columns:1fr}.admission-risk-grid{grid-template-columns:1fr}}
@media(max-width:760px){.student-page-title,.student-console-top,.contact-naming-card{align-items:flex-start;flex-direction:column}.student-page-actions{width:100%}.student-quick{justify-content:flex-start}.student-filter-builder{grid-template-columns:1fr}.student-pager{align-items:flex-start;flex-direction:column}.student-profile-head,.intake-profile-head{align-items:flex-start;flex-direction:column}.profile-balance{text-align:left}.profile-split,.profile-grid,.family-parent-options{grid-template-columns:1fr}.profile-info.wide{grid-column:auto}.family-form-members>div{grid-template-columns:auto 1fr}.family-form-members .input{grid-column:1/-1}.action-grid{grid-template-columns:1fr}.admission-risk-head{flex-direction:column}.file-viewer{min-height:20rem}}
@media(max-width:520px){.student-page-head{padding:.62rem}.student-page-title h1{font-size:1.35rem}.student-page-actions .btn{flex:1 1 auto}.student-tabs{margin-inline:-.15rem}.student-filters{align-items:stretch}.compact-filter{flex:1 1 100%}.student-filters>.btn,.filter-direction{flex:1}.row-actions{justify-content:flex-start}.student-profile-avatar{width:3.75rem;height:3.75rem}.file-viewer-pdf{height:58vh}}


/* Guided Student record editor */
.student-record-form .record-guide{background:linear-gradient(160deg,color-mix(in srgb,var(--primary) 12%,var(--surface-1)),color-mix(in srgb,var(--secondary) 8%,var(--surface-2)))}
.student-record-form .record-avatar{width:3.35rem;height:3.35rem;border-radius:1rem;font-size:.9rem;margin-bottom:.75rem}
.student-source-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.72rem;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));border-radius:.88rem;background:var(--blue-soft)}
.student-source-card>div{display:flex;align-items:center;gap:.6rem}.student-source-card strong,.student-source-card small{display:block}.student-source-card small{margin-top:.16rem;color:var(--muted);font-size:.55rem}
.record-note{display:flex;align-items:flex-start;gap:.55rem;margin-top:.65rem;padding:.62rem .7rem;border:1px solid color-mix(in srgb,var(--blue) 22%,var(--line));border-radius:.72rem;background:var(--blue-soft);color:var(--blue)}.record-note strong{flex:0 0 auto;font-size:.6rem}.record-note span{font-size:.56rem;line-height:1.45}
.check-row span{display:grid;gap:.12rem}.check-row span strong{font-size:.62rem}.check-row span small{color:var(--muted);font-size:.54rem;line-height:1.4}
.safety-section{background:linear-gradient(145deg,color-mix(in srgb,var(--gold-soft) 35%,var(--surface-1)),var(--surface-1))}
@media(max-width:900px){.student-tabs button{min-height:2.9rem}.student-tabs button small{display:none}.student-tabs button{grid-template-columns:1.7rem auto auto}.student-tabs button>i{width:1.65rem;height:1.65rem}}
@media(max-width:620px){.student-source-card{align-items:flex-start;flex-direction:column}.student-tabs button{padding:.4rem .52rem}.student-tabs button>span strong{font-size:.59rem}}

/* Student Profile V2 — database-backed journey, no child photography */
.modal.student-profile-modal{width:min(96rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 1.25rem);border-radius:1.2rem}
.student-profile-modal .modal-head{padding:.78rem 1rem;background:color-mix(in srgb,var(--surface-2) 86%,var(--brand-soft))}
.student-profile-modal .modal-body{padding:0;background:linear-gradient(180deg,var(--surface-2),var(--surface-1) 14rem)}
.student-profile-modal .modal-foot{position:relative;z-index:3;padding:.7rem 1rem;box-shadow:0 -.4rem 1.4rem rgba(24,12,31,.08)}
.student-profile-v2{display:grid;gap:.78rem;padding:.85rem}
.student-profile-loading{min-height:28rem;display:grid;place-items:center;align-content:center;gap:1rem;text-align:center;padding:2rem}
.student-profile-loading-orb{width:5.4rem;height:5.4rem;border-radius:1.55rem;display:grid;place-items:center;color:#fff;font-size:1.4rem;font-weight:950;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 1rem 2.5rem rgba(var(--primary-rgb),.28);animation:studentProfilePulse 1.35s ease-in-out infinite alternate}
.student-profile-loading strong,.student-profile-loading span{display:block}.student-profile-loading span{max-width:36rem;margin:.35rem auto 0;color:var(--muted);font-size:.72rem;line-height:1.55}
.student-profile-error{min-height:22rem;display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem}.student-profile-error>span{width:3.5rem;height:3.5rem;border-radius:1rem;display:grid;place-items:center;background:var(--red-soft);color:var(--red);font-size:1.2rem;font-weight:950}.student-profile-error p{max-width:42rem;color:var(--muted);line-height:1.5}

.student-journey-panel{position:relative;isolation:isolate;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 16%,var(--line));border-radius:1.18rem;padding:.9rem;background:radial-gradient(circle at 8% 0,color-mix(in srgb,var(--primary) 12%,transparent),transparent 26%),radial-gradient(circle at 94% 8%,color-mix(in srgb,var(--secondary) 13%,transparent),transparent 28%),linear-gradient(155deg,color-mix(in srgb,var(--surface-1) 95%,var(--brand-soft)),var(--surface-2));color:var(--text);box-shadow:0 .8rem 2rem rgba(30,18,46,.1)}
.student-journey-panel:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:radial-gradient(circle,color-mix(in srgb,var(--primary) 34%,transparent) 0 1px,transparent 1.3px);background-size:32px 32px;opacity:.12;animation:studentJourneyStars 22s linear infinite}
.student-journey-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.student-journey-panel h3{margin:.14rem 0 .2rem;font-size:1rem;letter-spacing:-.025em}.student-journey-head p{margin:0;max-width:52rem;color:var(--muted);font-size:.6rem;line-height:1.5}.student-journey-kicker,.student-section-kicker{display:block;font-size:.47rem;line-height:1;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.student-journey-kicker{color:var(--primary)}.student-section-kicker{color:var(--primary);margin-bottom:.28rem}
.student-journey-head-actions{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}.journey-span{display:grid;grid-template-columns:auto auto .95rem auto auto;align-items:center;gap:.28rem;padding:.48rem .58rem;border:1px solid var(--line);border-radius:.76rem;background:color-mix(in srgb,var(--surface-1) 88%,transparent);box-shadow:var(--shadow-xs)}.journey-span span{font-size:.42rem;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.07em}.journey-span strong{font-size:.52rem}.journey-span i{height:1px;background:var(--line)}.journey-add-button{white-space:nowrap}
.student-journey-path{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.38rem;margin-bottom:.55rem}.journey-path-step{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.35rem;min-width:0;padding:.4rem .45rem;border:1px solid color-mix(in srgb,var(--course-accent) 30%,var(--line));border-radius:.72rem;background:color-mix(in srgb,var(--course-soft) 62%,var(--surface-1));opacity:.58;transition:transform .22s ease,opacity .22s ease,box-shadow .22s ease}.journey-path-step.completed,.journey-path-step.current,.journey-path-step.started{opacity:1}.journey-path-step.current{box-shadow:0 .42rem 1rem color-mix(in srgb,var(--course-accent) 22%,transparent);transform:translateY(-.08rem)}.journey-path-step.skipped{opacity:.42;border-style:dashed}.journey-path-orb{width:1.9rem;height:1.9rem;border-radius:.64rem;display:grid;place-items:center;background:var(--course-accent);color:#fff;font-size:.48rem;font-weight:950;box-shadow:0 .28rem .7rem color-mix(in srgb,var(--course-accent) 28%,transparent)}.journey-path-copy{min-width:0}.journey-path-copy strong,.journey-path-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journey-path-copy strong{font-size:.5rem}.journey-path-copy small{margin-top:.08rem;color:var(--muted);font-size:.39rem}.journey-path-step>i{color:var(--course-accent);font-size:.9rem;font-style:normal}
.student-journey-lanes{position:relative;z-index:1;display:grid;gap:.46rem}.journey-course-lane{position:relative;overflow:clip;border:1px solid color-mix(in srgb,var(--course-accent) 26%,var(--line));border-radius:.84rem;background:linear-gradient(115deg,color-mix(in srgb,var(--course-soft) 58%,var(--surface-1)),var(--surface-1) 34%,var(--surface-2));box-shadow:var(--shadow-xs);transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,border-color .24s ease;animation:studentJourneyLaneIn .4s ease both}.journey-course-lane:hover,.journey-course-lane:focus-within,.journey-course-lane.is-expanded{z-index:2;transform:translateY(-.12rem) scale(1.006);border-color:color-mix(in srgb,var(--course-accent) 58%,var(--line));box-shadow:0 .75rem 1.8rem color-mix(in srgb,var(--course-accent) 16%,rgba(24,14,37,.12))}.journey-course-lane.current{border-left:.22rem solid var(--course-accent)}
.journey-course-head{display:grid;grid-template-columns:3.35rem minmax(0,1fr) auto auto;align-items:center;gap:.55rem;padding:.48rem .55rem .34rem}.journey-course-mark{height:2.1rem;border-radius:.64rem;display:grid;place-items:center;background:var(--course-accent);color:#fff;font-size:.58rem;font-weight:950;letter-spacing:.04em;box-shadow:0 .3rem .8rem color-mix(in srgb,var(--course-accent) 30%,transparent)}.journey-course-head>div{min-width:0}.journey-course-head strong,.journey-course-head small{display:block}.journey-course-head strong{font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-course-head small{margin-top:.08rem;color:var(--muted);font-size:.45rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-course-percent{font-size:.68rem;font-weight:950;color:var(--course-ink)}.journey-course-expand{display:flex;align-items:center;gap:.25rem;min-height:1.8rem;padding:.28rem .42rem;border:1px solid color-mix(in srgb,var(--course-accent) 28%,var(--line));border-radius:.56rem;background:color-mix(in srgb,var(--course-soft) 48%,var(--surface-1));color:var(--course-ink);font-size:.45rem;font-weight:900}.journey-course-expand i{font-style:normal;transition:transform .2s ease}.journey-course-lane.is-expanded .journey-course-expand i,.journey-course-lane:focus-within .journey-course-expand i{transform:rotate(180deg)}
.journey-level-rail{--rail-edge:1.65rem;position:relative;display:flex;align-items:flex-start;gap:.2rem;min-width:0;padding:.1rem .6rem .55rem;overflow-x:auto;scrollbar-width:thin}.journey-level-rail:before,.journey-level-rail:after{content:"";position:absolute;top:.73rem;left:var(--rail-edge);height:.18rem;border-radius:99rem}.journey-level-rail:before{right:var(--rail-edge);background:color-mix(in srgb,var(--course-accent) 18%,var(--line))}.journey-level-rail:after{width:var(--lane-progress);max-width:calc(100% - (var(--rail-edge) * 2));background:linear-gradient(90deg,color-mix(in srgb,var(--course-accent) 72%,#fff),var(--course-accent));box-shadow:0 0 .55rem color-mix(in srgb,var(--course-accent) 38%,transparent);animation:studentJourneyRail .7s ease-out both}.journey-level-node{position:relative;z-index:2;display:grid;justify-items:center;gap:.14rem;flex:1 0 min(5rem,18%);min-width:4.1rem;color:var(--muted)}.journey-level-node b{width:1.45rem;height:1.45rem;border-radius:50%;display:grid;place-items:center;border:.15rem solid color-mix(in srgb,var(--course-accent) 25%,var(--line));background:var(--surface-1);color:var(--muted);font-size:.48rem;box-shadow:0 0 0 .18rem var(--surface-1)}.journey-level-node small{max-width:6rem;font-size:.4rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-level-node.completed b{background:var(--course-accent);border-color:var(--course-accent);color:#fff}.journey-level-node.current b{background:var(--surface-1);border-color:var(--course-accent);color:var(--course-ink);box-shadow:0 0 0 .2rem var(--surface-1),0 0 0 .34rem color-mix(in srgb,var(--course-accent) 24%,transparent);animation:studentJourneyCurrent 1.5s ease-in-out infinite alternate}.journey-level-node.current small,.journey-level-node.completed small{color:var(--course-ink)}.journey-level-node.upcoming b{border-style:dashed}
.journey-course-expanded{display:grid;gap:.42rem;max-height:0;overflow:hidden;padding:0 .55rem;opacity:0;transform:translateY(-.25rem) scale(.985);transform-origin:top center;transition:max-height .38s cubic-bezier(.2,.8,.2,1),opacity .2s ease,transform .28s ease,padding .28s ease}.journey-course-lane:hover .journey-course-expanded,.journey-course-lane:focus-within .journey-course-expanded,.journey-course-lane.is-expanded .journey-course-expanded{max-height:36rem;padding:.12rem .55rem .58rem;opacity:1;transform:translateY(0) scale(1)}.journey-course-expanded-head{display:flex;gap:.28rem;flex-wrap:wrap}.journey-course-expanded-head span,.journey-level-facts span,.journey-level-detail>p span{padding:.2rem .32rem;border-radius:99rem;background:color-mix(in srgb,var(--course-soft) 55%,var(--surface-2));color:var(--course-ink);font-size:.4rem;font-weight:850}.journey-level-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.6rem,1fr));gap:.36rem}
.journey-level-detail{display:grid;gap:.28rem;min-width:0;padding:.48rem;border:1px solid color-mix(in srgb,var(--course-accent) 21%,var(--line));border-radius:.68rem;background:color-mix(in srgb,var(--surface-1) 92%,var(--course-soft));transition:transform .2s ease,box-shadow .2s ease}.journey-level-detail:hover{transform:translateY(-.12rem);box-shadow:0 .45rem 1rem color-mix(in srgb,var(--course-accent) 13%,transparent)}.journey-level-detail>header{display:flex;justify-content:space-between;gap:.35rem;align-items:center}.journey-level-detail>header span{font-size:.42rem;font-weight:950;color:var(--course-ink)}.journey-level-detail>header b{padding:.16rem .28rem;border-radius:99rem;background:var(--course-soft);color:var(--course-ink);font-size:.36rem;text-transform:uppercase;letter-spacing:.05em}.journey-level-detail h5{margin:0;font-size:.55rem}.journey-level-dates{display:grid;grid-template-columns:1fr 1fr;gap:.28rem}.journey-level-dates>span{padding:.3rem;border-radius:.48rem;background:var(--surface-2)}.journey-level-dates small,.journey-level-dates strong{display:block}.journey-level-dates small{color:var(--muted);font-size:.36rem;text-transform:uppercase;letter-spacing:.05em}.journey-level-dates strong{margin-top:.08rem;font-size:.43rem}.journey-level-facts,.journey-level-detail>p{display:flex;gap:.2rem;flex-wrap:wrap;margin:0}.journey-level-detail>footer{display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding-top:.24rem;border-top:1px solid var(--line)}.journey-level-detail>footer small{color:var(--muted);font-size:.36rem;text-transform:capitalize}.journey-level-edit{min-height:1.6rem;padding:.22rem .34rem;border:1px solid color-mix(in srgb,var(--course-accent) 31%,var(--line));border-radius:.48rem;background:var(--surface-1);color:var(--course-ink);font-size:.39rem;font-weight:900}.journey-level-detail.not_started{opacity:.64;border-style:dashed}.journey-level-detail.current{box-shadow:inset .18rem 0 0 var(--course-accent)}
.student-journey-footer{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.52rem;padding:.42rem .1rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.42rem}.student-journey-footer span{display:flex;align-items:center;gap:.2rem}.student-journey-footer i{width:.48rem;height:.48rem;border-radius:50%;background:var(--line)}.student-journey-footer i.current{background:var(--primary);box-shadow:0 0 0 .14rem var(--brand-soft)}.student-journey-footer i.completed{background:var(--green)}.student-journey-footer i.history{background:var(--gold)}.student-journey-footer i.future{background:var(--line)}.student-journey-footer strong{margin-left:auto;color:var(--text);font-size:.45rem}
.empty-journey{min-height:8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.empty-journey h3{font-size:1rem}.empty-journey p{max-width:48rem;color:var(--muted)}
.student-journey-editor-modal .modal-body{background:var(--surface-1)}.journey-editor-intro{display:flex;align-items:center;gap:.65rem;margin-bottom:.65rem;padding:.68rem;border:1px solid var(--line);border-radius:.8rem;background:linear-gradient(135deg,var(--brand-soft),var(--surface-1))}.journey-editor-intro>span{width:2.6rem;height:2.6rem;border-radius:.78rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:950}.journey-editor-intro strong,.journey-editor-intro p{display:block}.journey-editor-intro p{margin:.12rem 0 0;color:var(--muted);font-size:.55rem}

.student-profile-identity{display:grid;grid-template-columns:auto minmax(15rem,1.25fr) minmax(12rem,.65fr) minmax(9rem,.4fr);gap:.85rem;align-items:center;padding:.8rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-1);box-shadow:var(--shadow-xs)}
.student-profile-monogram{width:4.75rem;height:4.75rem;border-radius:1.28rem;display:grid;place-items:center;color:#fff;font-size:1.15rem;font-weight:950;background:linear-gradient(145deg,var(--primary),var(--secondary));box-shadow:0 .8rem 1.7rem rgba(var(--primary-rgb),.22)}
.student-profile-name h2{margin:.28rem 0 .18rem;font-size:1.16rem;letter-spacing:-.035em}.student-profile-name>p{margin:0;color:var(--muted);font-size:.63rem}.student-current-path{display:flex;align-items:center;gap:.42rem;margin-top:.5rem}.student-current-path span{font-size:.48rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.student-current-path strong{font-size:.61rem;color:var(--primary)}
.student-profile-next,.student-profile-score{padding-left:.85rem;border-left:1px solid var(--line)}.student-profile-next span,.student-profile-next strong,.student-profile-next small,.student-profile-score span,.student-profile-score strong{display:block}.student-profile-next span,.student-profile-score span{font-size:.48rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.student-profile-next strong{margin:.22rem 0;font-size:.72rem}.student-profile-next small{color:var(--muted);font-size:.54rem}.student-profile-score strong{margin:.15rem 0 .35rem;font-size:1.35rem;color:var(--primary)}.student-profile-score>div{height:.38rem;border-radius:999px;background:var(--surface-3);overflow:hidden}.student-profile-score i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary))}
.student-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.student-profile-metric{display:flex;align-items:center;gap:.62rem;padding:.68rem;border:1px solid var(--line);border-radius:.88rem;background:var(--surface-1)}.student-profile-metric>span{width:2.35rem;height:2.35rem;border-radius:.72rem;display:grid;place-items:center;background:var(--brand-soft);color:var(--primary);font-weight:950}.student-profile-metric small,.student-profile-metric strong,.student-profile-metric p{display:block}.student-profile-metric small{font-size:.48rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:900}.student-profile-metric strong{margin:.12rem 0;font-size:.88rem}.student-profile-metric p{margin:0;color:var(--muted);font-size:.5rem}.student-profile-metric.green>span{background:var(--green-soft);color:var(--green)}.student-profile-metric.blue>span{background:var(--blue-soft);color:var(--blue)}.student-profile-metric.purple>span{background:var(--brand-soft);color:var(--primary)}.student-profile-metric.red>span{background:var(--red-soft);color:var(--red)}

.student-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.62rem}.student-profile-grid>.profile-section{margin:0;min-width:0}.student-profile-grid>.span-2{grid-column:span 2}.profile-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;margin-bottom:.6rem}.profile-section>header h3{margin:0;font-size:.72rem}.profile-section>header p{margin:.18rem 0 0;color:var(--muted);font-size:.54rem;line-height:1.4}.profile-section>header>span{font-size:.52rem;color:var(--muted);font-weight:850}
.student-assignment-grid{display:grid;gap:.42rem}.student-assignment-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.55rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-2)}.student-assignment-card>span{width:2.1rem;height:2.1rem;border-radius:.65rem;display:grid;place-items:center;background:var(--brand-soft);color:var(--primary);font-size:.55rem;font-weight:950}.student-assignment-card.group>span{background:var(--blue-soft);color:var(--blue)}.student-assignment-card h4{margin:0;font-size:.64rem}.student-assignment-card p{margin:.16rem 0 0;color:var(--muted);font-size:.52rem}
.student-fact-list{display:grid}.student-profile-row{display:grid;grid-template-columns:minmax(6rem,.7fr) minmax(0,1.3fr) auto;gap:.45rem;align-items:start;padding:.44rem 0;border-bottom:1px solid var(--line)}.student-profile-row:last-child{border-bottom:0}.student-profile-row span{font-size:.5rem;color:var(--muted)}.student-profile-row strong{font-size:.56rem;line-height:1.42;overflow-wrap:anywhere}
.student-class-list,.student-attendance-list,.student-finance-ledger{display:grid}.student-class-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(5rem,.6fr) auto;gap:.5rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--line)}.student-class-row:last-child{border-bottom:0}.student-class-row strong,.student-class-row small{display:block}.student-class-row strong{font-size:.58rem}.student-class-row small,.student-class-row>span{font-size:.5rem;color:var(--muted);margin-top:.12rem}
.student-attendance-row{display:grid;grid-template-columns:5.5rem minmax(7rem,1fr) auto minmax(6rem,.8fr);gap:.45rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--line)}.student-attendance-row:last-child{border-bottom:0}.student-attendance-row time,.student-attendance-row span,.student-attendance-row small{font-size:.5rem}.student-attendance-row time{color:var(--muted);font-weight:800}.student-attendance-row small{color:var(--muted);overflow-wrap:anywhere}
.student-family-list{display:grid;gap:.36rem}.student-family-row{display:grid;grid-template-columns:auto 1fr auto;gap:.48rem;align-items:center;width:100%;padding:.46rem;border:1px solid var(--line);border-radius:.68rem;background:var(--surface-2);color:var(--text);text-align:left}.student-family-row>span,.student-portal-card>span{width:2rem;height:2rem;border-radius:.62rem;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-size:.52rem;font-weight:950}.student-family-row strong,.student-family-row small,.student-portal-card strong,.student-portal-card small{display:block}.student-family-row strong,.student-portal-card strong{font-size:.56rem}.student-family-row small,.student-portal-card small{margin-top:.12rem;color:var(--muted);font-size:.48rem}.student-portal-card{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;margin-bottom:.5rem;padding:.56rem;border:1px solid var(--line);border-radius:.72rem;background:var(--surface-2)}
.student-exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-exam-card{display:grid;grid-template-columns:1fr auto;gap:.45rem;padding:.58rem;border:1px solid var(--line);border-radius:.72rem;background:var(--surface-2)}.student-exam-card>div>span{font-size:.44rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green);font-weight:900}.student-exam-card h4{margin:.22rem 0 .14rem;font-size:.59rem}.student-exam-card p{margin:0;color:var(--muted);font-size:.48rem}.student-exam-card>strong{font-size:.85rem;color:var(--primary)}.student-exam-card>small{grid-column:1/-1;font-size:.46rem;color:var(--muted)}.student-exam-card.pending>div>span{color:var(--gold)}
.student-comments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem}.student-comment-card{display:grid;gap:.4rem;padding:.58rem;border:1px solid var(--line);border-radius:.72rem;background:var(--surface-2)}.student-comment-card p{margin:0;font-size:.54rem;line-height:1.48}.student-comment-card footer{display:flex;justify-content:space-between;gap:.4rem;color:var(--muted);font-size:.47rem}.student-comment-card footer strong{color:var(--text)}
.student-report-list{display:grid;gap:.42rem}.student-report-card{padding:.58rem;border:1px solid var(--line);border-radius:.72rem;background:var(--surface-2)}.student-report-card>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.student-report-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:.45rem 0;font-size:.53rem;line-height:1.48}.student-report-card small{color:var(--muted);font-size:.47rem}
.student-finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-bottom:.5rem}.student-finance-summary>div{padding:.52rem;border-radius:.68rem;background:var(--surface-2)}.student-finance-summary span,.student-finance-summary strong{display:block}.student-finance-summary span{font-size:.46rem;color:var(--muted)}.student-finance-summary strong{margin-top:.16rem;font-size:.68rem}.student-sponsorship{display:flex;align-items:center;gap:.45rem;margin-bottom:.45rem;padding:.48rem;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:.68rem;background:var(--green-soft)}.student-sponsorship>span{width:1.8rem;height:1.8rem;border-radius:.55rem;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:950}.student-sponsorship strong,.student-sponsorship p{display:block}.student-sponsorship strong{font-size:.55rem}.student-sponsorship p{margin:.1rem 0 0;font-size:.48rem;color:var(--green)}
.student-resource-list{display:grid;gap:.36rem}.student-resource-list>div{display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:center;padding:.46rem;border:1px solid var(--line);border-radius:.68rem;background:var(--surface-2)}.student-resource-list>div>span{width:1.85rem;height:1.85rem;border-radius:.55rem;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:.52rem;font-weight:950}.student-resource-list strong,.student-resource-list small{display:block}.student-resource-list strong{font-size:.54rem}.student-resource-list small{margin-top:.12rem;color:var(--muted);font-size:.46rem;overflow-wrap:anywhere}.student-intake-compact{display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:center;width:100%;padding:.48rem;border:1px solid var(--line);border-radius:.68rem;background:var(--surface-2);color:var(--text);text-align:left}.student-intake-compact>span{width:1.85rem;height:1.85rem;border-radius:.55rem;display:grid;place-items:center;background:var(--brand-soft);color:var(--primary);font-weight:950}.student-intake-compact strong,.student-intake-compact small{display:block}.student-intake-compact strong{font-size:.55rem}.student-intake-compact small{margin-top:.12rem;color:var(--muted);font-size:.47rem}.student-profile-muted{margin:.25rem 0;color:var(--muted);font-size:.54rem;line-height:1.48}

.student-source-coverage,.student-data-vault{margin:0}.student-coverage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem}.student-coverage-item{display:flex;align-items:center;gap:.45rem;padding:.48rem;border:1px solid var(--line);border-radius:.68rem;background:var(--surface-2)}.student-coverage-item>span{width:1.65rem;height:1.65rem;border-radius:.5rem;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-weight:950}.student-coverage-item.warning>span{background:var(--gold-soft);color:var(--gold)}.student-coverage-item strong,.student-coverage-item small{display:block}.student-coverage-item strong{font-size:.52rem}.student-coverage-item small{margin-top:.1rem;color:var(--muted);font-size:.45rem;line-height:1.35}
.student-vault-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-vault-source{border:1px solid var(--line);border-radius:.72rem;background:var(--surface-2);overflow:hidden}.student-vault-source>summary,.student-vault-row>summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;list-style:none}.student-vault-source>summary::-webkit-details-marker,.student-vault-row>summary::-webkit-details-marker{display:none}.student-vault-source>summary{padding:.55rem .62rem;font-size:.55rem;font-weight:900}.student-vault-source>summary b{min-width:1.6rem;padding:.18rem .3rem;border-radius:999px;text-align:center;background:var(--brand-soft);color:var(--primary);font-size:.48rem}.student-vault-source>div{display:grid;gap:.35rem;padding:0 .5rem .5rem}.student-vault-source>div>p{margin:.1rem;color:var(--muted);font-size:.5rem}.student-vault-row{border:1px solid var(--line);border-radius:.62rem;background:var(--surface-1);overflow:hidden}.student-vault-row>summary{padding:.46rem .5rem;font-size:.5rem}.student-vault-row>summary b{color:var(--muted);font-size:.44rem}.student-vault-row dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border-top:1px solid var(--line)}.student-vault-row dl>div{display:grid;grid-template-columns:minmax(5rem,.7fr) minmax(0,1.3fr);gap:.35rem;padding:.4rem .46rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.student-vault-row dt{font-size:.44rem;color:var(--muted)}.student-vault-row dd{margin:0;font-size:.47rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}

@keyframes studentProfilePulse{from{transform:translateY(0) rotate(-2deg);filter:saturate(.95)}to{transform:translateY(-.35rem) rotate(2deg);filter:saturate(1.25)}}
@keyframes studentJourneyStars{to{background-position:76px 38px}}
@keyframes studentJourneyLaneIn{from{opacity:0;transform:translateY(.32rem)}to{opacity:1;transform:translateY(0)}}
@keyframes studentJourneyRail{from{width:0;opacity:.2}to{opacity:1}}
@keyframes studentJourneyCurrent{from{filter:brightness(.95);transform:scale(.98)}to{filter:brightness(1.12);transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){.student-profile-loading-orb,.student-journey-panel:before,.journey-course-lane,.journey-level-rail:after,.journey-level-node.current b{animation:none!important;transition:none!important}}

@media(max-width:1180px){.student-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-profile-grid>.span-2{grid-column:span 2}.student-profile-identity{grid-template-columns:auto minmax(14rem,1fr) minmax(10rem,.6fr)}.student-profile-score{grid-column:2/-1;padding:.55rem 0 0;border-left:0;border-top:1px solid var(--line)}.student-coverage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.modal.student-profile-modal{width:calc(100vw - .65rem);max-height:calc(100dvh - .65rem)}.student-profile-v2{padding:.55rem}.student-journey-head{flex-direction:column}.student-journey-head-actions{width:100%;justify-content:space-between}.student-journey-path{grid-template-columns:repeat(3,minmax(0,1fr))}.student-profile-identity{grid-template-columns:auto 1fr}.student-profile-next,.student-profile-score{grid-column:1/-1;padding:.55rem 0 0;border-left:0;border-top:1px solid var(--line)}.student-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile-grid>.span-2{grid-column:span 2}.student-coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-vault-groups{grid-template-columns:1fr}}
@media(max-width:560px){.student-profile-modal .modal-foot{justify-content:flex-start;overflow:auto}.student-profile-modal .modal-foot .btn{flex:0 0 auto}.student-profile-v2{padding:.42rem}.student-journey-panel{padding:.62rem}.student-journey-panel h3{font-size:.88rem}.student-journey-head-actions{align-items:stretch;flex-direction:column}.journey-span{grid-template-columns:auto auto .6rem auto auto}.student-journey-path{grid-template-columns:1fr}.journey-path-step>i{display:none}.journey-course-head{grid-template-columns:2.8rem minmax(0,1fr) auto}.journey-course-percent{display:none}.journey-course-expand span{display:none}.journey-level-detail-grid{grid-template-columns:1fr}.student-journey-footer strong{width:100%;margin-left:0}.student-profile-identity{grid-template-columns:1fr;text-align:left}.student-profile-monogram{width:4rem;height:4rem}.student-profile-next,.student-profile-score{grid-column:auto}.student-profile-metrics,.student-profile-grid,.student-exam-grid,.student-comments-grid,.student-finance-summary,.student-coverage-grid{grid-template-columns:1fr}.student-profile-grid>.span-2{grid-column:auto}.student-attendance-row{grid-template-columns:4.8rem 1fr auto}.student-attendance-row small{grid-column:2/-1}.student-class-row{grid-template-columns:1fr auto}.student-class-row>span{grid-column:1/-1}.student-vault-row dl{grid-template-columns:1fr}.student-vault-row dl>div{grid-template-columns:1fr}.student-profile-name h2{font-size:1rem}}

/* --------------------------------------------------------------------------
   Students workspace visual reset — v1.7.1
   One hierarchy, one spacing scale, one button scale. Scoped to Students so
   other domains remain independently editable.
   -------------------------------------------------------------------------- */
.students-workspace{
  --student-gap:.75rem;
  --student-control-height:2.35rem;
  --student-section-radius:.9rem;
  display:grid;
  gap:var(--student-gap);
  color:var(--text);
}
.students-workspace .student-page-head{
  display:grid;
  gap:1rem;
  margin:0;
  padding:1.15rem 1.25rem;
  overflow:visible;
  border:1px solid var(--line);
  border-radius:var(--student-section-radius);
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.students-workspace .student-page-head:before{display:none}
.students-workspace .student-page-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.25rem;
}
.students-workspace .student-title-copy{min-width:0}
.students-workspace .eyebrow{
  margin:0 0 .32rem;
  color:var(--primary);
  font-size:.68rem;
  line-height:1;
  letter-spacing:.11em;
}
.students-workspace .student-title-line{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
}
.students-workspace .student-page-head h1{
  margin:0;
  font-size:clamp(1.55rem,2vw,2rem);
  line-height:1.05;
  letter-spacing:-.045em;
}
.students-workspace .student-page-head p:not(.eyebrow){
  max-width:52rem;
  margin:.42rem 0 0;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.5;
}
.students-workspace .workspace-live{
  min-height:1.55rem;
  padding:.25rem .55rem;
  font-size:.65rem;
  background:var(--surface-2);
}
.students-workspace .student-page-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
  flex:0 0 auto;
}
.students-workspace .btn{
  min-height:var(--student-control-height);
  padding:0 .9rem;
  border-radius:.65rem;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
  box-shadow:none;
}
.students-workspace .btn:hover{transform:none;filter:none}
.students-workspace .btn-primary{
  background:var(--primary);
  box-shadow:0 .35rem .8rem rgba(var(--primary-rgb),.18);
}
.students-workspace .btn-secondary{background:var(--surface-1)}
.students-workspace .btn-sm{
  min-height:2.1rem;
  padding:0 .72rem;
  border-radius:.58rem;
  font-size:.72rem;
}
.students-workspace .student-kpi-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
}
.students-workspace .student-summary-item{
  --summary:var(--primary);
  display:grid;
  gap:.22rem;
  min-width:0;
  padding:.7rem .82rem;
  border:1px solid var(--line);
  border-radius:.72rem;
  background:var(--surface-2);
  box-shadow:none;
}
.students-workspace .student-summary-item strong{
  color:var(--summary);
  font-size:1.2rem;
  line-height:1;
  letter-spacing:-.035em;
}
.students-workspace .student-summary-item small{
  color:var(--muted);
  font-size:.68rem;
  font-weight:800;
  line-height:1.2;
}
.students-workspace .student-summary-item.primary{--summary:var(--primary)}
.students-workspace .student-summary-item.green{--summary:var(--green)}
.students-workspace .student-summary-item.gold{--summary:var(--gold)}
.students-workspace .student-summary-item.red{--summary:var(--red)}

.students-workspace .student-tabs{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr)) 2.55rem;
  gap:.4rem;
  margin:0;
  padding:.4rem;
  overflow:visible;
  border:1px solid var(--line);
  border-radius:var(--student-section-radius);
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.students-workspace .student-tabs button{
  display:grid;
  grid-template-columns:1.9rem minmax(0,1fr) auto;
  align-items:center;
  gap:.5rem;
  min-width:0;
  min-height:3.15rem;
  padding:.45rem .55rem;
  border:1px solid transparent;
  border-radius:.65rem;
  background:var(--control-ash);
  color:var(--muted);
  text-align:left;
  box-shadow:none;
}
.students-workspace .student-tabs button:hover{
  border-color:var(--selection-line);
  background:var(--control-ash-hover);
  color:var(--text);
}
.students-workspace .student-tabs button.active{
  border-color:transparent;
  background:linear-gradient(135deg,var(--selection),var(--selection-strong));
  color:var(--selection-on);
  box-shadow:none;
}
.students-workspace .student-tabs button>i{
  width:1.9rem;
  height:1.9rem;
  border-radius:.55rem;
  background:var(--surface-3);
  color:var(--muted);
  font-size:.7rem;
  box-shadow:none;
}
.students-workspace .student-tabs button.active>i{
  background:rgba(255,255,255,.2);
  color:var(--selection-on);
}
.students-workspace .student-tabs button>span{min-width:0}
.students-workspace .student-tabs button strong{
  overflow:hidden;
  color:inherit;
  font-size:.72rem;
  line-height:1.2;
  text-overflow:ellipsis;
}
.students-workspace .student-tabs button small{
  overflow:hidden;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.2;
  text-overflow:ellipsis;
}
.students-workspace .student-tabs button.active small{color:color-mix(in srgb,var(--selection-on) 74%,transparent)}
.students-workspace .student-tabs b{
  min-width:1.4rem;
  height:1.4rem;
  padding:0 .3rem;
  background:var(--surface-3);
  color:var(--muted);
  font-size:.62rem;
}
.students-workspace .student-tabs button.active b{
  background:rgba(255,255,255,.2);
  color:var(--selection-on);
}
.students-workspace .student-tabs .student-refresh{
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  min-width:0;
  margin:0;
  padding:0;
  color:var(--muted);
  font-size:1rem;
}

.students-workspace .student-console{
  margin:0;
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--student-section-radius);
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.students-workspace .student-console-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:0;
  padding:1rem 1.05rem;
  border-bottom:1px solid var(--line);
  background:var(--surface-1);
}
.students-workspace .student-console-top h2{
  margin:0;
  font-size:1rem;
  letter-spacing:-.025em;
}
.students-workspace .student-console-top p{
  margin:.22rem 0 0;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.35;
}
.students-workspace .student-quick{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.25rem;
  flex-wrap:wrap;
}
.students-workspace .student-quick button{
  min-height:2rem;
  padding:0 .65rem;
  border:1px solid transparent;
  border-radius:.55rem;
  background:var(--control-ash);
  color:var(--muted);
  font-size:.7rem;
  font-weight:800;
}
.students-workspace .student-quick button:hover{
  border-color:var(--selection-line);
  background:var(--control-ash-hover);
  color:var(--text);
}
.students-workspace .student-quick button.active{
  border-color:transparent;
  background:var(--selection);
  color:var(--selection-on);
}
.students-workspace .student-filters{
  display:grid;
  grid-template-columns:minmax(16rem,1fr) minmax(10rem,12rem) 2.35rem auto auto;
  align-items:end;
  gap:.5rem;
  margin:0;
  padding:.8rem 1rem;
  border:0;
  border-bottom:1px solid var(--line);
  background:var(--surface-2);
}
.students-workspace .student-search{min-width:0}
.students-workspace .student-search>span{
  left:.72rem;
  color:var(--muted);
  font-size:.85rem;
}
.students-workspace .student-search .input{padding-left:2.15rem}
.students-workspace .input,
.students-workspace .select,
.students-workspace .textarea{
  min-height:var(--student-control-height);
  padding:.55rem .72rem;
  border-radius:.62rem;
  font-size:.75rem;
  background:var(--surface-1);
}
.students-workspace .compact-filter{
  display:grid;
  gap:.28rem;
  min-width:0;
}
.students-workspace .compact-filter>span{
  padding:0;
  color:var(--muted);
  font-size:.58rem;
  line-height:1;
  letter-spacing:.065em;
}
.students-workspace .compact-filter .select{
  min-height:var(--student-control-height);
  padding:.5rem .65rem;
  font-size:.73rem;
}
.students-workspace .filter-direction{
  width:var(--student-control-height);
  height:var(--student-control-height);
  border-radius:.62rem;
  color:var(--muted);
  background:var(--surface-1);
}
.students-workspace .student-filter-builder{
  grid-template-columns:minmax(11rem,.8fr) minmax(13rem,1fr) auto;
  gap:.55rem;
  padding:.8rem 1rem;
  border-bottom:1px solid var(--line);
  background:var(--brand-softer);
}
.students-workspace .student-filter-chips{
  min-height:auto;
  padding:.55rem 1rem;
  border-bottom:1px solid var(--line);
  background:var(--surface-1);
}
.students-workspace .student-filter-chips button{
  padding:.36rem .58rem;
  border-radius:.5rem;
  font-size:.67rem;
}
.students-workspace .table-wrap{
  max-height:min(62vh,48rem);
  border:0;
  border-radius:0;
}
.students-workspace .data-table{
  font-size:.75rem;
}
.students-workspace .data-table th{
  padding:.7rem .75rem;
  background:var(--surface-2);
  color:var(--muted);
  font-size:.61rem;
  letter-spacing:.065em;
}
.students-workspace .data-table td{
  padding:.72rem .75rem;
  border-bottom:1px solid var(--line);
}
.students-workspace .student-name strong{font-size:.78rem}
.students-workspace .student-name small,
.students-workspace .cell-sub{margin-top:.16rem;font-size:.66rem}
.students-workspace .student-avatar{
  width:2.2rem;
  height:2.2rem;
  border-radius:.65rem;
  font-size:.7rem;
  box-shadow:none;
}
.students-workspace .assignment-chip,
.students-workspace .attention-chip,
.students-workspace .issue-chip,
.students-workspace .risk-chip{
  padding:.3rem .48rem;
  font-size:.65rem;
}
.students-workspace .status{
  padding:.3rem .48rem;
  font-size:.65rem;
}
.students-workspace .mini-btn{
  min-height:1.9rem;
  padding:0 .55rem;
  border-radius:.5rem;
  font-size:.67rem;
}
.students-workspace .student-pager{
  padding:.75rem 1rem;
  background:var(--surface-1);
  font-size:.7rem;
}
.students-workspace .student-loading{font-size:.8rem}
.students-workspace .student-warnings{margin:0}

@container workspace (max-width:72rem){
  .students-workspace .student-tabs{grid-template-columns:repeat(3,minmax(0,1fr)) 2.55rem}
  .students-workspace .student-tabs .student-refresh{grid-column:auto}
  .students-workspace .student-filters{grid-template-columns:minmax(15rem,1fr) minmax(10rem,12rem) 2.35rem}
  .students-workspace .student-filters>.btn{width:auto}
}
@container workspace (max-width:50rem){
  .students-workspace .student-page-heading{flex-direction:column}
  .students-workspace .student-page-actions{justify-content:flex-start}
  .students-workspace .student-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .students-workspace .student-tabs{grid-template-columns:repeat(2,minmax(0,1fr)) 2.55rem}
  .students-workspace .student-console-top{align-items:flex-start;flex-direction:column}
  .students-workspace .student-quick{justify-content:flex-start}
  .students-workspace .student-filters{grid-template-columns:1fr 1fr 2.35rem}
}
@container workspace (max-width:34rem){
  .students-workspace{--student-gap:.6rem}
  .students-workspace .student-page-head{padding:.9rem}
  .students-workspace .student-page-head h1{font-size:1.45rem}
  .students-workspace .student-page-actions{width:100%}
  .students-workspace .student-page-actions .btn{flex:1 1 0}
  .students-workspace .student-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .students-workspace .student-summary-item{padding:.6rem}
  .students-workspace .student-tabs{grid-template-columns:1fr 1fr}
  .students-workspace .student-tabs .student-refresh{grid-column:2}
  .students-workspace .student-tabs button small{display:none}
  .students-workspace .student-console-top{padding:.85rem}
  .students-workspace .student-filters{grid-template-columns:1fr 2.35rem;padding:.7rem .8rem}
  .students-workspace .student-search{grid-column:1/-1}
  .students-workspace .compact-filter{grid-column:1}
  .students-workspace .student-filters>.btn{grid-column:1/-1}
  .students-workspace .student-filter-builder{grid-template-columns:1fr}
  .students-workspace .student-pager{align-items:flex-start;flex-direction:column}
}

/* v1.7.1 responsive corrections after visual audit */
.students-workspace .student-tabs button{white-space:normal}
@container workspace (max-width:72rem){
  .students-workspace .student-page-head{grid-template-columns:1fr}
  .students-workspace .student-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .students-workspace .student-tabs .student-refresh{grid-column:auto}
  .students-workspace .student-filters{grid-template-columns:minmax(15rem,1fr) minmax(10rem,12rem) 2.35rem auto auto}
}
@container workspace (max-width:50rem){
  .students-workspace .student-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .students-workspace .student-filters{grid-template-columns:minmax(0,1fr) 2.35rem auto auto}
  .students-workspace .student-search{grid-column:1/-1}
  .students-workspace .compact-filter{grid-column:1}
}
@container workspace (max-width:34rem){
  .students-workspace .student-tabs button strong{white-space:normal;line-height:1.15}
  .students-workspace .student-tabs .student-refresh{grid-column:auto}
  .students-workspace .student-filters{grid-template-columns:minmax(0,1fr) 2.35rem}
  .students-workspace .student-filters>.btn{grid-column:1/-1}
}

/* Secondary Student sections use the same quiet card and type scale. */
.students-workspace .student-summary-bar{
  display:flex;
  align-items:stretch;
  gap:0;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:.32rem;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:.75rem;
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.students-workspace .student-summary-bar .student-summary-item{
  display:flex;
  align-items:baseline;
  gap:.3rem;
  min-width:max-content;
  padding:.38rem .65rem;
  border:0;
  border-right:1px solid var(--line);
  border-radius:0;
  background:transparent;
}
.students-workspace .student-summary-bar .student-summary-item:last-child{border-right:0}
.students-workspace .student-summary-bar .student-summary-item strong{font-size:.9rem}
.students-workspace .student-summary-bar .student-summary-item small{font-size:.65rem}
.students-workspace>.grid>.card,
.students-workspace .contacts-layout>.card,
.students-workspace .family-layout>.card{
  padding:1rem;
  border-radius:var(--student-section-radius);
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.students-workspace .card-head{margin-bottom:.8rem}
.students-workspace .card-head h2{font-size:1rem}
.students-workspace .card-head h3{font-size:.86rem}
.students-workspace .card-head p{font-size:.7rem;line-height:1.45}
.students-workspace .endpoint-text{display:block;margin-top:.3rem;color:var(--muted);font-size:.62rem;overflow-wrap:anywhere}
.students-workspace .check-row{font-size:.7rem}
.students-workspace #google-token-form .btn-block{
  width:auto;
  min-width:11rem;
  margin-top:.35rem;
}
.students-workspace .contact-events h3{margin-top:1rem;font-size:.82rem}
.students-workspace .contact-events>p{font-size:.72rem;color:var(--muted)}
@container workspace (max-width:34rem){
  .students-workspace .student-summary-bar{width:100%}
  .students-workspace .student-summary-bar .student-summary-item{flex:1 0 auto}
  .students-workspace #google-token-form .btn-block{width:100%}
}

/* --------------------------------------------------------------------------
   Students operational database refinement — v1.7.3
   Scoped to the Students domain. Selection colour remains user-configurable.
   -------------------------------------------------------------------------- */
.students-workspace .student-page-actions{
  align-self:flex-start;
  gap:.38rem;
}
.students-workspace .student-page-actions .btn-sm{
  min-height:1.9rem;
  padding:0 .62rem;
  font-size:.68rem;
}
.students-workspace .student-kpi-row{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.students-workspace .student-summary-item{
  min-height:5.1rem;
  align-content:start;
  border-radius:.48rem;
}
.students-workspace .student-summary-item em{
  margin-top:.12rem;
  color:var(--muted);
  font-size:.59rem;
  font-style:normal;
  font-weight:650;
  line-height:1.28;
}
.students-workspace .student-summary-item.secondary{--summary:var(--secondary)}
.students-workspace .student-summary-item.blue{--summary:var(--blue)}

.students-workspace .student-tabs{
  gap:.56rem;
  padding:.52rem;
}
.students-workspace .student-tabs button{
  min-height:3.55rem;
  padding:.58rem .65rem;
  border-color:color-mix(in srgb,var(--text) 8%,var(--line));
  background:color-mix(in srgb,var(--control-ash) 88%,var(--surface-1));
  color:var(--text);
  font-weight:900;
}
.students-workspace .student-tabs button strong{
  color:inherit;
  font-size:.76rem;
  font-weight:950;
  letter-spacing:-.01em;
}
.students-workspace .student-tabs button small{
  color:color-mix(in srgb,var(--text) 62%,var(--muted));
  font-weight:750;
}
.students-workspace .student-tabs button>i{
  color:var(--text);
  background:color-mix(in srgb,var(--surface-3) 75%,var(--control-ash));
}
.students-workspace .student-tabs b{
  color:var(--text);
  background:color-mix(in srgb,var(--surface-3) 75%,var(--control-ash));
}
.students-workspace .student-tabs button.active{
  color:var(--selection-on);
  box-shadow:0 .32rem .9rem rgba(var(--selection-rgb),.22);
}
.students-workspace .student-tabs button:focus-visible,
.students-workspace .student-quick button:focus-visible,
.students-workspace .student-course-count-list button:focus-visible,
.students-workspace .student-sort-head:focus-visible,
.students-workspace .fee-rule-hover:focus-visible,
.students-workspace .assignment-chip:focus-visible{
  outline:.16rem solid var(--selection);
  outline-offset:.14rem;
}

.students-workspace .student-database-metrics{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.48rem;
  padding:.72rem 1rem;
  border-bottom:1px solid var(--line);
  background:var(--surface-1);
}
.students-workspace .student-database-metric{
  --metric:var(--primary);
  display:grid;
  align-content:start;
  min-width:0;
  min-height:5.15rem;
  padding:.62rem .68rem;
  border:1px solid color-mix(in srgb,var(--metric) 18%,var(--line));
  border-radius:.42rem;
  background:color-mix(in srgb,var(--metric) 5%,var(--surface-2));
}
.students-workspace .student-database-metric.primary{--metric:var(--primary)}
.students-workspace .student-database-metric.green{--metric:var(--green)}
.students-workspace .student-database-metric.secondary{--metric:var(--secondary)}
.students-workspace .student-database-metric.blue{--metric:var(--blue)}
.students-workspace .student-database-metric.violet{--metric:var(--violet,var(--secondary))}
.students-workspace .student-database-metric.gold{--metric:var(--gold)}
.students-workspace .student-database-metric.red{--metric:var(--red)}
.students-workspace .student-database-metric strong{
  color:var(--metric);
  font-size:1.26rem;
  line-height:1;
  letter-spacing:-.04em;
}
.students-workspace .student-database-metric>span{
  margin-top:.34rem;
  color:var(--text);
  font-size:.69rem;
  font-weight:900;
}
.students-workspace .student-database-metric small{
  margin-top:.18rem;
  color:var(--muted);
  font-size:.57rem;
  line-height:1.3;
}

.students-workspace .student-course-counts{
  display:grid;
  grid-template-columns:minmax(9.5rem,auto) minmax(0,1fr);
  align-items:center;
  gap:.8rem;
  padding:.62rem 1rem;
  border-bottom:1px solid var(--line);
  background:var(--surface-2);
}
.students-workspace .student-course-counts>div:first-child{display:grid;gap:.12rem}
.students-workspace .student-course-counts>div:first-child strong{font-size:.71rem}
.students-workspace .student-course-counts>div:first-child small{color:var(--muted);font-size:.58rem}
.students-workspace .student-course-count-list{
  display:flex;
  gap:.4rem;
  min-width:0;
  overflow-x:auto;
  padding:.08rem .1rem .22rem;
  scrollbar-width:thin;
}
.students-workspace .student-course-count-list button{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-areas:"count code" "name name";
  align-items:baseline;
  gap:.12rem .34rem;
  flex:0 0 auto;
  min-width:7.3rem;
  padding:.48rem .58rem;
  border:1px solid var(--line);
  border-radius:.45rem;
  background:var(--surface-1);
  color:var(--text);
  text-align:left;
}
.students-workspace .student-course-count-list button:hover{
  border-color:var(--selection-line);
  background:var(--selection-softer,var(--brand-softer));
}
.students-workspace .student-course-count-list button strong{grid-area:count;color:var(--primary);font-size:.9rem}
.students-workspace .student-course-count-list button>span{grid-area:code;font-size:.65rem;font-weight:900}
.students-workspace .student-course-count-list button small{grid-area:name;overflow:hidden;color:var(--muted);font-size:.54rem;text-overflow:ellipsis;white-space:nowrap}
.students-workspace .student-course-count-empty{align-self:center;color:var(--muted);font-size:.64rem}

.students-workspace .student-search .input{
  border-color:var(--selection-line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--selection) 8%,var(--surface-1)),var(--surface-1));
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--selection-on) 50%,transparent),0 .28rem .8rem rgba(var(--selection-rgb),.11);
}
.students-workspace .student-search>span{color:var(--selection);font-weight:950}
.students-workspace .student-search .input:focus{
  border-color:var(--selection);
  box-shadow:0 0 0 .18rem rgba(var(--selection-rgb),.16),0 .42rem 1rem rgba(var(--selection-rgb),.16);
}

.students-workspace .student-table{min-width:84rem}
.students-workspace .student-table th{padding:0;background:var(--surface-2)}
.students-workspace .student-table th:last-child{padding:.7rem .75rem}
.students-workspace .student-sort-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.45rem;
  width:100%;
  min-height:2.65rem;
  padding:.65rem .72rem;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:.62rem;
  font-weight:950;
  letter-spacing:.055em;
  text-align:left;
  text-transform:uppercase;
}
.students-workspace .student-sort-head:hover{
  background:var(--control-ash-hover);
  color:var(--selection);
}
.students-workspace .student-sort-head.active{
  background:var(--selection-softer,var(--brand-softer));
  color:var(--selection-strong);
}
.students-workspace .student-sort-head i{
  color:currentColor;
  font-size:.78rem;
  font-style:normal;
}
.students-workspace .whatsapp-link{
  display:inline-flex;
  align-items:center;
  min-height:1.8rem;
  color:var(--green);
  font-size:.81rem;
  font-weight:900;
  letter-spacing:.01em;
}
.students-workspace .whatsapp-link.muted{color:var(--muted)}
.students-workspace .due-text{
  margin-top:.28rem;
  color:var(--red);
  font-size:.62rem;
  font-weight:900;
}
.students-workspace .due-amount{
  margin-top:.1rem;
  color:var(--red);
  font-size:.59rem;
  font-weight:750;
}
.students-workspace .fee-rule-hover{
  display:inline-grid;
  grid-template-columns:auto auto;
  grid-template-areas:"value icon" "hint hint";
  align-items:center;
  gap:.08rem .25rem;
  max-width:11rem;
  cursor:help;
  border-bottom:1px dotted color-mix(in srgb,var(--selection) 60%,var(--line));
}
.students-workspace .fee-rule-hover>i{
  grid-area:icon;
  display:grid;
  place-items:center;
  width:1rem;
  height:1rem;
  border-radius:50%;
  background:var(--brand-soft);
  color:var(--primary);
  font-size:.55rem;
  font-style:normal;
  font-weight:950;
}
.students-workspace .fee-rule-hover>small{
  grid-area:hint;
  overflow:hidden;
  color:var(--muted);
  font-size:.48rem;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .fee-rule-hover.missing>i{background:var(--gold-soft);color:var(--gold)}
.students-workspace .course-stack{max-width:25rem}
.students-workspace .assignment-chip{
  display:grid;
  gap:.12rem;
  max-width:14rem;
  border-radius:.48rem;
  cursor:help;
  line-height:1.2;
}
.students-workspace .assignment-chip strong{
  overflow:hidden;
  color:inherit;
  font-size:.64rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .assignment-chip small{
  overflow:hidden;
  max-width:100%;
  color:color-mix(in srgb,currentColor 72%,var(--muted));
  font-size:.51rem;
  font-weight:700;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@container workspace (max-width:78rem){
  .students-workspace .student-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .students-workspace .student-database-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@container workspace (max-width:58rem){
  .students-workspace .student-database-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .students-workspace .student-course-counts{grid-template-columns:1fr}
}
@container workspace (max-width:34rem){
  .students-workspace .student-page-actions{width:auto;justify-content:flex-start}
  .students-workspace .student-page-actions .btn{flex:0 0 auto}
  .students-workspace .student-kpi-row{display:flex;overflow-x:auto;padding-bottom:.2rem}
  .students-workspace .student-kpi-row .student-summary-item{flex:0 0 9.25rem}
  .students-workspace .student-tabs{gap:.38rem;padding:.4rem}
  .students-workspace .student-tabs button{min-height:3.25rem;padding:.45rem .5rem}
  .students-workspace .student-tabs button strong{font-size:.7rem}
  .students-workspace .student-database-metrics{display:flex;overflow-x:auto;padding:.6rem .8rem}
  .students-workspace .student-database-metric{flex:0 0 8.5rem}
  .students-workspace .student-course-counts{padding:.58rem .8rem}
  .students-workspace .student-console-top{padding:.8rem}
  .students-workspace .student-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .students-workspace .student-quick button{padding:0 .4rem}
}

/* --------------------------------------------------------------------------
   Students hierarchy correction — v1.7.4
   Removes duplicate dashboard KPIs and keeps the page header, section switcher
   and database summary as three clearly separate operational layers.
   -------------------------------------------------------------------------- */
.students-workspace .student-page-head{
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  gap:0;
  min-height:0;
  padding:.82rem 1rem;
  overflow:hidden;
}
.students-workspace .student-page-heading{
  width:100%;
  min-width:0;
  align-items:center;
  gap:1rem;
}
.students-workspace .student-title-copy{
  flex:1 1 auto;
  min-width:0;
  max-width:48rem;
}
.students-workspace .student-title-line{gap:.5rem}
.students-workspace .student-title-line h1{white-space:nowrap}
.students-workspace .student-page-head p:not(.eyebrow){
  max-width:none;
  margin:.28rem 0 0;
  font-size:.72rem;
  line-height:1.35;
}
.students-workspace .student-page-actions{
  flex:0 0 auto;
  margin-left:auto;
  align-self:center;
  white-space:nowrap;
}
.students-workspace .student-page-actions .btn-sm{
  min-height:1.85rem;
  padding:0 .58rem;
  border-radius:.5rem;
  font-size:.66rem;
}
.students-workspace .student-page-actions .btn-secondary{
  border-color:var(--line);
  background:var(--surface-2);
  color:var(--muted);
}

.students-workspace .student-tabs{
  grid-template-columns:repeat(5,minmax(0,1fr)) 2.35rem;
  gap:.34rem;
  padding:.36rem;
}
.students-workspace .student-tabs button{
  grid-template-columns:1.65rem minmax(0,1fr) auto;
  gap:.42rem;
  min-height:2.85rem;
  padding:.4rem .52rem;
  border-radius:.58rem;
}
.students-workspace .student-tabs button>i{
  width:1.65rem;
  height:1.65rem;
  border-radius:.46rem;
}
.students-workspace .student-tabs button strong{font-size:.7rem}
.students-workspace .student-tabs button small{font-size:.56rem}
.students-workspace .student-tabs b{
  min-width:1.25rem;
  height:1.25rem;
  font-size:.56rem;
}
.students-workspace .student-tabs .student-refresh{
  min-width:2.35rem;
  padding:0;
}

.students-workspace .student-console-top{
  margin:0;
  padding:.72rem 1rem;
  border-bottom:1px solid var(--line);
  background:var(--surface-1);
}
.students-workspace .student-console-top h2{font-size:.98rem}
.students-workspace .student-console-top p{font-size:.66rem}
.students-workspace .student-quick button{
  min-height:1.9rem;
  padding:0 .58rem;
  font-size:.64rem;
}

.students-workspace .student-database-metrics{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.42rem;
  padding:.58rem 1rem;
  background:var(--surface-2);
}
.students-workspace .student-database-metric{
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"value label" "detail detail";
  align-items:baseline;
  align-content:center;
  gap:.14rem .42rem;
  min-height:3.8rem;
  padding:.5rem .62rem;
  border-radius:.48rem;
}
.students-workspace .student-database-metric strong{
  grid-area:value;
  font-size:1.12rem;
}
.students-workspace .student-database-metric>span{
  grid-area:label;
  margin:0;
  font-size:.66rem;
}
.students-workspace .student-database-metric small{
  grid-area:detail;
  margin:0;
  font-size:.54rem;
}
.students-workspace .student-course-counts{
  padding:.54rem 1rem;
  background:var(--surface-1);
}
.students-workspace .student-course-count-list button{
  min-width:6.8rem;
  padding:.42rem .52rem;
}
.students-workspace .student-filters{padding:.7rem 1rem}

@container workspace (max-width:78rem){
  .students-workspace .student-database-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@container workspace (max-width:58rem){
  .students-workspace .student-page-heading{align-items:flex-start}
  .students-workspace .student-title-line h1{white-space:normal}
  .students-workspace .student-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .students-workspace .student-tabs .student-refresh{grid-column:auto}
}
@container workspace (max-width:42rem){
  .students-workspace .student-page-heading{flex-direction:column;gap:.62rem}
  .students-workspace .student-page-actions{margin-left:0;align-self:flex-start}
  .students-workspace .student-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .students-workspace .student-database-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container workspace (max-width:34rem){
  .students-workspace .student-page-head{padding:.72rem .78rem}
  .students-workspace .student-page-head h1{font-size:1.35rem}
  .students-workspace .student-page-actions{width:auto}
  .students-workspace .student-page-actions .btn{flex:0 0 auto}
  .students-workspace .student-tabs{grid-template-columns:1fr 1fr}
  .students-workspace .student-tabs .student-refresh{grid-column:auto}
  .students-workspace .student-database-metrics{
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:visible;
    padding:.52rem .72rem;
  }
  .students-workspace .student-database-metric{min-height:3.65rem}
  .students-workspace .student-console-top{padding:.7rem .78rem}
  .students-workspace .student-course-counts{padding:.52rem .72rem}
}

/* --------------------------------------------------------------------------
   Student database table correction — v1.7.4 replacement patch
   Keeps the desktop table inside the workspace width and moves secondary
   context into focused hover cards instead of permanently expanding rows.
   -------------------------------------------------------------------------- */
.students-workspace .student-table-wrap{
  overflow:visible;
  width:100%;
}
.students-workspace .student-table{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
}
.students-workspace .student-table .col-sid{width:10%}
.students-workspace .student-table .col-student{width:19%}
.students-workspace .student-table .col-whatsapp{width:12%}
.students-workspace .student-table .col-age{width:7%}
.students-workspace .student-table .col-residence{width:10%}
.students-workspace .student-table .col-status{width:5%}
.students-workspace .student-table .col-courses{width:25%}
.students-workspace .student-table .col-actions{width:12%}
.students-workspace .student-table th,
.students-workspace .student-table td{
  min-width:0;
  overflow:visible;
}
.students-workspace .student-table td{
  padding:.8rem .68rem;
  color:var(--text);
  font-size:.75rem;
  font-weight:720;
  line-height:1.35;
  vertical-align:middle;
}
.students-workspace .student-table td:first-child>strong{
  font-size:.76rem;
  font-weight:950;
}
.students-workspace .student-sort-head{
  min-height:2.8rem;
  padding:.68rem .66rem;
  font-size:.66rem;
  font-weight:950;
  letter-spacing:.06em;
}
.students-workspace .student-name{
  width:100%;
  min-width:0;
}
.students-workspace .student-name>span:last-child{
  min-width:0;
}
.students-workspace .student-name strong{
  overflow:hidden;
  font-size:.78rem;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .student-name small,
.students-workspace .student-table .cell-sub{
  font-size:.6rem;
  font-weight:650;
  line-height:1.3;
}
.students-workspace .whatsapp-link{
  max-width:100%;
  overflow:hidden;
  font-size:.84rem;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .due-text{
  font-size:.64rem;
  font-weight:950;
}
.students-workspace .due-amount{
  font-size:.61rem;
  font-weight:850;
}
.students-workspace .student-table .row-actions{
  justify-content:flex-end;
  flex-wrap:nowrap;
}
.students-workspace .student-table .mini-btn{
  min-width:0;
  padding:.38rem .48rem;
  font-size:.58rem;
  white-space:nowrap;
}

.students-workspace .fee-rule-hover,
.students-workspace .student-status-dot,
.students-workspace .course-id-chip{
  position:relative;
}
.students-workspace .fee-rule-hover{
  display:inline-flex;
  align-items:center;
  gap:.28rem;
  max-width:100%;
  border:0;
  cursor:help;
}
.students-workspace .fee-rule-hover>strong{
  overflow:hidden;
  font-size:.75rem;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .fee-rule-hover>i{
  flex:0 0 auto;
  width:1.1rem;
  height:1.1rem;
  font-size:.57rem;
}
.students-workspace .fee-rule-hover>small{display:none}

.students-workspace .student-status-dot{
  display:inline-grid;
  place-items:center;
  width:1.55rem;
  height:1.55rem;
  border-radius:50%;
  cursor:help;
}
.students-workspace .student-status-dot>i{
  display:block;
  width:.62rem;
  height:.62rem;
  border-radius:50%;
  box-shadow:0 0 0 .22rem color-mix(in srgb,currentColor 14%,transparent);
}
.students-workspace .student-status-dot.in-class{color:var(--green)}
.students-workspace .student-status-dot.in-class>i{background:var(--green)}
.students-workspace .student-status-dot.left{color:var(--muted)}
.students-workspace .student-status-dot.left>i{background:var(--muted)}
.students-workspace .student-status-dot.hold{color:var(--gold)}
.students-workspace .student-status-dot.hold>i{background:var(--gold)}

.students-workspace .course-stack{
  display:flex;
  align-items:center;
  gap:.34rem;
  max-width:100%;
  min-width:0;
  flex-wrap:wrap;
}
.students-workspace .course-id-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:.38rem .52rem;
  border:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  border-radius:.52rem;
  background:color-mix(in srgb,var(--selection) 8%,var(--surface-1));
  color:var(--selection-strong);
  cursor:help;
}
.students-workspace .course-id-chip:hover,
.students-workspace .course-id-chip:focus-visible{
  border-color:var(--selection-line);
  background:color-mix(in srgb,var(--selection) 14%,var(--surface-1));
}
.students-workspace .course-id-chip>strong{
  overflow:hidden;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.01em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .course-more{
  color:var(--muted);
  font-size:.62rem;
  font-weight:850;
}

.students-workspace .student-hover-card{
  position:absolute;
  z-index:40;
  top:calc(100% + .55rem);
  left:50%;
  display:grid;
  gap:.46rem;
  width:max-content;
  min-width:11.5rem;
  max-width:18rem;
  padding:.68rem .72rem;
  border:1px solid color-mix(in srgb,var(--selection) 28%,var(--line));
  border-radius:.72rem;
  background:var(--surface-1);
  color:var(--text);
  box-shadow:0 .85rem 2.1rem rgba(18,20,33,.18),0 0 0 1px color-mix(in srgb,var(--surface-1) 70%,transparent) inset;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-.2rem);
  visibility:hidden;
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
.students-workspace .student-hover-card:before{
  content:"";
  position:absolute;
  top:-.34rem;
  left:50%;
  width:.62rem;
  height:.62rem;
  border-top:1px solid color-mix(in srgb,var(--selection) 28%,var(--line));
  border-left:1px solid color-mix(in srgb,var(--selection) 28%,var(--line));
  background:var(--surface-1);
  transform:translateX(-50%) rotate(45deg);
}
.students-workspace .student-hover-card>b{
  padding-bottom:.4rem;
  border-bottom:1px solid var(--line);
  color:var(--selection-strong);
  font-size:.68rem;
  font-weight:950;
}
.students-workspace .student-hover-card>span{
  display:grid;
  grid-template-columns:minmax(4.6rem,.7fr) minmax(0,1.3fr);
  gap:.6rem;
  align-items:start;
}
.students-workspace .student-hover-card small{
  color:var(--muted);
  font-size:.56rem;
  font-weight:750;
}
.students-workspace .student-hover-card strong{
  overflow-wrap:anywhere;
  color:var(--text);
  font-size:.61rem;
  font-weight:900;
  text-align:right;
}
.students-workspace .fee-rule-hover:hover>.student-hover-card,
.students-workspace .fee-rule-hover:focus>.student-hover-card,
.students-workspace .student-status-dot:hover>.student-hover-card,
.students-workspace .student-status-dot:focus>.student-hover-card,
.students-workspace .course-id-chip:hover>.student-hover-card,
.students-workspace .course-id-chip:focus>.student-hover-card{
  opacity:1;
  transform:translate(-50%,0);
  visibility:visible;
}
.students-workspace .course-id-chip>.student-hover-card{
  right:0;
  left:auto;
  transform:translateY(-.2rem);
}
.students-workspace .course-id-chip>.student-hover-card:before{
  right:.9rem;
  left:auto;
  transform:rotate(45deg);
}
.students-workspace .course-id-chip:hover>.student-hover-card,
.students-workspace .course-id-chip:focus>.student-hover-card{
  transform:translateY(0);
}

@container workspace (max-width:68rem){
  .students-workspace .student-table .col-sid{width:11%}
  .students-workspace .student-table .col-student{width:20%}
  .students-workspace .student-table .col-whatsapp{width:13%}
  .students-workspace .student-table .col-age{width:7%}
  .students-workspace .student-table .col-residence{width:10%}
  .students-workspace .student-table .col-status{width:5%}
  .students-workspace .student-table .col-courses{width:23%}
  .students-workspace .student-table .col-actions{width:11%}
  .students-workspace .student-table td{padding:.72rem .5rem;font-size:.71rem}
  .students-workspace .student-avatar{width:2rem;height:2rem;border-radius:.68rem}
  .students-workspace .student-table .row-actions{display:grid;gap:.25rem}
}


/* --------------------------------------------------------------------------
   Student database spacing and stable course facets — v1.7.4 hotfix 2
   Keeps course selectors present while filtering and removes oversized gaps.
   -------------------------------------------------------------------------- */
.students-workspace .student-course-counts{
  grid-template-columns:minmax(10.5rem,12rem) minmax(0,1fr);
  align-items:start;
  gap:.62rem;
  padding:.48rem .78rem;
}
.students-workspace .student-course-count-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(6.8rem,1fr));
  gap:.34rem;
  overflow:visible;
  padding:0;
}
.students-workspace .student-course-count-list button{
  width:100%;
  min-width:0;
  min-height:3rem;
  padding:.4rem .5rem;
}
.students-workspace .student-course-count-list button.active{
  border-color:var(--selection);
  background:var(--selection);
  color:var(--selection-on);
  box-shadow:0 .28rem .72rem rgba(var(--selection-rgb),.18);
}
.students-workspace .student-course-count-list button.active strong,
.students-workspace .student-course-count-list button.active small{
  color:inherit;
}
.students-workspace .student-table .col-sid{width:10%}
.students-workspace .student-table .col-student{width:21%}
.students-workspace .student-table .col-whatsapp{width:14%}
.students-workspace .student-table .col-age{width:7%}
.students-workspace .student-table .col-residence{width:12%}
.students-workspace .student-table .col-status{width:6%}
.students-workspace .student-table .col-courses{width:16%}
.students-workspace .student-table .col-actions{width:14%}
.students-workspace .student-table td{
  padding:.62rem .58rem;
}
.students-workspace .student-record-row{
  height:auto;
}
.students-workspace .student-table .row-actions{
  gap:.28rem;
}
.students-workspace .student-table th:last-child,
.students-workspace .student-table td:last-child{
  padding-right:.7rem;
}
@container workspace (max-width:68rem){
  .students-workspace .student-table .col-sid{width:11%}
  .students-workspace .student-table .col-student{width:21%}
  .students-workspace .student-table .col-whatsapp{width:14%}
  .students-workspace .student-table .col-age{width:7%}
  .students-workspace .student-table .col-residence{width:12%}
  .students-workspace .student-table .col-status{width:6%}
  .students-workspace .student-table .col-courses{width:15%}
  .students-workspace .student-table .col-actions{width:14%}
}
@container workspace (max-width:42rem){
  .students-workspace .student-course-counts{grid-template-columns:1fr}
  .students-workspace .student-course-count-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* --------------------------------------------------------------------------
   Student list density, pagination and fee-bypass clarity — v1.7.4 hotfix 3
   -------------------------------------------------------------------------- */
.students-workspace .student-table-wrap{
  max-height:none;
  overflow:visible;
}
.students-workspace .student-table td{
  padding:.42rem .56rem;
  line-height:1.22;
}
.students-workspace .student-record-row{
  height:auto;
}
.students-workspace .student-avatar{
  width:1.9rem;
  height:1.9rem;
  border-radius:.58rem;
  font-size:.62rem;
}
.students-workspace .student-name{
  gap:.5rem;
}
.students-workspace .student-name strong{
  font-size:.76rem;
  line-height:1.12;
}
.students-workspace .student-name small{
  margin-top:.08rem;
  font-size:.57rem;
  line-height:1.15;
}
.students-workspace .student-table td:first-child>strong{
  display:block;
  margin-bottom:.22rem;
  line-height:1;
}
.students-workspace .student-due-state{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:1.22rem;
  padding:.2rem .38rem;
  border:1px solid transparent;
  border-radius:.38rem;
  font-size:.56rem;
  font-weight:950;
  line-height:1;
  white-space:nowrap;
}
.students-workspace .student-due-state.due{
  border-color:color-mix(in srgb,var(--red) 28%,var(--line));
  background:var(--red-soft);
  color:var(--red);
}
.students-workspace .student-due-state.clear{
  border-color:color-mix(in srgb,var(--green) 25%,var(--line));
  background:var(--green-soft);
  color:var(--green);
}
.students-workspace .student-due-state.unknown{
  border-color:color-mix(in srgb,var(--gold) 30%,var(--line));
  background:var(--gold-soft);
  color:var(--gold);
}
.students-workspace .student-status-dot{
  width:1.35rem;
  height:1.35rem;
}
.students-workspace .student-status-dot>i{
  width:.54rem;
  height:.54rem;
}
.students-workspace .course-id-chip{
  padding:.3rem .44rem;
  border-radius:.45rem;
}
.students-workspace .course-id-chip>strong{
  font-size:.67rem;
}
.students-workspace .student-table .mini-btn{
  min-height:1.72rem;
  padding:.3rem .42rem;
  font-size:.55rem;
}

.students-workspace .student-pager{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  min-height:3.2rem;
  padding:.58rem .78rem;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface-1),color-mix(in srgb,var(--surface-2) 74%,var(--surface-1)));
  box-shadow:0 -.28rem .8rem rgba(18,20,33,.035);
}
.students-workspace .student-pager-summary{
  display:flex;
  align-items:baseline;
  gap:.32rem;
  color:var(--muted);
  font-size:.64rem;
  font-weight:750;
}
.students-workspace .student-pager-summary strong{
  color:var(--text);
  font-size:.72rem;
  font-weight:950;
}
.students-workspace .student-pager-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.42rem;
  flex-wrap:wrap;
}
.students-workspace .student-page-size{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  min-height:1.9rem;
  padding:.2rem .28rem .2rem .48rem;
  border:1px solid var(--line);
  border-radius:.5rem;
  background:var(--surface-1);
  color:var(--muted);
  font-size:.58rem;
  font-weight:800;
}
.students-workspace .student-page-size select{
  min-width:3.25rem;
  height:1.48rem;
  border:1px solid color-mix(in srgb,var(--selection) 22%,var(--line));
  border-radius:.36rem;
  background:color-mix(in srgb,var(--selection) 7%,var(--surface-1));
  color:var(--text);
  font:inherit;
  font-weight:950;
  text-align:center;
}
.students-workspace .student-page-size select:focus-visible{
  outline:2px solid var(--selection);
  outline-offset:2px;
}

.students-workspace .fee-rule-hover.bypassed>i{
  position:relative;
  background:var(--red);
  color:#fff;
  box-shadow:0 0 0 .2rem color-mix(in srgb,var(--red) 17%,transparent),0 0 .8rem color-mix(in srgb,var(--red) 35%,transparent);
}
.students-workspace .fee-rule-hover.bypassed>i:after{
  content:"";
  position:absolute;
  top:-.08rem;
  right:-.08rem;
  width:.28rem;
  height:.28rem;
  border:2px solid var(--surface-1);
  border-radius:50%;
  background:#ff2d55;
}

.students-workspace .student-hover-card{
  top:auto;
  bottom:calc(100% + .62rem);
  display:block;
  width:clamp(15rem,25vw,21rem);
  min-width:0;
  max-width:min(21rem,calc(100vw - 2rem));
  padding:.62rem;
  border:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  border-radius:.88rem;
  background:
    radial-gradient(circle at top right,color-mix(in srgb,var(--selection) 14%,transparent),transparent 42%),
    linear-gradient(145deg,color-mix(in srgb,var(--surface-1) 96%,white),var(--surface-1));
  box-shadow:0 1.15rem 2.7rem rgba(18,20,33,.2),0 .15rem .45rem rgba(18,20,33,.08);
  transform:translate(-50%,.35rem) scale(.98);
  transform-origin:bottom center;
}
.students-workspace .student-hover-card:before{
  top:auto;
  bottom:-.34rem;
  border:0;
  border-right:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  border-bottom:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  background:var(--surface-1);
}
.students-workspace .student-hover-card>span{
  display:block;
}
.students-workspace .student-hover-card-head{
  display:flex!important;
  align-items:center;
  gap:.52rem;
  min-width:0;
  padding:.08rem .06rem .52rem;
  border-bottom:1px solid var(--line);
}
.students-workspace .student-hover-card-head>i{
  display:grid;
  flex:0 0 auto;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:.62rem;
  background:color-mix(in srgb,var(--selection) 12%,var(--surface-2));
  color:var(--selection-strong);
  font-size:.78rem;
  font-style:normal;
  font-weight:950;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--selection) 18%,var(--line));
}
.students-workspace .student-hover-card-head>span{
  display:grid;
  min-width:0;
  gap:.06rem;
}
.students-workspace .student-hover-card-head small{
  color:var(--muted);
  font-size:.5rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.students-workspace .student-hover-card-head b{
  overflow:hidden;
  color:var(--text);
  font-size:.74rem;
  font-weight:950;
  line-height:1.12;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.students-workspace .student-hover-card-head>em{
  flex:0 0 auto;
  margin-left:auto;
  padding:.25rem .42rem;
  border-radius:999px;
  background:color-mix(in srgb,var(--selection) 10%,var(--surface-2));
  color:var(--selection-strong);
  font-size:.49rem;
  font-style:normal;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.students-workspace .student-hover-card-body{
  display:grid!important;
  gap:.02rem;
  padding-top:.38rem;
}
.students-workspace .student-hover-card-body>span{
  display:grid;
  grid-template-columns:minmax(4rem,.65fr) minmax(0,1.35fr);
  align-items:start;
  gap:.58rem;
  padding:.32rem .18rem;
  border-bottom:1px dashed color-mix(in srgb,var(--line) 70%,transparent);
}
.students-workspace .student-hover-card-body>span:last-child{
  border-bottom:0;
}
.students-workspace .student-hover-card-body small{
  color:var(--muted);
  font-size:.53rem;
  font-weight:760;
}
.students-workspace .student-hover-card-body strong{
  overflow-wrap:anywhere;
  color:var(--text);
  font-size:.59rem;
  font-weight:900;
  line-height:1.35;
  text-align:right;
}
.students-workspace .student-hover-alert{
  display:grid!important;
  gap:.14rem;
  margin-top:.5rem;
  padding:.52rem .58rem;
  border:1px solid color-mix(in srgb,var(--gold) 30%,var(--line));
  border-radius:.62rem;
  background:var(--gold-soft);
}
.students-workspace .student-hover-alert b{
  color:var(--gold);
  font-size:.58rem;
  font-weight:950;
}
.students-workspace .student-hover-alert small{
  color:var(--text);
  font-size:.54rem;
  font-weight:780;
  line-height:1.35;
}
.students-workspace .student-hover-alert.danger{
  border-color:color-mix(in srgb,var(--red) 36%,var(--line));
  background:linear-gradient(135deg,color-mix(in srgb,var(--red-soft) 92%,var(--surface-1)),var(--surface-1));
  box-shadow:inset .18rem 0 0 var(--red);
}
.students-workspace .student-hover-alert.danger b{
  color:var(--red);
}
.students-workspace .student-hover-card.danger{
  border-color:color-mix(in srgb,var(--red) 34%,var(--line));
}
.students-workspace .student-hover-card.danger .student-hover-card-head>i,
.students-workspace .student-hover-card.danger .student-hover-card-head>em{
  background:var(--red-soft);
  color:var(--red);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--red) 24%,var(--line));
}
.students-workspace .student-hover-card.success .student-hover-card-head>i,
.students-workspace .student-hover-card.success .student-hover-card-head>em,
.students-workspace .student-hover-card.in-class .student-hover-card-head>i,
.students-workspace .student-hover-card.in-class .student-hover-card-head>em{
  background:var(--green-soft);
  color:var(--green);
}
.students-workspace .student-hover-card.warning .student-hover-card-head>i,
.students-workspace .student-hover-card.warning .student-hover-card-head>em,
.students-workspace .student-hover-card.hold .student-hover-card-head>i,
.students-workspace .student-hover-card.hold .student-hover-card-head>em{
  background:var(--gold-soft);
  color:var(--gold);
}
.students-workspace .student-hover-card.left .student-hover-card-head>i,
.students-workspace .student-hover-card.left .student-hover-card-head>em{
  background:var(--surface-3);
  color:var(--muted);
}
.students-workspace .fee-rule-hover:hover>.student-hover-card,
.students-workspace .fee-rule-hover:focus>.student-hover-card,
.students-workspace .student-status-dot:hover>.student-hover-card,
.students-workspace .student-status-dot:focus>.student-hover-card,
.students-workspace .course-id-chip:hover>.student-hover-card,
.students-workspace .course-id-chip:focus>.student-hover-card{
  transform:translate(-50%,0) scale(1);
}
.students-workspace .course-id-chip>.student-hover-card{
  right:0;
  left:auto;
  transform:translateY(.35rem) scale(.98);
  transform-origin:bottom right;
}
.students-workspace .course-id-chip>.student-hover-card:before{
  right:.9rem;
  left:auto;
}
.students-workspace .course-id-chip:hover>.student-hover-card,
.students-workspace .course-id-chip:focus>.student-hover-card{
  transform:translateY(0) scale(1);
}

@container workspace (max-width:42rem){
  .students-workspace .student-table td{padding:.38rem .42rem}
  .students-workspace .student-pager{align-items:flex-start;flex-direction:column}
  .students-workspace .student-pager-controls{width:100%;justify-content:flex-start}
  .students-workspace .student-hover-card{width:min(18rem,calc(100vw - 1.5rem))}
}
.students-workspace .student-console{
  overflow:visible;
  isolation:isolate;
}
/* Tooltip direction: open below normally, flip above for the final rows. */
.students-workspace .student-hover-card{
  top:calc(100% + .62rem);
  bottom:auto;
  transform:translate(-50%,-.35rem) scale(.98);
  transform-origin:top center;
}
.students-workspace .student-hover-card:before{
  top:-.34rem;
  bottom:auto;
  border-right:0;
  border-bottom:0;
  border-top:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  border-left:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
}
.students-workspace .course-id-chip>.student-hover-card{
  transform:translateY(-.35rem) scale(.98);
  transform-origin:top right;
}
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .student-hover-card{
  top:auto;
  bottom:calc(100% + .62rem);
  transform:translate(-50%,.35rem) scale(.98);
  transform-origin:bottom center;
}
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .student-hover-card:before{
  top:auto;
  bottom:-.34rem;
  border-top:0;
  border-left:0;
  border-right:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
  border-bottom:1px solid color-mix(in srgb,var(--selection) 24%,var(--line));
}
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .fee-rule-hover:hover>.student-hover-card,
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .fee-rule-hover:focus>.student-hover-card,
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .student-status-dot:hover>.student-hover-card,
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .student-status-dot:focus>.student-hover-card{
  transform:translate(-50%,0) scale(1);
}
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .course-id-chip>.student-hover-card{
  transform:translateY(.35rem) scale(.98);
  transform-origin:bottom right;
}
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .course-id-chip:hover>.student-hover-card,
.students-workspace .student-table tbody tr:nth-last-child(-n+4) .course-id-chip:focus>.student-hover-card{
  transform:translateY(0) scale(1);
}
/* Keep rich hover cards above later table rows. */
.students-workspace .student-table td{
  position:relative;
}
.students-workspace .student-table tr:has(.fee-rule-hover:hover),
.students-workspace .student-table tr:has(.fee-rule-hover:focus),
.students-workspace .student-table tr:has(.student-status-dot:hover),
.students-workspace .student-table tr:has(.student-status-dot:focus),
.students-workspace .student-table tr:has(.course-id-chip:hover),
.students-workspace .student-table tr:has(.course-id-chip:focus){
  position:relative;
  z-index:70;
}
.students-workspace .student-table td:has(.fee-rule-hover:hover),
.students-workspace .student-table td:has(.fee-rule-hover:focus),
.students-workspace .student-table td:has(.student-status-dot:hover),
.students-workspace .student-table td:has(.student-status-dot:focus),
.students-workspace .student-table td:has(.course-id-chip:hover),
.students-workspace .student-table td:has(.course-id-chip:focus){
  z-index:80;
}
.students-workspace .student-hover-card-body{
  grid-template-columns:1fr;
}
.students-workspace .student-hover-card>.student-hover-card-body{
  grid-template-columns:1fr!important;
}
.students-workspace .student-hover-card>.student-hover-alert{
  grid-template-columns:1fr!important;
}

/* Student Academic Journey v3 — compact editor fit */
@media(max-width:560px){
  .student-journey-editor-modal .form-grid{grid-template-columns:1fr;gap:.52rem}
  .student-journey-editor-modal .form-grid .full{grid-column:auto}
  .student-journey-editor-modal .modal-foot{position:sticky;bottom:0;background:var(--surface-1)}
  .student-journey-editor-modal .modal-foot .btn{flex:1 1 0;min-width:0;padding-inline:.6rem}
}

/* --------------------------------------------------------------------------
   Student Academic Journey accordion — v1.7.6
   Closed by default, with a polished reveal that keeps the profile compact.
   -------------------------------------------------------------------------- */
.student-journey-accordion{
  position:relative;
  min-width:0;
  overflow:clip;
  border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));
  border-radius:1.05rem;
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface-1) 96%,var(--brand-soft)),var(--surface-2));
  box-shadow:0 .5rem 1.6rem rgba(26,15,40,.075);
  transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease;
}
.student-journey-accordion:hover{
  border-color:color-mix(in srgb,var(--primary) 34%,var(--line));
  box-shadow:0 .72rem 2rem rgba(26,15,40,.1);
}
.student-journey-accordion[open]{
  border-color:color-mix(in srgb,var(--primary) 32%,var(--line));
  box-shadow:0 1rem 2.6rem rgba(26,15,40,.12);
}
.student-journey-summary{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:auto minmax(14rem,1fr) auto auto;
  align-items:center;
  gap:.75rem;
  min-width:0;
  padding:.72rem .78rem;
  cursor:pointer;
  list-style:none;
  background:
    radial-gradient(circle at 6% 0,color-mix(in srgb,var(--primary) 14%,transparent),transparent 27%),
    linear-gradient(135deg,color-mix(in srgb,var(--surface-1) 96%,var(--brand-soft)),color-mix(in srgb,var(--surface-2) 94%,var(--primary) 3%));
  outline:0;
  transition:background .24s ease,padding .24s ease;
}
.student-journey-summary::-webkit-details-marker{display:none}
.student-journey-summary::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--primary) 38%,var(--line)),transparent);
  opacity:0;
  transform:scaleX(.4);
  transition:opacity .25s ease,transform .35s ease;
}
.student-journey-accordion[open]>.student-journey-summary::after{opacity:1;transform:scaleX(1)}
.student-journey-summary:focus-visible{
  box-shadow:inset 0 0 0 .16rem color-mix(in srgb,var(--selection-color,var(--primary)) 72%,transparent);
}
.journey-summary-visual{
  position:relative;
  width:3.15rem;
  height:3.15rem;
  display:grid;
  place-items:center;
  border-radius:.92rem;
  overflow:hidden;
  background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--secondary) 82%,var(--primary)));
  color:#fff;
  box-shadow:0 .55rem 1.3rem rgba(var(--primary-rgb),.23);
}
.journey-summary-visual::before{
  content:"";
  position:absolute;
  inset:-35%;
  background:conic-gradient(from 30deg,transparent,rgba(255,255,255,.22),transparent 28%);
  animation:journeySummaryGlow 5.5s linear infinite;
}
.journey-summary-visual i{
  position:absolute;
  top:50%;
  width:.38rem;
  height:.38rem;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 .12rem rgba(255,255,255,.16);
}
.journey-summary-visual i:nth-child(1){left:.48rem;opacity:.55}
.journey-summary-visual i:nth-child(2){left:1.35rem;transform:scale(1.16)}
.journey-summary-visual i:nth-child(3){right:.48rem;opacity:.78}
.journey-summary-visual b{
  position:relative;
  z-index:1;
  margin-top:-.82rem;
  font-size:.82rem;
  line-height:1;
}
.journey-summary-copy{min-width:0}
.journey-summary-copy>strong,.journey-summary-copy>small{display:block}
.journey-summary-copy>strong{
  margin:.13rem 0 .12rem;
  font-size:.77rem;
  letter-spacing:-.018em;
}
.journey-summary-copy>small{
  overflow:hidden;
  color:var(--muted);
  font-size:.49rem;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.journey-summary-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(4.6rem,auto));
  gap:.28rem;
}
.journey-summary-stats>span{
  min-width:0;
  padding:.38rem .46rem;
  border:1px solid color-mix(in srgb,var(--primary) 10%,var(--line));
  border-radius:.65rem;
  background:color-mix(in srgb,var(--surface-1) 82%,transparent);
}
.journey-summary-stats small,.journey-summary-stats strong{display:block}
.journey-summary-stats small{
  color:var(--muted);
  font-size:.35rem;
  font-weight:900;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.journey-summary-stats strong{
  margin-top:.08rem;
  overflow:hidden;
  color:var(--text);
  font-size:.48rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.journey-summary-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.3rem;
  min-height:2rem;
  padding:.34rem .48rem;
  border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));
  border-radius:.62rem;
  background:color-mix(in srgb,var(--brand-soft) 64%,var(--surface-1));
  color:var(--primary);
  font-size:.44rem;
  font-weight:950;
  white-space:nowrap;
}
.journey-summary-toggle i{
  font-style:normal;
  font-size:.68rem;
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.journey-close-label{display:none}
.student-journey-accordion[open] .journey-open-label{display:none}
.student-journey-accordion[open] .journey-close-label{display:inline}
.student-journey-accordion[open] .journey-summary-toggle i{transform:rotate(180deg)}
.student-journey-reveal{position:relative;z-index:1;overflow:hidden}
.student-journey-reveal-inner{transform-origin:top center}
.student-journey-accordion[open] .student-journey-reveal-inner{
  animation:journeyAccordionReveal .52s cubic-bezier(.18,.8,.22,1) both;
}
.student-journey-accordion .student-journey-panel{
  border:0;
  border-radius:0;
  padding:.82rem;
  background:
    radial-gradient(circle at 8% 0,color-mix(in srgb,var(--primary) 10%,transparent),transparent 25%),
    radial-gradient(circle at 96% 8%,color-mix(in srgb,var(--secondary) 10%,transparent),transparent 27%),
    linear-gradient(160deg,color-mix(in srgb,var(--surface-1) 97%,var(--brand-soft)),var(--surface-2));
  box-shadow:none;
}
.student-journey-accordion .student-journey-panel::before{opacity:.08}
.student-journey-accordion[open] .journey-path-step{
  animation:journeyAccordionItemIn .34s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:calc(.08s + (var(--journey-index) * .045s));
}
.student-journey-accordion:not([open]) .journey-path-step,
.student-journey-accordion:not([open]) .journey-course-lane{animation:none}
.student-journey-accordion[open] .journey-course-lane{
  animation:journeyAccordionItemIn .4s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:calc(.18s + (var(--journey-index) * .055s));
}
.student-journey-accordion .student-journey-path{
  padding:.08rem;
  border-radius:.82rem;
  background:color-mix(in srgb,var(--surface-1) 60%,transparent);
}
.student-journey-accordion .journey-path-step{
  min-height:3rem;
  backdrop-filter:blur(6px);
}
.student-journey-accordion .journey-course-lane{
  background:linear-gradient(115deg,color-mix(in srgb,var(--course-soft) 48%,var(--surface-1)),var(--surface-1) 38%,var(--surface-2));
}
.student-journey-accordion .journey-course-lane:hover,
.student-journey-accordion .journey-course-lane:focus-within,
.student-journey-accordion .journey-course-lane.is-expanded{
  transform:translateY(-.1rem) scale(1.003);
}
@keyframes journeySummaryGlow{to{transform:rotate(360deg)}}
@keyframes journeyAccordionReveal{
  0%{opacity:0;transform:translateY(-.72rem) scale(.988);filter:blur(3px)}
  55%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@keyframes journeyAccordionItemIn{
  from{opacity:0;transform:translateY(.42rem) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:900px){
  .student-journey-summary{grid-template-columns:auto minmax(0,1fr) auto}
  .journey-summary-stats{grid-column:2/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .journey-summary-toggle{grid-column:3;grid-row:1}
}
@media(max-width:620px){
  .student-journey-summary{grid-template-columns:auto minmax(0,1fr) auto;gap:.52rem;padding:.62rem}
  .journey-summary-visual{width:2.55rem;height:2.55rem;border-radius:.76rem}
  .journey-summary-visual i:nth-child(1){left:.38rem}.journey-summary-visual i:nth-child(2){left:1.08rem}.journey-summary-visual i:nth-child(3){right:.38rem}
  .journey-summary-copy>strong{font-size:.67rem}
  .journey-summary-copy>small{font-size:.43rem}
  .journey-summary-toggle{width:2.15rem;padding:.3rem}
  .journey-summary-toggle>span{display:none!important}
  .journey-summary-stats{grid-column:1/-1;grid-row:2}
  .journey-summary-stats>span{padding:.32rem .38rem}
  .student-journey-accordion .student-journey-panel{padding:.62rem}
}
@media(prefers-reduced-motion:reduce){
  .journey-summary-visual::before,
  .student-journey-accordion[open] .student-journey-reveal-inner,
  .student-journey-accordion[open] .journey-path-step,
  .student-journey-accordion[open] .journey-course-lane{animation:none!important}
}


/* v1.7.7 Academic Journey runtime recovery and containment */
.student-journey-accordion{display:block;contain:layout paint;min-width:0}
.student-journey-accordion:not([open])>.student-journey-reveal{display:none!important}
.student-journey-accordion[open]>.student-journey-reveal{display:block}
.student-journey-summary>*{min-width:0}
.student-journey-reveal,.student-journey-reveal-inner,.student-journey-panel,.student-journey-lanes,.journey-course-lane{min-width:0;max-width:100%}
.student-journey-accordion[open]>.student-journey-summary{background:linear-gradient(135deg,color-mix(in srgb,var(--brand-soft) 58%,var(--surface-1)),color-mix(in srgb,var(--secondary-soft) 42%,var(--surface-2)))}
.student-journey-accordion[open] .student-journey-panel{border-top:1px solid color-mix(in srgb,var(--primary) 18%,var(--line))}
.student-journey-accordion[open] .student-journey-reveal{animation:journeyRevealClip .48s cubic-bezier(.2,.8,.2,1) both}
@keyframes journeyRevealClip{from{clip-path:inset(0 0 100% 0 round 0 0 1rem 1rem)}to{clip-path:inset(0 0 0 0 round 0 0 1rem 1rem)}}
@media(max-width:620px){.student-journey-accordion{border-radius:.88rem}.student-journey-summary{align-items:start}.student-journey-accordion[open] .student-journey-panel{padding:.55rem}.student-journey-path{gap:.3rem}.journey-course-head{gap:.4rem}}
@media(prefers-reduced-motion:reduce){.student-journey-accordion[open] .student-journey-reveal{animation:none!important}}

/* --------------------------------------------------------------------------
   v1.7.8 Student Academic Journey — compact checkpoint story
   -------------------------------------------------------------------------- */
.student-profile-v2>.student-journey-accordion{
  width:min(100%,72rem);
  justify-self:center;
}
.student-journey-accordion{
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));
  border-radius:1.15rem;
  background:var(--surface-1);
  box-shadow:0 .75rem 2.2rem rgba(31,18,47,.11);
}
.student-journey-accordion[open]{
  border-color:color-mix(in srgb,var(--primary) 38%,var(--line));
  box-shadow:0 1.1rem 3rem rgba(31,18,47,.15);
}
.student-journey-summary{
  grid-template-columns:auto minmax(14rem,1fr) minmax(7rem,.55fr) auto auto;
  gap:.78rem;
  min-height:4.9rem;
  padding:.72rem .82rem;
  background:
    radial-gradient(circle at 4% -20%,color-mix(in srgb,#ff7aa8 18%,transparent),transparent 31%),
    radial-gradient(circle at 84% 130%,color-mix(in srgb,#5e9df5 14%,transparent),transparent 34%),
    linear-gradient(135deg,color-mix(in srgb,var(--surface-1) 94%,var(--brand-soft)),color-mix(in srgb,var(--surface-2) 94%,#a879ef 4%));
}
.journey-summary-visual{
  width:3.2rem;
  height:3.2rem;
  border-radius:1rem;
  background:linear-gradient(145deg,#5b3f95,#9b58b7 52%,#e2649e);
  box-shadow:0 .6rem 1.45rem rgba(104,55,134,.28);
}
.journey-summary-visual:before,
.journey-summary-visual i,
.journey-summary-visual>b{display:none}
.journey-growth-icon{display:block;width:100%;height:100%;overflow:visible}
.journey-growth-icon path,.journey-growth-icon circle{vector-effect:non-scaling-stroke}
.journey-growth-icon .growth-ground{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;opacity:.35}
.journey-growth-icon .growth-stem,.journey-growth-icon .growth-branch{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.journey-growth-icon .growth-leaf{fill:currentColor;stroke:none}
.journey-growth-icon .growth-seed{fill:currentColor;stroke:none}
.journey-summary-visual .journey-growth-icon{width:2rem;height:2rem;color:#fff;filter:drop-shadow(0 .2rem .22rem rgba(0,0,0,.18))}
.journey-summary-copy>strong{font-size:.82rem;line-height:1.2}
.journey-summary-copy>small{font-size:.5rem;line-height:1.45}
.journey-summary-route{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.34rem;
  min-width:7rem;
  padding:.35rem .48rem;
}
.journey-summary-route:before{
  content:"";
  position:absolute;
  left:.9rem;
  right:.9rem;
  top:50%;
  height:.16rem;
  border-radius:999px;
  background:var(--line);
  transform:translateY(-50%);
}
.journey-summary-route i{
  position:relative;
  z-index:1;
  width:.64rem;
  height:.64rem;
  border:.13rem solid color-mix(in srgb,var(--checkpoint) 42%,var(--surface-1));
  border-radius:50%;
  background:var(--surface-1);
  box-shadow:0 0 0 .13rem var(--surface-1);
}
.journey-summary-route i.reached{background:var(--checkpoint);border-color:var(--checkpoint)}
.journey-summary-progress{
  --journey-progress:0%;
  width:3.35rem;
  height:3.35rem;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--primary) var(--journey-progress),color-mix(in srgb,var(--primary) 11%,var(--surface-2)) 0);
  box-shadow:inset 0 0 0 .13rem color-mix(in srgb,var(--surface-1) 70%,transparent),0 .35rem .85rem rgba(49,27,68,.12);
}
.journey-summary-progress:before{
  content:"";
  grid-area:1/1;
  width:2.55rem;
  height:2.55rem;
  border-radius:50%;
  background:var(--surface-1);
}
.journey-summary-progress>span{position:relative;grid-area:1/1;text-align:center}
.journey-summary-progress strong,.journey-summary-progress small{display:block}
.journey-summary-progress strong{font-size:.64rem;line-height:1;color:var(--primary)}
.journey-summary-progress small{margin-top:.12rem;color:var(--muted);font-size:.32rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.journey-summary-toggle{min-height:2.25rem;padding:.38rem .55rem;border-radius:.72rem;background:color-mix(in srgb,var(--brand-soft) 68%,var(--surface-1));font-size:.46rem}

.student-journey-reveal-inner{
  max-height:min(30rem,calc(100dvh - 11rem));
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.student-journey-accordion .student-journey-panel{
  padding:.82rem .9rem .72rem;
  background:
    radial-gradient(circle at 8% 6%,color-mix(in srgb,#ff7aa8 10%,transparent),transparent 25%),
    radial-gradient(circle at 94% 10%,color-mix(in srgb,#5e9df5 10%,transparent),transparent 28%),
    linear-gradient(155deg,color-mix(in srgb,var(--surface-1) 96%,var(--brand-soft)),var(--surface-2));
}
.student-journey-panel:before{opacity:.075;background-size:28px 28px}
.student-journey-head{align-items:center;margin-bottom:.66rem}
.journey-story-heading{display:flex;align-items:center;gap:.62rem;min-width:0}
.journey-story-icon{
  flex:0 0 auto;
  width:2.7rem;
  height:2.7rem;
  display:grid;
  place-items:center;
  border-radius:.86rem;
  background:linear-gradient(145deg,#5b3f95,#e2649e);
  color:#fff;
  box-shadow:0 .45rem 1.15rem rgba(118,62,139,.24);
}
.journey-story-icon .journey-growth-icon{width:1.65rem;height:1.65rem}
.student-journey-panel h3{font-size:.92rem}
.student-journey-head p{max-width:46rem;font-size:.55rem}
.journey-span{padding:.42rem .5rem}

.student-journey-path{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.34rem;
  margin:.15rem 0 .72rem;
  padding:.18rem .12rem 0;
  isolation:isolate;
}
.journey-checkpoint-line{
  position:absolute;
  z-index:0;
  top:1.72rem;
  left:9.5%;
  right:9.5%;
  height:.24rem;
  border-radius:999px;
  background:linear-gradient(90deg,#ff7aa8,#f6a84f 25%,#48bf91 50%,#5e9df5 75%,#a879ef);
  opacity:.58;
  box-shadow:0 .15rem .55rem rgba(94,74,126,.18);
}
.journey-checkpoint-line i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.8),transparent 18%,rgba(255,255,255,.72) 48%,transparent 70%);animation:journeyTrailShimmer 4.5s linear infinite}
.journey-path-step.journey-checkpoint{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr;
  justify-items:center;
  gap:.32rem;
  min-width:0;
  padding:.15rem .2rem .28rem;
  border:0;
  border-radius:.86rem;
  background:transparent;
  color:var(--text);
  opacity:.64;
  cursor:pointer;
  transform:none;
  box-shadow:none;
}
.journey-path-step.journey-checkpoint:disabled{cursor:default}
.journey-path-step.journey-checkpoint.completed,
.journey-path-step.journey-checkpoint.current,
.journey-path-step.journey-checkpoint.started,
.journey-path-step.journey-checkpoint.is-selected{opacity:1}
.journey-path-step.journey-checkpoint:hover:not(:disabled),
.journey-path-step.journey-checkpoint:focus-visible,
.journey-path-step.journey-checkpoint.is-selected{
  transform:translateY(-.14rem);
  outline:0;
}
.journey-path-step.journey-checkpoint:focus-visible{box-shadow:0 0 0 .16rem color-mix(in srgb,var(--course-accent) 48%,transparent)}
.journey-path-orb{
  position:relative;
  width:3.15rem;
  height:3.15rem;
  display:grid;
  place-items:center;
  border:.22rem solid color-mix(in srgb,var(--course-accent) 42%,var(--surface-1));
  border-radius:50%;
  background:linear-gradient(145deg,color-mix(in srgb,var(--course-accent) 82%,#fff),var(--course-accent));
  color:#fff;
  box-shadow:0 0 0 .2rem var(--surface-1),0 .5rem 1rem color-mix(in srgb,var(--course-accent) 27%,transparent);
  transition:transform .25s cubic-bezier(.2,.9,.2,1),box-shadow .25s ease;
}
.journey-path-step:hover .journey-path-orb,
.journey-path-step:focus-visible .journey-path-orb,
.journey-path-step.is-selected .journey-path-orb{transform:scale(1.1);box-shadow:0 0 0 .2rem var(--surface-1),0 .72rem 1.3rem color-mix(in srgb,var(--course-accent) 38%,transparent)}
.journey-path-step.current .journey-path-orb:after{
  content:"";
  position:absolute;
  inset:-.42rem;
  border:.12rem solid color-mix(in srgb,var(--course-accent) 48%,transparent);
  border-radius:50%;
  animation:journeyCurrentPulse 1.8s ease-out infinite;
}
.journey-path-orb b{font-size:.58rem;letter-spacing:.03em}
.journey-path-orb i{
  position:absolute;
  right:-.15rem;
  bottom:-.12rem;
  width:1rem;
  height:1rem;
  display:grid;
  place-items:center;
  border:.12rem solid var(--surface-1);
  border-radius:50%;
  background:var(--course-ink);
  color:#fff;
  font-size:.4rem;
  font-style:normal;
  font-weight:950;
}
.journey-path-copy{text-align:center;min-width:0}
.journey-path-copy strong,.journey-path-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journey-path-copy strong{font-size:.46rem;color:var(--text)}
.journey-path-copy small{margin-top:.08rem;color:var(--course-ink);font-size:.36rem;font-weight:850}
.journey-path-step.skipped .journey-path-orb{filter:saturate(.45);opacity:.72}
.journey-path-step.future .journey-path-orb{background:var(--surface-1);color:var(--course-ink);border-style:dashed;box-shadow:0 0 0 .2rem var(--surface-1)}

.student-journey-lanes{display:block;min-height:0}
.journey-course-lane{
  display:none;
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--course-accent) 38%,var(--line));
  border-radius:1rem;
  background:
    radial-gradient(circle at 0 0,color-mix(in srgb,var(--course-accent) 18%,transparent),transparent 34%),
    linear-gradient(135deg,color-mix(in srgb,var(--course-soft) 78%,var(--surface-1)),var(--surface-1) 46%,color-mix(in srgb,var(--surface-2) 90%,var(--course-soft)));
  box-shadow:0 .65rem 1.7rem color-mix(in srgb,var(--course-accent) 14%,rgba(29,17,43,.1));
  transform:none;
}
.journey-course-lane:before{
  content:"";
  position:absolute;
  top:-4rem;
  right:-2rem;
  width:13rem;
  height:13rem;
  border:.9rem solid color-mix(in srgb,var(--course-accent) 11%,transparent);
  border-radius:50%;
  pointer-events:none;
}
.journey-course-lane.is-expanded{display:block;animation:journeyCourseSpotlight .42s cubic-bezier(.2,.82,.2,1) both}
.journey-course-lane:hover,.journey-course-lane:focus-within,.journey-course-lane.is-expanded{transform:none;border-color:color-mix(in srgb,var(--course-accent) 46%,var(--line));box-shadow:0 .8rem 2rem color-mix(in srgb,var(--course-accent) 18%,rgba(29,17,43,.12))}
.journey-course-head{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:.64rem;
  padding:.66rem .72rem .5rem;
}
.journey-course-mark{
  width:3.3rem;
  height:3.3rem;
  display:grid;
  place-items:center;
  border-radius:.98rem;
  background:linear-gradient(145deg,color-mix(in srgb,var(--course-accent) 84%,#fff),var(--course-accent));
  color:#fff;
  box-shadow:0 .52rem 1.2rem color-mix(in srgb,var(--course-accent) 32%,transparent);
}
.journey-course-mark .course-growth{grid-area:1/1;width:1.8rem;height:1.8rem;opacity:.35;transform:translateY(-.15rem)}
.journey-course-mark>b{grid-area:1/1;align-self:end;margin-bottom:.37rem;font-size:.52rem;letter-spacing:.05em;text-shadow:0 .1rem .2rem rgba(0,0,0,.18)}
.journey-course-title>span{display:block;color:var(--course-ink);font-size:.38rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.journey-course-title>strong{margin-top:.12rem;font-size:.72rem;white-space:normal}
.journey-course-title>small{margin-top:.12rem;font-size:.44rem}
.journey-course-meter{
  --course-progress:0%;
  width:3.25rem;
  height:3.25rem;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--course-accent) var(--course-progress),color-mix(in srgb,var(--course-accent) 13%,var(--surface-2)) 0);
}
.journey-course-meter:before{content:"";grid-area:1/1;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--surface-1)}
.journey-course-meter>span{position:relative;grid-area:1/1;text-align:center}
.journey-course-meter b,.journey-course-meter small{display:block}
.journey-course-meter b{color:var(--course-ink);font-size:.58rem;line-height:1}
.journey-course-meter small{margin-top:.1rem;color:var(--muted);font-size:.27rem;font-weight:900;text-transform:uppercase}
.journey-course-expand{min-height:2rem;padding:.32rem .48rem;border-radius:.62rem;background:color-mix(in srgb,var(--course-soft) 72%,var(--surface-1));font-size:.42rem}
.journey-course-lane.is-detail-open .journey-course-expand i{transform:rotate(180deg)}
.journey-course-story{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.7rem;
  align-items:end;
  padding:0 .72rem .48rem;
}
.journey-course-story-copy strong,.journey-course-story-copy small{display:block}
.journey-story-label{color:var(--course-ink);font-size:.36rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.journey-course-story-copy strong{margin-top:.12rem;font-size:.55rem}
.journey-course-story-copy small{margin-top:.12rem;max-width:44rem;color:var(--muted);font-size:.42rem;line-height:1.45}
.journey-course-facts{display:flex;align-items:center;gap:.28rem}
.journey-course-facts>span{min-width:3.5rem;padding:.32rem .4rem;border:1px solid color-mix(in srgb,var(--course-accent) 18%,var(--line));border-radius:.62rem;background:color-mix(in srgb,var(--surface-1) 82%,transparent);text-align:center}
.journey-course-facts b,.journey-course-facts small{display:block}
.journey-course-facts b{color:var(--course-ink);font-size:.58rem}
.journey-course-facts small{margin-top:.08rem;color:var(--muted);font-size:.32rem;text-transform:uppercase;font-weight:850}

.journey-level-rail{
  --rail-edge:2.25rem;
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-start;
  gap:.3rem;
  padding:.35rem .72rem .72rem;
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-width:thin;
}
.journey-level-rail:before,.journey-level-rail:after{top:1.17rem;height:.2rem}
.journey-level-node{
  flex:1 0 min(5.6rem,20%);
  min-width:4.8rem;
  gap:.2rem;
  outline:0;
}
.journey-level-node b{
  width:1.92rem;
  height:1.92rem;
  border-width:.18rem;
  border-color:color-mix(in srgb,var(--course-accent) 35%,var(--line));
  font-size:.52rem;
  transition:transform .22s cubic-bezier(.2,.9,.2,1),box-shadow .22s ease;
}
.journey-level-node:hover b,.journey-level-node:focus-visible b{transform:scale(1.14);box-shadow:0 0 0 .2rem var(--surface-1),0 .5rem 1rem color-mix(in srgb,var(--course-accent) 35%,transparent)}
.journey-level-node small{font-size:.39rem}
.journey-level-popover{
  position:absolute;
  z-index:20;
  left:50%;
  bottom:calc(100% + .46rem);
  width:max-content;
  max-width:12rem;
  display:grid;
  gap:.1rem;
  padding:.42rem .5rem;
  border:1px solid color-mix(in srgb,var(--course-accent) 36%,var(--line));
  border-radius:.66rem;
  background:color-mix(in srgb,var(--surface-1) 96%,var(--course-soft));
  color:var(--text);
  box-shadow:0 .75rem 1.6rem rgba(23,13,36,.18);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,.25rem) scale(.95);
  transition:opacity .18s ease,transform .18s ease;
}
.journey-level-popover:after{content:"";position:absolute;left:50%;top:100%;width:.55rem;height:.55rem;border-right:1px solid color-mix(in srgb,var(--course-accent) 36%,var(--line));border-bottom:1px solid color-mix(in srgb,var(--course-accent) 36%,var(--line));background:inherit;transform:translate(-50%,-50%) rotate(45deg)}
.journey-level-popover strong{font-size:.46rem}
.journey-level-popover em{color:var(--course-ink);font-size:.34rem;font-style:normal;font-weight:900;text-transform:uppercase}
.journey-level-popover small{max-width:none;color:var(--muted);font-size:.36rem;white-space:normal}
.journey-level-node:hover .journey-level-popover,.journey-level-node:focus-visible .journey-level-popover{opacity:1;transform:translate(-50%,0) scale(1)}

.journey-course-expanded{
  display:grid;
  gap:.46rem;
  max-height:0;
  overflow:hidden;
  padding:0 .72rem;
  opacity:0;
  transform:translateY(-.25rem);
  transition:max-height .38s cubic-bezier(.2,.8,.2,1),opacity .2s ease,transform .28s ease,padding .28s ease;
}
.journey-course-lane:hover .journey-course-expanded,
.journey-course-lane:focus-within .journey-course-expanded,
.journey-course-lane.is-detail-open .journey-course-expanded{
  max-height:18rem;
  overflow:auto;
  padding:.05rem .72rem .72rem;
  opacity:1;
  transform:translateY(0);
}
.journey-course-expanded-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.12rem .45rem;padding:.38rem .46rem;border-radius:.66rem;background:color-mix(in srgb,var(--course-soft) 54%,var(--surface-2))}
.journey-course-expanded-head span{grid-row:1/3;padding:0;background:none;font-size:.38rem;text-transform:uppercase;letter-spacing:.08em}
.journey-course-expanded-head strong{font-size:.5rem;color:var(--course-ink)}
.journey-course-expanded-head small{color:var(--muted);font-size:.36rem}
.journey-level-detail-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.42rem}
.journey-level-detail{
  position:relative;
  gap:.32rem;
  padding:.62rem .54rem .5rem;
  border-color:color-mix(in srgb,var(--course-accent) 24%,var(--line));
  border-radius:.78rem;
  background:linear-gradient(160deg,color-mix(in srgb,var(--surface-1) 92%,var(--course-soft)),var(--surface-1));
}
.journey-level-ribbon{
  position:absolute;
  top:-.1rem;
  left:.48rem;
  padding:.16rem .34rem .22rem;
  border-radius:0 0 .45rem .45rem;
  background:var(--course-accent);
  color:#fff;
  font-size:.34rem;
  font-weight:950;
  letter-spacing:.06em;
}
.journey-level-detail>header{align-items:flex-start;padding-top:.32rem}
.journey-level-detail>header div small{display:block;color:var(--muted);font-size:.32rem;text-transform:uppercase;letter-spacing:.08em}
.journey-level-detail h5{margin-top:.08rem;font-size:.52rem}
.journey-level-detail>header b{font-size:.33rem}
.journey-level-dates>span{padding:.34rem .38rem;border-radius:.54rem}
.journey-level-detail>footer small{max-width:68%;line-height:1.35}
.student-journey-footer{margin-top:.52rem;padding-top:.5rem}

.empty-journey{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;min-height:8rem}
.journey-empty-illustration{width:3.5rem;height:3.5rem;display:grid;place-items:center;border-radius:1rem;background:linear-gradient(145deg,#5b3f95,#e2649e);color:#fff}
.journey-empty-illustration .journey-growth-icon{width:2rem;height:2rem}

@keyframes journeyTrailShimmer{to{transform:translateX(12%)} }
@keyframes journeyCurrentPulse{0%{opacity:.8;transform:scale(.75)}100%{opacity:0;transform:scale(1.15)}}
@keyframes journeyCourseSpotlight{from{opacity:0;transform:translateY(.38rem) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:980px){
  .student-journey-summary{grid-template-columns:auto minmax(0,1fr) auto auto}
  .journey-summary-route{display:none}
  .journey-course-story{grid-template-columns:1fr}
  .journey-course-facts{justify-content:flex-start}
}
@media(max-width:720px){
  .student-profile-v2>.student-journey-accordion{width:100%}
  .student-journey-summary{grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;min-height:4.4rem;padding:.62rem}
  .journey-summary-progress{width:2.85rem;height:2.85rem}
  .journey-summary-progress:before{width:2.18rem;height:2.18rem}
  .journey-summary-progress strong{font-size:.54rem}
  .journey-summary-toggle{grid-column:1/-1;width:100%;min-height:1.85rem}
  .student-journey-reveal-inner{max-height:min(29rem,calc(100dvh - 9rem))}
  .student-journey-head{align-items:flex-start}
  .journey-story-heading{align-items:flex-start}
  .student-journey-head-actions{width:100%;align-items:stretch}
  .student-journey-path{grid-template-columns:repeat(5,minmax(6.4rem,1fr));overflow-x:auto;padding:.24rem .25rem .4rem;scroll-snap-type:x proximity;scrollbar-width:thin}
  .journey-checkpoint-line{left:3.2rem;right:3.2rem}
  .journey-path-step.journey-checkpoint{scroll-snap-align:center}
  .journey-course-head{grid-template-columns:auto minmax(0,1fr) auto;gap:.48rem}
  .journey-course-meter{width:2.85rem;height:2.85rem}
  .journey-course-meter:before{width:2.18rem;height:2.18rem}
  .journey-course-expand{grid-column:1/-1;width:100%;justify-content:center}
}
@media(max-width:520px){
  .journey-summary-visual{width:2.7rem;height:2.7rem;border-radius:.84rem}
  .journey-summary-visual .journey-growth-icon{width:1.65rem;height:1.65rem}
  .journey-summary-copy>strong{font-size:.67rem}
  .journey-summary-copy>small{font-size:.42rem;white-space:normal}
  .student-journey-accordion .student-journey-panel{padding:.62rem .55rem .55rem}
  .journey-story-icon{width:2.35rem;height:2.35rem}
  .student-journey-panel h3{font-size:.76rem}
  .student-journey-head p{font-size:.46rem}
  .student-journey-head-actions{flex-direction:column}
  .journey-span{width:100%;grid-template-columns:auto 1fr .55rem auto 1fr}
  .journey-add-button{width:100%}
  .journey-path-orb{width:2.8rem;height:2.8rem}
  .journey-course-head{padding:.58rem .58rem .4rem}
  .journey-course-mark{width:2.75rem;height:2.75rem;border-radius:.78rem}
  .journey-course-title>strong{font-size:.62rem}
  .journey-course-title>small{white-space:normal;font-size:.39rem}
  .journey-course-story{padding:0 .58rem .42rem}
  .journey-course-facts{display:grid;grid-template-columns:repeat(3,1fr)}
  .journey-course-facts>span{min-width:0}
  .journey-level-rail{padding-inline:.48rem}
  .journey-course-expanded{padding-inline:.58rem}
  .journey-course-lane:hover .journey-course-expanded{max-height:0;padding-top:0;padding-bottom:0;opacity:0}
  .journey-course-lane.is-detail-open .journey-course-expanded{max-height:21rem;padding:.05rem .58rem .62rem;opacity:1}
  .journey-level-detail-grid{grid-template-columns:1fr}
  .empty-journey{grid-template-columns:1fr;text-align:center;justify-items:center}
}
@media(prefers-reduced-motion:reduce){
  .journey-checkpoint-line i,.journey-path-step.current .journey-path-orb:after,.journey-course-lane.is-expanded{animation:none!important}
  .journey-path-step,.journey-path-orb,.journey-level-node b,.journey-level-popover{transition:none!important}
}

/* v1.7.8 mobile checkpoint placement corrections */
@media(max-width:720px){
  .student-journey-summary{grid-template-rows:auto auto}
  .journey-summary-visual,.journey-summary-copy,.journey-summary-progress{grid-row:1}
  .journey-summary-toggle{grid-column:1/-1;grid-row:2;width:100%;min-height:1.85rem}
}
@media(max-width:560px){
  .journey-course-expand span{display:inline!important}
}
@media(max-width:720px){
  .journey-summary-toggle .journey-open-label,.journey-summary-toggle .journey-close-label{display:none!important}
  .student-journey-accordion:not([open]) .journey-summary-toggle .journey-open-label{display:inline!important}
  .student-journey-accordion[open] .journey-summary-toggle .journey-close-label{display:inline!important}
}

/* --------------------------------------------------------------------------
   Student Profile Interactive Workspace — v1.7.9
   Centered inside the visible app workspace, readable, responsive and scoped.
   -------------------------------------------------------------------------- */
@media (min-width:901px){
  body:has(.shell:not(.sidebar-hidden)) .modal-backdrop:has(.student-profile-modal),
  body:has(.shell:not(.sidebar-hidden)) .modal-backdrop:has(.student-profile-submodal){left:var(--sidebar-width,15rem)}
  body:has(.shell.sidebar-hidden) .modal-backdrop:has(.student-profile-modal),
  body:has(.shell.sidebar-hidden) .modal-backdrop:has(.student-profile-submodal){left:0}
}
.modal.student-profile-modal{
  width:min(86rem,calc(100% - 1.5rem));
  max-height:calc(100dvh - 1.5rem);
  border-radius:1.25rem;
  background:var(--surface-1);
  box-shadow:0 2.2rem 6rem rgba(15,9,24,.35);
}
.modal.student-profile-submodal{width:min(58rem,calc(100% - 1.5rem));max-height:calc(100dvh - 2rem);border-radius:1.15rem}
.student-profile-modal .modal-head,.student-profile-submodal .modal-head{min-height:3.2rem;padding:.78rem 1rem;background:color-mix(in srgb,var(--surface-1) 90%,var(--brand-soft));backdrop-filter:blur(14px)}
.student-profile-modal .modal-head h2,.student-profile-submodal .modal-head h2{font-size:1rem;letter-spacing:-.015em}
.student-profile-modal .modal-body{padding:0;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 88%,var(--brand-softer)),var(--surface-1) 16rem)}
.student-profile-modal .modal-foot{padding:.68rem .9rem;background:color-mix(in srgb,var(--surface-1) 92%,var(--brand-soft));box-shadow:0 -.6rem 1.6rem rgba(20,10,28,.08)}
.student-profile-v2{display:grid;gap:.72rem;padding:.78rem;font-size:.82rem}
.student-profile-v2 button,.student-profile-v2 a{font:inherit}
.student-profile-v2>.student-journey-accordion{width:min(76rem,100%);justify-self:center}

.student-profile-identity{
  grid-template-columns:5.4rem minmax(18rem,1.3fr) minmax(12rem,.56fr) minmax(9rem,.35fr);
  gap:1rem;
  padding:1rem;
  border-radius:1rem;
  background:linear-gradient(135deg,var(--surface-1),color-mix(in srgb,var(--brand-soft) 44%,var(--surface-1)));
}
.student-profile-sid-tile{width:5.15rem;height:5.15rem;display:grid;place-items:center;align-content:center;gap:.14rem;border-radius:1.25rem;background:linear-gradient(145deg,var(--primary),var(--secondary));color:#fff;box-shadow:0 .8rem 1.7rem rgba(var(--primary-rgb),.23)}
.student-profile-sid-tile strong{font-size:1.1rem;letter-spacing:.03em}.student-profile-sid-tile small{font-size:.54rem;font-weight:850;opacity:.78;text-transform:uppercase;letter-spacing:.09em}
.student-profile-name{min-width:0}.student-profile-name .chips{margin-bottom:.36rem}.student-name-line{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.student-name-line h2{margin:0 .2rem 0 0;font-size:1.35rem;line-height:1.08;letter-spacing:-.035em}.student-name-line>span{display:inline-flex;align-items:center;min-height:1.55rem;padding:.25rem .48rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.68rem;font-weight:820}
.student-profile-name>p{margin:.34rem 0 0;color:var(--muted);font-size:.75rem}.student-profile-name>p a{color:var(--green);font-weight:900}
.student-current-path{display:flex;align-items:center;gap:.42rem;margin-top:.5rem}.student-current-path span{color:var(--muted);font-size:.58rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.student-current-path strong{font-size:.75rem}
.student-profile-next,.student-profile-score{padding-left:1rem}.student-profile-next span,.student-profile-score>span{font-size:.57rem;letter-spacing:.08em}.student-profile-next strong{font-size:.78rem;line-height:1.4}.student-profile-next small{font-size:.62rem}.student-profile-score strong{font-size:1.45rem}

.student-profile-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.student-profile-metric{min-height:4.25rem;padding:.72rem;border-radius:.86rem}.student-profile-metric>span{width:2.25rem;height:2.25rem;font-size:.8rem}.student-profile-metric small{font-size:.57rem}.student-profile-metric strong{font-size:.9rem}.student-profile-metric p{font-size:.58rem}
.student-profile-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.student-profile-grid>.profile-section{padding:.8rem;border-radius:.95rem;overflow:visible;background:color-mix(in srgb,var(--surface-1) 94%,var(--brand-soft));box-shadow:var(--shadow-xs)}
.student-profile-grid>.span-2{grid-column:span 2}.profile-section>header{margin-bottom:.72rem}.profile-section>header h3{font-size:.86rem;line-height:1.25}.profile-section>header p{font-size:.62rem}.profile-section>header>span{font-size:.62rem}.student-section-kicker{font-size:.54rem!important;letter-spacing:.1em!important}

.student-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.student-assignment-card{position:relative;display:block;padding:0;border:0;background:transparent;overflow:visible}.student-assignment-main{display:grid;grid-template-columns:2.55rem minmax(0,1fr) auto;align-items:center;gap:.58rem;width:100%;padding:.62rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface-2);color:var(--text);text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.student-assignment-main:hover,.student-assignment-main:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--selection) 48%,var(--line));box-shadow:0 .65rem 1.5rem rgba(22,12,32,.13)}
.student-assignment-main>span{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:.72rem;background:var(--blue-soft);color:var(--blue);font-size:.62rem;font-weight:950}.student-assignment-card.individual .student-assignment-main>span{background:var(--brand-soft);color:var(--primary)}.student-assignment-main h4{margin:0;font-size:.72rem}.student-assignment-main p{margin:.18rem 0 0;color:var(--muted);font-size:.58rem;line-height:1.35}.assignment-state{width:.56rem;height:.56rem;border-radius:50%;background:var(--muted);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--muted) 15%,transparent)}.assignment-state.active{background:var(--green);box-shadow:0 0 0 .2rem var(--green-soft)}
.student-assignment-popover{position:absolute;z-index:40;left:50%;bottom:calc(100% + .5rem);width:min(20rem,calc(100vw - 2rem));display:grid;gap:.48rem;padding:.72rem;border:1px solid color-mix(in srgb,var(--selection) 30%,var(--line));border-radius:.9rem;background:color-mix(in srgb,var(--surface-1) 97%,var(--brand-soft));box-shadow:0 1rem 2.4rem rgba(16,8,25,.22);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,.35rem) scale(.96);transition:.18s ease}.student-assignment-card:hover .student-assignment-popover,.student-assignment-card:focus-within .student-assignment-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.student-assignment-popover:after{content:"";position:absolute;left:50%;top:100%;width:.65rem;height:.65rem;background:inherit;border-right:1px solid color-mix(in srgb,var(--selection) 30%,var(--line));border-bottom:1px solid color-mix(in srgb,var(--selection) 30%,var(--line));transform:translate(-50%,-50%) rotate(45deg)}.assignment-popover-kicker{font-size:.5rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:var(--primary)}.student-assignment-popover h5{margin:0;font-size:.78rem}.student-assignment-popover>p,.assignment-no-zoom{margin:0;color:var(--muted);font-size:.6rem}.assignment-popover-person{display:flex;align-items:center;gap:.48rem;padding:.42rem;border-radius:.66rem;background:var(--surface-2)}.assignment-popover-person>span{width:2rem;height:2rem;display:grid;place-items:center;border-radius:.58rem;background:var(--brand-soft);color:var(--primary);font-size:.55rem;font-weight:950}.assignment-popover-person strong,.assignment-popover-person small{display:block}.assignment-popover-person strong{font-size:.65rem}.assignment-popover-person small{margin-top:.12rem;color:var(--muted);font-size:.56rem}.assignment-popover-meta{display:flex;gap:.32rem;flex-wrap:wrap}.assignment-popover-meta span{padding:.28rem .42rem;border-radius:999px;background:var(--control-ash);color:var(--muted);font-size:.54rem;font-weight:800}.assignment-popover-links{display:flex;gap:.35rem;flex-wrap:wrap}.assignment-popover-links a,.student-detail-links a{display:inline-flex;align-items:center;justify-content:center;padding:.38rem .55rem;border-radius:.58rem;background:var(--selection);color:var(--selection-on);font-size:.56rem;font-weight:900;text-decoration:none}

.student-profile-facts .student-fact-list{display:grid}.student-profile-row{min-height:2.1rem;padding:.46rem 0;gap:.5rem}.student-profile-row>span{font-size:.63rem}.student-profile-row>strong{font-size:.69rem;line-height:1.35}.student-profile-row .status{font-size:.5rem}
.student-attendance-section{padding:0!important;overflow:hidden!important}.student-attendance-accordion{border:0;background:transparent}.student-attendance-accordion>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.72rem;padding:.78rem;cursor:pointer;list-style:none}.student-attendance-accordion>summary::-webkit-details-marker{display:none}.attendance-ring{--attendance:0%;width:3.5rem;height:3.5rem;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--green) var(--attendance),var(--control-ash) 0)}.attendance-ring:before{content:"";grid-area:1/1;width:2.65rem;height:2.65rem;border-radius:50%;background:var(--surface-1)}.attendance-ring span{position:relative;grid-area:1/1;font-size:.7rem;font-weight:950}.student-attendance-accordion h3{margin:.1rem 0;font-size:.86rem}.student-attendance-accordion p{margin:0;color:var(--muted);font-size:.62rem}.student-attendance-accordion>summary>strong{color:var(--primary);font-size:.6rem}.student-attendance-accordion[open]>summary>strong i{display:inline-block;transform:rotate(180deg)}.student-attendance-list{display:grid;gap:0;padding:0 .78rem .7rem;border-top:1px solid var(--line)}.student-attendance-row{grid-template-columns:7rem minmax(0,1fr) auto;gap:.55rem;min-height:2.35rem;padding:.48rem 0;border-bottom:1px solid var(--line)}.student-attendance-row time,.student-attendance-row span{font-size:.62rem}.student-attendance-row small{grid-column:2/-1;font-size:.54rem}

.student-family-list{gap:.45rem}.student-family-row{min-height:3.1rem;padding:.56rem}.student-family-row>span{width:2.35rem;height:2.35rem;font-size:.6rem}.student-family-row strong{font-size:.67rem}.student-family-row small{font-size:.56rem}.student-family-row>i{color:var(--primary);font-size:.56rem;font-style:normal;font-weight:900}.student-family-suggestions{display:grid;gap:.35rem;margin-top:.2rem;padding-top:.52rem;border-top:1px dashed var(--line)}.student-family-suggestions>span{font-size:.54rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.student-family-suggestions>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .5rem;border:1px solid color-mix(in srgb,var(--gold) 24%,var(--line));border-radius:.7rem;background:var(--gold-soft)}.student-family-suggestions strong,.student-family-suggestions small{display:block}.student-family-suggestions strong{font-size:.62rem}.student-family-suggestions small{margin-top:.1rem;font-size:.52rem;color:var(--muted)}
.student-portal-card{min-height:3.5rem;padding:.62rem}.student-portal-card>span{width:2.55rem;height:2.55rem;font-size:.59rem}.student-portal-card strong{font-size:.69rem}.student-portal-card small{font-size:.56rem}.student-portal-actions{display:flex;gap:.38rem;flex-wrap:wrap;margin-bottom:.55rem}
.student-assessment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-assessment-card{display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;align-items:center;gap:.5rem;width:100%;padding:.56rem;border:1px solid var(--line);border-radius:.76rem;background:var(--surface-2);color:var(--text);text-align:left}.student-assessment-card:hover{border-color:var(--selection-line);box-shadow:var(--shadow-xs)}.student-assessment-card>span{width:2.15rem;height:2.15rem;display:grid;place-items:center;border-radius:.65rem;background:var(--blue-soft);color:var(--blue);font-weight:950}.student-assessment-card.observation>span{background:var(--secondary-soft);color:var(--secondary)}.student-assessment-card.pending>span{background:var(--gold-soft);color:var(--gold)}.student-assessment-card strong,.student-assessment-card small{display:block}.student-assessment-card strong{font-size:.65rem}.student-assessment-card small{margin-top:.12rem;color:var(--muted);font-size:.54rem}.student-assessment-card>b{font-size:.66rem;color:var(--primary)}
.student-comments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-comment-card{display:grid;grid-template-columns:2.15rem minmax(0,1fr);gap:.52rem;padding:.58rem;border:1px solid var(--line);border-radius:.78rem;background:var(--surface-2)}.student-comment-card>span{width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:.65rem;background:linear-gradient(145deg,var(--secondary),var(--primary));color:#fff;font-size:.55rem;font-weight:950}.student-comment-card p{margin:0;font-size:.62rem;line-height:1.5}.student-comment-card footer{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:.4rem}.student-comment-card footer strong,.student-comment-card footer time{font-size:.52rem}.student-comment-card footer time{color:var(--muted)}
.student-report-list{display:grid;gap:.45rem}.student-report-card{padding:.62rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface-2)}.student-report-card header,.student-report-card footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.student-report-card header span,.student-report-card header strong{display:block}.student-report-card header span{color:var(--primary);font-size:.52rem;font-weight:900}.student-report-card header strong{margin-top:.12rem;font-size:.68rem}.student-report-card p{margin:.48rem 0;color:var(--muted);font-size:.62rem;line-height:1.5}.student-report-card footer span,.student-report-card footer button{font-size:.54rem}.student-report-card footer button{border:0;background:transparent;color:var(--primary);font-weight:900}
.student-pending-receipts{display:grid;gap:.35rem;margin:.55rem 0;padding:.55rem;border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));border-radius:.78rem;background:color-mix(in srgb,var(--gold-soft) 70%,var(--surface-1))}.student-pending-receipts>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.student-pending-receipts>header strong{font-size:.63rem}.student-pending-receipts>header small{font-size:.52rem;color:var(--muted)}.student-pending-receipts>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.38rem 0;border-top:1px solid color-mix(in srgb,var(--gold) 16%,transparent)}.student-pending-receipts span strong,.student-pending-receipts span small{display:block}.student-pending-receipts span strong{font-size:.63rem}.student-pending-receipts span small{font-size:.5rem;color:var(--muted)}
.student-intake-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-intake-compact{grid-template-columns:auto 1fr auto;min-height:3.1rem;padding:.58rem}.student-intake-compact strong{font-size:.66rem}.student-intake-compact small{font-size:.54rem}.student-intake-compact>i{font-size:.54rem;color:var(--primary);font-style:normal;font-weight:900}

.student-system-vault{margin:.05rem 0 .25rem;border:1px dashed var(--line);border-radius:.82rem;background:color-mix(in srgb,var(--surface-2) 76%,transparent);overflow:hidden}.student-system-vault>summary{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.58rem .7rem;cursor:pointer;list-style:none}.student-system-vault>summary::-webkit-details-marker{display:none}.student-system-vault>summary>span{width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:.55rem;background:var(--control-ash);color:var(--muted)}.student-system-vault>summary strong,.student-system-vault>summary small{display:block}.student-system-vault>summary strong{font-size:.6rem}.student-system-vault>summary small{margin-top:.1rem;color:var(--muted);font-size:.5rem}.student-system-vault>summary>i{color:var(--muted);font-size:.5rem;font-style:normal}.student-system-vault-body{display:grid;gap:.6rem;padding:.65rem;border-top:1px dashed var(--line)}
.student-profile-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%}.student-profile-footer>div{display:flex;align-items:center;justify-content:flex-end;gap:.42rem;flex-wrap:wrap}.student-profile-footer .btn{min-height:2.35rem;border-radius:.68rem}.student-profile-footer .btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text)}

.student-profile-detail{display:grid;gap:.75rem}.student-profile-detail>header{display:flex;align-items:center;gap:.7rem;padding:.7rem;border-radius:.9rem;background:linear-gradient(135deg,var(--brand-soft),var(--secondary-soft))}.student-profile-detail>header>span{min-width:3rem;height:3rem;display:grid;place-items:center;padding:0 .5rem;border-radius:.8rem;background:var(--selection);color:var(--selection-on);font-size:.72rem;font-weight:950}.student-profile-detail>header small,.student-profile-detail>header h2,.student-profile-detail>header p{display:block;margin:0}.student-profile-detail>header small{font-size:.54rem;color:var(--primary);font-weight:950;text-transform:uppercase;letter-spacing:.08em}.student-profile-detail>header h2{margin-top:.1rem;font-size:1.05rem}.student-profile-detail>header p{margin-top:.14rem;color:var(--muted);font-size:.62rem}.student-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.student-profile-detail>section{padding:.7rem;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2)}.student-profile-detail>section h3{margin:0 0 .5rem;font-size:.78rem}.student-detail-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.student-detail-people article{display:flex;align-items:center;gap:.48rem;padding:.5rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-1)}.student-detail-people article>span{width:2rem;height:2rem;display:grid;place-items:center;border-radius:.58rem;background:var(--brand-soft);color:var(--primary);font-size:.53rem;font-weight:950}.student-detail-people strong,.student-detail-people small{display:block}.student-detail-people strong{font-size:.64rem}.student-detail-people small{margin-top:.1rem;color:var(--muted);font-size:.53rem}.student-detail-list{display:grid;gap:.3rem;margin-top:.48rem}.student-detail-list>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.42rem .48rem;border-radius:.62rem;background:var(--surface-1)}.student-detail-list strong,.student-detail-list span{font-size:.58rem}.student-profile-record-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:0}.student-profile-record-fields>div{padding:.5rem;border:1px solid var(--line);border-radius:.68rem;background:var(--surface-2)}.student-profile-record-fields dt{font-size:.52rem;color:var(--muted)}.student-profile-record-fields dd{margin:.18rem 0 0;font-size:.63rem;white-space:pre-wrap;overflow-wrap:anywhere}.student-profile-action-intro,.student-receipt-review{display:flex;align-items:center;gap:.62rem;margin-bottom:.7rem;padding:.65rem;border-radius:.8rem;background:linear-gradient(135deg,var(--brand-soft),var(--secondary-soft))}.student-profile-action-intro>span,.student-receipt-review>span{width:2.65rem;height:2.65rem;display:grid;place-items:center;border-radius:.75rem;background:var(--selection);color:var(--selection-on);font-size:1rem}.student-profile-action-intro strong,.student-profile-action-intro p,.student-receipt-review strong,.student-receipt-review p{display:block;margin:0}.student-profile-action-intro strong,.student-receipt-review strong{font-size:.75rem}.student-profile-action-intro p,.student-receipt-review p{margin-top:.14rem;color:var(--muted);font-size:.58rem}

@media(max-width:1180px){
  .student-profile-identity{grid-template-columns:5rem minmax(15rem,1fr) minmax(10rem,.55fr)}
  .student-profile-score{grid-column:2/-1;padding:.55rem 0 0;border-left:0;border-top:1px solid var(--line)}
  .student-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  body .modal-backdrop:has(.student-profile-modal),body .modal-backdrop:has(.student-profile-submodal){left:0}
  .student-profile-identity{grid-template-columns:4.7rem minmax(0,1fr)}
  .student-profile-next,.student-profile-score{grid-column:1/-1;padding:.58rem 0 0;border-left:0;border-top:1px solid var(--line)}
  .student-profile-metrics,.student-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .student-profile-grid>.span-2{grid-column:span 2}
  .student-assignment-grid,.student-assessment-grid,.student-comments-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  body .modal-backdrop:has(.student-profile-modal),body .modal-backdrop:has(.student-profile-submodal){left:0}
  .modal.student-profile-modal,.modal.student-profile-submodal{width:calc(100% - .5rem);max-height:calc(100dvh - .5rem);border-radius:.9rem}
  .student-profile-v2{padding:.48rem;gap:.55rem}
  .student-profile-modal .modal-head{min-height:2.8rem;padding:.62rem .72rem}.student-profile-modal .modal-head h2{font-size:.86rem}
  .student-profile-identity{grid-template-columns:4.2rem minmax(0,1fr);gap:.65rem;padding:.68rem}.student-profile-sid-tile{width:4.1rem;height:4.1rem;border-radius:1rem}.student-profile-sid-tile strong{font-size:.83rem}.student-name-line h2{font-size:1.05rem}.student-name-line>span{font-size:.58rem}.student-profile-name>p{font-size:.64rem}
  .student-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.student-profile-metric{padding:.55rem;min-height:3.7rem}
  .student-profile-grid{grid-template-columns:1fr}.student-profile-grid>.span-2{grid-column:auto}.student-profile-grid>.profile-section{padding:.65rem}
  .student-assignment-popover{position:fixed;left:.5rem;right:.5rem;bottom:.65rem;width:auto;transform:translateY(.4rem) scale(.98)}.student-assignment-card:hover .student-assignment-popover,.student-assignment-card:focus-within .student-assignment-popover{transform:translateY(0) scale(1)}.student-assignment-popover:after{display:none}
  .student-intake-grid,.student-finance-summary{grid-template-columns:1fr}
  .student-profile-footer{align-items:stretch;flex-direction:column}.student-profile-footer>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.student-profile-footer>.btn{width:100%}.student-profile-footer .btn{white-space:nowrap}
  .student-detail-grid,.student-detail-people,.student-profile-record-fields{grid-template-columns:1fr}
}
@media(max-width:480px){
  .student-profile-metrics{grid-template-columns:1fr}.student-profile-metric{grid-template-columns:2rem 1fr}.student-attendance-accordion>summary{grid-template-columns:auto 1fr}.student-attendance-accordion>summary>strong{grid-column:1/-1}.student-attendance-row{grid-template-columns:1fr auto}.student-attendance-row time{grid-column:1/-1}.student-profile-footer>div{grid-template-columns:1fr}.student-system-vault>summary{grid-template-columns:1.8rem 1fr}.student-system-vault>summary>i{display:none}
}
@media(prefers-reduced-motion:reduce){.student-assignment-main,.student-assignment-popover{transition:none!important}}

/* v1.7.9 mobile action dock: keep profile space for student data. */
@media(max-width:480px){
  .student-profile-modal .modal-foot{padding:.48rem .52rem}
  .student-profile-footer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.42rem;overflow:hidden}
  .student-profile-footer>.btn{width:auto;min-height:2.25rem;padding:.5rem .68rem}
  .student-profile-footer>div{display:flex;align-items:center;justify-content:flex-start;gap:.36rem;width:100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:.05rem 0 .15rem}
  .student-profile-footer>div .btn{flex:0 0 auto;min-height:2.25rem;padding:.5rem .72rem;white-space:nowrap}
}
