/* ══════════════════════════════════════════════
   AMBITION CRICOS FINDER — style.css
   Brand: #4AACE8 (Ambition Blue)
   ══════════════════════════════════════════════ */

/* ── DARK THEME ── */
[data-theme="dark"] {
  --accent:        #4AACE8;
  --accent-dark:   #2e8ec9;
  --accent-dim:    rgba(74,172,232,0.10);
  --accent-glow:   rgba(74,172,232,0.18);
  --accent-border: rgba(74,172,232,0.28);
  --bg:            #0d1117;
  --bg-header:     #111820;
  --surface:       #161d27;
  --surface2:      #1c2636;
  --surface3:      #233040;
  --border:        #253040;
  --border-soft:   #1e2c3a;
  --text:          #ddeaf5;
  --text-muted:    #6a90aa;
  --text-dim:      #344d62;
  --danger:        #ff6b6b;
  --success:       #4cd97b;
  --gold:          #f5c842;
  --orange:        #ffaa4d;
  --purple:        #b06bff;
  --teal:          #30d0c0;
  --fav:           #ff5c8a;
  --fav-dim:       rgba(255,92,138,0.12);
  --fav-border:    rgba(255,92,138,0.28);
  --ambition:      #4AACE8;
  --ambition-dim:  rgba(74,172,232,0.08);
  --shadow-card:   0 4px 24px rgba(0,0,0,0.35);
  --shadow-modal:  0 24px 80px rgba(0,0,0,0.55);
}

/* ── LIGHT THEME ── */
[data-theme="light"] {
  --accent:        #1a7fc1;
  --accent-dark:   #1260a0;
  --accent-dim:    rgba(26,127,193,0.08);
  --accent-glow:   rgba(26,127,193,0.15);
  --accent-border: rgba(26,127,193,0.25);
  --bg:            #f0f5fa;
  --bg-header:     #ffffff;
  --surface:       #ffffff;
  --surface2:      #edf3f9;
  --surface3:      #e2ecf5;
  --border:        #d0dde8;
  --border-soft:   #e0eaf4;
  --text:          #0e2035;
  --text-muted:    #4a6a85;
  --text-dim:      #92b0c4;
  --danger:        #e03c3c;
  --success:       #1fa85a;
  --gold:          #c49400;
  --orange:        #d87c00;
  --purple:        #7030c0;
  --teal:          #009080;
  --fav:           #e0255a;
  --fav-dim:       rgba(224,37,90,0.08);
  --fav-border:    rgba(224,37,90,0.22);
  --ambition:      #1a7fc1;
  --ambition-dim:  rgba(26,127,193,0.06);
  --shadow-card:   0 2px 12px rgba(0,40,80,0.08);
  --shadow-modal:  0 16px 60px rgba(0,40,80,0.18);
}

:root {
  --radius: 10px;
  --sidebar: 308px;
  --header-h: 62px;
  --font-body: 'Plus Jakarta Sans', sans-serif;
  --font-mono: 'DM Mono', monospace;
}

*,*::before,*::after { box-sizing: border-box; margin:0; padding:0; }
a { text-decoration:none; color:inherit; }
button { font-family:var(--font-body); cursor:pointer; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  min-height: 100vh;
  overflow-x: hidden;
  transition: background 0.25s, color 0.25s;
}

/* ══════════════════════════════════════════════
   LOADING
   ══════════════════════════════════════════════ */
#loading-screen {
  position: fixed; inset:0;
  background: var(--bg);
  display: flex; flex-direction:column; align-items:center; justify-content:center;
  z-index: 9999; gap:20px;
  transition: opacity 0.35s;
}
.loader-logo-img { height:80px; width:auto; object-fit:contain; }
.loader-bar-wrap { width:260px; height:3px; background:var(--border); border-radius:2px; overflow:hidden; }
.loader-bar { height:100%; background:var(--accent); border-radius:2px; animation:loadbar 2.2s ease-in-out infinite; }
@keyframes loadbar { 0%{width:0%} 65%{width:80%} 100%{width:100%} }
.loader-msg { font-size:11px; font-family:var(--font-mono); color:var(--text-muted); }

