.roster_page__cTx3U{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.roster_h1__ksc_6{display:flex;align-items:center;gap:8px;font-size:20px;margin:0}.roster_lead__lfbFR{color:var(--muted);font-size:13px;margin:8px 0 20px}.roster_muted__DQkLu{color:var(--muted)}.roster_back__L_e_f{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:13px;margin-bottom:14px}.roster_headRow__y5JUS{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.roster_card__gXIuD{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px}.roster_cardTitle__WfLEd{font-size:15px;margin:0 0 4px;display:flex;align-items:center;gap:8px}.roster_cardSub__rLken{font-size:12.5px;color:var(--muted);font-weight:400}.roster_cardHint__w_HD3{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.6}.roster_tableWrap__VS1tV{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;background:var(--surface)}.roster_table__LziOt{width:100%;border-collapse:collapse;font-size:13.5px}.roster_table__LziOt td,.roster_table__LziOt th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.roster_table__LziOt th{color:var(--muted);font-weight:600;font-size:12px;background:var(--bg)}.roster_table__LziOt tbody tr:last-child td{border-bottom:0}.roster_rowInactive__Ncdd9 td{color:var(--muted)}.roster_tag__gthXM{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px}.roster_tagOk__7Sxib{background:#e7f9ee;color:#05a548}.roster_tagOff__Nllqt{background:#f0f2f5;color:var(--muted)}.roster_tagBrand__5HN8J{background:#eef1fb;color:#3a4cad}.roster_field__pL0tN{margin-bottom:14px;max-width:520px}.roster_fieldWide__1LFch{margin-bottom:14px;max-width:none}.roster_fieldLabel__TqroL{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px}.roster_input__x6BCz,.roster_select__ijuHP,.roster_textarea__bmkP_{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;background:#fff;font-family:inherit;color:var(--ink)}.roster_input__x6BCz:focus,.roster_select__ijuHP:focus,.roster_textarea__bmkP_:focus{outline:none;border-color:var(--brand)}.roster_checkboxRow__S2eap{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:14px}.roster_two__dCHx1{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;max-width:520px}.roster_three__kEOsz{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;max-width:700px}.roster_btnDanger__jISUC,.roster_btnGhost__Ru2oG,.roster_btnPrimary___pyn1{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:6px;padding:8px 16px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent}.roster_btnPrimary___pyn1{background:var(--brand);color:#fff}.roster_btnPrimary___pyn1:disabled{background:#a8ecc4;cursor:not-allowed}.roster_btnGhost__Ru2oG{background:var(--surface);border-color:var(--line);color:var(--ink)}.roster_btnGhost__Ru2oG:disabled{color:var(--muted);cursor:not-allowed}.roster_btnDanger__jISUC{background:var(--surface);border-color:#f3c6c2;color:var(--danger)}.roster_btnDanger__jISUC:disabled{color:var(--muted);border-color:var(--line);cursor:not-allowed}.roster_btnRow__Fsu80{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.roster_banner__4glxd{display:flex;align-items:center;gap:8px;border:1px solid #f3c6c2;background:#fdf2f1;color:#7a1f18;border-radius:var(--radius);padding:10px 12px;font-size:13px;margin-bottom:16px}.roster_banner__4glxd>div{flex:1 1}.roster_success__PIrAJ{display:flex;align-items:center;gap:8px;border:1px solid #bfe9cd;background:#ecfaf1;color:#05672f;border-radius:var(--radius);padding:10px 12px;font-size:13px;margin-bottom:16px}.roster_success__PIrAJ>div{flex:1 1}.roster_overlay__PyyYC{position:fixed;inset:0;background:rgba(26,29,36,.4);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.roster_modal__V1gSL{background:var(--surface);border-radius:10px;border:1px solid var(--line);width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 8px 24px rgba(26,29,36,.16)}.roster_modalHead__TmRUA{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 0}.roster_modalTitle__E6dV1{font-size:16px;margin:0}.roster_iconBtn__XbG_6{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;cursor:pointer;color:var(--muted);padding:4px;border-radius:6px;line-height:0}.roster_iconBtn__XbG_6:hover{background:var(--bg)}.roster_modalBody__2muUa{padding:12px 16px 16px}.roster_modalText__0IlWV{font-size:13.5px;line-height:1.7;margin:0 0 12px}.roster_confirmBox__rjCv0{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--bg)}.roster_modalActions__zZiPp{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.roster_modeTabs__npva4{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}.roster_modeTab__Iu4_u{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;font:inherit;font-size:13px;color:var(--muted);padding:8px 4px;cursor:pointer;border-bottom:2px solid transparent;margin-right:12px}.roster_modeTabActive__PJeCX{color:var(--ink);font-weight:700;border-bottom-color:var(--brand)}.roster_candidateList___sy6e,.roster_searchPanel___JEO5{display:flex;flex-direction:column;gap:6px}.roster_candidateList___sy6e{list-style:none;margin:6px 0 0;padding:0;max-height:200px;overflow-y:auto}.roster_candidate__RgJTb{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:inherit;font-size:13px;cursor:pointer;text-align:left}.roster_candidate__RgJTb:hover{border-color:#cdd2da}.roster_candidateSelected__beA4U{border-color:var(--brand);background:#ecfaf1;font-weight:700}.roster_divider__H24ol{border:0;border-top:1px solid var(--line);margin:20px 0}