/* Map portal components to the shared admin theme in /css/minimalist-ui.css. */
.student-portal .portal-workspace-sidebar { padding: 28px 16px 18px; }
.student-portal .portal-workspace-brand img { width: 154px; height: 30px; filter: grayscale(1); }
.student-portal .portal-workspace-brand span { font-size: 11px; }
.student-portal .portal-sidebar-services .sidebar-rail-item { min-height: 44px; gap: 12px; border-radius: 6px; font-weight: 500; justify-content: flex-start; text-align: left; }
.student-portal .portal-sidebar-services .rail-label { font-size: 13px; }
.student-portal .portal-sidebar-services .rail-icon-box { width: 20px; font-size: 19px; }
.student-portal .portal-sidebar-services .sidebar-rail-item.active { background: var(--ui-accent-soft) !important; color: var(--ui-accent) !important; font-weight: 600; box-shadow: none; }
.student-portal .portal-workspace-topbar { min-height: 76px; padding: 16px 32px; background: var(--ui-surface); }
.student-portal .content-area { background: #f8f8f8; padding: 32px clamp(20px,3vw,48px) 48px !important; }
.student-portal .content-area > [class] { max-width: 1440px; }
.student-portal .student-home-heading h1 { font-size: clamp(30px,3vw,42px); font-weight: 400; line-height: 1.12; letter-spacing: -.035em; }
.student-portal .portal-view .ui-panel { border: 1px solid var(--ui-line); border-radius: 8px; box-shadow: none; background: var(--ui-surface); }
.student-portal .portal-view :is(.text-blue-500,.text-blue-600,.text-indigo-500,.text-indigo-600,.text-purple-600) { color: var(--ui-accent); }
.student-portal .portal-view :is(.bg-blue-50,.bg-indigo-50,.bg-purple-50) { background: var(--ui-accent-soft); }
.student-portal .student-home-actions button:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft) !important; }
.student-portal .student-home-actions button > div { background: var(--ui-accent-soft); color: var(--ui-accent); }
.student-portal :is(.btn-primary,.auth-submit),
.student-portal .portal-view button:is(.bg-blue-600,.bg-indigo-600,.bg-slate-900,.bg-zinc-900) { background: var(--ui-accent) !important; color: var(--ui-on-accent); border-radius: 6px; box-shadow: none; }
.student-portal :is(.btn-primary,.auth-submit):hover:not(:disabled),
.student-portal .portal-view button:is(.bg-blue-600,.bg-indigo-600,.bg-slate-900,.bg-zinc-900):hover:not(:disabled) { background: var(--ui-accent-hover) !important; }
.student-portal .portal-progress-fill { background: var(--ui-accent); }
.student-portal :is(.biodata-tab,.finance-tab,.opensea-tab-item).active { color: var(--ui-accent); border-bottom-color: var(--ui-accent); }
.student-portal :is(.form-input,.form-select,.form-textarea) { border-color: var(--ui-line); background: var(--ui-surface); color: var(--ui-ink); border-radius: 6px; }
.student-portal :is(button,a,input,select,textarea):focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 3px; }
.student-portal .bottom-utility-btn { min-width: 44px; min-height: 44px; }
.student-portal .auth-card .auth-form-heading { font-size: 24px; font-weight: 500; margin-bottom: 6px; text-transform: none; }
.student-portal .auth-card .auth-form-description { font-size: 12px; color: var(--ui-secondary); line-height: 1.6; margin-bottom: 28px; }
.student-portal .auth-story h2 { font-weight: 800; }
/* Same underline tabs as the admin module screens. */
.student-portal .portal-view :is(.module-tabbar,.biodata-tabs,.finance-tabs,.opensea-tabs) {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 20px;
  padding: 0; background: transparent; border: 0;
  border-bottom: 1px solid var(--ui-line); border-radius: 0;
  overflow-x: auto; box-shadow: none;
}
.student-portal .portal-view :is(.module-tabbar,.biodata-tabs,.finance-tabs,.opensea-tabs) > button.module-tab {
  display: inline-flex; align-items: center; justify-content: flex-start; gap: 6px;
  flex-shrink: 0; min-height: 46px; padding: 12px 2px;
  border: 0; border-bottom: 2px solid transparent; border-radius: 0;
  background: transparent !important; color: var(--ui-secondary) !important;
  font-size: 13px; font-weight: 500; line-height: 1.5;
  white-space: nowrap; text-transform: none; letter-spacing: normal; box-shadow: none;
}
.student-portal .portal-view :is(.module-tabbar,.biodata-tabs,.finance-tabs,.opensea-tabs) > button.module-tab:hover {
  color: var(--ui-ink) !important; background: transparent !important;
}
.student-portal .portal-view :is(.module-tabbar,.biodata-tabs,.finance-tabs,.opensea-tabs) > button.module-tab:is(.active,[aria-pressed="true"]) {
  background: transparent !important; color: var(--ui-accent) !important;
  border-bottom-color: var(--ui-accent); font-weight: 600; box-shadow: none;
}
.student-portal :is(.module-tab,.biodata-tab,.finance-tab,.opensea-tab-item) > iconify-icon { color: inherit !important; }
@media (max-width: 767px) {
  .student-portal .portal-workspace-topbar { min-height: 68px; padding: 12px 16px; gap: 8px; }
  .student-portal .content-area { padding: 24px 16px 88px !important; }
}

