:root {
  --institutional-blue: #1B396D;
  --institutional-blue-dark: #132b57;
  --institutional-blue-soft: #edf3ff;
  --institutional-blue-light: #dfe8fb;
  --navy-900: var(--institutional-blue-dark);
  --navy-800: var(--institutional-blue);
  --navy-700: #24407d;
  --navy-600: #3a5a95;
  --navy-100: #edf3ff;
  --navy-50: #f5f8ff;
}

body {
  background: var(--navy-50);
  min-height: 100vh;
}

.site-header {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-700) 100%);
  padding: 2rem 0 2.5rem;
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
}

.site-header h1 {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: .5px;
}

.site-header .subtitle {
  color: #c5cae9;
  font-size: .95rem;
}

.session-card {
  background: white;
  border-left: 5px solid var(--navy-800);
  border-radius: .5rem;
  box-shadow: 0 2px 8px rgba(27, 57, 109, .12);
}

.session-label {
  color: var(--navy-700);
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .8px;
}

.session-value {
  color: var(--navy-900);
  font-size: 1.25rem;
  font-weight: 700;
}

.form-card {
  background: white;
  border-radius: .75rem;
  border-top: 4px solid var(--navy-800);
  box-shadow: 0 4px 16px rgba(27, 57, 109, .12);
}

.form-label {
  color: var(--navy-800);
  font-weight: 600;
  font-size: .9rem;
}

.form-control,
.form-select {
  border-color: #c5cae9;
  transition: border-color .2s, box-shadow .2s;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--navy-600);
  box-shadow: 0 0 0 3px rgba(58, 90, 149, .2);
}

.day-badge {
  background: var(--navy-800);
  color: white;
  border-radius: .4rem;
  padding: .45rem 1.1rem;
  font-weight: 700;
  font-size: 1rem;
  display: inline-block;
}

.btn-navy {
  background: var(--navy-800);
  color: white;
  font-weight: 600;
  letter-spacing: .4px;
  border: none;
  padding: .7rem 2rem;
  border-radius: .45rem;
  transition: background .2s, transform .1s;
}

.btn-navy:hover {
  background: var(--navy-900);
  color: white;
  transform: translateY(-1px);
}

.btn-navy:active {
  transform: translateY(0);
}

.spots-bar {
  height: 10px;
  border-radius: 5px;
  background: #e0e0e0;
  overflow: hidden;
}

.spots-fill {
  height: 100%;
  border-radius: 5px;
  transition: width .4s ease;
}

.closed-banner {
  background: white;
  border-left: 5px solid #c62828;
  border-radius: .5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

.success-card {
  background: white;
  border-radius: .75rem;
  border-top: 4px solid #2e7d32;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .1);
}

.success-icon {
  font-size: 4rem;
  color: #2e7d32;
}

.success-title {
  color: #2e7d32;
}

.success-summary {
  background: var(--navy-50);
  border: 1px solid #e8eaf6;
  border-radius: .5rem;
}

.detail-row {
  border-bottom: 1px solid #e8eaf6;
  padding: .6rem 0;
}

.detail-row:last-child {
  border-bottom: 0;
}

.detail-label {
  color: var(--navy-700);
  font-weight: 600;
  font-size: .88rem;
}

.detail-value {
  color: var(--navy-800);
  font-weight: 700;
}

.req {
  color: #c62828;
}

.page-shell {
  max-width: 640px;
  padding-top: 2.5rem;
  padding-bottom: 3rem;
}

.site-footer {
  background: var(--navy-900);
  color: #c7d2ee;
  font-size: .82rem;
}
