/* EvalSys Deep Blue. Load after component and page styles.
   Legacy aliases keep existing components and dynamically rendered UI consistent. */
:root {
  color-scheme: dark;
  --bg-primary: #020d20;
  --bg-secondary: #06162d;
  --bg-tertiary: #0a1d38;
  --surface-primary: #081a33;
  --surface-secondary: #0c2342;
  --surface-hover: #102b50;
  --border-primary: #17375e;
  --border-secondary: #1e4a7a;
  --primary: #1683ff;
  --primary-hover: #3296ff;
  --primary-soft: rgba(22,131,255,.15);
  --link-color: #72b7ff;
  --cyan: #13c6e8;
  --green: #19c987;
  --orange: #ffa600;
  --purple: #814df6;
  --purple-text: #bd9aff;
  --red: #ff6876;
  --text-primary: #f8fbff;
  --text-secondary: #b5c7dd;
  --text-muted: #91a8c2;
  --success-soft: #0b302e;
  --warning-soft: #33291b;
  --danger-soft: #351d30;
  --purple-soft: #231d43;
  --shadow-blue: 0 10px 35px rgba(0,82,180,.20);
  --evalsys-ink: var(--text-primary);
  --evalsys-muted: var(--text-secondary);
  --evalsys-soft: var(--surface-secondary);
  --evalsys-panel: var(--surface-primary);
  --evalsys-line: var(--border-primary);
  --evalsys-blue: var(--primary);
  --evalsys-blue-dark: var(--link-color);
  --evalsys-green: var(--green);
  --evalsys-amber: var(--orange);
  --evalsys-red: var(--red);
  --evalsys-violet: var(--purple);
  --evalsys-cyan: var(--cyan);
  --evalsys-radius: 14px;
  --evalsys-shadow: 0 8px 25px rgba(0,0,0,.25);
  --evalsys-shadow-strong: 0 22px 58px rgba(0,0,0,.4);
  --eval-line: var(--border-primary);
  --eval-radius: 14px;
  --eval-shadow: var(--evalsys-shadow);
  --ink: var(--text-primary);
  --muted: var(--text-secondary);
  --line: var(--border-primary);
  --soft: var(--surface-secondary);
  --app-bg: var(--bg-primary);
  --blue: var(--primary);
  --admin-ink: var(--text-primary);
  --admin-muted: var(--text-secondary);
  --admin-line: var(--border-primary);
  --admin-blue: var(--primary);
  --panel-ink: var(--text-primary);
  --panel-muted: var(--text-secondary);
  --panel-line: var(--border-primary);
  --panel-blue: var(--primary);
  --public-header-ink: var(--text-primary);
  --public-header-blue: var(--primary);
  --bs-body-color: var(--text-primary);
  --bs-body-color-rgb: 248,251,255;
  --bs-body-bg: var(--bg-primary);
  --bs-body-bg-rgb: 2,13,32;
  --bs-secondary-color: var(--text-secondary);
  --bs-secondary-bg: var(--surface-secondary);
  --bs-tertiary-bg: var(--surface-primary);
  --bs-emphasis-color: var(--text-primary);
  --bs-border-color: var(--border-primary);
  --bs-link-color: var(--link-color);
  --bs-link-hover-color: #a4d1ff;
  --bs-primary-bg-subtle: #102b48;
  --bs-info-bg-subtle: #102b48;
  --bs-success-bg-subtle: var(--success-soft);
  --bs-warning-bg-subtle: var(--warning-soft);
  --bs-danger-bg-subtle: var(--danger-soft);
  --bs-secondary-bg-subtle: var(--surface-secondary);
  --bs-light-bg-subtle: var(--surface-primary);
  --bs-primary-text-emphasis: #9dceff;
  --bs-info-text-emphasis: #9dceff;
  --bs-success-text-emphasis: #72e7b7;
  --bs-warning-text-emphasis: #ffd083;
  --bs-danger-text-emphasis: #ffa4ad;
  --bs-secondary-text-emphasis: var(--text-secondary);
  --bs-light-text-emphasis: var(--text-primary);
}
html {
  min-width: 320px;
  min-height: 100%;
  background-color: var(--bg-primary);
  scrollbar-color: #1c4a78 var(--bg-primary);
}
body, body.evalsys-app, .evalsys-surface {
  color: var(--text-primary);
  background: radial-gradient(circle at 75% 15%,rgba(0,110,255,.12),transparent 30%),linear-gradient(135deg,#020b1c 0%,#04152b 50%,#061b35 100%) !important;
  min-height: 100vh;
  min-height: 100dvh;
}
body { margin: 0; overflow-x: clip; }
main, .app-shell, .dashboard-shell, .adviser-shell, .panel-shell,
.app-main, .adviser-main, .panel-main, .content, .panel-content,
.container, .container-fluid { min-width: 0; }
img, video, canvas, svg { max-width: 100%; height: auto; }
.rounded-circle, .top-avatar, .admin-top-avatar, .faculty-avatar { aspect-ratio: 1 / 1; object-fit: cover; }
a { color: var(--link-color); }
a:hover { color: #a4d1ff; }
.text-dark, .text-black, .text-body { color: var(--text-primary) !important; }
.text-muted, .text-secondary, .text-body-secondary { color: var(--text-secondary) !important; }
.text-primary, .text-info { color: var(--link-color) !important; }
.text-success { color: var(--green) !important; }
.text-warning { color: var(--orange) !important; }
.text-danger { color: var(--red) !important; }
.bg-white, .bg-light, .bg-body, .bg-body-tertiary { background-color: var(--surface-primary) !important; }
.text-bg-light { color: var(--text-secondary) !important; background-color: var(--surface-secondary) !important; }
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--border-primary) !important; }
.card, .card-soft, .eval-card, .metric-card, .stat-card, .evalsys-panel {
  color: var(--text-primary);
  background: linear-gradient(145deg,var(--surface-primary),#0b203d);
  border-color: var(--border-primary);
  border-radius: 14px;
}
.card-header, .card-footer { background: var(--surface-secondary); border-color: var(--border-primary); }
.unified-header, .evalsys-topbar { background: #041225 !important; border-bottom-color: var(--border-primary) !important; }
.sidebar, .evalsys-sidebar { background: #041225 !important; }
.sidebar-link.active, .evalsys-sidebar-link.active { background: var(--primary-soft); color: var(--link-color); border-left: 3px solid var(--primary); }
.nav-link { color: var(--text-secondary); }
.nav-link:hover, .nav-link:focus { color: var(--text-primary); }
.nav-tabs { border-color: var(--border-primary); }
.nav-tabs .nav-link.active, .nav-pills .nav-link.active { color: var(--text-primary); background: var(--primary-soft); border-color: var(--border-primary); }
.form-control, .form-select, .input-group-text, input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]), textarea, select {
  color: var(--text-primary);
  background-color: #07182e;
  border-color: #1b3d65;
  caret-color: var(--primary-hover);
  color-scheme: dark;
}
.form-control:focus, .form-select:focus, input:focus, textarea:focus, select:focus {
  color: var(--text-primary); background-color: #091e39; border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(22,131,255,.16);
}
input::placeholder, textarea::placeholder, .form-control::placeholder { color: var(--text-muted); opacity: 1; }
input:autofill { box-shadow: 0 0 0 1000px #07182e inset; -webkit-text-fill-color: var(--text-primary); }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: var(--surface-secondary); color: var(--text-secondary); }
option, optgroup { background: #07182e; color: var(--text-primary); }
input::file-selector-button { color: var(--text-primary); background: var(--surface-secondary); border-color: var(--border-primary); }
.form-control:hover:not(:disabled):not([readonly])::file-selector-button { background: var(--surface-hover); }
.form-check-input { background-color: var(--bg-tertiary); border-color: var(--border-secondary); }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.form-text { color: var(--text-secondary); }
.btn { transition: background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.btn:not(.btn-close),
button.action-btn,
a.action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: auto;
  max-width: 100%;
  min-height: 38px;
  height: auto;
  padding: .5rem .85rem;
  border-radius: 8px;
  font-size: .86rem;
  line-height: 1.2;
  vertical-align: middle;
}
.btn-sm:not(.btn-close) {
  min-height: 32px;
  padding: .38rem .65rem;
  border-radius: 7px;
  font-size: .78rem;
}
.btn-lg:not(.btn-close) {
  min-height: 46px;
  padding: .7rem 1.05rem;
  font-size: .96rem;
}
.btn:not(.btn-close) > i,
.action-btn > i {
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  font-size: 1em;
  line-height: 1;
}
.btn:not(.btn-close) > span,
.action-btn > span {
  min-width: 0;
  line-height: inherit;
}
.btn-primary, .btn-register, .evalsys-btn-primary {
  --bs-btn-bg: #0963c9; --bs-btn-border-color: var(--primary); --bs-btn-hover-bg: #0b70df; --bs-btn-hover-border-color: var(--primary-hover);
  --bs-btn-active-bg: #075ab8; --bs-btn-active-border-color: var(--primary); --bs-btn-disabled-bg: #174c83;
  color: #fff; background-color: #0963c9;
}
.btn-light, .btn-secondary, .btn-outline-secondary, .btn-outline-dark, .evalsys-btn-outline {
  --bs-btn-color: var(--text-primary); --bs-btn-bg: var(--surface-secondary); --bs-btn-border-color: var(--border-secondary);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--surface-hover); --bs-btn-hover-border-color: var(--primary);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--surface-hover); --bs-btn-active-border-color: var(--primary);
  --bs-btn-disabled-color: var(--text-muted); --bs-btn-disabled-bg: var(--surface-primary);
}
.btn-outline-primary { --bs-btn-color: var(--link-color); }
.btn-outline-danger { --bs-btn-color: var(--red); }
.btn-outline-success { --bs-btn-color: var(--green); }
.btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.bg-warning.text-dark, .bg-info.text-dark { color: #020d20 !important; }
.form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23b5c7dd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
.modal-content, .offcanvas, .toast, .popover {
  color: var(--text-primary); background: #07182e; border: 1px solid #1b3d65; border-radius: 16px;
  --bs-modal-bg: #07182e; --bs-modal-color: var(--text-primary); --bs-popover-bg: #07182e; --bs-popover-body-color: var(--text-primary);
}
.modal-header, .modal-footer, .toast-header, .popover-header { color: var(--text-primary); background-color: var(--surface-primary); border-color: var(--border-primary); }
.modal-backdrop { background: #020814; }
.dropdown-menu { --bs-dropdown-bg: #07182e; --bs-dropdown-color: var(--text-primary); --bs-dropdown-link-color: var(--text-secondary); --bs-dropdown-link-hover-bg: var(--surface-hover); --bs-dropdown-link-hover-color: #fff; --bs-dropdown-link-active-bg: #0963c9; --bs-dropdown-border-color: var(--border-primary); --bs-dropdown-divider-bg: var(--border-primary); }
.dropdown-item { color: var(--text-secondary); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--surface-hover); color: #fff; }
.list-group { --bs-list-group-bg: var(--surface-primary); --bs-list-group-color: var(--text-primary); --bs-list-group-border-color: var(--border-primary); --bs-list-group-action-hover-bg: var(--surface-hover); --bs-list-group-action-hover-color: #fff; }
.table, .eval-table, .evalsys-table {
  --bs-table-color: var(--text-primary); --bs-table-bg: #081b34; --bs-table-border-color: var(--border-primary);
  --bs-table-striped-bg: #0a203c; --bs-table-striped-color: var(--text-primary); --bs-table-hover-bg: #102a4b; --bs-table-hover-color: #fff;
  --bs-table-active-bg: #102a4b; --bs-table-active-color: #fff;
  color: var(--text-primary); border-color: var(--border-primary);
}
.table thead th, .eval-table thead th, .evalsys-table thead th { color: var(--text-secondary); background: var(--surface-secondary); }
.table-light, .table-dark { --bs-table-bg: var(--surface-secondary); --bs-table-color: var(--text-primary); --bs-table-border-color: var(--border-primary); }
.table-primary, .table-info { --bs-table-bg: #102b48; --bs-table-color: #9dceff; }
.table-success { --bs-table-bg: var(--success-soft); --bs-table-color: #72e7b7; }
.table-warning { --bs-table-bg: var(--warning-soft); --bs-table-color: #ffd083; }
.table-danger { --bs-table-bg: var(--danger-soft); --bs-table-color: #ffa4ad; }
.table-secondary { --bs-table-bg: var(--surface-secondary); --bs-table-color: var(--text-secondary); }
.table-primary, .table-info, .table-success, .table-warning, .table-danger, .table-secondary {
  --bs-table-border-color: var(--border-primary); --bs-table-striped-bg: rgba(22,131,255,.07);
  --bs-table-striped-color: var(--bs-table-color); --bs-table-hover-bg: var(--surface-hover); --bs-table-hover-color: #fff;
  --bs-table-active-bg: var(--surface-hover); --bs-table-active-color: #fff;
}
.table-responsive, .panel-table, .evalsys-table-wrap { max-width: 100%; overflow-x: auto; }
.table-responsive,
.panel-table,
.evalsys-table-wrap,
#auditNotificationCenter,
.audit-surface {
  color: var(--text-primary);
  background: linear-gradient(145deg,var(--surface-primary),#0b203d);
  border-color: var(--border-primary);
}
#auditNotificationCenter,
.audit-surface,
#auditNotificationCenter .table-responsive,
.audit-surface .table-responsive {
  min-height: 0;
  height: auto;
}
#auditNotificationCenter .eval-table,
.audit-surface .eval-table,
#auditNotificationCenter .eval-table tbody,
.audit-surface .eval-table tbody,
#auditNotificationCenter .eval-table tr,
.audit-surface .eval-table tr,
#auditNotificationCenter .eval-table td,
.audit-surface .eval-table td {
  color: var(--text-primary);
  background-color: transparent;
}
#auditNotificationCenter .eval-table tbody tr:nth-child(even),
.audit-surface .eval-table tbody tr:nth-child(even) {
  background-color: rgba(12,35,66,.55);
}
#auditNotificationCenter .eval-table td.text-muted,
.audit-surface .eval-table td.text-muted {
  min-height: 0;
  padding-block: 1.25rem;
  color: var(--text-secondary) !important;
  text-align: center;
}
.alert { border: 1px solid; }
.alert-info, .alert-primary { color: #9dceff; background: #102b48; border-color: #255282; }
.alert-success { color: #72e7b7; background: var(--success-soft); border-color: #17674e; }
.alert-warning { color: #ffd083; background: var(--warning-soft); border-color: #785221; }
.alert-danger { color: #ffa4ad; background: var(--danger-soft); border-color: #783047; }
.alert-secondary, .alert-light { color: var(--text-secondary); background: var(--surface-secondary); border-color: var(--border-secondary); }
.alert a { color: inherit; }
.pagination { --bs-pagination-color: var(--text-secondary); --bs-pagination-bg: var(--surface-primary); --bs-pagination-border-color: var(--border-primary); --bs-pagination-hover-color: #fff; --bs-pagination-hover-bg: var(--surface-hover); --bs-pagination-hover-border-color: var(--primary); --bs-pagination-active-bg: #0963c9; --bs-pagination-active-border-color: var(--primary); --bs-pagination-disabled-bg: var(--bg-secondary); --bs-pagination-disabled-color: var(--text-muted); --bs-pagination-disabled-border-color: var(--border-primary); }
.accordion { --bs-accordion-bg: var(--surface-primary); --bs-accordion-color: var(--text-primary); --bs-accordion-border-color: var(--border-primary); --bs-accordion-btn-color: var(--text-primary); --bs-accordion-active-bg: var(--surface-secondary); --bs-accordion-active-color: var(--link-color); }
.progress { --bs-progress-bg: var(--surface-secondary); }
.loading-overlay, .processing-overlay { background: rgba(2,13,32,.90); }
::selection { color: #fff; background: #1759a0; }
:focus-visible { outline: 2px solid var(--primary-hover); outline-offset: 3px; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb { background: #1c4a78; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--primary); }
@media (max-width: 575px) {
  .navbar.bg-dark .navbar-title-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
  }
  .navbar.bg-dark .navbar-title-main {
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    font-size: clamp(.78rem, 3.4vw, .95rem) !important;
    line-height: 1.15;
  }
  .panel-head > .btn,
  .panel-head > div > .btn {
    align-self: flex-start;
    width: auto;
  }
  #auditNotificationCenter,
  .audit-surface {
    padding: 12px;
  }
  #auditNotificationCenter .table-responsive,
  .audit-surface .table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    border: 1px solid var(--border-primary);
    border-radius: 10px;
    -webkit-overflow-scrolling: touch;
  }
  .modal-dialog { margin: .5rem; max-width: calc(100% - 1rem); }
  .modal-content { overflow-wrap: anywhere; }
  .modal-body { min-width: 0; }
  .modal-footer { gap: .5rem; flex-wrap: wrap; }
  .input-group { min-width: 0; }
}
@media (max-width: 768px) {
  .sg-mobile-card-table,
  .sg-mobile-card-table > tbody,
  .sg-mobile-card-table > tbody > tr {
    min-width: 0 !important;
    max-width: 100%;
  }
  .sg-mobile-card-table > tbody > tr {
    background: var(--surface-primary) !important;
    color: var(--text-primary) !important;
  }
  .sg-mobile-card-table > tbody > tr > td {
    --bs-table-bg: var(--surface-primary);
    --bs-table-color: var(--text-primary);
    --bs-table-bg-type: transparent;
    --bs-table-bg-state: transparent;
    min-width: 0 !important;
    max-width: 100%;
    background: var(--surface-primary) !important;
    color: var(--text-primary) !important;
    box-shadow: none !important;
    border-color: var(--border-primary) !important;
    overflow-wrap: anywhere;
  }
  .sg-mobile-card-table > tbody > tr > td::before {
    color: var(--text-secondary);
  }
  .sg-mobile-card-table > tbody > tr > td > * {
    min-width: 0;
    max-width: 100%;
  }
  .sg-mobile-card-table > tbody > tr > td .text-muted {
    color: var(--text-secondary) !important;
  }
  .sg-mobile-card-table > tbody > tr > td .form-control,
  .sg-mobile-card-table > tbody > tr > td .form-select,
  .sg-mobile-card-table > tbody > tr > td textarea {
    width: 100%;
  }
  .sg-mobile-card-table > tbody > tr > td .geo-review-actions {
    min-width: 0;
    max-width: 100%;
  }
  .registration-field-table > tbody > tr > td[style] {
    min-width: 0 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
