
:root {
  --navy-950:#052f46; --navy-900:#073f5b; --navy-800:#07506f;
  --blue-700:#1167d8; --blue-600:#1b75e8; --blue-100:#e9f3ff;
  --green-700:#158045; --green-100:#e7f7ed;
  --purple-700:#6b42d8; --purple-100:#f0eaff;
  --amber-700:#c06b00; --amber-100:#fff2dc;
  --red-700:#c23838; --red-100:#ffeded;
  --ink:#10243e; --text:#33485e; --muted:#728397;
  --surface:#ffffff; --canvas:#f4f7fb; --line:#dfe7ef;
  --shadow:0 12px 35px rgba(23,54,83,.08);
  --shadow-sm:0 5px 16px rgba(23,54,83,.06);
  --radius:14px; --radius-sm:9px;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text); background:var(--canvas); font-size:15px;
}

/* Personnel Master Record */
.personnel-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}

.personnel-avatar {
  width: 88px;
  height: 88px;
  flex: 0 0 88px;
  object-fit: cover;
  border-radius: 1.25rem;
  border: 3px solid #fff;
  background: #e5edf5;
  box-shadow: 0 8px 24px rgba(15, 48, 78, 0.14);
}

.personnel-avatar-small {
  width: 44px;
  height: 44px;
  border-width: 2px;
  border-radius: 0.8rem;
}

.personnel-filter-grid {
  display: grid;
  grid-template-columns: minmax(210px, 1.5fr) repeat(4, minmax(150px, 1fr)) auto;
  gap: 0.8rem;
  align-items: end;
}

.compact-filter-grid {
  grid-template-columns: minmax(220px, 2fr) minmax(190px, 1fr) minmax(140px, 0.7fr) auto;
}

.personnel-filter-grid label {
  display: grid;
  gap: 0.35rem;
  color: #4b6072;
  font-size: 0.8rem;
  font-weight: 700;
}

.personnel-filter-grid input,
.personnel-filter-grid select {
  width: 100%;
  min-height: 42px;
}

.filter-actions,
.pagination {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.pagination {
  justify-content: flex-end;
  margin-top: 1rem;
}

.learner-filter-form {
  width: 100%;
  flex-wrap: wrap;
  padding: .7rem;
}

.learner-filter-form input {
  flex: 2 1 250px;
}

.learner-filter-form select {
  flex: 1 1 180px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  padding: 0 .65rem;
}

.detail-list {
  display: grid;
  gap: .25rem;
  margin: 0;
}

.detail-list > div {
  display: grid;
  grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr);
  gap: 1rem;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line);
}

