:root{
 --session-gold:var(--gta-accent,#ffb000);
 --session-text:var(--gta-text,#f5f5f5);
 --session-muted:var(--gta-muted,#96969d);
 --session-line:var(--gta-line,rgba(255,255,255,.10));
}

.session-create,.session-voice-widget,.session-address{display:none!important}
.session-open,.session-sheet-dialog button{font:inherit;cursor:pointer}

/* Public rows keep the existing GTA Online list layout, with one compact Join action. */
.online-session:has(.session-open){grid-template-columns:minmax(0,1fr) auto;align-items:center}
.online-session:has(.session-open) .online-session-host{grid-column:1;min-width:0}
.online-session:has(.session-open) .online-session-players{grid-column:2;white-space:nowrap}
.session-open{grid-column:2;justify-self:end;min-width:82px;padding:9px 14px;border:1px solid color-mix(in srgb,var(--session-gold) 34%,transparent);border-radius:8px;background:color-mix(in srgb,var(--session-gold) 5%,transparent);color:color-mix(in srgb,var(--session-gold) 88%,#fff);font-size:12px;font-weight:720;transition:background .18s,border-color .18s,transform .18s}
.session-open:hover{background:color-mix(in srgb,var(--session-gold) 9%,transparent);border-color:color-mix(in srgb,var(--session-gold) 52%,transparent)}
.session-open:active{transform:scale(.98)}

/* The dialog is only the top layer/backdrop. */
dialog.session-sheet-dialog{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;overflow:visible!important;color:inherit}
dialog.session-sheet-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* Session detail uses a neutral glass surface. No yellow/conic edge renderer. */
.session-sheet-card.gta-online-menu-promo{
 height:auto!important;
 min-height:0!important;
 max-height:min(620px,calc(100dvh - 100px))!important;
 border:1px solid var(--gta-line)!important;
 border-top:0!important;
 background:color-mix(in srgb,var(--gta-surface) 98%,transparent)!important;
 background-image:none!important;
 background-origin:initial!important;
 background-clip:border-box!important;
 box-shadow:0 28px 90px rgba(0,0,0,.48),inset 0 1px 0 color-mix(in srgb,var(--gta-text) 5%,transparent)!important;
 backdrop-filter:blur(30px) saturate(1.08)!important;
 -webkit-backdrop-filter:blur(30px) saturate(1.08)!important;
 animation:none!important;
 isolation:isolate;
}
.session-sheet-card.gta-online-menu-promo::before,
.session-sheet-card.gta-online-menu-promo::after{
 content:none!important;
 display:none!important;
 visibility:hidden!important;
 opacity:0!important;
 background:none!important;
 background-image:none!important;
 animation:none!important;
 filter:none!important;
 box-shadow:none!important;
 -webkit-mask:none!important;
 mask:none!important;
}
.session-sheet-card.gta-online-menu-promo.is-expanded{height:min(78dvh,680px)!important;max-height:min(78dvh,680px)!important}
.session-sheet-card.is-dragging{transition:none!important}
.session-sheet-grip{touch-action:none;cursor:grab}

.session-sheet-top{flex:0 0 auto}
.session-sheet-heading{min-width:0;width:100%}
.session-sheet-heading>small{color:var(--session-gold)!important}
.session-sheet-title-row{align-items:center;gap:14px}
.session-sheet-title-row h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'DM Sans',Arial,sans-serif!important;font-size:28px!important;font-weight:780!important;line-height:1.04!important;letter-spacing:-.035em!important;text-transform:none!important}
.session-player-count{flex:0 0 auto;display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border:1px solid color-mix(in srgb,var(--gta-text) 10%,transparent);border-radius:999px;background:color-mix(in srgb,var(--gta-text) 4%,transparent);color:color-mix(in srgb,var(--gta-text) 76%,transparent);font-size:10px;font-weight:760;letter-spacing:.04em;white-space:nowrap}
.session-sheet-heading>p{margin-top:7px!important;color:color-mix(in srgb,var(--gta-text) 58%,transparent)!important;font-size:12px!important}

.session-sheet-body{display:block!important;flex:0 1 auto!important;padding:0!important;overflow:auto!important;overscroll-behavior:contain}
.session-sheet-copy{min-width:0!important;padding:20px 22px max(24px,env(safe-area-inset-bottom))!important}
.session-sheet-status{margin:0;color:color-mix(in srgb,var(--gta-text) 62%,transparent);font-size:12px;line-height:1.5}
.session-sheet-status:empty{display:none}
.session-sheet-details[hidden]{display:none!important}

.session-label{display:block;color:color-mix(in srgb,var(--gta-text) 48%,transparent);font-size:9px;font-weight:800;line-height:1;letter-spacing:.18em;text-transform:uppercase}

.session-code-block{padding:0 0 19px;border-bottom:1px solid var(--session-line)}
.session-code-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:14px;margin-top:10px}
.session-code-row code{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--gta-text);font:760 clamp(20px,4.8vw,25px)/1.08 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.035em;white-space:nowrap}
.session-code-row button{position:relative;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid color-mix(in srgb,var(--gta-text) 10%,transparent);border-radius:12px;background:color-mix(in srgb,var(--gta-text) 3%,transparent);color:var(--session-gold);transition:background .16s,border-color .16s,transform .16s,color .16s}
.session-code-row button:hover{background:color-mix(in srgb,var(--gta-text) 6%,transparent);border-color:color-mix(in srgb,var(--gta-text) 15%,transparent)}
.session-code-row button:active{transform:scale(.96)}
.session-code-row button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;transition:opacity .14s,transform .14s}
.session-code-row button[data-copied="true"]{color:color-mix(in srgb,var(--session-gold) 65%,#fff);background:color-mix(in srgb,var(--session-gold) 6%,transparent)}
.session-code-row button[data-copied="true"] svg{opacity:0;transform:scale(.72)}
.session-code-row button[data-copied="true"]::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;font-size:16px;font-weight:800}

.session-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:18px 0;border-bottom:1px solid var(--session-line)}
.session-meta-item{min-width:0;padding:0 14px;border-right:1px solid var(--session-line)}
.session-meta-item:first-child{padding-left:0}
.session-meta-item:last-child{padding-right:0;border-right:0}
.session-meta-item strong{display:block;margin-top:7px;overflow:hidden;text-overflow:ellipsis;color:var(--gta-text);font-size:13px;font-weight:720;line-height:1.25;white-space:nowrap}

.session-players-block{padding-top:18px}
.session-players-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}
.session-players-heading>[data-player-summary]{color:color-mix(in srgb,var(--gta-text) 45%,transparent);font-size:10px;font-weight:650;white-space:nowrap}
.session-player-list{list-style:none;margin:0;padding:0}
.session-player-item{display:flex;align-items:center;gap:11px;min-height:51px;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--gta-text) 7%,transparent)}
.session-player-item:first-child{border-top:0}
.session-player-avatar{flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--gta-text) 10%,transparent);border-radius:50%;background:color-mix(in srgb,var(--gta-text) 4%,transparent);color:color-mix(in srgb,var(--gta-text) 82%,transparent);font-size:11px;font-weight:800}
.session-player-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}
.session-player-copy strong{overflow:hidden;text-overflow:ellipsis;color:var(--gta-text);font-size:13px;font-weight:700;white-space:nowrap}
.session-player-copy small{overflow:hidden;text-overflow:ellipsis;color:color-mix(in srgb,var(--gta-text) 43%,transparent);font-size:9.5px;font-weight:540;white-space:nowrap}
.session-player-item.is-muted .session-player-avatar{color:var(--session-gold);border-color:color-mix(in srgb,var(--session-gold) 18%,transparent);background:color-mix(in srgb,var(--session-gold) 4%,transparent)}
.session-player-item.is-muted .session-player-copy strong{color:color-mix(in srgb,var(--gta-text) 70%,transparent);font-weight:650}

