/* VITA shared visual language for interior pages. */
:root {
  --vita-blue: #0055a4;
  --vita-blue-dark: #063b70;
  --vita-blue-soft: #e8f2fb;
  --vita-ink: #14283d;
  --vita-muted: #61758a;
  --vita-line: #cbddeb;
  --vita-surface: #ffffff;
  --vita-canvas: #f4f8fb;
  --vita-shadow: 0 12px 30px rgba(24, 65, 101, 0.07);
}

html {
  background: var(--vita-canvas);
}

body,
body.resource-page {
  background: var(--vita-canvas);
  color: var(--vita-ink);
}

#navbar,
.resource-page #navbar {
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid rgba(0, 85, 164, 0.12);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

#navbar.scrolled,
.resource-page #navbar.scrolled {
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 24px rgba(24, 65, 101, 0.06);
}

.nav-links li a {
  color: #354b61;
}

.nav-links li a:hover,
.nav-links li a.active {
  color: var(--vita-blue-dark);
  background: var(--vita-blue-soft);
}

.page-hero {
  position: relative;
  padding: 132px max(5vw, calc((100vw - 1140px) / 2)) 62px;
  text-align: left;
  background: #edf5fb;
  border-top: 1px solid rgba(0, 85, 164, 0.08);
  border-bottom: 1px solid var(--vita-line);
  overflow: hidden;
}

.page-hero::after {
  content: '';
  position: absolute;
  right: max(5vw, calc((100vw - 1140px) / 2));
  bottom: 0;
  width: min(26vw, 330px);
  height: 5px;
  background: var(--vita-blue);
}

.page-hero-label {
  margin: 0 0 12px;
  color: var(--vita-blue);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.page-hero h1 {
  max-width: 860px;
  margin: 0;
  color: var(--vita-blue-dark);
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
}

.page-hero p {
  max-width: 760px;
  margin: 18px 0 0;
  color: var(--vita-muted);
  font-size: 1rem;
  line-height: 1.75;
}

main:not(.resource-shell),
.team-page,
.pub-shell,
.detail-main {
  background: var(--vita-canvas);
}

/* Team */
.team-tabs,
.section-tabs,
.pub-tabs,
.year-tabs,
.category-filters,
.type-tabs {
  gap: 7px;
}

.team-tab,
.section-tab,
.pub-tab,
.year-tab,
.filter-btn,
.type-tab,
.detail-lang-btn {
  border-radius: 6px;
  border-color: var(--vita-line);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: none;
  color: #4c6277;
}

.team-tab:hover,
.team-tab.active,
.section-tab:hover,
.section-tab.active,
.pub-tab:hover,
.pub-tab.active,
.year-tab:hover,
.year-tab.active,
.filter-btn:hover,
.filter-btn.active,
.type-tab:hover,
.type-tab.active,
.detail-lang-btn:hover,
.detail-lang-btn.active {
  border-color: var(--vita-blue);
  background: var(--vita-blue);
  color: #fff;
  box-shadow: none;
}

.team-section-head {
  border-bottom-color: var(--vita-line);
}

.team-section-title,
.prof-info h2,
.member-info h3,
.detail-name {
  color: var(--vita-blue-dark);
}

.team-section-count,
.prof-section-label,
.detail-section-title {
  color: var(--vita-blue);
}

.prof-card,
.member-card,
.member-detail,
.detail-profile,
.detail-column,
.highlight-card {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: var(--vita-surface);
  box-shadow: var(--vita-shadow);
}

.prof-photo,
.prof-photo img,
.member-photo-wrap,
.member-photo-wrap img {
  border-radius: 6px;
}

.prof-title-badge,
.prof-link-btn,
.detail-tag {
  border-radius: 5px;
}

/* Research */
.panel-filters,
.info-box {
  border-color: var(--vita-line);
  border-radius: 8px;
  background: var(--vita-surface);
  box-shadow: none;
}

.research-controls {
  background: transparent;
}

.search-wrap input,
.pub-search-wrap input,
.news-search-wrap input {
  border-radius: 6px;
  border-color: var(--vita-line);
  background: #fff;
  box-shadow: none;
}

.search-wrap input:focus,
.pub-search-wrap input:focus,
.news-search-wrap input:focus {
  border-color: var(--vita-blue);
  box-shadow: 0 0 0 3px rgba(0, 85, 164, 0.1);
}

.research-project-card,
.project-item {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: var(--vita-surface);
  box-shadow: var(--vita-shadow);
}

.research-project-card:hover,
.project-item:hover {
  border-color: rgba(0, 85, 164, 0.45);
  box-shadow: 0 16px 34px rgba(24, 65, 101, 0.11);
}

.research-project-card.ongoing-project {
  border: 2px solid #43a86b;
  box-shadow: 0 10px 26px rgba(35, 130, 75, 0.1);
}

.research-project-card.ongoing-project:hover {
  border-color: #278a50;
  box-shadow: 0 16px 34px rgba(35, 130, 75, 0.16);
}

.research-status-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 10px;
  border: 1px solid #a9d9ba;
  border-radius: 5px;
  background: #eaf7ee;
  color: #237a45;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0;
}

.research-project-card img {
  border-radius: 7px 7px 0 0;
}

.research-cat-tag,
.project-tag,
.detail-label,
.detail-chip-list li,
.detail-glance-badge,
.detail-output-tag,
.detail-grant-badge {
  border-radius: 5px;
  background: var(--vita-blue-soft);
  color: var(--vita-blue-dark);
}

