.portfolio-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.student-search[hidden],.student-search-popup[hidden],[data-portfolio-student][hidden] { display:none; }
.topbar.has-student-search { display:grid; grid-template-columns:minmax(110px,.7fr) minmax(180px,1fr) auto; }
.topbar.has-student-search > div:first-of-type { min-width:0; }
.student-search { position:relative; min-width:0; margin:0; }
.student-search input { display:block; width:100%; height:38px; min-height:38px; margin:0; padding:8px 38px 8px 12px; border:1px solid #cbd9e8; border-radius:9px; background:#f8fafd; color:#19385b; font-size:13px; }
.student-search > button { position:absolute; top:1px; right:1px; width:35px; height:35px; border:0; background:transparent; color:#245c94; cursor:pointer; font-size:24px; }
.student-search-popup { position:absolute; top:calc(100% + 7px); left:0; z-index:110; width:max(100%,340px); max-width:calc(100vw - 24px); max-height:min(65vh,440px); overflow:auto; border:1px solid #d3deeb; border-radius:12px; background:#fff; box-shadow:0 14px 40px #19385b25; }
.student-search-popup > p { margin:0; padding:12px 14px; color:#60758e; font-size:12px; }
#studentSearchResults a { display:block; padding:12px 14px; border-top:1px solid #e7edf4; text-decoration:none; color:#19385b; }
#studentSearchResults a:hover,#studentSearchResults a[aria-selected="true"] { background:#edf4fc; }
#studentSearchResults strong,#studentSearchResults small { display:block; overflow-wrap:anywhere; }
#studentSearchResults small { margin-top:4px; color:#60758e; font-size:11px; }
.student-portfolio { max-width:1320px; margin:auto; color:#19385b; }
.student-portfolio [hidden] { display:none; }
.portfolio-mode .sidebar nav,.portfolio-mode .nav-group,.portfolio-mode .nav-submenu { align-content:start; }
.portfolio-mode .sidebar nav { margin:18px 0 10px; }
.portfolio-hero { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:22px; }
.portfolio-eyebrow { color:#60758e; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.portfolio-hero h1 { margin:8px 0; color:#19385b; font:700 clamp(23px,3vw,32px)/1.2 "DM Sans",sans-serif; overflow-wrap:anywhere; }
.portfolio-hero p,.portfolio-help { color:#60758e; }
.portfolio-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.portfolio-metrics article { padding:16px 20px; border:1px solid #dce5ef; border-radius:12px; background:#fff; }
.portfolio-metrics strong,.portfolio-metrics span { display:block; }
.portfolio-metrics strong { font-size:25px; }
.portfolio-metrics span { color:#60758e; font-size:12px; }
.portfolio-columns { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:20px; align-items:start; }
.portfolio-panel { min-width:0; padding:23px; margin-bottom:20px; border:1px solid #dce5ef; border-radius:14px; background:#fff; }
.portfolio-panel h2 { margin:0 0 16px; color:#19385b; font:700 19px "DM Sans",sans-serif; }
.portfolio-section-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.portfolio-section-heading label { max-width:180px; font-size:12px; }
.portfolio-help,.portfolio-note-context { color:#60758e; font-size:12px; }
#portfolioNoteForm { padding:16px; margin:18px 0; border:1px solid #d7e4f2; border-radius:11px; background:#f8fafd; }
.portfolio-panel textarea { width:100%; resize:vertical; }
.portfolio-note { padding:18px 0; border-top:1px solid #e3eaf2; }
.portfolio-note-heading { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:#60758e; font-size:12px; }
.portfolio-category { padding:4px 8px; border-radius:6px; background:#eaf2fb; color:#245c94; font-weight:700; }
.portfolio-note p,.portfolio-history p { margin:10px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.portfolio-note small,.portfolio-history small { color:#60758e; font-size:11px; }
.portfolio-note-edit { margin-top:12px; }
.portfolio-note-edit summary { color:#245c94; cursor:pointer; }
.portfolio-note-edit form { margin-top:12px; }
.portfolio-form-status { color:#245c94; font-size:13px; }
.portfolio-history { padding:13px 0; border-top:1px solid #e3eaf2; overflow-wrap:anywhere; }
@media (max-width:1250px) {
  .topbar.has-student-search { height:auto; min-height:114px; grid-template-columns:minmax(0,1fr) auto; gap:8px 18px; padding-block:10px; }
  .has-student-search .student-search { grid-column:1/-1; grid-row:2; }
  .has-student-search .top-actions { grid-column:2; grid-row:1; }
}
@media (max-width:850px) { .portfolio-columns { grid-template-columns:1fr; } }
@media (min-width:761px) and (max-width:1000px) {
  .topbar.has-student-search { grid-template-columns:minmax(0,1fr); }
  .has-student-search > div:first-of-type { grid-column:1; grid-row:1; }
  .has-student-search .top-actions { grid-column:1; grid-row:2; justify-content:flex-start; flex-wrap:wrap; }
  .has-student-search .student-search { grid-column:1; grid-row:3; }
}
@media (max-width:760px) {
  #appView .topbar.has-student-search { height:112px; min-height:112px; grid-template-columns:36px 32px minmax(0,1fr); grid-template-rows:44px 40px; padding:6px 9px; gap:6px 5px; }
  #appView .has-student-search > div:first-of-type { display:none; }
  .has-student-search #menuBtn { grid-column:1; grid-row:1; }
  .has-student-search .topbar-home { grid-column:2; grid-row:1; }
  .has-student-search .top-actions { grid-column:3; grid-row:1; }
  .student-search-enabled .workspace { padding-top:112px; }
  .student-search-popup { width:100%; max-width:100%; }
  .portfolio-panel { padding:18px; }
  .portfolio-metrics { gap:8px; }
  .portfolio-metrics article { padding:12px; }
  .portfolio-metrics span { font-size:11px; }
}
