.role-parent {
  background:
    radial-gradient(circle at 12% 8%, rgba(201, 24, 37, .07), transparent 25rem),
    linear-gradient(180deg, #f9fafb 0, #eef1f6 44rem);
}

.role-parent .container {
  width: min(1320px, calc(100% - 36px));
  padding: 24px 0 64px;
}

.role-parent .footer {
  color: #8a94a6;
  text-align: center;
}

.parent-shell { gap: 30px; }

.parent-hero {
  min-height: 318px;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
  padding: 44px 48px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 32px;
  background:
    linear-gradient(122deg, rgba(255,255,255,.025), transparent 40%),
    linear-gradient(125deg, #111625 0%, #20283e 58%, #74121c 145%);
  box-shadow: 0 32px 75px rgba(17, 24, 39, .22);
}

.hero-glow {
  right: -70px;
  top: -150px;
  width: 510px;
  height: 510px;
  background: radial-gradient(circle, rgba(237, 55, 68, .52), rgba(189, 22, 34, 0) 68%);
}

.hero-orbit {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
  pointer-events: none;
}

.orbit-one { right: 80px; top: -150px; width: 430px; height: 430px; }
.orbit-two { right: -35px; bottom: -225px; width: 390px; height: 390px; }

.parent-hero-copy { max-width: 690px; }

.hero-mark {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 22px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  background: linear-gradient(145deg, #c91825, #ed4652);
  color: #fff;
  font-size: 21px;
  font-weight: 900;
  box-shadow: 0 12px 30px rgba(201,24,37,.32);
}

.parent-hero .eyebrow {
  margin-bottom: 13px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #f2a9af;
  font-size: 12px;
  letter-spacing: .13em;
}

.parent-hero h1 {
  max-width: 650px;
  margin-bottom: 12px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.04;
  letter-spacing: -.045em;
}

.parent-hero p {
  max-width: 610px;
  color: #c7cedc;
  font-size: 16px;
  line-height: 1.65;
}

.hero-balance {
  min-width: 0;
  padding: 27px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 18px 45px rgba(3,7,18,.18);
}

.balance-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.balance-label > span { color: #e4e8ef; font-size: 13px; font-weight: 700; }
.balance-label i { color: #98f0c2; font-size: 10px; font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.hero-balance strong { margin: 11px 0 22px; font-size: clamp(37px, 4vw, 50px); line-height: 1; }

.balance-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  margin-bottom: 15px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  background: rgba(255,255,255,.1);
}

.balance-meta span {
  display: grid;
  gap: 3px;
  padding: 12px 13px;
  background: rgba(14,19,32,.45);
  color: #9fa9bb;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.balance-meta b { color: #fff; font-size: 14px; letter-spacing: 0; text-transform: none; }
.hero-balance small { color: #9fa9bb; font-size: 11px; }

.child-switch { flex-wrap: wrap; margin-top: 22px; }
.child-switch a { padding: 8px 13px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; }
.child-switch a:hover { background: rgba(255,255,255,.18); }

.child-heading { margin: 1px 5px 17px; }
.child-avatar { width: 52px; height: 52px; border-radius: 17px; font-size: 15px; }
.child-heading span { font-size: 12px; letter-spacing: .09em; }
.child-heading h2 { margin-top: 2px; font-size: 25px; }
.status-pill { padding: 9px 13px; font-size: 13px; }

.parent-stats { gap: 16px; }
.parent-stat {
  min-height: 116px;
  padding: 23px;
  border-color: rgba(214,219,228,.85);
  border-radius: 22px;
  box-shadow: 0 16px 38px rgba(16,24,40,.07);
}
.parent-stat span { font-size: 13px; font-weight: 650; }
.parent-stat strong { margin: 4px 0; font-size: 29px; }
.parent-stat small { font-size: 12px; }
.stat-icon { flex-basis: 48px; width: 48px; height: 48px; border-radius: 15px; }

.fund-card {
  margin: 16px 0 21px;
  padding: 21px 23px;
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 32px rgba(16,24,40,.05);
}
.fund-copy span, .fund-copy small { font-size: 13px; }
.fund-copy strong { font-size: 15px; }
.fund-track { height: 10px; margin: 13px 0 10px; }

.parent-content-grid { grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr); gap: 20px; align-items: start; }
.parent-panel { border-color: rgba(214,219,228,.9); border-radius: 24px; box-shadow: 0 18px 46px rgba(16,24,40,.075); }
.payments-panel { position: sticky; top: 94px; }
.panel-title { padding: 25px 25px 17px; }
.panel-title span:first-child { font-size: 12px; letter-spacing: .09em; }
.panel-title h3 { margin-top: 3px; font-size: 22px; }
.counter { min-width: 34px; height: 34px; border-radius: 11px; font-size: 13px; }

.activity-list { padding: 0 14px 12px; }
.activity-item { grid-template-columns: 50px minmax(0,1fr) auto; gap: 15px; padding: 14px 11px; }
.date-tile { width: 46px; height: 49px; border-radius: 14px; }
.date-tile strong { font-size: 17px; }
.date-tile span { font-size: 10px; }
.activity-copy strong { font-size: 15px; }
.activity-copy span { margin-top: 2px; font-size: 12px; }
.activity-amount { color: #253047; font-size: 15px; }
.show-more { padding: 16px; font-size: 13px; }

.payment-list { padding: 0 16px; }
.payment-item { grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; padding: 15px 8px; }
.payment-mark { width: 40px; height: 40px; border-radius: 13px; }
.payment-item strong { font-size: 14px; }
.payment-item span { margin-top: 2px; font-size: 11px; }
.payment-item b { font-size: 14px; }
.trust-box { margin: 20px; padding: 17px; border-radius: 17px; }
.trust-icon { flex-basis: 34px; width: 34px; height: 34px; }
.trust-box strong { font-size: 13px; }
.trust-box p { font-size: 11px; }

@media (max-width: 960px) {
  .role-parent .topbar { flex-direction: row; align-items: center; }
  .role-parent .nav { width: auto; overflow: visible; padding: 0; }
  .role-parent .nav a:not(.logout) { display: none; }
  .parent-hero { grid-template-columns: 1fr; }
  .hero-balance { width: min(100%, 560px); }
  .parent-content-grid { grid-template-columns: 1fr; }
  .payments-panel { position: static; }
}

@media (max-width: 600px) {
  .role-parent { background: #eef1f5; }
  .role-parent .topbar {
    min-height: 64px;
    padding: 9px 13px;
    background: rgba(255,255,255,.97);
  }
  .role-parent .logo { width: 40px; height: 40px; border-radius: 13px; }
  .role-parent .brand { gap: 9px; }
  .role-parent .brand-title { max-width: 178px; overflow: hidden; text-overflow: ellipsis; font-size: 15px; white-space: nowrap; }
  .role-parent .brand-sub { display: none; }
  .role-parent .nav .logout { min-height: 38px; margin: 0; padding: 8px 11px; font-size: 12px; }
  .role-parent .container { width: 100%; padding: 0 0 32px; }
  .role-parent .footer { display: none; }
  .parent-shell { gap: 0; }
  .parent-hero {
    min-height: 0;
    gap: 22px;
    padding: 25px 17px 24px;
    border: 0;
    border-radius: 0 0 29px 29px;
    box-shadow: 0 20px 46px rgba(17,24,39,.2);
  }
  .hero-mark { width: 41px; height: 41px; margin-bottom: 17px; border-radius: 13px; font-size: 18px; }
  .parent-hero .eyebrow { margin-bottom: 8px; font-size: 10px; }
  .parent-hero h1 { margin-bottom: 9px; font-size: 31px; }
  .parent-hero p { font-size: 14px; line-height: 1.55; }
  .hero-glow { right: -150px; top: -130px; width: 390px; height: 390px; }
  .orbit-one { right: -30px; top: -95px; width: 270px; height: 270px; }
  .orbit-two { display: none; }
  .hero-balance { width: 100%; padding: 20px; border-radius: 20px; }
  .balance-label > span { font-size: 12px; }
  .balance-label i { font-size: 9px; }
  .hero-balance strong { margin: 10px 0 18px; font-size: 39px; }
  .balance-meta span { padding: 10px 11px; font-size: 9px; }
  .balance-meta b { font-size: 12px; }
  .child-switch { margin-top: 16px; }
  .child-section { padding: 24px 13px 5px; }
  .child-heading {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr);
    gap: 0 11px;
    align-items: center;
    margin: 0 3px 15px;
  }
  .child-avatar { width: 48px; height: 48px; border-radius: 15px; }
  .child-heading h2 { font-size: 21px; }
  .child-heading span { font-size: 10px; }
  .status-pill {
    position: static;
    grid-column: 1 / -1;
    justify-self: start;
    margin: 10px 0 0 59px;
    padding: 7px 10px;
    font-size: 11px;
  }
  .parent-stats { grid-template-columns: 1fr 1fr; gap: 9px; }
  .parent-stat { min-height: 106px; display: grid; gap: 8px; padding: 15px; border-radius: 17px; }
  .parent-stat.balance { grid-column: 1 / -1; min-height: 96px; grid-template-columns: 42px 1fr; align-items: center; }
  .parent-stat:not(.balance) { align-content: start; }
  .parent-stat .stat-icon { width: 38px; height: 38px; border-radius: 12px; font-size: 16px; }
  .parent-stat span { font-size: 11px; }
  .parent-stat strong { font-size: 21px; }
  .parent-stat small { font-size: 10px; line-height: 1.35; }
  .fund-card { margin: 10px 0 13px; padding: 17px 16px; border-radius: 17px; }
  .fund-copy span, .fund-copy small { font-size: 11px; }
  .fund-copy strong { font-size: 13px; }
  .parent-content-grid { gap: 13px; }
  .parent-panel { border-radius: 19px; box-shadow: 0 12px 30px rgba(16,24,40,.065); }
  .panel-title { padding: 19px 17px 13px; }
  .panel-title span:first-child { font-size: 10px; }
  .panel-title h3 { font-size: 19px; }
  .activity-list { padding: 0 7px 9px; }
  .activity-item {
    grid-template-columns: 43px minmax(0,1fr) auto;
    gap: 10px;
    padding: 12px 9px;
  }
  .date-tile { width: 41px; height: 44px; border-radius: 12px; }
  .date-tile strong { font-size: 15px; }
  .activity-copy strong { font-size: 13px; white-space: normal; line-height: 1.25; }
  .activity-copy span { font-size: 10px; }
  .activity-amount { grid-column: auto; margin: 0; font-size: 12px; }
  .payment-list { padding: 0 8px; }
  .payment-item { grid-template-columns: 38px minmax(0,1fr) auto; gap: 9px; padding: 13px 8px; }
  .payment-mark { width: 36px; height: 36px; border-radius: 12px; }
  .payment-item strong { white-space: normal; font-size: 12px; line-height: 1.25; }
  .payment-item b { grid-column: auto; font-size: 12px; }
  .trust-box { margin: 14px; padding: 14px; }
}

@media (max-width: 380px) {
  .role-parent .brand-title { max-width: 145px; }
  .activity-item { grid-template-columns: 40px minmax(0,1fr); }
  .activity-amount { grid-column: 2; }
  .payment-item { grid-template-columns: 36px minmax(0,1fr); }
  .payment-item b { grid-column: 2; }
}