/* ══════════════════════════════════════════════
   HEADER
   ══════════════════════════════════════════════ */
header {
  display:flex; align-items:center; justify-content:space-between;
  padding: 0 24px; height:var(--header-h);
  background:var(--bg-header); border-bottom:1px solid var(--border);
  position:sticky; top:0; z-index:200;
  transition:background 0.25s;
}
.logo { display:flex; align-items:center; }
.header-logo-img {
  height:54px; width:auto; object-fit:contain; transition:filter 0.25s;
}
[data-theme="dark"] .header-logo-img {
  filter: invert(1) hue-rotate(180deg) brightness(1.8) saturate(0.6);
}
[data-theme="dark"] .loader-logo-img {
  filter: invert(1) hue-rotate(180deg) brightness(1.8) saturate(0.6);
}
.header-right { display:flex; align-items:center; gap:14px; }

#status-bar { display:flex; align-items:center; gap:8px; font-size:11px; font-family:var(--font-mono); color:var(--text-muted); }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--text-dim); transition:background 0.3s; flex-shrink:0; }
.status-dot.loading { background:var(--gold); animation:pulse 1s infinite; }
.status-dot.ready   { background:var(--success); }
.status-dot.error   { background:var(--danger); }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.25} }

.theme-toggle {
  width:34px; height:34px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface2);
  font-size:15px; display:flex; align-items:center; justify-content:center;
  transition:all 0.2s;
}
.theme-toggle:hover { background:var(--accent-dim); border-color:var(--accent-border); }

/* ══════════════════════════════════════════════
   LAYOUT
   ══════════════════════════════════════════════ */
.app-layout { display:grid; grid-template-columns:var(--sidebar) 1fr; min-height:calc(100vh - var(--header-h)); align-items:start; }

/* ══════════════════════════════════════════════
   SIDEBAR
   ══════════════════════════════════════════════ */
aside {
  background:var(--surface); border-right:1px solid var(--border);
  overflow-y:auto; position:sticky; top:var(--header-h);
  height:calc(100vh - var(--header-h));
  scrollbar-width:thin; scrollbar-color:var(--border) transparent;
  transition:background 0.25s;
}
aside::-webkit-scrollbar { width:3px; }
aside::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.filter-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px 12px; border-bottom:1px solid var(--border);
  position:sticky; top:0; background:var(--surface); z-index:10;
  gap:8px;
}
.filter-header-title { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--text-muted); }
.filter-header-actions { display:flex; align-items:center; gap:6px; }

.fav-filter-btn {
  font-size:10px; color:var(--fav);
  background:var(--fav-dim); border:1px solid var(--fav-border);
  border-radius:5px; padding:4px 8px;
  transition:all 0.18s; font-family:var(--font-mono);
}
.fav-filter-btn:hover, .fav-filter-btn.active { background:var(--fav); color:white; border-color:var(--fav); }

#clear-all {
  font-size:10px; color:var(--accent);
  background:none; border:1px solid var(--border);
  border-radius:5px; padding:4px 8px;
  transition:all 0.18s; font-family:var(--font-mono);
}
#clear-all:hover { background:var(--accent-dim); border-color:var(--accent-border); }

.search-wrap {
  padding:10px 14px; border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:8px; background:var(--surface2);
}
.search-icon { font-size:12px; flex-shrink:0; }
.search-wrap input {
  flex:1; background:none; border:none;
  font-family:var(--font-body); font-size:13px; color:var(--text); outline:none;
}
.search-wrap input::placeholder { color:var(--text-dim); }

