body.portal-page{min-height:100vh;background:linear-gradient(90deg,#092d3394,#082d3270),url('login-sanctuary.png') center/cover fixed;color:#e8efe0}body.portal-page header{background:#103b35ed;position:relative;z-index:4;gap:16px}body.portal-page [hidden]{display:none!important}.portal-layout{max-width:1220px;margin:0 auto;padding:24px clamp(16px,3vw,38px) 56px}.portal-page h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.35}.auth-card{width:min(100%,470px);margin:30px auto 60px;padding:32px clamp(22px,5vw,42px);border:1px solid #c2b578aa;border-radius:24px;background:linear-gradient(145deg,#1c4b43f0,#092f2eea);box-shadow:0 30px 90px #04181777;backdrop-filter:blur(16px)}.auth-heading{text-align:center}.auth-heading img{object-fit:contain;filter:drop-shadow(0 4px 12px #d3b86233)}.auth-heading h1{margin:4px 0}.auth-heading p{color:#b9cec1}.eyebrow{color:#dbc38b!important;letter-spacing:.15em;font-size:.8rem}.auth-tabs,.portal-nav{display:flex;gap:6px;flex-wrap:wrap;margin:24px 0}.auth-tabs{padding:5px;background:#062a2a77;border-radius:12px}.auth-tabs button{flex:1;background:none;border:0;padding:12px 4px;color:#b8d0c2;font:inherit;cursor:pointer}.auth-tabs button[aria-pressed=true]{background:#66887866;color:#ffe2a0;border-radius:8px}.auth-card input,.network-form input,.network-form select,.network-form textarea,.admin-page input,.admin-page select,.admin-page textarea{width:100%;box-sizing:border-box;border-radius:9px;padding:12px;color:#edf3df;background:#0a2d2ac9;border:1px solid #668a79;font:inherit}.auth-card form>button{width:100%;margin-top:8px}.auth-card label{gap:7px}.auth-divider{text-align:center;position:relative;margin:22px 0;color:#a7c0b2;font-size:.85rem}.provider-button{display:block;width:100%;padding:14px;background:#f5f4e9;color:#183d38;border:0;border-radius:9px;font:inherit;cursor:pointer;margin-top:10px}.provider-button span{display:inline-block;font:bold 20px Arial;margin-right:14px;color:#376aac}.guest-entry{display:block;text-align:center;margin:24px 0 0;color:#ead49f}.legacy-entry{margin-top:24px;border-top:1px solid #71948355;padding-top:16px;font-size:.88rem}.legacy-entry p{color:#bacbbc}.portal-nav{position:sticky;top:8px;z-index:3;padding:8px;background:#0c332fee;border:1px solid #a2a37777;border-radius:16px;backdrop-filter:blur(12px)}.portal-nav a,.portal-nav button{flex:1;min-width:max-content;text-align:center;padding:12px;color:#dae5d6;text-decoration:none;border-radius:10px}.portal-nav a[aria-current=page],.portal-nav button[aria-pressed=true]{color:#153e32;background:linear-gradient(120deg,#eddea5,#b39952)}.portal-top{display:flex;justify-content:space-between;gap:16px;color:#cddccb;margin:16px 4px}.lobby-intro,.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0}.lobby-intro h1{margin:8px 0}.lobby-intro p{color:#c4d4c9}.room-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}.room-picker>button,.room-picker>a{padding:0;position:relative;overflow:hidden;min-width:0;border:1px solid #a0a07199;border-radius:16px;background:#153e38;color:#fff2c3;cursor:pointer;text-decoration:none;box-shadow:0 6px 16px #031f2a44}.room-picker>:is(button,a) img{display:block;width:100%;height:145px;object-fit:cover;transition:transform .25s}.room-picker>:is(button,a) strong{display:block;position:absolute;bottom:0;left:0;right:0;padding:28px 16px 14px;background:linear-gradient(transparent,#082c2cf5);font-size:1.25rem;letter-spacing:.1em}.room-picker>[aria-pressed=true]{border:2px solid #f6db95;box-shadow:0 0 0 3px #c7a65544}.room-picker>button:hover img,.room-picker>a:hover img{transform:scale(1.04)}.portal-page .arena-panel{background:#143f37ee;margin:20px 0}.gender-choices{border:0;padding:0;display:flex;gap:20px}.gender-choices label{flex:1;text-align:center;border:1px solid #91a584;border-radius:14px;padding:14px}.gender-choices input{width:auto}.gender-choices .profile-avatar{display:block;margin:6px auto;width:76px;height:76px}.avatar-upload{display:block;margin:22px 0}.avatar-upload input{display:block;margin-top:8px}.uploaded-avatar{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:cover}.profile-avatar,.result-avatar,.seat-disc{position:relative}.profile-avatar:has(.uploaded-avatar),.result-avatar:has(.uploaded-avatar),.seat-disc:has(.uploaded-avatar){background-image:none!important}.avatar-badge{z-index:2}.announcement{border-left:3px solid #d7b962;background:#103c36d9;padding:16px 20px;margin:12px 0;border-radius:8px;white-space:pre-line}.announcement h3{margin:0 0 8px}.announcement p{margin:0}.admin-page .portal-layout{max-width:1360px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.admin-stat{padding:22px;background:#103d36e8;border:1px solid #769477;border-radius:12px}.admin-stat strong{display:block;font-size:2rem;color:#e5ce93;margin:8px 0}.admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-form label{display:flex;flex-direction:column;gap:8px}.admin-form .wide{grid-column:1/-1}.admin-form input[type=checkbox]{width:auto;align-self:flex-start}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:13px;border-bottom:1px solid #7e9a8055;vertical-align:top}.admin-table th{color:#e2cd98}.admin-table button{white-space:nowrap}.admin-page textarea{resize:vertical;min-height:100px}.admin-page code{overflow-wrap:anywhere}.admin-page details summary{cursor:pointer}.admin-warning{color:#f6d790}.admin-avatar{width:56px;height:56px;object-fit:cover;border-radius:50%}#admin-status,#net-notice,#auth-status{white-space:pre-line;overflow-wrap:anywhere}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #edce8d;outline-offset:3px}@media(max-width:650px){.portal-layout{padding:14px 14px 40px}.auth-card{margin:10px auto 30px;padding:24px}.portal-nav{gap:2px;top:0}.portal-nav a,.portal-nav button{padding:10px 7px;font-size:.85rem}.room-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-picker>:is(button,a) img{height:128px}.lobby-intro{align-items:flex-start}.lobby-intro>a{font-size:.85rem;white-space:nowrap}.portal-top{font-size:.85rem}.admin-form{grid-template-columns:1fr}.admin-form .wide{grid-column:auto}.brand{font-size:1.35rem!important}.portal-page header{padding:10px 14px}.portal-page header .brand-mark{width:40px;height:40px}.portal-page header .brand-mark img{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){.room-picker>:is(button,a) img{transition:none}}
/* Override the two-column match layout only on the portal pages. */
.portal-layout{display:block;box-sizing:border-box;width:100%}.portal-page:not(.signed-in) #cult-toolbar{display:none}.portal-page #beast-banner{margin:18px 0}.portal-page:not(.signed-in) .auth-card{margin-left:auto;margin-right:auto}

.entry-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.auth-card .provider-button{margin-top:14px}
.admin-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px;border:1px solid #78977b;border-radius:12px}.admin-permissions label{display:flex;flex-direction:row;align-items:center;gap:9px}.admin-permissions input{width:auto}.owner-summary{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:18px;margin:16px 0;background:#183e39;border:1px solid #c5ac65;border-radius:12px}.admin-state{display:inline-block;padding:5px 9px;border-radius:6px;background:#325650;white-space:nowrap}.admin-state.active{color:#d6f4dc;background:#2b6247}.admin-state.pending{color:#f8e0a4}.admin-state.expired,.admin-state.disabled{color:#f4c5b0;background:#67413b}.admin-row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:200px}.permission-summary{max-width:320px;font-size:.85rem}.auth-admin-note{line-height:1.8;font-size:.9rem;color:#c5d6c9}@media(max-width:650px){.admin-permissions{grid-template-columns:1fr}.owner-summary strong{overflow-wrap:anywhere}.admin-row-actions{min-width:160px}}

.admin-confirm{max-width:min(90vw,520px);padding:28px;border:1px solid #b6a772;border-radius:18px;background:#173e37;color:#e9eee2;box-shadow:0 16px 70px #001b;} .admin-confirm::backdrop{background:#001b18b8;} .admin-confirm p{overflow-wrap:anywhere;line-height:1.8;} .admin-confirm .game-actions{justify-content:flex-end;}

.announcement-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0 10px}.support-body{white-space:pre-wrap;overflow-wrap:anywhere}.support-summary{max-width:420px;overflow-wrap:anywhere}.settings-account{margin:20px 0;padding:16px 0;border-top:1px solid #668e77;}

#support-editor{scroll-margin-top:110px}

.unread-label{color:#f2d38b;font-weight:700}.privacy-copy{max-width:900px;margin:auto;line-height:1.9}.privacy-copy h2{margin-top:2rem}#gift-editor fieldset label{display:inline-flex;gap:.5rem;margin:.4rem}.support-reply{border-left:2px solid #bca25d;padding-left:1rem;margin:1rem 0}

/* Four balances remain visible across signed-in portal sections. */
.portal-page:has(#header-wallet)>header{flex-wrap:wrap}
#header-wallet{order:10;flex:0 0 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:820px;margin:0 auto;box-sizing:border-box}
#header-wallet .header-resource{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;margin:0;padding:10px 14px;background:#082d2d88;border:1px solid #b4a36b66;border-radius:12px;min-width:0}
#header-wallet dt{display:contents}
#header-wallet .art-icon{grid-column:1;grid-row:1/3;width:34px;height:34px;object-fit:contain}
#header-wallet .resource-label{grid-column:2;grid-row:1;color:#cddccb;font-size:12px;line-height:1.4;white-space:nowrap}
#header-wallet dd{grid-column:2;grid-row:2;margin:0;color:#f3d793;font-size:20px;line-height:1.3;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#header-wallet dd small{font-size:11px;font-weight:400;color:#b7cbbb}
@media(max-width:650px){#header-wallet{gap:6px}#header-wallet .header-resource{display:flex;flex-direction:column;gap:3px;padding:8px 3px;text-align:center}#header-wallet dt{display:flex;flex-direction:column;align-items:center;gap:2px}#header-wallet .art-icon{width:26px;height:26px}#header-wallet .resource-label{font-size:11px}#header-wallet dd{font-size:16px}#header-wallet dd small{font-size:10px}.portal-page:has(#header-wallet)>header .entry-links{gap:6px}.portal-page:has(#header-wallet)>header .entry-links a{font-size:12px;padding:7px 9px}}

/* Social entry lives with friends; keep its unread indicator visible in navigation. */
.portal-nav [data-page="friends"]{position:relative}
.portal-nav [data-page="friends"]>.notification-dot{right:6px;top:3px}
.friends-companion-entry{position:relative;display:flex;align-items:center;gap:18px;width:100%;margin:8px 0 28px;padding:19px 22px;text-align:left;border:1px solid #c5ad71a6;border-radius:14px;background:radial-gradient(ellipse at 10% 30%,#71a98a24,transparent 60%),linear-gradient(120deg,#28564b,#103a33);color:#f6e2ac;cursor:pointer;box-shadow:inset 0 1px #eedab035,0 4px 12px #05281f44;transition:border-color .15s,background .15s}
.friends-companion-entry:hover{border-color:#f3d797;background:linear-gradient(120deg,#326455,#16473c)}
.friends-companion-entry>.art-icon{width:56px;height:56px}
.friends-companion-copy{display:grid;gap:7px;min-width:0;flex:1}
.friends-companion-copy strong{font:700 21px/1.5 var(--display);letter-spacing:.05em}
.friends-companion-copy small{font:13px/1.6 system-ui;color:#c2d4c4}
.friends-companion-arrow{font:32px/1 Georgia,serif;color:#e3cc8d}
.friends-companion-entry>.notification-dot{position:static;flex:none;min-width:20px;height:20px;line-height:19px}
@media(max-width:600px){.friends-companion-entry{gap:10px;padding:15px 12px;margin-bottom:24px}.friends-companion-entry>.art-icon{width:42px;height:42px}.friends-companion-copy strong{font-size:18px;letter-spacing:0}.friends-companion-copy small{font-size:11px}.friends-companion-arrow{font-size:26px}}
@media(prefers-reduced-motion:reduce){.friends-companion-entry{transition:none}}

/* One shared match form expands immediately after the selected card's row. */
.room-picker>.room-match-panel{grid-column:1/-1;position:relative;min-width:0;margin:0 0 8px;padding:24px;border:1px solid #d5bf7d99;border-radius:16px;background:linear-gradient(125deg,#254f43f5,#113a33fa);box-shadow:0 10px 24px #05251e40}
.room-match-panel::before{content:"";position:absolute;top:-7px;left:var(--match-pointer,25%);width:12px;height:12px;background:#254f43;border-left:1px solid #d5bf7d99;border-top:1px solid #d5bf7d99;transform:translateX(-50%) rotate(45deg);pointer-events:none}
.room-match-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.room-match-heading h2{margin:0;color:#f0d99d;font-size:1.25rem}.room-match-heading button{flex:none;padding:8px 12px;font-size:.85rem;min-height:40px}
.room-picker>button[aria-expanded=true]{border-color:#ffe6a0;box-shadow:0 0 0 2px #d6b65a80,0 5px 18px #031f2a44}
.room-match-panel .match-options{margin:0 0 18px}.room-match-panel .match-options label{display:grid;gap:8px}.room-match-panel .game-actions{margin-bottom:12px}
@media(max-width:650px){.room-picker>.room-match-panel{padding:20px 14px;margin-bottom:4px;border-radius:14px}.room-match-heading{align-items:flex-start;gap:8px}.room-match-heading h2{font-size:1.15rem;line-height:1.55}.room-match-heading button{padding:7px 10px;font-size:.8rem}.room-match-panel #queue{flex:1;min-width:130px}.room-match-panel .loadout-account{overflow-wrap:anywhere}}

/* Mobile lobby keeps the practice entry beside the game selection. */
@media(max-width:650px){.portal-page .entry-links .header-practice{display:none}}

.recent-games-heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.recent-games-heading small{font:400 12px/1.5 system-ui;color:#c0cfbf;letter-spacing:0}

/* Lobby energy spacing */
#online-energy .energy-panel{box-sizing:border-box;min-width:0;padding:24px}
#online-energy .energy-top>div,#online-energy .energy-bottom>p{min-width:0}
#online-energy .energy-panel h2,#online-energy .hub-note{overflow-wrap:anywhere}
@media(max-width:650px){
 #online-energy .energy-panel{padding:20px 16px}
 #online-energy .energy-top{flex-wrap:wrap;align-items:flex-start;gap:10px 16px;margin-bottom:14px}
 #online-energy .energy-top h2{margin:8px 0 0}
 #online-energy .energy-pill-count{display:inline-flex;align-items:center;gap:4px;padding:8px 10px;font-size:13px}
 #online-energy .energy-pill-count .art-icon{width:28px;height:28px}
 #online-energy .energy-bottom{align-items:stretch;flex-direction:column;gap:12px;margin-top:12px}
 #online-energy .energy-bottom p{margin:0;line-height:1.8}
 #online-energy .energy-bottom button{width:100%;min-width:0;box-sizing:border-box}
 #online-energy .hub-note{margin:16px 0 0;padding:12px;line-height:1.7;font-size:13px}
 #online-energy .energy-milestones{gap:8px;margin-top:16px}
 #online-energy .energy-milestones>strong{flex-basis:100%;line-height:1.6}
 #online-energy .energy-milestones>span{font-size:12px}
}

/* Match actions share the same centered hit area on phones and desktops. */
#match-panel .game-actions{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}#match-panel .game-actions>button,#match-panel .game-actions>a{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:48px;line-height:1.3;box-sizing:border-box}#match-panel .game-actions>[hidden]{display:none!important}#match-panel .game-actions>a{flex:1;white-space:nowrap}
