:root {
  --rk-primary: #1565C0;
  --rk-primary-dark: #0D3B66;
  --rk-primary-light: #EAF4FF;
  --rk-success: #16803C;
  --rk-warning: #B45309;
  --rk-danger: #B42318;
  --rk-geofence: #6D28D9;
  --rk-text: #1F2937;
  --rk-text-secondary: #6B7280;
  --rk-background: #F3F4F6;
  --rk-surface: #FFFFFF;
  --rk-border: #D1D5DB;
  --rk-focus: #2563EB;
  --rk-radius-small: 8px;
  --rk-radius-button: 10px;
  --rk-radius-card: 12px;
  --rk-radius-modal: 16px;
  --rk-space-1: 8px;
  --rk-space-2: 16px;
  --rk-space-3: 24px;
  --rk-space-4: 32px;
  --rk-space-5: 40px;
  --rk-space-6: 48px;
  --rk-shadow-card: 0 8px 24px rgba(13, 59, 102, 0.08);
}

.rk-ui,
.rk-ui * { box-sizing: border-box; }
.rk-ui { font-family: Inter, Arial, Helvetica, sans-serif; color: var(--rk-text); }
.rk-ui button,
.rk-ui input,
.rk-ui select,
.rk-ui textarea { font: inherit; }

/* Prevent public-home .portal-card grid styles from leaking into the authenticated Family Portal. */
.parent-shell .portal-card {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  align-items: initial !important;
}
.parent-shell .portal-card > * { min-width: 0; }

.rk-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 20px;
  border-radius: var(--rk-radius-button);
  border: 1px solid transparent;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.rk-button:hover { transform: translateY(-1px); }
