/* Shared list/search controls — loaded last so every feature uses one stable toolbar. */
.session-restoring #loginView {visibility:hidden}
body:has(#loginView:not(.hidden)) {background:var(--app-page,#f4f6f7)}

/* Login: fixed, responsive and based on the school's own photographic asset. */
.login-v2:not(.hidden) {
  --login-navy:var(--app-sidebar,#102d3f);
  --login-navy-deep:var(--app-text,#0b1f2d);
  --login-accent:var(--app-primary,#7d2942);
  --login-accent-hover:var(--app-hover,#066582);
  --login-accent-soft:var(--app-primary-soft,#f7ebef);
  display:grid;
  grid-template-columns:45% 55%;
  width:calc(100% - 48px);
  max-width:1160px;
  height:auto;
  min-height:640px;
  margin:max(24px,calc((100dvh - 640px)/2)) auto;
  padding:0 !important;
  overflow:hidden;
  border:1px solid var(--app-border,#dfe6e9);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 36px rgba(16,42,58,.07);
}
.login-v2 .login-brand-panel {
  position:relative;
  z-index:0;
  display:flex;
  flex-direction:column;
  isolation:isolate;
  overflow:hidden;
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  padding:40px;
  background:var(--login-navy);
}
.login-v2 .login-brand-panel>.login-brand-image {
  position:absolute;
  z-index:0;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  margin:0;
  padding:0;
  object-fit:cover;
  object-position:50% 42%;
  border:0;
}
.login-v2 .login-brand-panel:before {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:rgba(41,26,43,.46);
  pointer-events:none;
}
.login-v2 .login-brand-panel>.ns-wordmark,
.login-v2 .login-brand-panel>.login-brand-message {position:relative;z-index:2;flex-shrink:0}
.login-v2 .login-path {display:none}
.login-v2 .login-brand-message {width:100%;margin: auto 0 0;padding-top:80px;max-width:430px;transform:none}
.login-v2 .login-brand-message p {margin:0;font-size:36px;line-height:1.18;letter-spacing:-.85px;font-weight:620;color:#fff;text-wrap:balance}
.login-v2 .login-brand-message small {display:block;max-width:290px;margin-top:18px;color:#e2e9ed;font-size:13px;line-height:1.6;letter-spacing:.05px}
.login-v2 .ns-wordmark {font-size:22px;gap:10px;line-height:1.2;align-self:flex-start}
.login-v2 .ns-wordmark-light svg {stroke:#fff}
.login-v2 .ns-wordmark-light {color:#fff}
.login-v2 .login-panel {
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  margin:0;
  padding:52px clamp(32px,4vw,68px);
  border:0;
  border-left:1px solid var(--app-border,#edf1f3);
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
.login-v2 .login-box {width:100%;max-width:420px;margin:0;padding:0;transform:none}
.login-v2 .login-mobile-wordmark {display:none}
.login-v2 .login-heading {margin-bottom:26px}
.login-v2 .login-heading h1 {font-size:31px;color:var(--login-navy-deep)}
.login-v2 .login-heading p {font-size:15px}
.login-v2 .ns-form {gap:18px}
.login-v2 .ns-field {gap:8px}
.login-v2 .ns-field label {font-size:14px}
.login-v2 .ns-input {height:50px;border-color:var(--app-border,#cbd5da);border-radius:10px;box-shadow:none}
.login-v2 .ns-input:focus-within {border-color:var(--login-accent);box-shadow:0 0 0 3px var(--app-primary-soft,#E7F6FC)}
.login-v2 .ns-input input {font-size:15px}
.login-v2 input:focus-visible {outline:0}
.login-v2 .ns-link {color:var(--login-accent);font-size:12px}
.login-v2 .ns-link:hover {color:var(--login-navy);text-decoration:underline}
.login-v2 .ns-password-input>button:hover {background:var(--login-accent-soft);color:var(--login-accent)}
.login-v2 .ns-checkbox {position:relative;min-height:24px}
.login-v2 .ns-checkbox>input {width:20px;height:20px;margin:0}
.login-v2 .ns-checkbox>span {flex:0 0 20px;width:20px;height:20px;border-color:var(--app-border,#aebcc3);border-radius:5px}
.login-v2 .ns-checkbox>input:checked+span {border-color:var(--login-accent);background:var(--login-accent)}
.login-v2 .ns-checkbox>input:focus-visible+span {outline:2px solid var(--login-accent);outline-offset:2px}
.login-v2 .ns-checkbox>b {font-size:13px;color:var(--app-muted,#4c5d67)}
.login-v2 .ns-button-primary {height:50px;border-color:var(--login-accent);border-radius:9px;background:var(--login-accent);box-shadow:none}
.login-v2 .ns-button-primary:hover {border-color:var(--login-accent-hover);background:var(--login-accent-hover);box-shadow:none}
.login-v2 button:focus-visible,.login-v2 a:focus-visible {outline-color:var(--login-accent)}
.login-v2 .login-support {display:flex;flex-wrap:wrap;gap:8px 6px;margin-top:28px;padding-top:22px;font-size:12px;line-height:1.6}
.login-v2 .login-support>span {flex-basis:100%}
.academic-self-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid var(--app-border,#e2e7ea);
  border-radius:10px;
  background:#fff;
  color:var(--app-muted,#526671);
  font-size:13px;
}
.academic-self-actions .outline-button {flex:0 0 auto}

@media (max-width:820px) {
  .login-v2:not(.hidden) {display:block;width:calc(100% - 32px);max-width:480px;height:auto;min-height:0;margin:max(24px,calc((100dvh - 620px)/2)) auto;overflow:hidden;border-radius:16px}
  .login-v2 .login-brand-panel {display:none}
  .login-v2 .login-panel {height:auto;min-height:0;padding:36px 24px;border-left:0}
  .login-v2 .login-box {transform:none}
  .login-v2 .login-mobile-wordmark {display:inline-flex;margin-bottom:36px}
  .login-v2 .login-mobile-wordmark svg {stroke:var(--login-accent)}
}
@media (max-width:480px) {
  .login-v2 .login-panel {align-items:center;padding:32px 24px}
  .login-v2 .login-mobile-wordmark {margin-bottom:32px}
  .login-v2 .login-heading {margin-bottom:24px}
  .academic-self-actions {align-items:stretch;flex-direction:column}
}
.university-toolbar,
.task-toolbar,
.document-toolbar,
.event-toolbar,
.activity-toolbar,
.course-toolbar,
.k-toolbar,
.workflow-toolbar,
.list-toolbar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  max-width:100%;
  overflow:visible;
  padding:14px 16px;
  background:var(--app-page,#f8fafc);
}

.university-toolbar .search-field,
.task-toolbar .search-field,
.document-toolbar .search-field,
.event-toolbar .search-field,
.activity-toolbar .activity-search,
.course-toolbar > label,
.k-toolbar .k-search,
.workflow-toolbar .search-field,
.list-toolbar .search-field,
.table-search {
  display:flex;
  flex:1 1 300px;
  align-items:center;
  gap:10px;
  width:auto;
  min-width:260px;
  max-width:none;
  height:44px;
  padding:0 13px;
  overflow:hidden;
  border:1px solid var(--app-border,#d7dee3);
  border-radius:9px;
  background:#fff;
  color:var(--app-muted,#71818b);
  box-shadow:0 1px 2px rgba(16,24,40,.025);
}

.university-toolbar .search-field:focus-within,
.task-toolbar .search-field:focus-within,
.document-toolbar .search-field:focus-within,
.event-toolbar .search-field:focus-within,
.activity-toolbar .activity-search:focus-within,
.course-toolbar > label:focus-within,
.k-toolbar .k-search:focus-within,
.workflow-toolbar .search-field:focus-within,
.list-toolbar .search-field:focus-within,
.table-search:focus-within {
  border-color:var(--app-primary,#8b3550);
  box-shadow:0 0 0 3px rgba(104,30,53,.1);
}

.university-toolbar .search-field>svg,
.task-toolbar .search-field>svg,
.document-toolbar .search-field>svg,
.event-toolbar .search-field>svg,
.workflow-toolbar .search-field>svg,
.list-toolbar .search-field>svg,
.table-search>svg {
  flex:0 0 18px;
  width:18px !important;
  height:18px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.university-toolbar .search-field input,
.task-toolbar .search-field input,
.document-toolbar .search-field input,
.event-toolbar .search-field input,
.activity-toolbar .activity-search input,
.course-toolbar > label input,
.k-toolbar .k-search input,
.workflow-toolbar .search-field input,
.list-toolbar .search-field input,
.table-search input {
  display:block;
  flex:1;
  width:100%;
  min-width:0;
  height:100%;
  padding:0;
  border:0 !important;
  outline:0;
  background:transparent;
  box-shadow:none !important;
  color:var(--app-text,#172b36);
  font:400 14px/1.4 Inter,system-ui,sans-serif;
}

.university-toolbar select,
.university-toolbar > input,
.task-toolbar select,
.document-toolbar select,
.event-toolbar select,
.activity-toolbar select,
.course-toolbar select,
.k-toolbar select,
.workflow-toolbar > select,
.list-toolbar > select {
  flex:1 1 150px;
  width:auto;
  min-width:140px;
  max-width:220px;
  height:44px;
  padding:0 34px 0 12px;
  border:1px solid var(--app-border,#d7dee3);
  border-radius:9px;
  background-color:#fff;
  color:#314650;
  font:500 13px/1 Inter,system-ui,sans-serif;
}

.university-toolbar > input {
  padding:0 12px;
}

.university-toolbar .text-button,
.task-toolbar .text-button,
.document-toolbar .text-button {
  min-height:40px;
  padding:0 8px;
  white-space:nowrap;
}

.toolbar-spacer {flex:1 1 20px}

/* Role-aware appointment identity */
.booking-student {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  column-gap:11px;
  padding:12px 14px;
  border:1px solid var(--app-border,#e2e7ea);
  border-radius:9px;
  background:var(--app-page,#f8fafc);
}
.booking-student:before {
  content:attr(data-initials);
  grid-row:1/4;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:9px;
  background:var(--app-primary-soft,#f1e4e8);
  color:var(--app-primary,#681e35);
  font-weight:750;
}
.booking-student>span {color:var(--app-muted,#71818b);font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}
.booking-student>b {color:var(--app-text,#172b36);font-size:14px}
.booking-student>small {color:var(--app-muted,#71818b);font-size:11px}

/* Courses use the same dashboard card system as tasks and appointments. */
.course-dashboard-panel {
  min-height:260px;
  overflow:hidden;
  border:1px solid var(--ns-gray-200,var(--app-border,#e2e7ea));
  border-radius:var(--ns-radius,11px);
  background:#fff;
  box-shadow:var(--ns-shadow,0 8px 22px rgba(16,24,40,.045));
}
.course-dashboard-panel>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:94px;
  padding:20px 24px;
  border-bottom:1px solid var(--ns-gray-100,var(--app-border,#edf0f2));
}
.course-dashboard-panel>header h2 {margin:0 0 4px;font-size:20px;color:var(--app-text,#102a39)}
.course-dashboard-panel>header p {margin:0;color:var(--app-muted,#667985);font-size:14px}
.course-dashboard-panel>header button {
  border:0;
  background:transparent;
  color:var(--app-primary,#7d2942);
  font:700 13px/1 Inter,system-ui,sans-serif;
  white-space:nowrap;
}
.course-dashboard-panel .dashboard-scroll {padding:0 22px}
.course-dashboard-panel .dashboard-list-item {
  display:grid;
  gap:5px;
  width:100%;
  padding:15px 0;
  border:0;
  border-bottom:1px solid var(--app-border,#edf0f2);
  background:#fff;
  text-align:left;
}
.course-dashboard-panel .dashboard-list-item:hover {color:var(--app-primary,#681e35);transform:translateX(2px)}
.course-dashboard-panel .dashboard-list-item b {font-size:14px;color:var(--app-text,#172b36)}
.course-dashboard-panel .dashboard-list-item span {font-size:12px;color:var(--app-muted,#71818b)}

@media (max-width:760px) {
  .university-toolbar .search-field,
  .task-toolbar .search-field,
  .document-toolbar .search-field,
  .event-toolbar .search-field,
  .activity-toolbar .activity-search,
  .course-toolbar > label,
  .k-toolbar .k-search,
  .workflow-toolbar .search-field,
  .list-toolbar .search-field,
  .table-search {flex-basis:100%;min-width:100%}

  .university-toolbar select,
  .university-toolbar > input,
  .task-toolbar select,
  .document-toolbar select,
  .event-toolbar select,
  .activity-toolbar select,
  .course-toolbar select,
  .k-toolbar select,
  .workflow-toolbar > select,
  .list-toolbar > select {max-width:none;flex:1 1 calc(50% - 5px)}
}

@media (max-width:480px) {
  .university-toolbar select,
  .university-toolbar > input,
  .task-toolbar select,
  .document-toolbar select,
  .event-toolbar select,
  .activity-toolbar select,
  .course-toolbar select,
  .k-toolbar select,
  .workflow-toolbar > select,
  .list-toolbar > select {flex-basis:100%}
}