/* Filter group */
.filter-group { border-bottom:1px solid var(--border-soft); }
.filter-group-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 16px; cursor:pointer; user-select:none; transition:background 0.15s;
}
.filter-group-header:hover { background:var(--accent-dim); }
.fg-label-wrap { display:flex; align-items:center; gap:9px; }
.fg-number {
  width:19px; height:19px; border-radius:50%;
  background:var(--accent-dim); border:1px solid var(--accent-border);
  color:var(--accent); font-size:9px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; font-family:var(--font-mono);
}
.filter-group-label { font-size:12px; font-weight:700; color:var(--text); }
.filter-group-meta { display:flex; align-items:center; gap:7px; }
.active-badge {
  background:var(--accent); color:white; font-size:9px; font-weight:700;
  border-radius:10px; padding:2px 6px; display:none; font-family:var(--font-mono);
}
.active-badge.show { display:block; }
.chevron { color:var(--text-dim); font-size:10px; transition:transform 0.2s; }
.filter-group.open .chevron { transform:rotate(180deg); }

.filter-group-body { display:none; flex-direction:column; }
.filter-group.open .filter-group-body { display:flex; }

.filter-search-wrap { padding:7px 12px 5px; border-bottom:1px solid var(--border-soft); }
.filter-search {
  width:100%; background:var(--surface2); border:1px solid var(--border);
  border-radius:6px; padding:5px 9px;
  font-family:var(--font-body); font-size:11px; color:var(--text); outline:none;
  transition:border-color 0.18s;
}
.filter-search::placeholder { color:var(--text-dim); }
.filter-search:focus { border-color:var(--accent-border); }

.filter-options {
  padding:5px 12px 10px; display:flex; flex-direction:column; gap:1px;
  max-height:210px; overflow-y:auto;
  scrollbar-width:thin; scrollbar-color:var(--border) transparent;
}
.filter-options::-webkit-scrollbar { width:3px; }
.filter-options::-webkit-scrollbar-thumb { background:var(--border); }

.check-item {
  display:flex; align-items:center; gap:8px; padding:5px 5px;
  border-radius:6px; cursor:pointer; transition:background 0.13s;
}
.check-item:hover { background:var(--accent-dim); }
.check-item.hidden { display:none; }
.check-item input[type="checkbox"] {
  appearance:none; width:13px; height:13px;
  border:1.5px solid var(--text-dim); border-radius:3px;
  flex-shrink:0; cursor:pointer; transition:all 0.13s; position:relative;
}
.check-item input[type="checkbox"]:checked { background:var(--accent); border-color:var(--accent); }
.check-item input[type="checkbox"]:checked::after {
  content:'✓'; position:absolute; top:-2px; left:1px;
  font-size:9px; color:white; font-weight:900;
}
.check-label { flex:1; font-size:11px; color:var(--text-muted); line-height:1.4; }
.check-count { font-size:10px; color:var(--text-dim); font-family:var(--font-mono); }

.range-wrap { padding:9px 12px 13px; }
.range-labels { display:flex; justify-content:space-between; font-size:11px; color:var(--text-muted); margin-bottom:9px; font-family:var(--font-mono); }
.range-val { color:var(--accent); font-weight:500; }
input[type="range"] { width:100%; appearance:none; height:3px; background:var(--border); border-radius:2px; outline:none; cursor:pointer; }
input[type="range"]::-webkit-slider-thumb { appearance:none; width:14px; height:14px; border-radius:50%; background:var(--accent); cursor:pointer; border:2px solid var(--bg); box-shadow:0 0 0 2px var(--accent-border); }

/* ══════════════════════════════════════════════
   MAIN
   ══════════════════════════════════════════════ */
main { display:flex; flex-direction:column; min-width:0; }

.toolbar {
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 22px; border-bottom:1px solid var(--border);
  background:var(--surface); position:sticky; top:var(--header-h);
  z-index:100; gap:12px; flex-wrap:wrap; transition:background 0.25s;
}
.result-count { font-size:13px; color:var(--text-muted); }
.result-count span { font-size:21px; font-weight:800; color:var(--accent); margin-right:4px; line-height:1; }
.sort-wrap { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--text-muted); }
.sort-wrap select {
  background:var(--surface2); border:1px solid var(--border);
  border-radius:7px; color:var(--text); font-family:var(--font-body);
  font-size:12px; padding:5px 9px; outline:none; cursor:pointer;
}