.rk-button:focus-visible,
.rk-field input:focus-visible,
.rk-field select:focus-visible,
.rk-field textarea:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .28);
  outline-offset: 2px;
}
.rk-button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.rk-button--primary { background: var(--rk-primary); color: #fff; }
.rk-button--primary:hover { background: #0F56A8; }
.rk-button--secondary { background: #fff; color: var(--rk-primary); border-color: var(--rk-primary); }
.rk-button--success { background: var(--rk-success); color: #fff; }
.rk-button--danger { background: #fff; color: var(--rk-danger); border-color: var(--rk-danger); }
.rk-button--full { width: 100%; }

.rk-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
.rk-status::before { width: 8px; height: 8px; border-radius: 50%; content: ""; background: currentColor; }
.rk-status--inactive { color: #4B5563; background: #F3F4F6; }
.rk-status--enroute { color: #0F56A8; background: #EAF4FF; }
.rk-status--approaching { color: #92400E; background: #FFF7ED; }
.rk-status--geofence { color: #5B21B6; background: #F3E8FF; }
.rk-status--ready { color: #166534; background: #ECFDF3; }
.rk-status--released { color: #14532D; background: #DCFCE7; }
.rk-status--attention { color: #991B1B; background: #FEF2F2; }

.rk-card {
  background: var(--rk-surface);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-card);
  box-shadow: var(--rk-shadow-card);
}
.rk-card__body { padding: var(--rk-space-3); }

.rk-student-card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: var(--rk-space-2);
  align-items: center;
}
.rk-student-photo {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  object-fit: cover;
  background: var(--rk-primary-light);
  display: grid;
  place-items: center;
  color: var(--rk-primary-dark);
  font-weight: 700;
}
.rk-student-card h3 { margin: 0 0 4px; font-size: 18px; line-height: 1.25; }
.rk-student-meta { margin: 0; color: var(--rk-text-secondary); font-size: 14px; }
.rk-student-status { margin-top: 8px; }

.rk-family-card__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
}
.rk-family-card__header h3 { margin: 0 0 4px; font-size: 20px; }
.rk-family-card__students { display: grid; gap: 10px; }
.rk-family-student {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  background: #fff;
}
.rk-family-student input { width: 20px; height: 20px; }
.rk-family-card__actions { margin-top: 16px; display: grid; gap: 10px; }

.rk-alert {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--rk-radius-card);
  border: 1px solid;
  font-size: 14px;
  line-height: 1.45;
}
.rk-alert strong { display: block; margin-bottom: 2px; }
.rk-alert--info { background: #EFF6FF; border-color: #BFDBFE; color: #1E3A8A; }
.rk-alert--success { background: #ECFDF3; border-color: #BBF7D0; color: #14532D; }
.rk-alert--warning { background: #FFF7ED; border-color: #FED7AA; color: #7C2D12; }
.rk-alert--critical { background: #FEF2F2; border-color: #FECACA; color: #7F1D1D; }

.rk-field { display: grid; gap: 7px; }
.rk-field label { font-size: 14px; font-weight: 700; }
.rk-field input,
.rk-field select,
.rk-field textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-small);
  padding: 11px 12px;
  background: #fff;
  color: var(--rk-text);
}
.rk-field__help { color: var(--rk-text-secondary); font-size: 13px; }
.rk-field__error { color: var(--rk-danger); font-size: 13px; font-weight: 600; }

.rk-nav {
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px;
  background: var(--rk-surface);
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-card);
}
.rk-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border-radius: 8px;
  color: var(--rk-text-secondary);
  text-decoration: none;
  font-weight: 600;
}
.rk-nav a[aria-current="page"] { background: var(--rk-primary-light); color: var(--rk-primary-dark); }

.rk-geofence {
  padding: 16px;
  border: 1px solid #DDD6FE;
  border-left: 4px solid var(--rk-geofence);
  border-radius: var(--rk-radius-card);
  background: #FAF5FF;
}
.rk-geofence__title { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-weight: 700; color: #4C1D95; }
.rk-geofence p { margin: 0; color: #6B21A8; font-size: 14px; }

.rk-release {
  width: min(520px, calc(100vw - 32px));
  background: #fff;
  border: 1px solid var(--rk-border);
  border-radius: var(--rk-radius-modal);
  box-shadow: 0 24px 80px rgba(17, 24, 39, .22);
  padding: 24px;
}
.rk-release h2 { margin: 0 0 6px; font-size: 24px; color: var(--rk-primary-dark); }
.rk-release__student { display: grid; grid-template-columns: 80px 1fr; gap: 16px; align-items: center; margin: 20px 0; }
.rk-release__student .rk-student-photo { width: 80px; height: 80px; }
.rk-release__details { display: grid; gap: 8px; margin: 16px 0; }
.rk-release__row { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 8px; border-bottom: 1px solid #E5E7EB; }
.rk-release__row span:first-child { color: var(--rk-text-secondary); }
.rk-release__actions { display: grid; gap: 10px; margin-top: 20px; }

.rk-state {
  text-align: center;
  padding: 32px 20px;
  border: 1px dashed var(--rk-border);
  border-radius: var(--rk-radius-card);
  background: #fff;
}
.rk-state h3 { margin: 0 0 8px; font-size: 18px; }
.rk-state p { margin: 0; color: var(--rk-text-secondary); }
.rk-state--offline { border-color: #FED7AA; background: #FFF7ED; }
.rk-state--error { border-color: #FECACA; background: #FEF2F2; }

.rk-stack { display: grid; gap: var(--rk-space-2); }
.rk-cluster { display: flex; flex-wrap: wrap; gap: var(--rk-space-2); align-items: center; }
.rk-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 640px) {
  .rk-student-card { grid-template-columns: 56px minmax(0,1fr); }
  .rk-student-photo { width: 56px; height: 56px; }
  .rk-student-card > :last-child { grid-column: 1 / -1; }
  .rk-family-card__header { flex-direction: column; }
  .rk-family-student { grid-template-columns: auto 1fr; }
  .rk-family-student > :last-child { grid-column: 2; }
  .rk-nav { overflow-x: auto; }
}
