.ace-friends-menu{position:relative;display:inline-block;font-size:.75rem;text-align:left}
.ace-friends-menu>summary{cursor:pointer;padding:5px 9px;list-style:none;border:1px solid var(--border,#30343b);border-radius:4px;color:var(--text,#eee)}
.ace-friends-menu>summary::-webkit-details-marker{display:none}
.ace-friends-menu>summary::after{content:' ▾'}
.ace-friends-menu[open]>summary{background:var(--bg2,#181c22)}
.ace-friends-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:420px;max-width:calc(100vw - 24px);z-index:10000;background:var(--bg2,#15191e);color:var(--text,#eee);border:1px solid var(--border,#30343b);border-radius:8px;box-shadow:0 12px 36px #0009;padding:8px;box-sizing:border-box}
.ace-friends-list{max-height:min(440px,60vh);overflow:auto}
.ace-friends-section-title{margin:8px 6px;font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text3,#9ca6b2)}
.ace-friends-self{margin-bottom:12px;padding:4px 0 10px;border-bottom:1px solid var(--border,#30343b)}
.ace-friends-self .ace-friends-row{border-bottom:0}
.ace-friends-self-note{margin:2px 6px 4px;font-size:.7rem;color:var(--text3,#9ca6b2);line-height:1.5}
.ace-friends-row{display:flex;gap:8px;align-items:baseline;padding:9px 6px;border-bottom:1px solid var(--border,#30343b);overflow-wrap:anywhere}
.ace-friends-row strong{flex:0 1 auto}.ace-friends-status{color:var(--text3,#9ca6b2);font-size:.72rem;flex:1;min-width:0}
.ace-friends-playing{color:var(--green,#38d68a)}
.ace-friends-message{padding:10px 6px;margin:0;white-space:normal}
.ace-friends-manage{display:block;padding:10px 6px;margin-top:4px;border-top:1px solid var(--border,#30343b)}
@media(max-width:600px){.ace-friends-dropdown{position:fixed;left:12px;right:12px;top:64px;width:auto}.ace-friends-row{flex-wrap:wrap}}
.ace-friends-modal{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-height:85vh;padding:24px;border:1px solid var(--border,var(--line,#30343b));border-radius:var(--r-lg,12px);background:var(--bg2,var(--bg,#15191e));color:var(--text,var(--fg,#eee));font:inherit;box-shadow:0 24px 90px #0008;overflow:auto}
.ace-friends-modal::backdrop{background:#0008;backdrop-filter:blur(4px)}
.ace-friends-modal [hidden]{display:none!important}.ace-friends-modal h2{margin:0;font-size:1.35rem}.ace-friends-modal h3{font-size:.95rem;margin:18px 0 10px}
.af-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.af-header p,.ace-friends-modal small,.ace-friends-modal .empty,.ace-friends-modal .person p{color:var(--text3,var(--fg-subtle,#9ca6b2));font-size:.8rem}.af-header p{margin:6px 0 12px}
.ace-friends-modal button,.ace-friends-modal input,.ace-friends-modal select{font:inherit;color:inherit;border:1px solid var(--border,var(--line,#30343b));background:var(--bg,var(--bg2,#15191e));border-radius:var(--r-sm,6px);padding:8px 12px;box-sizing:border-box}
.ace-friends-modal button{cursor:pointer;font-size:.8rem}.ace-friends-modal button:hover,.af-tabs button[aria-pressed=true]{color:var(--accent,#ff8700);border-color:var(--accent,#ff8700);background:var(--accent-dim,transparent)}
.ace-friends-modal button:disabled{opacity:.5;cursor:wait}.ace-friends-modal button.danger{color:var(--red,var(--danger,#eb6868))}.af-close{font-size:1.3rem!important}.af-toolbar,.af-tabs,.ace-friends-modal .actions{display:flex;gap:8px;flex-wrap:wrap}
.af-identity{display:grid;gap:8px;padding:16px 0}.af-identity code{color:var(--accent,#ff8700)}.af-tabs{border-bottom:1px solid var(--border,#30343b);padding-bottom:12px}.af-pane{padding-top:8px}.ace-friends-modal .person{padding:12px 0;border-bottom:1px solid var(--border,#30343b)}.ace-friends-modal .person p{margin:5px 0 10px}
.ace-friends-modal form{display:grid;gap:12px}.ace-friends-modal label{display:grid;gap:6px;font-size:.8rem}.ace-friends-modal label:has(input[type=checkbox]){display:flex;align-items:center}.ace-friends-modal input:not([type=checkbox]),.ace-friends-modal select{width:100%;min-width:0}.af-search{grid-template-columns:1fr auto;align-items:end}.ace-friends-modal [role=status]{font-size:.8rem;color:var(--accent,#ff8700);white-space:normal}.ace-friends-manage{color:var(--accent,#ff8700);background:transparent;border:0;text-align:left;cursor:pointer;font:inherit;width:100%}
@media(max-width:500px){.ace-friends-modal{padding:16px}.af-search{grid-template-columns:1fr}.af-tabs button{flex:1 1 40%}}

/* Override page-wide reset rules; both dialogs center in the viewport. */
dialog.ace-friends-modal{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 32px)}
.ace-teams-modal details{margin-top:16px;padding-top:12px;border-top:1px solid var(--border,#30343b)}.ace-teams-modal summary{cursor:pointer;font-weight:600}.ace-teams-modal textarea{width:100%;min-height:90px;resize:vertical;background:var(--bg,#15191e);color:inherit;border:1px solid var(--border,#30343b);border-radius:var(--r-sm,6px);padding:10px;font:inherit;box-sizing:border-box}.ace-teams-modal .person button{margin:4px 6px 0 0}

.ace-friends-racing{flex-basis:100%;font-size:.75rem;color:var(--text3,#9ca6b2);white-space:normal;overflow-wrap:anywhere;margin:4px 0}.ace-friends-actions{display:flex;flex-basis:100%;flex-wrap:wrap;gap:6px;margin-top:6px}.ace-friends-actions .btn{white-space:normal}

.ace-friend-join{flex-basis:100%;margin-top:6px}.ace-friend-join>summary{display:inline-flex;cursor:pointer;list-style:none}.ace-friend-join>summary::-webkit-details-marker{display:none}.ace-friend-join .ace-friends-actions{padding:8px;border:1px solid var(--border,#30343b);border-radius:6px;background:var(--bg,#101216)}
.ace-friends-row{flex-wrap:wrap;align-items:center}.ace-friends-row>strong{flex:0 1 auto;max-width:100%;overflow-wrap:anywhere}.ace-friends-row>.ace-friends-status{flex:1 1 190px;min-width:0;white-space:normal;overflow-wrap:anywhere}.ace-friends-row>.ace-friends-racing,.ace-friends-row>.ace-friend-join{width:100%;min-width:0}

.ace-friends-playing,.ace-friends-status a{color:var(--accent,var(--orange,#ff8700))}.ace-friend-join>summary,.ace-friends-actions .btn{background:var(--bg2,#111317);color:var(--text,#eee);border:1px solid var(--border,#30343b)}.ace-friend-join[open]>summary,.ace-friends-actions .btn:hover{color:var(--accent,var(--orange,#ff8700));border-color:var(--accent,var(--orange,#ff8700))}
.ace-friend-join .ace-friends-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);box-sizing:border-box}.ace-friend-join .ace-friends-actions .btn{width:100%;min-width:0;box-sizing:border-box;text-align:center;display:flex;align-items:center;justify-content:center}@media(max-width:420px){.ace-friend-join .ace-friends-actions{grid-template-columns:1fr}}

.ace-friends-pending{display:inline-block;margin-left:6px;border-radius:10px;padding:1px 6px;background:#ff8000;color:#111;font-size:11px;font-weight:700}.ace-friends-pending[hidden]{display:none}.ace-friends-request{width:100%;padding:8px;margin-bottom:8px;color:#ff963c;background:#30251c;border:1px solid #68462c;border-radius:5px}

.ace-friends-menu>summary.ace-friends-attention{border-color:var(--accent,#ff8700);box-shadow:0 0 0 1px var(--accent,#ff8700);color:var(--accent,#ff8700)}
.af-friend-name{display:flex;align-items:center;gap:8px;min-width:0}.af-friend-name>strong{min-width:0;overflow-wrap:anywhere}.ace-friends-modal button.af-friend-message{flex:0 0 auto;min-width:28px;min-height:28px;padding:3px 6px;border:1px solid var(--border,#30343b);border-radius:5px;background:transparent;color:var(--muted,#9faebe);font-size:14px}.ace-friends-modal button.af-friend-message:hover{color:var(--accent,#ff8700);border-color:var(--accent,#ff8700)}