/* Frostline Social drawer — compact game-network layout inspired by the provided reference. */
#friendsModal.friends-overlay{padding:0;align-items:stretch;justify-content:flex-end;background:#02132f99;backdrop-filter:blur(3px)}
#friendsModal .friends-card{width:min(460px,100%);height:100dvh;display:grid;grid-template-columns:72px minmax(0,1fr);border:0;border-left:1px solid #7ab5ff5c;border-radius:0;background:linear-gradient(160deg,#084fc4 0%,#0740a8 30%,#0738a3 62%,#093ba4 100%);box-shadow:-14px 0 56px #020a2f84;animation:friends-in .22s ease-out}
#friendsModal .friends-rail{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;min-width:0;margin:0;padding:12px 0 15px;border:0;border-right:1px solid #3e82ee45;background:linear-gradient(180deg,#07236f,#0641a7 65%,#08378b);box-shadow:inset -8px 0 20px #041d6633}
#friendsModal .friends-rail-persona{position:relative;width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;align-self:center;margin:5px 0 19px;border-radius:50%;border:2px solid #89dbff;background:linear-gradient(150deg,#2bbfd6,#2868c8 55%,#112e85);color:#f7fdff;font:950 24px/1 system-ui;box-shadow:0 2px 13px #04194c77}
#friendsModal #friendsRailPresence{position:absolute;right:-2px;bottom:0;width:13px;height:13px;border:2px solid #06368e;border-radius:50%;background:#7386a9}
#friendsModal #friendsRailPresence.active{background:#4dea72}
#friendsModal .friends-rail-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:66px;padding:9px 4px;color:#55daff;border:0;border-left:4px solid transparent;border-bottom:0;border-radius:0;background:transparent;cursor:pointer;transition:background .16s ease,color .16s ease}
#friendsModal .friends-rail-btn svg{width:25px;height:25px;flex:none}
#friendsModal .friends-rail-btn.active{border-left-color:#d0faff;background:linear-gradient(90deg,#edf8ff,#c4e8ff);color:#114abe;box-shadow:0 2px 8px #02226b44}
#friendsModal .friends-rail-btn:hover:not(.active){background:#58b4ff25;color:#e6faff}
#friendsModal .friends-rail-count{min-height:12px;padding:1px 5px;border-radius:9px;background:#32b7ee23;color:inherit;font-size:10px;font-weight:900;line-height:1.1}
#friendsModal .friends-rail-btn[data-friend-tab="requests"] .friends-rail-count:not(:empty){background:#f7d638;color:#092b70}
#friendsModal .friends-rail-spacer{flex:1}
#friendsModal #friendsClose{align-self:center;flex:0 0 43px;width:43px;height:43px;padding:0;margin:7px 0 0;background:#124eac;border:1px solid #88d9ff66;border-radius:7px;color:#d7f7ff;font-size:16px}
#friendsModal #friendsClose:hover{background:#2c73df}
#friendsModal .friends-pane{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
#friendsModal .friends-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:9px;min-height:105px;flex:0 0 auto;padding:20px 20px 15px;background:radial-gradient(ellipse at 70% 20%,#4e76f26b,transparent 66%),linear-gradient(90deg,#0338a9,#04299c 78%,#02237f);border-bottom:2px solid #2b76dfcc}
#friendsModal .friends-header h2{position:relative;z-index:1;margin:0 0 8px;font:950 italic 33px/1 system-ui,Arial,sans-serif;letter-spacing:-1.1px;text-shadow:0 3px 1px #001c6e75}
#friendsModal .friends-header small{position:relative;z-index:1;display:block;font-size:10px;font-weight:900;letter-spacing:.075em;color:#d0e7ff}
#friendsModal .friends-header-mark{font:950 italic 80px/1 system-ui;color:#8cbfff17;transform:rotate(-12deg);pointer-events:none}
#friendsModal .friends-identity{display:flex;align-items:center;gap:9px;min-width:0;flex:0 0 auto;margin:0;padding:11px 15px;border:0;border-bottom:1px solid #55a1ff69;border-radius:0;background:#002d8799}
#friendsModal .friends-avatar{width:37px;height:37px;flex:0 0 37px;border-radius:50%;border:1px solid #9bdbff;background:linear-gradient(145deg,#48d3dc,#1559c1);color:#fff;font-size:19px}
#friendsModal .friends-identity small{font-size:8px;color:#96caff;letter-spacing:.07em}
#friendsModal .friends-identity strong{font-size:12px;margin-top:3px}
#friendsModal #friendsRename{font-size:16px;padding:5px;color:#d0f9ff}
#friendsModal .friends-online-pill{font-size:8px;padding:5px 6px;background:#174c9a;border-color:#78a6d277;color:#b9d3ef}
#friendsModal .friends-online-pill.active{background:#0c806877;border-color:#61ffb0;color:#a7ffd3}
#friendsModal .friends-content{padding:11px 13px 22px;background:linear-gradient(180deg,#0649b6,#084ac0 47%,#0a46ad);scrollbar-color:#7ac5ff66 transparent;overscroll-behavior:contain}
#friendsModal .friends-group{margin:0 0 8px}
#friendsModal .friends-group-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:33px;padding:7px 10px;border:0;border-bottom:1px solid #66a7f69a;border-radius:1px;color:#f6faff;background:linear-gradient(110deg,#03256e,#072c83 80%,#0d3a8b);font-size:11px;font-weight:950;font-style:italic;letter-spacing:.035em;text-align:left;cursor:pointer}
#friendsModal .friends-group-heading .friends-group-meta{display:flex;align-items:center;gap:9px;font-size:10px;font-style:normal;color:#c9e3ff}
#friendsModal .friends-group-heading .friends-group-chevron{font-size:13px;line-height:1;transition:transform .17s ease}
#friendsModal .friends-group-heading[aria-expanded="true"] .friends-group-chevron{transform:rotate(90deg)}
#friendsModal .friends-group-body[hidden]{display:none!important}
#friendsModal .friends-group-body{padding:2px 0 6px}
#friendsModal .friends-group-empty{margin:0;padding:14px 10px;color:#aac9f4;font-size:10px;font-weight:750}
#friendsModal .friends-section-label{min-height:32px;margin:9px 0 8px;padding:9px 10px;border-bottom:1px solid #77acfc69;background:#052b82;color:#fff;font-size:10px}
#friendsModal .friends-section-label span{color:#bddbff}
#friendsModal .friend-row{display:flex;align-items:center;gap:9px;min-height:56px;margin:0;padding:8px 8px;border:0;border-bottom:1px solid #8abcff33;border-radius:0;background:linear-gradient(90deg,#1e5ec244,#0a429999);transition:background .12s}
#friendsModal .friend-row:hover{background:#4c80dc55}
#friendsModal .friend-row.is-online{border-bottom-color:#8ac1ff55}
#friendsModal .friend-avatar{position:relative;width:40px;height:40px;flex:0 0 40px;border:2px solid #b9e2ff;border-radius:50%;background:linear-gradient(135deg,#4d98e4,#12458d);color:#fff;font-size:17px}
#friendsModal .friend-avatar:after{content:'';position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border:2px solid #0d49aa;border-radius:50%;background:#7993bd}
#friendsModal .friend-row.is-online .friend-avatar{background:linear-gradient(140deg,#61d9b8,#1556bd)}
#friendsModal .friend-row.is-online .friend-avatar:after{background:#42ec79}
#friendsModal .friend-row-copy strong{font-size:12px;font-weight:950;color:#f8fdff}
#friendsModal .friend-row-copy small{font-size:9px;font-weight:700;color:#c6dcff;margin-top:4px;letter-spacing:0}
#friendsModal .friend-row.is-online .friend-row-copy small{color:#a7ffd2}
#friendsModal .friend-row-actions{max-width:117px;justify-content:flex-end;gap:4px}
#friendsModal .friend-action{padding:6px 7px;border:1px solid #5cd8ff80;border-radius:4px;background:#d9f9ff;color:#082b6b;font-size:8px;letter-spacing:.01em}
#friendsModal .friend-action.secondary{color:#d1ebff;border-color:#7eb0f380;background:#002b806e}
#friendsModal .friend-owner-tag{background:linear-gradient(#ffe994,#ffd342);border-color:#fff1af;color:#332600}
#friendsModal .friends-empty{margin:10px 0;padding:20px 12px;border:1px dashed #9ac4ff69;border-radius:5px;background:#072e80aa}
#friendsModal .friends-empty strong{font-size:12px}
#friendsModal .friends-empty p{color:#bed8ff;font-size:11px}
#friendsModal .friends-search-form input,#friendsModal .friends-rename-form input{border-color:#8dbbff77;border-radius:4px;background:#072c7d;color:#fff}
#friendsModal .friends-search-form button,#friendsModal .friends-rename-form button{background:#a9eaff;color:#082e7b;border-radius:4px}
#friendsModal .friends-hint{color:#bdd5ff;font-size:10px;margin:13px 4px}
#friendsModal .friends-status{padding:4px 13px;color:#c5ffe8;background:#083e9c;font-size:10px}
#friendsModal .friends-status.error{color:#ffd0b5}
#friendsModal .friends-footnote{padding:10px 14px 13px;background:#062d83;border-top:1px solid #82b6ff46;color:#97c9fa;font-size:8px;font-weight:800;letter-spacing:.035em}
#friendsModal .friends-party-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:63px;padding:10px 14px;background:linear-gradient(100deg,#05318b,#083d9f);border-top:1px solid #90bafa69}
#friendsModal .friends-party-actions[hidden]{display:none!important}
#friendsModal .friends-party-actions span{color:#c8eaff;font-size:10px;font-weight:950;letter-spacing:.06em}
#friendsModal #friendsLeaveParty{flex:0 0 auto;min-height:40px;padding:10px 16px;border:1px solid #ff858b;border-radius:5px;background:linear-gradient(130deg,#e8474c,#b91932);color:#fff;font-size:11px;font-weight:950;letter-spacing:.045em;box-shadow:0 4px 12px #49091951;cursor:pointer}
#friendsModal #friendsLeaveParty:hover:not(:disabled){background:linear-gradient(130deg,#fa6366,#c7253b)}
#friendsModal #friendsLeaveParty:disabled{opacity:.6;cursor:not-allowed}
#friendsModal #friendsLeaveParty:focus-visible{outline:3px solid #f6fa80;outline-offset:2px}
#friendsModal .friends-rail-btn:focus-visible,#friendsModal .friends-group-heading:focus-visible,#friendsModal #friendsClose:focus-visible{outline:3px solid #ecff67;outline-offset:-3px}
@media(max-width:540px){#friendsModal .friends-card{width:100%;grid-template-columns:59px minmax(0,1fr)}#friendsModal .friends-rail{padding-top:10px}#friendsModal .friends-rail-persona{width:43px;height:43px;flex-basis:43px;margin-bottom:13px}#friendsModal .friends-rail-btn{min-height:59px}#friendsModal .friends-header{min-height:91px;padding:17px 16px 13px}#friendsModal .friends-header h2{font-size:29px}#friendsModal .friends-identity{padding:9px 11px}#friendsModal .friends-content{padding-inline:8px}#friendsModal .friend-row{gap:6px;padding:7px 5px}#friendsModal .friend-row-actions{max-width:105px}#friendsModal .friend-action{font-size:7px;padding:6px 5px}}
@media(max-width:540px){#friendsModal .friends-party-actions{gap:6px;padding:9px 10px}#friendsModal #friendsLeaveParty{padding:9px 11px;font-size:10px}}
@media(max-height:530px){#friendsModal .friends-header{min-height:68px;padding-block:10px}#friendsModal .friends-header h2{font-size:25px}#friendsModal .friends-identity{padding-block:7px}#friendsModal .friends-rail-persona{margin-bottom:6px}#friendsModal .friends-rail-btn{min-height:49px}}
@media(prefers-reduced-motion:reduce){#friendsModal .friends-rail-btn,#friendsModal .friend-row,#friendsModal .friends-group-chevron{transition:none}}

/* PNG portraits follow the equipped outfit; no social-menu 3D renderer. */
#friendsModal .friend-avatar,#friendsModal .friends-avatar,#friendsModal #friendsRailAvatar{position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate}
#friendsModal #friendsRailAvatar{width:100%;height:100%;border-radius:50%}
#friendsModal .social-portrait-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;pointer-events:none}
#friendsModal .friend-avatar:after{z-index:2}
#friendsModal .friend-avatar{overflow:visible}
#friendsModal .friend-avatar .social-portrait-image{border-radius:50%}

/* Lightweight lobby party-invite cards: never cover the level meter or gameplay. */
#menu .lobby-invite-stack{position:fixed;top:clamp(78px,10vh,116px);right:clamp(12px,3vw,44px);z-index:80;width:min(335px,calc(100vw - 24px));display:grid;gap:9px;pointer-events:none}
#menu .lobby-invite-toast{min-width:0;padding:12px 13px 13px;border:1px solid #8ac5ef78;border-left:3px solid #70e7ff;border-radius:11px;background:linear-gradient(125deg,#061428f2,#0e2440ef);box-shadow:0 8px 25px #010b1e88;color:#f5fbff;pointer-events:auto;animation:lobby-invite-pop .28s cubic-bezier(.15,.85,.3,1) both}
#menu .lobby-invite-toast.sent{border-left-color:#81f3c1}
#menu .lobby-invite-toast-header{display:flex;align-items:center;gap:8px;min-height:20px}
#menu .lobby-invite-toast-mark{display:grid;place-items:center;flex:0 0 21px;width:21px;height:21px;border:1px solid #83eaff73;border-radius:50%;background:#1b6c9f78;color:#a9f6ff;font-size:13px;font-weight:900}
#menu .lobby-invite-toast.sent .lobby-invite-toast-mark{border-color:#9cfbd07a;background:#137a5688;color:#b4ffdd}
#menu .lobby-invite-toast-header strong{flex:1;font:900 11px/1.2 system-ui,Arial,sans-serif;letter-spacing:1.1px}
#menu .lobby-invite-toast-close{flex:none;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:#b8cfe0;font:20px/1 system-ui;cursor:pointer}
#menu .lobby-invite-toast-close:hover{background:#ffffff20;color:#fff}
#menu .lobby-invite-toast-body{display:flex;align-items:center;gap:10px;margin-top:10px}
#menu .lobby-invite-toast-body .friend-avatar{position:relative;display:grid;place-items:center;flex:none;width:43px;height:43px;overflow:hidden;border:1px solid #8ecbed;border-radius:9px;background:#15537d;color:#fff;font:900 17px system-ui}
#menu .lobby-invite-toast-body .social-portrait-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#menu .lobby-invite-toast-body p{flex:1;min-width:0;margin:0;color:#dceeff;font:700 12px/1.45 system-ui,Arial,sans-serif;overflow-wrap:anywhere}
#menu .lobby-invite-toast-actions{display:flex;gap:8px;margin-top:12px}
#menu .lobby-invite-toast-actions button{flex:1;min-width:0;padding:9px 5px;border-radius:6px;border:1px solid #9ac8ed80;font:900 10px/1.2 system-ui,Arial,sans-serif;letter-spacing:.5px;cursor:pointer}
#menu .lobby-invite-toast-join{background:#b9f2ff;color:#092a48}
#menu .lobby-invite-toast-decline{background:#182d48;color:#f2f8ff}
#menu .lobby-invite-toast-actions button:hover{filter:brightness(1.12)}
#menu .lobby-invite-toast-actions button:disabled{opacity:.5;cursor:wait}
#menu .lobby-invite-toast :is(button):focus-visible{outline:2px solid #faff9f;outline-offset:2px}
@keyframes lobby-invite-pop{from{opacity:0;transform:translateX(25px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}
@media(max-width:760px){#menu .lobby-invite-stack{top:105px;right:12px;width:min(305px,calc(100vw - 24px))}#menu .lobby-invite-toast{padding:10px 12px}#menu .lobby-invite-toast-body .friend-avatar{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){#menu .lobby-invite-toast{animation:none}}

/* Settings shares the existing social drawer; the old lobby buttons stay callable but hidden. */
#friendsModal .friends-settings-list{display:grid;gap:9px;margin-top:12px}
#friendsModal .friends-settings-entry{display:flex;align-items:center;gap:13px;width:100%;min-height:70px;padding:13px 14px;border:1px solid #8cbfff5e;border-radius:8px;background:linear-gradient(100deg,#0b378d,#0c53b0);color:#f5fbff;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}
#friendsModal .friends-settings-entry:hover{background:linear-gradient(100deg,#1450ae,#1375d3);border-color:#c4edff}
#friendsModal .friends-settings-entry:focus-visible{outline:3px solid #edff74;outline-offset:2px}
#friendsModal .friends-settings-symbol{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border:1px solid #a9dfff99;border-radius:9px;background:#0a296a;color:#b3efff;font-size:22px}
#friendsModal .friends-settings-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
#friendsModal .friends-settings-copy strong{font-size:12px;font-weight:950;letter-spacing:.04em}
#friendsModal .friends-settings-copy small{font-size:10px;line-height:1.4;color:#c3dfff}
#friendsModal .friends-settings-arrow{color:#95e8ff;font-size:25px;line-height:1}