.portal-load-error { margin-bottom:1rem;padding:1rem;border:1px solid #e9d9b3;border-radius:8px;background:#fbf3db;color:#684d11;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap; }
.portal-load-error button { padding:.5rem .8rem;border:1px solid currentColor;border-radius:6px;font-weight:600; }
.portal-minimal button:focus-visible,.portal-minimal a:focus-visible { outline:2px solid #880422;outline-offset:3px; }
@media print {
 body:has(.portal-exam-print) #app,body:has(.portal-exam-print) > :not(#app):not(.portal-exam-print) { display:none!important; }
 .portal-exam-print { position:static!important;display:block!important;background:white!important;padding:0!important;overflow:visible!important; }
 .portal-exam-print .modal-card { width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important; }
}

.portal-today-classes { margin:20px 0 24px;padding:20px;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:8px; }
.portal-today-classes header { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px; }
.portal-today-classes h2 { font-size:16px;font-weight:600; }
.portal-today-classes header button,.portal-today-classes a { color:var(--ui-accent);font-size:12px;font-weight:600; }
.portal-today-classes > p,.today-class-info p { color:var(--ui-secondary);font-size:12px;line-height:1.6; }
.portal-today-classes ul { list-style:none;padding:0;margin:0; }
.portal-today-classes li { display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--ui-line); }
.today-class-time { font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap; }
.today-class-info { flex:1;min-width:0; }
.today-class-info h3 { font-size:13px;font-weight:600; }
.today-class-status { color:var(--ui-secondary);background:var(--ui-soft);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap; }
.today-class-status.is-live { background:#edf5ee;color:#346538; }
@media(max-width:767px){.portal-today-classes{padding:16px}.portal-today-classes li{flex-wrap:wrap;gap:8px 12px}.today-class-info{flex-basis:calc(100% - 130px)}.today-class-status{margin-right:auto}}

/* Match the admin schedule highlight, with one priority class at a time. */
.portal-today-classes.has-classes { background:#880422;border-color:#880422;color:#fff;padding:24px; }
.portal-today-classes.has-classes header h2,.portal-today-classes.has-classes .today-class-info h3 { color:#fff; }
.portal-today-classes.has-classes header button { color:#fff; }
.portal-today-classes.has-classes li { border-color:rgb(255 255 255 / 18%);padding:20px 0 0;flex-wrap:wrap; }
.portal-today-classes.has-classes .today-class-info h3 { font-size:23px;line-height:1.25;letter-spacing:-.03em; }
.portal-today-classes.has-classes .today-class-info p { color:#edd3da;margin-top:8px; }
.portal-today-classes.has-classes .today-class-status { color:#fff;background:rgb(255 255 255 / 12%); }
.portal-today-classes.has-classes .today-class-status.is-live { background:#fff;color:#880422; }
.portal-today-classes.has-classes li > a { background:#fff;color:#880422;min-height:44px;padding:12px 16px;border-radius:6px; }
.portal-today-classes.has-classes :is(a,button):focus-visible { outline-color:#fff; }
.today-class-navigation { display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:11px;color:#edd3da; }
.today-class-navigation > div { display:flex;gap:8px; }
.today-class-navigation button { width:44px;height:44px;border:1px solid rgb(255 255 255 / 25%);border-radius:6px;background:rgb(255 255 255 / 8%);color:#fff; }
@media(max-width:767px){.portal-today-classes.has-classes{padding:20px 16px}.portal-today-classes.has-classes .today-class-info h3{font-size:20px}}

/* Highlight and statistics share one responsive priority row, like admin. */
.student-portal .student-home-priority { grid-column:1/-1;order:1;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:stretch;min-width:0; }
.student-portal .student-home-priority > .portal-today-classes { margin:0;min-width:0;display:flex;flex-direction:column; }
.student-portal .student-home-priority .today-class-navigation { margin-top:auto;padding-top:16px; }
.student-portal .student-home-priority > .student-home-metrics { grid-column:auto;order:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;min-width:0; }
.student-portal .student-home-priority.has-highlight > .student-home-metrics { grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr; }
.student-portal .student-home-priority .student-home-metrics > .ui-panel { min-width:0;padding:20px; }
.student-portal .student-home-priority .student-home-metrics .text-xl { overflow-wrap:anywhere; }
@media(min-width:1100px){.student-portal .student-home-priority.has-highlight{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
@media(max-width:1099px){.student-portal .student-home-priority > .student-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.student-portal .student-home-priority{gap:16px}.student-portal .student-home-priority .student-home-metrics > .ui-panel{padding:14px}}

.student-portal .student-home-priority .student-home-metrics > .ui-panel { height:100%;align-self:stretch; }
.student-portal .student-home-priority .student-home-metrics .text-xl { font-size:clamp(18px,1.45vw,24px);white-space:nowrap;overflow-wrap:normal; }
@media(min-width:1100px) and (max-width:1399px){.student-portal .student-home-priority.has-highlight .student-home-metrics > .ui-panel > .w-10{display:none}}

/* Persistent right context column; stacked and open on smaller screens. */
.student-portal .portal-layout-grid { display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:24px; }
.student-portal .portal-right-sidebar { min-width:0; }
.student-portal .portal-context-summary { border:0; }
.student-portal .portal-context-summary > h2 { font-size:13px;font-weight:600;color:var(--ui-ink);margin:0 0 16px;line-height:1.6; }
.student-portal .portal-context-widgets { display:grid;grid-template-columns:minmax(0,1fr);gap:16px; }
@media(min-width:1100px){
 .student-portal .portal-layout-grid { grid-template-columns:minmax(0,1fr) 280px; }
 .student-portal .portal-right-sidebar { position:sticky;top:0;align-self:start; }
}

.student-portal .portal-edom-alert { padding:20px;gap:16px;flex-wrap:wrap; }
.student-portal .portal-edom-alert > div { min-width:0;flex:1 1 300px; }
.student-portal .portal-edom-alert > button { min-height:40px; }
@media(max-width:767px){.student-portal .portal-edom-alert{padding:16px}.student-portal .portal-edom-alert > div{flex-basis:auto}.student-portal .portal-edom-alert > button{width:100%;justify-content:center}}

/* All portal tables use the same typography, spacing and horizontal rules. */
.student-portal .ui-table-wrap { max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain; }
.student-portal .portal-table { display:table;width:100%;border-collapse:collapse;border-spacing:0;border:0;table-layout:auto;font-size:13px;font-variant-numeric:tabular-nums; }
.student-portal .portal-table thead { display:table-header-group;text-transform:none;letter-spacing:normal; }
.student-portal .portal-table tbody { display:table-row-group; }
.student-portal .portal-table tr { display:table-row;border:0; }
.student-portal .portal-table :is(th,td) { display:table-cell;padding:14px 16px;vertical-align:middle;border:0;border-bottom:1px solid var(--ui-line);white-space:nowrap;line-height:1.55; }
.student-portal .portal-table th { background:var(--ui-soft);color:var(--ui-secondary);font-size:12px;font-weight:500;text-transform:none;letter-spacing:normal; }
.student-portal .portal-table td { color:var(--ui-ink);font-size:13px;font-weight:400; }
.student-portal .portal-table tbody tr:last-child td { border-bottom:0; }
.student-portal .portal-table tbody tr:hover { background:var(--ui-soft); }
.student-portal .portal-table :is(th,td):is(.text-center,[align="center"]) { text-align:center; }
.student-portal .portal-table :is(th,td):is(.text-right,[align="right"]) { text-align:right; }
.student-portal .portal-table td > :is(div,p,span) { white-space:nowrap; }
.student-portal .portal-schedule-header { display:flex;flex-direction:column;align-items:stretch;gap:20px;min-width:0;padding:0; }
.student-portal .portal-schedule-header > div:first-child { min-width:0; }
.student-portal .portal-schedule-tabs { width:100%;min-width:0;flex-wrap:wrap!important;overflow:visible!important;gap:0 20px!important; }
.student-portal .portal-schedule-tabs > .module-tab { min-height:46px; }
@media(max-width:767px){.student-portal .portal-table :is(th,td){padding:12px;font-size:12px}.student-portal .portal-schedule-tabs{gap:0 14px!important}.student-portal .portal-schedule-tabs > .module-tab{font-size:12px}}
@media print{.student-portal .portal-table :is(th,td){white-space:normal}.student-portal .portal-table{font-size:11px}}

/* Observation is contextual information, with a clear exit action. */
.student-portal .portal-observation-bar { display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 32px;background:#fbf7ec;border-bottom:1px solid #e9dfc6;color:#655229; }
.student-portal .portal-observation-icon { font-size:18px; }
.student-portal .portal-observation-copy { min-width:0; }
.student-portal .portal-observation-copy p { margin:0;font-size:12px;line-height:1.6; }
.student-portal .portal-observation-copy p:first-child { display:flex;flex-wrap:wrap;gap:2px 12px; }
.student-portal .portal-observation-copy strong { font-weight:600;color:#58451f; }
.student-portal .portal-observation-nim { font-variant-numeric:tabular-nums;white-space:nowrap; }
.student-portal .portal-observation-copy .portal-observation-note { color:#7a6b4b;font-size:11px;margin-top:2px; }
.student-portal .portal-observation-exit { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid #d9cdae;border-radius:6px;background:transparent;color:#58451f;font-size:12px;font-weight:600;white-space:nowrap; }
.student-portal .portal-observation-exit:hover { background:#f1ead8; }
.student-portal .portal-observation-exit:focus-visible { outline:2px solid #78612c;outline-offset:3px; }
@media(max-width:767px){.student-portal .portal-observation-bar{padding:12px 16px;align-items:start;gap:8px 10px}.student-portal .portal-observation-exit{grid-column:2;justify-self:start;min-height:44px}}
@media print{.student-portal .portal-observation-bar{display:none!important}}

.student-portal .portal-finance-year { display:flex;align-items:center;gap:10px;font-size:12px; }
.student-portal .portal-finance-year select { min-height:40px;min-width:150px;padding:8px 32px 8px 12px; }
.student-portal .portal-first-letter-action { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;height:auto;padding:10px 16px;line-height:1.4;white-space:normal; }
.student-portal .portal-room-link,.student-portal .portal-room-back { color:var(--ui-accent);text-decoration:underline;text-underline-offset:3px;font-weight:500; }
.student-portal .portal-room-detail > header { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:24px 0; }
.student-portal .portal-room-detail h1 { font-size:26px;font-weight:600;line-height:1.3; }
.student-portal .portal-room-detail dl { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:20px;border:1px solid var(--ui-line);border-radius:8px; }
.student-portal .portal-room-detail dt { font-size:12px;color:var(--ui-secondary);margin-bottom:6px; }
.student-portal .portal-room-detail dd { font-size:14px; }
.student-portal .portal-room-detail > section { margin-top:24px; }
.student-portal .portal-room-detail h2 { font-size:16px;font-weight:600;margin-bottom:10px; }
.student-portal .portal-room-detail p { font-size:13px;line-height:1.7; }
@media(max-width:767px){.student-portal .portal-room-detail dl{grid-template-columns:1fr}.student-portal .portal-finance-year{width:100%}.student-portal .portal-finance-year select{flex:1}}

.student-portal .empty-state .portal-first-letter-action { height:42px;min-height:42px;padding:10px 16px; }
.student-portal .empty-state .portal-first-letter-action iconify-icon { font-size:16px;width:16px;height:16px;line-height:1;margin:0;color:inherit;opacity:1; }

.student-portal .portal-table-title {display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.student-portal .portal-edom-reminder {padding:14px 16px;margin-bottom:18px;border:1px solid #e6d9b3;background:#fffdf5;border-radius:10px;font-size:12px;line-height:1.6;color:#665124;}
.student-portal .portal-edom-reminder p {margin:3px 0 7px;}
.student-portal .portal-edom-reminder a {color:var(--ui-primary,#741c35);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.student-portal .portal-detail-form {max-width:900px;}
.student-portal .portal-detail-form .modal-close {display:none;}
.student-portal .portal-photo-guidance {white-space:pre-line;font-size:12px;line-height:1.7;color:var(--ui-secondary);margin-top:12px;}

/* Shared rhythm and controls across student service modules. */
@media screen {
.student-portal .portal-view { min-width:0; }
.student-portal .portal-view :is(h1,h2,h3) { text-wrap:balance; }
.student-portal .portal-view h2 { line-height:1.35; }
.student-portal .portal-view :is(.ui-panel,.ui-table-wrap) { box-shadow:none; }
.student-portal .portal-view .ui-table-wrap { width:100%;max-width:100%;overflow-x:auto;border:1px solid var(--ui-line);border-radius:8px; }
.student-portal .portal-view .ui-table-wrap table { width:100%;border-collapse:collapse; }
.student-portal .portal-view .ui-table-wrap :is(th,td) { border-left:0!important;border-right:0!important;padding:12px 14px;vertical-align:middle;text-align:left;white-space:nowrap; }
.student-portal .portal-view .ui-table-wrap th { background:var(--ui-soft);color:var(--ui-secondary);font-size:11px;font-weight:600;line-height:1.5; }
.student-portal .portal-view .ui-table-wrap td { border-bottom:1px solid var(--ui-line);font-size:12px;line-height:1.6; }
.student-portal .portal-view .ui-table-wrap tbody tr:last-child td { border-bottom:0; }
.student-portal .portal-view .ui-table-wrap tbody tr:hover { background:var(--ui-soft); }
.student-portal .portal-view :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,textarea) { border:1px solid var(--ui-line);border-radius:6px;background:var(--ui-surface);color:var(--ui-ink);font:inherit;font-size:13px;min-height:40px;padding:9px 12px;box-sizing:border-box;max-width:100%; }
.student-portal .portal-view select { padding-right:30px; }
.student-portal .portal-view :is(input,select,textarea):disabled { opacity:.65;cursor:not-allowed; }
.student-portal .portal-view button:disabled { opacity:.55;cursor:not-allowed;transform:none!important; }
.student-portal .portal-view :is(button,a):focus-visible { outline:2px solid var(--ui-focus);outline-offset:3px; }
.student-portal .portal-view :is(.module-tab,.biodata-tab,.finance-tab,.opensea-tab-item) { text-transform:none;letter-spacing:normal;font-weight:500;white-space:nowrap; }
.student-portal .portal-module-toolbar { display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin:16px 0; }
.student-portal .portal-filter-field { display:grid;gap:6px;font-size:12px;font-weight:500;color:var(--ui-secondary); }
.student-portal .portal-filter-field select { min-width:210px; }
.student-portal .portal-secondary-button { display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid var(--ui-line);border-radius:6px;background:var(--ui-surface);color:var(--ui-ink);font-size:12px; }
.student-portal .portal-secondary-button:hover:not(:disabled) { background:var(--ui-soft); }
.student-portal .portal-inline-error { padding:12px 14px;background:#fff5f4;border:1px solid #ecd5d2;border-radius:6px;color:#963a32;font-size:12px;line-height:1.6; }
.student-portal .portal-inline-error button { text-decoration:underline;text-underline-offset:3px;margin-left:8px; }
.student-portal .portal-empty-state { padding:28px 16px;text-align:center;color:var(--ui-secondary);font-size:13px;line-height:1.6; }
@media(max-width:767px){.student-portal .portal-filter-field{width:100%}.student-portal .portal-filter-field select{width:100%;min-width:0}.student-portal .portal-view .ui-table-wrap :is(th,td){padding:10px 12px}.student-portal .portal-view :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}}
}

.student-portal .portal-exam-header { display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--ui-line); }
.student-portal .portal-exam-header > div:first-child { flex:1 1 240px; }
.student-portal .portal-exam-actions { display:flex;flex-wrap:wrap;gap:8px; }
.student-portal .portal-exam-actions button { white-space:nowrap;min-height:40px;flex-shrink:0; }
@media(min-width:1024px) and (max-width:1279px){.student-portal .portal-layout-grid{grid-template-columns:minmax(0,1fr) 240px;gap:20px}}

.student-portal .portal-view input.pl-8 { padding-left:32px; }
.student-portal .portal-view input.pl-9 { padding-left:36px; }
.student-portal .portal-view input.pl-10 { padding-left:40px; }
.student-portal .portal-view input.pl-11 { padding-left:44px; }
.student-portal .portal-view input.pr-10 { padding-right:40px; }

.student-portal .portal-library-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-portal .portal-library-catalog>div{min-width:0}@media(max-width:1100px){.student-portal .portal-library-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.student-portal .portal-library-catalog{gap:10px}.student-portal .portal-library-catalog>div{flex-direction:column}.student-portal .portal-library-catalog>div>div:first-child{width:100%;height:140px}}@media(max-width:320px){.student-portal .portal-library-catalog{grid-template-columns:1fr}}

.student-portal .portal-suspension-page{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#f3f3f3;overflow:auto;outline:none}.student-portal .portal-suspension-card{width:min(100%,480px);background:#fff;border:2px solid #88112b;border-radius:16px;overflow:hidden;box-shadow:0 12px 40px #24000a1f}.student-portal .portal-suspension-card>header{padding:30px 28px;background:#88112b;color:#fff;display:flex;flex-direction:column;align-items:center;gap:14px}.student-portal .portal-suspension-card>header iconify-icon{font-size:44px}.student-portal .portal-suspension-card h1{margin:0;color:#fff;font-size:26px;font-weight:750;line-height:1.3}.student-portal .portal-suspension-body{padding:28px;text-align:center}.student-portal .portal-suspension-body>p:first-child{font-size:16px;line-height:1.7;color:#27272a;margin:0 0 24px}.student-portal .portal-suspension-contact{display:block;padding:13px 20px;border-radius:8px;background:#88112b;color:#fff;font-size:14px;font-weight:650;text-decoration:none}.student-portal .portal-suspension-contact:hover{background:#650b20}.student-portal .portal-suspension-email{font-size:13px;color:#52525b;margin:12px 0 22px;overflow-wrap:anywhere}.student-portal .portal-suspension-back{background:transparent;border:0;font-size:13px;color:#52525b;padding:10px 16px;text-decoration:underline}.student-portal .portal-suspension-back:focus-visible,.student-portal .portal-suspension-contact:focus-visible{outline:3px solid #c88927;outline-offset:4px}

.notification-count-badge{position:absolute!important;top:-5px!important;right:-5px!important;min-width:19px;height:19px;padding:0 5px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#b20d32!important;color:white!important;border:2px solid white;font-size:10px!important;font-weight:750;line-height:1;font-variant-numeric:tabular-nums}.notification-unread{background:#fdf2f5!important;border-left:3px solid #981b36!important}

.notification-page{width:100%;max-width:1200px;margin-inline:auto}.notification-page .notification-list{padding:0!important}.notification-page .notification-row{display:grid!important;grid-template-columns:minmax(150px,.9fr) minmax(220px,1.7fr) minmax(140px,.65fr) 18px;align-items:center;gap:24px;width:100%;padding:20px 24px!important;border-bottom:1px solid #e4e4e7;text-align:left;line-height:1.55;background:transparent}.notification-page .notification-row:last-child{border-bottom:0}.notification-row strong{font-size:13px;font-weight:650}.notification-row .notification-description{font-size:12px;color:#52525b;overflow-wrap:anywhere}.notification-row .notification-date{text-align:right;font-size:11px;color:#71717a;font-variant-numeric:tabular-nums}.notification-row>iconify-icon{color:#a1a1aa}.notification-page .notification-row:hover{background:#f7f7f8}.dark .notification-row .notification-description{color:#d4d4d8}.dark .notification-page .notification-row{border-color:#3f3f46}.dark .notification-page .notification-row:hover{background:#27272a}@media(max-width:900px){.notification-page .notification-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;padding:18px!important}.notification-row strong,.notification-row .notification-description{grid-column:1}.notification-row .notification-date{grid-column:2;grid-row:1}.notification-row>iconify-icon{grid-column:2;grid-row:2;justify-self:end}}@media(max-width:480px){.notification-page .notification-row{grid-template-columns:minmax(0,1fr) 18px}.notification-row .notification-date{grid-column:1;grid-row:3;text-align:left}.notification-row>iconify-icon{grid-row:1 / 4;align-self:center}}

/* Registration: one decision surface, one financial summary, one next action. */
.student-portal .portal-layout-grid.herreg-layout{grid-template-columns:minmax(0,1fr)}
.student-portal .herreg-workspace{--hr-ink:#27272a;--hr-muted:#66666f;--hr-accent:#880422;--hr-ground:#f5f5f6;--hr-soft:#f2edef;width:100%;max-width:none;margin:0;color:var(--hr-ink);font-size:14px}
.herreg-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}
.student-portal .herreg-heading h1{font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.2;margin:0 0 7px}
.herreg-heading p{margin:0;color:var(--hr-muted);font-size:14px;line-height:1.5}
.herreg-window{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:340px}
.herreg-window iconify-icon{font-size:18px}.herreg-window span{color:var(--hr-ink);font-weight:600}
.herreg-progress{display:flex;list-style:none;padding:0;margin:0 0 28px;gap:0;max-width:690px}
.herreg-progress li{display:flex;align-items:center;gap:8px;flex:1;color:#767680;font-size:13px;min-width:0}
.herreg-progress li:not(:last-child)::after{content:'';height:2px;background:#e4e4e7;flex:1;margin:0 16px 0 8px}
.herreg-progress iconify-icon{font-size:21px;flex-shrink:0}.herreg-progress .is-complete{color:var(--hr-accent)}.herreg-progress .is-current{font-weight:600;color:var(--hr-ink)}
.herreg-overview{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:stretch;background:var(--hr-ground);border-radius:16px;overflow:hidden}
.herreg-decision{padding:34px 36px 36px;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.herreg-status-symbol{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:#fff;border-radius:12px;color:var(--hr-accent);margin-bottom:22px}.herreg-status-symbol iconify-icon{font-size:26px}
.student-portal .herreg-decision h2{font-size:25px;font-weight:600;letter-spacing:-.025em;line-height:1.25;margin:0 0 12px;max-width:520px;text-wrap:balance}
.herreg-description{font-size:15px;line-height:1.65;margin:0;max-width:48ch;color:var(--hr-muted)}
.herreg-reasons{list-style:none;margin:18px 0 0;padding:12px 16px;background:#fff;color:var(--hr-ink);font-size:13px;line-height:1.6;border-radius:8px;max-width:100%}
.herreg-access-note{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--hr-muted);margin:14px 0 0}
.herreg-next-action{margin-top:24px}.student-portal .herreg-primary{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;height:auto!important;padding:11px 18px!important;background:var(--hr-accent)!important;color:#fff!important;border:0;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;line-height:1.4;transition:background .18s,transform .18s;box-shadow:none}
.student-portal .herreg-primary:hover{background:#6e031c!important}.student-portal .herreg-primary:active{transform:translateY(1px)}.student-portal .herreg-primary:disabled{opacity:.6;cursor:wait}
.herreg-primary iconify-icon{font-size:18px}.herreg-primary:focus-visible,.herreg-financial-details summary:focus-visible,.herreg-text-link:focus-visible{outline:2px solid var(--hr-accent);outline-offset:4px}
.herreg-secondary{font-size:13px;color:var(--hr-muted);margin:18px 0 0}.herreg-secondary button,.herreg-text-link{border:0;background:transparent!important;color:var(--hr-accent)!important;font-size:13px;font-weight:600;padding:0!important;text-decoration:underline;text-underline-offset:3px}
.herreg-fee{background:var(--hr-soft);padding:34px 28px;display:flex;flex-direction:column;gap:30px;justify-content:space-between}
.student-portal .herreg-fee h2,.student-portal .herreg-fee h3{font-size:14px;font-weight:600;line-height:1.4;margin:0 0 12px;letter-spacing:0}
.herreg-fee .herreg-fee-value{font-size:32px;color:var(--hr-ink);font-weight:600;letter-spacing:-.04em;line-height:1.1;margin:0 0 9px;font-variant-numeric:tabular-nums}
.herreg-fee p{font-size:13px;line-height:1.6;color:var(--hr-muted);margin:0}.herreg-tuition dl{margin:0 0 12px;display:grid;gap:14px}.herreg-tuition dt{font-size:12px;color:var(--hr-muted);margin-bottom:3px}.herreg-tuition dd{font-size:16px;font-weight:500;margin:0;font-variant-numeric:tabular-nums}
.herreg-financial-details{margin-top:22px;background:transparent}.herreg-financial-details summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:14px 0;font-size:14px;font-weight:500;list-style:none}.herreg-financial-details summary::-webkit-details-marker{display:none}.herreg-financial-details summary iconify-icon{font-size:18px;transition:transform .18s}.herreg-financial-details[open] summary iconify-icon{transform:rotate(180deg)}.herreg-detail-body{padding:8px 0 20px}.herreg-detail-body>p{display:flex;justify-content:space-between;gap:16px;margin:0 0 18px;font-size:14px}.herreg-detail-body .herreg-text-link{margin-top:14px}
.herreg-workspace[data-state="done"] .herreg-status-symbol{color:#166534}.herreg-workspace[data-state="done"] .herreg-decision{background:#f1f6f2}
@media(max-width:767px){.herreg-heading{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:24px}.student-portal .herreg-heading h1{font-size:27px}.herreg-window{justify-content:flex-start;max-width:none}.herreg-progress{margin-bottom:24px}.herreg-progress li{flex-direction:column;align-items:flex-start;gap:6px;font-size:12px}.herreg-progress li::after{display:none}.herreg-overview{grid-template-columns:1fr}.herreg-decision{padding:26px 22px 28px}.student-portal .herreg-decision h2{font-size:24px}.herreg-fee{padding:24px 22px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.herreg-fee .herreg-fee-value{font-size:28px}.herreg-tuition dl{gap:10px}.herreg-next-action{width:100%}.student-portal .herreg-primary{width:100%}}
@media(max-width:380px){.herreg-fee{grid-template-columns:1fr}.herreg-progress li{font-size:11px}.student-portal .herreg-decision h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.herreg-workspace *{transition:none!important}}

.herreg-dispensation-note{display:flex;align-items:center;gap:8px;background:#edf6ef;color:#166534;padding:12px 16px;border-radius:8px;font-size:13px;margin:0 0 16px}

.agenda-status{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:3px 8px;border-radius:5px;background:#f4f4f5;color:#52525b}.agenda-status[data-state="completed"]{background:#ececee;color:#71717a}.agenda-status[data-state="current"]{background:#eaf4ed;color:#166534}.agenda-status[data-state="upcoming"]{background:#f4edef;color:#880422}

/* Portal filters share the same compact row and independent expansion grid. */
.student-portal .portal-filterbar{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;background:#f1f1f3;border:1px solid #e4e4e7;border-radius:10px;padding:12px 14px;margin-bottom:18px;min-width:0}
.student-portal .portal-filterbar-controls{display:contents}
.student-portal .portal-filterbar>.flex:has(.relative){display:contents}
.student-portal .portal-filterbar :is(.portal-filter-search,.relative){position:relative;flex:1 1 220px;min-width:150px;max-width:420px;width:auto}
.student-portal .portal-filterbar input:not([type=checkbox]):not([type=radio]),.student-portal .portal-filterbar select{height:var(--ui-control-height,40px)!important;min-height:var(--ui-control-height,40px)!important;padding-top:0!important;padding-bottom:0!important;font-size:13px;border:1px solid #d4d4d8;border-radius:8px;background:#fff;min-width:0;max-width:100%}
.student-portal .portal-filterbar .relative input{width:100%;padding-left:36px!important}
.student-portal .portal-filterbar .relative>iconify-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:18px;color:#71717a}
.student-portal .portal-filter-field{display:flex;align-items:center;gap:8px;font-size:12px;margin:0;min-width:0}
.student-portal .portal-filter-field>span,.student-portal .portal-filter-field>label{font-size:12px;font-weight:500;color:#52525b}
.student-portal .portal-filterbar select{width:auto;max-width:300px;padding-inline:10px}
.student-portal .portal-filterbar-title{font-size:14px;font-weight:600;margin:0 12px 0 0}
.student-portal .portal-filter-toggle{display:inline-flex;align-items:center;gap:8px;padding:0 12px!important;border:1px solid #d4d4d8;border-radius:8px;background:#fff;font-size:13px;white-space:nowrap}
.student-portal .portal-filter-toggle>span{background:#f4edef;color:#880422;font-size:12px;padding:2px 6px;border-radius:4px}
.student-portal .portal-filter-toggle:focus-visible{outline:2px solid #880422;outline-offset:3px}
.student-portal .portal-expanded-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:16px;flex:1 0 100%;width:100%;padding-top:16px;margin-top:4px;border-top:1px solid #dddde1}
.student-portal .portal-expanded-filter-grid .portal-filter-field{display:flex;flex-direction:column;align-items:stretch;gap:7px;width:100%}
.student-portal .portal-expanded-filter-grid select{width:100%;max-width:none}
@media(max-width:767px){.student-portal .portal-filterbar :is(.portal-filter-search,.relative){flex:1 0 100%;max-width:none}.student-portal .portal-expanded-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-portal .portal-filterbar select{flex:1;max-width:100%}.student-portal .portal-filterbar>.portal-filter-field{flex:1 1 160px}}
@media(max-width:420px){.student-portal .portal-expanded-filter-grid{grid-template-columns:1fr}}

.student-document-list{display:grid;gap:12px;}.student-document-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid #eee;}.student-document-row strong{font-size:14px;font-weight:600;}.student-document-row p{font-size:13px;margin:5px 0;color:#71717a;overflow-wrap:anywhere;}.student-document-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}@media(max-width:600px){.student-document-row{align-items:flex-start;flex-direction:column;gap:12px;}.student-document-actions{width:100%;}}

/* Portrait and card controls match the personnel workspace. */
.portal-photo-trigger{position:relative;display:block;width:218px;max-width:100%;aspect-ratio:3/4;height:auto;flex:0 0 auto;overflow:hidden;border-radius:10px;isolation:isolate;background:#f1f1f2;}
.portal-photo-trigger .profile-photo-portal{position:absolute;inset:0;width:100%!important;height:100%!important;margin:0!important;border:0!important;border-radius:inherit!important;object-fit:cover;}
.portal-photo-trigger .portal-photo-overlay,.portal-ktm-preview .portal-photo-overlay{position:absolute;inset:auto;top:8px;right:8px;z-index:1;display:flex;align-items:center;gap:0;padding:3px;border-radius:9px;background:rgb(18 18 22 / .5)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;}
.student-portal .portal-media-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;margin:0;border:0;border-radius:6px;background:transparent!important;color:#fff!important;box-shadow:none;cursor:pointer;}
.student-portal .portal-media-icon iconify-icon{font-size:18px;color:inherit;}
.student-portal .portal-media-icon:hover{background:rgb(255 255 255 / .16)!important;}
.student-portal .portal-media-icon:focus-visible{outline:2px solid #fff!important;outline-offset:-3px;}
.student-portal .portal-media-icon:disabled{opacity:.55;cursor:wait;}
.portal-photo-trigger:is(:hover,:focus-within,.is-uploading) .portal-photo-overlay,.portal-ktm-preview:is(:hover,:focus-within) .portal-photo-overlay{opacity:1;pointer-events:auto;transform:none;}
.student-portal .portal-ktm-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:28px;align-items:start;}
.portal-ktm-preview{position:relative;width:218px;max-width:100%;border-radius:10px;}
.portal-ktm-frame{display:block;width:100%;border:0;background:transparent;}
.student-portal .portal-ktm-layout>.ui-panel{grid-column:auto;}
.student-portal .portal-photo-lightbox-card{position:relative;padding:0;background:transparent;max-width:min(90vw,700px);border:0;}
.student-portal .portal-photo-lightbox-card>img{display:block;max-width:100%;max-height:85vh;object-fit:contain;border-radius:10px;}
@media(max-width:767px){.student-portal .portal-ktm-layout{grid-template-columns:minmax(0,1fr);}.portal-photo-trigger,.portal-ktm-preview{width:240px;max-width:100%;}.portal-ktm-preview{margin-inline:auto;}}
@media(hover:none),(pointer:coarse){.portal-photo-trigger .portal-photo-overlay,.portal-ktm-preview .portal-photo-overlay{opacity:1;pointer-events:auto;transform:none;}.student-portal .portal-media-icon{width:44px;min-width:44px;height:44px;min-height:44px;}}
@media(prefers-reduced-motion:reduce){.portal-photo-overlay{transition:none!important;}}


/* Profile: persistent portrait on the left, identity and sections on the right. */
.student-portal .portal-profile-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:28px;align-items:start;}
.student-portal .portal-profile-photo{position:sticky;top:8px;align-self:start;min-width:0;}
.student-portal .portal-profile-details{min-width:0;}
.student-portal .portal-profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid var(--ui-line,#e7e7e9);}
.student-portal .portal-profile-title{min-width:0;}
.student-portal .portal-profile-title h2{display:flex;align-items:center;gap:8px;font-size:25px;font-weight:650;letter-spacing:-.03em;line-height:1.35;overflow-wrap:anywhere;margin:0;color:var(--ui-ink,#27272a);}
.student-portal .portal-profile-title h2 iconify-icon{font-size:19px;flex-shrink:0;}
.student-portal .portal-profile-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;margin-top:10px;font-size:12px;line-height:1.7;color:var(--ui-secondary,#71717a);}
.student-portal .portal-profile-meta>span[aria-hidden]{color:#a1a1aa;}
.student-portal .portal-profile-nim{font-variant-numeric:tabular-nums;}
.student-portal .portal-profile-heading>.flex{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.student-portal .portal-profile-details>.biodata-tabs{margin-top:0;}
@media(max-width:1099px){.student-portal .portal-profile-heading{flex-direction:column;gap:16px;}.student-portal .portal-profile-heading>.flex{justify-content:flex-start;}}
@media(max-width:899px){.student-portal .portal-profile-layout{grid-template-columns:minmax(0,1fr);gap:24px;}.student-portal .portal-profile-photo{position:static;}.student-portal .portal-profile-title h2{font-size:23px;}}
@media(min-width:900px) and (max-height:559px){.student-portal .portal-profile-photo{position:static;}}

/* Academic status and biodata verification are separate indicators. */
.student-portal .portal-student-status{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.student-portal :is(.portal-status-chip,.portal-student-status)[data-tone="active"]{color:#18734a;}
.student-portal :is(.portal-status-chip,.portal-student-status)[data-tone="graduate"]{color:#1d5fa6;}
.student-portal :is(.portal-status-chip,.portal-student-status)[data-tone="warning"]{color:#94620b;}
.student-portal :is(.portal-status-chip,.portal-student-status)[data-tone="danger"]{color:#ae283c;}
.student-portal :is(.portal-status-chip,.portal-student-status)[data-tone="muted"]{color:#71717a;}
.student-portal .portal-student-status>iconify-icon{font-size:15px;flex-shrink:0;}
body.dense-ui.student-portal .portal-verified-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;flex:0 0 16px;padding:0;border:0;border-radius:50%;background:#2563eb!important;color:#fff!important;line-height:1;vertical-align:middle;}
body.dense-ui.student-portal .portal-verified-badge>svg{display:block;width:10px!important;height:10px!important;min-width:10px!important;flex:0 0 10px;color:#fff!important;}
.student-portal .portal-workspace-topbar .text-right>p:first-child{justify-content:flex-end;}
