.badge-required { background: #fbe0dc; color: #8c2924; }
.badge-optional { background: #fff0c7; color: #76520b; }
.badge-none { background: #e8ecef; color: #4f5b63; }
.badge-exempt { background: #e7def5; color: #57358a; }
.secondary { background: #66757e; }
.user-search-form { margin-bottom: 18px; }
.user-search-form .form-grid { grid-template-columns: 2fr 1fr 1fr; }
.participant-summary { max-width: 720px; }
.total-row th { background: #e7f1eb; font-size: 1.08rem; }
.fee-excluded { color: #8b2525; font-size: .78rem; font-weight: 400; }
.admin-page .container { width: min(1500px, 96%); }
.admin-page th { white-space: nowrap; }
.admin-page td.money,
.admin-page th.money { text-align: right; white-space: nowrap; }
.admin-page td.number,
.admin-page th.number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.admin-page .program-unpublished td { background: #d9dde0; color: #566168; }
.admin-page .actions { white-space: nowrap; }
.list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.list-toolbar label { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.list-toolbar select { width: auto; min-width: 90px; }
.pagination-nav { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 18px 0; }
.pagination-links { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.pagination-links a,
.pagination-links span { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; min-height: 38px; padding: 6px 11px; border: 1px solid #cbd3d6; border-radius: 6px; background: #fff; text-decoration: none; line-height: 1.2; }
.pagination-links .pagination-current { border-color: #287a55; background: #287a55; color: #fff; font-weight: 700; }
.pagination-links .pagination-disabled { background: #edf0f1; color: #8b959a; }
.pagination-links .pagination-ellipsis { min-width: auto; border: 0; background: transparent; }
.pagination-summary { margin: 0; white-space: nowrap; }
.pagination-nav svg { width: 16px !important; height: 16px !important; }
.analytics-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:20px 0; }
.analytics-heading h1 { margin-bottom:4px; }
.analytics-heading p { margin:0; color:#5f6b71; }
.analytics-heading select { width:auto; min-width:120px; }
.analytics-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.analytics-summary .card { display:flex; flex-direction:column; gap:3px; padding:18px; }
.analytics-summary strong { color:#17324d; font-size:2rem; line-height:1.1; font-variant-numeric:tabular-nums; }
.analytics-summary small { color:#68757b; }
.analytics-panel { margin:0 0 18px; padding:18px; border:1px solid #d8dfe1; border-radius:10px; background:#fff; }
.analytics-panel h2 { margin:0 0 14px; font-size:1.15rem; }
.analytics-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr); gap:18px; align-items:start; }
.analytics-split { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.analytics-chart { display:grid; gap:7px; }
.analytics-bar-row { display:grid; grid-template-columns:50px minmax(80px,1fr) 55px 105px; align-items:center; gap:10px; font-size:.88rem; }
.analytics-bar-track { height:13px; overflow:hidden; border-radius:20px; background:#e7ecee; }
.analytics-bar-track span { display:block; min-width:2px; height:100%; border-radius:20px; background:#287a55; }
.analytics-bar-row strong { text-align:right; font-variant-numeric:tabular-nums; }
.analytics-bar-row small { color:#68757b; white-space:nowrap; }
.analytics-breakdown { margin:0; padding:0; list-style:none; }
.analytics-breakdown li { display:flex; justify-content:space-between; gap:15px; padding:8px 0; border-bottom:1px solid #e5eaec; }
.analytics-breakdown li:last-child { border-bottom:0; }
.analytics-privacy { padding:12px 14px; border-radius:8px; background:#eef3f5; color:#4f5d64; font-size:.9rem; }
.maxmind-status{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:13px 16px;border-radius:9px;border:1px solid}.maxmind-status>div{display:flex;flex-direction:column}.maxmind-status ul{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 16px;margin:0;padding:0;list-style:none;font-size:.85rem}.maxmind-status.ready{border-color:#9ccbb0;background:#e8f5ed;color:#185d3d}.maxmind-status.not-ready{border-color:#e2bc71;background:#fff4d9;color:#76520b}.analytics-attribution{font-size:.78rem;color:#6c777c}
.sortable-heading{display:inline-flex;align-items:center;justify-content:inherit;gap:5px;color:inherit;text-decoration:none;white-space:nowrap}.sortable-heading:hover{color:#176499;text-decoration:underline}.sortable-heading.active{color:#125c3c}.sort-indicator{min-width:1em;font-size:.72em;text-align:center;opacity:.65}.sortable-heading.active .sort-indicator{opacity:1}

@media (max-width: 720px) {
    .user-search-form .form-grid { grid-template-columns: 1fr; }
    .list-toolbar,
    .pagination-nav { align-items: flex-start; flex-direction: column; }
    .analytics-heading { align-items:stretch; flex-direction:column; }
    .analytics-summary { grid-template-columns:1fr 1fr; }
    .analytics-grid,.analytics-split { grid-template-columns:1fr; }
    .analytics-bar-row { grid-template-columns:44px minmax(60px,1fr) 45px; }
    .analytics-bar-row small { grid-column:2 / 4; }
    .maxmind-status{align-items:flex-start;flex-direction:column}.maxmind-status ul{justify-content:flex-start}
}
