/* ========================================================================
   STUDENT DASHBOARD — final conflict-free presentation layer
   This file loads last. It intentionally resets every legacy dashboard
   animation and card override before supplying one consistent system.
   ======================================================================== */
body.student-portal-dashboard-page {
  min-height: 100vh;
  background: #f3f7f8 !important;
  background-image: none !important;
  color: #173542;
}

body.student-portal-dashboard-page .top-header { display: none !important; }
body.student-portal-dashboard-page .student-nav {
  min-height: 4.25rem;
  border: 0 !important;
  border-bottom: 1px solid #dbe6e9 !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 2px 12px rgba(17,54,65,.055) !important;
}
body.student-portal-dashboard-page .student-nav .navbar-brand,
body.student-portal-dashboard-page .student-nav .student-dashboard-brand {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: #143744 !important;
  font-size: .88rem;
  font-weight: 780;
}
body.student-portal-dashboard-page .student-nav .student-dashboard-brand::before { display: none !important; }
body.student-portal-dashboard-page .student-nav .student-dashboard-brand img {
  width: 2.15rem !important;
  height: 2.15rem !important;
  border: 1px solid #d5e3e7;
  border-radius: .68rem !important;
  object-fit: cover;
  box-shadow: none !important;
}
body.student-portal-dashboard-page .student-nav .nav-link {
  color: #42606c !important;
  background: transparent !important;
}
body.student-portal-dashboard-page .student-nav .nav-link:hover,
body.student-portal-dashboard-page .student-nav .nav-link.active,
body.student-portal-dashboard-page .student-nav .show > .nav-link {
  color: #0e685f !important;
  background: #eaf6f2 !important;
}
body.student-portal-dashboard-page .student-nav .dropdown-menu {
  border: 1px solid #dbe6e9 !important;
  background: #fff !important;
  box-shadow: 0 16px 34px rgba(20,55,65,.14) !important;
}

/* Visibility safeguard: dashboard content must never depend on JavaScript. */
body.student-portal-dashboard-page .student-motion,
body.student-portal-dashboard-page.student-ui-ready .student-motion {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  animation: none !important;
}

body.student-portal-dashboard-page .student-dashboard {
  display: block !important;
  width: min(1240px,100%) !important;
  margin: 0 auto !important;
  padding: 1rem .85rem 3rem !important;
}