.active-filters-bar {
  display:flex; align-items:center; flex-wrap:wrap; gap:6px;
  padding:9px 22px; border-bottom:1px solid var(--border);
  min-height:44px; background:var(--surface);
}
.active-filters-bar:empty::before {
  content:'No filters active — showing all courses';
  font-size:11px; color:var(--text-dim); font-family:var(--font-mono);
}
.filter-tag {
  display:inline-flex; align-items:center; gap:5px;
  background:var(--accent-dim); border:1px solid var(--accent-border);
  border-radius:20px; padding:3px 9px; font-size:10px; color:var(--accent);
  cursor:pointer; transition:background 0.15s; max-width:240px;
}
.filter-tag span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.filter-tag:hover { background:var(--accent-glow); }
.filter-tag .rm { font-size:13px; line-height:1; flex-shrink:0; opacity:0.7; }

.fav-tag {
  background:var(--fav-dim) !important; border-color:var(--fav-border) !important; color:var(--fav) !important;
}

#error-state { display:none; padding:40px; text-align:center; color:var(--danger); font-size:13px; line-height:1.8; }

/* ══════════════════════════════════════════════
   CARDS
   ══════════════════════════════════════════════ */
.cards-grid {
  padding:18px 22px;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:13px; align-content:start;
}
.empty-state {
  display:flex; flex-direction:column; align-items:center; gap:11px;
  padding:70px 40px; color:var(--text-dim); font-size:13px;
  grid-column:1/-1; text-align:center;
}
.empty-state .emoji { font-size:42px; }

.card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:12px; padding:16px;
  display:flex; flex-direction:column; gap:10px;
  cursor:pointer; transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow:var(--shadow-card); position:relative;
}
.card:hover {
  border-color:var(--accent-border);
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(74,172,232,0.12);
}
.card.is-favourite { border-color:var(--fav-border); }
.card.is-favourite:hover { box-shadow:0 10px 30px rgba(255,92,138,0.12); }

/* Favourite heart on card */
.card-fav-btn {
  position:absolute; top:12px; right:12px;
  background:none; border:none;
  font-size:16px; color:var(--text-dim);
  cursor:pointer; padding:2px 4px; border-radius:4px;
  transition:color 0.15s, transform 0.15s;
  z-index:2;
}
.card-fav-btn:hover { transform:scale(1.3); }
.card-fav-btn.active { color:var(--fav); }

.card-top { display:flex; align-items:center; gap:8px; padding-right:28px; }
.card-level {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.2px; padding:3px 8px; border-radius:5px;
  flex-shrink:0; font-family:var(--font-mono);
}
.level-bachelor   { background:rgba(74,172,232,0.12);  color:#4AACE8; border:1px solid rgba(74,172,232,0.25); }
.level-master     { background:rgba(245,200,66,0.12);  color:var(--gold);   border:1px solid rgba(245,200,66,0.25); }
.level-doctor     { background:rgba(176,107,255,0.12); color:var(--purple); border:1px solid rgba(176,107,255,0.25); }
.level-diploma    { background:rgba(48,208,192,0.12);  color:var(--teal);   border:1px solid rgba(48,208,192,0.25); }
.level-certificate{ background:rgba(255,170,77,0.12);  color:var(--orange); border:1px solid rgba(255,170,77,0.25); }
.level-other      { background:var(--surface2); color:var(--text-muted); border:1px solid var(--border); }

.card-type { font-size:9px; color:var(--text-dim); text-transform:uppercase; letter-spacing:1px; font-family:var(--font-mono); }
.card-name { font-size:14px; font-weight:700; line-height:1.4; color:var(--text); padding-right:10px; }
.card-institution { font-size:11px; color:var(--text-muted); display:flex; align-items:center; gap:5px; }
.card-institution::before { content:'🏛'; font-size:11px; }
.card-location-tag { font-size:11px; color:var(--accent); display:flex; align-items:center; gap:4px; font-weight:600; }
.card-location-tag::before { content:'📍'; font-size:10px; }

.card-fields { display:flex; flex-direction:column; gap:2px; }
.field-broad { font-size:11px; color:var(--text-muted); display:flex; align-items:center; gap:4px; }
.field-broad::before { content:'📚'; font-size:10px; }
.field-tag { font-size:10px; color:var(--text-dim); padding-left:16px; }

.card-stats {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px;
  padding-top:9px; border-top:1px solid var(--border-soft);
}
.stat { display:flex; flex-direction:column; gap:3px; }
.stat-label { font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--text-dim); font-family:var(--font-mono); }
.stat-value { font-size:12px; font-weight:600; color:var(--text); }
.stat-value.fee { font-size:13px; font-weight:800; color:var(--accent); }