.session-sheet-dialog :focus-visible{outline:2px solid var(--session-gold);outline-offset:3px}

@media(max-width:760px){
 .online-session:has(.session-open){grid-template-columns:minmax(0,1fr) auto}
 .online-session:has(.session-open) .session-open{min-width:78px;padding:8px 12px}
 .session-sheet-card.gta-online-menu-promo{
  height:auto!important;
  max-height:min(72dvh,620px)!important;
  border:1px solid var(--gta-line)!important;
  border-top:0!important;
  border-left:0!important;
  border-right:0!important;
  border-bottom:0!important;
  background:color-mix(in srgb,var(--gta-surface) 98%,transparent)!important;
  background-image:none!important;
  box-shadow:0 28px 90px rgba(0,0,0,.48),inset 0 1px 0 color-mix(in srgb,var(--gta-text) 5%,transparent)!important;
  backdrop-filter:blur(30px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(30px) saturate(1.08)!important;
 }
 .session-sheet-card.gta-online-menu-promo.is-expanded{height:min(78dvh,680px)!important;max-height:min(78dvh,680px)!important}
 .session-sheet-title-row h3{font-size:25px!important}
 .session-sheet-copy{padding:18px 18px max(20px,calc(env(safe-area-inset-bottom) + 8px))!important}
 .session-code-row{grid-template-columns:minmax(0,1fr) 40px;gap:12px}
 .session-code-row code{font-size:clamp(18px,5.5vw,23px)}
 .session-code-row button{width:40px;height:40px;border-radius:11px}
 .session-meta-item{padding-inline:10px}
 .session-meta-item:first-child{padding-left:0}
 .session-meta-item:last-child{padding-right:0}
 .session-meta-item strong{font-size:12px}
}

@media(max-width:390px){
 .session-sheet-title-row h3{font-size:23px!important}
 .session-player-count{padding-inline:8px}
 .session-code-row code{font-size:18px}
 .session-meta-grid{grid-template-columns:1fr 1fr}
 .session-meta-created{grid-column:1/-1;margin-top:14px;padding:14px 0 0!important;border-top:1px solid var(--session-line);border-right:0}
}

@media(prefers-reduced-motion:reduce){
 .session-sheet-card,.session-open{transition:none!important}
}
