/* Same authenticated shell as OxenTest src/family-navigation.scss and OxenDers workspace-navigation. */
.family-workspace {
  display: block;
  min-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 28px clamp(12px, 1.5vw, 32px) 52px;
  background: #202938;
  color: #f7f8fb;
}

.family-workspace__header,
.family-workspace__nav {
  max-width: 1920px;
  margin-inline: auto;
  border: 1px solid #ffffff25;
  border-radius: 24px;
  background: linear-gradient(130deg, #3a485c, #344054);
  box-shadow: inset 0 1px 0 #ffffff12;
}

.family-workspace__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 138px;
  padding: 22px 30px;
}

.family-workspace__identity { display: flex; align-items: center; min-width: 0; gap: 18px; }
.family-workspace__avatar { display: grid; place-items: center; flex: none; width: 76px; height: 76px; border: 1px solid #ffffff24; border-radius: 20px; background: linear-gradient(145deg, #a9d6ff38, #a9d6ff12); color: #e4f4ff; font-size: 25px; font-weight: 800; text-transform: uppercase; }
.family-workspace__person { display: grid; min-width: 0; gap: 3px; }
.family-workspace__person > span { color: #ffad77; font-size: 12px; font-weight: 800; letter-spacing: .17em; }
.family-workspace__person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 800 clamp(24px, 2.25vw, 37px) Manrope, sans-serif; letter-spacing: -.04em; }
.family-workspace__person small { color: #c2cbd7; font-size: 16px; }
.family-workspace__actions { display: flex; gap: 10px; flex: none; }
.family-workspace__actions :is(a, button) { display: grid; place-items: center; width: 66px; height: 66px; padding: 0; border: 1px solid #ffffff24; border-radius: 17px; background: #ffffff0b; color: #f8f3ef; }
.family-workspace__actions :is(a, button):hover { border-color: #ffad7780; background: #ffad7721; }
.family-workspace__actions svg { font-size: 25px; }

.family-workspace__nav { display: flex; gap: 12px; margin-top: 28px; padding: 14px; overflow-x: auto; scrollbar-width: thin; }
.family-workspace__nav :is(a, button) { position: relative; display: flex; flex: 1 0 0; flex-direction: column; align-items: center; justify-content: center; gap: 9px; min-width: 142px; min-height: 98px; padding: 10px; border: 1px solid #ffffff2a; border-radius: 16px; background: linear-gradient(180deg, #ffffff09, #0e1b2a12); color: #f0f2f6; font-size: 14px; font-weight: 750; text-align: center; }
.family-workspace__nav :is(a, button):hover, .family-workspace__nav .active { border-color: #ffad778e; background: linear-gradient(180deg, #ffad7729, #ffad770d); color: #ffe1ca; }
.family-workspace__nav svg { color: #ffad77; font-size: 23px; }
.family-workspace__nav small { position: absolute; top: 9px; right: 10px; min-width: 20px; padding: 2px 5px; border-radius: 6px; background: #ffad7736; font-size: 10px; }
.family-workspace__links { display: flex; justify-content: flex-end; gap: 18px; max-width: 1920px; margin: 10px auto 0; color: #aebed0; font-size: 12px; font-weight: 700; }
.family-workspace__links a:hover { color: #ffbf94; }
.family-workspace .page-host { min-height: 0; background: transparent; }
.family-workspace .page-container { max-width: 1920px; padding: 30px 0 60px; }
.family-workspace .page-heading h1 { font-size: clamp(32px, 3vw, 46px); }

.family-workspace :is(a, button):focus-visible { outline: 2px solid #ffbf94; outline-offset: 3px; }

@media (max-width: 950px) {
  .family-workspace__header { min-height: 105px; padding: 18px; }
  .family-workspace__avatar { width: 58px; height: 58px; font-size: 20px; }
  .family-workspace__actions :is(a, button) { width: 48px; height: 48px; }
  .family-workspace__nav { margin-top: 16px; }
}

@media (max-width: 600px) {
  .family-workspace { padding: 12px 12px 36px; }
  .family-workspace__header { gap: 10px; border-radius: 18px; padding: 12px; }
  .family-workspace__identity { gap: 9px; }
  .family-workspace__avatar { width: 43px; height: 43px; border-radius: 13px; font-size: 15px; }
  .family-workspace__person > span { font-size: 9px; }
  .family-workspace__person strong { font-size: 17px; }
  .family-workspace__person small { display: none; }
  .family-workspace__actions { gap: 5px; }
  .family-workspace__actions :is(a, button) { width: 37px; height: 37px; border-radius: 11px; }
  .family-workspace__actions svg { font-size: 19px; }
  .family-workspace__nav { gap: 8px; padding: 9px; border-radius: 18px; }
  .family-workspace__nav :is(a, button) { flex-basis: 120px; min-width: 120px; min-height: 77px; font-size: 12px; }
  .family-workspace__nav svg { font-size: 19px; }
  .family-workspace .page-container { padding-top: 22px; }
}

/* OxenEdu dark surfaces, typography and controls: OxenDers global.scss / OxenTest family.scss. */
:root{font-family:'DM Sans',sans-serif;color:#f7f8fb;background:#202938;font-synthesis:none;--ink:#f7f8fb;--muted:#b8c5d5;--line:#ffffff25;--orange:#ffab73;--surface:#354154}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#202938}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.04em}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #ffbf94;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:10001;top:-80px;left:16px;padding:12px 18px;background:#354154;color:#fff;border:1px solid #596779;border-radius:10px}.skip-link:focus{top:12px}.initial-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:18px;color:#b8c5d5}.initial-loading p{margin:0}
.workspace{color-scheme:dark}.family-workspace__actions svg{width:25px;height:25px}.family-workspace__nav svg{width:23px;height:23px;color:#ffad77}.family-workspace__nav .active{border-color:#ffad778e;background:linear-gradient(180deg,#ffad7729,#ffad770d);color:#ffe1ca}.family-workspace .main-content{max-width:1920px;margin:auto;padding:30px 0 40px;outline:none}.workspace-footer{max-width:1920px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:#aebbc9;padding:8px 4px 0}.workspace-footer .text-button{font-size:12px}.demo-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:1920px;margin:18px auto 0;padding:13px 18px;border:1px solid #ffad7740;border-radius:12px;background:#ffad7710;color:#d9c5b6;font-size:12px;line-height:1.65}.demo-banner button{border:0;background:none;color:#ffd0af;font-size:12px;white-space:nowrap}
.page-heading,.panel,.metric-card,.progress-panel,.roadmap-callout,.roadmap-stage{border:1px solid #ffffff25;border-radius:20px;background:linear-gradient(145deg,#ffffff0b,#ffffff03),#323f52eb;box-shadow:inset 0 1px 0 #ffffff0e,0 14px 32px #101a2a22}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 30px;margin-bottom:24px;min-height:132px}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:800;color:#ffad77;text-transform:uppercase;margin-bottom:10px}.page-heading h1{font-size:clamp(32px,3vw,46px);line-height:1.2;font-weight:800;margin:7px 0 10px;color:#f7f8fb}.page-heading p:last-child{color:#bec8d6;font-size:14px;line-height:1.7;margin-bottom:0}.hello-dot{color:#ffad77}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:10px 16px;font-size:13px;font-weight:800;border:1px solid transparent;border-radius:11px;white-space:nowrap}.button svg{width:18px;height:18px}.primary{color:#291b14;background:#ffab73;border-color:#ffab73;box-shadow:0 8px 20px #ffab731a}.primary:hover{background:#ffc08f}.secondary{background:#273548;border-color:#63758b;color:#f3f6fb}.secondary:hover{background:#40516a}.text-button{border:0;padding:5px 0;background:none;display:inline-flex;align-items:center;color:#ffd0af;font-size:12px;font-weight:700;gap:8px;cursor:pointer}.text-button:hover{text-decoration:underline}.text-button svg{width:16px;height:16px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:'title icon' 'value icon' 'hint hint';align-items:center;text-align:left;padding:24px;min-width:0;color:#f7f8fb;transition:transform .15s,border-color .15s}.metric-card:hover{transform:translateY(-2px);border-color:#ffad7770}.metric-icon{grid-area:icon;display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#a9d6ff20;color:#cce9ff;border:1px solid #a9d6ff25}.metric-icon svg{width:24px;height:24px}.metric-icon.target{background:#ffad771c;color:#ffba8e;border-color:#ffad7730}.metric-icon.calendar{background:#d9c1ff20;color:#dfceff;border-color:#d9c1ff25}.metric-icon.clock{background:#f3a39b20;color:#ffc9c1;border-color:#f3a39b25}.metric-title{grid-area:title;font-size:13px;font-weight:700;color:#c7d2e0}.metric-card>strong{grid-area:value;font:800 32px Manrope,sans-serif;margin:9px 0;letter-spacing:-.04em}.metric-card>small{grid-area:hint;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #ffffff1c;padding-top:14px;margin-top:7px;font-size:12px;color:#b8c5d5;line-height:1.6}.metric-card>small span{color:#ffad77}.dashboard-grid,.dashboard-bottom{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:24px}.dashboard-bottom{margin-top:24px}.panel{padding:26px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-heading h2{font-size:22px;line-height:1.3;margin:0;font-weight:750;color:#f7f8fb}.panel-heading .eyebrow{font-size:10px}.priority-intro{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #ffad7735;background:#ffad770d;border-radius:12px;margin-bottom:14px}.priority-icon{color:#ffad77;display:flex}.priority-intro p{margin:0}.priority-intro strong{display:block;font-size:13px;font-weight:700;color:#ffe2ca}.priority-intro small{display:block;font-size:12px;color:#cbbeb6;line-height:1.7;margin-top:5px}.student-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) minmax(135px,.7fr) 85px;align-items:center;gap:18px;min-height:90px;border-bottom:1px solid #ffffff20;padding:17px 5px}.student-row:last-child{border-bottom:0}.student-person{display:flex;align-items:center;gap:13px;min-width:0}.student-person strong{display:block;font-size:14px;font-weight:750;color:#f7f8fb}.student-person small{display:block;color:#b8c5d5;font-size:12px;margin-top:5px;line-height:1.5}.student-avatar{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border:1px solid #ffffff24;border-radius:12px;color:#c4deff;background:#8fbbff22;font-size:13px;font-weight:800}.tone-1{background:#ffad7722;color:#ffd7b7;border-color:#ffad7730}.tone-2{background:#82d6b622;color:#bef5db;border-color:#82d6b630}.tone-3{background:#d0b1ff22;color:#e6d2ff;border-color:#d0b1ff30}.student-goal{min-width:0}.student-goal strong{display:block;font-size:13px;line-height:1.5;overflow-wrap:anywhere;color:#f0f4fa}.student-goal small{display:block;font-size:12px;line-height:1.6;color:#aebdcf;margin-top:5px;overflow-wrap:anywhere}.muted{color:#b8c5d5;font-size:12px}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:750;line-height:1.4;border-radius:7px;padding:5px 8px;white-space:nowrap}.orange{background:#ffad7726;color:#ffd0ab}.green{background:#6ac79e26;color:#a3e7c3}.red{background:#f39a9226;color:#ffd0c8}.purple{background:#bea1f526;color:#dfceff}.neutral{background:#ffffff14;color:#c4d0df}.row-open{display:flex;align-items:center;justify-content:flex-end;gap:8px;border:0;background:none;color:#ffd0af;font-size:12px;font-weight:750;padding:7px 0;min-height:38px}.row-open:hover{color:#fff}.row-open svg{width:16px;height:16px}.compact{grid-template-columns:minmax(155px,1fr) auto auto;gap:15px;padding:16px 0}.compact .student-goal{display:none}.compact .student-person strong{font-size:13px}.compact .student-person small{font-size:11px}.compact .badge{font-size:10px}.compact .row-open{font-size:11px}.round-icon{display:grid;place-items:center;width:39px;height:39px;border:1px solid #ffffff20;border-radius:11px;background:#ffad7714;color:#ffba8e;flex-shrink:0}.round-icon svg{width:20px;height:20px}.followup-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 0;border:0;border-bottom:1px solid #ffffff20;background:none;color:#f7f8fb}.followup-row:hover{background:#ffffff06}.date-tile{display:grid;place-content:center;text-align:center;gap:3px;flex-shrink:0;width:43px;height:49px;border:1px solid #a9d6ff30;border-radius:10px;background:#a9d6ff16;color:#c9e7ff}.date-tile strong{font-size:18px;font-weight:800}.date-tile small{font-size:10px}.date-tile.late{background:#ffad771c;border-color:#ffad7730;color:#ffd0af}.followup-row>span:nth-child(2){flex:1;min-width:0}.followup-row>span:nth-child(2)>strong{display:block;font-size:13px;font-weight:750}.followup-row>span:nth-child(2)>small{display:block;font-size:11px;color:#b8c5d5;line-height:1.6;margin-top:5px}.followup-row>svg{width:16px;color:#ffad77}.panel-footnote{display:flex;gap:9px;font-size:11px;line-height:1.8;color:#aebdcf;margin:18px 0 0}.panel-footnote svg{width:14px;height:14px;margin-top:3px}.small-empty{padding:30px 0;font-size:13px;line-height:1.8;color:#b8c5d5}.progress-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 28px}.progress-panel .eyebrow{font-size:10px}.progress-panel h2{font-size:22px;line-height:1.4;font-weight:750;color:#f7f8fb;margin-bottom:10px}.progress-panel p{font-size:13px;color:#b8c5d5;margin:0;line-height:1.7}.goal-progress{min-width:155px;display:grid;gap:9px}.goal-progress strong{font:800 28px Manrope,sans-serif;text-align:right;color:#ffba8e}.goal-progress small{text-align:right;font-size:11px;line-height:1.5;color:#b8c5d5}progress{appearance:none;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;background:#ffffff1c}progress::-webkit-progress-bar{background:#ffffff1c}progress::-webkit-progress-value{background:#ffad77;border-radius:6px}progress::-moz-progress-bar{background:#ffad77}.roadmap-callout{display:flex;align-items:center;gap:14px;padding:25px;text-align:left;color:#f7f8fb}.roadmap-callout>span:nth-child(2){flex:1}.roadmap-callout strong{display:block;font-size:14px;font-weight:750}.roadmap-callout small{display:block;font-size:12px;line-height:1.7;color:#b8c5d5;margin-top:7px}.roadmap-callout>svg{width:18px;color:#ffad77}
.roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.search-field{display:flex;align-items:center;gap:10px;width:min(440px,100%);padding:0 13px;border:1px solid #617085;border-radius:10px;background:#263246;color:#c6d3e2}.search-field svg{width:18px;height:18px}.search-field input{width:100%;min-width:0;min-height:44px;padding:12px 0;border:0;background:transparent;color:#f7f8fb;font-size:13px;outline:none}.search-field input::placeholder{color:#b2bdcb}.search-field:focus-within{outline:2px solid #ffb785;outline-offset:2px}.filter-field{display:flex;gap:12px;align-items:center;font-size:12px;color:#c5d0df}.filter-field select{min-height:44px;padding:11px 13px;border:1px solid #617085;border-radius:10px;background:#263246;color:#f7f8fb;font-size:13px}.list-summary{display:flex;justify-content:space-between;gap:15px;color:#b8c5d5;font-size:12px;padding-bottom:16px}.list-summary strong{font-weight:750;color:#ffcfad}.table-heading{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) minmax(135px,.7fr) 85px;gap:18px;padding:12px 5px;border-block:1px solid #ffffff25;color:#b8c5d5;font-size:10px;letter-spacing:.1em;font-weight:800}.connection-note{display:flex;align-items:center;gap:11px;padding:20px 5px;color:#b8c5d5}.connection-note svg{width:17px;height:17px}.connection-note p{font-size:12px;line-height:1.8;margin:0}.empty-state{padding:40px 18px;text-align:center}.empty-icon{display:inline-grid;place-items:center;width:55px;height:55px;border:1px solid #ffad7730;background:#ffad7717;border-radius:15px;margin-bottom:18px;color:#ffba8e;font-size:26px}.empty-state h3{font-size:20px;font-weight:800;color:#f7f8fb}.empty-state p{font-size:13px;line-height:1.8;color:#b8c5d5;margin-bottom:20px}.page-loading{text-align:center;padding:90px 20px;color:#f7f8fb}.page-loading h2{font-size:23px;margin:24px 0 10px}.page-loading p{font-size:13px;color:#b8c5d5}.spinner{display:inline-block;width:32px;height:32px;border:2px solid #ffffff26;border-top-color:#ffad77;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state{max-width:720px;margin:35px auto;padding:35px;text-align:center}.error-state h1{font-size:28px}.error-state p{font-size:14px;line-height:1.9;color:#c6d3e2}.error-state>div{display:flex;justify-content:center;gap:12px;margin-top:24px}.auth-error{color:#a95545;font-size:12px;line-height:1.7}.demo-link{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:20px;padding:13px 0 3px;border-top:1px solid #e4e5de;font-size:11px;color:#9f785b}.demo-link svg{width:15px;height:15px}.demo-link svg:last-child{margin-left:auto}.ox-auth .text-button{color:#a36341}
.back-link{border:1px solid #ffffff25;border-radius:10px;background:#273548;padding:10px 14px;margin-bottom:22px;color:#dce5f0;font-size:12px;font-weight:750}.back-link:hover{border-color:#ffad7770}.profile-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px;padding:26px 30px;border:1px solid #ffffff25;border-radius:20px;background:linear-gradient(130deg,#3a485c,#344054)}.profile-heading .student-person{gap:18px}.profile-heading h1{font-size:clamp(28px,3vw,40px);font-weight:800;margin:0 0 9px}.profile-heading .student-person p:last-child{font-size:13px;color:#c2cbd7;line-height:1.7;margin:0}.profile-heading .eyebrow{font-size:10px;margin-bottom:8px}.student-avatar.large{width:66px;height:66px;border-radius:18px;font-size:21px}.profile-tabs{display:flex;align-items:center;gap:25px;border-bottom:1px solid #ffffff25;margin-bottom:24px}.profile-tabs>span,.profile-tabs>button{display:inline-flex;align-items:center;gap:9px;border:0;border-bottom:2px solid transparent;background:none;color:#b8c5d5;font-size:13px;font-weight:700;padding:0 0 15px}.profile-tabs .selected{border-bottom-color:#ffad77;color:#ffd0af}.profile-tabs svg{width:18px;height:18px}.profile-tabs .badge{font-size:10px}.profile-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.85fr);gap:24px;align-items:start}.profile-form{display:grid;gap:24px;min-width:0}.profile-aside{display:grid;gap:24px}.section-title{display:flex;align-items:center;gap:14px;margin-bottom:24px}.section-number{display:grid;place-items:center;flex-shrink:0;width:37px;height:37px;border:1px solid #ffad7730;background:#ffad771c;border-radius:10px;font-size:12px;color:#ffcfad;font-weight:800}.section-title h2{font-size:21px;font-weight:750;margin-bottom:8px}.section-title p{font-size:12px;color:#bec8d6;line-height:1.7;margin-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.form-grid .wide{grid-column:1/-1}.form-grid label{display:grid;gap:8px;min-width:0;font-size:12px;font-weight:750;color:#d8e2ed}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;min-height:46px;padding:12px 13px;border:1px solid #617085;border-radius:10px;background:#263246;color:#f7f8fb;font-size:14px;line-height:1.5}.form-grid textarea{resize:vertical}.form-grid input::placeholder,.form-grid textarea::placeholder{font-size:13px;font-weight:400;color:#adbbce}.net-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:25px}.net-columns fieldset{min-width:0;margin:0;border:1px solid #ffffff25;padding:18px 14px;border-radius:12px}.net-columns legend{padding:0 8px;color:#ffd0af;font-size:13px;font-weight:800}.net-columns legend small{color:#b8c5d5;font-size:11px;font-weight:500;margin-left:6px}.net-columns .form-grid{gap:12px}.net-columns label{font-size:11px}.number-input{position:relative}.number-input input{padding:10px 32px 10px 11px;-moz-appearance:textfield}.number-input input::-webkit-inner-spin-button,.number-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input input::placeholder{font-size:11px}.number-input small{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:10px;color:#adbbce;font-weight:400}.field-hint{font-size:12px;line-height:1.8;color:#b8c5d5;margin:17px 0 0}.availability-list{display:grid;gap:7px}.availability-day{border-bottom:1px solid #ffffff1c;padding-bottom:7px}.availability-day:last-child{border:0}.availability-row{display:grid;grid-template-columns:minmax(110px,1fr) 110px 12px 110px;align-items:center;gap:12px;padding:9px 0}.day-check{display:flex;align-items:center;gap:9px;font-size:13px;color:#d8e2ed}.day-check input{width:17px;height:17px;accent-color:#ffad77}.time-label input{width:100%;min-width:0;min-height:40px;padding:8px;border:1px solid #617085;border-radius:8px;background:#263246;color:#f7f8fb;font-size:13px}.time-label input:disabled{background:#283548;color:#8391a3;border-color:#ffffff1c}.time-dash{text-align:center;color:#aebdcf}.add-slot{border:0;background:none;padding:3px 0 7px;font-size:11px;color:#ffcfad;margin-left:calc(100% - 242px)}.add-slot:hover{color:#fff}.extra-slot{display:grid;grid-template-columns:minmax(70px,1fr) 99px 9px 99px 23px;align-items:center;gap:9px;padding:5px 0}.extra-slot>span:first-child{font-size:11px;color:#adbbce}.remove-slot{border:1px solid #ffffff25;border-radius:6px;width:23px;height:25px;padding:0;background:#ffffff08;color:#ffd0af;font-size:18px}.availability-total{display:flex;align-items:center;gap:9px;font-size:12px;color:#c6d3e2;border:1px solid #ffffff20;border-radius:10px;padding:14px;margin-top:17px;background:#273548}.availability-total svg{width:17px;height:17px;color:#ffad77}.availability-total strong{margin-left:auto;font-size:14px;color:#ffd0af}.field-error{font-size:12px;line-height:1.8;color:#ffc1b7;margin:14px 0 0}.followup-help{display:flex;align-items:center;gap:9px;font-size:12px;color:#b8c5d5;line-height:1.7;padding-top:18px}.followup-help svg{width:17px;height:17px;color:#ffad77}.private-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:#aebdcf}.private-label svg{width:13px;height:13px}.save-bar{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #ffffff35;border-radius:15px;background:#2b3749f2;padding:16px;backdrop-filter:blur(8px);box-shadow:0 8px 30px #07101b50}.save-bar>span{font-size:12px;color:#b8c5d5;line-height:1.7}.save-bar>div{display:flex;gap:10px}.save-bar .button{font-size:12px}.goal-summary{background:linear-gradient(135deg,#3c4a60,#29364a);border-color:#6b7c92}.goal-summary h2{font:800 26px/1.35 Manrope,sans-serif;margin-bottom:12px;color:#f7f8fb}.goal-summary>p{font-size:13px;line-height:1.7;color:#c6d3e2;margin-bottom:24px}.goal-summary .eyebrow{font-size:10px}.net-summary{padding:18px 0 14px;border-top:1px solid #ffffff25}.net-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.net-summary strong{font-size:13px;font-weight:750;color:#dce5f0}.net-summary>div>span{font:700 23px Manrope,sans-serif;color:#d6e1ee}.net-summary i{font-size:16px;font-style:normal;color:#9fafc5;padding:0 8px}.net-summary b{color:#ffba8e;font-weight:800}.net-summary small{display:block;margin-top:8px;text-align:right;font-size:11px;color:#b8c5d5}.summary-note{display:block;margin-top:14px;font-size:11px;color:#adbbce;line-height:1.7}.student-access h3{font-size:18px;margin:17px 0 12px;font-weight:750}.student-access p{font-size:13px;line-height:1.9;color:#b8c5d5}.student-access>small{display:flex;gap:7px;font-size:11px;line-height:1.9;color:#adbbce;margin-top:18px}.student-access>small svg{width:13px;height:13px;margin-top:3px}.student-access .text-button{display:block;margin-top:14px}.signal-card{padding:8px 4px}.signal-card .eyebrow{font-size:10px;line-height:1.7}.signal-card>div{display:flex;align-items:center;gap:12px;margin-top:19px}.signal-card svg{width:19px;height:19px;color:#ffad77}.signal-card strong{display:block;font-size:12px;font-weight:750;color:#dce5f0}.signal-card small{display:block;font-size:11px;color:#adbbce;margin-top:5px}.signal-card>p{font-size:11px;line-height:1.9;color:#adbbce;margin:23px 0 0}
.roadmap-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr);gap:24px}.roadmap-list{display:grid;gap:20px}.roadmap-stage{display:flex;align-items:start;gap:20px;padding:28px}.roadmap-stage.current{border-color:#ffad7760}.stage-number{display:grid;place-items:center;flex-shrink:0;width:39px;height:39px;border:1px solid #ffffff25;border-radius:11px;background:#ffffff08;color:#d5dfec;font-size:14px;font-weight:750}.current .stage-number{background:#ffad771c;border-color:#ffad7740;color:#ffd0af}.roadmap-stage h2{font-size:22px;font-weight:750;line-height:1.5;color:#f7f8fb;margin:15px 0 12px}.roadmap-stage p{font-size:13px;line-height:1.95;color:#bec8d6;margin-bottom:0}.roadmap-stage .text-button{margin-top:14px}.stage-icon{color:#ffad77;margin-left:auto;flex-shrink:0}.roadmap-aside .panel h2{font-size:25px;line-height:1.4;font-weight:800;color:#f7f8fb;margin:0 0 25px}.roadmap-aside .eyebrow{font-size:10px;line-height:1.8}.integration-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #ffffff20;padding:19px 0}.integration-row:last-child{border:0;padding-bottom:0}.integration-logo{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border:1px solid #ffad7725;border-radius:9px;background:#ffad771c;color:#ffcfad;font-size:13px;font-weight:800}.integration-row>div{flex:1}.integration-row strong{display:block;font-size:13px;font-weight:750;color:#f7f8fb}.integration-row small{display:block;font-size:11px;line-height:1.6;margin-top:6px;color:#b8c5d5}.integration-row .badge{font-size:10px}.pilot-note{margin-top:24px;padding:26px;border:1px dashed #ffffff35;border-radius:18px;color:#b8c5d5}.pilot-note>svg{color:#ffad77;margin-bottom:10px}.pilot-note h3{font-size:18px;color:#f7f8fb}.pilot-note p{font-size:13px;line-height:1.9}.pilot-note p:last-child{margin-bottom:0}
/* Common toast behavior mirrors ngx-toastr and OxenFinans. */
.toast-root{position:fixed;z-index:10000;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:grid;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}.oxen-toast{--toast-accent:#9cbbff;position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 24px;gap:13px;overflow:hidden;min-height:76px;padding:17px 12px 20px 17px;border:1px solid #ffffff25;border-left:3px solid var(--toast-accent);border-radius:15px;background:#2b3749;color:#f7f8fb;box-shadow:0 12px 40px #050b164d;font:13px/1.55 'DM Sans',sans-serif;pointer-events:auto}.oxen-toast--success{--toast-accent:#69d9a5}.oxen-toast--warning{--toast-accent:#efc275}.oxen-toast--error{--toast-accent:#ff9696}.oxen-toast__symbol{display:grid;place-items:center;width:22px;height:22px;border:2px solid var(--toast-accent);border-radius:50%;color:var(--toast-accent);font-size:13px;font-weight:800;line-height:1}.oxen-toast__close{width:24px;height:24px;min-height:24px;padding:0;border:0;background:transparent;color:#d6deea;font-size:23px;line-height:1}.oxen-toast__copy{overflow-wrap:anywhere}.oxen-toast__progress{position:absolute;left:0;bottom:0;height:3px;background:var(--toast-accent);animation:toast-count 5.5s linear forwards}@keyframes toast-count{from{width:100%}to{width:0}}dialog{max-width:500px;width:calc(100% - 32px);padding:28px;border:1px solid #ffffff35;border-radius:20px;color:#f7f8fb;background:linear-gradient(145deg,#3c4a60,#2d3b50);box-shadow:0 24px 80px #0008}dialog::backdrop{background:#07111dd9;backdrop-filter:blur(7px)}dialog h2{font-size:23px;line-height:1.4;font-weight:800}dialog p{font-size:13px;line-height:1.9;color:#b8c5d5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}
.family-quick-menu{position:fixed;inset:auto 0 0;max-width:none;margin:0 auto;width:min(920px,calc(100vw - 24px));max-height:calc(100dvh - 16px);overflow:auto;padding:20px 20px calc(20px + env(safe-area-inset-bottom));border:1px solid #ffffff35;border-radius:24px 24px 0 0;background:linear-gradient(145deg,#354154,#202d40);color:#f7f8fb;box-shadow:0 -20px 90px #060d18b8}.family-quick-menu header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.family-quick-menu header span{color:#ffad77;font-size:12px;font-weight:800;letter-spacing:.17em}.family-quick-menu h2{margin:8px 0 5px;color:#fff;font-size:27px}.family-quick-menu p{margin:0;color:#b9c5d3;font-size:13px}.family-quick-menu header button{flex:none;width:46px;height:46px;border:1px solid #ffffff28;border-radius:13px;background:#ffffff0d;color:#e4eaf1;font-size:28px}.family-quick-menu__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.family-quick-menu__grid :is(a,button){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:142px;padding:14px 10px;border:1px solid #ffffff20;border-radius:18px;background:#18273bbb;color:#f7f8fb;text-align:center}.family-quick-menu__grid :is(a,button):hover{border-color:#ffad7780;background:#ffad7715}.family-quick-menu__grid i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#ffab7323;color:#ffb480;font-style:normal}.family-quick-menu__grid strong{font-size:14px}.family-quick-menu__grid small{color:#b1bece;font-size:11px;line-height:1.35}.family-quick-menu__dismiss{width:100%;min-height:48px;margin-top:14px;border:0;border-radius:13px;background:linear-gradient(180deg,#ff9b5d,#ff730e);color:#192337;font-weight:800}
@media(max-width:1100px){.dashboard-grid,.dashboard-bottom{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px}.compact{grid-template-columns:minmax(155px,1fr) auto;gap:10px}.compact>div:nth-child(3){display:none}.panel{padding:22px}.student-row:not(.compact),.table-heading{grid-template-columns:minmax(170px,1.1fr) minmax(160px,1fr) 130px 70px;gap:14px}.profile-layout{grid-template-columns:minmax(0,1.7fr) 270px;gap:20px}.net-columns{grid-template-columns:1fr}.save-bar{flex-direction:column;align-items:stretch}.save-bar>div{justify-content:flex-end}.section-title h2{font-size:19px}.roadmap-layout{grid-template-columns:minmax(0,1.5fr) 295px;gap:20px}.roadmap-stage{padding:24px;gap:15px}.stage-icon{display:none}.metric-card{padding:20px}.metric-icon{width:37px;height:39px}.metric-icon svg{width:21px;height:21px}.roster-toolbar{gap:15px}.filter-field{gap:8px}.filter-field>span{display:none}}
@media(max-width:850px){.dashboard-grid,.dashboard-bottom{grid-template-columns:1fr}.compact{grid-template-columns:minmax(170px,1fr) auto auto;gap:16px}.compact>div:nth-child(3){display:block}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:1fr}.profile-aside{grid-template-columns:1fr 1fr;align-items:start}.profile-aside .signal-card{grid-column:1/-1}.net-columns{grid-template-columns:1fr 1fr}.save-bar{flex-direction:row;align-items:center}.student-goal{display:none}.student-row:not(.compact),.table-heading{grid-template-columns:minmax(180px,1fr) 145px 85px;gap:18px}.table-heading>span:nth-child(2){display:none}.roadmap-layout{grid-template-columns:1fr}.roadmap-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.pilot-note{margin-top:0}.roster-toolbar{align-items:stretch}.search-field{flex:1}.filter-field select{width:180px}.metric-card>small{font-size:11px}.page-heading{padding:25px}.page-heading p:last-child{font-size:13px}.page-heading .button{font-size:12px}.goal-progress{min-width:150px}}
@media(max-width:600px){.family-workspace__actions svg{width:19px;height:19px}.family-workspace__nav svg{width:19px;height:19px}.family-workspace .main-content{padding:22px 0 30px}.page-heading{align-items:start;flex-direction:column;padding:22px 19px;border-radius:18px;gap:17px;margin-bottom:20px}.family-workspace .page-heading h1{font-size:30px;margin-top:5px}.page-heading .eyebrow{font-size:10px;letter-spacing:.12em}.page-heading p:last-child{font-size:13px}.page-heading .button{width:100%;font-size:13px;min-height:43px}.demo-banner{align-items:start;padding:12px 14px;margin-top:14px;font-size:11px;gap:15px;border-radius:12px}.demo-banner button{font-size:11px;max-width:80px;white-space:normal;text-align:right;flex-shrink:0}.panel{padding:19px;border-radius:18px}.metrics{gap:10px;margin-bottom:20px}.metric-card{padding:18px 15px 15px;border-radius:18px}.metric-title{font-size:12px}.metric-card>strong{font-size:29px}.metric-icon{width:31px;height:33px;border-radius:10px}.metric-icon svg{width:18px;height:18px}.metric-card>small{font-size:10px;padding-top:11px}.dashboard-grid,.dashboard-bottom{gap:20px}.panel-heading{gap:12px}.panel-heading h2{font-size:20px}.panel-heading .eyebrow{font-size:9px}.panel-heading .text-button{font-size:11px;white-space:nowrap}.priority-intro{padding:14px 12px;gap:10px}.priority-intro strong{font-size:12px;line-height:1.6}.priority-intro small{font-size:11px}.compact{grid-template-columns:minmax(160px,1fr) auto;gap:8px}.compact>div:nth-child(3){display:none}.compact .student-person strong{font-size:13px}.compact .student-person small{font-size:10px}.compact .row-open{font-size:11px}.student-avatar{width:37px;height:38px;font-size:12px}.compact .student-person{gap:10px}.progress-panel{align-items:start;gap:16px;padding:22px 19px;border-radius:18px}.progress-panel h2{font-size:20px}.progress-panel .eyebrow{font-size:9px;letter-spacing:.1em}.progress-panel p{font-size:12px}.goal-progress{min-width:85px;max-width:100px}.goal-progress strong{font-size:25px}.goal-progress small{font-size:10px}.roadmap-callout{padding:22px 19px;border-radius:18px}.workspace-footer{flex-wrap:wrap;font-size:11px;gap:14px;padding:0 4px}.workspace-footer>span:last-child{display:none}.workspace-footer .text-button{font-size:11px}.roster-toolbar{flex-direction:column;gap:12px;margin-bottom:23px}.search-field{width:100%;min-height:44px}.filter-field select{width:100%}.filter-field{display:block}.filter-field>span{display:none}.list-summary{font-size:11px;gap:10px}.student-row:not(.compact){grid-template-columns:minmax(160px,1fr) 72px;gap:7px;padding:18px 0}.student-row:not(.compact)>div:nth-child(3){grid-column:1;grid-row:auto;padding-left:50px;margin-top:-7px}.student-row:not(.compact) .student-person{grid-column:1;grid-row:auto}.student-row:not(.compact) .row-open{grid-column:2;grid-row:span 2;font-size:12px}.table-heading{display:none}.student-row .badge{font-size:10px}.student-person small{font-size:11px}.connection-note{align-items:start;gap:9px;padding-top:19px}.connection-note svg{margin-top:3px}.connection-note p{font-size:11px}.profile-heading{align-items:start;flex-wrap:wrap;gap:16px;padding:22px 17px;border-radius:18px;margin-bottom:20px}.profile-heading h1{font-size:27px;line-height:1.3}.profile-heading .student-person{gap:12px}.profile-heading .eyebrow{font-size:9px;letter-spacing:.12em}.profile-heading .student-person p:last-child{font-size:11px}.student-avatar.large{width:48px;height:50px;border-radius:13px;font-size:17px}.profile-heading>.badge{margin-left:60px;margin-top:-10px}.profile-tabs{gap:15px;overflow-x:auto;margin-bottom:20px}.profile-tabs>span,.profile-tabs>button{white-space:nowrap;font-size:11px;gap:6px}.profile-tabs .badge{font-size:9px}.profile-tabs svg{width:16px;height:16px}.profile-form{gap:20px}.section-title{gap:11px}.section-title h2{font-size:18px;line-height:1.4}.section-title p{font-size:11px}.section-number{width:32px;height:33px;font-size:11px}.form-grid{grid-template-columns:1fr;gap:17px}.form-grid label{font-size:12px}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px;min-height:46px;padding:11px 12px}.form-grid input::placeholder,.form-grid textarea::placeholder{font-size:12px}.net-columns{grid-template-columns:1fr;gap:20px}.net-columns .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.net-columns .number-input input{padding-right:30px;font-size:16px}.net-columns .number-input input::placeholder{font-size:11px}.net-columns fieldset{padding:17px 12px}.availability-row{grid-template-columns:minmax(90px,1fr) 82px 8px 82px;gap:5px}.time-label input{font-size:12px;padding:7px 4px;min-height:40px}.day-check{font-size:12px;gap:5px}.day-check input{width:16px;height:16px}.extra-slot{grid-template-columns:minmax(45px,1fr) 75px 7px 75px 22px;gap:5px}.extra-slot>span:first-child{font-size:10px}.add-slot{font-size:11px;margin-left:calc(100% - 174px)}.availability-total{padding:13px 10px;font-size:11px;gap:6px}.availability-total strong{font-size:13px}.availability-total svg{width:15px;height:15px}.followup-help{padding-top:0;font-size:11px}.save-bar{flex-direction:column;align-items:stretch;gap:11px;padding:13px;bottom:8px;border-radius:13px}.save-bar>div{justify-content:stretch;gap:8px}.save-bar .button{flex:1;padding:10px 7px;font-size:11px;min-height:42px}.save-bar .button svg{width:16px;height:16px}.save-bar>span{font-size:11px}.profile-aside{grid-template-columns:1fr;gap:20px}.signal-card{display:none}.back-link{font-size:12px}.roadmap-aside{grid-template-columns:1fr;gap:20px}.roadmap-stage{padding:22px 17px;gap:12px;border-radius:18px}.roadmap-stage h2{font-size:20px}.roadmap-stage p{font-size:12px}.stage-number{width:31px;height:33px;border-radius:9px;font-size:12px}.roadmap-aside .panel h2{font-size:25px}.error-state{margin:20px auto;padding:25px 18px}.error-state h1{font-size:24px}.error-state p{font-size:13px}.error-state>div{flex-direction:column}.dialog-actions{flex-direction:column}dialog{padding:24px}.family-quick-menu{width:100vw;padding:15px 15px calc(15px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.family-quick-menu__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.family-quick-menu__grid :is(a,button){min-height:118px}.family-quick-menu h2{font-size:20px}.toast-root{right:16px;top:max(12px,env(safe-area-inset-top))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.spinner{animation-duration:2s}}