.card-footer { display:flex; align-items:center; justify-content:space-between; gap:7px; flex-wrap:wrap; }
.state-badge { font-size:10px; padding:2px 7px; background:var(--surface2); border:1px solid var(--border); border-radius:4px; color:var(--text-muted); font-family:var(--font-mono); }
.work-badge { font-size:9px; padding:2px 7px; background:rgba(255,170,77,0.1); border:1px solid rgba(255,170,77,0.22); border-radius:4px; color:var(--orange); font-family:var(--font-mono); }
.card-hint { font-size:9px; color:var(--text-dim); text-align:right; transition:color 0.2s; font-family:var(--font-mono); }
.card:hover .card-hint { color:var(--accent); }

/* ══════════════════════════════════════════════
   PAGINATION
   ══════════════════════════════════════════════ */
.pagination { display:flex; align-items:center; justify-content:center; gap:5px; padding:26px 22px; border-top:1px solid var(--border); flex-wrap:wrap; }
.page-btn { font-family:var(--font-mono); font-size:11px; padding:6px 12px; background:var(--surface2); border:1px solid var(--border); border-radius:7px; color:var(--text-muted); cursor:pointer; transition:all 0.15s; }
.page-btn:hover:not(:disabled) { border-color:var(--accent-border); color:var(--accent); }
.page-btn.active { background:var(--accent); color:white; border-color:var(--accent); font-weight:700; }
.page-btn:disabled { opacity:0.3; cursor:not-allowed; }

/* ══════════════════════════════════════════════
   MODAL
   ══════════════════════════════════════════════ */
.modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.65);
  backdrop-filter:blur(8px); z-index:500;
  display:flex; align-items:center; justify-content:center;
  padding:20px; opacity:0; pointer-events:none; transition:opacity 0.22s;
}
.modal-overlay.open { opacity:1; pointer-events:all; }

.modal {
  background:var(--surface); border:1px solid var(--border);
  border-radius:16px; width:100%; max-width:760px; max-height:90vh;
  display:flex; flex-direction:column; overflow:hidden;
  box-shadow:var(--shadow-modal);
  transform:translateY(20px) scale(0.97);
  transition:transform 0.28s cubic-bezier(0.22,1,0.36,1), background 0.25s;
}
.modal-overlay.open .modal { transform:translateY(0) scale(1); }

.modal-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px 0; flex-shrink:0; }
.modal-header-left { display:flex; align-items:center; gap:9px; }
.modal-header-actions { display:flex; align-items:center; gap:8px; }

.modal-level-badge { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.2px; padding:4px 9px; border-radius:5px; font-family:var(--font-mono); }
.modal-inst-type-tag { font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:1px; font-family:var(--font-mono); }

.modal-fav-btn {
  font-size:18px; color:var(--text-dim);
  background:none; border:1px solid var(--border);
  border-radius:8px; padding:4px 10px;
  transition:all 0.18s;
}
.modal-fav-btn:hover { color:var(--fav); border-color:var(--fav-border); background:var(--fav-dim); }
.modal-fav-btn.active { color:var(--fav); border-color:var(--fav-border); background:var(--fav-dim); }

