/* Zentrale Freunde-, Profil-, Chat- und Notification-Oberflaeche. */
#spioniroSocialRoot{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink,#f3f3ff);letter-spacing:0}
#spioniroSocialRoot *,#spioniroSocialRoot,.soc-launch,.soc-launch *{box-sizing:border-box;letter-spacing:0}
.soc-launch{display:none;z-index:390;width:96px;height:42px;min-width:96px;padding:0 9px;border:1px solid var(--border,#303043);border-radius:12px;background:var(--surface,#15151f);color:var(--ink,#f3f3ff);box-shadow:none;font:inherit;place-items:center;grid-template-columns:20px minmax(0,1fr);gap:6px;cursor:pointer;position:relative}
.soc-launch.soc-docked{position:relative;inset:auto;display:grid;flex:0 0 96px}
.soc-launch.soc-hub-docked{position:fixed;display:grid;top:calc(var(--sa-top,0px) + 14px);right:calc(var(--sa-right,0px) + 66px);width:96px;height:44px;z-index:50}
.soc-launch-avatar{font-size:17px;line-height:1}.soc-launch-copy{min-width:0;display:flex;align-items:flex-start;line-height:1}.soc-launch-copy strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.soc-launch:hover{border-color:var(--accent,#7c5cfc)}
.soc-player-heading{display:flex!important;align-items:center;justify-content:space-between;gap:10px}
.soc-lobby-invite{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:26px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--accent,#7c5cfc) 55%,var(--border,#303043));border-radius:999px;background:color-mix(in srgb,var(--accent,#7c5cfc) 12%,var(--surface2,#20202d));color:var(--ink,#f3f3ff);font:inherit;font-size:10px;font-weight:800;line-height:1;letter-spacing:0;text-transform:none;cursor:pointer}
.soc-lobby-invite:hover{border-color:var(--accent,#7c5cfc);background:color-mix(in srgb,var(--accent,#7c5cfc) 20%,var(--surface2,#20202d))}
.soc-lobby-share-backdrop{position:fixed;inset:0;z-index:9700;display:grid;place-items:center;padding:16px;background:rgba(5,5,12,.76);backdrop-filter:blur(7px);font-family:'DM Sans',system-ui,sans-serif;color:var(--ink,#f3f3ff)}
.soc-lobby-share-card{width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:20px;border:1px solid var(--border2,#303043);border-radius:22px;background:var(--surface,#15151f);box-shadow:0 24px 65px rgba(0,0,0,.4)}
.soc-lobby-share-head,.soc-lobby-share-head>div{display:flex;align-items:center;gap:8px}.soc-lobby-share-head{justify-content:space-between}.soc-lobby-share-head h2{margin:0;font:800 22px/1.2 'Syne',system-ui,sans-serif}.soc-lobby-share-head button{min-height:40px;padding:0 12px;border:1px solid var(--border,#303043);border-radius:11px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:700 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}.soc-lobby-share-head [data-share-close]{width:40px;padding:0;font-size:23px;font-weight:400}
.soc-lobby-share-group{margin-top:18px}.soc-lobby-share-group h3{margin:0 0 8px;color:var(--muted,#9292aa);font-size:12px;font-weight:800}.soc-lobby-share-group>div{display:grid;gap:7px}.soc-lobby-share-group p{margin:0;padding:12px;color:var(--muted,#9292aa);font-size:13px}.soc-invite-friend{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 10px;border:1px solid var(--border,#303043);border-radius:14px;background:var(--surface2,#20202d)}.soc-invite-friend-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700}.soc-invite-friend button{min-height:36px;padding:0 11px;border:1px solid var(--accent,#7c5cfc);border-radius:10px;background:color-mix(in srgb,var(--accent,#7c5cfc) 13%,var(--surface,#15151f));color:var(--ink,#f3f3ff);font:700 12px 'DM Sans',system-ui,sans-serif;cursor:pointer}.soc-invite-friend button:disabled{opacity:.55;cursor:default}
.soc-lobby-share-card [hidden]{display:none!important}.soc-lobby-share-card [data-share-view]>p{margin:18px 0 12px;color:var(--muted,#9292aa);font-size:13px}.soc-lobby-share-qr{display:grid;place-items:center;width:220px;height:220px;margin:0 auto 16px;padding:12px;border-radius:12px;background:#fff;color:#24242d;text-align:center;font-size:12px}.soc-lobby-share-qr canvas,.soc-lobby-share-qr img{display:block;max-width:100%}.soc-lobby-share-link{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}.soc-lobby-share-link input,.soc-lobby-share-link button,.soc-lobby-share-card [data-copy-link]{min-height:44px;border:1px solid var(--border,#303043);border-radius:11px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:600 12px 'DM Sans',system-ui,sans-serif}.soc-lobby-share-link input{min-width:0;padding:0 12px}.soc-lobby-share-link button{display:grid;place-items:center;cursor:pointer}.soc-lobby-share-link svg{width:19px;height:19px}.soc-lobby-share-card [data-copy-link]{width:100%;margin-top:9px;cursor:pointer}.soc-lobby-share-status{min-height:18px;margin:12px 0 0;color:var(--green,#40c878);font-size:12px}.soc-lobby-share-status.error{color:var(--red,#f05050)}.soc-lobby-share-card button:focus-visible,.soc-lobby-share-card input:focus-visible,.soc-lobby-invite:focus-visible{outline:3px solid var(--accent,#7c5cfc);outline-offset:2px}
@media(max-width:390px){.soc-lobby-share-card{padding:16px}.soc-invite-friend{gap:7px}.soc-invite-friend button{padding:0 8px}}
.soc-count{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#ff4d6d;color:#fff;font-size:11px;font-weight:900;line-height:20px;border:2px solid var(--bg,#0b0b11)}
.soc-scrim{position:fixed;inset:0;z-index:399;background:rgba(0,0,0,.38)}
.soc-panel{position:fixed;right:0;top:0;bottom:0;z-index:400;width:min(390px,100vw);display:flex;flex-direction:column;background:var(--bg,#0d0d14);border-left:1px solid var(--border,#2b2b3a);box-shadow:-18px 0 44px rgba(0,0,0,.3);transform:translateX(105%);transition:transform .22s ease;overflow:hidden}
.soc-panel.open{transform:translateX(0)}
.soc-head{display:grid;grid-template-columns:38px 38px minmax(0,1fr) 38px 38px;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 12px) 14px 10px;border-bottom:1px solid var(--border,#2b2b3a);background:var(--surface,#15151f)}
.soc-title{display:flex;flex-direction:column;min-width:0}.soc-title strong{font-size:16px}.soc-title span{font-size:11px;color:var(--muted,#9292aa)}
.soc-my-profile,.soc-icon{display:grid;place-items:center;width:36px;height:36px;min-width:36px;padding:0;border:1px solid var(--border,#303043);border-radius:50%;background:var(--surface2,#1d1d2a);color:var(--ink,#f3f3ff);font:inherit;cursor:pointer}
.soc-my-profile{font-size:20px}.soc-icon{font-size:17px}.soc-icon:hover,.soc-my-profile:hover{border-color:var(--accent,#7c5cfc)}
.soc-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding:8px 10px;border-bottom:1px solid var(--border,#2b2b3a);background:var(--surface,#15151f)}
.soc-tabs button{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--muted,#9292aa);font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.soc-tabs button.on{background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);box-shadow:inset 0 -2px var(--accent,#7c5cfc)}
.soc-reward-alert{width:calc(100% - 20px);min-height:38px;margin:8px 10px 0;padding:8px 12px;border:1px solid color-mix(in srgb,#f5c84c 65%,var(--border,#303043));border-radius:8px;background:color-mix(in srgb,#f5c84c 14%,var(--surface,#15151f));color:#f5c84c;font:inherit;font-size:12px;font-weight:900;cursor:pointer}
.soc-reward-alert:hover{background:color-mix(in srgb,#f5c84c 21%,var(--surface,#15151f))}.soc-reward-alert[hidden]{display:none}
.soc-body{flex:1;min-height:0;overflow:auto;padding:14px 12px calc(env(safe-area-inset-bottom) + 20px)}
.soc-group{margin:0 0 18px}.soc-group>h3,.soc-stats>h3{margin:0 4px 8px;color:var(--muted,#9292aa);font-size:11px;text-transform:uppercase;font-weight:900}.soc-group>h3 span{font-variant-numeric:tabular-nums}
.soc-person{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid var(--border,#292938)}
.soc-person-main{display:flex;align-items:center;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.soc-person-copy,.soc-person-main>span:last-child{display:flex;flex-direction:column;min-width:0}.soc-person-copy strong,.soc-person-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.soc-person-copy small,.soc-person-main small{margin-top:2px;color:var(--muted,#9292aa);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.soc-avatar{position:relative;display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:var(--surface2,#20202d);font-size:22px}.soc-status{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border:2px solid var(--bg,#0d0d14);border-radius:50%;background:#686879}.soc-status.online{background:#39d98a}.soc-status.in-game,.soc-status.in-lobby{background:#52a7ff}.soc-status.away{background:#f6c453}.soc-status.offline{background:#686879}
.soc-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.soc-actions button,.soc-profile-actions button,.soc-back,.soc-search-form button,.soc-rejoin button{min-height:32px;padding:6px 9px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.soc-actions button:disabled{opacity:.55}.soc-primary{background:var(--accent,#7c5cfc)!important;border-color:var(--accent,#7c5cfc)!important;color:#fff!important}
.soc-muted{color:var(--muted,#9292aa);font-size:11px}.soc-empty{padding:42px 24px;text-align:center;color:var(--muted,#9292aa)}.soc-empty strong{display:block;color:var(--ink,#f3f3ff);font-size:16px}.soc-empty p{margin:8px 0 16px;font-size:13px;line-height:1.5}.soc-loading{padding:42px 20px;text-align:center;color:var(--muted,#9292aa);font-size:13px}
.soc-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:12px}.soc-search-form input,.soc-chat-form input{width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface,#15151f);color:var(--ink,#f3f3ff);font:inherit;font-size:13px;outline:none}.soc-search-form input:focus,.soc-chat-form input:focus{border-color:var(--accent,#7c5cfc)}
.soc-news-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--border,#292938)}.soc-news-item.unread{background:color-mix(in srgb,var(--accent,#7c5cfc) 8%,transparent)}.soc-news-item>div{min-width:0}.soc-news-item strong{font-size:13px}.soc-news-item p{margin:2px 0;color:var(--muted,#9292aa);font-size:12px;line-height:1.35}.soc-news-item small{color:var(--muted,#9292aa);font-size:10px}
.soc-reward-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;margin-bottom:10px;padding:14px;border:1px solid color-mix(in srgb,#f5c84c 45%,var(--border,#292938));border-radius:9px;background:color-mix(in srgb,#f5c84c 7%,var(--surface,#15151f))}.soc-reward-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,#f5c84c 18%,var(--surface2,#20202d));font-size:23px}.soc-reward-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:8px}.soc-reward-copy>strong{font-size:15px}.soc-reward-copy p{margin:0;color:var(--muted,#9292aa);font-size:12px;line-height:1.45}.soc-reward-copy small{color:var(--muted,#9292aa);font-size:10px;line-height:1.35}.soc-reward-code{display:flex;width:100%;align-items:center;gap:6px}.soc-reward-code code{min-width:0;flex:1;overflow-wrap:anywhere;padding:8px;border:1px dashed #f5c84c;border-radius:6px;background:var(--surface2,#20202d);color:#f5c84c;font-size:12px}.soc-reward-code button,.soc-reward-confirm{min-height:34px;padding:6px 9px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.soc-reward-link{color:#8eb8ff;font-size:12px;font-weight:800}.soc-reward-confirm{width:100%;margin-top:2px}
.soc-reward-login-form{width:100%;padding:9px;border:1px solid var(--border,#303043);border-radius:7px;background:var(--surface2,#20202d)}.soc-reward-login-form label{display:block;margin-bottom:6px;color:var(--muted,#9292aa);font-size:10px;font-weight:800}.soc-reward-login-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.soc-reward-login-form input{min-width:0;height:36px;padding:7px 9px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface,#15151f);color:var(--ink,#f3f3ff);font:inherit;font-size:12px;outline:none}.soc-reward-login-form input:focus{border-color:var(--accent,#7c5cfc)}.soc-reward-login-form button,.soc-reward-hide{min-height:34px;padding:6px 9px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.soc-reward-hide{align-self:flex-end}
.soc-back{margin:0 0 14px}.soc-profile-hero{display:flex;align-items:center;gap:14px;padding:4px 4px 16px;border-bottom:1px solid var(--border,#292938)}.soc-profile-avatar{display:grid;place-items:center;width:64px;height:64px;flex:0 0 64px;border-radius:50%;background:var(--surface2,#20202d);font-size:38px}.soc-profile-hero h2{margin:0;font-size:19px;line-height:1.25}.soc-profile-hero p{margin:3px 0;color:var(--muted,#9292aa);font-size:12px}.soc-presence-line{display:flex;align-items:center;gap:6px;font-size:12px}.soc-presence-line .soc-status{position:static;border-color:transparent}.soc-bio{margin:14px 4px;color:var(--ink,#f3f3ff);font-size:13px;line-height:1.5}.soc-profile-actions{display:flex;gap:7px;flex-wrap:wrap;padding:14px 4px}.soc-stats{margin-top:12px;padding-top:14px;border-top:1px solid var(--border,#292938)}.soc-stats>div{display:flex;justify-content:space-between;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border,#292938);font-size:13px}.soc-stats>div strong{font-variant-numeric:tabular-nums;color:#f5c84c}
.spi-badge,.soc-badge{display:inline-flex!important;align-items:center;justify-content:center;height:16px!important;min-width:16px!important;padding:0 4px!important;border-radius:4px!important;font-size:8px!important;line-height:1!important;vertical-align:2px;color:#fff}.spi-badge-verified{background:#2f9d68}.spi-badge-developer{background:#7c5cfc}.soc-badge{background:#2f9d68}
.soc-chat{position:fixed;right:410px;bottom:16px;z-index:405;width:min(340px,calc(100vw - 32px));height:min(500px,calc(100dvh - 32px));display:flex;flex-direction:column;border:1px solid var(--border,#303043);border-radius:8px;background:var(--bg,#0d0d14);box-shadow:0 16px 50px rgba(0,0,0,.36);overflow:hidden;transform:translateY(0);opacity:1;transition:transform .18s ease,opacity .18s ease}.soc-chat.closing{transform:translateY(calc(100% + 24px));opacity:0}.soc-chat[hidden]{display:none}.soc-chat>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border,#292938);background:var(--surface,#15151f)}.soc-chat>header .soc-avatar{width:32px;height:32px;flex-basis:32px;font-size:18px}.soc-messages{flex:1;display:flex;flex-direction:column;gap:6px;overflow:auto;padding:12px}.soc-message{display:flex;align-self:flex-start;flex-direction:column;max-width:82%;padding:8px 10px;border-radius:7px;background:var(--surface2,#20202d);font-size:13px;line-height:1.35}.soc-message.mine{align-self:flex-end;background:var(--accent,#7c5cfc);color:#fff}.soc-message small{align-self:flex-end;margin-top:3px;font-size:9px;opacity:.7}.soc-chat-form{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:7px;padding:9px 10px calc(env(safe-area-inset-bottom) + 9px);border-top:1px solid var(--border,#292938)}.soc-chat-form button{min-width:40px;border-radius:50%}
.soc-chat{position:fixed;right:410px;bottom:16px;z-index:405;width:min(340px,calc(100vw - 32px));height:min(500px,calc(100dvh - 32px));display:flex;flex-direction:column;border:1px solid var(--border,#303043);border-radius:8px;background:var(--bg,#0d0d14);box-shadow:0 16px 50px rgba(0,0,0,.36);overflow:hidden;transform:translateY(0);opacity:1;transition:transform .18s ease,opacity .18s ease}.soc-chat.closing{transform:translateY(calc(100% + 24px));opacity:0}.soc-chat[hidden]{display:none}.soc-chat>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border,#292938);background:var(--surface,#15151f)}.soc-chat>header .soc-avatar{width:32px;height:32px;flex-basis:32px;font-size:18px}.soc-messages{flex:1;display:flex;flex-direction:column;gap:6px;overflow:auto;padding:12px}.soc-message{display:flex;align-self:flex-start;flex-direction:column;max-width:82%;padding:8px 10px;border-radius:7px;background:var(--surface2,#20202d);font-size:13px;line-height:1.35}.soc-message.mine{align-self:flex-end;background:var(--accent,#7c5cfc);color:#fff}.soc-message small{align-self:flex-end;margin-top:3px;font-size:9px;opacity:.7}.soc-chat-expiry{padding:6px 10px;color:var(--muted,#9292aa);font-size:10px;text-align:center;border-top:1px solid var(--border,#292938)}.soc-chat-form{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:7px;padding:9px 10px calc(env(safe-area-inset-bottom) + 9px);border-top:1px solid var(--border,#292938)}.soc-chat-form button{min-width:40px;border-radius:50%}
.soc-chat-safety{display:block;margin-top:3px;font-size:9px;opacity:.82;overflow-wrap:anywhere}
.soc-toasts{position:fixed;right:16px;top:max(72px,calc(env(safe-area-inset-top) + 68px));z-index:9600;display:flex;flex-direction:column;gap:8px;width:min(330px,calc(100vw - 32px));pointer-events:none}.soc-toast{pointer-events:auto;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:start;gap:6px;padding:8px 8px 8px 11px;border:1px solid var(--border,#303043);border-left:3px solid var(--accent,#7c5cfc);border-radius:6px;background:var(--surface,#15151f);color:var(--ink,#f3f3ff);box-shadow:0 12px 34px rgba(0,0,0,.32)}.soc-toast-content{min-height:32px;padding:4px;border:0;background:none;color:inherit;font:inherit;font-size:12px;font-weight:700;text-align:left;cursor:pointer}.soc-toast.error{border-left-color:#ff4d6d}.soc-toast.success{border-left-color:#39d98a}.soc-toast.invite{border-left-color:#f5c84c}
.soc-invite-copy{display:flex;min-width:0;flex-direction:column;gap:3px;padding:3px 2px}.soc-invite-copy strong{font-size:13px}.soc-invite-copy>span{color:var(--muted,#9292aa);font-size:12px;line-height:1.35}.soc-invite-actions{display:flex;gap:6px;margin-top:7px}.soc-invite-actions button{min-height:30px;padding:5px 9px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.soc-popup{position:fixed;inset:0;z-index:9500;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.58);font-family:'DM Sans',system-ui,sans-serif}.soc-popup>div{position:relative;width:min(390px,100%);padding:22px;border:1px solid var(--border,#303043);border-radius:8px;background:var(--surface,#15151f);color:var(--ink,#f3f3ff);box-shadow:0 18px 60px rgba(0,0,0,.4)}.soc-popup strong{font-size:18px}.soc-popup p{margin:8px 0 18px;color:var(--muted,#9292aa);font-size:13px;line-height:1.5}.soc-popup-actions{display:flex;justify-content:flex-end;gap:8px}.soc-popup-actions button{min-height:36px;padding:7px 11px;border:1px solid var(--border,#303043);border-radius:6px;background:var(--surface2,#20202d);color:var(--ink,#f3f3ff);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.soc-popup-close{width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted,#9292aa);font:inherit;font-size:22px;line-height:1;cursor:pointer}.soc-popup>div>.soc-popup-close{position:absolute;top:10px;right:10px}

@media(max-width:760px){
  .soc-launch.soc-docked,.soc-launch.soc-hub-docked{width:44px;height:42px;min-width:44px;flex-basis:44px;padding:0;grid-template-columns:1fr}
  .soc-launch-copy{display:none}
  .soc-panel{top:auto;width:100%;height:min(84dvh,720px);border-left:0;border-top:1px solid var(--border,#2b2b3a);border-radius:8px 8px 0 0;transform:translateY(105%)}
  .soc-panel.open{transform:translateY(0)}
  .soc-chat{inset:0;width:100%;height:100dvh;max-height:none;border:0;border-radius:0}
  .soc-chat>header{padding-top:calc(env(safe-area-inset-top) + 10px)}
  .soc-actions button{min-height:36px}
}

@media(max-width:390px){
  .soc-person{grid-template-columns:1fr}.soc-actions{justify-content:flex-start;padding-left:48px}
  .soc-tabs button{font-size:11px;padding:0 3px}
}