/* Welcome and primary tasks */
body.student-portal-dashboard-page .dashboard-hero {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 1.35rem !important;
  overflow: hidden !important;
  border: 1px solid #0e5059 !important;
  border-radius: 1.1rem !important;
  color: #fff !important;
  background: linear-gradient(122deg,#112f3c 0%,#155e62 58%,#27786b 100%) !important;
  background-image: linear-gradient(122deg,#112f3c 0%,#155e62 58%,#27786b 100%) !important;
  box-shadow: 0 20px 38px rgba(17,65,73,.17) !important;
}
body.student-portal-dashboard-page .dashboard-hero::before,
body.student-portal-dashboard-page .dashboard-hero::after { display: none !important; }
body.student-portal-dashboard-page .dashboard-hero-copy { max-width: 43rem; }
body.student-portal-dashboard-page .dashboard-kicker {
  display: inline-flex !important;
  align-items: center;
  gap: .42rem;
  min-height: 0 !important;
  margin: 0 0 .7rem !important;
  padding: .38rem .58rem !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 999px !important;
  color: #e4f7f1 !important;
  background: rgba(255,255,255,.1) !important;
  font-size: .68rem !important;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}
body.student-portal-dashboard-page .dashboard-hero h1 {
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(1.7rem,7vw,2.7rem) !important;
  font-weight: 780 !important;
  letter-spacing: -.045em !important;
  line-height: 1.06 !important;
  text-shadow: none !important;
}
body.student-portal-dashboard-page .dashboard-hero p {
  max-width: 41rem;
  margin: .72rem 0 0 !important;
  color: rgba(255,255,255,.86) !important;
  font-size: .9rem !important;
  line-height: 1.58 !important;
}
body.student-portal-dashboard-page .dashboard-hero-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: .42rem !important;
  margin-top: 1rem !important;
}
body.student-portal-dashboard-page .dashboard-hero-meta span {
  display: inline-flex !important;
  align-items: center;
  gap: .35rem;
  min-height: 2rem;
  padding: .38rem .55rem !important;
  border: 1px solid rgba(255,255,255,.17) !important;
  border-radius: .55rem !important;
  color: #ecfaf6 !important;
  background: rgba(5,31,37,.17) !important;
  font-size: .73rem !important;
  font-weight: 650;
}
body.student-portal-dashboard-page .dashboard-hero-actions {
  display: grid !important;
  grid-template-columns: 1fr;
  width: 100%;
  gap: .55rem;
}
body.student-portal-dashboard-page .dashboard-hero-actions .btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.8rem !important;
  padding: .65rem .9rem !important;
  border-radius: .7rem !important;
  font-size: .85rem !important;
  font-weight: 750;
  box-shadow: none !important;
  animation: none !important;
}
body.student-portal-dashboard-page .dashboard-hero-actions .btn::after { display: none !important; }
body.student-portal-dashboard-page .dashboard-hero-actions .btn-light { border: 1px solid #fff !important; color: #123f49 !important; background: #fff !important; }
body.student-portal-dashboard-page .dashboard-hero-actions .btn-outline-light { border: 1px solid rgba(255,255,255,.6) !important; color: #fff !important; background: transparent !important; }
body.student-portal-dashboard-page .dashboard-hero-actions .btn-outline-light:hover { color: #123f49 !important; background: #fff !important; }

body.student-portal-dashboard-page .student-now {
  display: block !important;
  margin: 1rem 0 0 !important;
  padding: 1rem !important;
  overflow: visible !important;
  border: 1px solid #dce7eb !important;
  border-radius: 1rem !important;
  background: #fff !important;
  box-shadow: 0 9px 24px rgba(23,43,58,.05) !important;
}
body.student-portal-dashboard-page .student-now-heading {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: .55rem;
  margin-bottom: .95rem !important;
}
body.student-portal-dashboard-page .student-now-heading > div > span { display: block !important; color: #4c7a7a !important; font-size: .68rem !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
body.student-portal-dashboard-page .student-now-heading h2 { display: block !important; margin: .2rem 0 !important; color: #1d3d4b !important; font-size: 1.24rem !important; font-weight: 780 !important; letter-spacing: -.03em !important; }
body.student-portal-dashboard-page .student-now-heading p { display: block !important; margin: 0 !important; color: #647b85 !important; font-size: .84rem !important; }
body.student-portal-dashboard-page .student-now-heading > a { display: inline-flex !important; align-items: center; gap: .4rem; color: #11675f !important; font-size: .82rem; font-weight: 740; text-decoration: none; }
body.student-portal-dashboard-page .student-now-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .65rem !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.student-portal-dashboard-page .student-now-card {
  display: grid !important;
  grid-template-columns: auto minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: .72rem !important;
  min-height: 5.25rem !important;
  padding: .8rem !important;
  overflow: hidden !important;
  border: 1px solid #dce8eb !important;
  border-radius: .78rem !important;
  color: #294451 !important;
  background: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  animation: dashboard-card-enter .46s both !important;
}
body.student-portal-dashboard-page .student-now-card:nth-child(2) { animation-delay: .05s !important; }
body.student-portal-dashboard-page .student-now-card:nth-child(3) { animation-delay: .1s !important; }
body.student-portal-dashboard-page .student-now-card:nth-child(4) { animation-delay: .15s !important; }
body.student-portal-dashboard-page .student-now-card:nth-child(5) { animation-delay: .2s !important; }
body.student-portal-dashboard-page .student-now-card:hover { border-color: #71a99e !important; color: #294451 !important; box-shadow: 0 9px 18px rgba(27,91,85,.1) !important; transform: translateY(-2px); }
body.student-portal-dashboard-page .student-now-card::after { display: none !important; }
body.student-portal-dashboard-page .student-now-icon { display: grid !important; place-items: center; width: 2.45rem; height: 2.45rem; border-radius: .68rem; color: #126962; background: #e4f4ef; font-size: 1.02rem; }
body.student-portal-dashboard-page .student-now-card.status-pending .student-now-icon,
body.student-portal-dashboard-page .student-now-card.status-draft .student-now-icon { color: #9b6200; background: #fff2d7; }
body.student-portal-dashboard-page .student-now-card.status-approved .student-now-icon,
body.student-portal-dashboard-page .student-now-card.status-paid .student-now-icon { color: #176b43; background: #e0f4e7; }
body.student-portal-dashboard-page .student-now-copy { display: block !important; min-width: 0; }
body.student-portal-dashboard-page .student-now-copy .status-badge { display: inline-flex !important; margin: 0 0 .3rem !important; }
body.student-portal-dashboard-page .student-now-copy strong { display: block !important; color: #294451 !important; font-size: .87rem !important; font-weight: 760 !important; line-height: 1.28 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .student-now-copy small { display: block !important; margin-top: .2rem !important; color: #6b818a !important; font-size: .74rem !important; line-height: 1.35 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .student-now-arrow { display: block !important; color: #7e949c !important; font-size: .85rem; }

/* Supporting services and account summary */
body.student-portal-dashboard-page .student-guidance-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .65rem !important;
  margin: 1rem 0 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.student-portal-dashboard-page .student-guidance-card {
  display: flex !important;
  align-items: flex-start;
  gap: .75rem;
  padding: .9rem !important;
  border: 1px solid #dce8eb !important;
  border-radius: .82rem !important;
  color: #284650 !important;
  background: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  animation: dashboard-card-enter .46s both !important;
}
body.student-portal-dashboard-page .student-guidance-card:nth-child(2) { animation-delay: .08s !important; }
body.student-portal-dashboard-page .student-guidance-card:nth-child(3) { animation-delay: .16s !important; }
body.student-portal-dashboard-page .student-guidance-card.progress,
body.student-portal-dashboard-page .student-guidance-card.wallet,
body.student-portal-dashboard-page .student-guidance-card.support { background: #fff !important; }
body.student-portal-dashboard-page .student-guidance-card:hover { border-color: #91b7b1 !important; color: #284650 !important; box-shadow: 0 8px 18px rgba(23,73,77,.08) !important; transform: translateY(-2px); }
body.student-portal-dashboard-page .student-guidance-card::after { display: none !important; }
body.student-portal-dashboard-page .student-guidance-icon { display: grid !important; place-items: center; flex: none; width: 2.4rem; height: 2.4rem; border-radius: .7rem; color: #3b5ea5; background: #eaf0fb; box-shadow: none !important; }
body.student-portal-dashboard-page .student-guidance-card.wallet .student-guidance-icon { color: #136d61; background: #e4f4ef; }
body.student-portal-dashboard-page .student-guidance-card.support .student-guidance-icon { color: #744f8d; background: #f1eafb; }
body.student-portal-dashboard-page .student-guidance-card small { display: block !important; margin: 0 0 .2rem !important; color: #70848d !important; font-size: .68rem !important; font-style: normal !important; font-weight: 780 !important; letter-spacing: .065em; text-transform: uppercase; }
body.student-portal-dashboard-page .student-guidance-card strong { display: block !important; color: #284650 !important; font-size: .86rem !important; font-weight: 750 !important; line-height: 1.35 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .student-guidance-card em { display: block !important; margin: .22rem 0 0 !important; color: #6a8089 !important; font-size: .73rem !important; font-style: normal !important; line-height: 1.36 !important; text-shadow: none !important; }

body.student-portal-dashboard-page .dashboard-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .85rem !important;
  margin-top: 1rem !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .student-workspace {
  display: block !important;
  padding: 1rem !important;
  overflow: visible !important;
  border: 1px solid #dce7eb !important;
  border-radius: 1rem !important;
  color: #294451 !important;
  background: #fff !important;
  box-shadow: 0 9px 24px rgba(23,43,58,.05) !important;
  opacity: 1 !important;
  visibility: visible !important;
  animation: dashboard-card-enter .5s both !important;
}
body.student-portal-dashboard-page .profile-panel::before,
body.student-portal-dashboard-page .profile-panel::after,
body.student-portal-dashboard-page .profile-panel-glow { display: none !important; }
body.student-portal-dashboard-page .profile-main { display: flex !important; gap: .75rem !important; }
body.student-portal-dashboard-page .student-passport { display: block !important; width: 3.35rem !important; height: 3.35rem !important; border: 2px solid #dcece8 !important; border-radius: .78rem !important; box-shadow: none !important; }
body.student-portal-dashboard-page .profile-main h2 { display: block !important; margin: 0 0 .32rem !important; color: #294451 !important; font-size: 1rem !important; font-weight: 780 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .profile-list { display: grid !important; grid-template-columns: 1fr !important; gap: .48rem !important; margin-top: 1rem !important; }
body.student-portal-dashboard-page .profile-list div { display: block !important; padding: .7rem !important; border: 1px solid #e5edef !important; border-radius: .65rem !important; background: #f8fafb !important; }
body.student-portal-dashboard-page .profile-list span { display: block !important; color: #71858d !important; font-size: .67rem !important; font-weight: 760 !important; letter-spacing: .04em; text-transform: uppercase; }
body.student-portal-dashboard-page .profile-list strong { display: block !important; margin-top: .16rem !important; overflow: hidden; color: #354f5b !important; font-size: .82rem !important; font-weight: 720 !important; text-overflow: ellipsis; white-space: nowrap; }

body.student-portal-dashboard-page .metrics-grid {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: .65rem !important;
  min-width: 0;
  opacity: 1 !important;
  visibility: visible !important;
}
body.student-portal-dashboard-page .metric-card {
  display: flex !important;
  align-items: flex-start !important;
  gap: .65rem !important;
  min-height: 7.1rem !important;
  padding: .9rem !important;
  overflow: hidden !important;
  border: 1px solid #dce7eb !important;
  border-radius: .82rem !important;
  color: #294451 !important;
  background: #fff !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  animation: dashboard-card-enter .44s both !important;
}
body.student-portal-dashboard-page .metric-card:nth-child(2) { animation-delay: .06s !important; }
body.student-portal-dashboard-page .metric-card:nth-child(3) { animation-delay: .12s !important; }
body.student-portal-dashboard-page .metric-card:nth-child(4) { animation-delay: .18s !important; }
body.student-portal-dashboard-page .metric-card::before,
body.student-portal-dashboard-page .metric-card::after { display: none !important; }
body.student-portal-dashboard-page .metric-card > * { position: static !important; z-index: auto !important; }
body.student-portal-dashboard-page .metric-card .metric-icon { display: grid !important; place-items: center; flex: none; width: 2.2rem !important; height: 2.2rem !important; border-radius: .65rem !important; color: #166a62 !important; background: #e4f4ef !important; box-shadow: none !important; font-size: .96rem !important; }
body.student-portal-dashboard-page .metric-course .metric-icon { color: #2d61a8 !important; background: #e9f0fb !important; }
body.student-portal-dashboard-page .metric-gpa .metric-icon { color: #754aa1 !important; background: #f0eafa !important; }
body.student-portal-dashboard-page .metric-cgpa .metric-icon { color: #9b6300 !important; background: #fff1d5 !important; }
body.student-portal-dashboard-page .metric-card span { display: block !important; color: #6e838b !important; font-size: .64rem !important; font-weight: 780 !important; letter-spacing: .045em !important; text-shadow: none !important; text-transform: uppercase; }
body.student-portal-dashboard-page .metric-card strong { display: block !important; margin: .22rem 0 .16rem !important; color: #294451 !important; font-size: clamp(.88rem,4vw,1.12rem) !important; font-weight: 780 !important; line-height: 1.16 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .metric-card small { display: block !important; color: #71858d !important; font-size: .68rem !important; font-weight: 560 !important; line-height: 1.32 !important; text-shadow: none !important; }

/* Quick actions always render as visible, labelled cards. */
body.student-portal-dashboard-page .student-workspace { margin-top: 1rem !important; }
body.student-portal-dashboard-page .workspace-heading { display: flex !important; flex-direction: column; align-items: flex-start; gap: .5rem; margin-bottom: .9rem !important; }
body.student-portal-dashboard-page .workspace-heading > div { display: block !important; }
body.student-portal-dashboard-page .workspace-heading span { display: block !important; color: #4c7a7a !important; font-size: .68rem !important; font-weight: 800 !important; letter-spacing: .08em; text-transform: uppercase; }
body.student-portal-dashboard-page .workspace-heading h2 { display: block !important; margin: .2rem 0 0 !important; color: #1f3d4c !important; font-size: 1.2rem !important; font-weight: 780 !important; letter-spacing: -.03em !important; }
body.student-portal-dashboard-page .workspace-heading > a { display: inline-flex !important; align-items: center; gap: .35rem; color: #11675f !important; font-size: .8rem; font-weight: 740; text-decoration: none; }
body.student-portal-dashboard-page .quick-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .55rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.student-portal-dashboard-page .quick-actions a {
  display: grid !important;
  grid-template-columns: 2.25rem minmax(0,1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: .65rem !important;
  row-gap: .1rem !important;
  min-height: 4.4rem !important;
  padding: .75rem !important;
  overflow: hidden !important;
  border: 1px solid #e0eaed !important;
  border-radius: .72rem !important;
  color: #2b4753 !important;
  background: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  animation: dashboard-card-enter .42s both !important;
}
body.student-portal-dashboard-page .quick-actions a:nth-child(2) { animation-delay: .03s !important; }
body.student-portal-dashboard-page .quick-actions a:nth-child(3) { animation-delay: .06s !important; }
body.student-portal-dashboard-page .quick-actions a:nth-child(4) { animation-delay: .09s !important; }
body.student-portal-dashboard-page .quick-actions a:nth-child(5) { animation-delay: .12s !important; }
body.student-portal-dashboard-page .quick-actions a:nth-child(6) { animation-delay: .15s !important; }
body.student-portal-dashboard-page .quick-actions a:hover { border-color: #82aaa3 !important; color: #2b4753 !important; box-shadow: 0 8px 17px rgba(25,80,77,.09) !important; transform: translateY(-2px) !important; }
body.student-portal-dashboard-page .quick-actions a::after { display: none !important; }
body.student-portal-dashboard-page .quick-actions i { display: grid !important; grid-row: 1 / span 2 !important; place-items: center; width: 2.25rem !important; height: 2.25rem !important; color: #166a62 !important; background: #e4f4ef !important; box-shadow: none !important; font-size: .98rem !important; }
body.student-portal-dashboard-page .quick-actions span { display: block !important; align-self: end; color: #314c58 !important; font-size: .82rem !important; font-weight: 750 !important; text-shadow: none !important; }
body.student-portal-dashboard-page .quick-actions small { display: block !important; align-self: start; overflow: visible !important; color: #748891 !important; font-size: .69rem !important; line-height: 1.3 !important; text-shadow: none !important; }

body.student-portal-dashboard-page .student-footer { display: block !important; margin: 0 !important; padding: .9rem 0 !important; border-top: 1px solid #dce7eb !important; color: #5d727b !important; background: #fff !important; box-shadow: none !important; }
body.student-portal-dashboard-page .student-footer strong,
body.student-portal-dashboard-page .student-footer span,
body.student-portal-dashboard-page .student-footer a { color: #5d727b !important; }
body.student-portal-dashboard-page .student-footer .portal-footer-mark { color: #176b62 !important; background: #e2f2ed !important; }

@keyframes dashboard-card-enter {
  from { opacity: .01; transform: translateY(.5rem); }
  to { opacity: 1; transform: translateY(0); }
}

@media (min-width:480px) {
  body.student-portal-dashboard-page .dashboard-hero-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.student-portal-dashboard-page .profile-list { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .quick-actions { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (min-width:700px) {
  body.student-portal-dashboard-page .student-dashboard { padding: 1.35rem 1.2rem 3.5rem !important; }
  body.student-portal-dashboard-page .dashboard-hero { padding: 1.8rem !important; }
  body.student-portal-dashboard-page .student-now-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .student-guidance-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .metrics-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .quick-actions { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (min-width:1024px) {
  body.student-portal-dashboard-page .student-dashboard { padding-top: 1.6rem !important; }
  body.student-portal-dashboard-page .dashboard-hero { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(18rem,.48fr) !important; align-items: end !important; gap: 2rem !important; padding: 2.15rem !important; border-radius: 1.15rem !important; }
  body.student-portal-dashboard-page .student-now { padding: 1.25rem !important; }
  body.student-portal-dashboard-page .student-now-heading { flex-direction: row !important; align-items: end !important; justify-content: space-between !important; }
  body.student-portal-dashboard-page .student-now-grid { grid-template-columns: repeat(5,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .student-now-card { grid-template-columns: 1fr auto !important; align-items: start !important; min-height: 10.3rem !important; }
  body.student-portal-dashboard-page .student-now-icon { grid-column: 1; grid-row: 1; }
  body.student-portal-dashboard-page .student-now-copy { grid-column: 1; grid-row: 2; }
  body.student-portal-dashboard-page .student-now-arrow { grid-column: 2; grid-row: 1; }
  body.student-portal-dashboard-page .dashboard-grid { grid-template-columns: minmax(16rem,.72fr) minmax(0,1.75fr) !important; gap: 1rem !important; }
  body.student-portal-dashboard-page .profile-list { grid-template-columns: 1fr !important; }
  body.student-portal-dashboard-page .quick-actions { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.student-portal-dashboard-page .quick-actions a { grid-template-columns: 1fr !important; grid-template-rows: auto auto auto !important; row-gap: .28rem !important; min-height: 7.1rem !important; }
  body.student-portal-dashboard-page .quick-actions i { grid-row: 1 !important; }
  body.student-portal-dashboard-page .quick-actions span,
  body.student-portal-dashboard-page .quick-actions small { align-self: auto !important; }
}
@media (prefers-reduced-motion:reduce) {
  body.student-portal-dashboard-page .student-now-card,
  body.student-portal-dashboard-page .student-guidance-card,
  body.student-portal-dashboard-page .profile-panel,
  body.student-portal-dashboard-page .student-workspace,
  body.student-portal-dashboard-page .metric-card,
  body.student-portal-dashboard-page .quick-actions a { animation: none !important; transform: none !important; }
}

/* Compact card refinement — dense, touch-friendly, modern surfaces. */
body.student-portal-dashboard-page .student-now,
body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .student-workspace{
  border-color:#d9e6e8 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 7px 18px rgba(22,58,68,.045) !important;
}

body.student-portal-dashboard-page .student-now{ padding:.85rem !important; }
body.student-portal-dashboard-page .student-now-heading{ margin-bottom:.72rem !important; }
body.student-portal-dashboard-page .student-now-heading h2{ font-size:1.13rem !important; }
body.student-portal-dashboard-page .student-now-heading p{ font-size:.79rem !important; }
body.student-portal-dashboard-page .student-now-grid{ gap:.5rem !important; }
body.student-portal-dashboard-page .student-now-card{
  min-height:4.55rem !important;
  gap:.6rem !important;
  padding:.65rem !important;
  border-color:#dde9eb !important;
  border-radius:.7rem !important;
  background:linear-gradient(145deg,#fff,#f9fcfc) !important;
}
body.student-portal-dashboard-page .student-now-card:hover{ box-shadow:0 8px 16px rgba(27,91,85,.09) !important; }
body.student-portal-dashboard-page .student-now-icon{ width:2.15rem !important; height:2.15rem !important; border-radius:.6rem !important; font-size:.9rem !important; }
body.student-portal-dashboard-page .student-now-copy .status-badge{ margin-bottom:.22rem !important; transform:scale(.92); transform-origin:left center; }
body.student-portal-dashboard-page .student-now-copy strong{ font-size:.8rem !important; }
body.student-portal-dashboard-page .student-now-copy small{ margin-top:.13rem !important; font-size:.69rem !important; }

body.student-portal-dashboard-page .student-guidance-grid{ gap:.5rem !important; }
body.student-portal-dashboard-page .student-guidance-card{
  gap:.62rem !important;
  padding:.72rem !important;
  border-radius:.72rem !important;
  background:linear-gradient(145deg,#fff,#f9fcfc) !important;
}
body.student-portal-dashboard-page .student-guidance-icon{ width:2.1rem !important; height:2.1rem !important; border-radius:.58rem !important; font-size:.88rem !important; }
body.student-portal-dashboard-page .student-guidance-card small{ margin-bottom:.12rem !important; font-size:.62rem !important; }
body.student-portal-dashboard-page .student-guidance-card strong{ font-size:.79rem !important; }
body.student-portal-dashboard-page .student-guidance-card em{ margin-top:.16rem !important; font-size:.66rem !important; }

body.student-portal-dashboard-page .dashboard-grid{ gap:.65rem !important; }
body.student-portal-dashboard-page .profile-panel,
body.student-portal-dashboard-page .student-workspace{ padding:.85rem !important; border-radius:.85rem !important; }
body.student-portal-dashboard-page .profile-main{ gap:.62rem !important; }
body.student-portal-dashboard-page .student-passport{ width:2.95rem !important; height:2.95rem !important; border-radius:.68rem !important; }
body.student-portal-dashboard-page .profile-main h2{ font-size:.9rem !important; }
body.student-portal-dashboard-page .profile-list{ gap:.38rem !important; margin-top:.75rem !important; }
body.student-portal-dashboard-page .profile-list div{ padding:.55rem .62rem !important; border-radius:.58rem !important; }
body.student-portal-dashboard-page .profile-list span{ font-size:.6rem !important; }
body.student-portal-dashboard-page .profile-list strong{ margin-top:.1rem !important; font-size:.74rem !important; }

body.student-portal-dashboard-page .metrics-grid{ gap:.5rem !important; }
body.student-portal-dashboard-page .metric-card{
  min-height:5.85rem !important;
  gap:.52rem !important;
  padding:.68rem !important;
  border-color:#dde9eb !important;
  border-radius:.7rem !important;
  background:linear-gradient(145deg,#fff,#f9fcfc) !important;
}
body.student-portal-dashboard-page .metric-card .metric-icon{ width:1.95rem !important; height:1.95rem !important; border-radius:.55rem !important; font-size:.83rem !important; }
body.student-portal-dashboard-page .metric-card span{ font-size:.57rem !important; }
body.student-portal-dashboard-page .metric-card strong{ margin:.15rem 0 .1rem !important; font-size:clamp(.78rem,3.5vw,1rem) !important; }
body.student-portal-dashboard-page .metric-card small{ font-size:.62rem !important; line-height:1.22 !important; }

body.student-portal-dashboard-page .student-workspace{ margin-top:.75rem !important; }
body.student-portal-dashboard-page .workspace-heading{ margin-bottom:.72rem !important; }
body.student-portal-dashboard-page .workspace-heading h2{ font-size:1.08rem !important; }
body.student-portal-dashboard-page .quick-actions{ gap:.45rem !important; }
body.student-portal-dashboard-page .quick-actions a{
  grid-template-columns:2rem minmax(0,1fr) !important;
  column-gap:.55rem !important;
  min-height:3.8rem !important;
  padding:.6rem !important;
  border-color:#e0eaed !important;
  border-radius:.65rem !important;
  background:linear-gradient(145deg,#fff,#fafcfc) !important;
}
body.student-portal-dashboard-page .quick-actions i{ width:2rem !important; height:2rem !important; border-radius:.54rem !important; font-size:.84rem !important; }
body.student-portal-dashboard-page .quick-actions span{ font-size:.75rem !important; }
body.student-portal-dashboard-page .quick-actions small{ font-size:.62rem !important; }

@media (min-width:700px){
  body.student-portal-dashboard-page .student-now-card{ min-height:4.75rem !important; }
  body.student-portal-dashboard-page .quick-actions a{ min-height:4rem !important; }
}
@media (min-width:1024px){
  body.student-portal-dashboard-page .student-now{ padding:1rem !important; }
  body.student-portal-dashboard-page .student-now-card{ min-height:8rem !important; padding:.78rem !important; }
  body.student-portal-dashboard-page .student-now-icon{ width:2.25rem !important; height:2.25rem !important; }
  body.student-portal-dashboard-page .metrics-grid{ gap:.6rem !important; }
  body.student-portal-dashboard-page .metric-card{ min-height:6.25rem !important; padding:.78rem !important; }
  body.student-portal-dashboard-page .quick-actions{ gap:.5rem !important; }
  body.student-portal-dashboard-page .quick-actions a{ min-height:5.65rem !important; padding:.68rem !important; }
  body.student-portal-dashboard-page .quick-actions i{ width:2.08rem !important; height:2.08rem !important; }
}
/* Guidance cards: keep Academic Timeline, Wallet and Support visually equal. */
body.student-portal-dashboard-page .student-guidance-grid{
  align-items:stretch !important;
}
body.student-portal-dashboard-page .student-guidance-card{
  box-sizing:border-box !important;
  min-width:0 !important;
  min-height:5.25rem !important;
  height:100% !important;
}
body.student-portal-dashboard-page .student-guidance-card > span:last-child{
  min-width:0 !important;
}
body.student-portal-dashboard-page .student-guidance-card strong,
body.student-portal-dashboard-page .student-guidance-card em{
  overflow:hidden;
  text-overflow:ellipsis;
}
@media (min-width:700px){
  body.student-portal-dashboard-page .student-guidance-card{ min-height:6.35rem !important; }
}
@media (min-width:1024px){
  body.student-portal-dashboard-page .student-guidance-card{ min-height:6.5rem !important; }
}
/* Command-center dashboard: intentionally isolated from the legacy student card system. */
body.student-dashboard-no-chrome {
    background: #f3f7fb !important;
    background-image: none !important;
    color: #17283f;
}
body.student-dashboard-no-chrome::before,
body.student-dashboard-no-chrome::after { display: none !important; }
body.student-dashboard-no-chrome .portal-breadcrumbs,
body.student-dashboard-no-chrome .top-header,
body.student-dashboard-no-chrome .student-nav,
body.student-dashboard-no-chrome .portal-footer { display: none !important; }

.student-command-center {
    --cc-ink: #152b46;
    --cc-muted: #607187;
    --cc-line: #dce6f0;
    --cc-canvas: #f3f7fb;
    --cc-surface: #ffffff;
    --cc-navy: #103a62;
    --cc-teal: #007d78;
    --cc-shadow: 0 16px 38px rgba(31, 66, 102, .08);
    width: min(100%, 76rem);
    margin: 0 auto;
    padding: .9rem .9rem 2.75rem;
}
.student-command-center *, .student-command-center *::before, .student-command-center *::after { box-sizing: border-box; }
.student-command-center a { color: inherit; text-decoration: none; }
.student-command-center a:focus-visible { outline: 3px solid #f0a74b; outline-offset: 3px; }

.command-brandbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 3.6rem;
    margin-bottom: .85rem;
    padding: .35rem 0;
}
.command-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.command-brand img { width: 2.25rem; height: 2.25rem; object-fit: contain; }
.command-brand span { display: grid; min-width: 0; line-height: 1.08; }
.command-brand strong { max-width: 12rem; overflow: hidden; color: var(--cc-ink); font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.command-brand small { margin-top: .16rem; color: var(--cc-muted); font-size: .68rem; font-weight: 650; }
.command-brand-actions { display: inline-flex; align-items: center; gap: .35rem; }
.command-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.35rem; padding: .45rem .58rem; border: 1px solid var(--cc-line); border-radius: .76rem; background: rgba(255,255,255,.82); color: #38506b; font-size: .72rem; font-weight: 750; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.command-utility:hover { transform: translateY(-1px); border-color: #aebfd0; background: #fff; }
.command-utility.has-updates { border-color: #b6d9d3; background: #eefaf8; color: #046861; }
.command-utility i { font-size: .95rem; }
.command-utility span { white-space: nowrap; }
.command-signout { color: #8b3a49; }
.command-signout span { display: none; }

.command-welcome {
    display: grid;
    gap: 1rem;
    overflow: hidden;
    padding: 1.25rem;
    border-radius: 1.15rem;
    background: linear-gradient(129deg, #103a62 0%, #16577e 54%, #087b78 135%);
    box-shadow: 0 18px 32px rgba(24, 67, 102, .2);
    color: #fff;
    position: relative;
}
.command-welcome::after { position: absolute; right: -3.5rem; bottom: -5.75rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.07); border-radius: 50%; content: ""; pointer-events: none; }
.command-welcome-copy, .command-welcome-status { position: relative; z-index: 1; }
.command-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #577089; font-size: .67rem; font-weight: 800; letter-spacing: .075em; line-height: 1.2; text-transform: uppercase; }
.command-welcome .command-eyebrow { color: #bfe5e3; }
.command-welcome h1 { max-width: 36rem; margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.35rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.command-welcome-copy > p:not(.command-eyebrow) { max-width: 40rem; margin: .7rem 0 0; color: rgba(244,251,255,.84); font-size: .88rem; line-height: 1.58; }
.command-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.command-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; background: rgba(5,27,49,.16); color: #e9f5f7; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.command-context i { color: #9de0da; }
.command-welcome-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .48rem; }
.command-status-line { display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: center; gap: .45rem; min-height: 4.15rem; padding: .58rem; border: 1px solid rgba(255,255,255,.15); border-radius: .8rem; background: rgba(5,31,54,.22); transition: background .18s ease, transform .18s ease; }
.command-status-line:hover { background: rgba(3,25,47,.34); transform: translateY(-2px); }
.command-status-line > .bi { display: none; }
.command-status-icon { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; background: rgba(255,255,255,.14); color: #e1f6f2; font-size: .95rem; }
.command-status-icon.fee { color: #ffe0a3; }
.command-status-line > span:nth-child(2) { display: grid; min-width: 0; }
.command-status-line small { color: #bed7e6; font-size: .61rem; font-weight: 700; line-height: 1.2; }
.command-status-line strong { overflow: hidden; margin-top: .15rem; color: #fff; font-size: .73rem; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }

.command-priorities, .command-academics, .command-profile, .command-services {
    margin-top: .9rem;
    border: 1px solid var(--cc-line);
    border-radius: 1rem;
    background: var(--cc-surface);
    box-shadow: var(--cc-shadow);
}
.command-priorities, .command-academics, .command-services { padding: 1rem; }
.command-section-heading { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-bottom: .8rem; }
.command-section-heading .command-eyebrow { margin-bottom: .25rem; }
.command-section-heading h2 { margin: 0; color: var(--cc-ink); font-size: 1.06rem; font-weight: 780; letter-spacing: -.026em; line-height: 1.15; }
.command-section-heading > a { display: inline-flex; align-items: center; gap: .3rem; flex: 0 0 auto; color: #08766f; font-size: .71rem; font-weight: 790; }
.command-section-heading > a i { transition: transform .18s ease; }
.command-section-heading > a:hover i { transform: translateX(2px); }
.command-priority-grid { display: grid; gap: .48rem; }
.command-priority { display: grid; grid-template-columns: 1.55rem 2.15rem minmax(0,1fr) .8rem; align-items: center; gap: .48rem; min-width: 0; padding: .68rem; border: 1px solid #e4ebf2; border-radius: .8rem; background: #fff; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.command-priority:hover { transform: translateY(-2px); border-color: #c9d8e4; box-shadow: 0 9px 18px rgba(31,66,102,.08); }
.command-priority-index { align-self: stretch; display: grid; place-items: start center; padding-top: .06rem; color: #91a4b6; font-size: .62rem; font-weight: 800; }
.command-priority-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .68rem; background: #eef6f7; color: #007974; font-size: 1rem; }
.command-priority.status-pending .command-priority-icon { background: #fff4df; color: #a55b00; }
.command-priority.status-draft .command-priority-icon { background: #edf2ff; color: #385fa6; }
.command-priority.status-approved .command-priority-icon { background: #e9f8ef; color: #19724c; }
.command-priority-copy { display: grid; min-width: 0; }
.command-priority-copy .status-badge { justify-self: start; margin: 0 0 .26rem; font-size: .55rem; }
.command-priority-copy strong { overflow: hidden; color: #203953; font-size: .76rem; font-weight: 780; line-height: 1.22; text-overflow: ellipsis; white-space: nowrap; }
.command-priority-copy small { overflow: hidden; margin-top: .18rem; color: var(--cc-muted); font-size: .66rem; line-height: 1.22; text-overflow: ellipsis; white-space: nowrap; }
.command-priority-arrow { color: #8298aa; font-size: .78rem; }

.command-overview { display: grid; gap: .9rem; }
.command-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .48rem; }
.command-metric { display: grid; grid-template-columns: 2rem minmax(0,1fr); align-items: center; gap: .45rem; min-width: 0; padding: .65rem .55rem; border: 1px solid #e4ebf2; border-radius: .76rem; background: linear-gradient(135deg, #fff, #fafcff); transition: border-color .18s ease, transform .18s ease; }
.command-metric:hover { transform: translateY(-2px); border-color: #c8d9e5; }
.command-metric-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .62rem; background: #eaf7f6; color: #087a74; font-size: .91rem; }
.command-metric-icon.gpa { background: #eef3ff; color: #3a61a7; }
.command-metric-icon.cgpa { background: #f3edff; color: #764ca5; }
.command-metric-icon.results { background: #fff3df; color: #a35d00; }
.command-metric > span:last-child { display: grid; min-width: 0; }
.command-metric small, .command-metric em { overflow: hidden; color: var(--cc-muted); font-size: .6rem; font-style: normal; font-weight: 650; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.command-metric strong { margin: .15rem 0; color: var(--cc-ink); font-size: 1rem; font-weight: 800; letter-spacing: -.025em; line-height: 1; }
.command-profile { padding: 1rem; background: linear-gradient(145deg, #103a62, #155b7c); color: #fff; box-shadow: 0 15px 28px rgba(20,63,98,.17); }
.command-profile-top { display: flex; align-items: center; gap: .7rem; }
.command-profile-top > img { width: 3.25rem; height: 3.25rem; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.55); border-radius: 50%; background: #dce8ee; object-fit: cover; }
.command-profile-top > div { min-width: 0; }
.command-profile .command-eyebrow { color: #bde4e2; margin-bottom: .22rem; }
.command-profile h2 { overflow: hidden; margin: 0 0 .38rem; color: #fff; font-size: .94rem; font-weight: 760; line-height: 1.14; text-overflow: ellipsis; white-space: nowrap; }
.command-profile .status-badge { font-size: .56rem; }
.command-profile-details { display: grid; gap: .3rem; margin: .85rem 0 .72rem; padding: .7rem 0; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.command-profile-details div { display: flex; justify-content: space-between; gap: .7rem; }
.command-profile-details dt, .command-profile-details dd { margin: 0; font-size: .68rem; line-height: 1.25; }
.command-profile-details dt { color: #c6dae7; }
.command-profile-details dd { overflow: hidden; color: #fff; font-weight: 700; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.command-profile-link { display: inline-flex; align-items: center; gap: .3rem; color: #dff7f4 !important; font-size: .71rem; font-weight: 780; }

.command-service-count { display: inline-flex; align-items: center; min-height: 1.7rem; padding: .24rem .5rem; border-radius: 999px; background: #eef5fa; color: #53718a; font-size: .63rem; font-weight: 780; white-space: nowrap; }
.command-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .48rem; }
.command-service { display: grid; grid-template-columns: 1.9rem minmax(0,1fr); align-items: center; gap: .42rem; min-width: 0; min-height: 3.9rem; padding: .55rem; border: 1px solid #e1eaf1; border-radius: .78rem; background: #fff; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; position: relative; }
.command-service:hover { transform: translateY(-2px); border-color: #c8d9e5; box-shadow: 0 9px 17px rgba(31,66,102,.08); }
.command-service > .bi { position: absolute; right: .42rem; top: .4rem; color: #9aaebe; font-size: .65rem; opacity: .8; }
.command-service-icon { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: .58rem; background: #eaf6f6; color: #007975; font-size: .88rem; }
.command-service > span:nth-child(2) { display: grid; min-width: 0; padding-right: .25rem; }
.command-service strong { overflow: hidden; color: #28415b; font-size: .7rem; font-weight: 780; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.command-service small { overflow: hidden; margin-top: .14rem; color: #718499; font-size: .59rem; font-weight: 620; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.command-service.tone-amber .command-service-icon { background: #fff4df; color: #a45e00; }
.command-service.tone-green .command-service-icon { background: #eaf8ef; color: #21734d; }
.command-service.tone-blue .command-service-icon { background: #edf3ff; color: #3b60a7; }
.command-service.tone-purple .command-service-icon { background: #f3edff; color: #754aa2; }
.command-service.tone-slate .command-service-icon { background: #eff3f6; color: #4e687e; }
.command-service.tone-orange .command-service-icon { background: #fff0e9; color: #b25a32; }
.command-service.tone-rose .command-service-icon { background: #ffeff3; color: #a34862; }

@media (min-width: 38rem) {
    .student-command-center { padding: 1.15rem 1.2rem 3rem; }
    .command-brand strong { max-width: none; }
    .command-signout span { display: inline; }
    .command-welcome { padding: 1.55rem; }
    .command-welcome-status { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .command-status-line { grid-template-columns: 2rem minmax(0,1fr) .75rem; }
    .command-status-line > .bi { display: block; color: #abd9dc; font-size: .72rem; }
    .command-priority-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .command-service-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (min-width: 52rem) {
    .student-command-center { padding-top: 1.3rem; }
    .command-welcome { grid-template-columns: minmax(0,1fr) 19rem; align-items: end; }
    .command-welcome-status { grid-template-columns: 1fr; }
    .command-priorities, .command-academics, .command-services { padding: 1.15rem; }
    .command-overview { grid-template-columns: minmax(0,1.65fr) minmax(15rem,.7fr); align-items: stretch; }
    .command-academics, .command-profile { margin-top: .9rem; }
    .command-profile { min-height: 100%; }
    .command-service-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (min-width: 68rem) {
    .student-command-center { padding: 1.45rem 1.45rem 3.5rem; }
    .command-brandbar { margin-bottom: 1rem; }
    .command-welcome { padding: 1.8rem; border-radius: 1.35rem; }
    .command-priorities, .command-academics, .command-services, .command-profile { border-radius: 1.05rem; }
    .command-priority-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
    .command-priority { grid-template-columns: 1fr; align-items: start; gap: .44rem; min-height: 9.25rem; }
    .command-priority-index { position: absolute; }
    .command-priority { position: relative; }
    .command-priority-icon { width: 2.25rem; height: 2.25rem; margin-left: 1.18rem; }
    .command-priority-copy strong, .command-priority-copy small { white-space: normal; }
    .command-priority-copy small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
    .command-priority-arrow { position: absolute; right: .72rem; bottom: .7rem; }
    .command-metric-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .command-service-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .student-command-center *, .student-command-center *::before, .student-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media print {
    body.student-dashboard-no-chrome { background: #fff !important; }
    .student-command-center { width: 100%; padding: 0; }
    .command-brand-actions, .command-services, .command-priorities { display: none !important; }
    .command-welcome, .command-academics, .command-profile { box-shadow: none; }
}
/* Green-and-white command center refinement. */
body.student-dashboard-no-chrome {
    background: #edf7ef !important;
    color: #123a28;
}
.student-command-center {
    --cc-ink: #123a28;
    --cc-muted: #557565;
    --cc-line: #cfe5d5;
    --cc-canvas: #edf7ef;
    --cc-surface: #ffffff;
    --cc-navy: #0d633b;
    --cc-teal: #087c48;
    --cc-shadow: 0 18px 38px rgba(25, 93, 54, .10);
    margin-top: .8rem;
    margin-bottom: .8rem;
    border: 2px solid #2c8b54;
    border-radius: .3rem;
    background: rgba(255,255,255,.72);
    box-shadow: 0 22px 50px rgba(23, 93, 52, .12);
}
.student-command-center a:focus-visible { outline-color: #0b824a; }
.command-brandbar { padding: .55rem .25rem .5rem; margin-bottom: .2rem; }
.command-brand strong { color: #155a37; }
.command-brand small { color: #578168; }
.command-utility {
    min-height: 2.45rem;
    padding: .48rem .7rem;
    border: 1px solid #9cccae;
    border-radius: .48rem;
    background: linear-gradient(145deg, #ffffff, #e5f5e9);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09);
    color: #17613a;
    font-weight: 800;
}
.command-utility:hover { border-color: #21824b; background: linear-gradient(145deg, #f6fff8, #d4f0da); box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); }
.command-utility.has-updates { border-color: #62ad7c; background: linear-gradient(145deg, #f7fff8, #d9f2df); color: #0a713e; }
.command-signout { border-color: #bad8c3; color: #2c7249; }

.command-welcome { background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15, 100, 55, .24); }
.command-welcome::after { border-color: rgba(255,255,255,.10); }
.command-welcome .command-eyebrow { color: #c6f3d5; }
.command-context span { border-color: rgba(230,255,238,.22); background: rgba(0,62,31,.20); color: #effff3; }
.command-context i { color: #b6f4c9; }
.command-status-line { border-color: rgba(224,255,234,.2); background: rgba(0,68,34,.24); }
.command-status-line:hover { background: rgba(0,52,25,.35); }
.command-status-icon { background: rgba(222,255,235,.14); color: #d6ffe2; }
.command-status-icon.fee { color: #c8ffd8; }
.command-status-line small { color: #c6eed2; }
.command-status-line > .bi { color: #baf0ca; }

.command-priorities, .command-academics, .command-profile, .command-services { border-color: #cce5d3; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.command-section-heading h2 { color: #12452b; }
.command-section-heading > a, .command-profile-link {
    min-height: 2.05rem;
    padding: .42rem .62rem;
    border: 1px solid #94cbaa;
    border-radius: .43rem;
    background: linear-gradient(145deg, #fff, #e9f7ed);
    box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(27,105,57,.08);
    color: #087243 !important;
    font-size: .68rem;
}
.command-section-heading > a:hover, .command-profile-link:hover { border-color: #228751; background: #e0f4e5; }
.command-priority { border-color: #d8eadc; background: linear-gradient(145deg, #fff, #f5fcf6); }
.command-priority:hover { border-color: #87c79e; box-shadow: 0 10px 20px rgba(27,104,56,.12); }
.command-priority-index { color: #6fa484; }
.command-priority-icon { background: #e1f5e7; color: #087b47; }
.command-priority.status-pending .command-priority-icon { background: #d8f0df; color: #187d47; }
.command-priority.status-draft .command-priority-icon { background: #e9f8ec; color: #31905a; }
.command-priority.status-approved .command-priority-icon { background: #d3f1da; color: #076e3b; }
.command-priority-copy strong, .command-metric strong { color: #17452e; }
.command-priority-copy small, .command-metric small, .command-metric em { color: #607c6a; }
.command-priority-arrow { color: #52946d; }

.command-metric { border-color: #d7eadc; background: linear-gradient(145deg, #fff, #f2faf4); }
.command-metric:hover { border-color: #82c59a; }
.command-metric-icon, .command-metric-icon.gpa, .command-metric-icon.cgpa, .command-metric-icon.results { background: #e0f4e5; color: #087b47; }
.command-metric-icon.gpa { background: #d5f0dc; color: #117a43; }
.command-metric-icon.cgpa { background: #e9f8ec; color: #38945a; }
.command-metric-icon.results { background: #ccefd6; color: #046a37; }
.command-profile { border-color: #0d6c3d; background: linear-gradient(145deg, #075b34, #0b7e48); box-shadow: 0 15px 28px rgba(15,98,54,.2); }
.command-profile .command-eyebrow { color: #c9f5d6; }
.command-profile-details { border-color: rgba(222,255,232,.2); }
.command-profile-details dt { color: #c6eed2; }
.command-profile-link { border-color: rgba(198,244,212,.35); background: rgba(255,255,255,.1); color: #e2ffe9 !important; }
.command-profile-link:hover { border-color: rgba(225,255,235,.7); background: rgba(255,255,255,.16); }

.command-service-count { border: 1px solid #b8deC2; background: #e5f5e9; color: #267446; }
.command-service { border-color: var(--service-line, #c9e4d1); background: linear-gradient(145deg, #ffffff 10%, var(--service-bg, #eff9f1)); box-shadow: inset 0 1px 0 rgba(255,255,255,.95); }
.command-service:hover { border-color: var(--service-strong, #3b9760); box-shadow: inset 0 1px 0 #fff, 0 10px 20px rgba(23,96,52,.13); }
.command-service > .bi { color: var(--service-strong, #298952); }
.command-service-icon { background: var(--service-icon-bg, #d8f1df); color: var(--service-strong, #087b47); box-shadow: 0 3px 7px rgba(21,99,51,.10); }
.command-service strong { color: #16472d; }
.command-service small { color: #5d7b67; }
.command-service.tone-teal { --service-bg: #ecf9f0; --service-line: #c9e9d2; --service-icon-bg: #d8f3e0; --service-strong: #087a45; }
.command-service.tone-amber { --service-bg: #f4fbf5; --service-line: #d4ebd9; --service-icon-bg: #e3f5e6; --service-strong: #2b824b; }
.command-service.tone-green { --service-bg: #eaf8ee; --service-line: #bfe4ca; --service-icon-bg: #ccefd5; --service-strong: #076c3a; }
.command-service.tone-blue { --service-bg: #f1faf3; --service-line: #d5ead9; --service-icon-bg: #e0f3e4; --service-strong: #3a8c58; }
.command-service.tone-purple { --service-bg: #edf9ef; --service-line: #cbe6d2; --service-icon-bg: #d5f1db; --service-strong: #147a43; }
.command-service.tone-slate { --service-bg: #f6fbf7; --service-line: #dfeee2; --service-icon-bg: #e8f5ea; --service-strong: #5a956d; }
.command-service.tone-orange { --service-bg: #f0faf2; --service-line: #cde9d5; --service-icon-bg: #d9f2df; --service-strong: #258650; }
.command-service.tone-rose { --service-bg: #f7fcf8; --service-line: #dceee0; --service-icon-bg: #e5f4e8; --service-strong: #4d9567; }
.command-service.tone-emerald { --service-bg: #e8f8ed; --service-line: #b8e1c4; --service-icon-bg: #c9f0d4; --service-strong: #00763d; }

@media (min-width: 38rem) { .student-command-center { margin-top: 1rem; margin-bottom: 1rem; } }
@media (min-width: 68rem) { .student-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; } }
/* Professional footer retained inside the dashboard frame. */
.command-footer {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    margin: 1rem .25rem .25rem;
    padding: .9rem 0 .15rem;
    border-top: 1px solid #b9ddc3;
    color: #47745a;
}
.command-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.command-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.command-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.command-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; letter-spacing: -.01em; text-overflow: ellipsis; white-space: nowrap; }
.command-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.command-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.command-footer-links > span, .command-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.command-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.command-footer-links > span i { color: #0b7c46; }
.command-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.command-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }
@media (min-width: 38rem) {
    .command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; }
    .command-footer-links { justify-content: flex-end; }
}
@media print { .command-footer { box-shadow: none; } }
/* Registration-number copy control in the student profile. */
.command-profile-details .command-profile-registration { align-items: center; min-height: 2rem; padding: .24rem .34rem; border: 1px solid rgba(222,255,232,.18); border-radius: .42rem; background: rgba(0,53,27,.16); }
.command-profile-registration dd { display: inline-flex; align-items: center; justify-content: flex-end; gap: .35rem; min-width: 0; }
.command-registration-number { overflow: hidden; max-width: 10rem; color: #f0fff4; font-size: .68rem; font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: .035em; text-overflow: ellipsis; white-space: nowrap; }
.command-copy-button { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; padding: 0; border: 1px solid rgba(211,255,223,.45); border-radius: .38rem; background: linear-gradient(145deg, rgba(255,255,255,.18), rgba(178,245,199,.12)); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 3px 7px rgba(0,42,21,.17); color: #e7ffed; cursor: pointer; font-size: .78rem; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.command-copy-button:hover { transform: translateY(-1px); border-color: #e0ffe8; background: rgba(237,255,242,.24); }
.command-copy-button.is-copied { border-color: #b3f4c6; background: #d9f9e2; color: #08713e; }
.command-copy-button:focus-visible { outline: 3px solid #d2ffe0; outline-offset: 2px; }
.command-copy-feedback { min-width: 0; color: #ceffda; font-size: .6rem; font-weight: 750; white-space: nowrap; }
/* Academic pulse: one clear, colour-safe path to the student’s most common actions. */
.command-pulse-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.command-pulse-card { --pulse-bg: #edf8f0; --pulse-line: #c7e5ce; --pulse-strong: #087b47; --pulse-icon-bg: #d9f2df; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) .7rem; align-items: center; gap: .48rem; min-width: 0; min-height: 4.15rem; padding: .62rem; border: 1px solid var(--pulse-line); border-radius: .8rem; background: linear-gradient(135deg, #fff 8%, var(--pulse-bg)); box-shadow: inset 0 1px 0 rgba(255,255,255,.94); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.command-pulse-card:hover { border-color: var(--pulse-strong); box-shadow: inset 0 1px 0 #fff, 0 10px 21px rgba(19,77,41,.12); transform: translateY(-2px); }
.command-pulse-card:focus-visible { outline: 3px solid var(--pulse-strong); outline-offset: 3px; }
.command-pulse-icon { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: .65rem; background: var(--pulse-icon-bg); box-shadow: 0 4px 9px rgba(19,77,41,.10); color: var(--pulse-strong); font-size: .98rem; }
.command-pulse-copy { display: grid; min-width: 0; gap: .16rem; }
.command-pulse-copy strong { overflow: hidden; color: #17452e; font-size: .73rem; font-weight: 820; letter-spacing: -.012em; line-height: 1.18; text-overflow: ellipsis; white-space: nowrap; }
.command-pulse-copy small { overflow: hidden; color: #5c7a67; font-size: .61rem; font-weight: 660; line-height: 1.18; text-overflow: ellipsis; white-space: nowrap; }
.command-pulse-card > .bi { color: var(--pulse-strong); font-size: .72rem; opacity: .82; }
.command-pulse-card.tone-teal { --pulse-bg: #e7f8f3; --pulse-line: #bde7d9; --pulse-icon-bg: #d1f3e8; --pulse-strong: #087c68; }
.command-pulse-card.tone-amber { --pulse-bg: #fff8e9; --pulse-line: #f0dcab; --pulse-icon-bg: #ffedbe; --pulse-strong: #9a6200; }
.command-pulse-card.tone-blue { --pulse-bg: #eef5ff; --pulse-line: #c7dcf5; --pulse-icon-bg: #dcecff; --pulse-strong: #2567a9; }
.command-pulse-card.tone-rose { --pulse-bg: #fff0f4; --pulse-line: #f2cad6; --pulse-icon-bg: #ffe0e8; --pulse-strong: #ad4266; }
.command-pulse-card.tone-slate { --pulse-bg: #f2f6f8; --pulse-line: #d1dfe5; --pulse-icon-bg: #e0eaee; --pulse-strong: #49677a; }
.command-pulse-card.tone-purple { --pulse-bg: #f5efff; --pulse-line: #dccbf3; --pulse-icon-bg: #e8dcff; --pulse-strong: #7147ad; }
.command-pulse-card.tone-emerald { --pulse-bg: #e9f9ef; --pulse-line: #bde7ca; --pulse-icon-bg: #d4f3df; --pulse-strong: #087844; }
.command-pulse-card.tone-orange { --pulse-bg: #fff1ea; --pulse-line: #f2cfbd; --pulse-icon-bg: #ffe0d0; --pulse-strong: #ad542d; }
@media (max-width: 31rem) { .command-pulse-grid { grid-template-columns: 1fr; } }

/* Responsive hardening: narrow phones through wide desktops. */
.student-command-center {
    width: min(calc(100% - 1rem), 76rem);
    box-sizing: border-box;
}
.command-brand { flex: 1 1 auto; }
.command-brand-actions { flex: 0 0 auto; }
.command-section-heading > div, .command-welcome-copy, .command-welcome-status, .command-footer-brand { min-width: 0; }
.command-service { align-items: center; min-height: 4.3rem; }
.command-service strong {
    overflow: hidden;
    white-space: normal;
    text-overflow: initial;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.command-service small { display: block; }

@media (max-width: 29rem) {
    .command-brand strong { max-width: 8.5rem; }
    .command-brand small { font-size: .62rem; }
    .command-brandbar { gap: .45rem; }
    .command-utility { padding-inline: .55rem; }
}

@media (max-width: 22.5rem) {
    .student-command-center { width: calc(100% - .5rem); margin-top: .25rem; margin-bottom: .25rem; padding: .65rem .6rem 1.35rem; border-width: 1px; }
    .command-brandbar { min-height: 3.2rem; padding: .28rem 0; }
    .command-brand { gap: .45rem; }
    .command-brand img { width: 2rem; height: 2rem; }
    .command-brand strong { max-width: 7.6rem; font-size: .76rem; }
    .command-brand small { display: none; }
    .command-brand-actions { gap: .25rem; }
    .command-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .command-utility span { display: none; }
    .command-utility.has-updates::after { width: .38rem; height: .38rem; border: 1px solid #fff; border-radius: 50%; background: #0a7b44; content: ""; position: absolute; transform: translate(.55rem, -.55rem); }
    .command-utility { position: relative; }
    .command-welcome { gap: .8rem; padding: 1rem; border-radius: .82rem; }
    .command-welcome h1 { font-size: 1.42rem; }
    .command-welcome-copy > p:not(.command-eyebrow) { font-size: .81rem; }
    .command-welcome-status, .command-metric-grid, .command-pulse-grid, .command-service-grid { grid-template-columns: 1fr; }
    .command-status-line { grid-template-columns: 2rem minmax(0, 1fr) .7rem; }
    .command-status-line > .bi { display: block; }
    .command-section-heading { align-items: flex-start; gap: .45rem; }
    .command-section-heading h2 { font-size: 1rem; }
    .command-section-heading > a { min-height: 1.9rem; padding: .36rem .46rem; font-size: .62rem; }
    .command-priorities, .command-academics, .command-services, .command-profile { margin-top: .65rem; border-radius: .8rem; }
    .command-priorities, .command-academics, .command-services, .command-profile { padding: .8rem; }
    .command-profile-details div { gap: .42rem; }
    .command-registration-number { max-width: 7.5rem; }
    .command-footer { margin: .8rem 0 .1rem; gap: .6rem; }
    .command-footer-links > span { border-right: 0; padding-right: 0; }
}

@media (min-width: 48rem) {
    .command-welcome { grid-template-columns: minmax(0, 1fr) 16rem; align-items: end; }
    .command-welcome-status { grid-template-columns: 1fr; }
    .command-status-line { grid-template-columns: 2rem minmax(0, 1fr) .75rem; }
    .command-status-line > .bi { display: block; }
    .command-overview { grid-template-columns: minmax(0, 1.55fr) minmax(14rem, .78fr); align-items: stretch; }
    .command-academics, .command-profile { margin-top: .9rem; }
    .command-profile { min-height: 100%; }
}

@media (min-width: 38rem) and (max-width: 67.99rem) {
    .command-brand strong { max-width: min(20rem, 34vw); }
    .command-service { min-height: 4.5rem; }
}
/* Course registration: dashboard-aligned green student workspace. */
body.student-registration-page {
    background: #edf7ef !important;
    background-image: none !important;
    color: #123a28;
}
body.student-registration-page::before,
body.student-registration-page::after,
body.student-registration-page .portal-breadcrumbs,
body.student-registration-page .top-header,
body.student-registration-page .student-nav,
body.student-registration-page .portal-footer { display: none !important; }
.registration-command-center {
    --reg-ink: #123f27;
    --reg-muted: #5d7d69;
    --reg-line: #cce5d3;
    --reg-green: #087642;
    --reg-green-deep: #075b34;
    width: min(calc(100% - 1rem), 76rem);
    margin: .8rem auto;
    padding: .9rem;
    border: 2px solid #2c8b54;
    border-radius: .3rem;
    background: rgba(255,255,255,.74);
    box-shadow: 0 22px 50px rgba(23,93,52,.12);
}
.registration-command-center *, .registration-command-center *::before, .registration-command-center *::after { box-sizing: border-box; }
.registration-command-center a { color: inherit; text-decoration: none; }
.registration-command-center a:focus-visible,
.registration-command-center button:focus-visible,
.registration-command-center input:focus-visible,
.registration-command-center select:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.registration-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 3.55rem; padding: .35rem .15rem .55rem; }
.registration-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.registration-brand img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.registration-brand > span { display: grid; min-width: 0; line-height: 1.08; }
.registration-brand strong { overflow: hidden; max-width: 12rem; color: #155a37; font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.registration-brand small { margin-top: .16rem; color: #578168; font-size: .68rem; font-weight: 650; }
.registration-brand-actions { display: inline-flex; gap: .35rem; flex: 0 0 auto; }
.registration-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.45rem; padding: .48rem .7rem; border: 1px solid #9cccae; border-radius: .48rem; background: linear-gradient(145deg, #fff, #e5f5e9); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09); color: #17613a; font-size: .72rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.registration-utility:hover { transform: translateY(-1px); border-color: #21824b; box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); color: #0c6737; }
.registration-signout { border-color: #bad8c3; color: #2c7249; }

.registration-page-hero { display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; position: relative; }
.registration-page-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.registration-page-hero-copy, .registration-page-state { min-width: 0; position: relative; z-index: 1; }
.registration-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #c6f3d5; font-size: .67rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.registration-page-hero h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.registration-page-hero-copy > p:not(.registration-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.registration-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.registration-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(230,255,238,.22); border-radius: 999px; background: rgba(0,62,31,.2); color: #effff3; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.registration-context i { color: #b6f4c9; }
.registration-page-state { display: grid; grid-template-columns: 2.3rem minmax(0,1fr); align-items: center; gap: .55rem; min-height: 4.5rem; padding: .65rem; border: 1px solid rgba(225,255,235,.2); border-radius: .82rem; background: rgba(0,63,31,.24); }
.registration-state-icon { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .68rem; background: rgba(224,255,234,.15); color: #d9ffe5; font-size: 1.03rem; }
.registration-page-state.is-locked .registration-state-icon { color: #e3ffd4; }
.registration-page-state > span:nth-child(2) { display: grid; min-width: 0; }
.registration-page-state small { color: #c6eed2; font-size: .62rem; font-weight: 700; }
.registration-page-state strong { overflow: hidden; margin-top: .16rem; color: #fff; font-size: .78rem; font-weight: 780; text-overflow: ellipsis; white-space: nowrap; }
.registration-state-action { grid-column: 2; display: inline-flex; align-items: center; justify-content: center; gap: .33rem; width: max-content; min-height: 1.95rem; margin-top: .05rem; padding: .34rem .55rem; border: 1px solid rgba(217,255,229,.35); border-radius: .42rem; background: rgba(255,255,255,.1); color: #ecfff1; font-size: .67rem; font-weight: 800; }
.registration-state-action:hover { background: rgba(255,255,255,.19); color: #fff; }

.registration-page-content { margin-top: .9rem; }
.registration-workspace-grid { --bs-gutter-x: .9rem; --bs-gutter-y: .9rem; }
.registration-command-center .card, .registration-command-center .registration-wizard-guide, .registration-command-center .lock-overlay { border: 1px solid var(--reg-line); border-radius: .95rem; background: #fff; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.registration-command-center .card { overflow: hidden; }
.registration-command-center .card-body { padding: 1rem; }
.registration-summary-panel { border-color: #bde0c7 !important; background: linear-gradient(145deg, #fff, #f0faf2) !important; }
.registration-summary-panel .fs-1 { display: inline-grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: .85rem; background: #d9f2df; color: #087642 !important; font-size: 1.35rem !important; }
.registration-summary-panel h5 { overflow: hidden; margin: 0; color: var(--reg-ink); font-size: 1rem; font-weight: 790; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.registration-summary-panel hr { margin: .9rem 0; border-color: #d6eadb; opacity: 1; }
.registration-summary-panel p { margin: .48rem 0; color: #527562; font-size: .77rem; line-height: 1.35; }
.registration-summary-panel p strong { color: #245239; font-weight: 800; }
.registration-summary-panel h6 { margin: 0 0 .48rem; color: #0a743f !important; font-size: .78rem; }
.registration-summary-panel .table { margin: 0; color: #426653; font-size: .71rem; }
.registration-summary-panel .table > :not(caption) > * > * { padding: .45rem .15rem; border-color: #dcece0; }
.registration-summary-panel .table td:last-child { color: #174f2e; font-variant-numeric: tabular-nums; font-weight: 760; text-align: right; white-space: nowrap; }
.registration-summary-panel .alert { margin: .65rem 0; border: 1px solid #c4e7ce; border-radius: .6rem; background: #edf9f0; color: #17683b; font-size: .73rem; font-weight: 700; }

.registration-command-center .print-btn, .registration-command-center .modern-pay-btn { display: grid; grid-template-columns: 2.35rem minmax(0,1fr) .9rem; align-items: center; gap: .55rem; width: 100%; min-height: 4.2rem; padding: .62rem; border: 1px solid #07713e; border-radius: .68rem; background: linear-gradient(135deg, #087440, #139458); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 9px 17px rgba(13,105,57,.2); color: #fff; font-weight: 760; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.registration-command-center .print-btn:hover, .registration-command-center .modern-pay-btn:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.26), 0 14px 24px rgba(13,105,57,.26); color: #fff; filter: brightness(1.03); }
.registration-command-center .print-icon, .registration-command-center .modern-pay-btn .btn-icon { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: .58rem; background: rgba(255,255,255,.16); font-size: 1rem; }
.registration-command-center .print-text, .registration-command-center .modern-pay-btn .btn-text { display: grid; min-width: 0; color: #fff; line-height: 1.18; text-align: left; }
.registration-command-center .print-text small, .registration-command-center .modern-pay-btn .btn-text small { margin-top: .14rem; color: #d7f9e1; font-size: .63rem; font-weight: 650; }
.registration-command-center .print-arrow, .registration-command-center .modern-pay-btn .btn-arrow { display: grid; place-items: center; font-size: .95rem; }

.registration-command-center .lock-overlay { padding: 1.25rem; margin-bottom: .9rem; border-color: #c8e5d0; background: linear-gradient(145deg, #fff, #f1faf3); }
.registration-command-center .lock-card { max-width: 32rem; margin: 0 auto; text-align: center; }
.registration-command-center .lock-card > .bi { display: inline-grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: .9rem; background: #d8f1df; color: #0b733f !important; font-size: 1.35rem !important; }
.registration-command-center .lock-card h4 { color: #184d2e !important; font-size: 1.08rem; }
.registration-command-center .lock-card p { color: #587665 !important; font-size: .84rem; line-height: 1.55; }
.registration-command-center .alert { border-radius: .68rem; font-size: .8rem; }
.registration-command-center .alert-success { border-color: #bce5c7; background: #edf9f0; color: #16673a; }
.registration-command-center .alert-danger { border-color: #e5c6ca; background: #fff4f5; color: #8e3542; }

.registration-command-center .course-registration-wizard .registration-wizard-guide { margin: 0 0 .9rem; padding: 1rem; border-color: #cce5d3; background: linear-gradient(145deg, #fff, #f0faf2); }
.registration-command-center .registration-wizard-heading .experience-eyebrow { margin-bottom: .3rem; color: #087442; font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.registration-command-center .registration-wizard-heading h2 { margin: 0; color: var(--reg-ink); font-size: 1.08rem; font-weight: 790; letter-spacing: -.025em; }
.registration-command-center .registration-wizard-heading p:last-child { margin: .35rem 0 0; color: #607d6a; font-size: .82rem; line-height: 1.48; }
.registration-command-center .registration-steps { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .45rem; margin-top: .85rem; }
.registration-command-center .registration-step { gap: .42rem; padding: .55rem; border-color: #d7eadc; background: #fff; }
.registration-command-center .registration-step > span { width: 1.55rem; height: 1.55rem; color: #46775a; background: #e5f3e8; }
.registration-command-center .registration-step strong { color: #275439; font-size: .73rem; }
.registration-command-center .registration-step small { color: #6a8875; font-size: .62rem; }
.registration-command-center .registration-step.is-active { border-color: #76ba8d; background: #f0f9f2; }
.registration-command-center .registration-step.is-active > span { background: #087542; }
.registration-command-center .registration-step.is-complete > span { color: #08713e; background: #d7f1de; }
.registration-command-center .registration-step.is-blocked { border-color: #d2e6d7; background: #f7fbf8; }
.registration-command-center .registration-step.is-blocked > span { color: #5c8a69; background: #e5f2e8; }
.registration-command-center .registration-semester-panel h5, .registration-command-center .registration-course-panel h5 { color: #1b5031; font-size: .98rem; font-weight: 790; }
.registration-command-center .registration-semester-panel h5 i, .registration-command-center .registration-course-panel h5 i { color: #087542 !important; }
.registration-command-center .form-select { min-height: 2.8rem; border-color: #b9dac3; border-radius: .58rem; background-color: #fbfffc; color: #244f35; box-shadow: inset 0 1px 2px rgba(17,81,42,.03); font-size: .84rem; }
.registration-command-center .form-select:focus { border-color: #238751; box-shadow: 0 0 0 .2rem rgba(22,130,69,.13); }
.registration-command-center .tick-all-control { min-height: 2.35rem; padding: .44rem .65rem; border-color: #a7d4b4; border-radius: .48rem; background: #edf9f0; color: #087140; font-size: .7rem; font-weight: 800; }
.registration-command-center .tick-all-control input, .registration-command-center #tick_all_courses_head { accent-color: #087542; }
.registration-command-center .alert-info { border: 1px solid #c6e7ce; background: #edf9f0; color: #24633e; }
.registration-command-center .alert-info .text-primary { color: #087542 !important; }
.registration-command-center .table-responsive { margin: 0; border: 1px solid #d1e7d6; border-radius: .65rem; }
.registration-command-center .registration-course-table { min-width: 39rem; margin: 0; color: #355d46; font-size: .76rem; }
.registration-command-center .registration-course-table > :not(caption) > * > * { padding: .66rem .62rem; border-color: #dfede2; vertical-align: middle; }
.registration-command-center .registration-course-table thead > tr > * { border-color: #b6dfc0; background: #dff3e5 !important; color: #165e35; font-size: .69rem; font-weight: 820; letter-spacing: .02em; text-transform: uppercase; }
.registration-command-center .registration-course-table tbody tr:hover > * { background: #f3fbf5; }
.registration-command-center .registration-course-table .table-warning > * { background: #f2faf3 !important; }
.registration-command-center .registration-course-table input[type="checkbox"], .registration-command-center .registration-confirmation input { width: 1rem; height: 1rem; accent-color: #087542; }
.registration-command-center .registration-confirmation { margin: .9rem 0 .7rem; padding: .78rem .85rem; border-color: #cce5d3; border-radius: .64rem; background: #f2faf4; color: #416c52; font-size: .78rem; }
.registration-command-center .registration-submit, .registration-command-center .btn-primary { min-height: 2.9rem; border: 1px solid #08713e; border-radius: .58rem; background: linear-gradient(135deg, #087440, #149457); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 16px rgba(13,105,57,.17); color: #fff; font-size: .83rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.registration-command-center .registration-submit:hover:not(:disabled), .registration-command-center .btn-primary:hover { transform: translateY(-2px); border-color: #076a3a; background: linear-gradient(135deg, #076d3c, #0d844a); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 21px rgba(13,105,57,.24); color: #fff; }
.registration-command-center .registration-submit:disabled { border-color: #b6d8bf; background: #cfe6d5; box-shadow: none; color: #5e8570; }

.registration-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.registration-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.registration-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.registration-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.registration-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.registration-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.registration-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.registration-footer-links > span, .registration-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.registration-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.registration-footer-links > span i { color: #0b7c46; }
.registration-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.registration-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }
.registration-command-center + .modal .modal-content { border: 1px solid #c7e5cf !important; border-radius: 1rem; }
.registration-command-center + .modal .modal-body { color: #275239; }

@media (max-width: 22.5rem) {
    .registration-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; }
    .registration-brandbar { min-height: 3.2rem; gap: .45rem; padding: .28rem 0; }
    .registration-brand { gap: .45rem; }
    .registration-brand img { width: 2rem; height: 2rem; }
    .registration-brand strong { max-width: 7.5rem; font-size: .76rem; }
    .registration-brand small, .registration-utility span { display: none; }
    .registration-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .registration-page-hero { padding: 1rem; border-radius: .82rem; }
    .registration-page-hero h1 { font-size: 1.42rem; }
    .registration-page-hero-copy > p:not(.registration-eyebrow) { font-size: .81rem; }
    .registration-page-state { grid-template-columns: 2.15rem minmax(0,1fr); }
    .registration-command-center .card-body, .registration-command-center .course-registration-wizard .registration-wizard-guide, .registration-command-center .lock-overlay { padding: .8rem; }
    .registration-command-center .registration-steps { grid-template-columns: 1fr; }
    .registration-command-center .registration-course-panel .d-flex { align-items: stretch !important; }
    .registration-command-center .tick-all-control { width: 100%; justify-content: center; }
    .registration-footer-links > span { border-right: 0; padding-right: 0; }
}
@media (min-width: 38rem) {
    .registration-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; }
    .registration-page-hero { padding: 1.55rem; }
    .registration-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; }
    .registration-footer-links { justify-content: flex-end; }
}
@media (min-width: 48rem) {
    .registration-page-hero { grid-template-columns: minmax(0,1fr) 16.25rem; align-items: end; }
    .registration-page-state { grid-template-columns: 2.3rem minmax(0,1fr) auto; }
    .registration-state-action { grid-column: auto; }
    .registration-command-center .registration-steps { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (min-width: 62rem) {
    .registration-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; }
    .registration-workspace-grid { --bs-gutter-x: 1rem; }
    .registration-sidebar .registration-summary-panel { position: sticky; top: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .registration-command-center *, .registration-command-center *::before, .registration-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media print {
    body.student-registration-page { background: #fff !important; }
    .registration-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; }
    .registration-brandbar, .registration-page-hero, .registration-command-footer, .registration-utility, .registration-state-action { display: none !important; }
    .registration-command-center .card, .registration-command-center .registration-wizard-guide { box-shadow: none; }
}
/* Student wallet: dashboard-aligned finance workspace. */
body.student-wallet-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-wallet-page::before, body.student-wallet-page::after, body.student-wallet-page .portal-breadcrumbs, body.student-wallet-page .top-header, body.student-wallet-page .student-nav, body.student-wallet-page .portal-footer { display: none !important; }
.wallet-command-center { --wallet-ink: #123f27; --wallet-muted: #5d7d69; --wallet-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.wallet-command-center *, .wallet-command-center *::before, .wallet-command-center *::after { box-sizing: border-box; }
.wallet-command-center a { color: inherit; text-decoration: none; }
.wallet-command-center a:focus-visible, .wallet-command-center button:focus-visible, .wallet-command-center input:focus-visible, .wallet-command-center textarea:focus-visible, .wallet-command-center select:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.wallet-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 3.55rem; padding: .35rem .15rem .55rem; }
.wallet-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.wallet-brand img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.wallet-brand > span { display: grid; min-width: 0; line-height: 1.08; }
.wallet-brand strong { overflow: hidden; max-width: 12rem; color: #155a37; font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.wallet-brand small { margin-top: .16rem; color: #578168; font-size: .68rem; font-weight: 650; }
.wallet-brand-actions { display: inline-flex; gap: .35rem; flex: 0 0 auto; }
.wallet-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.45rem; padding: .48rem .7rem; border: 1px solid #9cccae; border-radius: .48rem; background: linear-gradient(145deg, #fff, #e5f5e9); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09); color: #17613a; font-size: .72rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.wallet-utility:hover { transform: translateY(-1px); border-color: #21824b; box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); color: #0c6737; }
.wallet-signout { border-color: #bad8c3; color: #2c7249; }

.wallet-command-hero { display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; position: relative; }
.wallet-command-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.wallet-command-hero-copy, .wallet-hero-action { min-width: 0; position: relative; z-index: 1; }
.wallet-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #c6f3d5; font-size: .67rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.wallet-command-hero h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.wallet-command-hero-copy > p:not(.wallet-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.wallet-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.wallet-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(230,255,238,.22); border-radius: 999px; background: rgba(0,62,31,.2); color: #effff3; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.wallet-context i { color: #b6f4c9; }
.wallet-hero-action { display: grid; grid-template-columns: 2.35rem minmax(0,1fr) .85rem; align-items: center; gap: .52rem; min-height: 4.05rem; padding: .6rem; border: 1px solid rgba(224,255,234,.28); border-radius: .76rem; background: rgba(0,63,31,.25); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.1); transition: transform .18s ease, background .18s ease; }
.wallet-hero-action:hover { transform: translateY(-2px); background: rgba(0,48,23,.35); color: #fff; }
.wallet-hero-action > span { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: .62rem; background: rgba(224,255,234,.15); color: #d9ffe5; font-size: 1rem; }
.wallet-hero-action strong { font-size: .78rem; font-weight: 800; }
.wallet-hero-action > .bi { color: #c9f7d6; font-size: .9rem; }

.wallet-command-center > .alert { margin: .9rem 0 0; border-radius: .68rem; font-size: .8rem; }
.wallet-command-center > .alert-success { border-color: #bce5c7; background: #edf9f0; color: #16673a; }
.wallet-command-center > .alert-danger { border-color: #e5c6ca; background: #fff4f5; color: #8e3542; }
.wallet-command-center .wallet-balance-grid { display: grid; grid-template-columns: 1fr; gap: .55rem; margin-top: .9rem; }
.wallet-command-center .wallet-balance-card { min-height: 7.2rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .9rem; background: linear-gradient(145deg, #fff, #f0faf2); box-shadow: 0 12px 25px rgba(25,93,54,.07); position: relative; overflow: hidden; }
.wallet-command-center .wallet-balance-card::before { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; margin-bottom: .72rem; border-radius: .62rem; background: #d8f2df; color: #087542; font-family: bootstrap-icons; font-size: .93rem; content: "\f3d1"; }
.wallet-command-center .wallet-balance-card:nth-child(2)::before { background: #e8f7eb; color: #2c8b50; content: "\f2e3"; }
.wallet-command-center .wallet-balance-card:nth-child(3)::before { background: #ccefd6; color: #046d39; content: "\f29e"; }
.wallet-command-center .wallet-balance-card.wallet-balance-primary { border-color: #117b47; background: linear-gradient(135deg, #07633a, #109254); box-shadow: 0 14px 28px rgba(13,105,57,.2); }
.wallet-command-center .wallet-balance-card.wallet-balance-primary::before { background: rgba(255,255,255,.14); color: #e1ffea; }
.wallet-command-center .wallet-balance-card > span { display: block; color: #61806d; font-size: .69rem; font-weight: 780; }
.wallet-command-center .wallet-balance-card > strong { display: block; margin: .22rem 0; color: #164b2d; font-size: clamp(1.16rem, 5vw, 1.52rem); font-variant-numeric: tabular-nums; font-weight: 820; letter-spacing: -.04em; line-height: 1.05; }
.wallet-command-center .wallet-balance-card > small { color: #66816f; font-size: .66rem; font-weight: 650; }
.wallet-command-center .wallet-balance-primary > span, .wallet-command-center .wallet-balance-primary > strong, .wallet-command-center .wallet-balance-primary > small { color: #f2fff5; }
.wallet-command-center .wallet-balance-primary > span, .wallet-command-center .wallet-balance-primary > small { color: #c9f3d5; }

.wallet-command-center .experience-panel { margin-top: .9rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .95rem; background: #fff; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.wallet-command-center .experience-panel-heading { display: flex; align-items: end; justify-content: space-between; gap: .65rem; margin-bottom: .75rem; }
.wallet-command-center .experience-panel-heading > div > span { display: block; margin-bottom: .24rem; color: #087442; font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.wallet-command-center .experience-panel-heading h2 { margin: 0; color: #164a2d; font-size: 1.05rem; font-weight: 800; letter-spacing: -.03em; }
.wallet-command-center .experience-panel-heading > a { display: inline-flex; align-items: center; gap: .3rem; min-height: 2.05rem; padding: .42rem .62rem; border: 1px solid #94cbaa; border-radius: .43rem; background: linear-gradient(145deg, #fff, #e9f7ed); box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(27,105,57,.08); color: #087243; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.wallet-command-center .experience-panel-heading > a:hover { border-color: #228751; background: #e0f4e5; }
.wallet-command-center .wallet-progress { height: .72rem; overflow: hidden; border-radius: 999px; background: #dcefe1; }
.wallet-command-center .wallet-progress span { display: block; height: 100%; min-width: .4rem; border-radius: inherit; background: linear-gradient(90deg, #078044, #33b66b); box-shadow: 0 0 0 1px rgba(255,255,255,.25) inset; }
.wallet-command-center .wallet-progress-copy { margin: .72rem 0 0; color: #5e7b68; font-size: .78rem; line-height: 1.5; }
.wallet-command-center .experience-two-column { display: grid; gap: .9rem; }
.wallet-command-center .wallet-activity-list { display: grid; gap: .45rem; }
.wallet-command-center .wallet-activity { display: grid; grid-template-columns: 2.15rem minmax(0,1fr) auto; align-items: center; gap: .52rem; min-width: 0; padding: .68rem; border: 1px solid #d8eadc; border-radius: .72rem; background: linear-gradient(145deg, #fff, #f5fcf6); }
.wallet-command-center .wallet-activity-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .62rem; background: #e4f4e8; color: #387b51; font-size: .95rem; }
.wallet-command-center .wallet-activity-icon.is-paid { background: #d2f0da; color: #087441; }
.wallet-command-center .wallet-activity > div:nth-child(2) { display: grid; min-width: 0; }
.wallet-command-center .wallet-activity > div:nth-child(2) strong { overflow: hidden; color: #214f33; font-size: .76rem; font-weight: 790; text-overflow: ellipsis; white-space: nowrap; }
.wallet-command-center .wallet-activity > div:nth-child(2) small { overflow: hidden; margin-top: .17rem; color: #688573; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.wallet-command-center .wallet-activity-amount { display: grid; justify-items: end; gap: .28rem; min-width: 0; }
.wallet-command-center .wallet-activity-amount > strong { color: #16502e; font-size: .74rem; font-variant-numeric: tabular-nums; font-weight: 800; white-space: nowrap; }
.wallet-command-center .wallet-activity .status-badge { font-size: .54rem; }
.wallet-position-banner { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-bottom: .72rem; padding-bottom: .65rem; border-bottom: 1px solid #dcece0; color: #648071; font-size: .68rem; font-weight: 700; }
.wallet-position-banner .payment-status-badge { font-size: .58rem; }
.wallet-command-center .wallet-activity .payment-status-badge { min-height: 1.45rem; padding-right: .38rem; font-size: .53rem; }
.wallet-command-center .wallet-activity .payment-status-icon { width: 1.08rem; height: 1.08rem; flex-basis: 1.08rem; font-size: .57rem; }
.wallet-command-center .wallet-receipt-link { display: none; }
.wallet-command-center .portal-empty-state { min-height: 9rem; border: 1px dashed #b8dcbf; border-radius: .76rem; background: #f5fcf6; color: #5d7c68; }
.wallet-command-center .portal-empty-state strong { color: #205135; }
.wallet-command-center .payment-plan-panel > p { margin: 0 0 .85rem; color: #5e7c69; font-size: .78rem; line-height: 1.52; }
.wallet-command-center .experience-form { display: grid; gap: .45rem; }
.wallet-command-center .experience-form label { color: #245139; font-size: .72rem; font-weight: 800; }
.wallet-command-center .experience-form label span { color: #758e7e; font-weight: 650; }
.wallet-command-center .experience-form .form-select, .wallet-command-center .experience-form textarea { width: 100%; border: 1px solid #b9dac3; border-radius: .58rem; background: #fbfffc; color: #244f35; font-size: .8rem; }
.wallet-command-center .experience-form .form-select { min-height: 2.65rem; padding-inline: .72rem; }
.wallet-command-center .experience-form textarea { min-height: 5rem; padding: .68rem .72rem; resize: vertical; }
.wallet-command-center .experience-form .form-select:focus, .wallet-command-center .experience-form textarea:focus { border-color: #238751; box-shadow: 0 0 0 .2rem rgba(22,130,69,.13); }
.wallet-command-center .experience-form .btn-primary { min-height: 2.85rem; margin-top: .2rem; border: 1px solid #08713e; border-radius: .58rem; background: linear-gradient(135deg, #087440, #149457); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 16px rgba(13,105,57,.17); color: #fff; font-size: .8rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease; }
.wallet-command-center .experience-form .btn-primary:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 21px rgba(13,105,57,.24); color: #fff; }
.wallet-command-center .experience-positive-note { padding: .75rem; border: 1px solid #c5e7ce; border-radius: .62rem; background: #eef9f0; color: #176b3c; font-size: .75rem; font-weight: 730; }
.wallet-command-center .plan-request-list { display: grid; gap: .35rem; margin-top: .85rem; padding-top: .8rem; border-top: 1px solid #dcece0; }
.wallet-command-center .plan-request-list > div { display: flex; align-items: center; justify-content: space-between; gap: .55rem; color: #557564; font-size: .7rem; font-weight: 700; }
.wallet-command-center .plan-request-list .status-badge { font-size: .55rem; }

.wallet-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.wallet-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.wallet-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.wallet-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.wallet-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.wallet-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.wallet-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.wallet-footer-links > span, .wallet-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.wallet-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.wallet-footer-links > span i { color: #0b7c46; }
.wallet-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.wallet-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }

@media (max-width: 22.5rem) {
    .wallet-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; }
    .wallet-brandbar { min-height: 3.2rem; gap: .45rem; padding: .28rem 0; }
    .wallet-brand { gap: .45rem; }
    .wallet-brand img { width: 2rem; height: 2rem; }
    .wallet-brand strong { max-width: 7.5rem; font-size: .76rem; }
    .wallet-brand small, .wallet-utility span { display: none; }
    .wallet-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .wallet-command-hero { padding: 1rem; border-radius: .82rem; }
    .wallet-command-hero h1 { font-size: 1.42rem; }
    .wallet-command-hero-copy > p:not(.wallet-eyebrow) { font-size: .81rem; }
    .wallet-command-center .wallet-balance-grid { grid-template-columns: 1fr; }
    .wallet-command-center .experience-panel { padding: .8rem; border-radius: .8rem; }
    .wallet-command-center .experience-panel-heading { align-items: flex-start; }
    .wallet-command-center .experience-panel-heading > a { padding: .36rem .46rem; font-size: .62rem; }
    .wallet-command-center .wallet-activity { grid-template-columns: 2rem minmax(0,1fr); }
    .wallet-command-center .wallet-activity-amount { grid-column: 2; justify-items: start; display: flex; align-items: center; gap: .42rem; }
    .wallet-footer-links > span { border-right: 0; padding-right: 0; }
}
@media (min-width: 34rem) { .wallet-command-center .wallet-balance-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 38rem) { .wallet-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .wallet-command-hero { padding: 1.55rem; } .wallet-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .wallet-footer-links { justify-content: flex-end; } .wallet-command-center .wallet-receipt-link { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid #b6dfc0; border-radius: .48rem; background: #edf9f0; color: #087441; font-size: .82rem; } }
@media (min-width: 48rem) { .wallet-command-hero { grid-template-columns: minmax(0,1fr) 12rem; align-items: end; } .wallet-command-center .experience-two-column { grid-template-columns: minmax(0,1.55fr) minmax(15rem,.75fr); align-items: start; } }
@media (min-width: 62rem) { .wallet-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } .wallet-command-center .payment-plan-panel { position: sticky; top: 1rem; } }
@media (prefers-reduced-motion: reduce) { .wallet-command-center *, .wallet-command-center *::before, .wallet-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.student-wallet-page { background: #fff !important; } .wallet-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; } .wallet-brandbar, .wallet-command-hero, .wallet-command-footer, .wallet-utility { display: none !important; } .wallet-command-center .experience-panel, .wallet-command-center .wallet-balance-card { box-shadow: none; } }
.wallet-command-center .wallet-activity > div:nth-child(2) small.wallet-period-context { overflow: visible; white-space: normal; text-overflow: clip; line-height: 1.45; }
.wallet-command-center .plan-request-list > div > span:first-child { display: grid; gap: .22rem; min-width: 0; }
.wallet-command-center .plan-request-list > div > span:first-child small { color: #688573; font-size: .62rem; font-weight: 650; line-height: 1.4; }
/* Fees: dashboard-aligned finance payment workspace. */
body.student-fees-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-fees-page::before, body.student-fees-page::after, body.student-fees-page .portal-breadcrumbs, body.student-fees-page .top-header, body.student-fees-page .student-nav, body.student-fees-page .portal-footer { display: none !important; }
.fees-command-center { --fees-ink: #123f27; --fees-muted: #5d7d69; --fees-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.fees-command-center *, .fees-command-center *::before, .fees-command-center *::after { box-sizing: border-box; }
.fees-command-center a { color: inherit; text-decoration: none; }
.fees-command-center a:focus-visible, .fees-command-center button:focus-visible, .fees-command-center input:focus-visible, .fees-command-center select:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.fees-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 3.55rem; padding: .35rem .15rem .55rem; }
.fees-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.fees-brand img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.fees-brand > span { display: grid; min-width: 0; line-height: 1.08; }
.fees-brand strong { overflow: hidden; max-width: 12rem; color: #155a37; font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.fees-brand small { margin-top: .16rem; color: #578168; font-size: .68rem; font-weight: 650; }
.fees-brand-actions { display: inline-flex; gap: .35rem; flex: 0 0 auto; }
.fees-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.45rem; padding: .48rem .7rem; border: 1px solid #9cccae; border-radius: .48rem; background: linear-gradient(145deg, #fff, #e5f5e9); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09); color: #17613a; font-size: .72rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.fees-utility:hover { transform: translateY(-1px); border-color: #21824b; box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); color: #0c6737; }
.fees-signout { border-color: #bad8c3; color: #2c7249; }

.fees-command-hero { display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; position: relative; }
.fees-command-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.fees-command-hero-copy, .fees-command-state { min-width: 0; position: relative; z-index: 1; }
.fees-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #c6f3d5; font-size: .67rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.fees-command-hero h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.fees-command-hero-copy > p:not(.fees-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.fees-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.fees-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(230,255,238,.22); border-radius: 999px; background: rgba(0,62,31,.2); color: #effff3; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.fees-context i { color: #b6f4c9; }
.fees-command-state { display: grid; grid-template-columns: 2.3rem minmax(0,1fr); align-items: center; gap: .55rem; min-height: 4.5rem; padding: .65rem; border: 1px solid rgba(225,255,235,.2); border-radius: .82rem; background: rgba(0,63,31,.24); }
.fees-state-icon { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .68rem; background: rgba(224,255,234,.15); color: #d9ffe5; font-size: 1.03rem; }
.fees-command-state > span:nth-child(2) { display: grid; min-width: 0; }
.fees-command-state small { color: #c6eed2; font-size: .62rem; font-weight: 700; }
.fees-command-state strong { overflow: hidden; margin-top: .16rem; color: #fff; font-size: .78rem; font-variant-numeric: tabular-nums; font-weight: 780; text-overflow: ellipsis; white-space: nowrap; }
.fees-state-action { grid-column: 2; display: inline-flex; align-items: center; justify-content: center; gap: .33rem; width: max-content; min-height: 1.95rem; margin-top: .05rem; padding: .34rem .55rem; border: 1px solid rgba(217,255,229,.35); border-radius: .42rem; background: rgba(255,255,255,.1); color: #ecfff1; font-size: .67rem; font-weight: 800; }
.fees-state-action:hover { background: rgba(255,255,255,.19); color: #fff; }

.fees-page-content { margin-top: .9rem; }
.fees-page-content > .alert { border-radius: .68rem; font-size: .8rem; }
.fees-page-content > .alert-info { border-color: #c7e6cf; background: #f0faf2; color: #28663f; }
.fees-page-content > .alert-danger { border-color: #e5c6ca; background: #fff4f5; color: #8e3542; }
.fees-page-content > .alert-success { border-color: #bce5c7; background: #edf9f0; color: #16673a; }
.fees-workspace-grid { --bs-gutter-x: .9rem; --bs-gutter-y: .9rem; }
.fees-command-center .card { overflow: hidden; border: 1px solid var(--fees-line); border-radius: .95rem; background: #fff; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.fees-command-center .fees-student-summary { border-color: #bde0c7; background: linear-gradient(145deg, #fff, #f0faf2); }
.fees-command-center .fees-student-summary .card-body { padding: 1rem; }
.fees-command-center .dashboard-icon { display: inline-grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: .85rem; background: #d9f2df; color: #087642; }
.fees-command-center .dashboard-icon i { color: #087642; }
.fees-command-center .fees-student-summary h5 { overflow: hidden; margin: 0; color: var(--fees-ink); font-size: 1rem; font-weight: 790; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.fees-command-center .fees-student-summary hr { margin: .9rem 0; border-color: #d6eadb; opacity: 1; }
.fees-command-center .fees-student-summary p { margin: .48rem 0; color: #527562; font-size: .77rem; line-height: 1.35; }
.fees-command-center .fees-student-summary p strong { color: #245239; font-weight: 800; }
.fees-command-center .fees-student-summary .text-danger { color: #8d4a52 !important; }
.fees-command-center .fees-student-summary .progress { overflow: hidden; height: .68rem !important; border-radius: 999px !important; background: #dcefe1; }
.fees-command-center .fees-student-summary .progress-bar { background: linear-gradient(90deg, #078044, #33b66b) !important; }
.fees-command-center .scholar-badge { position: static; display: inline-flex; align-items: center; gap: .35rem; margin: 0 0 .7rem; padding: .34rem .6rem; border: 1px solid #bde5c7; border-radius: 999px; background: #ecf9ef; color: #116f3d; font-size: .68rem; font-weight: 800; transform: none; animation: none; }
.fees-command-center .fees-student-summary .alert { margin: .8rem 0 0; border: 1px solid #c5e7ce; border-radius: .62rem; background: #eef9f0; color: #176b3c; font-size: .74rem; font-weight: 740; }

.fees-command-center .fees-breakdown-panel { padding: 1rem !important; }
.fees-command-center .fees-breakdown-panel > h5, .fees-command-center .fees-history-panel h5 { margin: 0 0 .78rem; color: #1b5031; font-size: 1rem; font-weight: 800; }
.fees-command-center .fees-breakdown-panel > h5 i, .fees-command-center .fees-history-panel h5 i { color: #087542 !important; }
.fees-command-center .table-responsive { margin: 0; border: 1px solid #d1e7d6; border-radius: .65rem; }
.fees-command-center .fees-breakdown-table, .fees-command-center .fees-history-table { margin: 0; color: #355d46; font-size: .76rem; }
.fees-command-center .fees-breakdown-table > :not(caption) > * > *, .fees-command-center .fees-history-table > :not(caption) > * > * { padding: .66rem .62rem; border-color: #dfede2; vertical-align: middle; }
.fees-command-center .fees-breakdown-table th { color: #26533a; font-weight: 760; }
.fees-command-center .fees-breakdown-table td { color: #15512e; font-variant-numeric: tabular-nums; font-weight: 760; text-align: right; white-space: nowrap; }
.fees-command-center .fees-breakdown-table .table-success > * { background: #e0f4e5 !important; color: #165e35; }
.fees-command-center .fees-breakdown-table .table-success th, .fees-command-center .fees-breakdown-table .table-success td { color: #135b32; }
.fees-command-center .fees-breakdown-panel > .alert { border-radius: .68rem; font-size: .79rem; }
.fees-command-center .fees-breakdown-panel .alert-success { border-color: #bce5c7; background: #edf9f0; color: #16673a; }
.fees-command-center .fees-breakdown-panel .alert-warning { border-color: #c9e4cf; background: #f2faf4; color: #396e4a; }
.fees-command-center .fees-breakdown-panel .alert-warning .btn { margin: 0; }

.fees-command-center .fees-payment-form { display: grid; gap: .55rem; margin-top: 1rem; padding: .9rem; border: 1px solid #cce5d3; border-radius: .75rem; background: #f5fcf6; }
.fees-command-center .fees-payment-form label { margin: 0 !important; color: #245139; font-size: .74rem; font-weight: 800; }
.fees-command-center .fees-payment-form .form-select { min-height: 2.7rem; margin: 0 !important; border-color: #b9dac3; border-radius: .58rem; background-color: #fbfffc; color: #244f35; font-size: .82rem; }
.fees-command-center .fees-payment-form .form-select:focus { border-color: #238751; box-shadow: 0 0 0 .2rem rgba(22,130,69,.13); }
.fees-command-center .fees-payment-form .btn, .fees-command-center .fees-breakdown-panel .alert .btn, .fees-command-center .fees-history-table .btn { display: inline-flex; align-items: center; justify-content: center; gap: .38rem; min-height: 2.72rem; border-radius: .58rem; font-size: .78rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.fees-command-center .fees-payment-form .btn-success, .fees-command-center .fees-breakdown-panel .alert .btn-success { border: 1px solid #08713e; background: linear-gradient(135deg, #087440, #149457); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 16px rgba(13,105,57,.17); color: #fff; }
.fees-command-center .fees-payment-form .btn-success:hover, .fees-command-center .fees-breakdown-panel .alert .btn-success:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 21px rgba(13,105,57,.24); color: #fff; }
.fees-command-center .fees-payment-form .btn-outline-primary, .fees-command-center .fees-history-table .btn-primary { border: 1px solid #8fc6a1; background: linear-gradient(145deg, #fff, #e8f6eb); box-shadow: inset 0 1px 0 #fff, 0 4px 9px rgba(23,93,52,.08); color: #08713e; }
.fees-command-center .fees-payment-form .btn-outline-primary:hover, .fees-command-center .fees-history-table .btn-primary:hover { transform: translateY(-1px); border-color: #20854d; background: #dff3e5; color: #075f34; }
.fees-command-center .fees-breakdown-panel .btn-outline-success { border-color: #94cbaa; background: #fff; color: #08713e; }
.fees-command-center .fees-breakdown-panel .btn-outline-danger { border-color: #ddc6ca; background: #fff; color: #8d3c49; }
.fees-command-center .fees-history-panel { margin-top: 1rem !important; }
.fees-command-center .fees-history-panel .card-body { padding: 1rem; }
.fees-command-center .fees-history-table { min-width: 42rem; }
.fees-command-center .fees-history-table thead > tr > * { border-color: #b6dfc0; background: #dff3e5 !important; color: #165e35; font-size: .69rem; font-weight: 820; letter-spacing: .02em; text-transform: uppercase; }
.fees-command-center .fees-history-table tbody tr:hover > * { background: #f3fbf5; }
.fees-command-center .fees-history-table .badge { font-size: .57rem; }
.fees-command-center .fees-history-table .btn { min-height: 2rem; padding: .35rem .5rem; font-size: .67rem; white-space: nowrap; }

.fees-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.fees-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.fees-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.fees-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.fees-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.fees-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.fees-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.fees-footer-links > span, .fees-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.fees-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.fees-footer-links > span i { color: #0b7c46; }
.fees-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.fees-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }

@media (max-width: 22.5rem) {
    .fees-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; }
    .fees-brandbar { min-height: 3.2rem; gap: .45rem; padding: .28rem 0; }
    .fees-brand { gap: .45rem; }
    .fees-brand img { width: 2rem; height: 2rem; }
    .fees-brand strong { max-width: 7.5rem; font-size: .76rem; }
    .fees-brand small, .fees-utility span { display: none; }
    .fees-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .fees-command-hero { padding: 1rem; border-radius: .82rem; }
    .fees-command-hero h1 { font-size: 1.42rem; }
    .fees-command-hero-copy > p:not(.fees-eyebrow) { font-size: .81rem; }
    .fees-command-center .fees-breakdown-panel, .fees-command-center .fees-history-panel .card-body, .fees-command-center .fees-student-summary .card-body { padding: .8rem !important; }
    .fees-command-center .fees-breakdown-panel .alert .d-flex { align-items: stretch !important; }
    .fees-command-center .fees-breakdown-panel .alert .btn { width: 100%; }
    .fees-footer-links > span { border-right: 0; padding-right: 0; }
}
@media (min-width: 38rem) { .fees-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .fees-command-hero { padding: 1.55rem; } .fees-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .fees-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .fees-command-hero { grid-template-columns: minmax(0,1fr) 16.25rem; align-items: end; } .fees-command-state { grid-template-columns: 2.3rem minmax(0,1fr) auto; } .fees-state-action { grid-column: auto; } }
@media (min-width: 62rem) { .fees-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } .fees-workspace-grid { --bs-gutter-x: 1rem; } .fees-summary-column .fees-student-summary { position: sticky; top: 1rem; } }
@media (prefers-reduced-motion: reduce) { .fees-command-center *, .fees-command-center *::before, .fees-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.student-fees-page { background: #fff !important; } .fees-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; } .fees-brandbar, .fees-command-hero, .fees-command-footer, .fees-utility { display: none !important; } .fees-command-center .card { box-shadow: none; } }
/* Bed-space booking: dashboard-aligned accommodation workspace. */
body.student-hostel-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-hostel-page::before, body.student-hostel-page::after, body.student-hostel-page .portal-breadcrumbs, body.student-hostel-page .top-header, body.student-hostel-page .student-nav, body.student-hostel-page .portal-footer { display: none !important; }
.hostel-command-center { --hostel-ink: #123f27; --hostel-muted: #5d7d69; --hostel-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.hostel-command-center *, .hostel-command-center *::before, .hostel-command-center *::after { box-sizing: border-box; }
.hostel-command-center a { color: inherit; text-decoration: none; }
.hostel-command-center a:focus-visible, .hostel-command-center button:focus-visible, .hostel-command-center input:focus-visible, .hostel-command-center select:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.hostel-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 3.55rem; padding: .35rem .15rem .55rem; }
.hostel-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.hostel-brand img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.hostel-brand > span { display: grid; min-width: 0; line-height: 1.08; }
.hostel-brand strong { overflow: hidden; max-width: 12rem; color: #155a37; font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.hostel-brand small { margin-top: .16rem; color: #578168; font-size: .68rem; font-weight: 650; }
.hostel-brand-actions { display: inline-flex; gap: .35rem; flex: 0 0 auto; }
.hostel-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.45rem; padding: .48rem .7rem; border: 1px solid #9cccae; border-radius: .48rem; background: linear-gradient(145deg, #fff, #e5f5e9); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09); color: #17613a; font-size: .72rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.hostel-utility:hover { transform: translateY(-1px); border-color: #21824b; box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); color: #0c6737; }
.hostel-signout { border-color: #bad8c3; color: #2c7249; }

.hostel-command-hero { display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; position: relative; }
.hostel-command-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.hostel-command-hero-copy, .hostel-command-state { min-width: 0; position: relative; z-index: 1; }
.hostel-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #c6f3d5; font-size: .67rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.hostel-command-hero h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.hostel-command-hero-copy > p:not(.hostel-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.hostel-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.hostel-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(230,255,238,.22); border-radius: 999px; background: rgba(0,62,31,.2); color: #effff3; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.hostel-context i { color: #b6f4c9; }
.hostel-command-state { display: grid; grid-template-columns: 2.3rem minmax(0,1fr); align-items: center; gap: .55rem; min-height: 4.5rem; padding: .65rem; border: 1px solid rgba(225,255,235,.2); border-radius: .82rem; background: rgba(0,63,31,.24); }
.hostel-state-icon { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .68rem; background: rgba(224,255,234,.15); color: #d9ffe5; font-size: 1.03rem; }
.hostel-command-state > span:nth-child(2) { display: grid; min-width: 0; }
.hostel-command-state small { color: #c6eed2; font-size: .62rem; font-weight: 700; }
.hostel-command-state strong { overflow: hidden; margin-top: .16rem; color: #fff; font-size: .78rem; font-weight: 780; text-overflow: ellipsis; white-space: nowrap; }
.hostel-state-action { grid-column: 2; display: inline-flex; align-items: center; justify-content: center; gap: .33rem; width: max-content; min-height: 1.95rem; margin-top: .05rem; padding: .34rem .55rem; border: 1px solid rgba(217,255,229,.35); border-radius: .42rem; background: rgba(255,255,255,.1); color: #ecfff1; font-size: .67rem; font-weight: 800; }
.hostel-state-action:hover { background: rgba(255,255,255,.19); color: #fff; }

.hostel-page-content { margin-top: .9rem; }
.hostel-page-content > .alert { display: flex; align-items: center; gap: .45rem; border-radius: .68rem; font-size: .8rem; }
.hostel-page-content > .alert-success { border-color: #bce5c7; background: #edf9f0; color: #16673a; }
.hostel-page-content > .alert-danger { border-color: #e5c6ca; background: #fff4f5; color: #8e3542; }
.hostel-summary-grid { display: grid; gap: .55rem; }
.hostel-summary-card { min-height: 7.1rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .9rem; background: linear-gradient(145deg, #fff, #f0faf2); box-shadow: 0 12px 25px rgba(25,93,54,.07); }
.hostel-summary-card > span:not(.hostel-summary-icon) { display: block; margin-top: .68rem; color: #61806d; font-size: .69rem; font-weight: 780; }
.hostel-summary-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .62rem; background: #d8f2df; color: #087542; font-size: .94rem; }
.hostel-summary-card:nth-child(2) .hostel-summary-icon { background: #e6f6e9; color: #378853; }
.hostel-summary-card:nth-child(3) .hostel-summary-icon { background: #ccefd6; color: #046d39; }
.hostel-summary-card strong { display: block; overflow: hidden; margin: .2rem 0; color: #164b2d; font-size: clamp(1.15rem, 5vw, 1.45rem); font-variant-numeric: tabular-nums; font-weight: 820; letter-spacing: -.04em; line-height: 1.08; text-overflow: ellipsis; white-space: nowrap; }
.hostel-summary-card small { color: #66816f; font-size: .66rem; font-weight: 650; }
.hostel-summary-primary { border-color: #117b47; background: linear-gradient(135deg, #07633a, #109254); box-shadow: 0 14px 28px rgba(13,105,57,.2); }
.hostel-summary-primary .hostel-summary-icon { background: rgba(255,255,255,.14); color: #e1ffea; }
.hostel-summary-primary > span:not(.hostel-summary-icon), .hostel-summary-primary strong, .hostel-summary-primary small { color: #f2fff5; }
.hostel-summary-primary > span:not(.hostel-summary-icon), .hostel-summary-primary small { color: #c9f3d5; }

.hostel-workspace { display: grid; gap: .9rem; }
.hostel-information-panel, .hostel-booking-panel { margin-top: .9rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .95rem; background: #fff; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.hostel-information-panel { background: linear-gradient(145deg, #fff, #f0faf2); }
.hostel-panel-heading { display: flex; align-items: end; justify-content: space-between; gap: .65rem; margin-bottom: .8rem; }
.hostel-panel-heading > div > span { display: block; margin-bottom: .24rem; color: #087442; font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.hostel-panel-heading h2 { margin: 0; color: #164a2d; font-size: 1.05rem; font-weight: 800; letter-spacing: -.03em; }
.hostel-student-row { display: flex; align-items: center; gap: .62rem; min-width: 0; padding: .72rem; border: 1px solid #d3e9d8; border-radius: .7rem; background: #fff; }
.hostel-student-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; border-radius: .62rem; background: #d8f2df; color: #087542; font-size: 1rem; }
.hostel-student-row > div { display: grid; min-width: 0; }
.hostel-student-row strong { overflow: hidden; color: #1d4e30; font-size: .8rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.hostel-student-row small { overflow: hidden; margin-top: .14rem; color: #66816f; font-size: .66rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.hostel-detail-list { display: grid; gap: .32rem; margin: .85rem 0 0; padding: .76rem 0; border-top: 1px solid #d7eadc; border-bottom: 1px solid #d7eadc; }
.hostel-detail-list > div, .hostel-reservation-details > div { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.hostel-detail-list dt, .hostel-detail-list dd, .hostel-reservation-details dt, .hostel-reservation-details dd { margin: 0; font-size: .7rem; line-height: 1.3; }
.hostel-detail-list dt, .hostel-reservation-details dt { color: #648271; }
.hostel-detail-list dd, .hostel-reservation-details dd { overflow: hidden; color: #245238; font-weight: 760; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.hostel-help-note { display: flex; gap: .42rem; margin-top: .75rem; color: #527562; font-size: .7rem; line-height: 1.45; }
.hostel-help-note i { flex: 0 0 auto; color: #087542; }
.hostel-booking-copy { margin: 0 0 .85rem; color: #5e7c69; font-size: .8rem; line-height: 1.52; }
.hostel-availability-pill { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.75rem; padding: .25rem .48rem; border: 1px solid #b9dfc4; border-radius: 999px; background: #edf9f0; color: #097040; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.hostel-booking-form { display: grid; gap: .48rem; }
.hostel-booking-form > label, .hostel-form-grid label { color: #245139; font-size: .72rem; font-weight: 800; }
.hostel-booking-form select, .hostel-booking-form input { width: 100%; min-height: 2.72rem; border: 1px solid #b9dac3; border-radius: .58rem; background: #fbfffc; color: #244f35; font-size: .81rem; }
.hostel-booking-form select { padding: .45rem .68rem; }
.hostel-booking-form input { padding: .45rem .68rem; }
.hostel-booking-form select:focus, .hostel-booking-form input:focus { border-color: #238751; box-shadow: 0 0 0 .2rem rgba(22,130,69,.13); }
.hostel-form-grid { display: grid; gap: .55rem; margin-top: .2rem; }
.hostel-form-grid > div:first-child { display: grid; gap: .48rem; }
.hostel-bed-hint { display: flex; align-items: center; gap: .42rem; min-height: 2.72rem; padding: .56rem .65rem; border: 1px solid #d1e8d7; border-radius: .58rem; background: #f2faf4; color: #527563; font-size: .7rem; line-height: 1.35; }
.hostel-bed-hint i { color: #087542; }
.hostel-primary-action, .hostel-secondary-action { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; min-height: 2.85rem; margin-top: .35rem; padding: .55rem .78rem; border-radius: .58rem; font-size: .8rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.hostel-primary-action { width: 100%; border: 1px solid #08713e; background: linear-gradient(135deg, #087440, #149457); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 16px rgba(13,105,57,.17); color: #fff; }
.hostel-primary-action i:last-child { margin-left: auto; }
.hostel-primary-action:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 21px rgba(13,105,57,.24); }
.hostel-secondary-action { border: 1px solid #94cbaa; background: linear-gradient(145deg, #fff, #e9f7ed); box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(27,105,57,.08); color: #087243; }
.hostel-secondary-action:hover { transform: translateY(-1px); border-color: #228751; background: #e0f4e5; color: #075f34; }
.hostel-reservation-icon, .hostel-empty-icon { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin: .25rem 0 .75rem; border-radius: .9rem; background: #d8f2df; color: #087542; font-size: 1.45rem; }
.hostel-empty-icon { background: #edf6ef; color: #4e8a62; }
.hostel-reservation-details { display: grid; gap: .35rem; margin: .85rem 0 .2rem; padding: .78rem; border: 1px solid #d4e9d9; border-radius: .7rem; background: #f5fcf6; }
.hostel-reservation-details .status-badge { font-size: .56rem; }

.hostel-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.hostel-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.hostel-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.hostel-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.hostel-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.hostel-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.hostel-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.hostel-footer-links > span, .hostel-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.hostel-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.hostel-footer-links > span i { color: #0b7c46; }
.hostel-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.hostel-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }

@media (max-width: 22.5rem) {
    .hostel-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; }
    .hostel-brandbar { min-height: 3.2rem; gap: .45rem; padding: .28rem 0; }
    .hostel-brand { gap: .45rem; }
    .hostel-brand img { width: 2rem; height: 2rem; }
    .hostel-brand strong { max-width: 7.5rem; font-size: .76rem; }
    .hostel-brand small, .hostel-utility span { display: none; }
    .hostel-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .hostel-command-hero { padding: 1rem; border-radius: .82rem; }
    .hostel-command-hero h1 { font-size: 1.42rem; }
    .hostel-command-hero-copy > p:not(.hostel-eyebrow) { font-size: .81rem; }
    .hostel-information-panel, .hostel-booking-panel { padding: .8rem; border-radius: .8rem; }
    .hostel-panel-heading { align-items: flex-start; }
    .hostel-form-grid { grid-template-columns: 1fr; }
    .hostel-footer-links > span { border-right: 0; padding-right: 0; }
}
@media (min-width: 34rem) { .hostel-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 38rem) { .hostel-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .hostel-command-hero { padding: 1.55rem; } .hostel-form-grid { grid-template-columns: minmax(0, .8fr) minmax(0,1.2fr); align-items: end; } .hostel-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .hostel-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .hostel-command-hero { grid-template-columns: minmax(0,1fr) 16.25rem; align-items: end; } .hostel-command-state { grid-template-columns: 2.3rem minmax(0,1fr) auto; } .hostel-state-action { grid-column: auto; } .hostel-workspace { grid-template-columns: minmax(15rem,.72fr) minmax(0,1.28fr); align-items: start; } .hostel-information-panel, .hostel-booking-panel { margin-top: .9rem; } }
@media (min-width: 62rem) { .hostel-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } .hostel-information-panel { position: sticky; top: 1rem; } }
@media (prefers-reduced-motion: reduce) { .hostel-command-center *, .hostel-command-center *::before, .hostel-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.student-hostel-page { background: #fff !important; } .hostel-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; } .hostel-brandbar, .hostel-command-hero, .hostel-command-footer, .hostel-primary-action, .hostel-secondary-action { display: none !important; } .hostel-information-panel, .hostel-booking-panel { box-shadow: none; } }
/* School items: dashboard-aligned purchase workspace. */
body.student-items-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-items-page::before, body.student-items-page::after, body.student-items-page .portal-breadcrumbs, body.student-items-page .top-header, body.student-items-page .student-nav, body.student-items-page .portal-footer { display: none !important; }
.items-command-center { --items-ink: #123f27; --items-muted: #5d7d69; --items-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.items-command-center *, .items-command-center *::before, .items-command-center *::after { box-sizing: border-box; }
.items-command-center a { color: inherit; text-decoration: none; }
.items-command-center a:focus-visible, .items-command-center button:focus-visible, .items-command-center input:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.items-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 3.55rem; padding: .35rem .15rem .55rem; }
.items-brand { display: inline-flex; align-items: center; gap: .62rem; min-width: 0; }
.items-brand img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.items-brand > span { display: grid; min-width: 0; line-height: 1.08; }
.items-brand strong { overflow: hidden; max-width: 12rem; color: #155a37; font-size: .84rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.items-brand small { margin-top: .16rem; color: #578168; font-size: .68rem; font-weight: 650; }
.items-brand-actions { display: inline-flex; gap: .35rem; flex: 0 0 auto; }
.items-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.45rem; padding: .48rem .7rem; border: 1px solid #9cccae; border-radius: .48rem; background: linear-gradient(145deg, #fff, #e5f5e9); box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 10px rgba(31,112,64,.09); color: #17613a; font-size: .72rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.items-utility:hover { transform: translateY(-1px); border-color: #21824b; box-shadow: inset 0 1px 0 #fff, 0 8px 15px rgba(29,111,61,.16); color: #0c6737; }
.items-signout { border-color: #bad8c3; color: #2c7249; }

.items-command-hero { display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; position: relative; }
.items-command-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.items-command-hero-copy, .items-hero-action { min-width: 0; position: relative; z-index: 1; }
.items-eyebrow { display: flex; align-items: center; gap: .35rem; margin: 0 0 .38rem; color: #c6f3d5; font-size: .67rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.items-command-hero h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.items-command-hero-copy > p:not(.items-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.items-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .9rem; }
.items-context span { display: inline-flex; align-items: center; gap: .33rem; min-height: 1.85rem; padding: .33rem .55rem; border: 1px solid rgba(230,255,238,.22); border-radius: 999px; background: rgba(0,62,31,.2); color: #effff3; font-size: .69rem; font-weight: 670; line-height: 1.1; }
.items-context i { color: #b6f4c9; }
.items-hero-action { display: grid; grid-template-columns: 2.35rem minmax(0,1fr) .85rem; align-items: center; gap: .52rem; min-height: 4.05rem; padding: .6rem; border: 1px solid rgba(224,255,234,.28); border-radius: .76rem; background: rgba(0,63,31,.25); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.1); transition: transform .18s ease, background .18s ease; }
.items-hero-action:hover { transform: translateY(-2px); background: rgba(0,48,23,.35); color: #fff; }
.items-hero-action > span { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: .62rem; background: rgba(224,255,234,.15); color: #d9ffe5; font-size: 1rem; }
.items-hero-action strong { font-size: .78rem; font-weight: 800; }
.items-hero-action > .bi { color: #c9f7d6; font-size: .9rem; }

.items-page-content { margin-top: .9rem; }
.items-page-content > .alert { display: flex; align-items: center; gap: .45rem; border-radius: .68rem; font-size: .8rem; }
.items-page-content > .alert-info { border-color: #c7e6cf; background: #f0faf2; color: #28663f; }
.items-page-content > .alert-danger { border-color: #e5c6ca; background: #fff4f5; color: #8e3542; }
.items-summary-grid { display: grid; gap: .55rem; }
.items-summary-card { min-height: 7.1rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .9rem; background: linear-gradient(145deg, #fff, #f0faf2); box-shadow: 0 12px 25px rgba(25,93,54,.07); }
.items-summary-card > span:not(.items-summary-icon) { display: block; margin-top: .68rem; color: #61806d; font-size: .69rem; font-weight: 780; }
.items-summary-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .62rem; background: #d8f2df; color: #087542; font-size: .94rem; }
.items-summary-card:nth-child(2) .items-summary-icon { background: #e6f6e9; color: #378853; }
.items-summary-card:nth-child(3) .items-summary-icon { background: #ccefd6; color: #046d39; }
.items-summary-card strong { display: block; overflow: hidden; margin: .2rem 0; color: #164b2d; font-size: clamp(1.15rem, 5vw, 1.45rem); font-variant-numeric: tabular-nums; font-weight: 820; letter-spacing: -.04em; line-height: 1.08; text-overflow: ellipsis; white-space: nowrap; }
.items-summary-card small { color: #66816f; font-size: .66rem; font-weight: 650; }
.items-summary-primary { border-color: #117b47; background: linear-gradient(135deg, #07633a, #109254); box-shadow: 0 14px 28px rgba(13,105,57,.2); }
.items-summary-primary .items-summary-icon { background: rgba(255,255,255,.14); color: #e1ffea; }
.items-summary-primary > span:not(.items-summary-icon), .items-summary-primary strong, .items-summary-primary small { color: #f2fff5; }
.items-summary-primary > span:not(.items-summary-icon), .items-summary-primary small { color: #c9f3d5; }

.items-pending-panel { display: grid; gap: .65rem; margin-top: .9rem; padding: 1rem; border: 1px solid #bde4c7; border-radius: .9rem; background: linear-gradient(145deg, #fff, #f0faf2); box-shadow: 0 12px 25px rgba(25,93,54,.07); }
.items-pending-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .72rem; background: #d9f2df; color: #087542; font-size: 1.12rem; }
.items-pending-copy > span, .items-panel-heading > div > span { display: block; margin-bottom: .24rem; color: #087442; font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.items-pending-copy h2, .items-panel-heading h2 { margin: 0; color: #164a2d; font-size: 1.05rem; font-weight: 800; letter-spacing: -.03em; }
.items-pending-copy p { margin: .38rem 0 0; color: #587866; font-size: .76rem; line-height: 1.5; }
.items-pending-copy strong { color: #215337; }
.items-transfer-detail { padding: .56rem .65rem; border: 1px solid #d1e8d7; border-radius: .58rem; background: #f8fdf9; }
.items-transfer-detail i { margin-right: .28rem; color: #087542; }
.items-pending-actions { display: flex; flex-wrap: wrap; gap: .42rem; align-items: center; }
.items-pending-actions form { margin: 0; }
.items-primary-action, .items-secondary-action, .items-danger-action { display: inline-flex; align-items: center; justify-content: center; gap: .38rem; min-height: 2.72rem; padding: .5rem .7rem; border-radius: .58rem; font-size: .75rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.items-primary-action { border: 1px solid #08713e; background: linear-gradient(135deg, #087440, #149457); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 16px rgba(13,105,57,.17); color: #fff; }
.items-primary-action:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 21px rgba(13,105,57,.24); color: #fff; }
.items-secondary-action { border: 1px solid #94cbaa; background: linear-gradient(145deg, #fff, #e9f7ed); box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(27,105,57,.08); color: #087243; }
.items-danger-action { border: 1px solid #ddc6ca; background: #fff; color: #8d3c49; }
.items-secondary-action:hover, .items-danger-action:hover { transform: translateY(-1px); }

.items-workspace { display: grid; gap: .9rem; }
.items-catalog-panel, .items-history-panel { margin-top: .9rem; padding: 1rem; border: 1px solid #cce5d3; border-radius: .95rem; background: #fff; box-shadow: 0 15px 30px rgba(25,93,54,.08); }
.items-panel-heading { display: flex; align-items: end; justify-content: space-between; gap: .65rem; margin-bottom: .8rem; }
.items-availability-pill { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.75rem; padding: .25rem .48rem; border: 1px solid #b9dfc4; border-radius: 999px; background: #edf9f0; color: #097040; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.items-selection-row { display: grid; grid-template-columns: 2.3rem minmax(0,1fr) auto; align-items: center; gap: .55rem; min-width: 0; margin-bottom: .48rem; padding: .7rem; border: 1px solid #d8eadc; border-radius: .72rem; background: linear-gradient(145deg, #fff, #f5fcf6); cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.items-selection-row:hover { transform: translateY(-1px); border-color: #87c79e; box-shadow: 0 8px 17px rgba(23,96,52,.09); }
.items-selection-row.is-exam-fee { border-color: #bddfc6; background: linear-gradient(145deg, #fff, #ecf9ef); }
.items-check-wrap { display: grid; place-items: center; position: relative; width: 2.3rem; height: 2.3rem; }
.items-check-wrap input { position: absolute; width: 1.08rem; height: 1.08rem; margin: 0; opacity: 0; cursor: pointer; }
.items-item-icon { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .62rem; background: #dff3e5; color: #087542; font-size: .97rem; transition: background .18s ease, color .18s ease, transform .18s ease; }
.items-check-wrap input:checked + .items-item-icon { background: #087542; color: #fff; transform: scale(.94); }
.items-check-wrap input:focus-visible + .items-item-icon { outline: 3px solid #0b824a; outline-offset: 3px; }
.items-item-copy { display: grid; min-width: 0; }
.items-item-copy strong { overflow: hidden; color: #214f33; font-size: .78rem; font-weight: 790; text-overflow: ellipsis; white-space: nowrap; }
.items-item-copy small { overflow: hidden; margin-top: .16rem; color: #668573; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.items-item-price { display: grid; justify-items: end; gap: .16rem; min-width: 0; }
.items-item-price strong { color: #16502e; font-size: .76rem; font-variant-numeric: tabular-nums; font-weight: 800; white-space: nowrap; }
.items-item-price small { color: #6a8875; font-size: .58rem; font-weight: 720; white-space: nowrap; }
.items-checkout-summary { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: .75rem; padding: .74rem; border: 1px solid #c9e5d0; border-radius: .68rem; background: #eef9f0; }
.items-checkout-summary > span:first-child { display: grid; }
.items-checkout-summary small { color: #527563; font-size: .65rem; font-weight: 750; }
.items-checkout-summary strong { margin-top: .14rem; color: #12633a; font-size: 1.04rem; font-variant-numeric: tabular-nums; font-weight: 820; letter-spacing: -.03em; }
.items-checkout-note { display: inline-flex; align-items: center; gap: .3rem; color: #34744d; font-size: .62rem; font-weight: 730; text-align: right; }
.items-pay-action { width: 100%; margin-top: .72rem; }
.items-pay-action i:last-child { margin-left: auto; }
.items-payment-hint { margin: .48rem 0 0; color: #6a8875; font-size: .66rem; }
.items-inline-alert { margin: .72rem 0 0; border: 1px solid #c9e4cf; border-radius: .62rem; background: #f2faf4; color: #396e4a; font-size: .74rem; }
.items-empty-state { display: grid; justify-items: center; gap: .45rem; min-height: 9rem; padding: 1rem; border: 1px dashed #b8dcbf; border-radius: .76rem; background: #f5fcf6; color: #5d7c68; text-align: center; }
.items-empty-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .72rem; background: #dff3e5; color: #087542; font-size: 1.12rem; }
.items-empty-state strong { color: #205135; font-size: .8rem; }
.items-empty-state span:last-child { font-size: .7rem; line-height: 1.45; }
.items-history-list { display: grid; gap: .45rem; }
.items-history-entry { display: grid; grid-template-columns: 2.15rem minmax(0,1fr) 2rem; align-items: center; gap: .5rem; padding: .66rem; border: 1px solid #d8eadc; border-radius: .72rem; background: linear-gradient(145deg, #fff, #f5fcf6); }
.items-history-icon { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .62rem; background: #d2f0da; color: #087441; font-size: .95rem; }
.items-history-copy { display: grid; min-width: 0; }
.items-history-copy strong { overflow: hidden; color: #214f33; font-size: .73rem; font-weight: 790; text-overflow: ellipsis; white-space: nowrap; }
.items-history-copy small { overflow: hidden; margin-top: .16rem; color: #688573; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.items-history-copy .payment-status-badge { margin-top: .28rem; min-height: 1.4rem; padding-right: .4rem; font-size: .52rem; }
.items-history-copy .payment-status-icon { width: 1.02rem; height: 1.02rem; flex-basis: 1.02rem; font-size: .55rem; }
.items-receipt-action { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid #b6dfc0; border-radius: .48rem; background: #edf9f0; color: #087441; font-size: .82rem; }
.items-receipt-action:hover { border-color: #71b88a; background: #dff3e5; }
.items-history-empty { min-height: 10rem; }

.items-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.items-footer-brand { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.items-footer-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: .45rem; background: linear-gradient(145deg, #0a6e3e, #149356); box-shadow: 0 4px 9px rgba(13,105,57,.18); color: #fff; font-size: .94rem; }
.items-footer-brand > div { display: grid; min-width: 0; gap: .14rem; }
.items-footer-brand strong { overflow: hidden; color: #174d2e; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.items-footer-brand span { color: #648374; font-size: .63rem; font-weight: 650; }
.items-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.items-footer-links > span, .items-footer-links a { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.85rem; color: #4b735b; font-size: .64rem; font-weight: 720; }
.items-footer-links > span { padding-right: .65rem; border-right: 1px solid #cfe6d5; }
.items-footer-links > span i { color: #0b7c46; }
.items-footer-links a { padding: .28rem .46rem; border: 1px solid transparent; border-radius: .35rem; }
.items-footer-links a:hover { border-color: #a6d2b2; background: #f1fbf3; color: #086d3c; }

@media (max-width: 22.5rem) {
    .items-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; }
    .items-brandbar { min-height: 3.2rem; gap: .45rem; padding: .28rem 0; }
    .items-brand { gap: .45rem; }
    .items-brand img { width: 2rem; height: 2rem; }
    .items-brand strong { max-width: 7.5rem; font-size: .76rem; }
    .items-brand small, .items-utility span { display: none; }
    .items-utility { width: 2.35rem; min-height: 2.35rem; padding: 0; }
    .items-command-hero { padding: 1rem; border-radius: .82rem; }
    .items-command-hero h1 { font-size: 1.42rem; }
    .items-command-hero-copy > p:not(.items-eyebrow) { font-size: .81rem; }
    .items-pending-panel, .items-catalog-panel, .items-history-panel { padding: .8rem; border-radius: .8rem; }
    .items-pending-actions, .items-pending-actions form { width: 100%; }
    .items-pending-actions .items-primary-action, .items-pending-actions .items-secondary-action, .items-pending-actions .items-danger-action { width: 100%; }
    .items-selection-row { grid-template-columns: 2.1rem minmax(0,1fr); }
    .items-item-price { grid-column: 2; justify-items: start; display: flex; gap: .38rem; align-items: center; }
    .items-checkout-note { display: none; }
    .items-footer-links > span { border-right: 0; padding-right: 0; }
}
@media (min-width: 34rem) { .items-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 38rem) { .items-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .items-command-hero { padding: 1.55rem; } .items-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .items-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .items-command-hero { grid-template-columns: minmax(0,1fr) 12rem; align-items: end; } .items-workspace { grid-template-columns: minmax(0,1.32fr) minmax(15rem,.68fr); align-items: start; } .items-catalog-panel, .items-history-panel { margin-top: .9rem; } }
@media (min-width: 62rem) { .items-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } .items-history-panel { position: sticky; top: 1rem; } }
@media (prefers-reduced-motion: reduce) { .items-command-center *, .items-command-center *::before, .items-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.student-items-page { background: #fff !important; } .items-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; } .items-brandbar, .items-command-hero, .items-command-footer, .items-primary-action, .items-secondary-action, .items-danger-action { display: none !important; } .items-catalog-panel, .items-history-panel { box-shadow: none; } }
/* Practical / IT posting workspace */
body.practical-posting-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.practical-posting-page::before, body.practical-posting-page::after, body.practical-posting-page .portal-breadcrumbs, body.practical-posting-page .top-header, body.practical-posting-page .student-nav, body.practical-posting-page .portal-footer { display: none !important; }
.practical-command-center { --practical-ink: #123f27; --practical-muted: #5d7d69; --practical-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.practical-command-center *, .practical-command-center *::before, .practical-command-center *::after { box-sizing: border-box; }
.practical-command-center a { color: inherit; text-decoration: none; }
.practical-command-center a:focus-visible, .practical-command-center button:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.practical-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 2.6rem; padding: 0 .15rem .85rem; }
.practical-brand { display: inline-flex; align-items: center; min-width: 0; gap: .58rem; color: var(--practical-ink); }
.practical-brand img { width: 2.15rem; height: 2.15rem; padding: .16rem; flex: 0 0 auto; border: 1px solid #b6ddc1; border-radius: .58rem; background: #fff; object-fit: contain; }
.practical-brand span { display: grid; min-width: 0; gap: .02rem; }
.practical-brand strong { overflow: hidden; color: var(--practical-ink); font-size: .8rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.practical-brand small { color: #62906f; font-size: .64rem; font-weight: 700; }
.practical-brand-actions, .practical-toolbar-actions, .practical-gate-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .42rem; }
.practical-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.2rem; padding: .42rem .55rem; border: 1px solid #c6e4ce; border-radius: .55rem; background: #fff; color: #256340 !important; font-size: .7rem; font-weight: 750; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.practical-utility:hover { border-color: #6fb184; background: #effaf1; color: #075f35 !important; transform: translateY(-1px); }
.practical-utility i { font-size: .9rem; }
.practical-signout { border-color: #f1c9c4; color: #a23c32 !important; }
.practical-signout:hover { border-color: #dc8981; background: #fff4f2; color: #8a261e !important; }
.practical-command-hero { position: relative; display: grid; gap: 1rem; overflow: hidden; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; }
.practical-command-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.practical-command-hero-copy, .practical-hero-action { position: relative; z-index: 1; min-width: 0; }
.practical-eyebrow { display: inline-flex; align-items: center; gap: .38rem; margin: 0; color: #aaf2c1; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.practical-command-hero h1, .practical-gate-panel h1 { margin: .46rem 0 0; color: #fff; font-size: clamp(1.5rem, 7vw, 2.3rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.practical-command-hero-copy > p:not(.practical-eyebrow) { max-width: 42rem; margin: .65rem 0 0; color: rgba(244,255,247,.86); font-size: .88rem; line-height: 1.58; }
.practical-context { display: flex; flex-wrap: wrap; gap: .42rem; margin-top: .95rem; }
.practical-context span { display: inline-flex; align-items: center; gap: .32rem; min-width: 0; padding: .34rem .5rem; border: 1px solid rgba(225,255,232,.26); border-radius: 999px; background: rgba(0,58,31,.2); color: #e9fff0; font-size: .66rem; font-weight: 730; }
.practical-context i { color: #aaf2c1; }
.practical-hero-action { display: inline-flex; align-items: center; justify-content: space-between; gap: .6rem; align-self: end; min-height: 3rem; padding: .7rem .78rem; border: 1px solid rgba(255,255,255,.2); border-radius: .82rem; background: rgba(255,255,255,.12); color: #fff !important; font-size: .77rem; font-weight: 800; transition: background-color .18s ease, transform .18s ease; }
.practical-hero-action:hover { background: rgba(255,255,255,.2); transform: translateY(-2px); }
.practical-hero-action > span { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: .55rem; background: #effff3; color: #087342; }
.practical-document-toolbar { display: grid; gap: 1rem; margin-top: .9rem; padding: 1rem; border: 1px solid #cae5d1; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgba(20,90,50,.07); }
.practical-toolbar-label { display: inline-flex; align-items: center; gap: .38rem; color: #127744; font-size: .66rem; font-weight: 850; letter-spacing: .095em; text-transform: uppercase; }
.practical-document-toolbar h2 { margin: .3rem 0 0; color: var(--practical-ink); font-size: 1.02rem; font-weight: 800; letter-spacing: -.025em; }
.practical-document-toolbar p { max-width: 42rem; margin: .34rem 0 0; color: var(--practical-muted); font-size: .77rem; line-height: 1.55; }
.practical-primary-action, .practical-secondary-action { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; min-height: 2.48rem; padding: .56rem .76rem; border: 1px solid transparent; border-radius: .63rem; cursor: pointer; font: inherit; font-size: .73rem; font-weight: 800; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.practical-primary-action { background: linear-gradient(135deg, #08733f, #149553); box-shadow: 0 8px 18px rgba(8,119,63,.19); color: #fff !important; }
.practical-primary-action:hover { background: linear-gradient(135deg, #056636, #0d8748); box-shadow: 0 11px 21px rgba(8,119,63,.25); color: #fff !important; transform: translateY(-1px); }
.practical-secondary-action { border-color: #b8ddc2; background: #f4fbf5; color: #17643a !important; }
.practical-secondary-action:hover { border-color: #73b588; background: #eaf8ed; color: #075b32 !important; transform: translateY(-1px); }
.practical-letter-workspace { display: grid; gap: 1rem; margin-top: .9rem; padding: .65rem; border: 1px solid #cce5d3; border-radius: 1rem; background: linear-gradient(145deg, #e5f4e8, #f7fcf8); }
.practical-posting-page .practical-letter-workspace .page { width: min(100%, 52.5rem); min-height: 0; margin: 0 auto; padding: clamp(1rem, 4vw, 2.2rem); overflow: hidden; border: 1px solid #d2e4d6; border-top: 5px solid #16834c; border-radius: .28rem; background: #fff; box-shadow: 0 14px 30px rgba(18,67,38,.12); color: #162b1d; font-size: clamp(.76rem, 2.7vw, .9rem); line-height: 1.55; }
.practical-posting-page .practical-letter-workspace .page::before { width: 18rem; height: 18rem; opacity: .035; }
.practical-posting-page .practical-letter-workspace .content { position: relative; z-index: 2; }
.practical-posting-page .modern-header { grid-template-columns: 3.55rem minmax(0,1fr); gap: .7rem; padding: .75rem .85rem; border: 1px solid #88c79a; border-left: 5px solid #0e7c43; background: linear-gradient(135deg, #f7fff9, #e7f7eb); }
.practical-posting-page .modern-logo-wrap { width: 3.15rem; height: 3.15rem; border-color: #8bc99d; border-radius: .65rem; }
.practical-posting-page .logo { max-width: 2.65rem; max-height: 2.65rem; }
.practical-posting-page .modern-title h2 { color: #0a6035; font-size: clamp(.83rem, 3.3vw, 1.1rem); letter-spacing: .01em; white-space: normal; }
.practical-posting-page .modern-title h3 { color: #31553d; font-size: clamp(.65rem, 2.6vw, .76rem); }
.practical-posting-page .modern-title .doc-name { border-radius: .42rem; background: #0c793f; font-size: clamp(.61rem, 2.45vw, .72rem); }
.practical-posting-page .modern-title .doc-meta { color: #416a4d; font-size: clamp(.59rem, 2.25vw, .69rem); }
.practical-posting-page .meta { gap: .6rem; margin: .85rem 0 .65rem; color: #365a42; font-size: clamp(.66rem, 2.5vw, .78rem); }
.practical-posting-page .title { margin: .9rem 0 .75rem; padding: .48rem .65rem; border-color: #0d783f; background: #0c793f; font-size: clamp(.65rem, 2.5vw, .78rem); }
.practical-posting-page .info-box { padding: .75rem .8rem; border-color: #bfdcc6; border-left-color: #16854b; border-radius: .48rem; background: #f5fbf6; color: #264d32; font-size: clamp(.67rem, 2.6vw, .79rem); line-height: 1.55; }
.practical-posting-page .status-empty { border-left-color: #c34a40; background: #fff5f3; color: #852d26; }
.practical-posting-page .letter-body { margin-top: .8rem; font-size: inherit; }
.practical-posting-page .letter-body p { margin: .7rem 0; }
.practical-posting-page .acceptance-lines { overflow-wrap: anywhere; }
.practical-posting-page .acceptance-lines p { font-size: inherit; line-height: 1.9; }
.practical-posting-page .signature { margin-top: 2.2rem; gap: 1.4rem; font-size: clamp(.65rem, 2.5vw, .78rem); }
.practical-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.practical-footer-brand { display: inline-flex; align-items: center; gap: .55rem; }
.practical-footer-mark { display: grid; width: 1.85rem; height: 1.85rem; place-items: center; border-radius: .55rem; background: #e6f7e9; color: #09733e; }
.practical-footer-brand div { display: grid; gap: .07rem; }
.practical-footer-brand strong { color: #255f3a; font-size: .7rem; }
.practical-footer-brand span:not(.practical-footer-mark) { font-size: .64rem; }
.practical-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; color: #5b8066; font-size: .65rem; font-weight: 700; }
.practical-footer-links a { color: #1b7442; }
.practical-footer-links a:hover { color: #075d33; text-decoration: underline; }
.practical-access-gate { display: flex; flex-direction: column; min-height: min(42rem, calc(100vh - 1.6rem)); }
.practical-gate-panel { position: relative; display: grid; justify-items: start; gap: .9rem; max-width: 44rem; margin: auto; padding: clamp(1.3rem, 7vw, 3.2rem); border: 1px solid #baddc3; border-radius: 1.15rem; background: radial-gradient(circle at 92% 8%, #e4f8e9 0, transparent 32%), #fff; box-shadow: 0 18px 40px rgba(18,78,42,.12); }
.practical-gate-icon { display: grid; width: 3.35rem; height: 3.35rem; place-items: center; border: 1px solid #bde6c6; border-radius: 1rem; background: #e9f8ec; color: #08723e; font-size: 1.35rem; }
.practical-gate-panel h1 { color: var(--practical-ink); font-size: clamp(1.45rem, 6vw, 2.2rem); }
.practical-gate-panel > p:not(.practical-eyebrow) { max-width: 37rem; margin: -.35rem 0 0; color: var(--practical-muted); font-size: .88rem; line-height: 1.65; }
.practical-access-gate .practical-command-footer { margin-top: auto; }
@media (max-width: 22.5rem) { .practical-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; } .practical-brandbar { gap: .35rem; } .practical-brand strong { max-width: 8.2rem; } .practical-utility { min-width: 2.15rem; padding: .42rem; } .practical-utility span { display: none; } .practical-command-hero { padding: 1rem; border-radius: .82rem; } .practical-command-hero h1 { font-size: 1.42rem; } .practical-command-hero-copy > p:not(.practical-eyebrow) { font-size: .81rem; } .practical-document-toolbar { padding: .82rem; border-radius: .8rem; } .practical-primary-action, .practical-secondary-action { width: 100%; } .practical-toolbar-actions, .practical-gate-actions { width: 100%; } .practical-letter-workspace { padding: .32rem; border-radius: .72rem; } .practical-posting-page .practical-letter-workspace .page { padding: .82rem; } .practical-posting-page .modern-header { grid-template-columns: 2.7rem minmax(0,1fr); padding: .6rem; } .practical-posting-page .modern-logo-wrap { width: 2.45rem; height: 2.45rem; } .practical-posting-page .logo { max-width: 2rem; max-height: 2rem; } .practical-posting-page .signature { grid-template-columns: 1fr; gap: 1.5rem; } }
@media (min-width: 38rem) { .practical-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .practical-command-hero { padding: 1.55rem; } .practical-document-toolbar { grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 1.15rem; } .practical-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .practical-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .practical-command-hero { grid-template-columns: minmax(0,1fr) 12rem; align-items: end; } .practical-hero-action { min-height: 4.3rem; } .practical-letter-workspace { padding: 1rem; } .practical-posting-page .practical-letter-workspace .page { padding: 2.35rem; } }
@media (min-width: 62rem) { .practical-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } .practical-letter-workspace { padding: 1.5rem; } }
@media (prefers-reduced-motion: reduce) { .practical-command-center *, .practical-command-center *::before, .practical-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.practical-posting-page { background: #fff !important; } .practical-command-center { width: 100%; margin: 0; padding: 0; border: 0; background: #fff; box-shadow: none; } .practical-brandbar, .practical-command-hero, .practical-document-toolbar, .practical-command-footer { display: none !important; } .practical-letter-workspace { display: block; margin: 0; padding: 0; border: 0; background: #fff; } .practical-posting-page .practical-letter-workspace .page { width: 194mm !important; min-height: 281mm !important; margin: 0 auto !important; padding: 9mm !important; border: 0 !important; border-top: 0 !important; border-radius: 0 !important; box-shadow: none !important; font-size: 11px !important; line-height: 1.36 !important; page-break-after: always; } .practical-posting-page .practical-letter-workspace .page:last-child { page-break-after: auto; } .practical-posting-page .practical-letter-workspace .page-break { page-break-before: always; } }
/* Student profile workspace */
body.student-profile-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-profile-page::before, body.student-profile-page::after, body.student-profile-page .portal-breadcrumbs, body.student-profile-page .top-header, body.student-profile-page .student-nav, body.student-profile-page .portal-footer { display: none !important; }
.profile-command-center { --profile-ink: #123f27; --profile-muted: #5d7d69; --profile-line: #cce5d3; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.profile-command-center *, .profile-command-center *::before, .profile-command-center *::after { box-sizing: border-box; }
.profile-command-center a { color: inherit; text-decoration: none; }
.profile-command-center a:focus-visible, .profile-command-center button:focus-visible, .profile-command-center input:focus-visible, .profile-command-center select:focus-visible, .profile-command-center textarea:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.profile-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 2.6rem; padding: 0 .15rem .85rem; }
.profile-brand { display: inline-flex; align-items: center; min-width: 0; gap: .58rem; color: var(--profile-ink); }
.profile-brand img { width: 2.15rem; height: 2.15rem; padding: .16rem; flex: 0 0 auto; border: 1px solid #b6ddc1; border-radius: .58rem; background: #fff; object-fit: contain; }
.profile-brand span { display: grid; min-width: 0; gap: .02rem; }
.profile-brand strong { overflow: hidden; color: var(--profile-ink); font-size: .8rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.profile-brand small { color: #62906f; font-size: .64rem; font-weight: 700; }
.profile-brand-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .42rem; }
.profile-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.2rem; padding: .42rem .55rem; border: 1px solid #c6e4ce; border-radius: .55rem; background: #fff; color: #256340 !important; font-size: .7rem; font-weight: 750; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.profile-utility:hover { border-color: #6fb184; background: #effaf1; color: #075f35 !important; transform: translateY(-1px); }
.profile-utility i { font-size: .9rem; }
.profile-signout { border-color: #f1c9c4; color: #a23c32 !important; }
.profile-signout:hover { border-color: #dc8981; background: #fff4f2; color: #8a261e !important; }
.profile-command-center .profile-shell { max-width: none; margin: 0; font-size: .9rem; }
.profile-command-center .profile-hero { position: relative; display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 0 0 .9rem !important; padding: 1.2rem; overflow: hidden; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); }
.profile-command-center .profile-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.profile-command-center .profile-hero-main, .profile-command-center .profile-hero-side { position: relative; z-index: 1; }
.profile-command-center .profile-hero-main { align-items: flex-start; gap: .85rem; }
.profile-command-center .profile-avatar { width: 4.6rem; height: 4.6rem; flex: 0 0 auto; padding: .16rem; border: 2px solid rgba(255,255,255,.8); border-radius: 1rem; box-shadow: 0 10px 20px rgba(3,60,31,.22); }
.profile-command-center .profile-kicker { padding: .31rem .56rem; border: 1px solid rgba(225,255,232,.25); border-radius: 999px; background: rgba(0,58,31,.2); color: #aaf2c1; font-size: .63rem; letter-spacing: .09em; }
.profile-command-center .profile-hero h1 { margin: .48rem 0 .3rem; color: #fff; font-size: clamp(1.35rem, 6vw, 2.15rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.06; }
.profile-command-center .profile-hero p { color: rgba(244,255,247,.86); font-size: .78rem; line-height: 1.55; }
.profile-command-center .profile-chips { gap: .38rem; margin-top: .7rem; }
.profile-command-center .profile-chips span, .profile-command-center .profile-metric { padding: .34rem .5rem; border: 1px solid rgba(225,255,232,.24); border-radius: .54rem; background: rgba(0,58,31,.2); color: #e9fff0; font-size: .65rem; }
.profile-command-center .profile-hero-side { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .48rem; }
.profile-command-center .profile-metric { justify-content: space-between; min-width: 0; padding: .62rem; }
.profile-command-center .profile-metric small { color: rgba(225,255,232,.7); font-size: .57rem; }
.profile-command-center .profile-metric strong { overflow: hidden; color: #fff; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.profile-command-center .profile-metric > i { color: #aaf2c1; }
.profile-command-center .row { --bs-gutter-x: .75rem; --bs-gutter-y: .75rem; }
.profile-command-center .profile-card, .profile-command-center .profile-side-card { border: 1px solid #c8e3cf; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgba(20,90,50,.07); }
.profile-command-center .profile-card .card-body, .profile-command-center .profile-side-card .card-body { padding: .95rem; }
.profile-command-center .profile-section-title { align-items: flex-start; margin-bottom: .8rem; padding-bottom: .64rem; border-bottom-color: #d5eadb; }
.profile-command-center .profile-section-title h2, .profile-command-center .profile-section-title h3, .profile-command-center .profile-section-title h4 { color: var(--profile-ink); font-size: .88rem; }
.profile-command-center .profile-section-title span { color: #698775; font-size: .64rem; }
.profile-command-center .profile-section-badge { flex: 0 0 auto; margin: 0; border: 1px solid #bce4c5; border-radius: .52rem; background: #edf9f0; color: #0c713d; }
.profile-command-center .profile-field .form-control, .profile-command-center .profile-field select, .profile-command-center .profile-field textarea { border: 1px solid #bfdcc7; border-radius: .62rem; background: #fbfefb; color: #193c28; box-shadow: none; font-size: .82rem; }
.profile-command-center .profile-field .form-control:hover, .profile-command-center .profile-field select:hover, .profile-command-center .profile-field textarea:hover { border-color: #7dbe90; background: #fff; }
.profile-command-center .profile-field .form-control:focus, .profile-command-center .profile-field select:focus, .profile-command-center .profile-field textarea:focus { border-color: #118147; background: #fff; box-shadow: 0 0 0 .2rem rgba(17,129,71,.14); }
.profile-command-center .profile-field .form-floating > label { color: #587566; font-size: .75rem; }
.profile-command-center .form-floating > .bi { color: #078042; }
.profile-command-center .form-floating .password-toggle { border: 1px solid #c7e3ce; background: #effaf1; color: #087640; }
.profile-command-center .form-floating .password-toggle:hover { border-color: #79b88a; background: #e2f5e7; }
.profile-command-center .profile-note { border: 1px solid #c7e5ce; border-radius: .62rem; background: #f0faf2; color: #49705a; }
.profile-command-center .profile-detail-grid { gap: .48rem; }
.profile-command-center .profile-detail-tile { padding: .62rem; border-color: #d3e7d8; border-radius: .62rem; background: linear-gradient(180deg, #fff, #f4fbf5); }
.profile-command-center .profile-detail-tile small { color: #5c8068; }
.profile-command-center .profile-detail-tile div { color: #1f4730; font-size: .76rem; }
.profile-command-center .profile-primary-action { min-height: 2.52rem; padding: .56rem .82rem !important; border: 1px solid transparent; border-radius: .63rem; background: linear-gradient(135deg, #08733f, #149553); box-shadow: 0 8px 18px rgba(8,119,63,.19); color: #fff !important; font-size: .75rem; font-weight: 800; transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.profile-command-center .profile-primary-action:hover { background: linear-gradient(135deg, #056636, #0d8748); box-shadow: 0 11px 21px rgba(8,119,63,.25); transform: translateY(-1px); }
.profile-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.profile-footer-brand { display: inline-flex; align-items: center; gap: .55rem; }
.profile-footer-mark { display: grid; width: 1.85rem; height: 1.85rem; place-items: center; border-radius: .55rem; background: #e6f7e9; color: #09733e; }
.profile-footer-brand div { display: grid; gap: .07rem; }
.profile-footer-brand strong { color: #255f3a; font-size: .7rem; }
.profile-footer-brand span:not(.profile-footer-mark) { font-size: .64rem; }
.profile-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; color: #5b8066; font-size: .65rem; font-weight: 700; }
.profile-footer-links a { color: #1b7442; }
.profile-footer-links a:hover { color: #075d33; text-decoration: underline; }
@media (max-width: 22.5rem) { .profile-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; } .profile-brandbar { gap: .35rem; } .profile-brand strong { max-width: 8.2rem; } .profile-utility { min-width: 2.15rem; padding: .42rem; } .profile-utility span { display: none; } .profile-command-center .profile-hero { padding: 1rem; border-radius: .82rem; } .profile-command-center .profile-avatar { width: 3.8rem; height: 3.8rem; border-radius: .85rem; } .profile-command-center .profile-hero h1 { font-size: 1.35rem; } .profile-command-center .profile-hero p { font-size: .73rem; } .profile-command-center .profile-hero-side { grid-template-columns: 1fr; } .profile-command-center .profile-card .card-body, .profile-command-center .profile-side-card .card-body { padding: .78rem; } .profile-command-center .profile-section-title { flex-direction: column; gap: .38rem; } .profile-command-center .profile-section-badge { align-self: flex-start; } .profile-command-center .profile-detail-grid { grid-template-columns: 1fr; } }
@media (min-width: 38rem) { .profile-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .profile-command-center .profile-hero { padding: 1.55rem; } .profile-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .profile-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .profile-command-center .profile-hero { grid-template-columns: minmax(0,1fr) 16rem; align-items: end; } .profile-command-center .profile-hero-side { grid-template-columns: 1fr; } .profile-command-center .profile-card .card-body, .profile-command-center .profile-side-card .card-body { padding: 1.1rem; } }
@media (min-width: 62rem) { .profile-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } }
@media (prefers-reduced-motion: reduce) { .profile-command-center *, .profile-command-center *::before, .profile-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
@media print { body.student-profile-page { background: #fff !important; } .profile-command-center { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; } .profile-brandbar, .profile-command-footer, .profile-command-center .profile-hero, .profile-command-center .profile-primary-action, .profile-command-center .password-toggle { display: none !important; } .profile-command-center .profile-card, .profile-command-center .profile-side-card { box-shadow: none; } }
/* Remaining student service workspaces */
body.student-module-page { background: #edf7ef !important; background-image: none !important; color: #123a28; }
body.student-module-page::before, body.student-module-page::after, body.student-module-page .portal-breadcrumbs, body.student-module-page .top-header, body.student-module-page .student-nav, body.student-module-page .portal-footer { display: none !important; }
.student-module-command-center { --module-ink: #123f27; --module-muted: #5d7d69; width: min(calc(100% - 1rem), 76rem); margin: .8rem auto; padding: .9rem; border: 2px solid #2c8b54; border-radius: .3rem; background: rgba(255,255,255,.74); box-shadow: 0 22px 50px rgba(23,93,52,.12); }
.student-module-command-center *, .student-module-command-center *::before, .student-module-command-center *::after { box-sizing: border-box; }
.student-module-command-center a { color: inherit; text-decoration: none; }
.student-module-command-center a:focus-visible, .student-module-command-center button:focus-visible, .student-module-command-center input:focus-visible, .student-module-command-center select:focus-visible, .student-module-command-center textarea:focus-visible { outline: 3px solid #0b824a; outline-offset: 3px; }
.student-module-brandbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 2.6rem; padding: 0 .15rem .85rem; }
.student-module-brand { display: inline-flex; align-items: center; min-width: 0; gap: .58rem; color: var(--module-ink); }
.student-module-brand img { width: 2.15rem; height: 2.15rem; padding: .16rem; flex: 0 0 auto; border: 1px solid #b6ddc1; border-radius: .58rem; background: #fff; object-fit: contain; }
.student-module-brand span { display: grid; min-width: 0; gap: .02rem; }
.student-module-brand strong { overflow: hidden; color: var(--module-ink); font-size: .8rem; font-weight: 800; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
.student-module-brand small { color: #62906f; font-size: .64rem; font-weight: 700; }
.student-module-brand-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .42rem; }
.student-module-utility { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.2rem; padding: .42rem .55rem; border: 1px solid #c6e4ce; border-radius: .55rem; background: #fff; color: #256340 !important; font-size: .7rem; font-weight: 750; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.student-module-utility:hover { border-color: #6fb184; background: #effaf1; color: #075f35 !important; transform: translateY(-1px); }
.student-module-utility i { font-size: .9rem; }
.student-module-signout { border-color: #f1c9c4; color: #a23c32 !important; }
.student-module-signout:hover { border-color: #dc8981; background: #fff4f2; color: #8a261e !important; }
.student-module-command-center .student-experience-shell { width: 100%; max-width: none; margin: 0; padding: 0; }
.student-module-command-center .experience-hero { position: relative; display: grid; gap: 1rem; overflow: hidden; margin-bottom: .9rem; padding: 1.2rem; border: 0; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; }
.student-module-command-center .experience-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.student-module-command-center .experience-hero > * { position: relative; z-index: 1; }
.student-module-command-center .experience-eyebrow { color: #aaf2c1; font-size: .67rem; font-weight: 850; letter-spacing: .1em; }
.student-module-command-center .experience-hero h1 { margin-top: .42rem; color: #fff; font-size: clamp(1.4rem, 6vw, 2.2rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.08; }
.student-module-command-center .experience-hero p { color: rgba(244,255,247,.86); font-size: .84rem; line-height: 1.58; }
.student-module-command-center .experience-hero .btn, .student-module-command-center .experience-form .btn { min-height: 2.45rem; border: 1px solid transparent; border-radius: .63rem; background: linear-gradient(135deg, #08733f, #149553); box-shadow: 0 8px 18px rgba(8,119,63,.19); color: #fff; font-size: .74rem; font-weight: 800; }
.student-module-command-center .experience-hero .btn:hover, .student-module-command-center .experience-form .btn:hover { background: linear-gradient(135deg, #056636, #0d8748); color: #fff; transform: translateY(-1px); }
.student-module-command-center .experience-panel, .student-module-command-center .notification-item { border: 1px solid #c8e3cf; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgba(20,90,50,.07); }
.student-module-command-center .experience-panel { padding: .95rem; }
.student-module-command-center .experience-panel-heading { padding-bottom: .65rem; border-bottom-color: #d5eadb; }
.student-module-command-center .experience-panel-heading h2, .student-module-command-center .notification-item h2 { color: var(--module-ink); font-size: .9rem; }
.student-module-command-center .experience-panel-heading span { color: #61816c; }
.student-module-command-center .experience-form input, .student-module-command-center .experience-form select, .student-module-command-center .experience-form textarea { border: 1px solid #bfdcc7; border-radius: .62rem; background: #fbfefb; color: #193c28; box-shadow: none; }
.student-module-command-center .experience-form input:focus, .student-module-command-center .experience-form select:focus, .student-module-command-center .experience-form textarea:focus { border-color: #118147; background: #fff; box-shadow: 0 0 0 .2rem rgba(17,129,71,.14); }
.student-module-command-center .notification-stream { gap: .65rem; }
.student-module-command-center .notification-item { padding: .85rem; }
.student-module-command-center .notification-item.is-unread { border-left-color: #138449; }
.student-module-command-center .notification-item-link { color: #08733f; }
.student-module-command-center .ticket-list-item { border-color: #d0e7d6; border-radius: .62rem; }
.student-module-command-center .ticket-list-item:hover, .student-module-command-center .ticket-list-item.is-active { border-color: #78ba8c; background: #f1faf3; }
.student-module-command-center .wallet-progress { background: #dcefe0; }
.student-module-command-center .wallet-progress > span { background: linear-gradient(90deg, #08733f, #28aa64); }
.student-module-command-center .alert { border-radius: .72rem; }
.student-module-command-footer { display: flex; flex-direction: column; gap: .8rem; margin: 1rem .25rem .1rem; padding: .9rem 0 .15rem; border-top: 1px solid #b9ddc3; color: #47745a; }
.student-module-footer-brand { display: inline-flex; align-items: center; gap: .55rem; }
.student-module-footer-mark { display: grid; width: 1.85rem; height: 1.85rem; place-items: center; border-radius: .55rem; background: #e6f7e9; color: #09733e; }
.student-module-footer-brand div { display: grid; gap: .07rem; }
.student-module-footer-brand strong { color: #255f3a; font-size: .7rem; }
.student-module-footer-brand span:not(.student-module-footer-mark) { font-size: .64rem; }
.student-module-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; color: #5b8066; font-size: .65rem; font-weight: 700; }
.student-module-footer-links a { color: #1b7442; }
.student-module-footer-links a:hover { color: #075d33; text-decoration: underline; }
@media (max-width: 22.5rem) { .student-module-command-center { width: calc(100% - .5rem); margin: .25rem auto; padding: .65rem .6rem 1.2rem; border-width: 1px; } .student-module-brandbar { gap: .35rem; } .student-module-brand strong { max-width: 8.2rem; } .student-module-utility { min-width: 2.15rem; padding: .42rem; } .student-module-utility span { display: none; } .student-module-command-center .experience-hero { padding: 1rem; border-radius: .82rem; } .student-module-command-center .experience-hero h1 { font-size: 1.38rem; } .student-module-command-center .experience-hero p { font-size: .78rem; } .student-module-command-center .experience-panel { padding: .8rem; } }
@media (min-width: 38rem) { .student-module-command-center { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; } .student-module-command-center .experience-hero { padding: 1.55rem; } .student-module-command-footer { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; } .student-module-footer-links { justify-content: flex-end; } }
@media (min-width: 48rem) { .student-module-command-center .experience-hero { grid-template-columns: minmax(0,1fr) auto; align-items: end; } .student-module-command-center .experience-panel { padding: 1.1rem; } }
@media (min-width: 62rem) { .student-module-command-center { margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.45rem; } }
@media (prefers-reduced-motion: reduce) { .student-module-command-center *, .student-module-command-center *::before, .student-module-command-center *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }.student-module-page-hero { position: relative; display: grid; gap: 1rem; overflow: hidden; margin-bottom: .9rem; padding: 1.2rem; border-radius: 1.05rem; background: linear-gradient(129deg, #075a32 0%, #087b44 58%, #14965a 135%); box-shadow: 0 18px 32px rgba(15,100,55,.24); color: #fff; }
.student-module-page-hero::after { position: absolute; right: -4rem; bottom: -5.8rem; width: 13rem; height: 13rem; border: 1.25rem solid rgba(255,255,255,.09); border-radius: 50%; content: ""; pointer-events: none; }
.student-module-page-hero > * { position: relative; z-index: 1; }
.student-module-eyebrow { display: inline-flex; align-items: center; gap: .38rem; margin: 0; color: #aaf2c1; font-size: .67rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.student-module-page-hero h1 { margin: .46rem 0 0; color: #fff; font-size: clamp(1.4rem, 6vw, 2.2rem); font-weight: 790; letter-spacing: -.045em; line-height: 1.08; }
.student-module-page-hero p:not(.student-module-eyebrow) { max-width: 42rem; margin: .6rem 0 0; color: rgba(244,255,247,.86); font-size: .84rem; line-height: 1.58; }
.student-module-primary-action, .student-module-secondary-action { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; min-height: 2.45rem; padding: .56rem .76rem; border: 1px solid transparent; border-radius: .63rem; font-size: .73rem; font-weight: 800; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.student-module-primary-action { align-self: end; background: #fff; color: #08733f !important; box-shadow: 0 8px 18px rgba(3,60,31,.14); }
.student-module-primary-action:hover { background: #effff3; color: #056636 !important; transform: translateY(-1px); }
.student-module-secondary-action { border-color: #b8ddc2; background: #f4fbf5; color: #17643a !important; }
.student-module-secondary-action:hover { border-color: #73b588; background: #eaf8ed; color: #075b32 !important; transform: translateY(-1px); }
.student-module-table-panel { padding: .95rem; border: 1px solid #c8e3cf; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgba(20,90,50,.07); }
.student-module-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; margin-bottom: .8rem; padding-bottom: .65rem; border-bottom: 1px solid #d5eadb; }
.student-module-panel-heading span:not(.status-badge) { color: #61816c; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.student-module-panel-heading h2 { margin: .18rem 0 0; color: #123f27; font-size: .94rem; font-weight: 800; }
.student-module-table { min-width: 45rem; margin: 0; --bs-table-bg: transparent; --bs-table-hover-bg: #f1faf3; --bs-table-border-color: #d6e9da; }
.student-module-table thead th { border-bottom-width: 1px; background: #eef9f0; color: #346143; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.student-module-table td, .student-module-table th { padding: .7rem .62rem; vertical-align: middle; }
.student-module-table td { color: #285139; font-size: .78rem; }
@media (max-width: 22.5rem) { .student-module-page-hero { padding: 1rem; border-radius: .82rem; } .student-module-page-hero h1 { font-size: 1.38rem; } .student-module-primary-action { width: 100%; } .student-module-table-panel { padding: .8rem; } }
@media (min-width: 48rem) { .student-module-page-hero { grid-template-columns: minmax(0,1fr) auto; align-items: end; } .student-module-table-panel { padding: 1.1rem; } }.exam-card-workspace .exam-card-command-center, .exam-results-workspace .exam-results-command-center { max-width: 76rem; }
.exam-card-workspace .exam-card-print { width: min(100%, 194mm); max-width: 194mm; margin: 0 auto 1rem; }
.exam-results-workspace .toolbar { width: min(100%, 194mm); margin: .9rem auto; }
.exam-results-workspace .filter-card { border: 1px solid #c8e3cf; border-radius: 1rem; box-shadow: 0 10px 24px rgba(20,90,50,.07); }
.exam-results-workspace .result-slip { width: min(100%, 194mm); max-width: 194mm; margin: 0 auto 1rem; }
@media (max-width: 48rem) { .exam-card-workspace .exam-card-print { width: 100%; min-height: 0; height: auto; } .exam-results-workspace .result-slip { width: 100%; min-height: 0; height: auto; } }
@media print { .exam-card-workspace .student-module-command-center, .exam-results-workspace .student-module-command-center { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: #fff; box-shadow: none; } .exam-card-workspace .student-module-brandbar, .exam-card-workspace .exam-card-hero, .exam-results-workspace .student-module-brandbar, .exam-results-workspace .exam-results-hero { display: none !important; } .exam-card-workspace .exam-card-print, .exam-results-workspace .result-slip { max-width: none; } }
.course-form-workspace .course-form-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.course-form-workspace .a4 { width: min(100%, 194mm); max-width: 194mm; margin: 0 auto 1rem; }
@media (max-width: 48rem) { .course-form-workspace .a4 { width: 100%; min-height: 0; height: auto; } .course-form-workspace .course-form-actions { width: 100%; } .course-form-workspace .course-form-actions > * { flex: 1 1 auto; } }
@media print { .course-form-workspace .student-module-command-center { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: #fff; box-shadow: none; } .course-form-workspace .student-module-brandbar, .course-form-workspace .course-form-hero { display: none !important; } .course-form-workspace .a4 { max-width: none; } }
/* Student sign-in: focused, accessible green-and-white entry point. */
body.student-login-page {
    min-height: 100vh;
    background: linear-gradient(145deg, #e8f5eb 0%, #f7fbf8 48%, #e2f2e6 100%) !important;
    background-image: none !important;
    color: #173d27;
}
body.student-login-page::before,
body.student-login-page::after {
    display: none !important;
}
.login-command-shell {
    width: min(calc(100% - 1rem), 75rem);
    min-height: calc(100vh - 1.6rem);
    margin: .8rem auto;
    padding: .9rem;
    border: 2px solid #2c8b54;
    border-radius: .35rem;
    background: rgba(255,255,255,.72);
    box-shadow: 0 22px 52px rgba(20,85,46,.13);
}
.login-command-shell *,
.login-command-shell *::before,
.login-command-shell *::after {
    box-sizing: border-box;
}
.login-command-shell a {
    color: inherit;
    text-decoration: none;
}
.login-command-shell a:focus-visible,
.login-command-shell button:focus-visible,
.login-command-shell input:focus-visible {
    outline: 3px solid #087a43;
    outline-offset: 3px;
}
.login-command-brandbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 2.65rem;
    margin-bottom: .8rem;
    padding: 0 .1rem;
}
.login-command-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: .58rem;
}
.login-command-brand img {
    width: 2.2rem;
    height: 2.2rem;
    flex: 0 0 auto;
    padding: .15rem;
    border: 1px solid #b8ddc3;
    border-radius: .58rem;
    background: #fff;
    object-fit: contain;
}
.login-command-brand span {
    display: grid;
    min-width: 0;
    gap: .05rem;
}
.login-command-brand strong {
    overflow: hidden;
    color: #155a37;
    font-size: .8rem;
    font-weight: 820;
    letter-spacing: -.015em;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.login-command-brand small {
    color: #668673;
    font-size: .63rem;
    font-weight: 700;
}
.login-command-security {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .34rem;
    min-height: 2.15rem;
    padding: .4rem .58rem;
    border: 1px solid #b9ddc3;
    border-radius: .54rem;
    background: #f1fbf3;
    color: #17613a;
    font-size: .66rem;
    font-weight: 800;
    white-space: nowrap;
}
.login-command-security i { color: #087641; font-size: .82rem; }
.login-command-grid {
    display: grid;
    gap: .8rem;
}
.login-command-story,
.login-command-panel {
    position: relative;
    overflow: hidden;
    border-radius: 1.05rem;
}
.login-command-story {
    display: grid;
    align-content: space-between;
    min-height: 23rem;
    gap: 1.25rem;
    padding: clamp(1.2rem, 5vw, 2.1rem);
    background: linear-gradient(135deg, #075b34 0%, #087d45 56%, #179958 135%);
    box-shadow: 0 18px 34px rgba(11,91,47,.22);
    color: #fff;
}
.login-command-story::before,
.login-command-story::after {
    position: absolute;
    border: 1.2rem solid rgba(255,255,255,.09);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}
.login-command-story::before {
    width: 13rem;
    height: 13rem;
    top: -7rem;
    right: -4rem;
}
.login-command-story::after {
    width: 9rem;
    height: 9rem;
    bottom: -5.3rem;
    left: 24%;
}
.login-command-story > * { position: relative; z-index: 1; }
.login-command-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    margin: 0;
    color: #bdf3cc;
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .1em;
    line-height: 1.2;
    text-transform: uppercase;
}
.login-command-story h1 {
    max-width: 31rem;
    margin: .48rem 0 0;
    color: #fff;
    font-size: clamp(1.65rem, 6.5vw, 2.8rem);
    font-weight: 800;
    letter-spacing: -.052em;
    line-height: 1.05;
}
.login-command-story-copy > p:not(.login-command-eyebrow) {
    max-width: 33rem;
    margin: .82rem 0 0;
    color: rgba(242,255,246,.88);
    font-size: .84rem;
    line-height: 1.62;
}
.login-command-benefits {
    display: grid;
    gap: .55rem;
    max-width: 34rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.login-command-benefits li {
    display: grid;
    grid-template-columns: 2.15rem minmax(0,1fr);
    align-items: center;
    gap: .55rem;
    padding: .56rem;
    border: 1px solid rgba(225,255,234,.21);
    border-radius: .7rem;
    background: rgba(0,67,34,.19);
}
.login-command-benefit-icon,
.login-command-note-icon {
    display: grid;
    place-items: center;
    width: 2.15rem;
    height: 2.15rem;
    border: 1px solid rgba(227,255,236,.2);
    border-radius: .62rem;
    background: rgba(231,255,239,.14);
    color: #d7ffe2;
    font-size: .92rem;
}
.login-command-benefits li > span:last-child,
.login-command-story-note > span:last-child {
    display: grid;
    min-width: 0;
    gap: .12rem;
}
.login-command-benefits strong,
.login-command-story-note strong {
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1.2;
}
.login-command-benefits small,
.login-command-story-note small {
    color: rgba(232,255,240,.79);
    font-size: .62rem;
    font-weight: 620;
    line-height: 1.32;
}
.login-command-story-note {
    display: inline-grid;
    grid-template-columns: 1.9rem minmax(0,1fr);
    align-items: center;
    gap: .48rem;
    max-width: 26rem;
    padding-top: .85rem;
    border-top: 1px solid rgba(228,255,236,.19);
}
.login-command-note-icon {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: .54rem;
    font-size: .77rem;
}
.login-command-panel {
    align-self: center;
    padding: clamp(1.2rem, 5vw, 2rem);
    border: 1px solid #c8e4cf;
    background: #fff;
    box-shadow: 0 16px 34px rgba(22,91,48,.09);
}
.login-command-panel-head { margin-bottom: 1.2rem; }
.login-command-panel-mark {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    margin-bottom: .78rem;
    border: 1px solid #b9e4c5;
    border-radius: .8rem;
    background: linear-gradient(145deg, #effcf2, #d8f5df);
    box-shadow: 0 6px 12px rgba(19,111,56,.1);
    color: #08753e;
    font-size: 1.12rem;
}
.login-command-panel .login-command-eyebrow {
    color: #267b48;
}
.login-command-panel h2 {
    margin: .35rem 0 0;
    color: #123f27;
    font-size: clamp(1.35rem, 5.5vw, 1.95rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.1;
}
.login-command-panel-head > p:last-child {
    margin: .52rem 0 0;
    color: #5e7c69;
    font-size: .78rem;
    line-height: 1.55;
}
.login-command-form {
    display: grid;
    gap: .9rem;
}
.login-command-field {
    display: grid;
    gap: .36rem;
}
.login-command-label-row,
.login-command-form-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
}
.login-command-field label {
    color: #28553a;
    font-size: .7rem;
    font-weight: 800;
}
.login-command-label-row a,
.login-command-form-meta a,
.login-command-support a {
    color: #08743f;
    font-size: .68rem;
    font-weight: 800;
}
.login-command-label-row a:hover,
.login-command-form-meta a:hover,
.login-command-support a:hover {
    color: #055a30;
    text-decoration: underline;
}
.login-command-input {
    position: relative;
    display: flex;
    align-items: center;
}
.login-command-input > i {
    position: absolute;
    left: .72rem;
    z-index: 1;
    color: #0a7b45;
    font-size: .92rem;
    pointer-events: none;
}
.login-command-input input {
    width: 100%;
    min-height: 3rem;
    padding: .7rem 2.65rem .7rem 2.48rem;
    border: 1px solid #bddac5;
    border-radius: .7rem;
    background: #fbfefb;
    color: #183f29;
    font-size: .8rem;
    font-weight: 650;
    outline: 0;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.login-command-input input::placeholder { color: #829d8b; font-weight: 550; }
.login-command-input input:hover { border-color: #89bd99; background: #fff; }
.login-command-input input:focus {
    border-color: #0b8046;
    background: #fff;
    box-shadow: 0 0 0 .22rem rgba(11,128,70,.14);
}
.login-command-password-toggle {
    position: absolute;
    right: .38rem;
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    padding: 0;
    border: 1px solid #c2dfc9;
    border-radius: .52rem;
    background: #effaf1;
    color: #08743f;
    cursor: pointer;
    font-size: .83rem;
}
.login-command-password-toggle:hover { border-color: #78b88b; background: #e4f5e8; }
.login-command-form-meta {
    align-items: flex-start;
    padding-top: .03rem;
}
.login-command-form-meta span {
    display: inline-flex;
    align-items: flex-start;
    gap: .34rem;
    color: #617d6b;
    font-size: .64rem;
    font-weight: 670;
    line-height: 1.35;
}
.login-command-form-meta span i { flex: 0 0 auto; color: #087640; }
.login-command-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 3rem;
    padding: .68rem 1rem;
    border: 1px solid transparent;
    border-radius: .7rem;
    background: linear-gradient(135deg, #08713e, #159252);
    box-shadow: 0 9px 19px rgba(8,112,62,.22);
    color: #fff;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 850;
    transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.login-command-submit:hover:not(:disabled) {
    background: linear-gradient(135deg, #056135, #0d8248);
    box-shadow: 0 12px 23px rgba(8,112,62,.28);
    transform: translateY(-1px);
}
.login-command-submit:disabled { cursor: wait; opacity: .82; }
.login-command-submit .auth-spin { animation: login-command-spin .75s linear infinite; }
.login-command-support {
    margin: 1rem 0 0;
    padding-top: .9rem;
    border-top: 1px solid #d8eadc;
    color: #678270;
    font-size: .68rem;
    line-height: 1.45;
}
.login-command-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .42rem .75rem;
    margin: .9rem .15rem .05rem;
    padding-top: .85rem;
    border-top: 1px solid #c6e1cd;
    color: #567563;
    font-size: .63rem;
    font-weight: 720;
}
.login-command-footer span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}
.login-command-footer i { color: #087640; }
@keyframes login-command-spin { to { transform: rotate(360deg); } }
@media (min-width: 46rem) {
    .login-command-shell { margin-top: 1rem; margin-bottom: 1rem; padding: 1.15rem; }
    .login-command-brandbar { margin-bottom: 1rem; }
    .login-command-story { min-height: 25rem; }
    .login-command-benefits { grid-template-columns: repeat(3, minmax(0,1fr)); max-width: none; }
    .login-command-benefits li { grid-template-columns: 1fr; align-content: start; min-height: 7.15rem; }
}
@media (min-width: 62rem) {
    .login-command-shell { min-height: calc(100vh - 2.7rem); margin-top: 1.35rem; margin-bottom: 1.35rem; padding: 1.4rem; }
    .login-command-grid { grid-template-columns: minmax(0,1.12fr) minmax(22rem,.88fr); align-items: stretch; gap: 1rem; }
    .login-command-story { min-height: 33rem; }
    .login-command-benefits { grid-template-columns: 1fr; max-width: 33rem; }
    .login-command-benefits li { grid-template-columns: 2.15rem minmax(0,1fr); min-height: 0; }
    .login-command-panel { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
}
@media (max-width: 29rem) {
    .login-command-shell { width: calc(100% - .5rem); min-height: calc(100vh - .5rem); margin: .25rem auto; padding: .65rem .6rem 1rem; border-width: 1px; }
    .login-command-brandbar { gap: .4rem; margin-bottom: .65rem; }
    .login-command-brand img { width: 2rem; height: 2rem; }
    .login-command-brand strong { max-width: 11rem; font-size: .75rem; }
    .login-command-brand small { display: none; }
    .login-command-security { width: 2.15rem; padding: 0; font-size: 0; }
    .login-command-security i { font-size: .85rem; }
    .login-command-story, .login-command-panel { border-radius: .82rem; }
    .login-command-story { min-height: 22rem; padding: 1rem; }
    .login-command-story h1 { font-size: 1.55rem; }
    .login-command-story-copy > p:not(.login-command-eyebrow) { font-size: .78rem; }
    .login-command-benefits { gap: .42rem; }
    .login-command-benefits li { padding: .5rem; }
    .login-command-panel { padding: 1rem; }
    .login-command-panel-head { margin-bottom: 1rem; }
    .login-command-form-meta { flex-direction: column; gap: .45rem; }
    .login-command-footer { margin-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .login-command-shell *,
    .login-command-shell *::before,
    .login-command-shell *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}
@media print {
    body.student-login-page { background: #fff !important; }
    .login-command-shell { width: 100%; min-height: 0; margin: 0; border: 0; box-shadow: none; }
    .login-command-story, .login-command-panel, .login-command-security, .login-command-footer { display: none !important; }
}
/* Login-story contrast and settings-managed student image. */
.login-command-story,
.login-command-story .login-command-story-copy,
.login-command-story .login-command-story-copy h1,
.login-command-story .login-command-story-copy p,
.login-command-story .login-command-benefits strong,
.login-command-story .login-command-benefits small,
.login-command-story .login-command-story-note strong,
.login-command-story .login-command-story-note small,
.login-command-story .login-command-eyebrow {
    color: #fff !important;
}
.login-command-story .login-command-eyebrow { color: #e6ffec !important; }
.login-command-students {
    display: block;
    width: min(78%, 16rem);
    max-height: 12.5rem;
    margin: -.1rem auto -.25rem;
    object-fit: contain;
    object-position: center bottom;
    filter: drop-shadow(0 13px 17px rgba(0,55,28,.28));
}
@media (min-width: 62rem) {
    .login-command-story {
        grid-template-columns: minmax(0, 1fr) minmax(10rem, 15rem);
        grid-template-rows: auto 1fr auto;
        column-gap: .85rem;
    }
    .login-command-story-copy { grid-column: 1; }
    .login-command-students {
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: end;
        justify-self: end;
        width: 100%;
        max-height: 19rem;
        margin: 0;
    }
    .login-command-benefits {
        grid-column: 1;
        grid-template-columns: 1fr;
        width: 100%;
        max-width: 33rem;
    }
    .login-command-story-note { grid-column: 1 / -1; }
}
@media (max-width: 29rem) {
    .login-command-students { width: min(82%, 13rem); max-height: 10rem; }
}
/* Compact login viewport refinement. The image is a safe background layer, never a layout obstacle. */
.login-command-shell {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: .7rem;
}
.login-command-brandbar,
.login-command-footer {
    margin: 0;
}
.login-command-grid {
    min-height: 0;
}
.login-command-story {
    isolation: isolate;
    min-height: 0;
    padding: clamp(1rem, 3vw, 1.55rem);
}
.login-command-story::before,
.login-command-story::after {
    z-index: 0;
}
.login-command-story > :not(.login-command-students) {
    position: relative;
    z-index: 2;
}
.login-command-students {
    position: absolute;
    z-index: 1;
    right: .45rem;
    bottom: 0;
    width: min(42%, 15.5rem);
    max-height: 83%;
    margin: 0;
    opacity: .38;
    pointer-events: none;
}
.login-command-story-copy,
.login-command-benefits,
.login-command-story-note {
    max-width: min(100%, 29rem);
}
.login-command-benefits li {
    background: rgba(0, 69, 35, .45);
    backdrop-filter: blur(2px);
}
.login-command-story h1 {
    font-size: clamp(1.45rem, 4.3vw, 2.32rem);
}
.login-command-story-copy > p:not(.login-command-eyebrow) {
    margin-top: .55rem;
    line-height: 1.48;
}
.login-command-panel {
    padding: clamp(1rem, 3vw, 1.5rem);
}
.login-command-panel-head {
    margin-bottom: .85rem;
}
.login-command-panel-mark {
    width: 2.35rem;
    height: 2.35rem;
    margin-bottom: .55rem;
    border-radius: .68rem;
    font-size: .98rem;
}
.login-command-panel-head > p:last-child {
    margin-top: .38rem;
    line-height: 1.4;
}
.login-command-form {
    gap: .72rem;
}
.login-command-input input,
.login-command-submit {
    min-height: 2.78rem;
}
.login-command-submit {
    padding-block: .58rem;
}
.login-command-support {
    margin-top: .75rem;
    padding-top: .7rem;
}
.login-command-footer {
    padding-top: .65rem;
}
@media (max-width: 45.99rem) {
    .login-command-shell {
        min-height: calc(100svh - 1rem);
        margin-block: .5rem;
    }
    .login-command-story {
        min-height: 10.7rem;
        padding: 1rem;
    }
    .login-command-story-copy {
        max-width: 70%;
    }
    .login-command-story h1 {
        font-size: clamp(1.35rem, 6.4vw, 1.75rem);
    }
    .login-command-story-copy > p:not(.login-command-eyebrow) {
        max-width: 23rem;
        font-size: .75rem;
    }
    .login-command-story .login-command-benefits,
    .login-command-story .login-command-story-note {
        display: none;
    }
    .login-command-students {
        right: .2rem;
        width: min(53%, 12rem);
        max-height: 95%;
        opacity: .34;
    }
    .login-command-panel {
        padding: 1rem;
    }
}
@media (min-width: 46rem) and (max-width: 61.99rem) {
    .login-command-story {
        min-height: 18.5rem;
    }
    .login-command-story-copy,
    .login-command-benefits,
    .login-command-story-note {
        max-width: min(69%, 30rem);
    }
    .login-command-benefits {
        grid-template-columns: 1fr;
    }
    .login-command-benefits li {
        grid-template-columns: 2rem minmax(0, 1fr);
        min-height: 0;
    }
    .login-command-students {
        width: min(33%, 14rem);
        max-height: 92%;
    }
}
@media (min-width: 62rem) {
    .login-command-shell {
        height: calc(100svh - 2rem);
        min-height: 31rem;
        margin-top: 1rem;
        margin-bottom: 1rem;
        padding: 1.1rem;
    }
    .login-command-grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(21rem, .9fr);
        align-items: stretch;
        gap: .85rem;
    }
    .login-command-story,
    .login-command-panel {
        min-height: 0;
        height: 100%;
    }
    .login-command-story {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr) auto;
        align-content: space-between;
        gap: .65rem;
        padding: clamp(1.1rem, 2vw, 1.55rem);
    }
    .login-command-story-copy,
    .login-command-benefits,
    .login-command-story-note {
        max-width: min(64%, 29rem);
    }
    .login-command-benefits {
        grid-template-columns: 1fr;
        gap: .42rem;
    }
    .login-command-benefits li {
        grid-template-columns: 1.95rem minmax(0, 1fr);
        gap: .44rem;
        padding: .46rem;
    }
    .login-command-benefit-icon {
        width: 1.95rem;
        height: 1.95rem;
        border-radius: .55rem;
        font-size: .82rem;
    }
    .login-command-story-note {
        grid-template-columns: 1.7rem minmax(0, 1fr);
        gap: .4rem;
        padding-top: .55rem;
    }
    .login-command-note-icon {
        width: 1.7rem;
        height: 1.7rem;
        font-size: .68rem;
    }
    .login-command-students {
        right: clamp(.45rem, 2vw, 1.35rem);
        width: min(35%, 15rem);
        max-height: 92%;
        opacity: .42;
    }
    .login-command-panel {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}
@media (min-width: 62rem) and (max-height: 46rem) {
    .login-command-shell {
        height: calc(100svh - 1rem);
        min-height: 0;
        margin-block: .5rem;
        padding: .85rem;
    }
    .login-command-brandbar {
        min-height: 2.25rem;
    }
    .login-command-story,
    .login-command-panel {
        padding: .9rem 1rem;
    }
    .login-command-story h1 {
        font-size: clamp(1.35rem, 3vw, 1.9rem);
    }
    .login-command-story-copy > p:not(.login-command-eyebrow) {
        font-size: .73rem;
    }
    .login-command-benefits li:nth-child(3),
    .login-command-story-note,
    .login-command-panel-mark,
    .login-command-support {
        display: none;
    }
    .login-command-form {
        gap: .55rem;
    }
    .login-command-footer {
        padding-top: .45rem;
    }
}
@media (max-width: 29rem) {
    .login-command-shell {
        min-height: calc(100svh - .5rem);
        margin-block: .25rem;
        gap: .5rem;
    }
    .login-command-story {
        min-height: 9.5rem;
        padding: .82rem;
    }
    .login-command-story-copy {
        max-width: 68%;
    }
    .login-command-story h1 {
        font-size: 1.28rem;
    }
    .login-command-story-copy > p:not(.login-command-eyebrow) {
        margin-top: .38rem;
        font-size: .69rem;
        line-height: 1.36;
    }
    .login-command-students {
        width: 52%;
        max-height: 100%;
        opacity: .31;
    }
    .login-command-panel {
        padding: .85rem;
    }
    .login-command-panel-head {
        margin-bottom: .7rem;
    }
    .login-command-panel-head > p:last-child {
        font-size: .72rem;
    }
    .login-command-form-meta {
        flex-direction: row;
        align-items: flex-start;
        gap: .35rem;
    }
    .login-command-footer {
        padding-top: .5rem;
    }
}
@media (max-height: 41rem) and (max-width: 45.99rem) {
    .login-command-story {
        min-height: 7.7rem;
    }
    .login-command-story-copy > p:not(.login-command-eyebrow) {
        display: none;
    }
    .login-command-panel-mark,
    .login-command-panel-head > p:last-child,
    .login-command-support,
    .login-command-footer {
        display: none;
    }
    .login-command-panel-head {
        margin-bottom: .5rem;
    }
}
/* Shared header destination for every student-facing entry point. */
.login-command-header-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
}
.login-command-dashboard {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .34rem;
    min-height: 2.15rem;
    padding: .4rem .62rem;
    border: 1px solid #9dceb0;
    border-radius: .54rem;
    background: linear-gradient(145deg, #ffffff, #e8f7ec);
    color: #17613a !important;
    font-size: .66rem;
    font-weight: 820;
    white-space: nowrap;
}
.login-command-dashboard:hover {
    border-color: #4d9f69;
    background: #ddf3e3;
    color: #075d32 !important;
}
.login-command-dashboard i { color: #087641; font-size: .8rem; }
@media (max-width: 29rem) {
    .login-command-header-actions { gap: .28rem; }
    .login-command-dashboard {
        width: 2.15rem;
        padding: 0;
        font-size: 0;
    }
    .login-command-dashboard i { font-size: .85rem; }
}
/* Original student sign-in composition: no added portal brand bar or top gap. */
body.student-login-page .login-command-shell--original{
    grid-template-rows:minmax(0,1fr) auto;
    gap:.55rem;
    margin-top:0;
}
body.student-login-page .login-command-shell--original .login-command-grid{
    grid-row:1;
}
body.student-login-page .login-command-shell--original .login-command-footer{
    grid-row:2;
}
@media (min-width:46rem){
    body.student-login-page .login-command-shell--original{
        margin-top:0;
    }
}
@media (min-width:62rem){
    body.student-login-page .login-command-shell--original{
        height:calc(100svh - 1rem);
        margin-top:.5rem;
        margin-bottom:.5rem;
    }
}

/* Compact school identity row restored without reintroducing the former top whitespace. */
body.student-login-page .login-command-shell--original .login-command-brandbar{
    min-height:2.25rem;
    margin:0;
    padding:0;
}
body.student-login-page .login-command-shell--original .login-command-brand img{
    width:2rem;
    height:2rem;
}
body.student-login-page .login-command-shell--original .login-command-brand strong{
    font-size:.76rem;
}
body.student-login-page .login-command-shell--original .login-command-brand small{
    font-size:.6rem;
}

/* Semester result history: current period stays first and visually prominent. */
.result-history-panel {
    margin: .9rem auto;
    padding: 1rem;
    border: 1px solid #c8e3cf;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 10px 24px rgba(20,90,50,.07);
}
.result-history-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}
.result-history-heading h2 {
    margin: .16rem 0 .25rem;
    color: #123f27;
    font-size: .95rem;
    font-weight: 850;
}
.result-history-heading p:not(.result-history-eyebrow) {
    margin: 0;
    color: #61796b;
    font-size: .72rem;
    line-height: 1.5;
}
.result-history-eyebrow {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: #13814a;
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.result-history-count {
    flex: 0 0 auto;
    padding: .35rem .55rem;
    border: 1px solid #cfe8d4;
    border-radius: 999px;
    background: #f0faf2;
    color: #247342;
    font-size: .63rem;
    font-weight: 800;
}
.result-history-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
    gap: .55rem;
}
.result-history-card {
    display: grid;
    grid-template-columns: 2.15rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    min-width: 0;
    min-height: 4.25rem;
    padding: .62rem .7rem;
    border: 1px solid #dce9e0;
    border-radius: .78rem;
    background: #fbfdfb;
    color: #183c2b !important;
    text-decoration: none !important;
    transition: border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.result-history-card[href]:hover {
    transform: translateY(-1px);
    border-color: #8ac39a;
    background: #f4fbf5;
    box-shadow: 0 6px 16px rgba(16,87,43,.08);
}
.result-history-card.is-current {
    border-color: #59aa70;
    background: linear-gradient(115deg, #edf9ef, #fff);
    box-shadow: inset 3px 0 #168146;
}
.result-history-card.is-selected:not(.is-current) {
    border-color: #79aa88;
    background: #f1faf3;
    box-shadow: inset 3px 0 #4d9562;
}
.result-history-card.is-pending {
    border-style: dashed;
    background: #f7faf8;
    color: #66786d !important;
    cursor: default;
}
.result-history-card-icon {
    display: grid;
    width: 2.05rem;
    height: 2.05rem;
    place-items: center;
    border-radius: .65rem;
    background: #e4f4e8;
    color: #147640;
    font-size: .86rem;
}
.result-history-card:not(.is-current) .result-history-card-icon {
    background: #edf2f7;
    color: #42627a;
}
.result-history-card-copy {
    display: grid;
    min-width: 0;
    gap: .12rem;
}
.result-history-card-copy > small {
    color: #64806c;
    font-size: .57rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.result-history-card-copy > strong {
    overflow: hidden;
    color: #173f2b;
    font-size: .72rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.result-history-card-copy > span {
    overflow: hidden;
    color: #6d8074;
    font-size: .59rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.result-history-card-state {
    padding: .28rem .42rem;
    border: 1px solid #d8e7dc;
    border-radius: 999px;
    background: #fff;
    color: #60756a;
    font-size: .55rem;
    font-weight: 850;
    white-space: nowrap;
}
.result-history-card.is-current .result-history-card-state {
    border-color: #c0e2c8;
    background: #fff;
    color: #18713c;
}
.result-history-card-arrow {
    display: none;
}
.result-history-empty {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .8rem;
    border: 1px dashed #cfdfd3;
    border-radius: .7rem;
    color: #63786a;
    font-size: .7rem;
}
.result-history-empty i { color: #148047; font-size: .9rem; }
.exam-results-workspace .result-period-toolbar {
    grid-template-columns: auto minmax(0,1fr) auto auto;
}
.result-period-summary {
    display: grid;
    min-width: 0;
    gap: .12rem;
    padding: 0 .35rem;
}
.result-period-summary span {
    color: #61796b;
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.result-period-summary strong {
    overflow: hidden;
    color: #173f2b;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 42rem) {
    .result-history-panel { padding: .8rem; }
    .result-history-heading { align-items: flex-start; }
    .result-history-count { font-size: .57rem; }
    .result-history-grid { grid-template-columns: 1fr; }
    .result-history-card { grid-template-columns: 2rem minmax(0,1fr) auto; }
}
@media (prefers-reduced-motion: reduce) {
    .result-history-card { transition: none; }
}

/* Practical placement archive stays on screen but never enters the A4 letter. */
.practical-history-panel.no-print { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr); gap: .9rem; width: min(100%,76rem); margin: .8rem auto; padding: .9rem; border: 1px solid #cfe4d5; border-radius: .85rem; background: #fff; color: #214532; box-shadow: 0 12px 26px rgba(25,75,48,.07); }
.practical-history-panel > div:first-child > p { margin: 0 0 .25rem; color: #17804a; font-size: .62rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.practical-history-panel h2 { margin: 0; color: #17482e; font-size: 1rem; font-weight: 820; }
.practical-history-panel > div:first-child > span { display: block; margin-top: .35rem; color: #698071; font-size: .72rem; line-height: 1.5; }
.practical-history-list { display: grid; gap: .4rem; }
.practical-history-record { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; gap: .5rem; min-width: 0; padding: .58rem; border: 1px solid #e0ebe3; border-radius: .65rem; background: linear-gradient(140deg,#fff,#f5faf6); color: #2b4f39 !important; text-decoration: none !important; }
.practical-history-record:hover,.practical-history-record.is-selected { border-color: #75b58b; background: #f0faf2; }
.practical-history-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .55rem; background: #e4f5e9; color: #18804a; }
.practical-history-copy { display: grid; min-width: 0; gap: .14rem; }
.practical-history-copy small { color: #18804a; font-size: .56rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.practical-history-copy strong { color: #274934; font-size: .72rem; font-weight: 800; overflow-wrap: anywhere; }
.practical-history-copy span { color: #637d6d; font-size: .62rem; line-height: 1.38; overflow-wrap: anywhere; }
.practical-history-empty { margin: 0; align-self: center; color: #6d8174; font-size: .75rem; }
.practical-gate-history { width: min(92vw,720px); margin: 1rem auto; padding: 1rem; border: 1px solid #cfe3d4; border-radius: .85rem; background: #fff; color: #214532; }
.practical-gate-history h2 { margin: 0; color: #17482e; font-size: 1rem; font-weight: 800; }
.practical-gate-history p { margin: .35rem 0 .7rem; color: #678071; font-size: .76rem; }
.practical-gate-history > a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .65rem 0; border-top: 1px solid #e2ece5; color: #17623b; text-decoration: none; }
.practical-gate-history > a > span { display: grid; gap: .2rem; min-width: 0; }
.practical-gate-history > a strong { font-size: .76rem; overflow-wrap: anywhere; }
.practical-gate-history > a small { color: #658071; font-size: .65rem; line-height: 1.4; }
.practical-letter-student { display: flex; align-items: center; gap: 10px; margin: 9px 0; padding: 7px 9px; border: 1px solid #d5e5da; border-radius: 6px; background: #fbfefb; font-size: 10px; }
.practical-letter-student img { width: 42px; height: 50px; flex: 0 0 auto; border: 1px solid #81aa8c; border-radius: 4px; background: #fff; object-fit: cover; }
.practical-letter-student div { display: grid; gap: 2px; min-width: 0; }
.practical-letter-student strong { color: #154b30; font-size: 11px; }
.practical-letter-student span { color: #435d4b; overflow-wrap: anywhere; }
@media (max-width: 44rem) { .practical-history-panel.no-print { grid-template-columns: 1fr; } }
@media (max-width: 28rem) { .practical-letter-student img { width: 34px; height: 42px; } .practical-letter-student { margin: 7px 0; padding: 5px 7px; font-size: 9px; } .practical-letter-student strong { font-size: 10px; } }
@media print { .practical-history-panel, .practical-gate-history, .student-record-identity { display: none !important; } }

/* Period history and identity context shared by student academic records. */
.registration-history-panel,
.academic-period-history,
.hostel-history-panel {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #d5e6dc;
    border-radius: .95rem;
    background: #fff;
    color: #203d31;
    box-shadow: 0 12px 26px rgba(25,75,48,.06);
}
.registration-history-panel:not(.registration-history-studio) .experience-panel-heading,
.academic-period-history .experience-panel-heading,
.hostel-history-panel .hostel-panel-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .7rem;
    margin-bottom: .55rem;
}
.registration-history-panel:not(.registration-history-studio) .experience-panel-heading > div > span,
.academic-period-history .experience-panel-heading > div > span,
.hostel-history-panel .hostel-panel-heading > div > span {
    display: block;
    margin-bottom: .22rem;
    color: #147448;
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.registration-history-panel:not(.registration-history-studio) .experience-panel-heading h2,
.academic-period-history .experience-panel-heading h2,
.hostel-history-panel .hostel-panel-heading h2 {
    margin: 0;
    color: #173e2b;
    font-size: 1.05rem;
    font-weight: 820;
    letter-spacing: -.025em;
}
.registration-history-count,
.hostel-history-count { color: #648071; font-size: .68rem; font-weight: 760; white-space: nowrap; }
.registration-history-intro,
.academic-period-history-intro,
.hostel-history-intro { margin: 0 0 .8rem; color: #667c70; font-size: .75rem; line-height: 1.5; }
.registration-history-panel:not(.registration-history-studio) .registration-history-list,
.hostel-history-list { display: grid; gap: .5rem; }
.registration-history-panel:not(.registration-history-studio) .registration-history-record {
    display: grid;
    gap: .55rem;
    min-width: 0;
    padding: .75rem;
    border: 1px solid #e0ebe4;
    border-radius: .72rem;
    background: linear-gradient(140deg,#fff,#f7fbf8);
}
.registration-history-panel:not(.registration-history-studio) .registration-history-period,
.registration-history-panel:not(.registration-history-studio) .registration-history-summary,
.registration-history-panel:not(.registration-history-studio) .registration-history-meta { display: grid; min-width: 0; gap: .2rem; }
.registration-history-panel:not(.registration-history-studio) .registration-history-period > span { color: #167446; font-size: .59rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.registration-history-panel:not(.registration-history-studio) .registration-history-period > strong { color: #214632; font-size: .81rem; font-weight: 820; overflow-wrap: anywhere; }
.registration-history-panel:not(.registration-history-studio) .registration-history-period > small,
.registration-history-panel:not(.registration-history-studio) .registration-history-meta > small { color: #6b8175; font-size: .66rem; line-height: 1.4; }
.registration-history-panel:not(.registration-history-studio) .registration-history-summary > strong { color: #304e3c; font-size: .73rem; font-weight: 780; }
.registration-history-panel:not(.registration-history-studio) .registration-history-summary > span { color: #6b7f73; font-size: .67rem; line-height: 1.48; overflow-wrap: anywhere; }
.registration-history-panel:not(.registration-history-studio) .registration-history-meta { justify-items: start; }
.registration-history-panel:not(.registration-history-studio) .registration-history-meta > a,
.academic-period-actions > a { display: inline-flex; align-items: center; gap: .3rem; color: #087447; font-size: .66rem; font-weight: 780; }
.registration-history-panel:not(.registration-history-studio) .registration-history-meta > a:hover,
.academic-period-actions > a:hover { color: #034f30; text-decoration: underline; }
.academic-period-history-grid { display: grid; grid-template-columns: 1fr; gap: .6rem; }
.academic-period-card { min-width: 0; padding: .82rem; border: 1px solid #dce9e0; border-radius: .8rem; background: linear-gradient(145deg,#fff,#f6fbf7); }
.academic-period-card.is-current { border-color: #54a875; background: linear-gradient(145deg,#f4fbf5,#eaf7ed); box-shadow: inset 3px 0 #18834a; }
.academic-period-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #167448; font-size: .6rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.academic-period-card-heading i { color: #30935c; font-size: .9rem; }
.academic-period-card h3 { margin: .38rem 0 .15rem; color: #1a432e; font-size: .91rem; font-weight: 830; overflow-wrap: anywhere; }
.academic-period-semester { margin: 0; color: #5f7869; font-size: .7rem; }
.academic-period-semester strong { color: #315841; }
.academic-period-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .28rem; margin: .72rem 0; }
.academic-period-metrics > span { display: grid; gap: .12rem; min-width: 0; padding: .45rem .38rem; border: 1px solid #e0ebe3; border-radius: .5rem; background: #fff; color: #6a8072; font-size: .56rem; line-height: 1.25; }
.academic-period-metrics strong { color: #1c5f39; font-size: .86rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.academic-period-courses { margin: .4rem 0 0; color: #6a7e72; font-size: .64rem; line-height: 1.45; overflow-wrap: anywhere; }
.academic-period-courses b { color: #365b43; }
.academic-period-actions { display: flex; flex-wrap: wrap; gap: .45rem .8rem; margin-top: .72rem; padding-top: .62rem; border-top: 1px solid #e0ebe3; }
.hostel-history-record { display: grid; grid-template-columns: 2.1rem minmax(0,1fr) auto; align-items: center; gap: .55rem; min-width: 0; padding: .68rem; border: 1px solid #e0ebe4; border-radius: .7rem; background: linear-gradient(140deg,#fff,#f7fbf8); }
.hostel-history-icon { display: grid; place-items: center; width: 2.05rem; height: 2.05rem; border-radius: .6rem; background: #e6f5ea; color: #167748; }
.hostel-history-copy { display: grid; min-width: 0; gap: .16rem; }
.hostel-history-copy strong { color: #234934; font-size: .75rem; font-weight: 800; overflow-wrap: anywhere; }
.hostel-history-copy span { color: #547463; font-size: .66rem; line-height: 1.4; overflow-wrap: anywhere; }
.hostel-history-copy small { color: #74897d; font-size: .62rem; }
.hostel-history-record .status-badge { font-size: .56rem; }
@media (min-width: 48rem) {
    .registration-history-panel, .academic-period-history, .hostel-history-panel { padding: 1.15rem; }
    .registration-history-panel:not(.registration-history-studio) .registration-history-record { grid-template-columns: minmax(0,1fr) minmax(13rem,.82fr); align-items: center; }
    .academic-period-history-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Registration history is a period index, not a course dump. Keep each card
   focused on its session/semester identity and the printable form action. */
.registration-history-panel:not(.registration-history-studio) .registration-history-summary { display: none !important; }
.registration-history-panel:not(.registration-history-studio) .registration-history-action {
    justify-content: center;
    width: 100%;
    padding: .48rem .7rem;
    border: 1px solid #a7d5b7;
    border-radius: .55rem;
    background: linear-gradient(135deg,#ecfaf0,#dff4e6);
    color: #075f38 !important;
    text-decoration: none !important;
    box-shadow: 0 4px 10px rgba(8,116,71,.08);
}
.registration-history-panel:not(.registration-history-studio) .registration-history-action:hover,
.registration-history-panel:not(.registration-history-studio) .registration-history-action:focus-visible {
    border-color: #4fae73;
    background: #d7f1df;
    color: #034f30 !important;
    text-decoration: none !important;
}
@media (min-width: 72rem) { .academic-period-history-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 25rem) {
    .registration-history-panel, .academic-period-history, .hostel-history-panel { padding: .75rem; }
    .registration-history-panel:not(.registration-history-studio) .experience-panel-heading, .academic-period-history .experience-panel-heading, .hostel-history-panel .hostel-panel-heading { align-items: flex-start; }
    .academic-period-metrics { grid-template-columns: repeat(3,minmax(3.2rem,1fr)); }
    .hostel-history-record { grid-template-columns: 1.9rem minmax(0,1fr); }
    .hostel-history-record .status-badge { grid-column: 2; justify-self: start; }
}
@media print {
    .registration-history-panel, .academic-period-history, .hostel-history-panel { box-shadow: none; break-inside: avoid; }
}

/* Shared payment-position badges. These are intentionally compact so the
   same status language works in dashboard cards, tables and mobile rows. */
.payment-status-badge {
    --payment-accent: #087447;
    --payment-soft: #e7f8ec;
    display: inline-flex;
    align-items: center;
    gap: .36rem;
    width: max-content;
    max-width: 100%;
    min-height: 1.72rem;
    padding: .2rem .55rem .2rem .24rem;
    border: 1px solid color-mix(in srgb, var(--payment-accent) 28%, transparent);
    border-radius: 999px;
    background: var(--payment-soft);
    color: var(--payment-accent);
    font-size: .62rem;
    font-weight: 850;
    line-height: 1.1;
    white-space: nowrap;
    box-shadow: 0 5px 14px color-mix(in srgb, var(--payment-accent) 12%, transparent);
}
.payment-status-icon {
    display: grid;
    place-items: center;
    width: 1.28rem;
    height: 1.28rem;
    flex: 0 0 1.28rem;
    border-radius: 50%;
    background: var(--payment-accent);
    color: #fff;
    font-size: .68rem;
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--payment-accent) 35%, transparent);
    animation: paymentBadgePulse 2.8s ease-out infinite;
}
.payment-status-badge.is-settled { --payment-accent: #087447; --payment-soft: #e8f8ed; }
.payment-status-badge.is-partial { --payment-accent: #a76108; --payment-soft: #fff5df; }
.payment-status-badge.is-pending { --payment-accent: #1769a5; --payment-soft: #eaf4ff; }
.payment-status-badge.is-overdue,
.payment-status-badge.is-failed { --payment-accent: #b33a3a; --payment-soft: #fff0f0; }
@keyframes paymentBadgePulse {
    0%, 55%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--payment-accent) 0%, transparent); }
    15% { box-shadow: 0 0 0 .28rem color-mix(in srgb, var(--payment-accent) 18%, transparent); }
}
.fees-command-state .payment-status-badge,
.command-status-line .payment-status-badge { min-height: 2.18rem; padding-right: .34rem; }
.fees-state-icon { width: max-content; min-width: 2.3rem; background: transparent; }
.fees-state-icon .payment-status-badge { max-width: 12rem; }
.fees-command-state .payment-status-icon,
.command-status-line .payment-status-icon { width: 1.92rem; height: 1.92rem; flex-basis: 1.92rem; font-size: .95rem; }
.fees-command-state .payment-status-badge { border-color: rgba(224,255,234,.28); background: rgba(225,255,235,.13); color: #effff3; }
.fees-command-state .payment-status-badge.is-partial { color: #fff5d5; }
.fees-command-state .payment-status-badge.is-pending { color: #e9f5ff; }
.payment-status-label { color: inherit; }
.exam-card-payment-status { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem .55rem; }
.exam-card-payment-status > span:not(.payment-status-badge) { color: #365b43; font-size: .68rem; font-weight: 800; }
@media (prefers-reduced-motion: reduce) {
    .payment-status-icon { animation: none; }
}

/* Material registration history studio */
.registration-history-studio {
    position: relative;
    overflow: hidden;
    border: 1px solid #d5e9dc;
    background: linear-gradient(145deg,#ffffff 0%,#f7fcf8 100%);
    box-shadow: 0 18px 42px rgba(22,87,48,.09);
}
.registration-history-studio::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 11rem;
    height: 11rem;
    border-radius: 50%;
    background: radial-gradient(circle,rgba(61,180,103,.13),transparent 68%);
    content: "";
    pointer-events: none;
}
.registration-history-studio-mark { position: absolute; top: 1.08rem; left: 1.12rem; z-index: 2; display: grid; place-items: center; width: 2.55rem; height: 2.55rem; border-radius: .78rem; background: linear-gradient(145deg,#087447,#2bab63); box-shadow: 0 9px 18px rgba(8,116,71,.2); color: #fff; font-size: 1.05rem; }
.registration-history-studio .registration-history-list { position: relative; z-index: 1; display: grid; width: 100%; min-width: 0; gap: .72rem; margin-top: .95rem; }
.registration-history-studio .registration-history-record {
    display: grid;
    grid-template-columns: 2.45rem minmax(0,1fr);
    gap: .65rem;
    align-items: start;
    min-width: 0;
    padding: .78rem;
    border: 1px solid #dcece1;
    border-radius: 1rem;
    background: rgba(255,255,255,.92);
    box-shadow: 0 7px 18px rgba(32,92,53,.06);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.registration-history-studio .registration-history-record:hover,
.registration-history-studio .registration-history-record:focus-within { transform: translateY(-2px); border-color: #87c99d; box-shadow: 0 13px 28px rgba(25,105,57,.12); }
.registration-history-studio .registration-history-record.is-current { border-color: #54b378; background: linear-gradient(145deg,#f7fff9,#edfaf0); box-shadow: inset 3px 0 #13814a, 0 10px 24px rgba(25,105,57,.1); }
.registration-history-rail { display: flex; flex-direction: column; align-items: center; min-height: 100%; }
.registration-history-rail-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 2.25rem; border: 1px solid #bfe4c9; border-radius: .72rem; background: #e9f8ed; color: #11804a; font-size: 1rem; box-shadow: 0 5px 12px rgba(23,123,67,.1); }
.registration-history-record.is-current .registration-history-rail-icon { border-color: #4bb477; background: linear-gradient(145deg,#087447,#28a85f); color: #fff; }
.registration-history-rail-line { width: 2px; flex: 1; min-height: 1.1rem; margin-top: .38rem; border-radius: 9px; background: linear-gradient(#b8dfc3,transparent); }
.registration-history-record:last-child .registration-history-rail-line { display: none; }
.registration-history-body { min-width: 0; }
.registration-history-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem; }
.registration-history-studio .registration-history-period { display: grid; gap: .18rem; min-width: 0; }
.registration-history-studio .registration-history-period > span { display: inline-flex; align-items: center; gap: .28rem; color: #17804a; font-size: .59rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.registration-history-studio .registration-history-period h3 { overflow: hidden; margin: 0; color: #183f2a; font-size: .92rem; font-weight: 850; letter-spacing: -.015em; line-height: 1.22; text-overflow: ellipsis; white-space: nowrap; }
.registration-history-studio .registration-history-period small { display: inline-flex; align-items: center; gap: .3rem; color: #668172; font-size: .68rem; }
.registration-history-status { display: inline-flex; align-items: center; gap: .28rem; flex: 0 0 auto; min-height: 1.55rem; padding: .25rem .48rem; border-radius: 999px; font-size: .59rem; font-weight: 850; white-space: nowrap; }
.registration-history-status.status-approved { border: 1px solid #b5dfc1; background: #eaf8ed; color: #157343; }
.registration-history-status.status-pending { border: 1px solid #f0d59d; background: #fff8e9; color: #95600d; }
.registration-history-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; margin-top: .72rem; }
.registration-history-metrics > span { display: grid; grid-template-columns: 1.15rem minmax(0,1fr); align-items: center; column-gap: .3rem; min-width: 0; padding: .42rem .45rem; border: 1px solid #e1eee4; border-radius: .62rem; background: #fbfefc; }
.registration-history-metrics i { grid-row: span 2; color: #258451; font-size: .78rem; }
.registration-history-metrics b { overflow: hidden; color: #1d5b38; font-size: .7rem; font-weight: 850; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.registration-history-metrics small { overflow: hidden; color: #789083; font-size: .54rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.registration-history-actions { margin-top: .72rem; padding-top: .62rem; border-top: 1px solid #e2eee5; }
.registration-history-studio .registration-history-action { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; align-items: center; justify-content: initial; gap: .5rem; width: 100%; min-width: 0; min-height: 2.65rem; padding: .3rem .4rem .3rem .32rem; border: 1px solid #b8dec3; border-radius: .68rem; background: linear-gradient(135deg,#f2fcf4,#e5f7e9); color: #0b683c !important; text-decoration: none !important; box-shadow: none; }
.registration-history-action-icon { display: grid; place-items: center; width: 1.95rem; height: 1.95rem; border-radius: .52rem; background: #11804a; color: #fff; font-size: .85rem; }
.registration-history-studio .registration-history-action b { display: block; color: #125c37; font-size: .68rem; font-weight: 850; line-height: 1.15; }
.registration-history-studio .registration-history-action small { display: block; margin-top: .14rem; color: #6f897a; font-size: .58rem; line-height: 1.2; }
.registration-history-studio .registration-history-action > .bi { color: #3c8e5c; font-size: .78rem; }
.registration-history-studio .registration-history-action:hover,
.registration-history-studio .registration-history-action:focus-visible { border-color: #51ac70; background: #dcf3e2; color: #064c2e !important; transform: translateY(-1px); }
@media (min-width: 48rem) {
    .registration-history-studio .registration-history-record { grid-template-columns: 2.7rem minmax(0,1fr); padding: .95rem; }
    .registration-history-studio .registration-history-rail-icon { width: 2.45rem; height: 2.45rem; flex-basis: 2.45rem; }
}
@media (max-width: 30rem) {
    .registration-history-studio-mark { top: .9rem; left: .78rem; width: 2.25rem; height: 2.25rem; }
    .registration-history-topline { display: grid; gap: .5rem; }
    .registration-history-status { justify-self: start; }
    .registration-history-metrics > span { grid-template-columns: 1fr; row-gap: .18rem; }
    .registration-history-metrics i { grid-row: auto; }
    .registration-history-metrics b, .registration-history-metrics small { grid-column: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .registration-history-studio .registration-history-record,
    .registration-history-studio .registration-history-action { transition: none; }
}

/* Archive studio header and metric ribbon */
.registration-history-studio-header { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; min-width: 0; padding: .15rem 0 .95rem 3.25rem; border-bottom: 1px solid #deeee2; }
.registration-history-studio-copy { min-width: 0; }
.registration-history-kicker { display: inline-flex; align-items: center; gap: .35rem; color: #14804a; font-size: .61rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.registration-history-kicker i { color: #2ca362; font-size: .78rem; }
.registration-history-studio-copy h2 { margin: .28rem 0 .25rem; color: #143e29; font-size: clamp(1.12rem,2.6vw,1.45rem); font-weight: 860; letter-spacing: -.035em; line-height: 1.1; }
.registration-history-studio-copy p { max-width: 47rem; margin: 0; color: #667f70; font-size: .73rem; line-height: 1.5; }
.registration-history-studio-status { display: inline-flex; align-items: center; gap: .38rem; flex: 0 0 auto; min-height: 2.35rem; padding: .35rem .55rem; border: 1px solid #cfe8d6; border-radius: .7rem; background: rgba(245,253,247,.92); color: #2e6949; }
.registration-history-studio-status > span:not(.registration-history-live-dot) { display: grid; gap: .08rem; }
.registration-history-studio-status b { color: #1c6540; font-size: .61rem; font-weight: 850; }
.registration-history-studio-status small { color: #779183; font-size: .53rem; }
.registration-history-studio-status > i { color: #219255; font-size: .92rem; }
.registration-history-live-dot { width: .43rem; height: .43rem; border-radius: 50%; background: #29a85e; box-shadow: 0 0 0 .22rem rgba(41,168,94,.13); animation: registrationLivePulse 2.4s ease-out infinite; }
@keyframes registrationLivePulse { 0%,70%,100% { box-shadow: 0 0 0 .18rem rgba(41,168,94,.08); } 25% { box-shadow: 0 0 0 .35rem rgba(41,168,94,.2); } }
.registration-history-overview { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .5rem; margin-top: .85rem; }
.registration-history-overview > div { display: flex; align-items: center; gap: .4rem; min-width: 0; padding: .52rem .56rem; border: 1px solid #e0eee4; border-radius: .72rem; background: rgba(255,255,255,.85); }
.registration-overview-icon { display: grid; place-items: center; width: 1.72rem; height: 1.72rem; flex: 0 0 1.72rem; border-radius: .52rem; background: #e7f7eb; color: #1b8750; font-size: .78rem; }
.registration-overview-icon.is-current { background: #e4f3ff; color: #1b6fa7; }
.registration-overview-icon.is-units { background: #fff4df; color: #aa690d; }
.registration-overview-icon.is-date { background: #f0ebff; color: #6950a3; }
.registration-history-overview > div > span:last-child { display: grid; min-width: 0; gap: .08rem; }
.registration-history-overview b { overflow: hidden; color: #205a38; font-size: .7rem; font-weight: 860; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.registration-history-overview small { overflow: hidden; color: #7a9182; font-size: .54rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.registration-history-toolbar { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.4fr) repeat(2,minmax(0,.8fr)) auto auto; align-items: center; gap: .45rem; min-width: 0; margin-top: .85rem; padding: .55rem; border: 1px solid #deebe1; border-radius: .78rem; background: #f7fbf8; }
.registration-history-search,
.registration-history-filter { display: flex; align-items: center; gap: .38rem; min-width: 0; min-height: 2.1rem; padding: 0 .55rem; border: 1px solid #dce9df; border-radius: .55rem; background: #fff; color: #368052; }
.registration-history-search > i,
.registration-history-filter > i { flex: 0 0 auto; color: #509168; font-size: .72rem; }
.registration-history-search input,
.registration-history-filter select { width: 100%; min-width: 0; height: 2rem; border: 0; outline: 0; background: transparent; color: #294a36; font: inherit; font-size: .65rem; }
.registration-history-search input::placeholder { color: #91a397; }
.registration-history-filter select { cursor: pointer; }
.registration-history-search:focus-within,
.registration-history-filter:focus-within { border-color: #57ad75; box-shadow: 0 0 0 3px rgba(47,153,86,.11); }
.registration-history-reset { display: inline-flex; align-items: center; justify-content: center; gap: .28rem; min-height: 2.1rem; padding: .4rem .58rem; border: 1px solid #d7e5da; border-radius: .55rem; background: #fff; color: #567262; font-size: .63rem; font-weight: 780; white-space: nowrap; }
.registration-history-reset:hover { border-color: #8fc5a0; background: #eff9f1; color: #126d40; }
.registration-history-result-count { color: #758b7d; font-size: .61rem; font-weight: 760; text-align: right; white-space: nowrap; }
.registration-history-record[hidden] { display: none !important; }
.registration-history-no-results { display: grid; justify-items: center; gap: .28rem; padding: 1.4rem .8rem; border: 1px dashed #c5ddcc; border-radius: .85rem; background: rgba(255,255,255,.68); color: #718a7a; text-align: center; }
.registration-history-no-results > span { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .65rem; background: #eaf6ed; color: #24824c; }
.registration-history-no-results strong { color: #365843; font-size: .76rem; }
.registration-history-no-results small { color: #7e9184; font-size: .65rem; }
.registration-history-studio .registration-history-list { margin-top: 1rem; }
@media (max-width: 58rem) {
    .registration-history-toolbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .registration-history-search { grid-column: 1 / -1; }
    .registration-history-result-count { justify-self: end; }
}
@media (max-width: 42rem) {
    .registration-history-studio-header { display: grid; gap: .65rem; }
    .registration-history-studio-status { justify-self: start; }
}
@media (max-width: 30rem) {
    .registration-history-toolbar { gap: .35rem; padding: .42rem; }
    .registration-history-filter { padding: 0 .38rem; }
    .registration-history-filter select { font-size: .59rem; }
    .registration-history-studio-header { padding-left: 2.85rem; }
    .registration-history-reset { grid-column: 1; }
    .registration-history-result-count { grid-column: 2; }
    .registration-history-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .registration-history-overview > div { padding: .48rem; }
    .registration-history-overview b { font-size: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
    .registration-history-live-dot { animation: none; }
}

/* Graduation progress studio */
body.student-progress-page .graduation-progress-studio { max-width: 1240px; }
body.student-progress-page .graduation-progress-studio .progress-hero {
    background: linear-gradient(135deg, #102f57 0%, #126f70 56%, #43a66e 100%);
    border: 1px solid rgba(255,255,255,.22);
    box-shadow: 0 24px 52px rgba(19,62,84,.24);
}
.graduation-progress-studio .progress-hero-copy { min-width: 0; }
.graduation-progress-studio .progress-hero-context { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.graduation-progress-studio .progress-hero-context span { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .6rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(0,35,56,.2); color: #eafff0; font-size: .66rem; font-weight: 700; }
.graduation-progress-studio .progress-hero-context i { color: #a9f2bc; }
.graduation-progress-studio .progress-hero-command { display: grid; gap: .75rem; justify-items: end; flex: 0 0 auto; }
.graduation-progress-studio .progress-hero-score { display: grid; grid-template-columns: 2.2rem auto; column-gap: .5rem; align-items: center; min-width: 10.5rem; padding: .65rem .75rem; border: 1px solid rgba(255,255,255,.2); border-radius: .9rem; background: rgba(0,38,54,.22); }
.graduation-progress-studio .progress-hero-score-icon { grid-row: span 2; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .68rem; background: rgba(255,255,255,.2); color: #fff; font-size: 1rem; }
.graduation-progress-studio .progress-hero-score strong { color: #fff; font-size: 1.3rem; font-weight: 850; line-height: 1; }
.graduation-progress-studio .progress-hero-score small { color: rgba(255,255,255,.75); font-size: .57rem; }
.graduation-progress-studio .progress-summary-grid { gap: 1rem; }
.graduation-progress-studio .progress-stage-panel,
.graduation-progress-studio .academic-outcome-panel { border-color: #d7e8dd; box-shadow: 0 12px 28px rgba(28,87,51,.08); }
.graduation-progress-studio .progress-stage-panel .experience-panel-heading span,
.graduation-progress-studio .academic-outcome-panel .experience-panel-heading span { display: flex; align-items: center; gap: .35rem; color: #17804a; }
.graduation-progress-studio .progress-stage-panel .experience-panel-heading > strong { color: #16804a; font-size: 1.2rem; }
.graduation-progress-studio .academic-outcome-panel .outcome-stat-grid { gap: .5rem; }
.graduation-progress-studio .outcome-stat-grid > div { border: 1px solid #e0eee4; background: #f6fbf7; }
.graduation-progress-studio .outcome-stat-grid > div:first-child { background: linear-gradient(145deg,#edf9f0,#e3f4e8); }
.graduation-progress-studio .progress-period-studio,
.graduation-progress-studio .progress-timeline-studio { border-color: #d5e8dc; box-shadow: 0 15px 34px rgba(25,86,48,.08); }
.graduation-progress-studio .progress-period-studio .academic-period-card { border-radius: 1rem; box-shadow: 0 8px 20px rgba(28,91,50,.06); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.graduation-progress-studio .progress-period-studio .academic-period-card:hover { transform: translateY(-2px); border-color: #79bc8f; box-shadow: 0 14px 28px rgba(25,105,57,.11); }
.graduation-progress-studio .progress-period-studio .academic-period-card.is-current { background: linear-gradient(145deg,#f6fff8,#eaf8ee); box-shadow: inset 3px 0 #16814a, 0 12px 24px rgba(25,105,57,.09); }
.progress-timeline-summary { display: flex; align-items: center; gap: .65rem; margin: -.25rem 0 1rem; padding: .65rem .75rem; border: 1px solid #d9eadd; border-radius: .78rem; background: #f6fbf7; }
.progress-summary-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .58rem; background: #dff3e5; color: #14804a; }
.progress-timeline-summary > span:nth-child(2) { display: grid; gap: .12rem; min-width: 9rem; }
.progress-timeline-summary b { color: #225a39; font-size: .72rem; }
.progress-timeline-summary small { color: #779082; font-size: .6rem; }
.progress-summary-bar { flex: 1; height: .45rem; overflow: hidden; border-radius: 999px; background: #dfeee2; }
.progress-summary-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#16814a,#63bd7b); }
.graduation-progress-studio .progress-timeline-studio .timeline-item { padding: .75rem .55rem .95rem; border-radius: .78rem; transition: background .18s ease; }
.graduation-progress-studio .progress-timeline-studio .timeline-item:hover { background: #f7fcf8; }
.graduation-progress-studio .timeline-marker { width: 2.15rem; height: 2.15rem; border: 3px solid #fff; box-shadow: 0 0 0 1px #b9ddc4, 0 5px 12px rgba(26,111,64,.1); }
.graduation-progress-studio .timeline-item.status-approved .timeline-marker { background: #dff4e6; color: #14804a; }
.graduation-progress-studio .timeline-item.status-pending .timeline-marker { background: #fff2d6; color: #a2660e; }
.graduation-progress-studio .timeline-item.status-locked .timeline-marker { background: #edf0f2; color: #73838b; }
@media (max-width: 680px) {
    .graduation-progress-studio .progress-hero-command { width: 100%; justify-items: stretch; }
    .graduation-progress-studio .progress-hero-score { width: 100%; }
    .progress-timeline-summary { align-items: flex-start; flex-wrap: wrap; }
    .progress-summary-bar { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .graduation-progress-studio .academic-period-card,
    .graduation-progress-studio .timeline-item { transition: none; }
}

/* Final containment layer for the course-registration archive. The archive
   is intentionally self-contained so global Bootstrap/card rules cannot make
   its controls or period cards overflow at intermediate widths. */
body.student-registration-page .registration-history-studio {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 1rem 0 0 !important;
    padding: clamp(.8rem, 2.2vw, 1.25rem) !important;
    overflow: hidden !important;
}
body.student-registration-page .registration-command-center,
body.student-registration-page .registration-page-content,
body.student-registration-page .registration-workspace-grid,
body.student-registration-page .registration-workspace-grid > * {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.student-registration-page .registration-command-center,
body.student-registration-page .registration-page-content { overflow-x: clip; }
body.student-registration-page .registration-history-studio,
body.student-registration-page .registration-history-studio * {
    min-width: 0;
    box-sizing: border-box;
}
body.student-registration-page .registration-history-studio-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start !important;
    width: 100%;
    padding: .15rem 0 .9rem 3.25rem !important;
    gap: .85rem;
}
body.student-registration-page .registration-history-studio-copy,
body.student-registration-page .registration-history-studio-copy h2,
body.student-registration-page .registration-history-studio-copy p { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
body.student-registration-page .registration-history-studio-copy h2 { line-height: 1.18; }
body.student-registration-page .registration-history-studio-copy p { line-height: 1.5; }
body.student-registration-page .registration-history-studio-status {
    justify-self: end;
    max-width: 15rem;
    min-width: 0;
    white-space: normal;
}
body.student-registration-page .registration-history-overview {
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.student-registration-page .registration-history-overview > div,
body.student-registration-page .registration-history-overview > div > span:last-child { min-width: 0; }
body.student-registration-page .registration-history-toolbar {
    width: 100%;
    grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(8rem, .8fr)) auto auto;
}
body.student-registration-page .registration-history-search,
body.student-registration-page .registration-history-filter,
body.student-registration-page .registration-history-search input,
body.student-registration-page .registration-history-filter select { min-width: 0; max-width: 100%; }
body.student-registration-page .registration-history-list {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
body.student-registration-page .registration-history-record {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 2.45rem minmax(0, 1fr) !important;
}
body.student-registration-page .registration-history-body,
body.student-registration-page .registration-history-topline,
body.student-registration-page .registration-history-period,
body.student-registration-page .registration-history-actions { min-width: 0; max-width: 100%; }
body.student-registration-page .registration-history-topline { align-items: start; }
body.student-registration-page .registration-history-period h3,
body.student-registration-page .registration-history-period small,
body.student-registration-page .registration-history-action b,
body.student-registration-page .registration-history-action small { overflow-wrap: anywhere; white-space: normal; }
body.student-registration-page .registration-history-metrics { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.student-registration-page .registration-history-action { max-width: 100%; }
@media (max-width: 64rem) {
    body.student-registration-page .registration-history-studio-header { grid-template-columns: 1fr; }
    body.student-registration-page .registration-history-studio-status { justify-self: start; }
    body.student-registration-page .registration-history-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.student-registration-page .registration-history-search { grid-column: 1 / -1; }
    body.student-registration-page .registration-history-reset { justify-self: start; }
    body.student-registration-page .registration-history-result-count { justify-self: end; align-self: center; }
}
@media (max-width: 42rem) {
    body.student-registration-page .registration-history-studio-header { padding-left: 2.85rem !important; }
    body.student-registration-page .registration-history-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.student-registration-page .registration-history-toolbar { grid-template-columns: 1fr; }
    body.student-registration-page .registration-history-search { grid-column: auto; }
    body.student-registration-page .registration-history-reset,
    body.student-registration-page .registration-history-result-count { justify-self: stretch; }
    body.student-registration-page .registration-history-result-count { text-align: left; }
    body.student-registration-page .registration-history-topline { display: grid; gap: .55rem; }
    body.student-registration-page .registration-history-status { justify-self: start; }
}
@media (max-width: 30rem) {
    body.student-registration-page .registration-history-studio { padding: .7rem !important; }
    body.student-registration-page .registration-history-studio-mark { top: .78rem; left: .7rem; width: 2.2rem; height: 2.2rem; }
    body.student-registration-page .registration-history-studio-header { padding-left: 2.75rem !important; }
    body.student-registration-page .registration-history-overview { gap: .35rem; }
    body.student-registration-page .registration-history-overview > div { padding: .45rem; }
    body.student-registration-page .registration-history-record { grid-template-columns: 2.1rem minmax(0, 1fr) !important; padding: .65rem; }
    body.student-registration-page .registration-history-rail-icon { width: 2rem; height: 2rem; flex-basis: 2rem; }
    body.student-registration-page .registration-history-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; }
    body.student-registration-page .registration-history-metrics > span { grid-template-columns: 1fr; row-gap: .16rem; padding: .35rem .3rem; }
    body.student-registration-page .registration-history-metrics i { grid-row: auto; }
}

/* Academic archive studio polish */
body.student-registration-page .registration-history-studio {
    border: 1px solid #cfe5d6 !important;
    border-radius: 1.25rem !important;
    background:
        radial-gradient(circle at 100% 0, rgba(106, 206, 137, .16), transparent 26%),
        linear-gradient(145deg, #ffffff 0%, #f4fbf6 100%) !important;
    box-shadow: 0 24px 60px rgba(17, 81, 45, .12) !important;
}
body.student-registration-page .registration-history-studio-mark {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border: 4px solid rgba(255,255,255,.78);
    border-radius: .9rem;
    background: linear-gradient(145deg, #075d37, #21a45e);
    box-shadow: 0 12px 24px rgba(8, 116, 71, .24), 0 0 0 1px #79c592;
    color: #fff;
    font-size: 1.08rem;
}
body.student-registration-page .registration-history-studio-header {
    border-bottom-color: #d8eade;
}
body.student-registration-page .registration-history-kicker {
    padding: .28rem .5rem;
    border: 1px solid #cce7d4;
    border-radius: 999px;
    background: #eaf8ee;
    color: #117643;
    font-size: .58rem;
    letter-spacing: .085em;
}
body.student-registration-page .registration-history-studio-copy h2 {
    color: #123f28;
    font-size: clamp(1.2rem, 2.8vw, 1.7rem);
    letter-spacing: -.045em;
}
body.student-registration-page .registration-history-studio-copy p {
    color: #607b6b;
    font-size: .75rem;
}
body.student-registration-page .registration-history-studio-status {
    border-color: #c5e4ce;
    background: rgba(240, 251, 243, .92);
    box-shadow: 0 7px 16px rgba(24, 105, 57, .06);
}
body.student-registration-page .registration-history-overview {
    gap: .65rem;
    margin-top: 1rem;
}
body.student-registration-page .registration-history-overview > div {
    position: relative;
    overflow: hidden;
    min-height: 3.3rem;
    padding: .62rem .68rem;
    border-color: #d8eade;
    background: rgba(255,255,255,.84);
    box-shadow: 0 7px 16px rgba(29, 98, 55, .045);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body.student-registration-page .registration-history-overview > div::after {
    position: absolute;
    right: -.9rem;
    bottom: -.95rem;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgba(69, 174, 100, .08);
    content: "";
}
body.student-registration-page .registration-history-overview > div:hover {
    transform: translateY(-2px);
    border-color: #8fcba1;
    box-shadow: 0 12px 24px rgba(29, 112, 59, .1);
}
body.student-registration-page .registration-overview-icon {
    position: relative;
    z-index: 1;
    width: 1.95rem;
    height: 1.95rem;
    border-radius: .65rem;
    font-size: .86rem;
}
body.student-registration-page .registration-history-overview b { font-size: .75rem; }
body.student-registration-page .registration-history-overview small { font-size: .56rem; }
body.student-registration-page .registration-history-toolbar {
    margin-top: 1rem;
    padding: .62rem;
    border-color: #d6e8db;
    border-radius: .9rem;
    background: rgba(242, 250, 244, .9);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
body.student-registration-page .registration-history-search,
body.student-registration-page .registration-history-filter {
    min-height: 2.35rem;
    border-color: #cfe4d5;
    border-radius: .68rem;
    background: #fff;
    box-shadow: 0 3px 8px rgba(26, 97, 52, .035);
}
body.student-registration-page .registration-history-search input,
body.student-registration-page .registration-history-filter select { font-size: .68rem; }
body.student-registration-page .registration-history-reset {
    min-height: 2.35rem;
    border-color: #c8e1cf;
    border-radius: .68rem;
    background: #fff;
    color: #277049;
}
body.student-registration-page .registration-history-result-count {
    color: #347454;
    font-size: .64rem;
    font-weight: 820;
}
body.student-registration-page .registration-history-list { gap: .8rem; margin-top: 1rem; }
body.student-registration-page .registration-history-record {
    position: relative;
    overflow: hidden;
    padding: .9rem !important;
    border-color: #d6e9dc;
    border-radius: 1rem;
    background: rgba(255,255,255,.9);
    box-shadow: 0 9px 22px rgba(30, 94, 53, .06);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.student-registration-page .registration-history-record::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: #b8ddc2;
    content: "";
}
body.student-registration-page .registration-history-record:hover,
body.student-registration-page .registration-history-record:focus-within {
    transform: translateY(-2px);
    border-color: #8cc79d;
    box-shadow: 0 16px 30px rgba(25, 105, 57, .12);
}
body.student-registration-page .registration-history-record.is-current {
    border-color: #55b376;
    background: linear-gradient(145deg, #f8fff9 0%, #eaf8ee 100%);
    box-shadow: inset 4px 0 #16814a, 0 14px 27px rgba(25, 105, 57, .11);
}
body.student-registration-page .registration-history-record.is-current::before { background: #16814a; }
body.student-registration-page .registration-history-rail-icon {
    border-color: #b8dfc3;
    background: #eaf8ed;
    box-shadow: 0 7px 14px rgba(23, 123, 67, .1);
}
body.student-registration-page .registration-history-record.is-current .registration-history-rail-icon {
    background: linear-gradient(145deg, #087447, #2baa62);
    box-shadow: 0 8px 16px rgba(8,116,71,.2);
}
body.student-registration-page .registration-history-period > span { color: #14804a; }
body.student-registration-page .registration-history-period h3 { color: #16472e; font-size: .98rem; }
body.student-registration-page .registration-history-period small { color: #6b8575; }
body.student-registration-page .registration-history-status { min-height: 1.7rem; padding-inline: .56rem; }
body.student-registration-page .registration-history-metrics { gap: .45rem; margin-top: .82rem; }
body.student-registration-page .registration-history-metrics > span {
    padding: .5rem .52rem;
    border-color: #dcece1;
    border-radius: .68rem;
    background: rgba(251, 255, 252, .9);
}
body.student-registration-page .registration-history-metrics b { color: #195d38; font-size: .74rem; }
body.student-registration-page .registration-history-metrics small { color: #718b7b; font-size: .56rem; }
body.student-registration-page .registration-history-actions { margin-top: .82rem; padding-top: .7rem; }
body.student-registration-page .registration-history-studio .registration-history-action {
    min-height: 2.9rem;
    border-color: #a9d8b6;
    border-radius: .75rem;
    background: linear-gradient(135deg, #effbf2, #dff4e5);
}
body.student-registration-page .registration-history-action-icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: .6rem;
    background: linear-gradient(145deg, #087447, #2baa62);
}
@media (max-width: 42rem) {
    body.student-registration-page .registration-history-overview > div { min-height: 3rem; }
    body.student-registration-page .registration-history-record { padding: .78rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    body.student-registration-page .registration-history-overview > div,
    body.student-registration-page .registration-history-record { transition: none; }
}
