/* Staff workspace: ACSM brand, compact data surfaces, and one document scroll. */
:root{--admin-sidebar:224px;--admin-title:1.75rem;--admin-small:.8125rem;--admin-muted:#54595f;--font-body:var(--font);--font-display:var(--font)}
body{background:var(--bg-soft);font-variant-numeric:tabular-nums lining-nums;font-size:var(--t-sm)}
button,input,select,textarea{font-family:var(--font)}
button{cursor:pointer}button:disabled{cursor:not-allowed}a{ text-underline-offset:3px }
.prototype-bar{font-size:var(--t-xs);padding:4px 12px;position:relative;z-index:50;min-height:26px}
.skip-link{position:fixed;left:8px;top:-100px;z-index:200;background:var(--ink);color:white;padding:12px}.skip-link:focus{top:8px}
h1{font-size:var(--admin-title);font-weight:700;letter-spacing:-.035em;margin:0 0 8px}h2{font-size:var(--t-lg);letter-spacing:-.015em;margin:0}h3{font-size:var(--t-base);margin:0 0 12px}h4{font-size:var(--t-sm)}
.btn{font-size:var(--t-sm);padding:10px 16px;min-height:44px}.btn-sm{padding:7px 12px}.btn-danger{background:#fff;color:var(--red);border-color:#c4a09b}.btn-danger:hover{background:var(--red);border-color:var(--red);color:#fff}
.link-btn{font:700 var(--t-sm)/1.3 var(--font);color:#00658f;text-decoration:underline;text-underline-offset:3px;border:0;background:transparent;min-height:44px;padding:4px 0;text-align:left}.link-btn:hover{color:var(--purple)}
.subtle-button{border:1px solid var(--line);background:white;color:var(--ink);padding:8px 12px;min-height:44px;font:700 var(--t-sm) var(--font)}
.muted,.hint{color:var(--admin-muted)}.small{font-size:var(--admin-small)}.eyebrow{font-size:var(--t-xs);letter-spacing:.12em;color:var(--admin-muted);margin-bottom:12px}.nowrap{white-space:nowrap}.r{text-align:right}
.badge{font-size:var(--t-xs);padding:2px 6px;letter-spacing:0;white-space:nowrap}.badge.illus{font-weight:500;color:#575d57;border-color:#8a8f8a;font-size:.75rem;padding:0 4px;vertical-align:middle}.money{white-space:nowrap;display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px}.money .badge{line-height:1.45}
.mobile-shade{display:none}.shell{display:grid;grid-template-columns:var(--admin-sidebar) minmax(0,1fr);min-height:calc(100dvh - 26px);align-items:start}.sidebar{position:sticky;top:0;background:var(--ink);color:white;height:100dvh;display:flex;flex-direction:column;z-index:30;overflow-y:auto;overscroll-behavior:contain}.brand-lockup{padding:24px 24px 16px}.brand-lockup img{width:155px;height:55px;object-fit:contain;display:block}.brand-lockup p{font-size:var(--t-xs);color:#c8cec8;margin:12px 0 0;letter-spacing:.05em}
.side-nav{padding:4px 12px 16px;flex:1}.nav-group{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#b9c1b9;padding:16px 12px 8px}.side-nav a{display:flex;gap:10px;align-items:center;padding:9px 12px;min-height:40px;color:#e1e5e1;text-decoration:none;font-weight:500;border:1px solid transparent}.side-nav a:hover{background:#343c34;color:white}.side-nav a.active{background:var(--cyan);color:var(--ink);font-weight:700}.nav-icon{width:18px;flex:0 0 18px;height:18px}.side-bottom{padding:20px 24px;border-top:1px solid #424a42;color:#c8cec8;font-size:var(--t-xs)}.side-bottom a{display:block;color:white;margin-bottom:8px;min-height:32px}.side-bottom p{margin:0}.workspace{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 32px;border-bottom:1px solid var(--line);background:white;min-height:76px}.topbar-name{font-weight:700}.topbar-left{display:flex;gap:12px;align-items:center}.topbar-actions{display:flex;align-items:center;gap:12px}.role-switch{display:flex;align-items:center;gap:8px}.role-switch label{margin:0;white-space:nowrap;color:var(--admin-muted);font-size:var(--t-xs)}.role-switch select{width:180px;font-size:var(--admin-small);padding:9px 26px 9px 10px;min-height:42px}.user-initials{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:white;font-weight:700}.menu-button{display:none}.signout{border:0;background:transparent;color:var(--admin-muted);min-height:44px;padding:4px;font:inherit;text-decoration:underline}
.main{padding:28px 32px 48px;max-width:1680px;margin:0 auto;min-width:0;outline:none}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.page-heading p{margin:0;color:var(--admin-muted)}.heading-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.snapshot{font-size:var(--t-xs);color:var(--admin-muted);padding-top:8px}.kpis{display:grid;grid-template-columns:repeat(var(--kpi-count,4),minmax(0,1fr));background:white;border:1px solid var(--line);margin-bottom:24px}.kpi{padding:20px;min-width:0;border-right:1px solid var(--line-soft)}.kpi:last-child{border-right:0}.kpi-label{color:var(--admin-muted);font-size:var(--admin-small);margin:0 0 8px}.kpi-value{font-size:1.625rem;line-height:1.25;font-weight:700;letter-spacing:-.04em;margin-bottom:8px;overflow-wrap:anywhere}.kpi-value .money{white-space:normal}.kpi-value .badge{letter-spacing:0}.kpi-note{color:var(--admin-muted);font-size:var(--t-xs)}.positive{color:#356008}.negative{color:#a1251e}.kpi-note b{font-weight:700}.kpi-value>.badge{font-size:.75rem}
.grid-2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;margin-bottom:24px}.grid-equal{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{border:1px solid var(--line);background:white;min-width:0;margin-bottom:24px}.grid-2>.panel{margin-bottom:0}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-soft)}.panel-header p{margin:4px 0 0;font-size:var(--t-xs);color:var(--admin-muted)}.panel-body{padding:20px}.chart-box{position:relative;height:255px;min-width:0}.chart-box.tall{height:330px}.chart-data{font-size:var(--t-xs);padding:0 20px 14px;color:var(--admin-muted)}.chart-data summary{cursor:pointer;min-height:32px;padding:8px 0}.chart-data[open]{padding-top:8px}.chart-data .table-wrap{margin-top:8px}.chart-failed{padding:16px;color:var(--admin-muted)}
.table-wrap{overflow-x:auto;overscroll-behavior:contain;max-width:100%}table{font-size:var(--admin-small)}th{background:#f8f9f8;font-size:var(--t-xs);border-bottom:1px solid var(--line);color:var(--admin-muted);padding:12px 16px;font-weight:700}td{padding:11px 16px;border-bottom:1px solid var(--line-soft);line-height:1.45}tr:last-child td{border-bottom:0}thead{position:sticky;top:0;z-index:1}td .muted{display:block;font-size:var(--t-xs);margin-top:2px}td.primary{min-width:165px}td .link-btn{min-height:30px}td.r .money{justify-content:flex-end}.table-footer{padding:12px 20px;color:var(--admin-muted);font-size:var(--t-xs);border-top:1px solid var(--line-soft)}.click-row{cursor:pointer}.click-row:hover td{background:#f0f8fa}.click-row:focus-visible{outline-offset:-3px}
.filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;padding:16px 20px;background:white;border-bottom:1px solid var(--line)}.filters .field{margin:0;flex:1;min-width:130px}.filters .field.search{flex:2;min-width:190px}.filters input,.filters select{font-size:var(--admin-small);min-height:42px;padding:9px 10px}.filters label{font-size:var(--t-xs);color:var(--admin-muted)}.filters .btn{font-size:var(--t-xs)}
.notice{padding:14px 16px;background:#eff7fa;border:1px solid #bedee9;margin-bottom:20px;font-size:var(--admin-small)}.notice p{margin:0}.notice.warn{background:#fff6e7;border-color:#e5ca9b}.notice strong{font-weight:700}.empty{padding:44px 20px;text-align:center;color:var(--admin-muted)}.empty h2{color:var(--ink);margin-bottom:8px}.empty p{margin:0 0 20px}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line-soft)}.mini-list li:last-child{border:0}.mini-list strong{display:block;font-size:var(--admin-small)}.mini-list small{display:block;color:var(--admin-muted);font-size:var(--t-xs)}.mini-list .badge{align-self:flex-start}.progress{height:7px;background:#e5e9e5;min-width:110px;margin:8px 0 3px}.progress span{display:block;height:100%;background:var(--blue)}.chapter-dues{display:flex;flex-direction:column;gap:4px}.permission{text-align:center;font-weight:700;color:#356008}.permission.no{color:#717771;font-weight:400}.permission-matrix th:first-child{min-width:160px}.methodology{color:var(--admin-muted);font-size:var(--t-xs);padding:14px 20px;border-top:1px solid var(--line-soft)}.methodology p{margin:0}.banner-impersonating{background:#fff0cc;color:#603d00;padding:12px 32px;display:flex;align-items:center;justify-content:space-between;gap:12px}.banner-impersonating p{margin:0}.page-footnote{font-size:var(--t-xs);color:var(--admin-muted);margin-top:24px}
/* Native dialogs retain keyboard focus and restore it to their opener. */
dialog{border:1px solid var(--line);padding:0;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 40px);color:var(--ink);background:white;box-shadow:0 20px 80px #10111033;overscroll-behavior:contain}dialog::backdrop{background:#101a2166}dialog.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(620px,100%);max-height:none;height:100dvh;border:0;border-left:1px solid var(--line)}.dialog-header{padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#fff}.dialog-header h2{font-size:var(--t-xl);margin:4px 0}.dialog-header p{margin:0;font-size:var(--t-xs);color:var(--admin-muted)}.close-button{font:inherit;background:white;border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink)}.dialog-body{padding:24px}.dialog-body section{margin-bottom:24px}.dialog-body section+section{padding-top:20px;border-top:1px solid var(--line)}.dialog-body h3{font-size:var(--t-base)}.dialog-body p{font-size:var(--admin-small)}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.dialog-actions .btn{flex:1;white-space:nowrap}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.detail-grid dt{font-size:var(--t-xs);color:var(--admin-muted);margin-bottom:4px}.detail-grid dd{margin:0;font-size:var(--admin-small);overflow-wrap:anywhere}.detail-grid .wide{grid-column:1/-1}.note-item{background:var(--bg-soft);padding:12px;margin-bottom:8px;overflow-wrap:anywhere}.note-item small{display:block;color:var(--admin-muted);font-size:var(--t-xs);margin-top:4px}.feedback{padding:12px 14px;background:#edf6e4;border:1px solid #bbd6a3;color:#31520a;font-size:var(--admin-small);margin:16px 0}.feedback.error{background:#fbeae8;border-color:#dfaaa4;color:#8a1c14}.feedback:empty{display:none}.dialog-body .field{margin-bottom:16px}.dialog-body textarea{min-height:90px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.modal-footer .btn{flex:1}.refund-policy{background:#fff6e7;padding:12px;font-size:var(--admin-small);margin-bottom:20px}.bundle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.bundle-card .panel-header{align-items:flex-start}.bundle-card .panel-body{padding:0}.bundle-totals{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid var(--line)}.bundle-total{font-size:var(--t-lg);font-weight:700}
/* Sign-in deliberately uses the same quiet, functional system as the workspace. */
.login-shell{min-height:calc(100dvh - 26px);display:grid;grid-template-columns:minmax(300px,43%) 1fr;background:white}.login-brand{background:var(--ink);padding:48px;display:flex;flex-direction:column;justify-content:space-between;color:white}.login-brand img{width:220px;height:auto}.login-brand h2{font-size:var(--t-xl);max-width:340px;line-height:1.3;margin-bottom:12px}.login-brand p{color:#c8cec8;max-width:340px;line-height:1.7}.login-brand .login-caption{margin-top:80px}.login-brand small{font-size:var(--t-xs);color:#b9c1b9}.login-main{display:flex;align-items:center;justify-content:center;padding:48px}.login-form{width:100%;max-width:390px}.login-form h1{font-size:1.875rem;margin-bottom:12px}.login-form .intro{color:var(--admin-muted);margin-bottom:28px}.login-form select{min-height:48px}.login-form .btn{width:100%;margin-top:8px}.login-note{font-size:var(--t-xs);color:var(--admin-muted);border-top:1px solid var(--line);padding-top:20px;margin-top:28px;line-height:1.65}.login-form>a{display:inline-block;margin-top:16px;font-size:var(--admin-small)}.login-role-description{min-height:44px;margin:8px 0 20px;font-size:var(--admin-small);color:var(--admin-muted)}
@media(min-width:1500px){.main{padding:32px 40px 48px}.topbar{padding-inline:40px}.chart-box{height:280px}}
@media(max-width:1150px){:root{--admin-sidebar:200px}.topbar{padding-inline:24px}.main{padding:24px}.grid-2{grid-template-columns:1fr 1fr}.kpi{padding:16px}.kpi-value{font-size:1.4rem}.topbar-name{display:none}.kpis{--kpi-count:3!important}.kpi:nth-child(3n){border-right:0}.kpi:nth-child(n+4){border-top:1px solid var(--line)}.bundle-grid{grid-template-columns:1fr}}
@media(max-width:850px){.grid-2{grid-template-columns:1fr}.kpis{--kpi-count:2!important}.kpi:nth-child(3n){border-right:1px solid var(--line-soft)}.kpi:nth-child(2n){border-right:0}.kpi:nth-child(n+3){border-top:1px solid var(--line)}.main{padding:24px 20px}.topbar{padding:12px 20px}.heading-meta .snapshot{display:none}.login-brand{padding:32px}.login-main{padding:32px}.login-shell{grid-template-columns:40% 1fr}}
@media(max-width:650px){.shell{display:block;min-height:calc(100dvh - 26px)}.sidebar{display:none;position:fixed;top:0;left:0;width:250px;height:100dvh;z-index:80;box-shadow:20px 0 50px #0004}.shell.nav-open .sidebar{display:flex}.mobile-shade{display:none}.shell.nav-open .mobile-shade{display:block;position:fixed;inset:0;background:#10111066;z-index:70;border:0}.menu-button{display:block;font-size:var(--t-xs)}.topbar{gap:8px;padding:10px 16px;flex-wrap:wrap;min-height:76px}.topbar-left{gap:8px}.topbar-actions{gap:8px}.user-initials,.signout{display:none}.role-switch{gap:4px;align-items:flex-start;flex-direction:column}.role-switch label{font-size:.75rem}.role-switch select{width:158px;min-height:36px;font-size:.75rem;padding:6px 22px 6px 8px}.topbar .badge{font-size:.75rem}.main{padding:24px 16px 36px}.page-heading{gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-heading h1{font-size:1.625rem}.page-heading p{font-size:var(--admin-small);max-width:30ch}.heading-meta{justify-content:flex-start}.kpis{margin-bottom:20px}.kpi{padding:16px 12px}.kpi-value{font-size:1.375rem}.kpi-note{line-height:1.5}.kpi-value .money{gap:3px}.grid-2{gap:16px;margin-bottom:20px}.panel{margin-bottom:20px}.panel-header{padding:16px;flex-wrap:wrap;gap:8px}.panel-header h2{font-size:1rem}.panel-body{padding:16px}.chart-box{height:250px}.chart-data{padding-inline:16px}.filters{padding:16px;gap:12px}.filters .field,.filters .field.search{min-width:calc(50% - 12px)}.filters .field.search{flex-basis:100%}.filters .btn{flex:1}.table-footer,.methodology{padding:12px 16px}th,td{padding:12px}.notice{padding:12px}.dialog-body{padding:20px}.dialog-header{padding:16px 20px}.dialog-header h2{font-size:var(--t-lg)}.detail-grid{gap:16px 12px}.dialog-actions .btn{flex-basis:45%;white-space:normal}.banner-impersonating{padding:12px 16px;align-items:flex-start}.banner-impersonating p{font-size:var(--t-xs)}.banner-impersonating button{font-size:var(--t-xs)}.login-shell{display:block}.login-brand{padding:24px}.login-brand img{width:155px}.login-brand .login-caption,.login-brand>small{display:none}.login-main{padding:40px 24px}.login-form h1{font-size:1.625rem}.login-form .intro{margin-bottom:24px}.login-note{margin-top:24px}.bundle-totals{padding:16px}.page-footnote{line-height:1.6}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* A lone final KPI spans the row when the strip wraps to two columns. */
@media(max-width:850px){.kpi:last-child:nth-child(odd){grid-column:1/-1;border-right:0}}

/* Narrow screens: tables become labelled cards so every column stays visible without sideways scrolling. */
@media(max-width:650px){
  table.rt,table.rt tbody,table.rt tr,table.rt td{display:block;width:100%}
  table.rt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.rt tr{padding:12px 16px;border-bottom:1px solid var(--line-soft)}
  table.rt tr:last-child{border-bottom:0}
  table.rt td{display:flex;justify-content:space-between;align-items:center;gap:16px;border:0;padding:4px 0;text-align:right;min-width:0}
  table.rt td[data-label]::before{content:attr(data-label);flex:0 0 36%;max-width:36%;text-align:left;color:var(--admin-muted);font-size:var(--t-xs);font-weight:700}
  table.rt td.primary{display:block;text-align:left;padding-bottom:8px;min-width:0}
  table.rt td.primary::before{display:none}
  table.rt td>.progress{margin-left:auto}
  table.rt td .money{justify-content:flex-end}
  table.rt td .badge{max-width:100%}
  table.rt td:not(.primary)>.muted{display:block}
  table.rt td .chapter-dues{align-items:flex-end}
  table.rt td:not(.primary)>div,table.rt td:not(.primary)>span:not(.badge):not(.money){text-align:right}
  table.rt tbody tr:hover{background:transparent}
  .table-footer{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
  .dialog-body .table-wrap{margin-inline:-4px}
}
.reg{min-width:150px}.reg .progress{margin:6px 0 0}.price-pair{display:flex;flex-direction:column;gap:4px}.price-pair .money{margin-left:4px}
@media(max-width:650px){table.rt td .reg{width:62%;text-align:right}table.rt td .reg .progress{margin-left:0}table.rt td .price-pair{align-items:flex-end}}
td .link-btn{white-space:nowrap}.price-pair span{white-space:nowrap}.price-pair .money{flex-wrap:nowrap}.reg{min-width:190px}
.empty h1{color:var(--ink);font-size:var(--admin-title)}.empty .eyebrow{margin-bottom:8px}
.sidebar :focus-visible,.banner-impersonating :focus-visible{outline-color:var(--lime)}
/* brand blue #007DB3 is 4.2:1 on white, so text links use a darker blue to clear WCAG AA */
a{color:#00658f}a:hover{color:var(--purple-deep)}

/* Membership profile and verification (admin-profile additions) */
.kpi-value .kpi-link{color:inherit;text-decoration:none;display:inline-block;min-height:44px;line-height:44px;margin-block:-10px}.kpi-value .kpi-link:hover{color:#00658f;text-decoration:underline;text-underline-offset:4px}
.side-nav a .nav-count{margin-left:auto;min-width:24px;padding:1px 7px;background:var(--lime);color:var(--ink);font-size:var(--t-xs);font-weight:700;text-align:center;line-height:1.5}
.side-nav a.active .nav-count{background:var(--ink);color:#fff}
.application-profile{border-top:1px solid var(--line-soft)}
.profile-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.profile-heading h3{margin:0}
.application-profile>.hint{margin:0 0 16px;font-size:var(--admin-small)}
.profile-group{padding:12px 0;border-top:1px solid var(--line-soft)}.profile-group h4{margin:0 0 12px;font-size:var(--t-sm);letter-spacing:.01em}
.profile-extra{border-top:1px solid var(--line-soft);padding:4px 0}.profile-extra summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;font-size:var(--t-sm)}.profile-extra .detail-grid{padding-bottom:12px}
.verification-actions{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.proof-name{overflow-wrap:anywhere;word-break:break-word}
td .badge+.muted,td .muted+.badge{margin-top:4px}td>.badge:not(:first-child){margin-top:6px}
#verification-feedback:empty{display:none}
.employment-analytics .panel{margin-bottom:0}
@media(max-width:650px){table.rt td .verification-actions{align-items:flex-end}.side-nav a .nav-count{margin-left:auto}}
#modal .detail-grid{margin-bottom:16px}
.submitted-cell .muted{display:block}