/* Publications */
.stat-card-pub,
.pub-panel,
.pub-item {
  border-radius: 8px;
  background: var(--vita-surface);
  box-shadow: var(--vita-shadow);
}

.stat-card-pub {
  position: relative;
  overflow: hidden;
  border: 1px solid #b9d3e6;
}

.stat-card-pub::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--vita-blue);
}

.pub-panel {
  border: 1px solid #b9d3e6;
  padding: 18px;
}

.pub-item {
  border: 1px solid #c3d8e8;
  box-shadow: 0 6px 18px rgba(24, 65, 101, 0.07);
}

.pub-item:hover {
  border-color: #8eb9d8;
}

.stat-num-pub,
.pub-item-title,
.pub-year-heading {
  color: var(--vita-blue-dark);
}

.pub-item-link {
  color: var(--vita-blue);
}

/* Lectures */
.lecture-table-wrap {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: #fff;
  box-shadow: var(--vita-shadow);
}

.lecture-table th {
  background: #e8f2fb;
  color: var(--vita-blue-dark);
}

.lecture-table thead th.semester-side.spring {
  background: var(--vita-blue-dark);
}

.lecture-table thead th.semester-side.fall {
  background: var(--vita-blue);
}

.semester-heading {
  color: var(--vita-blue-dark);
  border-bottom-color: var(--vita-line);
}

.lec-icon-circle,
.lec-file-btn:not(.closed) {
  border-radius: 6px;
}

.lec-icon-circle {
  background: var(--vita-blue);
}

.lec-file-btn.github-link {
  background: var(--vita-blue-soft);
  border-color: var(--vita-line);
  color: var(--vita-blue-dark);
  box-shadow: none;
}

/* News */
.news-item {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: #fff;
  box-shadow: var(--vita-shadow);
}

.news-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(24, 65, 101, 0.11);
}

.news-year-dot {
  border-radius: 6px;
  background: var(--vita-blue);
}

.news-thumb,
.news-modal-image {
  border-radius: 6px;
}

.load-more-btn {
  border-radius: 6px;
  border-color: var(--vita-blue);
  color: var(--vita-blue);
}

.load-more-btn:hover {
  background: var(--vita-blue);
}

/* Research details */
.detail-hero {
  background: #edf5fb;
  border-bottom: 1px solid var(--vita-line);
}

.detail-hero h1,
.detail-section-title,
.detail-output-title,
.detail-grant-title {
  color: var(--vita-blue-dark);
}

.detail-hero-image,
.detail-hero-image img,
.detail-hero-display,
.detail-card,
.detail-side .detail-card,
.detail-grant-card {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: #fff;
  box-shadow: var(--vita-shadow);
}

.detail-action {
  border-radius: 6px;
}

/* Member Hub: presentation only; dashboard behavior remains untouched. */
.resource-page {
  --resource-bg: var(--vita-canvas);
  --resource-panel: #fff;
  --resource-panel-soft: #f7fafc;
  --resource-border: var(--vita-line);
  --resource-cyan: var(--vita-blue);
  --resource-shadow: var(--vita-shadow);
}

.resource-shell {
  background: var(--vita-canvas);
}

.resource-hero,
.hero-meta-shell,
.login-panel,
.hub-section,
.board-card,
.ai-signal-card,
.hub-library-card,
.mini-node-card,
.metric-box,
.auth-card {
  border-radius: 8px;
  border-color: var(--vita-line);
  background: #fff;
  box-shadow: var(--vita-shadow);
}

.resource-title-mark {
  background: none;
  color: var(--vita-blue-dark);
  -webkit-text-fill-color: currentColor;
}

.refresh-btn,
.login-submit,
.board-primary,
.note-create-submit {
  border-radius: 6px;
  background: var(--vita-blue);
}

.outline-btn,
.member-badge,
.hub-chip,
.board-pill,
.section-refresh-btn,
.mini-open-btn,
.mini-refresh-btn {
  border-radius: 6px;
}

/* Shared footer */
.site-footer {
  background: var(--vita-blue-dark);
  color: rgba(255, 255, 255, 0.68);
}

.footer-logo,
.footer-logo-l,
.footer-logo-n,
.footer-logo-pub {
  background: none;
  color: #fff;
  -webkit-text-fill-color: currentColor;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0;
}

.footer-nav-title {
  color: #fff;
}

.site-footer a:hover {
  color: #fff;
}

.site-footer .footer-inner {
  grid-template-columns: minmax(0, 1.7fr) minmax(150px, 0.8fr) minmax(240px, 1fr);
  gap: 56px;
}

.site-footer .footer-brand p,
.site-footer .footer-contact p {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.85rem;
  line-height: 1.7;
}

.site-footer .footer-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer .footer-nav li {
  margin-bottom: 7px;
}

.site-footer .footer-nav a,
.site-footer .footer-contact a {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.85rem;
}

.site-footer .footer-bottom {
  color: rgba(255, 255, 255, 0.38);
}

@media (max-width: 760px) {
  .page-hero {
    padding: 112px 5vw 44px;
  }

  .page-hero::after {
    right: 5vw;
    width: 96px;
    height: 4px;
  }

  .page-hero h1 {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  .page-hero p {
    font-size: 0.92rem;
  }

  .pub-panel {
    padding: 12px;
  }

  .team-tab,
  .section-tab,
  .pub-tab,
  .year-tab,
  .filter-btn,
  .type-tab {
    padding-left: 12px;
    padding-right: 12px;
  }

  .prof-card {
    border-radius: 8px;
  }

  .site-footer .footer-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
