.portfolio-search-input {
  width: 100%;
  border: 1px solid #ccd6e0;
  border-radius: 10px;
  padding: .85rem 1rem;
  margin: .75rem 0 1.4rem;
  font-size: 1rem;
}
.portfolio-grid { display: grid; gap: 1rem; }
.portfolio-year { margin: 2rem 0; }
.portfolio-year > h2 { border-bottom: 2px solid #008aff; padding-bottom: .35rem; }
.portfolio-card {
  border: 1px solid #e3e9ef;
  border-radius: 14px;
  padding: 1.1rem 1.2rem;
  box-shadow: 0 3px 15px rgba(31, 78, 120, .07);
}
.portfolio-card h3 { margin: 0 0 .55rem; font-size: 1.08rem; }
.portfolio-authors, .portfolio-meta { margin: .35rem 0; font-size: .92rem; }
.portfolio-meta { color: #596773; }
.portfolio-author { color: inherit; text-decoration: underline; text-decoration-color: #b9c9d7; }
.portfolio-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .7rem; }
.portfolio-chip, .portfolio-status, .portfolio-oral {
  display: inline-block;
  border-radius: 999px;
  padding: .22rem .65rem;
  font-size: .78rem;
  font-weight: 700;
}
.portfolio-chip { border: 1px solid #008aff; }
.portfolio-status { background: #f1f3f5; color: #495057; }
.portfolio-oral { background: #d32f2f; color: #fff; margin-left: .3rem; }
.portfolio-project-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.4rem; }
.portfolio-project-card { border: 1px solid #e3e9ef; border-radius: 14px; overflow: hidden; }
.portfolio-project-card img { width: 100%; height: 170px; object-fit: cover; background: #eef3f7; }
.portfolio-project-card > div { padding: 1rem; }
.portfolio-project-card h2 { margin-top: 0; font-size: 1.25rem; }
.portfolio-tags { color: #607080; font-size: .85rem; }
.credential-grid { display: grid; gap: .7rem; margin-bottom: 2rem; }
.credential-item { display: grid; grid-template-columns: minmax(220px, 1.5fr) 1fr 1.4fr; gap: .7rem; padding: .75rem 0; border-bottom: 1px solid #e6ebef; }
.credential-item small { color: #687782; }
.portfolio-search-button { border: 0; background: transparent; color: inherit; padding: .5rem .65rem; cursor: pointer; }
#portfolio-search-overlay {
  position: fixed; inset: 0; z-index: 9999; background: rgba(16, 29, 43, .78);
  padding: min(8vh, 70px) 1rem;
}
.portfolio-search-dialog {
  max-width: 780px; max-height: 82vh; overflow: auto; margin: auto; background: #fff;
  border-radius: 16px; padding: 1rem 1.2rem 1.4rem; box-shadow: 0 20px 80px rgba(0,0,0,.3);
}
.portfolio-search-dialog header { display: flex; align-items: center; gap: .8rem; }
.portfolio-search-dialog input { flex: 1; border: 0; border-bottom: 2px solid #008aff; padding: .8rem; font-size: 1.15rem; }
.portfolio-search-dialog button { border: 0; background: transparent; font-size: 1.8rem; }
[data-global-search-results] a { display: grid; padding: .75rem; border-bottom: 1px solid #e6ebef; text-decoration: none; }
[data-global-search-results] a small { color: #008aff; }
[data-global-search-results] a span { color: #667580; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.portfolio-search-open { overflow: hidden; }
@media (max-width: 640px) {
  .credential-item { grid-template-columns: 1fr; gap: .15rem; }
}
