.connection-guide {
  margin: 0 0 1.35rem;
  padding: 1.1rem 1.25rem;
  border: 2px solid var(--gold);
  border-radius: 18px;
  background: var(--cream);
}
.connection-guide h3 { margin-top: 0; }
.connection-guide ol { padding-left: 1.35rem; }
.connection-guide li + li { margin-top: .65rem; }

.detail-body { min-width: 0; }
.backup-form {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #fbfcfa;
}
.backup-form .primary { margin-top: 1rem; }
.check-row { display: flex; align-items: flex-start; gap: .55rem; font-weight: 600; }
.check-row input { flex: 0 0 24px; margin: .1rem 0 0; }
.import-success { color: var(--ok) !important; }
.metric-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(8rem,1fr));
  gap: .75rem;
  margin: 1rem 0;
}
.metric-grid div { padding: .85rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--cream); }
.metric-grid dt { color: var(--muted); font-size: .83rem; font-weight: 700; }
.metric-grid dd { margin: .15rem 0 0; font: 800 1.65rem/1 Georgia,"Times New Roman",serif; }
.metric-grid .metric-text { overflow-wrap: anywhere; font: 700 1rem/1.25 system-ui,-apple-system,"Segoe UI",sans-serif; }
.status-summary { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; }
.status-summary span { border-radius: 999px; padding: .35rem .65rem; background: #e8f5ee; color: var(--forest-deep); font-size: .88rem; }
.backup-history { list-style: none; padding: 0; margin: .5rem 0 0; }
.backup-history li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 0; border-top: 1px solid var(--line); }
.secondary.compact { min-height: 44px; padding: .55rem .8rem; font-size: .9rem; }
.record-open { margin-top: 1rem; }
.complete-record {
  margin: 1.4rem 0;
  padding: clamp(1rem,3vw,1.5rem);
  border: 2px solid var(--forest);
  border-radius: .75rem;
  background: #f8fbf9;
}
.record-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.record-heading h3 { margin: 0; font-size: clamp(1.7rem,4vw,2.25rem); }
.record-heading p { margin: .35rem 0; color: var(--muted); }
.eyebrow { color: var(--forest) !important; font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.record-callout { margin: 1rem 0; padding: .85rem 1rem; border-left: 5px solid var(--gold); background: var(--cream); }
.record-section { margin-top: .75rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--paper); }
.record-section > summary { cursor: pointer; padding: .9rem 1rem; color: var(--forest-deep); font-weight: 800; }
.record-section[open] > summary { border-bottom: 1px solid var(--line); background: #eef7f2; }
.record-count { display: inline-flex; margin-left: .35rem; border-radius: 999px; padding: .12rem .45rem; background: var(--forest-deep); color: #fff; font-size: .75rem; vertical-align: middle; }
.record-content { padding: 1rem; min-width: 0; }
.record-tree { margin: 0; }
.record-pair { display: grid; grid-template-columns: minmax(10rem,30%) 1fr; gap: .7rem; padding: .65rem 0; border-top: 1px solid #e8ece9; }
.record-pair:first-child { border-top: 0; }
.record-pair dt { color: var(--muted); font-weight: 750; overflow-wrap: anywhere; }
.record-pair dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.record-list { margin: .2rem 0; padding-left: 1.4rem; }
.record-list li + li { margin-top: .5rem; }
.record-value,.record-answer-text { overflow-wrap: anywhere; }
.record-answer-text { display: block; padding: .65rem .75rem; border-left: 4px solid var(--gold); background: var(--cream); color: var(--ink); white-space: pre-wrap; }
.record-empty,.record-raw { color: var(--muted); font-style: italic; }
.record-raw { font-size: .78rem; }
.record-card,.answer-workbook { margin: 0 0 .85rem; padding: .85rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; }
.record-card:last-child,.answer-workbook:last-child { margin-bottom: 0; }
.record-card h4,.answer-workbook h4 { margin: 0 0 .45rem; color: var(--forest-deep); font-size: 1.15rem; overflow-wrap: anywhere; }
.answer-entry { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.answer-entry h5 { margin: 0 0 .35rem; font-size: 1rem; overflow-wrap: anywhere; }

/* Comprehensive child profile dashboard */
.portal-grid { grid-template-columns: minmax(15rem,19rem) minmax(0,1fr); }
.portal-grid.child-portal-grid { grid-template-columns: minmax(12.75rem,15rem) minmax(0,1fr); }
.child-profile-list { align-self: start; padding: .3rem; }
.child-profile-list .profile-row {
  grid-template-columns: 2.35rem minmax(0,1fr) auto;
  gap: .6rem;
  min-height: 70px;
  padding: .62rem .7rem;
}
.child-profile-list .avatar { width: 2.35rem; height: 2.35rem; font-size: .9rem; }
.child-profile-list .profile-name { min-width: 0; font-size: 1.05rem; line-height: 1.15; overflow-wrap: anywhere; }
.child-profile-list .row-action {
  width: 4.1rem;
  color: var(--forest-deep);
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.2;
  text-align: right;
}
.child-profile-list .profile-row:hover { background: #f6faf7; }
.child-profile-list .profile-row.selected { background: #fff8df; }
.profile-workspace { padding: clamp(1rem,2.4vw,1.65rem); }
.profile-hero {
  display: grid;
  grid-template-columns: 4.5rem minmax(0,1fr) auto;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--line);
}
.profile-avatar {
  width: 4.5rem;
  height: 4.5rem;
  display: grid;
  place-items: center;
  border: 3px solid var(--gold);
  border-radius: 50%;
  background: var(--forest-deep);
  color: #fff;
  font: 800 2rem/1 Georgia,"Times New Roman",serif;
}
.profile-hero h2 { margin: 0; font-size: clamp(2rem,4vw,3.1rem); line-height: 1; }
.profile-hero-copy { min-width: 0; }
.profile-hero-copy h2,.profile-subtitle { overflow-wrap: anywhere; }
.profile-hero .eyebrow { margin: 0 0 .35rem; }
.profile-subtitle { margin: .5rem 0 0; color: var(--muted); font-weight: 650; }
.profile-sync-row { margin: .75rem 0 0; }
.profile-sync-link {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem;
  min-height: 44px;
  padding: .45rem .65rem;
  border: 1px solid currentColor;
  border-radius: .45rem;
  text-decoration: none;
  font-size: .9rem;
}
.profile-sync-link.connected { color: #07522f; background: #e5f5eb; }
.profile-sync-link.offline { color: #7a3500; background: #fff4d8; }
.profile-sync-dot { width: .65rem; height: .65rem; border-radius: 50%; background: currentColor; }
.profile-sync-action { margin-left: .2rem; font-weight: 800; }
.profile-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.profile-actions .compact { min-height: 44px; }
.dashboard-empty {
  margin: 1rem 0;
  padding: 1.2rem;
  border: 2px dashed #86a698;
  border-radius: .65rem;
  background: #f4faf6;
}
.dashboard-empty h3 { margin: 0; }
.rank-overview {
  display: grid;
  grid-template-columns: minmax(14rem,.75fr) minmax(18rem,1.25fr);
  gap: 1.5rem;
  margin-top: 1rem;
  padding: 1.25rem;
  border: 1px solid #a9c4b7;
  border-left: 7px solid var(--forest);
  border-radius: .65rem;
  background: #f1f8f4;
}
.rank-overview h3 { margin: 0; font-size: 1.9rem; }
.rank-overview p { margin: .35rem 0 0; color: var(--muted); }
.rank-progress-bars { display: grid; gap: .85rem; }
.progress-row > div { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .3rem; }
.progress-row span { color: var(--muted); font-size: .9rem; }
.progress-row progress { width: 100%; height: 1.05rem; accent-color: var(--forest); }
.progress-row.official progress { accent-color: #9a6500; }
.rank-note { font-size: .9rem; }
.rank-note span { color: #8f101c; font-weight: 750; }
.rank-ladder {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #a9c4b7;
  border-radius: .65rem;
  background: #fff;
}
.rank-ladder-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.rank-ladder-heading h3 { margin: 0; font-size: 1.55rem; }
.rank-ladder-heading p:not(.eyebrow) { max-width: 48rem; margin: .3rem 0 0; color: var(--muted); }
.rank-ladder-list { display: grid; gap: .55rem; }
.rank-ladder-row {
  border: 1px solid #c9d8d1;
  border-radius: .55rem;
  background: #f8fbf9;
  overflow: hidden;
}
.rank-ladder-row.current-rank { border-left: 6px solid #d2a91f; background: #fff9e7; }
.rank-ladder-summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(12rem,.7fr) minmax(18rem,1.3fr) 1.5rem;
  gap: 1rem;
  align-items: center;
  min-height: 64px;
  padding: .8rem .9rem;
  cursor: pointer;
  list-style: none;
}
.rank-ladder-summary::-webkit-details-marker { display: none; }
.rank-ladder-summary::after { content: '+'; color: var(--forest-deep); font-size: 1.5rem; font-weight: 800; text-align: center; }
.rank-ladder-row[open] > .rank-ladder-summary { border-bottom: 1px solid #c9d8d1; background: #edf6f1; }
.rank-ladder-row[open] > .rank-ladder-summary::after { content: '−'; }
.rank-ladder-name { display: grid; gap: .15rem; }
.rank-ladder-name strong { color: var(--forest-deep); font: 800 1.15rem/1.2 Georgia,"Times New Roman",serif; }
.rank-ladder-name span { color: var(--muted); font-size: .82rem; font-weight: 700; }
.rank-ladder-progress { display: block; }
.rank-progress-line { display: flex; justify-content: space-between; gap: .75rem; align-items: baseline; }
.rank-progress-line > strong { color: var(--forest-deep); font-size: 1.05rem; }
.rank-progress-line > span,.rank-ladder-progress small { color: var(--muted); font-size: .8rem; }
.rank-ladder-progress progress { width: 100%; height: .9rem; margin-top: .25rem; accent-color: var(--forest); }
.rank-ladder-progress small { display: block; margin-top: .1rem; }
.rank-requirement-panel { padding: 1rem; background: #fff; }
.rank-requirement-panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .85rem; }
.rank-requirement-panel-heading h4 { margin: 0; color: var(--forest-deep); font-size: 1.08rem; }
.rank-requirement-panel-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .88rem; }
.rank-requirement-list { display: grid; gap: .55rem; }
.rank-requirement-item { padding: .75rem; border: 1px solid #d7e1dc; border-left: 5px solid #9ba9a2; border-radius: .45rem; background: #fbfdfc; }
.rank-requirement-item.complete { border-left-color: #087443; background: #f1faf5; }
.rank-requirement-item.complete-pending { border-left-color: #806000; background: #fff9e8; }
.rank-requirement-item.ready,.rank-requirement-item.working { border-left-color: #356f99; background: #f2f7fb; }
.rank-requirement-item.reconcile { border-left-color: #b3202e; background: #fff4f4; }
.rank-requirement-title { display: grid; grid-template-columns: 2.6rem minmax(0,1fr) auto; align-items: start; gap: .65rem; }
.rank-requirement-title strong,.rank-requirement-title small { display: block; overflow-wrap: anywhere; }
.rank-requirement-title small { margin-top: .1rem; color: var(--muted); font-size: .78rem; }
.rank-requirement-id { display: grid; place-items: center; min-height: 2rem; border-radius: .35rem; background: var(--forest-deep); color: #fff; font-weight: 850; }
.rank-requirement-status { padding: .2rem .5rem; border-radius: 999px; background: #e7eeea; color: var(--forest-deep); font-size: .78rem; font-weight: 800; text-align: center; }
.rank-requirement-item > p { margin: .55rem 0 0 3.25rem; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.rank-requirement-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: .55rem 0 0 3.25rem; color: var(--muted); font-size: .82rem; }
.dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(6,minmax(7rem,1fr));
  margin: 1rem 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: .65rem;
  background: #fff;
  overflow: hidden;
}
.dashboard-metrics div { padding: .85rem; border-right: 1px solid var(--line); }
.dashboard-metrics div:last-child { border-right: 0; }
.dashboard-metrics dt { color: var(--muted); font-size: .78rem; font-weight: 750; }
.dashboard-metrics dd { margin: .1rem 0 0; color: var(--forest-deep); font: 800 1.65rem/1 Georgia,"Times New Roman",serif; }
.profile-dashboard-grid,.badge-dashboard-grid,.record-dashboard-grid { display: grid; gap: 1rem; margin: 1rem 0; }
.profile-dashboard-grid { grid-template-columns: 1fr 1fr; }
.badge-dashboard-grid { grid-template-columns: 1fr 1fr; }
.record-dashboard-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dashboard-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: .65rem;
  background: #fff;
  box-shadow: 0 7px 22px rgba(7,63,42,.05);
  overflow: hidden;
}
.dashboard-card:not(details) { padding: 1rem; }
.section-disclosure {
  margin: 1rem 0;
  border: 1px solid var(--line);
  border-radius: .65rem;
  background: #fff;
  box-shadow: 0 7px 22px rgba(7,63,42,.05);
  overflow: hidden;
}
.section-disclosure-summary {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 64px;
  padding: .8rem 1rem;
  color: var(--forest-deep);
  cursor: pointer;
  list-style: none;
}
.section-disclosure-summary::-webkit-details-marker { display: none; }
.section-disclosure-summary:hover,.section-disclosure-summary:focus-visible { background: #f2f8f4; }
.section-disclosure-summary::after {
  content: '+';
  flex: 0 0 1.4rem;
  margin-left: .15rem;
  color: var(--forest-deep);
  font: 900 1.5rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  text-align: center;
}
.section-disclosure[open] > .section-disclosure-summary { border-bottom: 1px solid var(--line); background: #f0f7f3; }
.section-disclosure[open] > .section-disclosure-summary::after { content: '−'; }
.section-disclosure-title { min-width: 0; flex: 1 1 auto; }
.section-disclosure-title strong { display: block; font: 800 1.3rem/1.2 Georgia,"Times New Roman",serif; }
.section-disclosure-title small { display: block; margin-top: .16rem; color: var(--muted); font: 650 .83rem/1.3 system-ui,-apple-system,"Segoe UI",sans-serif; }
.section-disclosure-count { flex: 0 0 auto; min-width: 2rem; padding: .16rem .5rem; border-radius: 999px; background: #e4f2ea; color: var(--forest-deep); font-size: .8rem; font-weight: 800; text-align: center; }
.section-disclosure-body { padding: 1rem; }
.section-disclosure-body.rank-overview { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.section-disclosure-body.rank-ladder { margin: 0; border: 0; border-radius: 0; }
.profile-dashboard-grid .section-disclosure { margin: 0; }
.card-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-bottom: .6rem; border-bottom: 1px solid var(--line); }
.card-heading h3 { margin: 0; font-size: 1.3rem; }
.card-heading > span { min-width: 2rem; padding: .15rem .45rem; border-radius: 999px; background: #e4f2ea; color: var(--forest-deep); font-weight: 800; text-align: center; }
.identity-list { margin: 0; }
.identity-list div { display: grid; grid-template-columns: minmax(8rem,35%) 1fr; gap: .7rem; padding: .6rem 0; border-bottom: 1px solid #e9edea; }
.identity-list div:last-child { border-bottom: 0; }
.identity-list dt { color: var(--muted); font-size: .86rem; font-weight: 750; }
.identity-list dd { margin: 0; overflow-wrap: anywhere; font-weight: 650; }
.empty-copy { color: var(--muted); font-size: .93rem; }
.badge-card > summary { display: flex; justify-content: space-between; align-items: center; gap: .7rem; cursor: pointer; list-style: none; padding: .9rem 1rem; color: var(--forest-deep); }
.badge-card > summary::-webkit-details-marker { display: none; }
.badge-card > summary::after { content: '+'; flex: 0 0 1.4rem; font: 900 1.5rem/1 system-ui,-apple-system,"Segoe UI",sans-serif; text-align: center; }
.badge-card > summary > .section-disclosure-count { background: var(--forest-deep); color: #fff; }
.badge-card[open] > summary { border-bottom: 1px solid var(--line); background: #f0f7f3; }
.badge-card[open] > summary::after { content: '−'; }
.badge-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; padding: .85rem; }
.badge-list > .empty-copy { grid-column: 1/-1; }
.badge-row { display: grid; grid-template-columns: 2rem 1fr; align-items: center; gap: .5rem; padding: .55rem; border: 1px solid #e7ebe8; border-radius: .45rem; }
.badge-row strong,.badge-row small { display: block; overflow-wrap: anywhere; }
.badge-row small { margin-top: .1rem; color: var(--muted); font-size: .78rem; }
.badge-mark { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 900; }
.badge-mark.earned { background: var(--forest); }
.badge-mark.pending { background: #996500; }
.badge-mark.started { background: #b3202e; font-size: 1.4rem; }
.reconcile-card { margin: 1rem 0; padding: 0; border: 2px solid #b3202e; border-radius: .65rem; background: #fff4f4; }
.reconcile-card .section-disclosure-title strong { color: #8f101c; }
.reconcile-card p { margin: .3rem 0; }
.reconcile-card ul { margin-bottom: 0; columns: 2; }
.record-summary-card ul { list-style: none; margin: .75rem 0 0; padding: 0; }
.record-summary-toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  min-height: 62px;
  padding: .75rem 1rem;
  color: var(--forest-deep);
  cursor: pointer;
}
.record-summary-toggle > span:first-child > strong { display: block; font: 800 1.3rem/1.2 Georgia,"Times New Roman",serif; }
.record-summary-toggle small { display: block; margin-top: .15rem; color: var(--forest); font: 750 .82rem/1.25 system-ui,-apple-system,"Segoe UI",sans-serif; }
.record-heading-count { min-width: 2rem; padding: .15rem .45rem; border-radius: 999px; background: #e4f2ea; color: var(--forest-deep); font-weight: 800; text-align: center; }
.record-summary-toggle:hover,.record-summary-toggle:focus-visible { background: #f2f8f4; }
.record-summary-card[open] > .record-summary-toggle { border-bottom: 1px solid var(--line); background: #f0f7f3; }
.record-summary-card[open] > .record-summary-toggle small { color: var(--muted); }
.record-close-copy { display: none; }
.record-summary-card[open] .record-open-copy { display: none; }
.record-summary-card[open] .record-close-copy { display: inline; }
.record-summary-body { padding: .85rem 1rem 1rem; }
.record-edit-link { color: var(--forest); font-size: .86rem; font-weight: 800; }
.record-edit-actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.record-summary-card li { padding: .55rem 0; border-bottom: 1px solid #e9edea; }
.record-summary-card li:last-child { border-bottom: 0; }
.record-summary-card strong,.record-summary-card small { display: block; overflow-wrap: anywhere; }
.record-summary-card small { margin-top: .15rem; color: var(--muted); }
.recent-work { margin: 1rem 0; }
.recent-work .identity-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.recent-work .identity-list div { display: block; padding: .75rem; border-right: 1px solid var(--line); border-bottom: 0; }
.recent-work .identity-list div:last-child { border-right: 0; }
.management-card {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  margin: 1.25rem 0;
  padding: 1.2rem;
  border: 1px solid #a9c4b7;
  border-radius: .65rem;
  background: #f7faf8;
}
.management-card.section-disclosure { display: block; padding: 0; }
.management-card .management-disclosure-body { padding: 1.2rem; }
.management-card .section-disclosure-summary .management-icon,.detail-section .section-disclosure-summary .detail-icon { flex: 0 0 auto; }
.detail-section.section-disclosure { display: block; padding: 0; border: 1px solid var(--line); }
.detail-section.section-disclosure .detail-body { padding: 1.2rem; }
.management-card h3 { margin: 0; font-size: 1.55rem; }
.management-card p { margin: .35rem 0; }
.management-card ol { margin: .9rem 0; padding-left: 1.3rem; }
.management-card li + li { margin-top: .45rem; }
.management-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .55rem; background: var(--forest-deep); color: #fff; font-size: 1.5rem; font-weight: 900; }
.import-freshness { display: inline-flex; align-items: center; min-height: 44px; color: var(--forest-deep); font-size: .9rem; font-weight: 750; }
.scoutbook-card .detail-actions { align-items: center; }
.data-tools-shell { margin: 1rem 0; }
.data-tools-body { padding: .8rem; background: #f7faf8; }
.data-tools-body > .section-disclosure,
.data-tools-body > .management-card,
.data-tools-body > .detail-section { margin: .65rem 0; box-shadow: none; }
.data-tools-body > :first-child { margin-top: 0; }
.data-tools-body > :last-child { margin-bottom: 0; }

/* Encrypted website-to-app sync and preview-first Scoutbook import */
.sync-online { background: #dff2e6; color: #07522f; }
.sync-offline { background: #fff0c9; color: #6b4700; }
.sync-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; margin: .9rem 0; }
.sync-details div { min-width: 0; padding: .7rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; }
.sync-details dt { color: var(--muted); font-size: .8rem; font-weight: 750; }
.sync-details dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-weight: 700; }
.detail-actions form { margin: 0; }
.detail-actions form button { width: 100%; }
.sync-connect-form { max-width: 44rem; }
.sync-connect-form .form-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.sync-source-list { margin: 1rem 0; padding-left: 1.35rem; }
.sync-source-list li + li { margin-top: .55rem; }
.field-help { margin: .25rem 0 .75rem !important; color: var(--muted); font-size: .88rem; }
.child-record-manager:target { outline: 4px solid var(--gold); outline-offset: 4px; }
.scoutbook-upload { max-width: 48rem; }
.scoutbook-preview {
  margin: 1.25rem 0;
  padding: clamp(1rem,3vw,1.5rem);
  border: 3px solid var(--gold);
  border-radius: .75rem;
  background: #fffdf5;
}
.preview-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .65rem; margin: 1rem 0; }
.preview-metrics div { min-width: 0; padding: .75rem; border: 1px solid #dccb91; border-radius: .45rem; background: #fff; }
.preview-metrics dt { color: var(--muted); font-size: .78rem; font-weight: 750; }
.preview-metrics dd { margin: .15rem 0 0; color: var(--forest-deep); font: 800 1.5rem/1 Georgia,"Times New Roman",serif; }
.preview-table-wrap { margin: 1rem 0; overflow-x: auto; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.preview-table { width: 100%; border-collapse: collapse; }
.preview-table th,.preview-table td { padding: .7rem .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.preview-table th { background: #edf6f1; color: var(--forest-deep); font-size: .82rem; }
.preview-table tr:last-child td { border-bottom: 0; }
.preview-warnings { margin: 1rem 0; padding: .75rem; border: 1px solid #d99b9f; border-radius: .45rem; background: #fff5f5; }
.preview-warnings summary { cursor: pointer; color: #8f101c; font-weight: 800; }
.scoutbook-preview form { margin-top: 1rem; }
.scoutbook-preview form .primary { margin-top: .8rem; }

/* Adult records and parent-maintained youth organization details */
.family-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }

/* Private Troop Check-In -> BadgeBinder weekly participation transfer. */
.weekly-participation-shell { display: grid; gap: 1.25rem; }
.weekly-participation-heading,.weekly-preview-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.25rem; }
.weekly-participation-heading { padding: 1.35rem 1.5rem; border: 1px solid #bad0c5; border-radius: 18px; background: linear-gradient(135deg,#f7fbf8,#fffdf5); box-shadow: 0 12px 32px rgba(7,88,59,.07); }
.weekly-participation-heading h2 { margin: .12rem 0 .35rem; font-size: clamp(2rem,4vw,3.15rem); color: var(--forest-deep); }
.weekly-participation-heading p:last-child { max-width: 58rem; margin: 0; color: var(--muted); }
.weekly-participation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.weekly-import-card,.weekly-preview-card,.weekly-history-card { border: 1px solid #c9d8d0; border-radius: 16px; background: #fff; box-shadow: 0 10px 26px rgba(7,63,42,.06); }
.weekly-import-card { position: relative; padding: 1.35rem 1.4rem 1.35rem 4.6rem; min-height: 190px; }
.weekly-import-card h3,.weekly-preview-card h3,.weekly-history-card h3 { margin: 0 0 .35rem; color: var(--forest-deep); font-size: 1.45rem; }
.weekly-import-card p { margin: .4rem 0; color: var(--muted); }
.weekly-step { position: absolute; top: 1.35rem; left: 1.35rem; width: 2.35rem; height: 2.35rem; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--ink); font-weight: 900; }
.weekly-import-card form .primary { margin-top: .85rem; }
.weekly-privacy-note { padding: .7rem .8rem; border-left: 4px solid var(--forest); background: #eef8f2; font-size: .92rem; }
.weekly-preview-card,.weekly-history-card { padding: 1.35rem; }
.weekly-summary-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.weekly-summary-pills span { display: inline-flex; align-items: baseline; gap: .3rem; padding: .48rem .65rem; border: 1px solid #c4d7cd; border-radius: 999px; background: #f2f8f4; font-size: .86rem; }
.weekly-summary-pills strong { color: var(--forest); font-size: 1.15rem; }
.weekly-summary-pills .attention { border-color: #d6a526; background: #fff8df; }
.weekly-child-preview-list,.weekly-history-list { display: grid; gap: .7rem; margin-top: 1rem; }
.weekly-child-preview,.weekly-history-list details { border: 1px solid #cddad3; border-radius: 12px; overflow: hidden; background: #fcfefd; }
.weekly-child-preview > summary,.weekly-history-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; cursor: pointer; list-style: none; }
.weekly-child-preview > summary::-webkit-details-marker,.weekly-history-list summary::-webkit-details-marker { display: none; }
.weekly-child-preview > summary::before,.weekly-history-list summary::before { content: "▸"; color: var(--forest); font-weight: 900; }
.weekly-child-preview[open] > summary::before,.weekly-history-list details[open] summary::before { content: "▾"; }
.weekly-child-preview summary > span:first-of-type,.weekly-history-list summary > span:first-of-type { flex: 1; display: grid; }
.weekly-child-preview summary small,.weekly-history-list summary small { color: var(--muted); font-weight: 500; }
.weekly-match-state { padding: .35rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 800; }
.weekly-match-state.matched { color: #07583b; background: #dff3e7; }
.weekly-match-state.unmatched { color: #8a2030; background: #fde9ec; }
.weekly-meeting-list { display: grid; gap: .65rem; padding: 0 1rem 1rem 2.25rem; }
.weekly-meeting-list article { display: grid; grid-template-columns: minmax(15rem,.8fr) minmax(18rem,1.2fr); gap: 1rem; padding: .8rem; border-radius: 10px; background: #f5f8f6; }
.weekly-meeting-list h4,.weekly-meeting-list p { margin: 0; }
.weekly-meeting-list p { color: var(--muted); font-size: .9rem; }
.weekly-meeting-list ul { margin: 0; padding-left: 1.25rem; }
.weekly-meeting-list li { margin-bottom: .35rem; }
.weekly-meeting-list li small { display: block; color: var(--muted); }
.weekly-meeting-list .weekly-review-flag { color: #8a5b00; font-weight: 700; }
.weekly-confirm-form { margin-top: 1rem; padding: 1rem; border: 1px solid #e2c35c; border-radius: 12px; background: #fff9e7; }
.weekly-confirm-form > label { display: flex; align-items: flex-start; gap: .65rem; margin: 0; }
.weekly-confirm-form input[type=checkbox] { flex: 0 0 auto; margin-top: .15rem; }
.weekly-history-card > div:first-child p { margin: .25rem 0; color: var(--muted); }
.weekly-history-list details > div { display: grid; gap: .45rem; padding: 0 1rem 1rem 2.25rem; }
.weekly-history-list article { display: grid; grid-template-columns: minmax(12rem,1fr) auto auto; gap: .65rem; padding: .65rem .75rem; border-radius: 9px; background: #f5f8f6; }
.weekly-history-list article span,.weekly-history-list article small,.weekly-history-list summary > span:last-child { color: var(--muted); font-size: .88rem; }
.weekly-history-list .weekly-history-detail { grid-column:1 / -1; margin:0; padding-top:.4rem; border-top:1px solid #dce7e1; color:var(--muted); font-size:.9rem; }
.weekly-history-list .weekly-history-detail strong { color:var(--ink); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1rem; }
.form-grid > div { min-width: 0; }
.form-grid label { margin-top: 0; }
select,textarea {
  width: 100%;
  border: 1px solid #789287;
  border-radius: .35rem;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
select { min-height: 44px; padding: .55rem .65rem; }
textarea { padding: .7rem; resize: vertical; }
.profile-details-form { margin: 1rem 0; }
.adult-portal-grid { align-items: start; }
.adult-avatar,.adult-profile-avatar { background: #7d101a; }
.adult-status { color: #6c4b00; }
.adult-metrics { grid-template-columns: repeat(5,minmax(7rem,1fr)); }
.adult-profile-card { margin: 1rem 0; }
.adult-notes { margin: .9rem 0 0; padding: .8rem; border-left: 4px solid var(--gold); background: var(--cream); }
.adult-record-section { margin: 1rem 0; }
.adult-record-list { display: grid; gap: .65rem; margin-top: .8rem; }
.adult-record-row {
  display: grid;
  grid-template-columns: minmax(0,1.5fr) minmax(12rem,.9fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .75rem;
  border: 1px solid #e0e7e3;
  border-radius: .45rem;
  background: #fbfdfc;
}
.adult-record-row strong,.adult-record-row small,.record-code { display: block; overflow-wrap: anywhere; }
.adult-record-row small { margin-top: .3rem; color: var(--muted); }
.record-code { margin-top: .15rem; color: var(--muted); font-size: .82rem; }
.training-state { display: inline-block; padding: .2rem .5rem; border-radius: 999px; background: #e5eee9; color: var(--forest-deep); font-size: .78rem; font-weight: 800; }
.training-state.current { background: #dff2e6; color: #07522f; }
.training-state.expiring { background: #fff0c9; color: #6b4700; }
.training-state.expired { background: #fde2e4; color: #8f101c; }
.training-state.in-progress,.training-state.planned { background: #e6eef7; color: #234b6b; }
.card-heading-actions { display: flex; align-items: center; gap: .6rem; }
.card-heading-actions > span { min-width: 2rem; padding: .15rem .45rem; border-radius: 999px; background: #e4f2ea; color: var(--forest-deep); font-weight: 800; text-align: center; }
.training-groups { display: grid; gap: .65rem; margin-top: .85rem; }
.training-group { border: 1px solid #c9d8d1; border-radius: .55rem; background: #fbfdfc; overflow: hidden; }
.training-group > summary { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 52px; padding: .7rem .85rem; color: var(--forest-deep); cursor: pointer; font-weight: 800; list-style: none; }
.training-group > summary::-webkit-details-marker { display: none; }
.training-group > summary::after { content: '+'; flex: 0 0 1.2rem; font-size: 1.25rem; text-align: center; }
.training-group[open] > summary { border-bottom: 1px solid #c9d8d1; background: #edf6f1; }
.training-group[open] > summary::after { content: '−'; }
.training-group > summary > span:last-child { order: 2; min-width: 2rem; padding: .12rem .4rem; border-radius: 999px; background: #e4f2ea; text-align: center; }
.training-group > summary::after { order: 3; }
.training-group .adult-record-list { margin: 0; padding: .75rem; }
.training-groups.is-browsing .adult-record-row { grid-template-columns: minmax(0,1.5fr) minmax(12rem,.9fr); }
.adult-record-grid,.adult-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.adult-editor {
  margin: 1rem 0;
  border: 1px solid #a9c4b7;
  border-radius: .65rem;
  background: #f7faf8;
  overflow: hidden;
}
.adult-editor > summary { cursor: pointer; padding: .9rem 1rem; color: var(--forest-deep); font-weight: 800; }
.adult-editor[open] > summary { border-bottom: 1px solid #cbd8d1; background: #edf6f1; }
.adult-editor form { padding: 1rem; }
.adult-simple-list { list-style: none; margin: .8rem 0 0; padding: 0; }
.adult-simple-list li { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; padding: .7rem 0; border-bottom: 1px solid #e5eae7; }
.adult-simple-list li:last-child { border-bottom: 0; }
.adult-simple-list strong,.adult-simple-list small { display: block; overflow-wrap: anywhere; }
.adult-simple-list small { margin-top: .2rem; color: var(--muted); }
.record-remove { min-height: 44px; border: 1px solid #9d2933; border-radius: .35rem; background: #fff; color: #8f101c; font-weight: 750; }
.record-remove:hover,.record-remove:focus-visible { background: #fff0f1; }

/* Parent-managed youth records */
.record-manager { margin: 1rem 0 1.5rem; padding: clamp(1rem,3vw,1.5rem); border: 2px solid #88ad9b; border-radius: .75rem; background: #f7faf8; }
.record-manager > .record-heading { margin-bottom: 1rem; }
.record-edit-section,.child-record-manager,.child-record-item,.child-record-add,.rank-editor-group { border: 1px solid #b9cbc2; border-radius: .55rem; background: #fff; overflow: hidden; }
.record-edit-section { margin: .8rem 0; }
.record-edit-section > summary,.child-record-item > summary,.child-record-add > summary,.rank-editor-group > summary { cursor: pointer; min-height: 44px; padding: .8rem 1rem; color: var(--forest-deep); font-weight: 800; }
.record-edit-section[open] > summary,.child-record-item[open] > summary,.child-record-add[open] > summary,.rank-editor-group[open] > summary { border-bottom: 1px solid #cfdbd5; background: #edf6f1; }
.record-edit-section > form,.record-edit-section > .status-editor-list,.rank-editor-group > .status-editor-list { padding: 1rem; }
.record-edit-section > .rank-batch-form { padding: 0; }
.rank-version-note {
  margin: 0;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line, #c8d8cf);
  background: #f6fbf7;
  color: #243c31;
}
.rank-version-note p { margin: 0 0 6px; }
.rank-version-note p:last-child { margin-bottom: 0; }
.rank-version-note a { color: #075b44; font-weight: 700; }
@media (prefers-color-scheme: dark) {
  .rank-version-note { background: #13271e; color: #e7f2eb; }
  .rank-version-note a { color: #8edbb6; }
}
.rank-editor-help { margin: .9rem 1rem; padding: .8rem; border-radius: .45rem; background: #f1f8f4; color: var(--muted); }
.child-record-manager-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1rem 0; }
.child-record-manager { padding: 1rem; }
.child-record-items { display: grid; gap: .65rem; margin-bottom: .8rem; }
.child-record-item summary strong,.child-record-item summary small { display: block; overflow-wrap: anywhere; }
.child-record-item summary small { margin-top: .2rem; color: var(--muted); font-weight: 500; }
.child-record-item form,.child-record-add form { padding: 1rem; }
.child-record-item form + form { padding-top: 0; }
.child-record-fields { margin-bottom: .75rem; }
.record-source-details { margin: -.2rem 0 .8rem; padding: .65rem .75rem; border-left: 3px solid var(--gold); background: #fff9e7; color: var(--forest-deep); font-size: .88rem; line-height: 1.45; }
.status-editor-list { display: grid; gap: .65rem; }
.status-editor-row,.rank-editor-row { display: grid; grid-template-columns: minmax(10rem,1fr) minmax(12rem,1fr) minmax(9rem,.65fr) auto; gap: .6rem; align-items: center; padding: .65rem; border: 1px solid #dce5e0; border-radius: .45rem; background: #fbfdfc; }
.rank-editor-row { grid-template-columns: minmax(12rem,1.1fr) minmax(13rem,1fr) minmax(9rem,.7fr) minmax(12rem,1fr); }
.status-editor-row strong,.rank-editor-row strong { overflow-wrap: anywhere; }
.rank-editor-task strong,.rank-editor-task small { display: block; overflow-wrap: anywhere; }
.rank-editor-task small { margin-top: .15rem; color: var(--muted); font-size: .78rem; }
.status-editor-row input,.status-editor-row select,.rank-editor-row input,.rank-editor-row select { margin: 0; min-width: 0; }
.rank-editor-group { margin: .7rem 1rem; }
.record-edit-section > .rank-editor-group:last-child { margin-bottom: 1rem; }
.rank-editor-group > summary {
  display: grid;
  grid-template-columns: minmax(7rem,1fr) minmax(13rem,24rem);
  align-items: center;
  gap: .7rem 1rem;
}
.rank-editor-label { font-size: 1.05rem; }
.rank-editor-metrics { display: grid; grid-template-columns: 1fr auto; gap: .18rem .75rem; align-items: end; color: var(--muted); font-size: .84rem; font-weight: 750; }
.rank-editor-metrics > span { text-align: right; }
.rank-editor-percent { color: var(--forest-deep); font-size: 1rem; }
.rank-editor-count { font-size: .78rem; font-weight: 650; }
.rank-editor-metrics progress { grid-column: 1/-1; width: 100%; height: .72rem; accent-color: var(--forest); }
.rank-batch-actions { position: sticky; z-index: 5; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .9rem 1rem; border-top: 2px solid var(--gold); background: rgba(255,252,242,.97); box-shadow: 0 -8px 20px rgba(7,63,42,.09); }
.rank-batch-actions p { margin: 0; color: var(--forest-deep); }
.rank-batch-actions p strong,.rank-batch-actions p span { display: block; }
.rank-batch-actions p span { margin-top: .12rem; color: var(--muted); font-size: .84rem; }
.rank-batch-actions button { flex: 0 0 auto; min-width: 11rem; }

/* Dedicated Merit Badge workspace */
.sr-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.portal-grid.merit-portal-mode { display:block; }
.merit-portal-mode > .family-list { display:none; }
.merit-workspace { padding:0; border:0; background:transparent; box-shadow:none; }
.merit-profile-hero { grid-template-columns:3.25rem minmax(0,1fr) auto; margin-bottom:1rem; padding:.85rem 1.15rem; border:1px solid #c8d8d0; border-radius:.75rem; background:#fff; box-shadow:0 8px 24px rgba(7,63,42,.06); }
.merit-profile-hero .profile-avatar { width:3.25rem; height:3.25rem; font-size:1.25rem; }
.merit-profile-hero .eyebrow { display:none; }
.merit-profile-hero h2 { font-size:1.35rem; }
.merit-profile-hero .profile-subtitle { margin:.15rem 0 0; font-size:.88rem; }
.merit-profile-hero .profile-sync-row { margin:.35rem 0 0; }
.merit-profile-hero .profile-sync-link { min-height:32px; padding:.22rem .55rem; font-size:.76rem; }
.merit-progress-shell { container:merit-progress / inline-size; margin:0 0 1.5rem; padding:clamp(1rem,2.5vw,1.65rem); border:1px solid #c8d8d0; border-radius:.85rem; background:#f7faf8; box-shadow:0 14px 36px rgba(7,63,42,.07); }
.merit-page-heading { display:grid; grid-template-columns:minmax(18rem,1fr) minmax(31rem,1.25fr); gap:1.3rem; align-items:end; margin-bottom:1rem; }
.merit-page-heading h3 { margin:.05rem 0 .3rem; color:var(--forest-deep); font:800 clamp(1.75rem,3vw,2.35rem)/1 Georgia,"Times New Roman",serif; }
.merit-page-heading p:not(.eyebrow) { max-width:48rem; margin:0; color:var(--muted); font-size:.92rem; }
.merit-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.merit-stat-grid article { display:grid; grid-template-columns:2.35rem minmax(0,1fr); gap:.65rem; align-items:center; min-height:82px; padding:.65rem .75rem; border:1px solid #cbd9d2; border-radius:.65rem; background:#fff; }
.merit-stat-grid article.earned { border-top:4px solid var(--forest); }
.merit-stat-grid article.working { border-top:4px solid #327db3; }
.merit-stat-grid article.attention { border-top:4px solid #c93b31; }
.merit-stat-icon { width:2.25rem; height:2.25rem; display:grid; place-items:center; border-radius:50%; background:#e8f4ed; color:var(--forest-deep); font-weight:900; }
.merit-stat-grid .working .merit-stat-icon { background:#e8f2fa; color:#245f89; }
.merit-stat-grid .attention .merit-stat-icon { background:#fbeceb; color:#a82820; }
.merit-stat-grid strong,.merit-stat-grid b,.merit-stat-grid small { display:block; }
.merit-stat-grid strong { float:left; margin-right:.4rem; color:var(--forest-deep); font:800 1.5rem/1 Georgia,"Times New Roman",serif; }
.merit-stat-grid b { color:var(--ink); font-size:.82rem; line-height:1.15; }
.merit-stat-grid small { clear:both; margin-top:.18rem; color:var(--muted); font-size:.7rem; }
.merit-progress-grid { display:grid; grid-template-columns:minmax(18.5rem,30%) minmax(0,1fr); gap:.85rem; align-items:start; }
.merit-browser-panel,.merit-detail { min-width:0; border:1px solid #bfd0c8; border-radius:.7rem; background:#fff; overflow:hidden; }
.merit-browser-heading { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.85rem .9rem .4rem; }
.merit-browser-heading h4 { margin:0; color:var(--forest-deep); font:800 1.15rem/1.1 Georgia,"Times New Roman",serif; }
.merit-browser-heading span { color:var(--muted); font-size:.75rem; font-weight:700; }
.merit-search-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.45rem; padding:.45rem .75rem; }
.merit-search-form input { min-height:42px; margin:0; padding:.55rem .65rem; font-size:.88rem; }
.merit-search-form button { min-height:42px; padding:.48rem .7rem; }
.merit-filter-chips { display:flex; flex-wrap:wrap; gap:.35rem; padding:.35rem .75rem .7rem; }
.merit-filter-chips a { display:inline-flex; align-items:center; gap:.3rem; min-height:32px; padding:.25rem .55rem; border:1px solid #c4d3cb; border-radius:999px; background:#fff; color:var(--forest-deep); font-size:.72rem; font-weight:750; text-decoration:none; }
.merit-filter-chips a.selected { border-color:var(--forest); background:var(--forest); color:#fff; }
.merit-filter-chips span { opacity:.8; }
.merit-badge-list { max-height:78rem; overflow-y:auto; border-top:1px solid #dce5e0; background:#fff; scrollbar-gutter:stable; }
.merit-badge-row { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto 1.15rem; gap:.25rem .5rem; min-height:82px; padding:.78rem .7rem .7rem .85rem; border-bottom:1px solid #e0e8e4; color:var(--ink); text-decoration:none; }
.merit-badge-row:last-child { border-bottom:0; }
.merit-badge-row:hover,.merit-badge-row:focus-visible { background:#f0f7f3; }
.merit-badge-row.selected { box-shadow:inset 5px 0 0 var(--gold); background:#fff9e8; }
.merit-badge-title strong,.merit-badge-title small { display:block; }
.merit-badge-title strong { color:var(--forest-deep); font-size:.91rem; line-height:1.2; }
.merit-badge-title small { margin-top:.16rem; color:#8b5d00; font-size:.65rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.merit-badge-status { align-self:start; padding:.14rem .42rem; border-radius:999px; background:#e6eef7; color:#234b6b; font-size:.62rem; font-weight:800; line-height:1.3; text-transform:uppercase; white-space:nowrap; }
.merit-badge-status.complete { background:#dff2e6; color:#07522f; }
.merit-badge-status.not-started { background:#eef1ef; color:#52615a; }
.merit-badge-counts { grid-column:1/3; color:var(--muted); font-size:.7rem; }
.merit-row-arrow { grid-column:3; grid-row:1/3; align-self:center; color:#7b8b84; font-size:1.45rem; }
.merit-row-progress { position:absolute; left:.85rem; right:.75rem; bottom:.3rem; height:3px; border-radius:3px; background:#e6ece9; overflow:hidden; }
.merit-row-progress i { display:block; height:100%; background:var(--forest); }
.merit-detail { padding:0; }
.merit-detail-title { display:grid; grid-template-columns:3.3rem minmax(0,1fr) auto; gap:.8rem; align-items:center; padding:1rem 1.1rem; }
.merit-detail-monogram { width:3.2rem; height:3.2rem; display:grid; place-items:center; border:3px solid var(--gold); border-radius:50%; background:var(--forest-deep); color:#fff; font:800 1.2rem/1 Georgia,"Times New Roman",serif; }
.merit-detail-title h4 { margin:0; color:var(--forest-deep); font:800 clamp(1.4rem,2.4vw,2rem)/1.06 Georgia,"Times New Roman",serif; }
.merit-detail-subline { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.35rem 0 0; color:var(--muted); font-size:.78rem; }
.merit-print-action { gap:.42rem; white-space:nowrap; }
.merit-print-action svg { width:1rem; height:1rem; flex:0 0 auto; }
.merit-detail-tabs { display:flex; gap:.15rem; overflow-x:auto; padding:0 .8rem; border-top:1px solid #e0e7e3; border-bottom:1px solid #d6e0db; background:#fbfdfc; }
.merit-detail-tabs a { flex:0 0 auto; padding:.72rem .75rem .6rem; border-bottom:3px solid transparent; color:var(--muted); font-size:.78rem; font-weight:750; text-decoration:none; }
.merit-detail-tabs a.selected,.merit-detail-tabs a:hover { border-bottom-color:var(--gold); color:var(--forest-deep); }
.merit-info-callout { margin:.85rem; padding:.75rem .85rem; border-left:4px solid #327db3; border-radius:.4rem; background:#edf6fc; }
.merit-info-callout strong { color:#204f70; font-size:.88rem; }
.merit-info-callout p { margin:.18rem 0 0; color:#405d70; font-size:.8rem; }
.merit-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:.85rem; }
.merit-source-card { display:grid; grid-template-columns:minmax(0,1fr); gap:.6rem; margin:0; padding:.72rem; border-radius:.55rem; }
.merit-source-card.official { border:1px solid #d8c377; background:#fff9e8; }
.merit-source-card.voice { border:1px solid #9fc4b2; background:#eef8f2; }
.merit-source-card h5 { margin:0; color:var(--forest-deep); font-size:.9rem; }
.merit-source-card p { margin:.16rem 0 0; color:var(--muted); font-size:.74rem; }
.merit-source-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; margin:0; }
.merit-source-card.voice dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
.merit-source-card dl div { min-width:0; padding:.4rem .45rem; border-radius:.35rem; background:rgba(255,255,255,.82); }
.merit-source-card dt { color:var(--muted); font-size:.62rem; font-weight:750; }
.merit-source-card dd { margin:.08rem 0 0; overflow-wrap:break-word; font-size:.76rem; font-weight:750; }
.merit-requirements-panel { margin:.85rem; border:1px solid #c6d5ce; border-radius:.58rem; overflow:hidden; }
.merit-panel-heading { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.75rem .85rem; background:#edf6f1; }
.merit-panel-heading h5 { margin:0; color:var(--forest-deep); font-size:.95rem; }
.merit-panel-heading p { margin:.12rem 0 0; color:var(--muted); font-size:.72rem; }
.merit-panel-heading > span { flex:0 0 auto; padding:.16rem .48rem; border-radius:999px; background:#dceee4; color:var(--forest-deep); font-size:.68rem; font-weight:800; }
.merit-requirement-list { max-height:46rem; overflow-y:auto; }
.merit-requirement-group { display:grid; grid-template-columns:6.5rem minmax(0,1fr); gap:.7rem; padding:.72rem .8rem .72rem calc(.8rem + var(--requirement-indent, 0rem)); border-top:1px solid #d8e2dc; background:#fff8df; color:var(--forest-deep); }
.merit-requirement-group strong { font-size:.82rem; }
.merit-requirement-group span { color:#34463d; font-size:.82rem; line-height:1.4; }
.merit-requirement-row { border-top:1px solid #e0e7e3; background:#fff; }
.merit-requirement-row:first-child { border-top:0; }
.merit-requirement-row > summary { display:grid; grid-template-columns:2rem minmax(0,1fr) auto; gap:.65rem; align-items:center; min-height:58px; padding:.65rem .75rem; cursor:pointer; }
.merit-requirement-row > summary { padding-left:calc(.75rem + var(--requirement-indent, 0rem)); }
.merit-requirement-row[open] > summary { background:#fbfdfc; }
.merit-question-number { width:1.75rem; height:1.75rem; display:grid; place-items:center; border-radius:50%; background:#eef3f0; color:var(--forest-deep); font-size:.72rem; font-weight:800; }
.merit-requirement-row.has-work .merit-question-number { background:#dff2e6; color:#07522f; }
.merit-question-copy { min-width:0; }
.merit-question-copy strong,.merit-question-copy small { display:block; }
.merit-question-copy strong { color:var(--forest-deep); font-size:.8rem; }
.merit-question-copy small { max-width:52rem; margin-top:.1rem; overflow:hidden; color:var(--muted); font-size:.7rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.merit-question-state { padding:.16rem .42rem; border-radius:999px; background:#eef1ef; color:#52615a; font-size:.62rem; font-weight:800; white-space:nowrap; }
.merit-requirement-row.has-work .merit-question-state { background:#dff2e6; color:#07522f; }
.merit-requirement-body { padding:.75rem .9rem .9rem 3.4rem; border-top:1px dashed #dce5e0; background:#fbfdfc; }
.merit-requirement-body > .secondary { margin-top:.65rem; }
.merit-section { margin:.85rem; border:1px solid #c6d5ce; border-radius:.55rem; overflow:hidden; }
.merit-section > summary { display:flex; justify-content:space-between; align-items:center; min-height:50px; padding:.75rem .9rem; cursor:pointer; color:var(--forest-deep); font-weight:800; }
.merit-section[open] > summary { border-bottom:1px solid #d5dfda; background:#edf6f1; }
.merit-section > summary span { min-width:2rem; padding:.1rem .4rem; border-radius:999px; background:#dceee4; text-align:center; }
.merit-section-body { padding:.85rem; }
.voice-answer { padding:.7rem; border-left:4px solid var(--forest); background:#fff; }
.voice-answer > span { color:var(--forest-deep); font-size:.7rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.voice-answer p { margin:.3rem 0 0; font-size:.88rem; }
.evidence-list { list-style:none; margin:.65rem 0 0; padding:0; }
.evidence-list li { padding:.45rem 0; border-top:1px solid #e4ebe7; }
.evidence-list a,.evidence-list small { display:block; overflow-wrap:anywhere; }
.evidence-list small { margin-top:.15rem; color:var(--muted); }
.evidence-cards { display:grid; gap:.65rem; }
.evidence-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.6rem; align-items:start; padding:.75rem; border:1px solid #d7e1dc; border-radius:.5rem; background:#fbfdfc; }
.evidence-card strong,.evidence-card small { display:block; overflow-wrap:anywhere; }
.evidence-card small { margin-top:.2rem; color:var(--muted); }
.evidence-card form { grid-column:1/-1; margin:0; }
.evidence-card form label { margin:0; }
.evidence-card form input { margin:.3rem 0 .45rem; }
.evidence-upload { margin-top:1rem; padding:1rem; border:2px dashed #9ab9aa; border-radius:.6rem; background:#f4faf6; }
.evidence-upload h6 { margin:0 0 .65rem; color:var(--forest-deep); font-size:1.05rem; }
.removed-evidence { border-color:#d6b3b6; }
.merit-inline-status { display:grid; grid-template-columns:minmax(12rem,1fr) minmax(10rem,.7fr) auto; gap:.65rem; align-items:end; }
.merit-inline-status label { margin:0; }
.merit-inline-status select,.merit-inline-status input { margin:.3rem 0 0; }
.merit-resources { margin:.85rem; padding:.85rem; border:1px solid #c6d5ce; border-radius:.55rem; background:#fbfdfc; }
.merit-resources h5 { margin:0; color:var(--forest-deep); }
.merit-resources p { margin:.3rem 0 .7rem; color:var(--muted); font-size:.82rem; }

@container merit-progress (max-width:62rem) {
  .merit-page-heading { grid-template-columns:1fr; align-items:start; }
  .merit-progress-grid { grid-template-columns:1fr; }
  .merit-badge-list { max-height:30rem; }
}

@media(max-width:800px){
  .portal-grid { grid-template-columns: 1fr; }
  .portal-grid.child-portal-grid { grid-template-columns: 1fr; }
  .child-profile-list .profile-row { grid-template-columns: 2.35rem minmax(0,1fr) auto; }
  .child-profile-list .profile-row .row-action { grid-column: auto; }
  .merit-profile-hero { grid-template-columns:3.25rem minmax(0,1fr); }
  .merit-profile-hero .profile-actions { grid-column:1/-1; }
  .profile-hero { grid-template-columns: 3.5rem 1fr; align-items: start; }
  .profile-avatar { width: 3.5rem; height: 3.5rem; font-size: 1.55rem; }
  .profile-actions { grid-column: 1/-1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: stretch; }
  .profile-actions > * { width: 100%; min-width: 0; white-space: normal; text-align: center; }
  .rank-overview,.profile-dashboard-grid,.badge-dashboard-grid,.record-dashboard-grid,.rank-ladder-summary { grid-template-columns: 1fr; }
  .rank-ladder-summary { gap: .45rem; }
  .rank-ladder-summary::after { position: absolute; right: 1rem; }
  .rank-ladder-heading { flex-direction: column; }
  .rank-requirement-panel-heading { flex-direction: column; }
  .rank-requirement-panel-heading .secondary { width: 100%; }
  .rank-requirement-title { grid-template-columns: 2.6rem minmax(0,1fr); }
  .rank-requirement-status { grid-column: 2; justify-self: start; }
  .rank-requirement-item > p,.rank-requirement-meta { margin-left: 0; }
  .dashboard-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-metrics div { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .dashboard-metrics div:nth-child(2n) { border-right: 0; }
  .dashboard-metrics div:nth-last-child(-n+2) { border-bottom: 0; }
  .recent-work .identity-list { grid-template-columns: 1fr 1fr; }
  .recent-work .identity-list div { border-right: 0; border-bottom: 1px solid var(--line); }
  .badge-list { grid-template-columns: 1fr; }
  .reconcile-card ul { columns: 1; }
  .management-card { grid-template-columns: 1fr; }
  .management-icon { width: 2.75rem; height: 2.75rem; }
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .backup-history li { align-items: flex-start; flex-direction: column; }
  .backup-history .secondary { width: 100%; }
  .record-heading { flex-direction: column; }
  .record-heading .secondary { width: 100%; }
  .record-pair { grid-template-columns: 1fr; gap: .2rem; }
  .complete-record { padding: .75rem; }
  .family-header-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: stretch; }
  .family-header-actions > * { width: 100%; min-width: 0; white-space: normal; text-align: center; }
  .form-grid,.adult-record-grid,.adult-editor-grid { grid-template-columns: 1fr; }
  .adult-record-row { grid-template-columns: 1fr; align-items: start; }
  .adult-record-row form,.adult-record-row .record-remove { width: 100%; }
  .adult-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sync-details { grid-template-columns: 1fr; }
  .preview-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .child-record-manager-grid { grid-template-columns: 1fr; }
  .status-editor-row,.rank-editor-row { grid-template-columns: 1fr 1fr; }
  .status-editor-row strong,.rank-editor-row strong { grid-column: 1/-1; }
  .status-editor-row button,.rank-editor-row button { width: 100%; }
  .rank-editor-group > summary { grid-template-columns: 1fr; }
  .rank-editor-metrics { grid-template-columns: 1fr; }
  .rank-editor-metrics > span { text-align: left; }
  .rank-editor-metrics progress { grid-column: auto; }
  .rank-batch-actions { align-items: stretch; flex-direction: column; }
  .rank-batch-actions button { width: 100%; }
  .merit-filter-bar { grid-template-columns: 1fr 1fr; }
  .merit-filter-bar label { grid-column: auto; }
  .merit-filter-bar button { grid-column: 1/-1; width: 100%; }
  .merit-progress-grid { grid-template-columns: 1fr; }
  .merit-badge-list { max-height: 28rem; }
  .merit-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .merit-detail-title { grid-template-columns:3.2rem minmax(0,1fr); }
  .merit-print-action { grid-column:1/-1; width:100%; }
  .merit-source-card { grid-template-columns: 1fr; }
  .merit-source-grid { grid-template-columns:1fr; }
  .merit-source-card dl { grid-template-columns: 1fr 1fr; }
  .merit-inline-status { grid-template-columns: 1fr 1fr; }
  .merit-inline-status button { grid-column: 1/-1; width: 100%; }
}

@media(max-width:480px){
  .dashboard-metrics { grid-template-columns: 1fr 1fr; }
  .identity-list div { grid-template-columns: 1fr; gap: .1rem; }
  .recent-work .identity-list { grid-template-columns: 1fr; }
  .profile-actions,.family-header-actions { display: grid; grid-template-columns: 1fr; }
  .profile-actions > * { width: 100%; }
  .rank-overview { padding: 1rem; }
  .rank-ladder { padding: .8rem; }
  .rank-ladder-progress > div { align-items: flex-start; flex-direction: column; gap: .1rem; }
  .progress-row > div { align-items: flex-start; flex-direction: column; gap: .1rem; }
  .preview-metrics { grid-template-columns: 1fr 1fr; }
  .status-editor-row,.rank-editor-row { grid-template-columns: 1fr; }
  .status-editor-row strong,.rank-editor-row strong { grid-column: auto; }
  .merit-head-metrics { width: 100%; }
  .merit-head-metrics span { flex: 1; min-width: 0; }
  .merit-filter-bar { grid-template-columns: 1fr; }
  .merit-filter-bar button { grid-column: auto; }
  .merit-detail { padding: .7rem; }
  .merit-stat-grid { grid-template-columns:1fr; }
  .merit-detail { padding:0; }
  .merit-detail-title { padding:.8rem; }
  .merit-detail-tabs { padding:0 .35rem; }
  .merit-source-grid,.merit-requirements-panel,.merit-section,.merit-resources { margin:.6rem; }
  .merit-requirement-row > summary { grid-template-columns:1.8rem minmax(0,1fr); }
  .merit-question-state { grid-column:2; justify-self:start; }
  .merit-requirement-body { padding:.7rem; }
  .merit-source-card dl { grid-template-columns: 1fr; }
  .merit-inline-status { grid-template-columns: 1fr; }
  .merit-inline-status button { grid-column: auto; }
  .evidence-card { grid-template-columns: 1fr; }
  .evidence-card .secondary { width: 100%; }
}

/* v26: approved compact Merit Badge page */
body.merit-page { background:#fbfaf4; font-size:16px; }
.merit-page .top-inner,.merit-page .main,.merit-page .footer-inner { width:100%; max-width:none; }
.merit-page .main { padding:0 0 2rem; }
.merit-top .top-inner { min-height:58px; padding:0 2rem; }
.merit-top .brand-name { font-size:1.65rem; }
.merit-global-nav { display:flex; align-self:stretch; align-items:stretch; gap:.25rem; }
.merit-global-nav a { display:flex; align-items:center; padding:.25rem .9rem; border-bottom:3px solid transparent; color:#fff; font-size:.83rem; font-weight:750; text-decoration:none; }
.merit-global-nav a:hover,.merit-global-nav a.selected { border-bottom-color:var(--gold); background:rgba(255,255,255,.07); }
.merit-account-menu { display:flex; align-items:center; gap:.45rem; color:#fff; font-size:.79rem; font-weight:700; }
.merit-account-menu form { margin:0; }
.merit-account-menu .text-action { min-height:42px; padding:.35rem .4rem; font-size:.76rem; }
.merit-account-icon { width:28px; height:28px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.65); border-radius:50%; font-size:.72rem; }
.merit-page .portal-grid.merit-portal-mode { display:block; }
.merit-page .merit-workspace { width:100%; margin:0; padding:0; border:0; border-radius:0; box-shadow:none; }
.merit-scout-banner { min-height:112px; display:grid; grid-template-columns:minmax(18rem,1fr) auto minmax(24rem,.9fr); gap:1.75rem; align-items:center; padding:1rem 2.1rem; border-bottom:1px solid #e1dfd3; background:#fffdf6; }
.merit-scout-identity { display:grid; grid-template-columns:52px minmax(0,1fr); gap:.8rem; align-items:center; }
.merit-scout-identity .profile-avatar { width:52px; height:52px; font-size:1.15rem; }
.merit-scout-identity h2 { margin:0; color:var(--forest-deep); font-size:1.38rem; line-height:1.05; }
.merit-scout-identity p { margin:.26rem 0 0; color:var(--muted); font-size:.76rem; }
.merit-back-link { min-height:40px; display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .7rem; border:1px solid #c8d5ce; border-radius:.4rem; background:#fff; font-size:.76rem; font-weight:750; text-decoration:none; }
.merit-banner-art { min-width:0; display:grid; grid-template-columns:minmax(9rem,1fr) 16rem; gap:.5rem; align-items:end; justify-items:end; overflow:hidden; }
.merit-banner-art p { margin:0; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; text-align:right; }
.merit-banner-art p em,.merit-banner-art p span { display:block; }
.merit-banner-art p em { font-size:.92rem; }
.merit-banner-art p span { margin-top:.2rem; color:var(--muted); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:.66rem; }
.merit-banner-art svg { width:250px; max-width:100%; height:84px; }
.merit-progress-shell { margin:0; padding:1.35rem 2.1rem 1.75rem; border:0; border-radius:0; background:#fbfaf4; box-shadow:none; }
.merit-page-heading { grid-template-columns:minmax(19rem,1fr) minmax(38rem,1.22fr); gap:2rem; align-items:center; max-width:110rem; margin:0 auto 1rem; }
.merit-page-heading h3 { margin:0 0 .22rem; font-size:clamp(1.75rem,2.4vw,2.45rem); }
.merit-page-heading p:not(.eyebrow) { font-size:.87rem; }
.merit-stat-grid { gap:.7rem; }
.merit-stat-grid article { grid-template-columns:3.2rem minmax(0,1fr); gap:.7rem; min-height:78px; padding:.6rem .8rem; border:1px solid #d7ded9; border-top-width:1px; border-radius:.45rem; box-shadow:0 3px 12px rgba(7,63,42,.04); }
.merit-stat-grid article.earned,.merit-stat-grid article.working,.merit-stat-grid article.attention { border-top-width:1px; }
.merit-stat-grid strong { float:none; margin:0; font-size:2.25rem; text-align:center; }
.merit-stat-grid .working strong { color:#286d9d; }
.merit-stat-grid .attention strong { color:#b12b25; }
.merit-stat-grid b { font-size:.78rem; }
.merit-stat-grid small { margin-top:.16rem; font-size:.63rem; line-height:1.25; }
.merit-progress-grid { max-width:110rem; min-height:68rem; margin:0 auto; grid-template-columns:minmax(20rem,32%) minmax(0,68%); gap:0; align-items:stretch; border:1px solid #c8d4ce; border-radius:.6rem; background:#fff; overflow:hidden; box-shadow:0 10px 30px rgba(7,63,42,.055); }
.merit-browser-panel,.merit-detail { border:0; border-radius:0; background:#fff; }
.merit-browser-panel { border-right:1px solid #d9e0dc; }
.merit-search-form { position:relative; display:block; padding:.85rem .85rem .5rem; }
.merit-search-form input { min-height:44px; padding:.55rem .75rem .55rem 2.35rem; border-color:#c7d1cc; font-size:.83rem; }
.merit-search-icon { position:absolute; z-index:1; top:1.63rem; left:1.65rem; color:#718179; font-size:1.05rem; transform:translateY(-50%); }
.merit-filter-chips { gap:.28rem; padding:.15rem .85rem .72rem; border-bottom:1px solid #dfe5e2; }
.merit-filter-chips a { min-height:30px; padding:.2rem .5rem; border:0; border-radius:.35rem; background:#f0f3f1; color:#40534a; font-size:.63rem; }
.merit-filter-chips a:hover { background:#e0ece5; }
.merit-filter-chips a.selected { background:var(--forest-deep); color:#fff; }
.merit-badge-list { max-height:78rem; border-top:0; }
.merit-badge-row { grid-template-columns:3.1rem minmax(0,1fr) 1.2rem; gap:.12rem .65rem; min-height:78px; padding:.72rem .75rem .65rem .85rem; }
.merit-badge-row.selected { box-shadow:inset 4px 0 0 var(--forest); background:#edf6f1; }
.merit-list-icon,.merit-detail-icon { display:grid; place-items:center; border:2px solid var(--gold); border-radius:50%; background:#fff; }
.merit-list-icon { grid-column:1; grid-row:1/3; align-self:center; width:46px; height:46px; }
.merit-list-icon svg { width:25px; height:25px; }
.merit-detail-icon { width:62px; height:62px; }
.merit-detail-icon svg { width:34px; height:34px; }
.merit-list-icon.forest,.merit-detail-icon.forest { color:#08744c; }
.merit-list-icon.navy,.merit-detail-icon.navy { color:#2873a5; }
.merit-list-icon.brick,.merit-detail-icon.brick { color:#c24c3d; }
.merit-list-icon.teal,.merit-detail-icon.teal { color:#168f90; }
.merit-list-icon.plum,.merit-detail-icon.plum { color:#835796; }
.merit-list-icon.golden,.merit-detail-icon.golden { color:#b78008; }
.merit-badge-title { grid-column:2; min-width:0; }
.merit-badge-title strong { font-size:.84rem; }
.merit-badge-title small { margin-top:.1rem; font-size:.6rem; letter-spacing:.01em; text-transform:none; }
.merit-badge-title small.complete { color:#08724b; }
.merit-badge-title small.pending,.merit-badge-title small.working { color:#956400; }
.merit-badge-title small.attention { color:#b12b25; }
.merit-badge-title small.not-started { color:#68766f; }
.merit-badge-counts { grid-column:2; display:flex; align-items:center; gap:.5rem; font-size:.62rem; }
progress.mini-progress { width:5.2rem; height:.4rem; margin:0; border:0; border-radius:999px; accent-color:var(--forest); }
.merit-row-arrow { grid-column:3; grid-row:1/3; color:#50645a; }
.merit-detail-title { grid-template-columns:4rem minmax(0,1fr) auto; padding:1.15rem 1.25rem .9rem; }
.merit-detail-title h4 { font-size:clamp(1.35rem,2vw,1.85rem); }
.merit-detail-subline strong.complete { color:#08724b; }
.merit-detail-subline strong.pending,.merit-detail-subline strong.working { color:#8b5d00; }
.merit-detail-subline strong.attention { color:#b12b25; }
progress.merit-detail-progress { display:block; width:min(25rem,100%); height:.55rem; margin-top:.42rem; accent-color:var(--forest); }
.merit-print-wrap { display:grid; justify-items:end; gap:.18rem; }
.merit-print-wrap small { color:var(--muted); font-size:.6rem; }
.merit-print-action { min-height:42px; padding:.58rem .82rem; font-size:.76rem; }
.merit-detail-tabs { padding:0 1.1rem; }
.merit-detail-tabs a { padding:.67rem .72rem .55rem; font-size:.69rem; }
.merit-info-callout { margin:.8rem 1.1rem; padding:.7rem .85rem; border-left-width:4px; }
.merit-info-callout strong { font-size:.78rem; }
.merit-info-callout ul { margin:.28rem 0 .28rem 1.2rem; padding:0; color:#405d70; font-size:.7rem; }
.merit-info-callout p { font-size:.68rem; }
.merit-source-grid { grid-template-columns:1fr; gap:.5rem; margin:.75rem 1.1rem; }
.merit-source-card { grid-template-columns:2.65rem minmax(0,1fr) auto; gap:.65rem; align-items:center; padding:.62rem .72rem; }
.merit-source-card h5 { font-size:.78rem; }
.merit-source-card p { font-size:.68rem; }
.merit-source-card small { color:var(--muted); font-size:.61rem; }
.merit-source-icon { width:2.4rem; height:2.4rem; display:grid; place-items:center; border-radius:50%; background:#fff; color:var(--forest-deep); font-weight:900; }
.merit-source-card .secondary { min-height:34px; padding:.38rem .55rem; font-size:.66rem; }
.merit-requirements-panel { margin:.75rem 1.1rem; }
.merit-panel-heading { padding:.62rem .75rem; background:#fff; }
.merit-panel-heading h5 { font-size:.84rem; }
.merit-panel-heading p { font-size:.64rem; }
.merit-requirement-columns { display:grid; grid-template-columns:2.2rem minmax(0,1fr) 8.6rem 8.2rem; gap:.5rem; padding:.4rem .7rem; border-top:1px solid #e0e7e3; border-bottom:1px solid #e0e7e3; background:#f5f7f6; color:#66766e; font-size:.58rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.merit-requirement-list { max-height:42rem; }
.merit-requirement-row > summary { grid-template-columns:2.2rem minmax(0,1fr) 8.6rem 8.2rem; gap:.5rem; min-height:52px; padding:.52rem .7rem; }
.merit-question-number { width:1.7rem; height:1.7rem; }
.merit-question-copy strong { font-size:.73rem; }
.merit-question-copy small { font-size:.62rem; }
.merit-question-state { justify-self:start; font-size:.57rem; }
.merit-question-source { color:#63746b; font-size:.62rem; }
.merit-requirement-body { padding:.7rem .8rem .8rem 3.4rem; }
.merit-requirement-row.family-done > summary { background:#f1f8f4; }
.merit-requirement-row.family-done .merit-question-state { background:#d8efe1; color:#07522f; }
.merit-family-check { display:flex; gap:.65rem; align-items:flex-start; margin:0 0 .7rem; padding:.65rem .7rem; border:1px solid #c8d9d0; border-radius:.55rem; background:#fff; cursor:pointer; }
.merit-family-check input { width:1.15rem; height:1.15rem; margin:.1rem 0 0; accent-color:var(--forest); }
.merit-family-check span,.merit-family-check strong,.merit-family-check small { display:block; }
.merit-family-check strong { color:var(--forest-deep); font-size:.78rem; }
.merit-family-check small { margin-top:.12rem; color:var(--muted); font-size:.66rem; line-height:1.35; }
.merit-inline-evidence-note { margin-top:.7rem; border:1px solid #b8cec3; border-radius:.55rem; background:#fff; overflow:hidden; }
.merit-inline-evidence-note > summary { width:max-content; max-width:100%; padding:.48rem .65rem; cursor:pointer; color:var(--forest-deep); font-size:.72rem; font-weight:800; list-style-position:inside; }
.merit-inline-evidence-note[open] > summary { width:100%; border-bottom:1px solid #dbe6e0; background:#f1f8f4; }
.merit-inline-evidence-note-body { padding:.7rem; }
.merit-inline-evidence-note-body label { display:block; margin:0 0 .3rem; color:var(--forest-deep); font-size:.76rem; font-weight:800; }
.merit-inline-evidence-note-body textarea { width:100%; min-height:5rem; margin:0; resize:vertical; }
.merit-inline-evidence-note-body .field-help { margin:.38rem 0 .55rem; font-size:.64rem; line-height:1.4; }
.merit-checklist-save { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.75rem .85rem; border-top:1px solid #d8e2dd; background:#f4f8f6; }
.merit-checklist-save strong,.merit-checklist-save small { display:block; }
.merit-checklist-save strong { color:var(--forest-deep); font-size:.78rem; }
.merit-checklist-save small { margin-top:.1rem; color:var(--muted); font-size:.64rem; }
.merit-section,.merit-resources { margin:.7rem 1.1rem; }
.activity-total-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin:.85rem 0 1rem; }
.activity-total-grid div { border:1px solid #c7d8d0; border-radius:.75rem; background:#f4faf7; padding:.7rem .8rem; }
.activity-total-grid dt { color:#4d655c; font-size:.74rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.activity-total-grid dd { margin:.15rem 0 0; color:#07563f; font-family:Georgia,serif; font-size:1.15rem; font-weight:800; }
.merit-notes-editor textarea { width:100%; min-height:9rem; resize:vertical; }
.merit-notes-editor,.merit-resources { scroll-margin-top:1rem; }
.merit-notes-editor:target,.merit-resources:target { border-color:#d7a817; box-shadow:0 0 0 3px rgba(215,168,23,.18); }

@media(max-width:1100px){
  .merit-global-nav a { padding:.25rem .55rem; }
  .merit-banner-art { grid-template-columns:1fr 12rem; }
  .merit-page-heading { grid-template-columns:1fr; }
  .merit-progress-grid { grid-template-columns:minmax(17rem,34%) minmax(0,66%); }
  .merit-requirement-columns { display:none; }
  .merit-requirement-row > summary { grid-template-columns:2rem minmax(0,1fr) auto; }
  .merit-question-source { grid-column:2; }
}

@media(max-width:800px){
  .merit-top .top-inner { min-height:56px; padding:.55rem .75rem; align-items:center; }
  .merit-global-nav { display:none; }
  .merit-account-menu > span:not(.merit-account-icon) { display:none; }
  .merit-scout-banner { grid-template-columns:1fr auto; gap:.8rem; padding:.8rem .75rem; }
  .merit-banner-art { display:none; }
  .merit-progress-shell { padding:1rem .65rem; }
  .merit-stat-grid { grid-template-columns:1fr; }
  .merit-stat-grid article { grid-template-columns:3rem minmax(0,1fr); gap:.55rem; text-align:left; }
  .merit-stat-grid strong { font-size:1.65rem; }
  .merit-filter-chips { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; }
  .merit-filter-chips a { flex:0 0 auto; }
  .merit-progress-grid { min-height:0; grid-template-columns:1fr; }
  .merit-browser-panel { border-right:0; border-bottom:1px solid #d9e0dc; }
  .merit-badge-list { max-height:29rem; }
  .merit-detail-title { grid-template-columns:3.5rem minmax(0,1fr); }
  .merit-detail-icon { width:52px; height:52px; }
  .merit-print-wrap { grid-column:1/-1; width:100%; justify-items:stretch; }
  .merit-print-wrap small { text-align:center; }
  .merit-source-card { grid-template-columns:2.5rem minmax(0,1fr); }
  .merit-source-card .secondary { grid-column:2; justify-self:start; }
}

@media(max-width:520px){
  .activity-total-grid { grid-template-columns:1fr; }
  .merit-top .brand-name { font-size:1.35rem; }
  .merit-account-menu .text-action { font-size:.68rem; }
  .merit-scout-banner { grid-template-columns:1fr; }
  .merit-back-link { justify-self:start; }
  .merit-page-heading { gap:.8rem; }
  .merit-stat-grid { grid-template-columns:1fr; }
  .merit-stat-grid article { grid-template-columns:2.8rem minmax(0,1fr); text-align:left; }
  .merit-filter-chips { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.75rem; }
  .merit-filter-chips a { flex:0 0 auto; }
  .merit-detail-tabs { padding:0 .35rem; }
  .merit-info-callout,.merit-source-grid,.merit-requirements-panel,.merit-section,.merit-resources { margin:.6rem; }
  .merit-requirement-row > summary { grid-template-columns:1.8rem minmax(0,1fr); }
  .merit-question-state,.merit-question-source { grid-column:2; }
  .merit-requirement-body { padding:.65rem; }
  .merit-checklist-save { align-items:stretch; flex-direction:column; }
  .merit-checklist-save .primary { width:100%; }
}

/* v29: family-profile layout and true numbered requirement hierarchy */
.portal-grid.merit-profile-grid { grid-template-columns:minmax(14rem,18rem) minmax(0,1fr); align-items:start; }
.portal-grid.child-portal-grid.merit-profile-grid { grid-template-columns:minmax(12.75rem,15rem) minmax(0,1fr); }
.merit-profile-grid > .family-list { display:block; }
.merit-workspace { min-width:0; }
.merit-workspace .merit-progress-shell { margin-top:1rem; }
.merit-profile-grid .merit-page-heading { grid-template-columns:1fr; align-items:start; }
.merit-profile-grid .merit-stat-grid article { min-width:0; }
.merit-profile-grid .merit-stat-grid b,.merit-profile-grid .merit-stat-grid small { overflow-wrap:anywhere; }
.merit-requirement-group-card { border-top:1px solid #d7e2dc; background:#fff; }
.merit-requirement-group-card:first-child { border-top:0; }
.merit-requirement-group-card > summary { display:grid; grid-template-columns:2.2rem minmax(0,1fr) auto; gap:.7rem; align-items:center; min-height:64px; padding:.72rem .8rem; cursor:pointer; background:#fff8df; color:var(--forest-deep); }
.merit-requirement-group-card > summary:hover,.merit-requirement-group-card > summary:focus-visible { background:#fff3c9; }
.merit-requirement-group-card[open] > summary { border-bottom:1px solid #dfd5ad; background:#fff3cf; }
.merit-requirement-group-card > summary .merit-question-number { background:var(--forest-deep); color:#fff; }
.merit-requirement-group-card > summary .merit-question-copy strong { font-size:.88rem; }
.merit-requirement-group-card > summary .merit-question-copy small { max-width:none; font-size:.75rem; line-height:1.35; white-space:normal; }
.merit-group-progress { align-self:start; padding:.2rem .5rem; border-radius:999px; background:#fff; color:#52615a; font-size:.66rem; font-weight:800; white-space:nowrap; }
.merit-requirement-group-card.has-work > summary .merit-group-progress { background:#dff2e6; color:#07522f; }
.merit-requirement-children { margin:.55rem .65rem .7rem 1.3rem; border:1px solid #dbe5e0; border-left:4px solid #d7a817; border-radius:.55rem; overflow:hidden; background:#fff; }
.merit-requirement-children .merit-requirement-children { margin:.45rem .55rem .6rem 1rem; border-left-color:#6ba98b; }
.merit-requirement-children > .merit-requirement-row:first-child,.merit-requirement-children > .merit-requirement-group-card:first-child,.merit-requirement-children > .merit-requirement-note:first-child { border-top:0; }
.merit-requirement-row > summary { grid-template-columns:2rem minmax(0,1fr) 8rem 7rem; }
.merit-requirement-children .merit-question-number { border:1px solid #bed2c8; background:#eef6f2; }
.merit-requirement-children .merit-question-copy small { max-width:none; overflow:visible; text-overflow:clip; white-space:normal; }
.merit-requirement-note { display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.65rem; align-items:start; padding:.7rem .75rem; border-top:1px solid #e0e7e3; background:#f8fbf9; }
.merit-requirement-note strong,.merit-requirement-note small { display:block; }
.merit-requirement-note strong { color:var(--forest-deep); font-size:.8rem; }
.merit-requirement-note small { margin-top:.12rem; color:var(--muted); font-size:.72rem; line-height:1.35; }

@media(max-width:1100px){
  .merit-requirement-row > summary { grid-template-columns:2rem minmax(0,1fr) auto; }
  .merit-question-source { grid-column:2; }
}

@media(max-width:520px){
  .merit-requirement-group-card > summary { grid-template-columns:1.9rem minmax(0,1fr); gap:.55rem; padding:.65rem; }
  .merit-group-progress { grid-column:2; justify-self:start; }
  .merit-requirement-children,.merit-requirement-children .merit-requirement-children { margin:.4rem; border-left-width:3px; }
  .merit-requirement-row > summary { grid-template-columns:1.8rem minmax(0,1fr); }
  .merit-question-state,.merit-question-source { grid-column:2; justify-self:start; }
}

@media(max-width:800px){
  .portal-grid.merit-profile-grid { grid-template-columns:1fr; }
  .portal-grid.child-portal-grid.merit-profile-grid { grid-template-columns:1fr; }
  .weekly-participation-heading,.weekly-preview-heading { flex-direction:column; }
  .weekly-participation-grid { grid-template-columns:1fr; }
  .weekly-summary-pills { justify-content:flex-start; }
  .weekly-meeting-list article { grid-template-columns:1fr; }
  .weekly-history-list article { grid-template-columns:1fr; }
  .weekly-history-list summary > span:last-child { display:none; }
}

@media(max-width:520px){
  .weekly-participation-heading,.weekly-import-card,.weekly-preview-card,.weekly-history-card { padding:1rem; }
  .weekly-import-card { padding-left:3.75rem; }
  .weekly-step { top:1rem; left:1rem; }
  .weekly-child-preview > summary,.weekly-history-list summary { align-items:flex-start; }
  .weekly-meeting-list,.weekly-history-list details > div { padding-left:.75rem; }
}