.modal-close { width:30px; height:30px; border-radius:50%; border:1px solid var(--border); background:var(--surface2); font-size:12px; color:var(--text-muted); display:flex; align-items:center; justify-content:center; transition:all 0.15s; }
.modal-close:hover { background:var(--danger); border-color:var(--danger); color:white; }

.modal-title-block { padding:12px 20px 0; flex-shrink:0; }
.modal-course-name { font-size:20px; font-weight:800; line-height:1.35; color:var(--text); }
.modal-institution { margin-top:4px; font-size:12px; color:var(--text-muted); display:flex; align-items:center; gap:5px; }
.modal-institution::before { content:'🏛'; font-size:12px; }

.modal-stats-row {
  display:grid; grid-template-columns:repeat(4,1fr);
  margin:14px 20px 0; border:1px solid var(--border);
  border-radius:10px; overflow:hidden; flex-shrink:0;
}
.modal-stat { background:var(--surface2); padding:11px 13px; display:flex; flex-direction:column; gap:4px; border-right:1px solid var(--border); }
.modal-stat:last-child { border-right:none; }
.modal-stat-label { font-size:9px; text-transform:uppercase; letter-spacing:1.2px; color:var(--text-dim); font-family:var(--font-mono); }
.modal-stat-value { font-size:15px; font-weight:800; color:var(--text); line-height:1; }
.modal-stat-value.accent { color:var(--accent); }
.modal-stat-value.highlight { color:var(--gold); }

.modal-tabs { display:flex; margin:14px 20px 0; border-bottom:1px solid var(--border); flex-shrink:0; overflow-x:auto; }
.modal-tab { font-family:var(--font-body); font-size:12px; font-weight:600; padding:7px 14px; border:none; background:none; color:var(--text-muted); border-bottom:2px solid transparent; margin-bottom:-1px; cursor:pointer; transition:all 0.18s; white-space:nowrap; }
.modal-tab:hover { color:var(--text); }
.modal-tab.active { color:var(--accent); border-bottom-color:var(--accent); }

.modal-body { padding:16px 20px; overflow-y:auto; flex:1; scrollbar-width:thin; scrollbar-color:var(--border) transparent; }
.modal-body::-webkit-scrollbar { width:4px; }
.modal-body::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.tab-panel { display:none; flex-direction:column; gap:16px; }
.tab-panel.active { display:flex; }

.modal-section { display:flex; flex-direction:column; gap:11px; }
.modal-section-title { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--text-muted); padding-bottom:7px; border-bottom:1px solid var(--border-soft); font-family:var(--font-mono); }

.modal-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:11px; }
.modal-field { display:flex; flex-direction:column; gap:4px; }
.modal-field-label { font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--text-dim); font-family:var(--font-mono); }
.modal-field-value { font-size:13px; color:var(--text); line-height:1.5; font-weight:500; }

.modal-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.bc-item { font-size:12px; padding:4px 10px; border-radius:6px; font-weight:500; }
.bc-broad  { background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); }
.bc-narrow { background:rgba(48,208,192,0.08); color:var(--teal); border:1px solid rgba(48,208,192,0.2); }
.bc-detail { background:var(--surface2); color:var(--text-muted); border:1px solid var(--border); }
.bc-sep    { color:var(--text-dim); font-size:11px; }

.work-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:9px; }
.work-item { background:rgba(255,170,77,0.07); border:1px solid rgba(255,170,77,0.18); border-radius:8px; padding:9px 11px; }
.work-item-label { font-size:9px; text-transform:uppercase; letter-spacing:1px; color:rgba(255,170,77,0.6); margin-bottom:3px; font-family:var(--font-mono); }
.work-item-value { font-size:13px; font-weight:700; color:var(--orange); }
.no-work-msg { font-size:12px; color:var(--text-dim); padding:9px 13px; background:var(--surface2); border:1px solid var(--border); border-radius:8px; }

