.roster-heading{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.roster-heading h2{margin:0}.roster-refresh{min-height:34px;font-size:var(--fs-sm);padding:5px 12px}.roster-table{gap:var(--sp-2);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));display:grid}.roster-load-more{grid-column:1/-1;justify-self:center}.roster-row{align-items:center;column-gap:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);transition:border-color var(--transition), background-color var(--transition), transform var(--transition);grid-template-columns:auto minmax(0,1fr) auto auto auto auto;grid-template-areas:"av name status score rename btn";display:grid;position:relative}@media (hover:hover) and (pointer:fine){.roster-row:hover{background:var(--panel-2);border-color:var(--border-strong);transform:translateY(-1px)}}.roster-row:has(.roster-open){cursor:pointer}.roster-row:has(.roster-open:focus-visible){border-color:var(--gold);outline:2px solid var(--gold);outline-offset:2px}.roster-row>.avatar-initials{grid-area:av}.roster-athlete-name{align-items:center;gap:2px var(--sp-2);flex-wrap:wrap;grid-area:name;min-width:0;display:flex}.roster-athlete-name strong,.roster-open{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-base);flex:100%;font-weight:700;overflow:hidden}.roster-open{min-height:0;box-shadow:none;color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;padding:0;font-family:inherit;line-height:1.6;display:block;transform:none}.roster-open:after{content:"";border-radius:inherit;position:absolute;inset:0}.roster-open:focus-visible{outline:none}.roster-open:active:not(:disabled){transform:none}.roster-flag{background:color-mix(in oklch, var(--red) 14%, transparent);border-color:color-mix(in oklch, var(--red) 30%, transparent);color:var(--red);flex:none;padding:1px 8px;font-size:11px}.roster-last-active{font-size:var(--fs-xs);white-space:nowrap;flex:0 auto}.roster-status{grid-area:status;justify-self:end}.roster-score{text-align:right;min-width:2ch;font-family:var(--font-display);font-variant-numeric:tabular-nums;grid-area:score;font-size:30px;font-weight:700;line-height:1}.roster-row>button{min-height:34px;font-size:var(--fs-sm);grid-area:btn;padding:5px 10px;position:relative}.roster-recovery{white-space:nowrap;flex:none}.roster-recovery-elite,.roster-recovery-good{color:var(--green)}.roster-recovery-caution{color:var(--warn)}.roster-recovery-low{color:var(--red)}.roster-recovery-none{border-color:var(--border);color:var(--muted);background:0 0}@media (max-width:600px){.roster-row{padding:var(--sp-3);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"av name score""av name status"".rename btn";row-gap:2px}.roster-row>button{margin-top:var(--sp-2);justify-self:start}.roster-score{font-size:28px}.roster-athlete-name strong,.roster-open{white-space:normal}}.landing-roster-mock{grid-template-columns:1fr}.landing-roster-mock .roster-row{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"av name status score"}@media (max-width:600px){.landing-roster-mock .roster-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"av name score""av name status"}}.attention-center .section-heading{margin-bottom:var(--sp-1)}.attention-lead{font-size:var(--fs-sm);margin:0}.attention-list{counter-reset:attention;margin:var(--sp-4) 0 0;gap:var(--sp-2);padding:0;list-style:none;display:grid}.attention-row{--attention-color:var(--muted);counter-increment:attention;align-items:center;column-gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);border:1px solid color-mix(in oklch, var(--attention-color) 28%, var(--border));background:color-mix(in oklch, var(--attention-color) 5%, var(--surface-2));grid-template-columns:28px auto minmax(0,1fr) auto auto auto;grid-template-areas:"rank av body icon btn x";display:grid}.attention-row:before{content:counter(attention, decimal-leading-zero);color:var(--attention-color);font-family:var(--font-display);font-variant-numeric:tabular-nums;grid-area:rank;font-size:22px;font-weight:700;line-height:1}.attention-row>.avatar-initials{grid-area:av}.attention-row>svg{color:var(--attention-color);grid-area:icon}.attention-row>.attention-action{min-height:34px;font-size:var(--fs-sm);grid-area:btn;padding:5px 12px}.attention-row-body{flex-direction:column;grid-area:body;gap:2px;min-width:0;display:flex}.attention-name{color:var(--text);font:inherit;font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:700}.attention-name:hover{text-decoration:underline}.attention-row>.attention-dismiss{width:44px;height:44px;color:var(--muted);grid-area:x;place-items:center;padding:0;display:grid}.attention-notice{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.attention-notice:not(:empty){margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:color-mix(in oklch, var(--green) 12%, transparent);border-radius:10px}.attention-notice button{min-height:44px}.attention-row-body span{font-size:var(--fs-sm);line-height:1.4}.attention-high{--attention-color:var(--red)}.attention-medium{--attention-color:var(--warn)}.attention-positive{--attention-color:var(--green)}@media (max-width:700px){.attention-row{row-gap:var(--sp-2);padding:var(--sp-3);grid-template-columns:24px auto minmax(0,1fr) auto auto;grid-template-areas:"rank av body icon x"".btn btn btn btn"}.attention-row>.attention-action{justify-self:start;min-height:44px}}.roster-row>.roster-rename{grid-area:rename}.roster-name-editor{align-items:center;gap:var(--sp-2);flex-wrap:wrap;width:100%;display:flex}.roster-name-editor input{flex:180px;min-width:0}.roster-name-editor button{min-height:34px;font-size:var(--fs-sm);padding:5px 12px}.roster-name-error{color:var(--red);font-size:var(--fs-sm);flex-basis:100%;margin:0}.daily-summary-toggle{align-items:flex-start;gap:var(--sp-2);margin-top:var(--sp-3);color:var(--muted);flex-basis:100%;font-size:14px;display:flex}.checkin-reminder-settings{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 0;color:var(--muted);border:none;flex-wrap:wrap;flex-basis:100%;padding:0;font-size:14px;display:flex}.checkin-reminder-toggle{align-items:center;gap:var(--sp-2);display:flex}.checkin-reminder-when{gap:var(--sp-2);display:flex}.checkin-reminder-when select{min-height:44px}.roster-flag-guardian{background:color-mix(in oklch, var(--warn) 14%, transparent);border-color:color-mix(in oklch, var(--warn) 30%, transparent);color:var(--warn)}
