.roster-intro{display:flex;gap:23px;align-items:center;padding:26px 28px;margin-bottom:28px;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:15px;background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent),var(--panel)}.roster-intro-mark,.roster-empty-emblem{display:inline-grid;place-items:center;width:61px;height:61px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:17px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);flex-shrink:0}.roster-intro-mark svg,.roster-empty-emblem svg{width:31px;height:31px;stroke-width:1.3}.roster-intro>div{max-width:650px}.roster-intro .eyebrow{margin-bottom:9px}.roster-intro h2{margin:0 0 8px;font-size:24px}.roster-intro p:not(.eyebrow){font-size:12px;line-height:1.8;margin:0}.roster-intro>.text-link{margin-left:auto;white-space:nowrap}.roster-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.roster-theme-violet{--roster-accent:#b79af2;--roster-shade:#69449a}.roster-theme-jade{--roster-accent:#83dcc0;--roster-shade:#245f59}.roster-theme-ember{--roster-accent:#f1b78b;--roster-shade:#8d4a3a}.roster-theme-midnight{--roster-accent:#9cbef4;--roster-shade:#2c497a}.roster-team-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);min-width:0}.roster-team-cover{display:flex;justify-content:space-between;align-items:center;height:150px;padding:25px 27px;position:relative;background:linear-gradient(105deg,color-mix(in srgb,var(--roster-shade) 78%,#171122),#17112270),url('./assets/arena-tactical.webp') center 45%/cover;border-bottom:1px solid color-mix(in srgb,var(--roster-accent) 20%,transparent)}.roster-team-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 48%,#ffffff06 49%,#ffffff06 66%,transparent 67%);pointer-events:none}.roster-team-tag{font-size:27px;font-weight:800;letter-spacing:4px;line-height:1.1;color:#fff;max-width:65%;overflow-wrap:anywhere;z-index:1}.roster-team-mark{display:inline-grid;place-items:center;width:77px;height:77px;color:var(--roster-accent);border-radius:22px;border:1px solid color-mix(in srgb,var(--roster-accent) 50%,transparent);background:linear-gradient(135deg,#ffffff12,#ffffff03);box-shadow:0 10px 40px #0003;flex-shrink:0;z-index:1}.roster-team-mark svg{width:43px;height:43px;stroke-width:1.3}.roster-team-content{padding:26px}.roster-team-content>.row:first-child{gap:10px;flex-wrap:wrap}.roster-team-content .eyebrow{font-size:9px;margin:0}.roster-team-content h2{margin:17px 0 10px;font-size:26px;overflow-wrap:anywhere}.roster-team-content>p{font-size:12px;line-height:1.8;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.roster-team-memberstack{display:flex;align-items:center;margin:23px 0;min-height:37px}.roster-team-memberstack>a{display:grid;place-items:center;width:35px;height:35px;border:2px solid var(--panel);border-radius:12px;background:var(--panel2);color:var(--roster-accent);margin-right:-7px}.roster-team-memberstack>a:hover{z-index:2;border-color:var(--roster-accent)}.roster-team-memberstack svg{width:18px;height:18px}.roster-team-memberstack>span{margin-left:17px;font-size:11px;color:var(--muted)}.roster-team-content .btn{font-size:11px}.roster-team-empty{display:flex;align-items:flex-start;flex-direction:column;padding:35px;max-width:780px}.roster-team-empty>.roster-empty-emblem{margin-bottom:22px}.roster-team-empty h2{font-size:26px;margin-bottom:13px}.roster-team-empty p{font-size:13px;max-width:550px;line-height:1.85}.roster-previous{margin-top:30px}.roster-previous>summary{font-size:14px}.roster-previous>summary>span{margin-left:10px;padding:3px 7px;background:var(--panel2);border-radius:5px;color:var(--muted);font-size:11px}.roster-previous>.roster-team-grid{margin-top:24px}.roster-previous>.list-row{font-size:12px;gap:16px}.roster-previous>.list-row small{display:block;font-size:10px;margin-top:5px}.roster-previous>p{font-size:12px;line-height:1.8;margin-top:17px}.roster-invitations{margin:0 0 28px}.roster-invitations>h2{font-size:20px}.roster-invitations>.row{margin-bottom:17px}.roster-invitation{display:flex;gap:20px;align-items:center;margin-bottom:14px;padding:24px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent),var(--panel)}.roster-invitation>div:nth-child(2){flex:1;min-width:0}.roster-invitation .eyebrow{font-size:9px;margin-bottom:8px}.roster-invitation h3{font-size:20px;margin-bottom:8px;overflow-wrap:anywhere}.roster-invitation p{font-size:11px;margin:0 0 8px}.roster-invitation small{font-size:10px}.roster-invitation .btn,.roster-invitation button{font-size:11px;padding:10px 13px}.roster-invite-emblem{display:grid;place-items:center;width:51px;height:51px;flex-shrink:0;border-radius:14px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent)}.roster-invite-emblem svg{width:27px;height:27px}.roster-team-hero{position:relative;isolation:isolate;overflow:hidden;padding:34px;border-radius:16px;border:1px solid color-mix(in srgb,var(--roster-accent) 25%,transparent);margin-bottom:25px;background:linear-gradient(100deg,color-mix(in srgb,var(--roster-shade) 42%,#161320) 20%,#161320b0 70%),url('./assets/arena-tactical.webp') center 40%/cover}.roster-team-hero-main{display:flex;gap:28px;align-items:center;max-width:850px}.roster-team-hero-main h2{font-size:clamp(28px,3vw,44px);margin:0 0 12px;overflow-wrap:anywhere;letter-spacing:-.8px}.roster-team-hero-main .eyebrow{color:var(--roster-accent);margin-bottom:12px;font-size:9px}.roster-team-hero-main p:not(.eyebrow){font-size:13px;line-height:1.9;margin-bottom:0;max-width:600px}.roster-team-hero-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px;padding-top:21px;border-top:1px solid #ffffff12;font-size:11px;color:#d8d0e7}.roster-team-hero-meta>.btn{margin-left:auto}.roster-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.roster-members{padding:28px;overflow:visible}.roster-members>.row{gap:12px;align-items:flex-start;margin-bottom:13px}.roster-members h2{font-size:21px;margin:8px 0 12px}.roster-members .eyebrow{font-size:9px;margin:0}.roster-member{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--line)}.roster-member-identity{display:flex;align-items:center;gap:13px;flex:1;min-width:160px}.roster-member-identity strong{display:block;font-size:13px;overflow-wrap:anywhere}.roster-member-identity small{display:block;font-size:10px;margin-top:5px;overflow-wrap:anywhere}.roster-member-avatar{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:12px;background:var(--panel2);color:var(--accent)}.roster-member-avatar svg{width:25px;height:25px;stroke-width:1.3}.roster-member-actions{width:100%;padding-left:57px;gap:8px}.roster-member-actions>form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:0}.roster-member-actions .field{margin:0;max-width:155px}.roster-member-actions .field>label{font-size:10px;margin-bottom:5px}.roster-member-actions select{font-size:11px;padding:8px 10px;min-height:35px}.roster-member-actions button{font-size:10px;padding:9px 11px;min-height:35px}.roster-member-actions .error{margin:0;font-size:10px;flex-basis:100%}.roster-team-aside>.panel{margin-bottom:20px;padding:24px}.roster-team-aside h2{font-size:23px;line-height:1.2}.roster-team-aside h3{font-size:16px}.roster-team-aside p{font-size:12px;line-height:1.85}.roster-team-aside .field label{font-size:11px}.roster-team-aside input{font-size:12px}.roster-team-aside form>button{font-size:11px}.roster-team-aside .eyebrow{font-size:9px;margin-bottom:15px}.roster-owner-options{overflow:visible}.roster-owner-options>summary{font-size:12px}.roster-owner-options[open]>p{margin-top:20px}.roster-outgoing{margin-top:24px}.roster-outgoing h2{font-size:20px}.roster-outgoing p{font-size:12px}.roster-outgoing .list-row{gap:14px}.roster-outgoing .list-row strong{font-size:12px}.roster-outgoing .list-row small{display:block;font-size:10px;margin-top:5px}.roster-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:25px;align-items:start}.roster-editor-layout>section{padding:30px}.roster-editor-layout h2{font-size:25px}.roster-editor-layout .form-grid{gap:17px}.roster-editor-layout .muted{font-size:11px;line-height:1.8}.roster-editor-aside>.panel{padding:24px;margin-bottom:20px}.roster-editor-aside h3{margin-top:21px}.roster-editor-aside .panel+.panel h3{margin-top:0}.roster-editor-aside p{font-size:12px;line-height:1.85}
@media(max-width:1250px){.roster-detail-layout{grid-template-columns:minmax(0,1fr) 270px}.roster-members{padding:22px}.roster-invitation{flex-wrap:wrap}.roster-invitation>.row{padding-left:71px;width:100%}.roster-editor-layout{grid-template-columns:minmax(0,1fr) 270px}.roster-editor-layout .form-grid{grid-template-columns:1fr}.roster-editor-layout .full{grid-column:auto}.roster-intro>.text-link{display:none}}
@media(max-width:950px){.roster-detail-layout,.roster-editor-layout{grid-template-columns:1fr}.roster-editor-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.roster-editor-aside>.panel{margin:0}.roster-team-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.roster-team-aside>.panel{margin:0}.roster-team-aside .roster-owner-options{align-self:start}.roster-team-grid{grid-template-columns:1fr 1fr}.roster-team-cover{padding:23px;height:140px}.roster-team-mark{width:65px;height:65px}.roster-team-mark svg{width:36px;height:36px}.roster-editor-layout .form-grid{grid-template-columns:1fr 1fr}.roster-editor-layout .full{grid-column:1/-1}.roster-team-content{padding:22px}}
@media(max-width:700px){.roster-team-grid{grid-template-columns:1fr}.roster-intro{padding:23px;gap:18px;align-items:flex-start}.roster-intro-mark{width:43px;height:43px;border-radius:12px}.roster-intro-mark svg{width:24px;height:24px}.roster-intro h2{font-size:21px}.roster-intro .eyebrow{font-size:8px}.roster-intro p:not(.eyebrow){font-size:11px}.roster-team-hero{padding:26px 22px}.roster-team-hero-main{align-items:flex-start;gap:18px}.roster-team-hero-main h2{font-size:29px}.roster-team-hero-main .roster-team-mark{width:57px;height:57px;border-radius:16px}.roster-team-hero-main .roster-team-mark svg{width:32px;height:32px}.roster-team-hero-main .eyebrow{font-size:8px}.roster-team-hero-main p:not(.eyebrow){font-size:11px}.roster-team-hero-meta{margin-top:24px;font-size:10px;gap:12px}.roster-team-hero-meta>.btn{margin-left:0}.roster-team-aside,.roster-editor-aside{grid-template-columns:1fr}.roster-member{gap:12px}.roster-member-identity{min-width:130px}.roster-member-actions{padding-left:0}.roster-member-actions>form{flex-basis:100%;margin-bottom:4px}.roster-member-actions .field{max-width:none;flex:1}.roster-member-actions select{width:100%}.roster-invitation{padding:21px;gap:14px}.roster-invite-emblem{width:41px;height:41px}.roster-invitation>div:nth-child(2){min-width:150px}.roster-invitation>.row{padding-left:0;gap:8px}.roster-editor-layout>section{padding:23px}.roster-editor-layout .form-grid{grid-template-columns:1fr}.roster-editor-layout .full{grid-column:auto}.roster-editor-layout h2{font-size:23px}.roster-team-empty{padding:27px}.roster-team-empty h2{font-size:24px}.roster-team-empty p{font-size:12px}.roster-previous>.list-row{flex-wrap:wrap}.roster-outgoing .list-row{flex-wrap:wrap}}

.roster-live-preview{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--panel);margin-bottom:20px}.roster-live-preview .roster-team-cover{height:140px;padding:22px}.roster-live-preview .roster-team-tag{font-size:22px}.roster-live-preview .roster-team-mark{width:58px;height:58px;border-radius:17px}.roster-live-preview .roster-team-mark svg{width:33px;height:33px}.roster-preview-copy{padding:23px}.roster-preview-copy .eyebrow{font-size:8px;margin:0 0 12px}.roster-preview-copy h3{font-size:22px;overflow-wrap:anywhere;margin:0 0 12px}.roster-preview-copy p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.roster-preview-copy small{font-size:10px}@media(max-width:950px){.roster-editor-aside>#team-preview{grid-column:1/-1;max-width:420px;width:100%;justify-self:center}}
.roster-member-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.roster-position{background:var(--panel2);color:var(--muted)}.roster-custom-color-violet{background:#b795fa1c;color:#c6aafc}.roster-custom-color-jade{background:#73d4b51c;color:#8be0c3}.roster-custom-color-ember{background:#f1ab791c;color:#ffc18f}.roster-custom-color-ice{background:#88c9f31c;color:#a4d9ff}.roster-custom-color-rose{background:#e993c31c;color:#f5add5}.roster-custom-color-gold{background:#e9cb7b1c;color:#f5d98c}.roster-role-section{margin-top:24px;padding:28px;overflow:visible}.roster-role-section>.split-heading{margin:0 0 16px;align-items:center}.roster-role-section h2{margin-bottom:0}.roster-role-section>p{font-size:12px;max-width:780px;line-height:1.8}.roster-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:23px 0}.roster-role-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.roster-role-card>.badge{max-width:100%;overflow-wrap:anywhere}.roster-role-card ul{padding-left:18px;font-size:11px;color:var(--muted);line-height:1.9;margin:15px 0}.roster-role-card details{margin:17px 0 0;border-color:var(--line);padding:12px}.roster-role-card summary{font-size:11px}.roster-role-card form{margin-top:18px}.roster-role-card .form-grid{grid-template-columns:1fr}.roster-role-card>.badge{font-size:12px}.roster-role-card .field label{font-size:11px}.roster-role-card .field input,.roster-role-card .field select{font-size:12px}.roster-role-card details>button{margin-top:13px}.roster-permission-picker{min-width:0;padding:0;border:0;margin:23px 0;display:grid;gap:11px}.roster-permission-picker legend{font-size:12px;font-weight:700;margin-bottom:15px}.roster-permission-picker>label{display:flex;align-items:flex-start;gap:11px;font-size:12px;color:var(--muted);padding:11px;border:1px solid var(--line);border-radius:8px;line-height:1.65;background:#ffffff02}.roster-permission-picker input{flex-shrink:0;width:16px;height:16px;margin:2px 0 0;accent-color:var(--accent)}.roster-permission-picker label:has(input:checked){color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.roster-role-create{margin-top:24px}.roster-role-create>summary{font-size:13px}.roster-role-create>form{margin-top:24px;max-width:760px}.roster-role-create .muted{font-size:11px;line-height:1.8}.roster-member-actions>form{padding:9px 0}.roster-member-actions .field select{min-width:140px}.roster-member-actions .field{max-width:220px}
@media(max-width:1050px){.roster-role-grid{grid-template-columns:1fr}}@media(max-width:700px){.roster-member-badges{justify-content:flex-start;flex-basis:100%;padding-left:57px}.roster-role-section{padding:23px}.roster-role-section h2{font-size:21px}.roster-role-card{padding:17px}.roster-member-actions .field{max-width:none}.roster-role-card details{padding:10px}.roster-permission-picker>label{font-size:11px}.roster-role-create .form-grid{grid-template-columns:1fr}}
.roster-team-cover,.roster-team-hero{overflow:hidden}.roster-uploaded-banner{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;z-index:0}.roster-has-banner::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(95deg,#14101fe8 0%,#1711208a 65%,#17112044);pointer-events:none}.roster-team-hero-main,.roster-team-hero-meta{position:relative;z-index:1}.roster-team-mark>.roster-uploaded-logo{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit;background:#17112066}.roster-member-avatar>.roster-uploaded-avatar,.roster-team-memberstack a>.roster-uploaded-avatar{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.roster-editor-layout .media-editor{padding:1rem}.roster-editor-layout .media-editor-grid{grid-template-columns:minmax(0,1fr)}.roster-editor-layout .media-editor h2{font-size:20px}.roster-editor-layout .media-upload-card{margin:0}.roster-editor-layout .media-upload-fields h3{font-size:16px}.roster-editor-layout .media-preview-square{aspect-ratio:16/7}