/* Teaching Locations */
.location-intro { font-size:12px; color:var(--text-muted); padding:8px 12px; background:var(--accent-dim); border:1px solid var(--accent-border); border-radius:8px; line-height:1.5; }
.location-list { display:flex; flex-direction:column; gap:7px; }
.location-card { background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:12px 15px; display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:start; transition:border-color 0.15s; }
.location-card:hover { border-color:var(--accent-border); }
.location-pin { width:30px; height:30px; border-radius:50%; background:var(--accent-dim); border:1px solid var(--accent-border); display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
.location-info { display:flex; flex-direction:column; gap:3px; }
.location-name { font-size:12px; font-weight:700; color:var(--text); line-height:1.3; }
.location-city-state { font-size:12px; color:var(--accent); font-weight:600; display:flex; align-items:center; gap:3px; }
.location-city-state::before { content:'📍'; font-size:10px; }
.location-no-data { font-size:12px; color:var(--text-dim); padding:14px; text-align:center; background:var(--surface2); border:1px dashed var(--border); border-radius:8px; }

/* Ambition Notes Tab */
.ambition-card {
  background:var(--ambition-dim); border:1px solid var(--accent-border);
  border-radius:12px; padding:16px 18px;
  display:flex; flex-direction:column; gap:12px;
}
.ambition-header { display:flex; align-items:center; gap:10px; }
.ambition-logo-sm { height:28px; width:auto; object-fit:contain; }
.ambition-uni-name { font-size:15px; font-weight:700; color:var(--accent); }
.ambition-alias { font-size:10px; color:var(--text-muted); font-family:var(--font-mono); }

.ambition-provinces { display:flex; flex-direction:column; gap:8px; }
.ambition-province { display:flex; flex-direction:column; gap:4px; }
.ambition-province-name { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); font-family:var(--font-mono); }
.ambition-cities { display:flex; flex-wrap:wrap; gap:5px; }
.city-chip { font-size:11px; padding:3px 9px; background:var(--accent-dim); border:1px solid var(--accent-border); border-radius:20px; color:var(--accent); font-weight:500; }

.ambition-remarks { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:12px 14px; }
.ambition-remarks-title { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--text-muted); margin-bottom:8px; font-family:var(--font-mono); }
.ambition-remark-item { font-size:12px; color:var(--text-muted); line-height:1.6; padding:3px 0; border-bottom:1px solid var(--border-soft); }
.ambition-remark-item:last-child { border-bottom:none; }

.ambition-no-data { font-size:12px; color:var(--text-dim); padding:20px; text-align:center; background:var(--surface2); border:1px dashed var(--border); border-radius:10px; }

/* Modal Footer */
.modal-footer { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding:12px 20px; border-top:1px solid var(--border); flex-shrink:0; }
.modal-visit-btn { font-family:var(--font-body); font-size:12px; font-weight:700; padding:8px 16px; background:var(--accent); color:white; border:none; border-radius:8px; cursor:pointer; transition:background 0.15s; display:inline-block; }
.modal-visit-btn:hover { background:var(--accent-dark); }
.modal-close-btn { font-family:var(--font-body); font-size:12px; font-weight:600; padding:8px 16px; background:none; border:1px solid var(--border); border-radius:8px; color:var(--text-muted); cursor:pointer; transition:all 0.15s; }
.modal-close-btn:hover { border-color:var(--text-muted); color:var(--text); }

/* ══════════════════════════════════════════════
   GS REQUIREMENT STYLES
   ══════════════════════════════════════════════ */
.gs-priority-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1px; padding: 4px 10px; border-radius: 20px;
  font-family: var(--font-mono);
}
.gs-priority-high   { background: rgba(76,217,123,0.12); color: var(--success); border: 1px solid rgba(76,217,123,0.3); }
.gs-priority-medium { background: rgba(245,200,66,0.12); color: var(--gold);    border: 1px solid rgba(245,200,66,0.3); }
.gs-priority-low    { background: rgba(255,107,107,0.12);color: var(--danger);  border: 1px solid rgba(255,107,107,0.3); }