.detail-list dt { color: var(--muted); font-size: .78rem; font-weight: 700; }
.detail-list dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .personnel-filter-grid,
  .compact-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .personnel-filter-grid,
  .compact-filter-grid {
    grid-template-columns: 1fr;
  }

  .personnel-heading {
    align-items: flex-start;
  }

  .personnel-avatar {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
  }

  .pagination {
    justify-content: space-between;
  }

  .detail-list > div { grid-template-columns: 1fr; gap: .2rem; }
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--canvas)}
/* Reserve a dedicated header slot for the notification icon between ADM notices and the rightmost profile. */
.app-header .header-actions .profile-wrap{margin-left:52px!important}.app-header>.notification-center{right:92px!important}
@media(max-width:950px){.app-header .header-actions .profile-wrap{margin-left:48px!important}.app-header>.notification-center{right:78px!important}}
@media(max-width:430px){.app-header .header-actions .profile-wrap{margin-left:44px!important}.app-header>.notification-center{right:66px!important}}
a{color:inherit}button,input,select,textarea{font:inherit}
h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{color:var(--ink)}
img{max-width:100%}.muted{color:var(--muted)}.center{text-align:center}.tiny{display:block;font-size:.72rem;color:var(--muted);margin-top:.25rem}.no-print{}
.app-layout{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,var(--navy-950),var(--navy-900));color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:40;box-shadow:8px 0 28px rgba(4,39,59,.12)}
.sidebar-brand{display:flex;align-items:flex-start;gap:12px;padding:0 7px 18px;border-bottom:1px solid rgba(255,255,255,.15)}
.sidebar-brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}
.sidebar-brand div{display:flex;min-width:0;flex-direction:column}.sidebar-brand strong{color:#fff;font-size:1.55rem;letter-spacing:.02em}.sidebar-brand span{max-width:172px;font-size:.66rem;line-height:1.35;color:#cce1ed}
.sidebar-nav{display:flex;flex-direction:column;gap:5px;margin-top:5px}.sidebar-nav a,.sidebar-logout button{display:flex;align-items:center;gap:12px;width:100%;border:0;text-decoration:none;color:#dcebf2;background:transparent;padding:11px 12px;border-radius:10px;font:inherit;font-weight:650;font-size:.91rem;text-align:left;cursor:pointer;transition:.18s}
.sidebar-nav a img,.sidebar-logout button img{width:21px;height:21px;color:currentColor;filter:brightness(0) invert(1);opacity:.86}.sidebar-nav a:hover,.sidebar-logout button:hover{background:rgba(255,255,255,.09);color:#fff}.sidebar-nav a.active{background:#fff;color:var(--navy-900);box-shadow:0 8px 20px rgba(0,0,0,.13)}.sidebar-nav a.active img{filter:none}
.sidebar-year{margin-top:auto;border-top:1px solid rgba(255,255,255,.18);padding:20px 9px 4px;display:flex;align-items:center;gap:12px}.sidebar-year img{width:24px;filter:brightness(0) invert(1)}.sidebar-year div{display:flex;flex-direction:column}.sidebar-year span{font-size:.75rem;color:#bcd5e1}.sidebar-year strong{color:#fff;font-size:1.08rem;margin-top:3px}
.app-main{grid-column:2;min-width:0;display:flex;flex-direction:column;min-height:100vh}.app-header{height:86px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:30}
.sidebar-toggle{display:none}.header-context{display:flex;min-width:0;align-items:center;gap:12px}.header-context>strong{overflow:hidden;font-size:1rem;white-space:nowrap;text-overflow:ellipsis}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.header-search{width:330px;border:1px solid var(--line);background:#fafcff;border-radius:10px;display:flex;align-items:center;gap:10px;padding:0 12px}.header-search img{width:19px;opacity:.58}.header-search input{border:0;background:transparent;padding:11px 0;width:100%;outline:0;color:var(--ink)}
.icon-button{border:1px solid var(--line);background:#fff;border-radius:10px;width:42px;height:42px;display:grid;place-items:center;cursor:pointer}.icon-button img{width:21px}.notification-button{position:relative}.notification-button span{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;border-radius:999px;background:#e33d3d;color:#fff;font-size:.66rem;display:grid;place-items:center;border:2px solid #fff;font-weight:800}
.profile-wrap{position:relative}.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:9px;padding:5px 4px;cursor:pointer}.profile-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:0 0 42px;background:linear-gradient(135deg,#d8eaff,#a8d1ff);color:var(--blue-700);font-weight:850;font-size:1.1rem;object-fit:cover;object-position:center}.profile-copy{display:flex;flex-direction:column;text-align:left}.profile-copy strong{font-size:.86rem}.profile-copy small{font-size:.72rem;color:var(--muted);margin-top:2px}.profile-chevron{color:var(--muted)}
.profile-menu{position:absolute;right:0;top:56px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);width:min(310px,calc(100vw - 24px));padding:10px;display:none}.profile-menu.open{display:block}.profile-summary{padding:9px;border-bottom:1px solid var(--line);display:flex;flex-direction:column}#vestra-profile-workspace-switcher:not(:empty){padding:10px 9px;border-bottom:1px solid var(--line)}.profile-menu small{color:var(--muted);margin-top:3px}.profile-menu a,.profile-menu button{width:100%;display:flex;align-items:center;gap:9px;padding:10px;border:0;background:transparent;text-decoration:none;border-radius:8px;color:var(--text);cursor:pointer}.profile-menu a:hover,.profile-menu button:hover{background:var(--canvas)}.profile-menu img{width:17px}
.content-area{padding:28px;max-width:1600px;width:100%;margin:0 auto;flex:1;font-size:.94rem}.app-footer{padding:18px 28px;color:var(--muted);font-size:.75rem;text-align:center}
.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}.page-title-row h1{font-size:1.72rem;line-height:1.15;margin-bottom:6px}.page-title-row p{color:var(--muted);margin-bottom:0}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--blue-700)!important;font-size:.71rem;font-weight:800;margin-bottom:6px!important}.page-date{background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:10px;color:var(--muted);font-size:.82rem}
.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm)}.metric-card>div:last-child{display:flex;flex-direction:column}.metric-card span{font-size:.79rem;color:var(--muted);font-weight:650}.metric-card strong{font-size:1.65rem;line-height:1;margin:7px 0}.metric-card small{font-size:.71rem;color:var(--muted)}.metric-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}.metric-icon img{width:23px}.metric-icon.blue{background:var(--blue-100);color:var(--blue-700)}.metric-icon.green{background:var(--green-100);color:var(--green-700)}.metric-icon.purple{background:var(--purple-100);color:var(--purple-700)}.metric-icon.amber{background:var(--amber-100);color:var(--amber-700)}.metric-icon.red{background:var(--red-100);color:var(--red-700)}.compact-metrics{grid-template-columns:repeat(2,minmax(260px,1fr));max-width:700px}
.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:19px}.panel-wide{grid-column:auto}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-heading h2{font-size:1.03rem;margin-bottom:4px}.panel-heading p{font-size:.78rem;color:var(--muted);margin:0}
.progress-list{display:flex;flex-direction:column;gap:14px}.progress-item{display:grid;grid-template-columns:220px minmax(100px,1fr) 42px;gap:14px;align-items:center}.progress-item>div:first-child{display:flex;flex-direction:column}.progress-item strong{font-size:.82rem}.progress-item span{font-size:.69rem;color:var(--muted);margin-top:3px}.progress-track{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--blue-600),#55a8ff);border-radius:999px;margin:0}.progress-item b{font-size:.78rem;color:var(--blue-700);text-align:right}
.quick-actions{display:flex;flex-direction:column;gap:9px}.quick-actions a{display:grid;grid-template-columns:42px 1fr 16px;align-items:center;gap:11px;border:1px solid var(--line);border-radius:10px;padding:10px;text-decoration:none;transition:.15s}.quick-actions a:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:#c8d8e8}.quick-actions div{display:flex;flex-direction:column}.quick-actions strong{font-size:.8rem}.quick-actions small{font-size:.68rem;color:var(--muted);margin-top:3px}.quick-icon{width:38px;height:38px;border-radius:9px;display:grid;place-items:center}.quick-icon img{width:20px}.quick-icon.blue{background:var(--blue-100)}.quick-icon.green{background:var(--green-100)}.quick-icon.purple{background:var(--purple-100)}
.activity-list{display:flex;flex-direction:column}.activity-list>div{display:grid;grid-template-columns:12px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5;align-items:start}.activity-list>div:last-child{border-bottom:0}.activity-list>div>div{display:flex;flex-direction:column}.activity-list strong{font-size:.79rem}.activity-list small,.activity-list time{font-size:.67rem;color:var(--muted);margin-top:3px}.activity-dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.activity-dot.green{background:#35ad67}.activity-dot.blue{background:#3989ef}.activity-dot.amber{background:#efa62d}.activity-dot.purple{background:#8a61e7}
.announcement-panel{grid-column:1/-1;display:flex;gap:16px;align-items:center;background:linear-gradient(105deg,#eef6ff,#f9fcff)}.announcement-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#dcecff;color:var(--blue-700);font-weight:900;font-size:1.2rem}.announcement-panel h2{font-size:.95rem;margin-bottom:4px}.announcement-panel p{font-size:.78rem;color:var(--muted);margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid transparent;border-radius:9px;padding:10px 14px;font-weight:750;font-size:.82rem;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg,#1978ec,#0f65d3);color:#fff;box-shadow:0 7px 16px rgba(17,103,216,.2)}.btn-secondary{background:#fff;color:var(--text);border-color:var(--line)}.btn-secondary:hover{background:#eef6ff;color:var(--blue-700);border-color:#9dc7f2}/* Page-navigation and download links share the light button treatment; blue remains for submit/confirmation buttons. */a.btn-primary{background:#fff;color:var(--text);border-color:var(--line);box-shadow:none}a.btn-primary:hover{background:#eef6ff;color:var(--blue-700);border-color:#9dc7f2}.btn-success{background:linear-gradient(180deg,#28a45a,#168047);color:#fff}.btn-danger{background:#c53d3d;color:#fff}.btn-full{width:100%}.btn-large{padding:13px 18px;font-size:.94rem}.btn-small{padding:7px 10px;font-size:.74rem}
.term-summary-controls{display:flex;align-items:end;gap:16px;padding-block:12px}.term-summary-controls>div{display:grid;gap:5px;min-width:210px}.term-summary-controls label{font-size:.76rem;font-weight:750;color:var(--muted)}.term-summary-controls p{margin:0;max-width:500px;color:var(--muted);font-size:.78rem}.term-remark-cell{min-width:300px;vertical-align:top}.term-remark-form{display:grid;gap:7px}.term-remark-form select,.term-remark-form textarea{width:100%;font:inherit}.term-remark-form textarea{resize:vertical;min-height:68px}.term-remark-form .btn{justify-self:start}.term-remark-print{display:none}@media(max-width:800px){.term-summary-controls{align-items:stretch;flex-direction:column}.term-summary-controls>div{min-width:0}}@media print{.term-remark-form{display:none}.term-remark-print{display:block;font-size:.7rem;line-height:1.25;white-space:normal}}
.alert{padding:13px 15px;border-radius:10px;margin:12px 0 18px;border:1px solid transparent;font-size:.8rem}.alert-info{background:#edf6ff;border-color:#d6eaff;color:#2c5c8c}.alert-success{background:var(--green-100);border-color:#cdebd8;color:#21683e}.alert-warning{background:#fff8e7;border-color:#f3dfac;color:#835d16}.alert-error{background:var(--red-100);border-color:#f5cccc;color:#8f2e2e}
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:.69rem;font-weight:800;white-space:nowrap}.status-green{background:var(--green-100);color:var(--green-700)}.status-blue{background:var(--blue-100);color:var(--blue-700)}.status-gray{background:#eef2f5;color:#677785}.status-amber{background:var(--amber-100);color:var(--amber-700)}.status-red{background:var(--red-100);color:var(--red-700)}
.class-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:17px}.class-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow-sm)}.class-card-top{display:flex;justify-content:space-between;align-items:center}.class-subject-icon{width:48px;height:48px;border-radius:13px;background:var(--blue-100);display:grid;place-items:center;color:var(--blue-700);font-weight:850}.class-subject-icon.adviser{background:var(--green-100);color:var(--green-700)}.class-card h2{font-size:1.05rem;margin:16px 0 5px}.class-card p{font-size:.78rem;color:var(--muted)}.class-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;margin-top:13px}.class-meta span{font-size:.72rem;color:var(--muted)}.class-meta strong{font-size:.76rem}
.term-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.term-modern-card{display:flex;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.term-number{width:62px;background:linear-gradient(180deg,var(--navy-800),var(--navy-900));color:#fff;display:grid;place-items:center;font-size:1.5rem;font-weight:850}.term-modern-content{padding:18px;flex:1}.term-modern-head{display:flex;justify-content:space-between;gap:10px}.term-modern-head span{font-size:.68rem;color:var(--muted)}.term-modern-head h2{font-size:1.1rem;margin:3px 0}.term-stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:9px;margin:14px 0}.term-stats>div{padding:10px;display:flex;flex-direction:column}.term-stats>div+div{border-left:1px solid var(--line)}.term-stats span{font-size:.68rem;color:var(--muted)}.term-stats strong{font-size:.82rem;margin-top:3px}
.record-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:17px}.record-summary>div{padding:16px;border-right:1px solid var(--line)}.record-summary>div:last-child{border-right:0}.record-summary span{display:block;font-size:.68rem;color:var(--muted);margin-bottom:5px}.record-summary strong{font-size:.85rem}.workspace-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:14px 0 18px}
.table-shell,.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.modern-table,table{border-collapse:collapse;width:100%;background:#fff}.modern-table th,.modern-table td,table th,table td{border-bottom:1px solid #e8edf2;padding:10px 11px;text-align:left;vertical-align:middle}.modern-table th,table th{font-size:.67rem;text-transform:uppercase;letter-spacing:.035em;color:#627386;background:#f8fafc;white-space:nowrap}.modern-table td,table td{font-size:.75rem}.modern-table tr:last-child td,table tr:last-child td{border-bottom:0}.modern-table td small{display:block;color:var(--muted);font-size:.64rem;margin-top:3px}
.status-legend{display:flex;gap:13px;flex-wrap:wrap}.status-legend span{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--muted)}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.green{background:#31aa64}.legend-dot.blue{background:#3e8be9}.legend-dot.gray{background:#9aa6b1}
.adviser-workspace-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:17px;margin-top:17px}.workflow-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.workflow-list li{display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:center}.workflow-list li>span{width:34px;height:34px;border-radius:9px;background:var(--blue-100);color:var(--blue-700);display:grid;place-items:center;font-weight:850}.workflow-list li div{display:flex;flex-direction:column}.workflow-list strong{font-size:.8rem}.workflow-list small{font-size:.69rem;color:var(--muted);margin-top:3px}.report-readiness-card{text-align:center;display:flex;flex-direction:column;justify-content:center}.report-readiness-icon{width:58px;height:58px;margin:0 auto 12px;border-radius:16px;background:var(--green-100);display:grid;place-items:center}.report-readiness-icon img{width:28px}.report-readiness-card h2{font-size:1.02rem}.report-readiness-card p{font-size:.76rem;color:var(--muted);line-height:1.6}
.ecr-card{padding:0;overflow:hidden}.ecr-title-row{display:flex;justify-content:space-between;gap:12px;padding:17px 18px 0}.ecr-title-row h2{font-size:1rem;margin-bottom:4px}.ecr-title-row p{font-size:.72rem}.ecr-wrap{max-height:69vh;border:0;border-top:1px solid var(--line);border-radius:0}.ecr-table{width:max-content;min-width:100%;font-size:.72rem;margin:0}.ecr-table th,.ecr-table td{border:1px solid #e0e6ec;padding:6px;text-align:center;vertical-align:middle}.ecr-table thead th{position:sticky;top:0;z-index:4}.ecr-table thead tr:nth-child(2) th{top:36px}.ecr-table .sticky-col-1{position:sticky;left:0;z-index:3;min-width:42px;background:#fff}.ecr-table .sticky-col-2{position:sticky;left:42px;z-index:3;min-width:225px;max-width:225px;text-align:left;background:#fff}.ecr-table thead .sticky-col-1,.ecr-table thead .sticky-col-2{z-index:7;background:#f7f9fb}.category-header{height:36px;font-size:.72rem}.category-ww{background:#eaf3ff!important;color:#185baf}.category-pt{background:#eaf8ef!important;color:#187642}.category-ex{background:#f2edff!important;color:#6840bd}.assessment-header{min-width:65px;background:#fafcfe!important}.assessment-header a{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--blue-600);color:#fff;text-decoration:none}.assessment-header span{display:block;font-size:.58rem;font-weight:500;margin-top:4px;white-space:normal}.summary-header,.formula-header{background:#f4f7fa!important;min-width:66px}.score-cell input{width:52px;padding:5px 3px;text-align:center;border:1px solid #cdd7e0;border-radius:5px}.score-cell input:focus{outline:2px solid #a9d0ff;border-color:var(--blue-600)}.formula-cell{background:#f7f9fb;font-variant-numeric:tabular-nums}.total-cell{font-weight:800;color:#36516a}.term-cell{font-size:.86rem;color:var(--blue-700)}.descriptor-cell{min-width:105px}.record-action-bar{position:sticky;bottom:0;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:13px 0;display:flex;align-items:center;gap:12px}.record-action-bar .muted{font-size:.73rem}.finalize-panel{border-color:#cce8d7;background:linear-gradient(105deg,#f4fcf7,#fff)}.finalize-panel h2{font-size:1rem}.finalize-panel p{font-size:.76rem;color:var(--muted)}
.score-cell input:disabled{background:#eef2f5;color:#8795a1;border-color:#dce3e8;cursor:not-allowed}.ecr-hps-input{display:block;width:58px;margin:4px auto 0;padding:4px 2px;text-align:center;border:1px solid #bac7d2;border-radius:5px;background:#fff}.ecr-hps-input:focus{outline:2px solid #a9d0ff;border-color:var(--blue-600)}
.computation-details{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:11px;margin:14px}.computation-details summary{cursor:pointer;font-weight:800;color:var(--blue-700);font-size:.78rem}
.attendance-wrap{max-height:69vh}.attendance-table{min-width:1200px}.attendance-table th{position:sticky;top:0;z-index:3}.attendance-table .sticky-col{position:sticky;left:0;z-index:2;background:#fff;min-width:220px}.attendance-table th.sticky-col{z-index:4;background:#f8fafc}.attendance-select{min-width:48px;padding:6px;border:1px solid #cfd9e2;border-radius:6px}
.learner-card h2{font-size:.97rem}.learner-card textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px;margin:5px 0 10px}.sf9-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.sf9-toolbar label{min-width:190px;font-size:.75rem;font-weight:700}.sf9-toolbar select{display:block;margin-top:5px;width:100%;padding:9px;border:1px solid var(--line);border-radius:8px}
.sf9-list-filters{margin-bottom:0}.sf9-learner-table{min-width:920px}.sf9-learner-table .workspace-actions{margin:0}.compact-actions{gap:5px}.sf9-detail-row>td{padding:0 11px 10px;background:#fbfcfe}.sf9-detail-row summary{padding:9px 0;font-size:.72rem}.sf9-row-details{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:18px;border-top:1px solid var(--line);padding:13px 0}.sf9-comment-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}.sf9-comment-form label{font-size:.7rem;font-weight:750}.sf9-comment-form textarea{width:100%;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:7px;resize:vertical}.sf9-missing-list h3{font-size:.78rem;margin:5px 0}.sf9-missing-list ul{margin:0 0 8px;padding-left:18px;font-size:.72rem}.sf9-missing-list .alert{margin:0}
.sf9-preview-page{background:#fff;border:1px solid #a7b0b7;padding:15px;margin:16px auto;max-width:1280px}.sf9-two-panel{display:grid;grid-template-columns:1fr 1fr;gap:28px}.sf9-school-head{display:grid;grid-template-columns:58px minmax(0,1fr) 58px;gap:8px;align-items:start;text-align:center;line-height:1.22;font-size:.72rem}.sf9-school-copy{min-width:0}.sf9-seal img{width:58px;height:58px;object-fit:contain}.sf9-school-head h1{font-size:1.15rem;margin:5px 0}.sf9-school-head h2{font-size:.98rem;margin:8px 0 3px}.sf9-info{display:grid;grid-template-columns:2fr .6fr .7fr;gap:7px 13px;margin:12px 0;font-size:.75rem}.sf9-info div{border-bottom:1px solid #333;padding:2px}.sf9-table{margin:9px 0;font-size:.68rem}.sf9-table th,.sf9-table td{padding:4px;border:1px solid #333}.sf9-comment-box{border:1px solid #333;min-height:80px;padding:6px;margin-bottom:5px;font-size:.7rem}.sf9-signatures{display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:center;margin-top:32px}.sf9-line{border-bottom:1px solid #333;min-width:150px;display:inline-block}
.table-person{display:flex;align-items:center;gap:9px}.table-person>span{width:34px;height:34px;border-radius:50%;background:var(--blue-100);color:var(--blue-700);display:grid;place-items:center;font-weight:800}.table-person div{display:flex;flex-direction:column}
.empty-state{grid-column:1/-1;background:#fff;border:1px dashed #cbd7e1;border-radius:var(--radius);padding:45px;text-align:center}.empty-state>div{font-size:2rem;color:var(--muted)}.empty-inline{text-align:center;color:var(--muted);padding:18px}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:linear-gradient(135deg,#f6faff,#eef5ff)}.auth-brand-panel{position:relative;overflow:hidden;display:grid;place-items:center;padding:50px}.auth-brand-panel:after{content:"";position:absolute;left:-5%;bottom:-18%;width:115%;height:43%;background:linear-gradient(145deg,rgba(166,207,255,.5),rgba(80,151,238,.35));border-radius:50% 55% 0 0}.auth-orb{position:absolute;border-radius:50%;background:rgba(96,164,244,.16)}.auth-orb-one{width:330px;height:330px;left:-170px;top:-110px}.auth-orb-two{width:170px;height:170px;right:20px;bottom:80px}.auth-brand-content{position:relative;z-index:2;text-align:center;max-width:590px}.auth-logo{width:235px;height:235px;object-fit:contain}.auth-brand-content h1{font-size:2rem;margin:12px 0}.auth-brand-line{width:72px;height:4px;background:var(--blue-600);border-radius:999px;margin:18px auto}.auth-brand-content h2{font-size:1.3rem;color:#425a76}.auth-brand-content>p{max-width:500px;margin:15px auto;color:#58708b;line-height:1.65}.auth-assurance{display:flex;align-items:center;gap:12px;text-align:left;width:max-content;max-width:100%;margin:65px auto 0}.auth-assurance>span{width:48px;height:48px;border-radius:50%;background:#dfedff;color:var(--blue-700);display:grid;place-items:center;font-weight:900}.auth-assurance div{display:flex;flex-direction:column}.auth-assurance small{color:#6a7d91;margin-top:4px}
.auth-form-panel{display:grid;place-items:center;padding:45px}.auth-card{width:min(100%,570px);background:#fff;border:1px solid #dde5ed;border-radius:24px;box-shadow:0 25px 65px rgba(35,78,120,.14);padding:48px}.auth-icon{width:74px;height:74px;border-radius:50%;border:2px solid var(--blue-600);display:grid;place-items:center;color:var(--blue-700);font-weight:900;margin:0 auto 20px}.auth-card>h2{text-align:center;font-size:1.65rem;margin-bottom:8px}.auth-card>p{text-align:center;color:var(--muted);margin-bottom:28px}.auth-form label{display:block;font-size:.78rem;font-weight:800;margin:15px 0 6px;color:var(--ink)}.auth-field{display:grid;grid-template-columns:30px 1fr auto;align-items:center;border:1px solid #cfd9e4;border-radius:10px;padding:0 12px;background:#fff}.auth-field>span{color:#8494a5}.auth-field input{border:0;outline:0;padding:13px 4px;width:100%;color:var(--ink)}.auth-field button{border:0;background:transparent;color:var(--blue-700);font-size:.72rem;cursor:pointer}.forgot-link{display:block;text-align:right;color:var(--blue-700);font-size:.75rem;text-decoration:none;margin:11px 0 20px}.auth-admin-note{display:flex;gap:11px;align-items:center;background:#f3f7fd;border:1px solid #e1e9f3;border-radius:11px;padding:12px;margin-top:22px}.auth-admin-note>span{width:25px;height:25px;border-radius:50%;border:1px solid var(--blue-700);color:var(--blue-700);display:grid;place-items:center;font-weight:800}.auth-admin-note p{font-size:.74rem;margin:0;color:#536a82}.auth-footnote{display:block;text-align:center;color:#8a99a8;font-size:.65rem;margin-top:18px}
input,select,textarea{color:var(--ink)}
.app-overlay{display:none}
@media(max-width:1200px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.panel-wide{grid-column:auto}.header-search{width:230px}.term-card-grid{grid-template-columns:1fr}.adviser-workspace-grid{grid-template-columns:1fr}}
@media(max-width:950px){.app-layout{grid-template-columns:1fr}.app-sidebar{transform:translateX(-105%);transition:.2s}.app-main{grid-column:1}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open .app-overlay{display:block;position:fixed;inset:0;background:rgba(2,24,36,.45);z-index:35}.sidebar-toggle{display:grid}.header-search{display:none}.profile-copy{display:none}.content-area{padding:21px}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{padding:25px}}
@media(max-width:700px){.app-header{height:72px;padding:0 14px}.content-area{padding:16px}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{padding:13px}.metric-card strong{font-size:1.35rem}.dashboard-grid{gap:13px}.progress-item{grid-template-columns:1fr 40px}.progress-item>div:first-child{grid-column:1/-1}.record-summary{grid-template-columns:1fr 1fr}.page-title-row h1{font-size:1.4rem}.auth-card{padding:30px 22px}.class-card-grid{grid-template-columns:1fr}.sf9-two-panel{grid-template-columns:1fr}}
@media(max-width:430px){.metric-grid{grid-template-columns:1fr}.record-summary{grid-template-columns:1fr}.profile-avatar{width:36px;height:36px}.notification-button{display:none}}
@media print{.app-sidebar,.app-header,.app-footer,.no-print,.app-overlay{display:none!important}.app-layout{display:block}.app-main{display:block}.content-area{padding:0;max-width:none}.panel{box-shadow:none}.sf9-preview-page{border:0;padding:0;max-width:none}.sf9-two-panel{grid-template-columns:1fr 1fr;gap:18px}.table-shell,.table-wrap{overflow:visible;border:0}@page{size:Letter landscape;margin:.5in}}

/* v0.7 records workflow */
.sidebar-section-label{padding:16px 12px 5px;color:#8fb4c5;font-size:.62rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.form-panel{max-width:820px}.form-panel form p,.form-panel .form-field,.stacked-form p{display:grid;gap:6px;margin:0 0 14px}.form-panel label,.stacked-form label{font-size:.75rem;font-weight:800;color:var(--ink)}
.form-section-heading{grid-column:1/-1;margin:18px 0 4px;padding-top:14px;border-top:1px solid var(--line);font-size:1rem;color:var(--ink)}.form-section-heading:first-of-type{margin-top:0;padding-top:0;border-top:0}
.form-panel input,.form-panel select,.form-panel textarea,.stacked-form input,.stacked-form select,.stacked-form textarea,.inline-result-form input,.inline-result-form select{width:100%;padding:10px 11px;border:1px solid #cfd9e4;border-radius:8px;background:#fff;color:var(--ink)}
.form-panel .helptext,.stacked-form .helptext{font-size:.68rem;color:var(--muted)}.form-panel ul.errorlist,.stacked-form ul.errorlist{color:var(--red-700);font-size:.72rem;margin:0;padding-left:18px}.form-panel .form-checkbox-field{display:block}.form-checkbox{display:inline-flex!important;align-items:flex-start;gap:9px;line-height:1.4;cursor:pointer}.form-panel .form-checkbox input[type="checkbox"]{width:18px;height:18px;flex:0 0 auto;margin:1px 0 0;padding:0}.form-checkbox span{font:inherit;color:inherit}
.upload-panel{display:grid;grid-template-columns:1fr 1fr;gap:25px}.upload-guidance{background:#f4f8fd;border:1px solid var(--line);border-radius:12px;padding:18px}.upload-guidance h2{font-size:1rem}.upload-guidance li{margin:10px 0;font-size:.78rem;line-height:1.45}
.inline-result-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,1fr) auto;gap:7px;min-width:480px}.inline-result-form .btn:disabled{opacity:.5;cursor:not-allowed}
.modern-table small{display:block;color:var(--muted);font-size:.67rem;margin-top:4px}.alert ul{margin:8px 0 0;padding-left:20px}
@media(max-width:850px){.upload-panel{grid-template-columns:1fr}.inline-result-form{grid-template-columns:1fr;min-width:260px}}
@media(max-width:850px){.sf9-row-details,.sf9-comment-form{grid-template-columns:1fr}.sf9-list-filters{grid-template-columns:1fr}}

/* v0.9 focused modules, grouped diagnostic records, and role dashboards */
.module-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.module-tabs a{padding:9px 13px;border:1px solid var(--line);background:#fff;border-radius:999px;color:var(--ink);font-size:.75rem;font-weight:800;text-decoration:none}.module-tabs a.active,.module-tabs a:hover{background:var(--blue-700);border-color:var(--blue-700);color:#fff}
.record-tabs{display:flex;gap:2px;max-width:100%;overflow-x:auto;margin:0 0 16px;border-bottom:1px solid #cfd9e4;scrollbar-width:thin}.record-tabs a{flex:0 0 auto;padding:9px 12px;border:0;border-bottom:3px solid transparent;border-radius:7px 7px 0 0;background:transparent;color:#5c6f82;font-size:.73rem;font-weight:800;text-decoration:none;white-space:nowrap}.record-tabs a:hover{background:#f0f6fd;color:var(--blue-700)}.record-tabs a.active{border-bottom-color:var(--blue-700);background:var(--blue-100);color:var(--blue-700)}.record-tabs~.record-tab-panel{margin-bottom:16px}.record-tab-panel[hidden]{display:none!important}body:not(.record-tabs-ready) .record-tabs~section.panel{display:none}body:not(.record-tabs-ready) .record-tabs~#personal,body:not(.record-tabs-ready) .record-tabs~#position-history{display:block}.record-tabs-ready .record-tabs~section.panel{display:none}.record-tabs-ready .record-tabs~section.panel.is-active-record-panel{display:block}
.diagnostic-table-wrap{max-width:100%;overflow:auto}.diagnostic-table{min-width:1080px}.diagnostic-table th{white-space:normal;line-height:1.2}.diagnostic-table td{vertical-align:middle}.diagnostic-table input,.diagnostic-table select{width:100%;min-width:82px;padding:7px 8px;border:1px solid #cbd8e4;border-radius:7px;background:#fff;font-size:.73rem}.diagnostic-table select{min-width:150px}.diagnostic-table .group-header{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-align:center}.diagnostic-table .bosy-header{background:#17669a}.diagnostic-table .eosy-header{background:#2f7d62}.diagnostic-table .level-cell{min-width:190px;font-size:.72rem}.nmt-table{min-width:1450px}.crla-table{min-width:2200px}.philiri-table{min-width:1050px}.literacy-module-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.literacy-card{min-height:215px}.literacy-card p{min-height:48px}
.numeracy-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}.numeracy-summary{overflow:hidden;border:1px solid #d8e4ec;border-radius:10px;background:#fbfdff}.numeracy-summary h3{margin:0;padding:10px 12px;background:#eef6fb;color:var(--ink);font-size:.76rem}.numeracy-summary table{width:100%;border-collapse:collapse;font-size:.69rem}.numeracy-summary th,.numeracy-summary td{padding:7px 9px;border-top:1px solid #e0e8ee;text-align:center}.numeracy-summary th:first-child,.numeracy-summary td:first-child{text-align:left}.numeracy-summary thead th{color:#40596f;font-size:.65rem;text-transform:uppercase;letter-spacing:.035em}.numeracy-summary tfoot th{background:#f4f8fb;color:var(--ink)}
.role-dashboard-banner{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:linear-gradient(135deg,#fff1e6 0%,#f8e9f3 52%,#e9f7ef 100%);color:var(--text);border:1px solid #eadde0;border-radius:18px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.role-dashboard-banner h1,.role-dashboard-banner h2{color:var(--ink);margin-bottom:0}.role-dashboard-banner .eyebrow{color:#8c5260!important}.role-dashboard-banner p{color:#5f6875;margin:6px 0 0}.role-dashboard-banner .role-badge{background:rgba(255,255,255,.78);border:1px solid #e5d5d9;color:#6f5158;padding:10px 14px;border-radius:999px;font-weight:850;font-size:.76rem}.dashboard-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.dashboard-action-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm)}.dashboard-action-card:hover{transform:translateY(-1px);border-color:#9bc2dd}.dashboard-action-card strong{display:block;margin-bottom:5px}.dashboard-action-card span{font-size:.73rem;color:var(--muted);line-height:1.4}.ecr-workflow-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lock-note{display:flex;gap:10px;align-items:flex-start;background:#fff8e7;border:1px solid #efd79c;border-radius:10px;padding:12px;font-size:.75rem}.request-card{border-left:4px solid var(--blue-600)}
@media(max-width:700px){.role-dashboard-banner{grid-template-columns:1fr}.diagnostic-table{font-size:.68rem}}
@media(max-width:700px){.numeracy-summary-grid{grid-template-columns:1fr}}

/* v1.0 permanent records, three-point assessments, and school-wide summaries */
.mid-header{background:#7a5aa6!important}.support-pastel{background:#fff0f1!important;color:#60383d!important}.progress-pastel{background:#e9f6ee!important;color:#28533c!important}.oral-reading-table{min-width:1900px}.oral-reading-table input[type="radio"]{width:18px;height:18px;min-width:18px;accent-color:var(--blue-700)}.nutrition-table{min-width:1150px}.nutrition-table input{min-width:110px}.workspace-actions{display:flex;gap:8px;flex-wrap:wrap}.panel details summary{cursor:pointer;color:var(--blue-700);font-weight:750}.panel details[open] summary{margin-bottom:10px}.header-search button{margin-left:auto}.sf10-history-link{word-break:break-all}


/* v1.1 personnel administration and approved campus sign-in */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.auth-shell-campus{grid-template-columns:minmax(0,1.18fr) minmax(520px,.82fr);background:linear-gradient(135deg,#e9f5ff,#f8fbff)}
.auth-campus-panel{background-image:linear-gradient(90deg,rgba(238,248,255,.18),rgba(239,248,255,.62)),url("../img/vergonville-campus.dce92ab1dcc1.png");background-size:cover;background-position:center;justify-items:start;align-items:start;padding:72px;isolation:isolate}
.auth-campus-panel:after{display:none}.auth-campus-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.12) 0 50%,rgba(235,247,255,.42) 50% 100%);z-index:0}
.auth-brand-left{width:100%;max-width:760px;text-align:left}.auth-school-heading{display:flex;align-items:flex-start;gap:25px}.auth-school-logo{width:175px;height:175px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,46,78,.15))}.auth-school-heading h1{font-size:3.35rem;color:#073f79;margin:35px 0 0;letter-spacing:-.04em}.auth-school-heading h2{font-size:2.05rem;color:#31445c;margin:2px 0 0;font-weight:500}.auth-school-heading .auth-brand-line{margin:18px 0 14px;width:390px;height:2px;background:linear-gradient(90deg,#0d66d1,transparent)}.auth-tagline{font-size:1.25rem!important;font-style:italic;font-weight:650;color:#0871d6!important;margin:0!important}.auth-feature-row{position:absolute;left:72px;bottom:55px;display:flex;gap:12px;flex-wrap:wrap}.auth-feature-row span{background:rgba(4,59,98,.74);backdrop-filter:blur(7px);color:#fff;border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:9px 13px;font-size:.72rem;font-weight:750}
.auth-card-modern{padding:42px 48px;position:relative;transform:translate3d(var(--drag-x,0),var(--drag-y,0),0);transition:box-shadow .18s}.auth-card-modern.is-dragging{box-shadow:0 30px 75px rgba(21,61,101,.24);user-select:none}.auth-card-movebar{display:flex;align-items:center;justify-content:space-between;margin:-25px -28px 16px;padding:7px 10px;border-radius:10px;background:#f3f7fc;color:#6b7d90;font-size:.68rem;font-weight:750;letter-spacing:.03em}.auth-card-movebar button{border:0;background:transparent;color:var(--blue-700);font-size:.68rem;font-weight:750;cursor:pointer}.auth-lrs-brand{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:12px}.auth-lrs-brand img{width:125px;height:92px;object-fit:contain}.auth-lrs-brand div{display:flex;flex-direction:column}.auth-lrs-brand strong{font-size:4.6rem;line-height:.9;letter-spacing:.04em;color:#073f79}.auth-lrs-brand span{font-size:1.05rem;color:#0865c6;font-weight:750;margin-top:10px}.auth-welcome{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin:17px 0}.auth-welcome span{height:1px;background:#d9e2ed}.auth-welcome small{color:#718196}.auth-card-modern>h2{font-size:1.65rem}.auth-options{display:flex;align-items:center;justify-content:space-between;margin:13px 0 20px}.auth-options label{margin:0;font-weight:500;display:flex;gap:7px;align-items:center}.auth-options .forgot-link{margin:0}.auth-card-modern .auth-field{margin:12px 0;border-radius:12px;padding:3px 15px}.auth-card-modern .btn-large{border-radius:12px;padding:15px}.personnel-search{width:min(100%,760px)}.personnel-summary{grid-template-columns:repeat(4,1fr)}.service-credit-actions{grid-template-columns:1fr 1fr}.credit-total{background:#def3d5;padding:9px 14px;border-radius:8px}.service-credit-table{min-width:1250px}.service-credit-table .record-title th{background:#fae4d8;color:#111;text-align:center;font-size:1.05rem}.service-credit-table thead tr:nth-child(2) th{background:#caeaf5;color:#111;text-align:center}.service-credit-table tfoot td{background:#e3f4db;text-align:right}.void-form{display:flex;gap:7px;margin-top:8px;min-width:270px}.void-form input{padding:7px;border:1px solid var(--line);border-radius:7px;min-width:180px}.btn-danger{background:var(--red-700);color:#fff;border-color:var(--red-700)}
@media(min-width:1051px){.auth-card-movebar{cursor:grab;touch-action:none}.auth-card-modern.is-dragging .auth-card-movebar{cursor:grabbing}}
@media(max-width:1050px){.auth-shell-campus{grid-template-columns:1fr}.auth-campus-panel{display:none}.auth-card-modern{transform:none!important}.auth-card-movebar{display:none}.service-credit-actions{grid-template-columns:1fr}.personnel-summary{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.personnel-summary{grid-template-columns:1fr}.auth-card-modern{padding:30px 22px}.auth-lrs-brand strong{font-size:3.4rem}.auth-lrs-brand img{width:95px}}
.profile-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.profile-facts>div{border:1px solid var(--line);border-radius:10px;padding:13px;display:flex;flex-direction:column}.profile-facts span{font-size:.69rem;color:var(--muted);margin-bottom:5px}.profile-facts strong{font-size:.82rem}.offset-chain{margin-top:7px}.offset-chain small{padding:3px 0}.modern-table code{white-space:pre-wrap;font-size:.68rem;color:#40566d}
.role-assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}.role-choice{display:flex!important;gap:11px;align-items:flex-start;border:1px solid var(--line);border-radius:11px;padding:14px;background:#fff;margin:0!important}.role-choice input{width:18px!important;height:18px;margin-top:2px}.role-choice span{display:flex;flex-direction:column}.role-choice small{color:var(--muted);margin-top:4px}.role-assignment-grid .workspace-actions{grid-column:1/-1;margin-top:8px}

/* v1.2.1 approved fixed sign-in composition */
.auth-shell-campus{position:relative;isolation:isolate;min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(410px,570px);background-image:url("../img/vergonville-campus.dce92ab1dcc1.png");background-size:cover;background-position:center;background-repeat:no-repeat}
.auth-campus-shade{position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(238,247,255,.30) 0%,rgba(238,247,255,.10) 54%,rgba(6,35,63,.20) 100%)}
.auth-tagline-panel{position:relative;z-index:1;display:flex;align-items:center;padding:clamp(28px,7vw,100px)}
.auth-tagline-panel .auth-tagline{max-width:760px;margin:0!important;color:#063d78!important;font-size:clamp(2.35rem,4.1vw,4.15rem)!important;line-height:1.08;font-weight:850;font-style:italic;letter-spacing:-.035em;text-shadow:0 2px 12px rgba(255,255,255,.92),0 0 30px rgba(255,255,255,.76)}
.auth-shell-campus .auth-form-panel{position:relative;z-index:2;display:grid;place-items:center;padding:clamp(22px,4vw,58px)}
.auth-shell-campus .auth-card-modern{position:relative;transform:none;width:min(100%,540px);padding:42px 48px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.78);box-shadow:0 28px 80px rgba(4,35,65,.28);backdrop-filter:blur(10px)}
@media(max-width:900px){.auth-shell-campus{grid-template-columns:1fr;align-content:center}.auth-tagline-panel{padding:30px 24px 4px;justify-content:center;text-align:center}.auth-tagline-panel .auth-tagline{font-size:clamp(2rem,8vw,3.2rem)!important}.auth-shell-campus .auth-form-panel{padding:20px 22px 34px}.auth-shell-campus .auth-card-modern{padding:30px 24px}}

/* VESTRA v1.2.1 workspace shell and approved fixed sign-in */
.vestra-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#fff,#bfe2f3);color:#073f5b;display:grid;place-items:center;font-size:1.45rem;font-weight:950}
.auth-vestra-brand{text-align:center;display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.auth-vestra-brand strong{font-size:clamp(2.7rem,6vw,4.35rem);line-height:.92;letter-spacing:.07em;color:#063d78}.auth-vestra-brand span{font-size:.78rem;color:#46708e;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.auth-shell-campus .forgot-link{margin:10px 0 20px}.auth-shell-campus .auth-card-modern{transform:none!important}.auth-card-movebar{display:none!important}
.vestra-shell-tools{display:flex;align-items:center}.vestra-sidebar-button{width:40px;height:40px;border:1px solid #d6e1ea;border-radius:10px;background:#fff;color:#073f5b;display:grid;place-items:center;cursor:pointer;font-size:1rem;transition:background .15s,border-color .15s}.vestra-sidebar-button:hover{border-color:#adc5d8;background:#f4f8fb}.vestra-workspace-select{width:100%;padding:9px 32px 9px 10px;border:1px solid #d6e1ea;border-radius:9px;background:#fff;font-size:.72rem;font-weight:750}.vestra-profile-workspace{display:flex;flex-direction:column;gap:6px}.vestra-profile-workspace>span{font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#65778a}
.sidebar-collapsed .app-layout{grid-template-columns:84px 1fr}.sidebar-collapsed .app-sidebar{width:84px}.sidebar-collapsed .sidebar-brand-copy,.sidebar-collapsed .sidebar-section-label,.sidebar-collapsed .sidebar-nav a span,.sidebar-collapsed .sidebar-logout button span,.sidebar-collapsed .sidebar-year div{display:none}.sidebar-collapsed .sidebar-brand{justify-content:center;padding-inline:2px}.sidebar-collapsed .sidebar-brand img{width:48px;height:48px;max-width:48px;flex:0 0 48px}.sidebar-collapsed .sidebar-nav a,.sidebar-collapsed .sidebar-logout button{justify-content:center}.sidebar-collapsed .sidebar-year{justify-content:center}
@media(max-width:950px){.sidebar-collapsed .app-layout{grid-template-columns:1fr}.sidebar-collapsed .app-sidebar{width:280px}.sidebar-collapsed .sidebar-nav a span{display:inline}}

/* Unified VESTRA shell: PRS and LRS remain focused workspaces inside one app. */
.app-body{background:#f8fafc}
.app-layout,.app-sidebar{transition:grid-template-columns .2s ease,width .2s ease}
.app-sidebar{overflow:hidden}
.sidebar-nav{min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.24) transparent}
.sidebar-nav a:focus-visible,.vestra-sidebar-button:focus-visible,.vestra-workspace-select:focus-visible,.profile-button:focus-visible{outline:3px solid #8ecbff;outline-offset:2px}
.sidebar-nav a.active{background:#fff;color:var(--navy-900);box-shadow:0 8px 20px rgba(0,0,0,.13)}
.sidebar-nav a.active img{filter:none;opacity:.9}

/* Macaroon navigation palette: a calm blush surface with readable rose-brown controls. */
.app-sidebar{background:linear-gradient(180deg,#fff1e6 0%,#f8e9f3 52%,#e9f7ef 100%);color:#073f5b;box-shadow:8px 0 28px rgba(105,65,61,.16)}
.sidebar-brand{border-bottom-color:rgba(96,53,49,.22)}
.sidebar-brand strong{color:#073f5b}
.sidebar-brand span{color:#37647b}
.sidebar-nav a,.sidebar-logout button{color:#073f5b}
.sidebar-nav a img,.sidebar-logout button img,.sidebar-year img{filter:brightness(0) saturate(100%) invert(20%) sepia(34%) saturate(1251%) hue-rotate(154deg) brightness(88%) contrast(95%);opacity:.9}
.sidebar-nav a:hover,.sidebar-logout button:hover{background:rgba(255,255,255,.52);color:#042f47}
.sidebar-nav a.active{background:#fffaf8;color:#073f5b;box-shadow:0 8px 20px rgba(105,65,61,.15)}
.sidebar-nav a.active img{filter:brightness(0) saturate(100%) invert(20%) sepia(34%) saturate(1251%) hue-rotate(154deg) brightness(88%) contrast(95%);opacity:1}
.sidebar-nav a.sidebar-home{margin:3px 2px 9px;padding:12px;font-size:1.05rem;font-weight:750;letter-spacing:.01em;color:#073f5b;background:rgba(255,255,255,.46)}
.sidebar-nav a.sidebar-home img{width:51px;height:51px;filter:none!important;opacity:1}
.sidebar-nav a.sidebar-home:hover,.sidebar-nav a.sidebar-home.active{background:#fffaf8;color:#073f5b;box-shadow:0 8px 18px rgba(105,65,61,.13)}
.sidebar-collapsed .sidebar-nav a.sidebar-home{margin-inline:0;padding:10px 0}.sidebar-collapsed .sidebar-nav a.sidebar-home img{width:52px;height:52px}
.sidebar-year{border-top-color:rgba(96,53,49,.22)}
.sidebar-year span{color:#37647b}
.sidebar-year strong{color:#073f5b}
.sidebar-nav{scrollbar-color:rgba(96,53,49,.32) transparent}
.sidebar-nav a:focus-visible,.sidebar-logout button:focus-visible{outline-color:#b56f67}
.term-modern-card{background:linear-gradient(135deg,#edf7ff 0%,#dceeff 52%,#e8f4ff 100%);border-color:#c9dfef}
.term-number{background:linear-gradient(180deg,#afd3eb 0%,#96c2e0 100%);color:#073f5b;border-right:1px solid #83b2d3}
.term-modern-head h2{color:#073f5b}
.term-stats{background:rgba(255,255,255,.5);border-color:#c9dfef}
.term-stats>div+div{border-left-color:#c9dfef}
.status-pill.status-green,.module-card-lrs{color:#073f5b!important}

/* Modern sign-in: VESTRA brand first, without the campus image or a marketing tagline. */
.auth-shell-modern{position:relative;isolation:isolate;min-height:100vh;display:grid;grid-template-columns:1fr;place-items:center;padding:18px;overflow:hidden;background:radial-gradient(circle at 14% 12%,rgba(188,222,247,.66),transparent 28%),radial-gradient(circle at 88% 88%,rgba(238,219,240,.72),transparent 33%),linear-gradient(135deg,#fafdff 0%,#f3f8fc 52%,#fff 100%)}
.auth-shell-modern:before,.auth-shell-modern:after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(1px);pointer-events:none}.auth-shell-modern:before{width:min(36vw,460px);height:min(36vw,460px);right:-12vw;top:-19vw;background:rgba(184,218,243,.34)}.auth-shell-modern:after{width:min(28vw,340px);height:min(28vw,340px);left:-10vw;bottom:-14vw;background:rgba(210,230,247,.58)}
.auth-shell-modern .auth-form-panel{width:100%;min-height:100%;padding:0;display:grid;place-items:center}
.auth-shell-modern .auth-card-modern{width:min(100%,780px);display:grid;grid-template-columns:1.1fr .9fr;padding:0;background:rgba(255,255,255,.97);border:0;border-radius:24px;box-shadow:0 24px 60px rgba(29,73,108,.17);backdrop-filter:blur(12px);overflow:hidden;transform:none!important}
.auth-login-content{padding:20px 30px 23px;min-width:0}.auth-visual-panel{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff1e6 0%,#f8e9f3 52%,#e9f7ef 100%)}.auth-school-photo{position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,241,230,.18),rgba(248,233,243,.10) 52%,rgba(233,247,239,.18)),url("../img/vestra-signin-poster.2668dd749d7c.png") center/100% 100% no-repeat}.auth-visual-panel:after{content:"";position:absolute;inset:auto 0 0;height:48%;background:linear-gradient(0deg,rgba(233,247,239,.40),rgba(248,233,243,0));pointer-events:none}
.auth-logo-lockup{display:flex;justify-content:center;align-items:center;margin:-5px 0 9px;padding:0}.auth-logo-lockup img{display:block;width:min(100%,185px);height:auto;max-height:98px;object-fit:contain}
.auth-login-content>h2{font-size:1.42rem;letter-spacing:-.018em;margin:0 0 4px}.auth-login-content>p{font-size:.78rem;line-height:1.45;margin:0 0 16px}.auth-shell-modern .auth-field{grid-template-columns:1fr;border:0;border-radius:11px;background:#f3f7fa}.auth-shell-modern .auth-field:has(button){grid-template-columns:1fr auto}.auth-shell-modern .auth-field input{padding-block:10px}.auth-shell-modern .auth-field input:focus-visible{outline:0}.auth-shell-modern .forgot-link{margin:8px 0 13px}.auth-shell-modern .btn-large{padding:11px}.auth-shell-modern .auth-form .btn-full{display:flex;width:50%;margin-inline:auto}.auth-shell-modern .auth-footnote{margin-top:12px;font-size:.61rem}.auth-shell-modern .auth-field:focus-within{border-color:transparent;box-shadow:none;background:#edf4f8}.auth-shell-modern .btn-primary{background:linear-gradient(180deg,#0c5e8a,#073f5b);box-shadow:0 9px 18px rgba(7,63,91,.20)}
@media(max-width:560px){.auth-shell-modern{padding:14px}.auth-shell-modern .auth-card-modern{width:min(100%,355px);grid-template-columns:1fr;border-radius:20px}.auth-login-content{padding:27px 22px 22px}.auth-visual-panel{display:none}.auth-logo-lockup{justify-content:center}.auth-logo-lockup img{max-height:90px;width:176px}.auth-shell-modern:before,.auth-shell-modern:after{display:none}}
.module-card{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:8px 10px;border:1px solid #dce3eb;border-radius:9px;background:#f4f6f8;color:#526476;font-size:.68rem;font-weight:900;letter-spacing:.07em;box-shadow:0 2px 7px rgba(17,42,68,.05)}
.module-card-prs{border-color:#cfe0f5;background:#e9f2ff;color:#0d5cad}.module-card-lrs{border-color:#cde6dc;background:#e6f5ef;color:#176b4d}.module-card-system{border-color:#d7dced;background:#edf0f8;color:#334a76}.module-card-guest{border-color:#e6d6b8;background:#fff7e8;color:#74551b}
.guest-monitoring-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.guest-monitoring-person{display:flex;align-items:center;gap:15px}.guest-monitoring-photo{width:72px;height:72px;flex:0 0 72px;border-radius:50%;object-fit:cover;border:3px solid #dceefa;background:#eef5fa}.guest-monitoring-card h2{margin:2px 0;font-size:1.2rem}.guest-monitoring-card p{margin:0;color:var(--muted)}.guest-monitoring-card small{display:block;margin-top:6px;color:var(--muted)}.guest-monitoring-actions{display:flex;align-items:center;gap:10px}.status-pill.status-amber{border-color:#f0cb81;background:#fff7e6;color:#885d12}@media(max-width:600px){.guest-monitoring-card{align-items:flex-start;flex-direction:column}.guest-monitoring-card .btn{width:100%}.guest-monitoring-actions{width:100%;justify-content:space-between}}
.adm-active-people{display:flex;flex-wrap:wrap;gap:12px}.adm-person-card{display:flex;align-items:center;gap:10px;min-width:235px;max-width:300px;padding:11px;border:1px solid #d5dde4;border-radius:12px;background:#f1f3f5;color:var(--ink);text-align:left;cursor:pointer}.adm-person-card:hover{background:#e5e9ed;border-color:#b9c6d0}.adm-person-card img,.adm-dialog-profile img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#dce3e8;flex:0 0 52px}.adm-person-card span{min-width:0;display:grid;gap:3px}.adm-person-card strong{font-size:.8rem}.adm-person-card small{font-size:.68rem;color:var(--muted)}.adm-person-card em{font-style:normal;width:max-content;font-size:.63rem;padding:3px 7px}.adm-person-dialog{width:min(92vw,550px);border:0;border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(17,42,68,.28)}.adm-person-dialog::backdrop{background:rgba(17,42,68,.42)}.dialog-close{float:right;border:0;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted)}.adm-dialog-profile{display:flex;align-items:center;gap:13px;margin:5px 25px 18px 0}.adm-dialog-profile h2{margin:3px 0;font-size:1.2rem}.adm-dialog-profile p{margin:0;color:var(--muted)}.adm-detail-list{display:grid;grid-template-columns:145px 1fr;gap:10px 14px;margin:0}.adm-detail-list dt{font-weight:800;color:var(--muted);font-size:.74rem}.adm-detail-list dd{margin:0;font-size:.8rem;white-space:pre-wrap}.adm-detail-list dd+dt{border-top:1px solid var(--line);padding-top:10px}.adm-detail-list dd:has(+ dt){border-top:1px solid var(--line);padding-top:10px}@media(max-width:600px){.adm-person-card{width:100%;max-width:none}.adm-detail-list{grid-template-columns:1fr}.adm-detail-list dd{padding-bottom:8px}}
.adm-board-panel{overflow:hidden}.adm-board-controls{display:flex;align-items:center;gap:7px}.adm-board-controls span{min-width:40px;text-align:center;font-size:.72rem;font-weight:800;color:var(--muted)}.adm-board-viewport{overflow:auto;padding:0 0 12px}.adm-classroom-board{position:relative;width:920px;height:560px;margin:0 18px;border:14px solid #9a6a3c;border-radius:5px;background:linear-gradient(135deg,#1e643d,#154d31 55%,#1c5b39);box-shadow:inset 0 0 28px rgba(0,0,0,.36),0 7px 15px rgba(57,39,24,.18);color:#fff}.adm-classroom-board:after{content:"";position:absolute;left:-22px;right:-22px;bottom:-28px;height:18px;border-radius:0 0 7px 7px;background:#b47a47}.adm-board-title{position:absolute;left:34px;top:24px;font-family:Georgia,serif;font-size:1.35rem;letter-spacing:.12em;color:#e8f0df;text-shadow:0 1px 1px rgba(0,0,0,.5)}.adm-board-person{position:absolute;z-index:1;display:flex;align-items:center;gap:8px;width:185px;padding:7px;border:0;border-radius:10px;background:rgba(245,247,243,.96);box-shadow:0 4px 10px rgba(0,0,0,.24);color:var(--ink);text-align:left}.adm-board-person[type="button"]{cursor:pointer}.adm-board-person[type="button"]:hover{transform:translateY(-2px);background:#fff}.adm-board-person img{width:43px;height:43px;border-radius:50%;object-fit:cover;flex:0 0 43px;background:#cfd8d1}.adm-board-person span{min-width:0;display:grid;gap:1px}.adm-board-person strong{font-size:.66rem;line-height:1.2}.adm-board-person small{font-size:.55rem;white-space:nowrap;color:#52625a}.adm-board-person em{font-size:.54rem;font-style:normal;font-weight:800;color:#176b4d}.adm-board-empty{position:absolute;inset:0;display:grid;place-items:center;padding:90px;color:#e8f0df;font-family:Georgia,serif;font-size:1.1rem}.adm-person-dialog{width:min(92vw,550px);border:0;border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(17,42,68,.28)}.adm-person-dialog::backdrop{background:rgba(17,42,68,.42)}.dialog-close{float:right;border:0;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted)}.adm-dialog-profile{display:flex;align-items:center;gap:13px;margin:5px 25px 18px 0}.adm-dialog-profile img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#dce3e8;flex:0 0 52px}.adm-dialog-profile h2{margin:3px 0;font-size:1.2rem}.adm-dialog-profile p{margin:0;color:var(--muted)}.adm-detail-list{display:grid;grid-template-columns:145px 1fr;gap:10px 14px;margin:0}.adm-detail-list dt{font-weight:800;color:var(--muted);font-size:.74rem}.adm-detail-list dd{margin:0;font-size:.8rem;white-space:pre-wrap}.adm-detail-list dd+dt{border-top:1px solid var(--line);padding-top:10px}.adm-detail-list dd:has(+ dt){border-top:1px solid var(--line);padding-top:10px}@media(max-width:600px){.adm-classroom-board{margin:0 10px}.adm-detail-list{grid-template-columns:1fr}.adm-detail-list dd{padding-bottom:8px}}
/* ADM Activity Board: a modern classroom scene with photo-only participants. */
.adm-board-panel{overflow:hidden;background:linear-gradient(145deg,#fff 0%,#f5f8fc 100%)}
.adm-board-controls{flex-wrap:wrap;justify-content:flex-end}
.adm-board-viewport{padding:0 0 18px}
.adm-board-viewport:fullscreen{display:grid;place-items:center;padding:26px;background:radial-gradient(circle at 50% 0,#d9eff8,#6b91a8 120%)}
.adm-board-viewport:fullscreen .adm-classroom-board{margin:0;max-width:calc(100vw - 52px);max-height:calc(100vh - 52px)}
.adm-classroom-board{isolation:isolate;width:960px;height:590px;margin:0 auto;border:0;border-radius:26px;background:linear-gradient(180deg,#f8fdff 0 74%,#c7986d 74% 100%);box-shadow:0 20px 42px rgba(33,73,100,.2),inset 0 -9px 0 rgba(126,78,43,.12);overflow:hidden;color:#153b54}
.adm-classroom-board:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,transparent 0 8%,rgba(115,174,202,.12) 8% 8.25%,transparent 8.25% 91.75%,rgba(115,174,202,.12) 91.75% 92%,transparent 92%),repeating-linear-gradient(90deg,rgba(130,78,45,.1) 0 1px,transparent 1px 66px)}
.adm-classroom-board:after{z-index:-1;left:0;right:0;bottom:0;height:26%;border:0;border-radius:0;background:linear-gradient(135deg,rgba(255,255,255,.14) 25%,transparent 25% 50%,rgba(255,255,255,.1) 50% 75%,transparent 75%),linear-gradient(180deg,#c99b73,#ab7751)}
.adm-classroom-window{position:absolute;left:54px;top:75px;width:190px;height:164px;border:9px solid #f7fbfd;border-radius:15px;background:linear-gradient(135deg,#8cdbfa,#dff8ff 65%,#fff);box-shadow:0 6px 16px rgba(35,93,119,.16),inset 0 0 0 3px #91c3d8}
.adm-classroom-window:before,.adm-classroom-window:after{content:"";position:absolute;background:rgba(255,255,255,.92)}.adm-classroom-window:before{top:0;bottom:0;width:7px;left:50%;transform:translateX(-50%)}.adm-classroom-window:after{left:0;right:0;height:7px;top:50%;transform:translateY(-50%)}
.adm-classroom-window i:first-child{position:absolute;width:70px;height:33px;top:21px;left:23px;border-radius:999px;background:rgba(255,255,255,.8);filter:blur(1px)}.adm-classroom-window i:last-child{position:absolute;width:62px;height:27px;right:16px;bottom:24px;border-radius:999px;background:rgba(255,255,255,.72);filter:blur(1px)}
.adm-classroom-shelf{position:absolute;right:47px;bottom:154px;width:190px;height:18px;border-radius:8px;background:#b47948;box-shadow:0 5px 0 #8b592f}.adm-classroom-shelf i{position:absolute;bottom:18px;width:28px;border-radius:7px 7px 2px 2px;background:#ffbf77}.adm-classroom-shelf i:nth-child(1){left:12px;height:42px;background:#ffb7c5}.adm-classroom-shelf i:nth-child(2){left:50px;height:61px;background:#86cfee}.adm-classroom-shelf i:nth-child(3){left:94px;height:36px;background:#ffe189}.adm-classroom-shelf i:nth-child(4){left:134px;height:53px;background:#b9ddb8}
.adm-board-title{left:50%;top:25px;transform:translateX(-50%) rotate(-1.2deg);display:grid;place-items:center;min-width:300px;min-height:82px;padding:12px 34px;border:3px solid #164862;border-radius:17px 23px 15px 20px;background:linear-gradient(135deg,#fffdf5,#f4e4bd);box-shadow:5px 7px 0 rgba(17,71,96,.19),inset 0 0 0 4px rgba(255,255,255,.7);color:#0d526f;font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;font-size:2.18rem;font-weight:800;letter-spacing:.025em;line-height:1;text-shadow:1px 1px 0 #fff}.adm-board-title:before,.adm-board-title:after{content:"✦";position:absolute;font-family:Georgia,serif;font-size:1rem;color:#e19a44}.adm-board-title:before{left:14px;top:10px}.adm-board-title:after{right:14px;bottom:9px}.adm-board-title span{border-bottom:2px dashed rgba(13,82,111,.48);padding:0 7px 5px}
.adm-board-person{z-index:2;display:grid;place-items:center;width:70px;height:70px;padding:0;border:4px solid #fff;border-radius:50%;background:#d8eff8;box-shadow:0 7px 14px rgba(20,56,78,.23),0 0 0 3px #4fa6c6;overflow:visible;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.adm-board-person:hover,.adm-board-person:focus-visible{transform:translateY(-4px) scale(1.07);background:#fff;box-shadow:0 10px 20px rgba(20,56,78,.3),0 0 0 4px #e2a365;outline:0}.adm-board-person.is-idle{filter:grayscale(.86);opacity:.76;box-shadow:0 7px 14px rgba(20,56,78,.18),0 0 0 3px #9daab1}.adm-board-person img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#dce6ea}.adm-board-empty{padding:140px 120px 40px;color:#24536a;font-family:"Segoe Print","Bradley Hand",cursive;font-size:1.35rem;text-align:center}
/* Refined ADM Activity Board: enhanced Vergonville courtyard backdrop. */
.adm-board-toolbar{align-items:center}.adm-board-toolbar>p{margin:0;max-width:650px;color:var(--muted);font-size:.8rem}.adm-board-viewport:fullscreen{background:#b9d7e6}.adm-board-viewport:fullscreen .adm-classroom-board{width:min(98vw,1580px);height:min(90vh,880px);max-width:none;max-height:none}.adm-classroom-board{width:1040px;height:620px;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.16)),url("../img/adm-courtyard-background-hd.b9a3f39cb56f.png") center/cover no-repeat;border:0;border-radius:24px;box-shadow:0 18px 45px rgba(8,43,66,.22),0 0 0 1px rgba(255,255,255,.76);overflow:hidden}.adm-classroom-board:before{z-index:0;background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(210,245,255,.10) 42%,rgba(255,255,255,.18));backdrop-filter:brightness(1.17) saturate(1.08);-webkit-backdrop-filter:brightness(1.17) saturate(1.08)}.adm-classroom-board:after{z-index:0;left:0;right:0;bottom:0;height:14%;border:0;border-radius:0;background:linear-gradient(0deg,rgba(9,52,75,.18),transparent);pointer-events:none}.adm-classroom-window,.adm-classroom-shelf{display:none}.adm-board-title{z-index:3;top:24px;min-width:294px;min-height:74px;padding:10px 30px;border:2px solid rgba(255,255,255,.92);border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(231,247,255,.69));box-shadow:0 7px 18px rgba(0,35,56,.20),inset 0 0 0 4px rgba(255,255,255,.42);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);color:#073f5b;font-size:2rem}.adm-board-person{z-index:2;width:68px;height:68px;border-color:#fff;box-shadow:0 7px 16px rgba(0,22,35,.34),0 0 0 3px #63c2e7}.adm-board-person.is-draggable{cursor:grab;touch-action:none}.adm-board-person.is-draggable:active{cursor:grabbing}.adm-board-person:hover,.adm-board-person:focus-visible{box-shadow:0 10px 23px rgba(0,22,35,.4),0 0 0 4px #ffcb72}.adm-board-person.is-completed{filter:grayscale(.86);opacity:.76;box-shadow:0 7px 15px rgba(0,22,35,.22),0 0 0 3px #b5c0c6}.adm-board-empty{z-index:1;color:#fff;text-shadow:0 2px 7px rgba(0,0,0,.55)}
.adm-dialog-tasks{margin-top:19px;padding-top:15px;border-top:1px solid var(--line)}.adm-dialog-tasks h3{margin:0 0 10px;font-size:.9rem;color:var(--ink)}.adm-dialog-tasks p{margin:6px 0;color:var(--muted);white-space:pre-wrap;font-size:.8rem}.adm-dialog-tasks .table-shell{max-height:270px;overflow:auto;border:1px solid var(--line);border-radius:10px}.adm-dialog-tasks .modern-table{min-width:660px}.adm-dialog-tasks .modern-table th,.adm-dialog-tasks .modern-table td{vertical-align:top;white-space:normal;font-size:.7rem;line-height:1.35}.adm-dialog-tasks .modern-table th{position:sticky;top:0;z-index:1}
.adm-timeout-dialog{width:min(96vw,980px);max-height:min(86vh,760px);overflow:auto}.adm-timeout-dialog .panel-heading{margin:0 0 16px}.adm-timeout-dialog .table-shell{max-height:52vh;overflow:auto}.adm-timeout-dialog .modern-table{min-width:760px}.adm-timeout-dialog .modern-table th,.adm-timeout-dialog .modern-table td{vertical-align:top;white-space:normal}.adm-timeout-dialog textarea{min-width:150px}
.master-summary{margin-bottom:18px}.supervision-chip-list{display:flex;flex-wrap:wrap;gap:9px}.supervision-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.supervision-chart{min-width:0}.supervision-chart .panel-heading h2{font-size:1rem}.chart-row{display:grid;grid-template-columns:minmax(84px,1fr) minmax(70px,2fr) 24px;gap:8px;align-items:center;margin:11px 0;font-size:.72rem;color:var(--ink)}.chart-track{height:9px;overflow:hidden;border-radius:999px;background:#e7eef5}.chart-track i{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,#70b9db,#1e6c9a)}.chart-row strong{text-align:right;font-size:.76rem}.master-teacher-table{min-width:1500px}.master-teacher-table td{vertical-align:top;white-space:normal;max-width:210px}.master-teacher-table small{display:block;margin-top:4px;color:var(--muted);font-size:.67rem}.master-accomplishment{white-space:pre-wrap!important;min-width:220px}@media(max-width:900px){.supervision-chart-grid{grid-template-columns:1fr}.chart-row{grid-template-columns:120px minmax(90px,1fr) 24px}}
.master-schedule-launch{margin:18px 0}.schedule-calendar-controls{margin:18px 0}.calendar-filter-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.calendar-filter-form label,.schedule-item-grid label{display:grid;gap:6px;color:var(--ink);font-size:.74rem;font-weight:800}.calendar-filter-form select,.calendar-filter-form input,.schedule-item-grid input,.schedule-item-grid select,.schedule-item-grid textarea{width:100%;min-height:42px;border:1px solid #ccdbe7;border-radius:9px;background:#fff;padding:8px 10px;color:var(--ink)}.calendar-filter-form label{min-width:180px;flex:1 1 180px}.calendar-panel{padding:0;overflow:hidden}.calendar-panel>.panel-heading{margin:0;padding:17px 19px;border-bottom:1px solid var(--line)}.calendar-shell{overflow-x:auto;padding:16px;background:#f8fbfe}.teacher-calendar{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;min-width:1160px}.teacher-calendar.day-calendar{grid-template-columns:minmax(0,720px);min-width:0}.calendar-day{overflow:hidden;border:1px solid #d6e1eb;border-radius:13px;background:#fff;box-shadow:0 2px 7px rgba(24,60,92,.05)}.calendar-day>header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:11px 12px;background:#e7f1fb;border-bottom:1px solid #d2e1ed}.calendar-day>header strong{font-size:.82rem;color:#093b62}.calendar-day>header span{color:#577189;font-size:.67rem}.calendar-day-events{display:grid;gap:8px;min-height:210px;padding:10px}.calendar-event{display:grid;gap:3px;border:1px solid #d2e2ed;border-radius:9px;padding:9px 10px;background:#f9fcff}.calendar-event strong{font-size:.78rem;line-height:1.3}.calendar-event span,.calendar-event small{color:#5e7183;font-size:.66rem;line-height:1.4}.calendar-event-time{color:#194e77;font-size:.68rem;font-weight:850}.calendar-event-class{border-left:4px solid #61a8d6}.calendar-event-reminder{border-left:4px solid #e6a550;background:#fffaf0}.calendar-event-reminder .calendar-event-time{color:#8a560d}.calendar-empty{margin:0;color:#8494a3;font-size:.72rem;line-height:1.5}.schedule-item-panel{margin-top:18px}.schedule-item-form{display:grid;gap:15px}.schedule-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.schedule-item-grid .full-span{grid-column:1/-1}.schedule-item-grid textarea{min-height:84px;resize:vertical}.field-error{color:#a92f3c;font-size:.67rem}.form-actions{display:flex;justify-content:flex-start}@media(max-width:900px){.schedule-item-grid{grid-template-columns:1fr 1fr}.teacher-calendar{grid-template-columns:repeat(5,minmax(200px,1fr));min-width:1060px}}@media(max-width:600px){.calendar-filter-form{align-items:stretch}.calendar-filter-form label{flex-basis:100%}.calendar-filter-form .btn{width:100%}.schedule-item-grid{grid-template-columns:1fr}.schedule-item-grid .full-span{grid-column:auto}.calendar-shell{padding:10px}.teacher-calendar{min-width:960px}.teacher-calendar.day-calendar{min-width:0}.calendar-day-events{min-height:150px}}
.class-observation-note{display:grid;gap:2px;margin-top:7px;padding:7px 8px;border:1px solid #e6c276;border-radius:7px;background:#fff5d8;color:#704709}.class-observation-note strong{font-size:.66rem;color:#704709}.class-observation-note span,.class-observation-note small{font-size:.65rem;color:#704709;line-height:1.35}.class-observation-only small{font-weight:500;color:var(--muted);line-height:1.35}
.class-schedule-link{cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.class-schedule-link:hover,.class-schedule-link:focus-visible{border-color:#2b83b9;box-shadow:0 5px 14px rgba(25,91,136,.16);transform:translateY(-1px)}.class-observation-action{margin-top:3px;color:#0d5f95!important;font-weight:800}.task-reminder-notice{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #b9d7ee;border-radius:11px;background:#eef7ff;color:#0b4e78;text-decoration:none;box-shadow:0 3px 8px rgba(22,86,127,.08)}.task-reminder-notice:hover{background:#e2f2ff}.task-reminder-notice>span:nth-child(2){display:flex;flex-direction:column}.task-reminder-notice strong{font-size:.69rem;color:inherit}.task-reminder-notice small{font-size:.62rem;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-reminder-dot{width:9px;height:9px;border-radius:50%;background:#2a89c4;box-shadow:0 0 0 4px rgba(42,137,196,.15)}.task-reminder-notice.is-urgent{border-color:#e2b65d;background:#fff5db;color:#81510a}.task-reminder-notice.is-urgent:hover{background:#ffedbd}.task-reminder-notice.is-urgent .task-reminder-dot{background:#de9021;box-shadow:0 0 0 4px rgba(222,144,33,.18)}
.clickable-supervised-teacher-row{cursor:pointer}.clickable-supervised-teacher-row:hover td,.clickable-supervised-teacher-row:focus td{background:#eef7ff!important}.clickable-supervised-teacher-row:focus{outline:3px solid rgba(38,126,183,.25);outline-offset:-3px}.teacher-supervision-profile{display:flex;align-items:center;gap:16px;margin:18px 0;padding:18px;border:1px solid #d4e2ed;border-radius:16px;background:linear-gradient(125deg,#edf7ff,#f7f1ff);box-shadow:var(--shadow-sm)}.teacher-supervision-profile h2{margin:0 0 5px}.teacher-supervision-profile p{margin:0;color:var(--muted)}.teacher-supervision-avatar{width:76px;height:76px;flex:0 0 76px;overflow:hidden;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 10px rgba(20,66,96,.16)}.teacher-supervision-avatar img{width:100%;height:100%;object-fit:cover}.primary-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.primary-data-grid>div{display:grid;gap:5px;padding:13px 14px;border:1px solid #dce6ee;border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.primary-data-grid span{color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.primary-data-grid strong{font-size:.78rem;line-height:1.42}@media(max-width:850px){.primary-data-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.teacher-supervision-profile{align-items:flex-start}.primary-data-grid{grid-template-columns:1fr}}
.calendar-event{position:relative}.calendar-event-menu{position:absolute;z-index:5;top:5px;right:5px}.calendar-event-menu summary{display:grid;place-items:center;width:25px;height:25px;border:1px solid #bed3e1;border-radius:7px;background:#fff;color:#174f73;font-size:15px;font-weight:900;line-height:1;letter-spacing:1px;cursor:pointer;list-style:none}.calendar-event-menu summary::-webkit-details-marker{display:none}.calendar-event-menu[open] summary{border-color:#4f95bf;background:#eaf5fc}.calendar-event-menu>div{position:absolute;right:0;top:30px;display:grid;min-width:158px;overflow:hidden;border:1px solid #c6d8e5;border-radius:8px;background:#fff;box-shadow:0 8px 20px rgba(16,58,86,.19)}.calendar-event-menu a{padding:8px 10px;color:#164d71;font-size:.68rem;font-weight:800;text-decoration:none;white-space:nowrap}.calendar-event-menu a:hover{background:#edf7ff}.calendar-event:has(.calendar-event-menu)>.calendar-event-time{padding-right:31px}
.adm-task-entry{margin:8px 0 18px}.adm-task-entry-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:9px}.adm-task-entry-heading h3{margin:0 0 3px;font-size:.94rem}.adm-task-entry-heading p{margin:0;color:var(--muted);font-size:.75rem}.adm-task-table{min-width:850px}.adm-task-table th,.adm-task-table td{vertical-align:top;white-space:normal}.adm-task-table input,.adm-task-table select,.adm-task-table textarea{width:100%;min-width:110px;margin:0;font-size:.78rem}.adm-task-table textarea{resize:vertical}.adm-task-remove-column{width:42px;text-align:center}.adm-task-remove{width:28px;height:28px;border:1px solid #e2b9bd;border-radius:50%;background:#fff7f7;color:#a0444d;font-size:1.1rem;line-height:1;cursor:pointer}.adm-task-remove:hover{background:#ffe9ea}.adm-time-in-notice,.adm-session-notice{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #f0cf88;border-radius:11px;background:#fff9ea;color:#704c09;text-decoration:none;box-shadow:0 3px 8px rgba(94,68,16,.07)}.adm-time-in-notice:hover{background:#fff2cf}.adm-session-notice{border-color:#abd8c2;background:#edf9f2;color:#126044}.adm-time-in-notice span:last-child,.adm-session-notice>span:nth-child(2){display:flex;flex-direction:column}.adm-time-in-notice strong,.adm-session-notice strong{font-size:.69rem}.adm-time-in-notice small,.adm-session-notice small{font-size:.62rem}.adm-session-notice a{margin-left:3px;padding:4px 7px;border-radius:7px;background:#fff;color:#126044;font-size:.67rem;font-weight:800;text-decoration:none}.adm-session-notice a:hover{background:#dff4e8}.adm-notice-dot{width:9px;height:9px;border-radius:50%;background:#e5a227;box-shadow:0 0 0 4px rgba(229,162,39,.16)}.adm-session-notice .adm-notice-dot{background:#28a66f;box-shadow:0 0 0 4px rgba(40,166,111,.15)}
.adm-score-fields{display:grid;grid-template-columns:repeat(2,minmax(60px,1fr));gap:6px}.adm-score-fields label{display:grid;grid-template-columns:16px minmax(44px,1fr);align-items:center;gap:3px;font-size:.72rem;font-weight:700}.adm-score-fields input{min-width:44px!important}.adm-task-table small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem}
@media(max-width:720px){.adm-board-toolbar{align-items:flex-start}.adm-task-entry-heading{align-items:flex-start;flex-direction:column}.adm-time-in-notice{padding:5px 7px}.adm-time-in-notice small{display:none}.adm-time-in-notice strong{font-size:.63rem}}
@media(max-width:600px){.adm-board-controls{justify-content:flex-start}.adm-classroom-board{margin:0 10px;width:960px;height:570px}.adm-board-title{min-width:240px;min-height:63px;font-size:1.66rem}.adm-board-person{width:58px;height:58px}}
.notification-center{position:absolute;right:218px;z-index:46}.notification-center summary{list-style:none}.notification-center summary::-webkit-details-marker{display:none}.notification-center .notification-button{border-color:#bed4e2;color:#174f73;font-size:19px;line-height:1}.notification-center .notification-button>span{position:static;display:block;width:auto;height:auto;border:0;background:transparent;color:inherit;font-size:19px}.notification-center .notification-button>i{position:absolute;right:-6px;top:-7px;min-width:19px;height:19px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:#e33d3d;color:#fff;font-size:.65rem;font-style:normal;font-weight:800;line-height:15px;text-align:center}.notification-menu{position:absolute;right:0;top:calc(100% + 7px);display:grid;width:270px;max-height:360px;overflow:auto;padding:6px;border:1px solid #cbdbe6;border-radius:11px;background:#fff;box-shadow:0 10px 26px rgba(16,58,86,.18)}.notification-menu a{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:8px;color:#133f5a;text-decoration:none}.notification-menu a:hover{background:#eef7fc}.notification-menu strong{font-size:.72rem}.notification-menu small{font-size:.65rem;color:#667c8d;line-height:1.35}.notification-center:not([open]) .notification-menu{display:none}@media(max-width:950px){.notification-center{right:82px}}@media(max-width:430px){.notification-center{right:58px}.notification-center .notification-button{width:38px;height:38px}}
@media(max-width:430px){.notification-center .notification-button{display:grid}}
/* Keep the account control as the true rightmost header element. */
.app-header>.notification-center{right:clamp(240px,18vw,360px)}
@media(max-width:950px){.app-header>.notification-center{right:82px}}@media(max-width:430px){.app-header>.notification-center{right:58px}}
.header-actions{margin-left:auto;padding-right:0}.header-actions .profile-wrap{margin-left:0}.app-header>.notification-center{right:218px}.notification-center .notification-button>span{width:20px;height:20px;background:url("../icons/bell.b3fbb74be291.svg") center/20px 20px no-repeat!important;filter:invert(24%) sepia(26%) saturate(1323%) hue-rotate(161deg) brightness(88%) contrast(88%);font-size:0!important}.notification-center .notification-button{border-radius:12px;background:#f7fbfe;box-shadow:0 2px 7px rgba(20,66,96,.07)}.notification-center .notification-button:hover{background:#eaf5fb;border-color:#8dbdd8}@media(max-width:950px){.app-header>.notification-center{right:82px}}@media(max-width:430px){.app-header>.notification-center{right:58px}}
/* Compact account controls: identity stays in the menu and the photo remains
   the rightmost header control at every viewport width. */
.profile-copy,.profile-chevron{display:none!important}.profile-button{padding:4px;border-radius:50%}.profile-summary-role{color:#174f73!important;font-weight:800}.app-header>.notification-center{right:100px!important}.notification-center .notification-button{width:36px;height:36px;border:0!important;background:transparent!important;box-shadow:none!important}.notification-center .notification-button:hover{border:0!important;background:transparent!important;box-shadow:none!important;opacity:.72}.notification-center .notification-button>span{width:22px;height:22px;background-size:22px 22px!important}@media(max-width:950px){.app-header>.notification-center{right:88px!important}}@media(max-width:430px){.app-header>.notification-center{right:74px!important}}
/* Quiet, modern header menus with minimal chrome. */
.profile-menu,.notification-menu{border:0!important;border-radius:16px;background:rgba(255,255,255,.985);box-shadow:0 12px 34px rgba(20,48,70,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.profile-menu{top:54px;padding:7px}.profile-summary{gap:2px;padding:11px 12px 9px;border-bottom:0}.profile-summary strong{font-size:.82rem}.profile-summary small{font-size:.67rem;line-height:1.35}.profile-summary-role{margin-top:4px!important;font-size:.63rem!important;letter-spacing:.035em}.profile-menu a,.profile-menu button{padding:9px 11px;border-radius:10px;font-size:.72rem}.profile-menu a:hover,.profile-menu button:hover{background:#f1f7fb}.profile-menu form{margin:0}.profile-menu img{width:16px}.profile-menu #vestra-profile-workspace-switcher:not(:empty){margin:2px 5px;padding:7px 6px;border:0;border-radius:10px;background:#f7fafc}.notification-menu{top:calc(100% + 9px);padding:7px}.notification-menu a{padding:10px 11px;border-radius:10px}.notification-menu a+a{margin-top:2px}.notification-menu a:hover{background:#f1f7fb}
/* The board title is intentionally solid; only the courtyard receives the glass treatment. */
.adm-board-title{border-color:#d7edf7;background:linear-gradient(135deg,#ffffff,#eaf7ff);box-shadow:0 7px 18px rgba(0,35,56,.25),inset 0 0 0 4px #f8fdff;backdrop-filter:none;-webkit-backdrop-filter:none}
.app-header{gap:18px;box-shadow:0 2px 12px rgba(17,42,68,.035)}
.content-area{width:100%}
.panel,.metric-card,.class-card,.term-modern-card,.dashboard-action-card{transition:box-shadow .16s ease,border-color .16s ease,transform .16s ease}
.adviser-dashboard-tools{margin:0 0 18px}.dashboard-action-card{position:relative;min-height:112px}.action-card-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;margin:0 0 10px;border-radius:9px;background:#eaf3ff}.action-card-icon img{width:17px;height:17px;object-fit:contain}.dashboard-action-card:not(:has(.action-card-icon))::before{content:"";display:block;width:7px;height:7px;margin:2px 0 12px;border-radius:50%;background:#4a8bb7;box-shadow:0 0 0 5px #edf6fc}
.workspace-home-heading{margin-bottom:24px}.workspace-home-heading h1{font-size:clamp(1.7rem,2.5vw,2.25rem)}.workspace-profile-card{display:grid;grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:23px;padding:26px 30px;margin:0 0 36px;border-radius:22px;background:linear-gradient(115deg,#fff2e9 0%,#f8edf6 50%,#e8f5f2 100%);box-shadow:0 12px 30px rgba(32,66,91,.08)}.workspace-profile-card>img{width:104px;height:104px;object-fit:cover;border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.9);box-shadow:0 8px 20px rgba(23,71,108,.12)}.workspace-profile-card h2{margin:2px 0 7px;font-size:clamp(1.25rem,2vw,1.65rem);color:#082d4d}.workspace-profile-card p{margin:0;max-width:650px;color:#536777;font-size:.87rem;line-height:1.6}.workspace-profile-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.employee-number-badge{padding:10px 15px;border-radius:999px;background:rgba(255,255,255,.72);color:#30485e;font-size:.76rem;font-weight:800;white-space:nowrap}.workspace-profile-card .btn{white-space:nowrap}.workspace-home-section .panel-heading{margin:0 0 22px}.workspace-home-section .panel-heading h2{font-size:1.18rem}.workspace-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:20px 18px;max-width:1180px}.workspace-home-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;min-height:196px;padding:16px 10px 14px;text-align:center;text-decoration:none;color:var(--ink);border:0;border-radius:16px;background:transparent;box-shadow:none;transition:transform .16s ease,background .16s ease}.workspace-home-card:hover,.workspace-home-card:focus-visible{transform:translateY(-3px);background:#f7fbfe;outline:0}.workspace-home-icon{flex:0 0 auto;width:76px;height:76px;display:grid;place-items:center;border-radius:24px;background:#edf5fb;transition:background .16s ease,transform .16s ease}.workspace-home-card:hover .workspace-home-icon{background:#e0eef8;transform:scale(1.035)}.workspace-home-icon img{width:43px;height:43px;object-fit:contain;filter:brightness(0) saturate(100%) invert(16%) sepia(41%) saturate(1671%) hue-rotate(166deg) brightness(90%) contrast(99%)}.workspace-home-card strong,.workspace-home-card small{display:block}.workspace-home-card strong{margin:0;color:#073f68;font-size:.9rem;line-height:1.28}.workspace-home-card small{max-width:190px;color:var(--muted);font-size:.72rem;line-height:1.45}.workspace-home-card:focus-visible .workspace-home-icon{box-shadow:0 0 0 3px #a9d6ef}@media(max-width:760px){.workspace-profile-card{grid-template-columns:78px minmax(0,1fr);gap:16px;padding:22px}.workspace-profile-card>img{width:78px;height:78px}.workspace-profile-actions{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;width:100%}.workspace-home-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.workspace-home-card{min-height:180px}.workspace-home-icon{width:66px;height:66px;border-radius:21px}.workspace-home-icon img{width:37px;height:37px}}@media(max-width:430px){.workspace-profile-card{grid-template-columns:62px minmax(0,1fr);padding:18px}.workspace-profile-card>img{width:62px;height:62px}.workspace-profile-actions{align-items:stretch;flex-direction:column}.workspace-profile-card .btn{width:100%;text-align:center}.workspace-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workspace-home-card{min-height:166px;padding:12px 6px}.workspace-home-icon{width:58px;height:58px;border-radius:18px}.workspace-home-icon img{width:32px;height:32px}.workspace-home-card strong{font-size:.79rem}.workspace-home-card small{font-size:.66rem}}
.notification-menu .notification-action{display:block;width:100%;padding:10px 12px;text-align:left;border:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit}.notification-menu .notification-action:hover{background:#f4f8fb}.notification-menu .notification-action strong,.notification-menu .notification-action small{display:block}.notification-menu .notification-action small{margin-top:3px;color:var(--muted);font-size:.72rem}.ecr-request-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 48px);border:0;border-radius:18px;padding:22px;background:#fff;box-shadow:0 24px 65px rgba(5,42,67,.24)}.ecr-request-dialog::backdrop{background:rgba(9,36,57,.35)}.ecr-request-dialog-item{padding:15px 0;border-top:1px solid #e8eef3}.ecr-request-dialog-item>strong,.ecr-request-dialog-item>small{display:block}.ecr-request-dialog-item>small{margin-top:4px;color:var(--muted);font-size:.75rem}.ecr-request-dialog-item p{margin:8px 0;color:#405569;font-size:.8rem}.ecr-request-dialog-item textarea{width:100%;margin:4px 0 10px}
.header-school-logo{width:38px;height:38px;object-fit:contain;flex:0 0 38px}.sidebar-brand{align-items:center}.sidebar-brand>img{background:transparent;border-radius:0;padding:0}.sidebar-brand #vestra-shell-controls{margin-left:auto;flex:0 0 auto}.sidebar-brand .vestra-shell-tools{display:flex}.sidebar-brand .vestra-sidebar-button{width:30px;height:30px;border:0;border-radius:9px;background:rgba(7,63,91,.09);color:#073f5b;font-size:.85rem}.sidebar-brand .vestra-sidebar-button:hover{background:rgba(7,63,91,.16)}.sidebar-collapsed .sidebar-brand #vestra-shell-controls{position:absolute;opacity:0;pointer-events:none;transition:opacity .16s ease}.sidebar-collapsed .sidebar-brand:hover #vestra-shell-controls,.sidebar-collapsed .sidebar-brand:focus-within #vestra-shell-controls{opacity:1;pointer-events:auto}.sidebar-collapsed .sidebar-brand{position:relative}.sidebar-collapsed .sidebar-brand .vestra-sidebar-button{background:rgba(7,63,91,.16)}
.sidebar-brand>img{object-position:center;filter:none!important}.sidebar-collapsed .sidebar-brand #vestra-shell-controls{inset:0;display:grid;place-items:center}.sidebar-collapsed .sidebar-brand .vestra-sidebar-button{width:48px;height:48px;border-radius:50%;background:transparent;color:transparent;box-shadow:none}.sidebar-collapsed .sidebar-brand .vestra-sidebar-button::after{content:"›";color:#fff;font-size:1.7rem;font-weight:700;line-height:1;text-shadow:0 1px 3px #073f5b,0 0 3px #073f5b}.sidebar-collapsed .sidebar-brand .vestra-sidebar-button:hover{background:transparent}
.sidebar-brand-copy{width:92px}.sidebar-brand-copy span{display:block;width:92px;max-width:none!important;text-align:center;white-space:nowrap;letter-spacing:.015em!important;font-size:.73rem!important}
.panel:hover,.metric-card:hover,.class-card:hover,.term-modern-card:hover{border-color:#ccd9e5;box-shadow:var(--shadow)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(27,117,232,.22);outline-offset:2px}.btn:disabled,.btn[disabled]{background:#d5dde6!important;color:#738196!important;border-color:#b9c5d1!important;box-shadow:none!important;cursor:not-allowed;opacity:1;filter:saturate(.35)}.btn:disabled:hover,.btn[disabled]:hover{transform:none}
.test-result-table thead .stat-enrollment{background:#ddecf8;color:#123e61}.test-result-table thead .stat-tested{background:#dff2e5;color:#245840}.test-result-table thead .stat-performance{background:#fff0cf;color:#6b5122}.test-result-chart{display:grid;gap:10px;margin-top:24px}.test-result-chart>div{display:grid;grid-template-columns:110px minmax(120px,1fr) 64px;align-items:center;gap:12px;font-size:.75rem}.test-result-chart i{display:block;width:min(var(--mps),100%);height:18px;border-radius:999px;background:linear-gradient(90deg,#76b5d8,#5f88c6)}.test-result-chart strong{text-align:right;color:#073f5b}@media(max-width:600px){.test-result-chart>div{grid-template-columns:82px minmax(90px,1fr) 50px}}
.table-shell,.table-wrap{max-width:100%;background:#fff;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-shell:focus,.table-wrap:focus{outline:3px solid rgba(27,117,232,.16);outline-offset:2px}
.modern-table tbody tr:hover td{background:#f7faff}
.modern-table .history-placeholder td{background:#f8fafc;color:#6b7785;font-style:italic}.modern-table .history-placeholder:hover td{background:#f1f5f9}
.global-loading-bar{position:absolute;z-index:34;top:85px;right:0;left:0;height:3px;overflow:hidden;pointer-events:none}
.global-loading-bar i{display:block;width:34%;height:100%;transform:translateX(-120%);border-radius:999px;background:linear-gradient(90deg,#1b75e8,#64b5ff)}
.global-loading-bar.is-loading i{animation:vestra-loading 1s ease-in-out infinite}
@keyframes vestra-loading{50%{transform:translateX(190%)}100%{transform:translateX(420%)}}
.btn.is-loading{cursor:wait;opacity:.8}.btn.is-loading:before{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vestra-spin .7s linear infinite}
@keyframes vestra-spin{to{transform:rotate(360deg)}}
.auth-module-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 15px}.auth-module-list>div{display:flex;flex-direction:column;gap:3px;border:1px solid #dce6ef;border-radius:11px;background:#f8fafc;padding:10px 12px}.auth-module-list strong{color:#073f79;font-size:.78rem;letter-spacing:.06em}.auth-module-list span{color:#65778a;font-size:.65rem;line-height:1.3}
.auth-vestra-brand span{max-width:430px;margin:auto;line-height:1.45;letter-spacing:.045em}
@media(max-width:1200px){
  .app-header{padding-inline:20px}
}
@media(max-width:950px){
  .app-sidebar{width:min(86vw,290px)}.sidebar-open{overflow:hidden}
  .global-loading-bar{top:85px}
}
@media(max-width:700px){
  .app-header{gap:9px}.vestra-sidebar-button{width:38px;height:38px}.header-context{flex:1;gap:8px}.header-context>strong{font-size:.82rem}.module-card{min-width:44px;padding:7px 8px}.global-loading-bar{top:71px}
  .page-title-row{align-items:flex-start}.page-title-row>.workspace-actions{width:100%}.page-title-row>.workspace-actions .btn{flex:1}.panel{padding:15px}.modern-table th,.modern-table td{padding:10px}.auth-module-list{grid-template-columns:1fr}
}
@media(max-width:480px){
  .app-header{padding-inline:10px}.header-context>strong{font-size:.76rem}.profile-button{padding-inline:0}.profile-chevron{display:none}.content-area{padding:14px}.panel-heading{flex-direction:column}.workspace-actions>.btn{width:100%}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Section 14: Attendance and official SF2 */
.pastel-blue-heading{background:#eaf4ff!important}.pastel-green-heading{background:#eaf7ef!important}.pastel-teal-heading{background:#e6f7f6!important}.pastel-aqua-heading{background:#e7f7fb!important}.pastel-cream-card,.pastel-cream-panel{background:#fff9e8!important}.pastel-lavender-card,.pastel-lavender-panel{background:#f5f0ff!important}.pastel-aqua-card{background:#eaf9fc!important}
.attendance-summary-band{border-radius:14px;border:1px solid #d9e5ec;box-shadow:var(--shadow-sm);overflow:hidden}.attendance-summary-band>div{background:transparent}.attendance-metrics{margin:16px 0}.attendance-metrics .metric-card{min-height:108px}.attendance-metrics .metric-card small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}.attendance-panel{padding:0;overflow:hidden}.attendance-panel>.panel-heading{padding:17px 19px;margin:0}.attendance-panel>.table-wrap{border-radius:0;border-inline:0;border-bottom:0}.month-navigation{margin:14px 0}.status-pill{display:inline-flex;align-items:center;border:1px solid #b9ccdb;border-radius:999px;background:#fff;padding:5px 10px;font-size:.72rem;font-weight:800;white-space:nowrap}.status-text{color:#124f79}
.monthly-attendance-table{width:max-content;min-width:100%;font-size:.72rem}.monthly-attendance-table th,.monthly-attendance-table td{border:1px solid #dfe7ed;padding:6px;text-align:center}.monthly-attendance-table .sticky-col{left:0;min-width:230px;max-width:230px;text-align:left;z-index:5}.monthly-attendance-table tbody .sticky-col small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.monthly-attendance-table thead tr:first-child th{top:0}.monthly-attendance-table thead tr:nth-child(2) th{position:sticky;top:34px;z-index:4}.monthly-attendance-table .date-head a{display:block;color:#124f79;text-decoration:none;padding:2px}.monthly-attendance-table .date-head a:hover{background:#dceeff;border-radius:4px}.monthly-attendance-table .day-head{background:#edf8f1}.attendance-cell{min-width:36px;font-weight:800}.holiday-head{background:#eee7fb!important;color:#644b86!important}.holiday-cell{background:#faf7ff!important}.ineligible-cell,.ineligible-row{background:#f7f8fa!important;color:#8a97a3}.movement-remark{min-width:130px;color:#714f12;font-weight:750;white-space:nowrap}.attendance-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.attendance-detail-grid .panel{box-shadow:var(--shadow-sm)}
.daily-actions{align-items:stretch;margin:14px 0}.daily-actions form{display:flex;gap:8px;flex-wrap:wrap}.daily-actions input[type="text"]{min-width:240px;padding:9px 10px;border:1px solid #cfd9e4;border-radius:8px}.daily-attendance-table{min-width:760px}.daily-attendance-table select,.daily-attendance-table input{width:100%;min-width:150px;padding:8px;border:1px solid #cbd7e2;border-radius:7px;background:#fff}.daily-attendance-table th{background:#eaf4ff}.eligibility-chip{display:inline-flex;border-radius:999px;background:#eef1f4;padding:5px 9px;font-size:.68rem;color:#667787}.holiday-banner{display:flex;gap:12px;align-items:center;border:1px solid #ded2f1;border-radius:12px;padding:14px 17px;margin:14px 0}.holiday-banner strong{color:#533a79}.holiday-banner span{font-size:.8rem;color:#655b72}
.attendance-calendar-panel{margin:16px 0;padding:0;overflow:hidden}.attendance-calendar-panel>.panel-heading{margin:0;padding:17px 19px}.attendance-calendar{padding:14px 18px 10px}.attendance-calendar-weekdays,.attendance-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.attendance-calendar-weekdays{margin-bottom:7px}.attendance-calendar-weekdays span{text-align:center;color:#60748a;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.attendance-calendar-week{margin-bottom:7px}.attendance-calendar-day{min-height:67px;border-radius:11px;padding:9px 10px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}.attendance-calendar-day strong{font-size:1rem;color:#0a3552}.attendance-calendar-day small{font-size:.64rem;line-height:1.2}.attendance-calendar-day.is-eligible{background:#eef7ff;border:1px solid #c6dded;color:#245d7d;transition:background .16s ease,border-color .16s ease,transform .16s ease}.attendance-calendar-day.is-eligible:hover,.attendance-calendar-day.is-eligible:focus-visible{background:#dcefff;border-color:#79afd0;transform:translateY(-1px)}.attendance-calendar-day.is-unavailable{background:#f5f6f7;color:#98a4af}.attendance-calendar-day.is-unavailable strong{color:#8b99a5}.attendance-calendar-day.is-outside{background:transparent}.attendance-calendar-day.is-today{box-shadow:inset 0 0 0 2px #2c78a5}.attendance-calendar-legend{display:flex;gap:18px;flex-wrap:wrap;padding:0 18px 16px;color:#60748a;font-size:.7rem}.attendance-calendar-legend span{display:flex;align-items:center;gap:6px}.attendance-calendar-legend i{width:12px;height:12px;border-radius:4px}.attendance-calendar-legend i.is-eligible{background:#dcefff;border:1px solid #79afd0}.attendance-calendar-legend i.is-unavailable{background:#f0f1f2;border:1px solid #d9dde1}
.daily-date-navigator{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:14px 17px}.daily-date-navigator>div:first-child{display:flex;flex-direction:column;gap:3px}.daily-date-navigator small{color:var(--muted)}.daily-date-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.daily-date-controls select{min-width:220px;padding:8px 34px 8px 10px;border:1px solid #cad8e4;border-radius:9px;background:#fff;color:#12334d;font:inherit}
.correction-panel{border-color:#ead8a9;background:linear-gradient(105deg,#fffaf0,#fff)}.correction-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.correction-grid label{display:grid;gap:6px;font-size:.75rem;font-weight:800}.correction-grid select,.correction-grid input,.correction-grid textarea,.correction-decision-form textarea{width:100%;padding:9px;border:1px solid #cfd9e4;border-radius:8px;background:#fff}.correction-grid .full-span{grid-column:1/-1}.correction-decision-form{display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:end}
.sf2-browser-sheet{background:#fff;border:1px solid #b9c4cd;border-radius:10px;padding:17px;box-shadow:var(--shadow-sm);color:#071c6b}.sf2-browser-title{text-align:center}.sf2-browser-title h1{font-size:1.25rem;color:#071c6b}.sf2-browser-title p{font-size:.65rem;font-style:italic}.sf2-browser-meta{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #26323b;margin:13px 0}.sf2-browser-meta>div{display:grid;grid-template-columns:auto 1fr;border:1px solid #26323b;padding:6px;gap:8px;font-size:.72rem}.sf2-browser-meta span{font-weight:650}.sf2-browser-table{width:max-content;min-width:100%;font-size:.63rem;color:#071c6b}.sf2-browser-table th,.sf2-browser-table td{border:1px solid #1c262e;padding:3px}.sf2-browser-table th{background:#e7f7f6;color:#071c6b}.sf2-browser-table .sf2-name-col{min-width:230px}.sf2-browser-table .sf2-remarks-col{min-width:150px}.sf2-preview-wrap{border-color:#1c262e}.sf2-summary-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-top:14px}.sf2-summary-grid h2{font-size:.85rem;text-transform:uppercase}.sf2-summary-grid p{font-size:.68rem;line-height:1.45}.sf2-summary-table th,.sf2-summary-table td{border:1px solid #1c262e;padding:4px;font-size:.64rem}.sf2-summary-table th{background:#e7f7f6}.sf2-certification{margin-top:18px;text-align:center}.sf2-certification>div{display:grid;grid-template-columns:1fr 1fr;gap:90px;margin:28px 50px}.sf2-certification span{display:grid;border-bottom:1px solid #111}.sf2-certification small{color:#071c6b}.school-attendance-summary th{background:#e7f7fb}
@media(max-width:900px){.attendance-detail-grid,.sf2-summary-grid{grid-template-columns:1fr}.sf2-browser-sheet{padding:10px}.sf2-browser-meta{grid-template-columns:1fr 1fr}.correction-decision-form{grid-template-columns:1fr}.correction-decision-form textarea{grid-column:1/-1}}
@media(max-width:650px){.attendance-detail-grid,.correction-grid{grid-template-columns:1fr}.correction-grid .full-span{grid-column:auto}.daily-actions form,.daily-actions input[type="text"]{width:100%}.daily-actions .btn{width:100%}.sf2-browser-meta{grid-template-columns:1fr}.sf2-certification>div{grid-template-columns:1fr;gap:35px;margin-inline:10px}.monthly-attendance-table .sticky-col{min-width:180px;max-width:180px}.attendance-calendar{padding:10px}.attendance-calendar-weekdays,.attendance-calendar-week{gap:3px}.attendance-calendar-day{min-height:48px;padding:6px;align-items:center}.attendance-calendar-day small{display:none}.attendance-calendar-day strong{font-size:.82rem}.attendance-calendar-legend{padding-inline:10px}.daily-date-navigator{align-items:stretch;flex-direction:column}.daily-date-controls{justify-content:flex-start}.daily-date-controls select{width:100%;min-width:0}.daily-date-controls .btn{flex:1}}
@media print{.sf2-browser-sheet{border:0;border-radius:0;box-shadow:none;padding:0}.sf2-preview-wrap{overflow:visible}.sf2-browser-table{width:100%}.sf2-browser-table .sf2-name-col{min-width:0}.sf2-browser-table .sf2-remarks-col{min-width:0}}

/* Section 15: configuration, staffing, and timetable workspaces */
.pastel-page-heading{background:linear-gradient(135deg,#edf6ff,#f4f1fb);border:1px solid #dbe7f2;border-radius:16px;padding:18px 20px;box-shadow:var(--shadow-sm)}
.configuration-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.configuration-summary>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:5px}.configuration-summary span{font-size:.69rem;color:var(--muted);text-transform:uppercase;letter-spacing:.045em}.configuration-summary strong{font-size:.88rem;color:var(--blue-900)}
.subject-config-table{min-width:1050px}.weekly-schedule{min-width:980px;table-layout:fixed}.weekly-schedule th:first-child{width:120px}.weekly-schedule .friday-column{background:#fff4e3}.schedule-cell{display:flex;flex-direction:column;gap:5px;min-width:120px;padding:8px;border:1px solid #dce7f0;background:#f8fbfe;border-radius:9px}.schedule-cell small{margin:0!important}.schedule-cell .status-pill{align-self:flex-start;padding:3px 7px;font-size:.62rem}.staffing-edit-panel,.schedule-form-panel{margin-top:16px}.responsive-form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:13px}.responsive-form-grid>p{margin:0}.responsive-form-grid>div{display:flex;align-items:flex-end}.teacher-program-table{min-width:900px}
.schedule-sort-form label{display:grid;gap:5px;font-size:.72rem;font-weight:800}.schedule-sort-form select{min-width:145px;padding:8px 30px 8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.schedule-list-table{min-width:760px}.schedule-entry-form{display:grid;gap:16px}.schedule-day-field{border:1px solid #d7e2ec;border-radius:12px;padding:13px 15px;margin:0;background:#f8fbfe}.schedule-day-field legend{padding:0 6px;font-size:.76rem;font-weight:850;color:var(--ink)}.schedule-day-field>div{display:flex;gap:9px;flex-wrap:wrap}.schedule-day-field>div>div label{display:flex;align-items:center;gap:7px;min-width:104px;border:1px solid #cddbe6;border-radius:999px;background:#fff;padding:8px 12px;cursor:pointer;font-size:.75rem;font-weight:750}.schedule-day-field input{order:-1;margin:0;width:16px;height:16px;accent-color:var(--blue-600)}.schedule-day-field label:has(input:checked){border-color:#6aace9;background:#e9f3ff;color:#0d5cad}.schedule-day-field small{display:block;margin-top:9px;color:var(--muted);font-size:.7rem}.schedule-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.schedule-form-grid label{display:grid;align-content:start;gap:6px;font-size:.73rem;font-weight:800}.schedule-form-grid input,.schedule-form-grid select{width:100%;min-height:42px;padding:8px 10px;border:1px solid #cfdbe5;border-radius:9px;background:#fff}.schedule-form-grid small{color:var(--muted);font-size:.66rem;font-weight:500;line-height:1.35}.nutrition-date-bar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:13px 15px;border:1px solid #d8e6de;border-radius:11px;background:#eef9f2}.nutrition-date-bar label{display:grid;gap:5px;font-size:.74rem;font-weight:850;color:var(--ink)}.nutrition-date-bar input{min-height:40px;padding:7px 10px;border:1px solid #c6d8cf;border-radius:8px;background:#fff}.nutrition-date-bar span{padding-bottom:10px;color:var(--muted);font-size:.72rem}.teacher-program-table{min-width:900px}
@media(max-width:900px){.configuration-summary{grid-template-columns:1fr 1fr}.responsive-form-grid,.schedule-form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.configuration-summary,.responsive-form-grid,.schedule-form-grid{grid-template-columns:1fr}.pastel-page-heading{padding:15px}.weekly-schedule{min-width:820px}.schedule-sort-form{width:100%}.schedule-sort-form select{width:100%}.schedule-day-field>div>div{flex:1 1 42%}.schedule-day-field>div>div label{min-width:0;width:100%}.nutrition-date-bar{align-items:stretch}.nutrition-date-bar label,.nutrition-date-bar input{width:100%}}
.page-title-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}
.table-actions{display:flex;flex-wrap:wrap;gap:.45rem}
.assessment-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0 1.25rem}.assessment-date-grid label{display:grid;gap:.4rem;font-weight:700;color:var(--ocean-blue,#123252)}.assessment-date-grid p{margin:0;padding:.75rem 1rem;border-radius:.65rem;background:#f6f9fc;color:var(--ocean-blue,#123252)}@media(max-width:760px){.assessment-date-grid{grid-template-columns:1fr}}
.supervision-task-dialog{width:min(680px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);margin:auto;padding:1.35rem;border:0;border-radius:18px;background:#fff;box-shadow:0 24px 65px rgba(13,48,74,.3);color:#123252}.supervision-task-dialog::backdrop{background:rgba(18,50,82,.35);backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.dialog-heading h2{margin:.15rem 0}.dialog-heading p{margin:.3rem 0;color:#60748a}.dialog-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d4e0e9;border-radius:50%;background:#fff;color:#123252;font-size:1.5rem;line-height:1;cursor:pointer}.dialog-close:hover{background:#edf7ff}.task-scope-choice{display:flex;gap:1.1rem;margin:0 0 1rem;padding:.8rem 1rem;border:1px solid #dbe7ef;border-radius:10px}.task-scope-choice legend{padding:0 .3rem;color:#365775;font-size:.83rem;font-weight:800}.task-scope-choice label{display:flex;align-items:center;gap:.4rem;color:#123252;font-weight:700}.grade-program-group{margin:.7rem 0;border:1px solid #d8e5ec;border-radius:10px;overflow:hidden}.grade-program-group>summary{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:#f6fbfe;color:#123252;cursor:pointer;list-style:none}.grade-program-group>summary::-webkit-details-marker{display:none}.grade-program-group[open]>summary{border-bottom:1px solid #d8e5ec;background:#eaf5fb}.grade-program-group>summary span{color:#58718a;font-size:.84rem}@media(max-width:600px){.supervision-task-dialog{padding:1rem}.task-scope-choice{display:grid;gap:.6rem}}
.current-class-grid{display:flex;flex-wrap:wrap;gap:.8rem}.current-class-card{display:flex;align-items:center;gap:.75rem;min-width:min(100%,290px);padding:.7rem .85rem;border:1px solid #cfe4db;border-radius:12px;background:#f4fbf7}.current-class-card img{width:46px;height:46px;flex:0 0 46px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 1px 5px rgba(13,48,74,.15)}.current-class-card div{display:grid;gap:.14rem}.current-class-card strong{color:#123252}.current-class-card span{font-size:.85rem;font-weight:700;color:#245f4a}.current-class-card small{color:#597182}
.master-dashboard-task-panel{margin:1.1rem 0}.master-dashboard-task-panel .panel-heading{margin-bottom:.8rem}.grade-scope-check{align-content:start}.grade-scope-check>span{display:flex;align-items:flex-start;gap:.55rem;line-height:1.25}.grade-scope-check input{order:-1;margin:.18rem 0 0}.grade-scope-check small{display:block;margin-top:.4rem;color:#5a6e80;font-weight:500;line-height:1.35}.calendar-event-menu>div form{margin:0}.calendar-event-menu>div button{display:block;width:100%;border:0;background:#fff;color:#164d71;padding:8px 10px;text-align:left;font-size:.68rem;font-weight:800;cursor:pointer;white-space:nowrap}.calendar-event-menu>div button:hover,.calendar-event-menu>div button:focus-visible{background:#edf7ff;outline:0}
body .app-header>.notification-center{right:92px!important}body .app-header .header-actions .profile-wrap{margin-left:52px!important}@media(max-width:950px){body .app-header>.notification-center{right:78px!important}body .app-header .header-actions .profile-wrap{margin-left:48px!important}}@media(max-width:430px){body .app-header>.notification-center{right:66px!important}body .app-header .header-actions .profile-wrap{margin-left:44px!important}}
.adm-expired-dialog{width:min(430px,calc(100vw - 32px));margin:auto;padding:30px;border:0;border-radius:20px;background:#fff;text-align:center;color:#123252;box-shadow:0 24px 70px rgba(9,44,70,.28)}.adm-expired-dialog::backdrop{background:rgba(8,35,55,.52);backdrop-filter:blur(4px)}.adm-expired-dialog-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:#e5f5ec;color:#17754c;font-size:1.65rem;font-weight:900}.adm-expired-dialog h2{margin-bottom:9px}.adm-expired-dialog p{margin:0 0 22px;color:#5d7184;line-height:1.55}.adm-expired-dialog .btn{min-width:120px}