.gs-card {
  background: var(--surface2); border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden;
}
.gs-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; background: var(--surface3);
  border-bottom: 1px solid var(--border);
}
.gs-card-title {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; color: var(--text-muted); font-family: var(--font-mono);
}
.gs-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap: 0; border-top: 1px solid var(--border);
}
.gs-field {
  padding: 10px 14px; border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 4px;
}
.gs-field:nth-child(even) { border-right: none; }
.gs-field-label {
  font-size: 9px; text-transform: uppercase; letter-spacing: 1px;
  color: var(--text-dim); font-family: var(--font-mono);
}
.gs-field-value {
  font-size: 12px; color: var(--text); line-height: 1.5; font-weight: 500;
}
.gs-field-value.highlight { color: var(--accent); }
.gs-remarks-box {
  padding: 12px 14px; border-top: 1px solid var(--border);
}
.gs-remarks-title {
  font-size: 9px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; color: var(--text-muted); margin-bottom: 8px;
  font-family: var(--font-mono);
}
.gs-remark-item {
  font-size: 12px; color: var(--text-muted); line-height: 1.6;
  padding: 3px 0; border-bottom: 1px solid var(--border-soft);
  display: flex; gap: 6px;
}
.gs-remark-item:last-child { border-bottom: none; }
.gs-remark-num {
  color: var(--accent); font-weight: 700; font-size: 11px;
  flex-shrink: 0; font-family: var(--font-mono); min-width: 16px;
}

.gs-special-notes {
  margin-top: 14px; background: rgba(245,200,66,0.05);
  border: 1px solid rgba(245,200,66,0.2); border-radius: 10px;
  overflow: hidden;
}
.gs-special-notes-header {
  padding: 8px 14px; background: rgba(245,200,66,0.08);
  border-bottom: 1px solid rgba(245,200,66,0.2);
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; color: var(--gold); font-family: var(--font-mono);
}
.gs-special-notes-list { padding: 10px 14px; display: flex; flex-direction: column; gap: 6px; }
.gs-special-note-item {
  font-size: 11px; color: var(--text-muted); line-height: 1.5;
  display: flex; gap: 8px;
}
.gs-special-note-num { color: var(--gold); font-weight: 700; flex-shrink: 0; font-family: var(--font-mono); }

.gs-no-data {
  padding: 24px; text-align: center; color: var(--text-dim);
  font-size: 12px; background: var(--surface2);
  border: 1px dashed var(--border); border-radius: 10px; line-height: 1.7;
}

/* ══════════════════════════════════════════════
   ELIGIBILITY STYLES
   ══════════════════════════════════════════════ */
.eligibility-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap: 10px;
}
.elig-item {
  background: var(--surface2); border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 4px;
}
.elig-label {
  font-size: 9px; text-transform: uppercase; letter-spacing: 1px;
  color: var(--text-dim); font-family: var(--font-mono);
}
.elig-value {
  font-size: 13px; font-weight: 600; color: var(--text);
  line-height: 1.4;
}
.elig-value.green  { color: var(--success); }
.elig-value.yellow { color: var(--gold); }
.elig-value.blue   { color: var(--accent); }

/* ══════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════ */
@media (max-width:900px) {
  .app-layout { grid-template-columns:1fr; }
  aside { position:relative; height:auto; top:0; border-right:none; border-bottom:1px solid var(--border); }
  .cards-grid { padding:12px; grid-template-columns:1fr; }
  .modal-stats-row { grid-template-columns:repeat(2,1fr); }
  .modal-course-name { font-size:17px; }
}
@media (max-width:500px) {
  header { padding:0 12px; }
  .modal { border-radius:10px; }
  .modal-footer { flex-direction:column-reverse; }
  .modal-visit-btn,.modal-close-btn { width:100%; text-align:center; }
}
