/* Main tools fill the portal workspace; short edit and confirmation dialogs stay modal. */
body.portal-active{display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;min-height:100vh}
body.portal-active>header{grid-column:1/-1;grid-row:1;position:relative;z-index:3;padding:15px 24px;background:var(--portal-header-bg,var(--panel));box-shadow:0 1px 5px #0000000a}
body.portal-active>main{grid-column:2;grid-row:2;width:100%;max-width:none;min-width:0;margin:0;padding:30px clamp(20px,3vw,44px) 64px}
body.portal-active>footer{grid-column:1/-1;grid-row:3}
body.portal-active .brand{font-size:19px;letter-spacing:-.6px}
body.portal-active .brand span{margin-left:0;color:var(--accent);font-size:19px;letter-spacing:-.6px}
body.portal-active .header-right{gap:10px;margin-left:auto;flex-wrap:nowrap}
body.portal-active .header-right #eventsButton,
body.portal-active .header-right #socialButton,
body.portal-active .header-right #myProfileButton,
body.portal-active .header-right #playersButton,
body.portal-active .header-right #leaderboardsButton{display:none}
body.portal-active .header-right #emailButton{background:var(--secondary);border-color:var(--line);color:var(--ink)}
body.portal-active .header-right #supportButton,body.portal-landing .header-right #supportButton{background:var(--secondary);border-color:var(--line);color:var(--ink)}
body.portal-active #connection{background:var(--portal-status-bg,var(--notice));border-color:var(--line);color:var(--accent)}
body.portal-active #connection::before{content:'';display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--accent)}
#portalMenuToggle{display:none}
body.portal-active #portalMenuToggle{display:none;background:var(--secondary);color:var(--ink);border-color:var(--line);padding:7px 11px}
#portalSidebar[hidden],#worldBoard[hidden],#portalLeaderboard[hidden],#portalYourPosition[hidden],#portalPlayerDetail[hidden]{display:none}
#portalSidebar{grid-column:1;grid-row:2;min-width:0;padding:24px 12px 28px;background:var(--portal-sidebar-bg,var(--panel));border-right:1px solid var(--line)}
.portal-side-section{margin:18px 9px 8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:1.5px}
.portal-side-section:first-child{margin-top:0}
.portal-side-section[hidden]{display:none}
#portalSidebar button[data-portal]{display:block;width:100%;margin:2px 0;padding:11px 13px;background:transparent;color:var(--ink);border:0;border-radius:8px;text-align:left;font-size:14px;font-weight:650}
#portalSidebar button[data-portal]:hover{background:var(--raised);filter:none}
#portalSidebar button[data-portal].active{background:var(--notice);color:var(--accent)}
#portalSidebar button[data-portal][hidden]{display:none}
.portal-side-bottom{padding-top:13px;margin-top:14px;border-top:1px solid var(--line)}
.portal-account{margin:24px 9px 0;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.portal-account strong{display:block;color:var(--ink);font-size:15px}
body.portal-active #home>.heading,body.portal-active #detail>.heading{margin-bottom:20px}
body.portal-active #home h1,body.portal-active #detail h1,.portal-section h1{font-size:clamp(30px,3.3vw,42px);letter-spacing:-1.3px;margin:5px 0 8px}
body.portal-active #home .home-quick-actions{gap:15px;margin-top:22px;margin-bottom:25px}
body.portal-active #home .leaderboard-home{min-height:124px;padding:20px 22px;border-color:var(--line)}
body.portal-active #home .live-games-home{background:var(--portal-hero-bg,var(--panel));color:var(--portal-hero-ink,var(--ink));border-color:var(--line)}
body.portal-active #home .live-games-home small,body.portal-active #home .live-games-home>span:last-child{color:var(--portal-hero-muted,var(--muted))}
body.portal-active #home .live-games-home>span:last-child{color:var(--portal-hero-side,var(--muted))}
body.portal-active #home .leaderboard-home strong{font-size:21px}
body.portal-active #home .leaderboard-home small{font-size:13px}
body.portal-active #home .leaderboard-home>span:last-child{font-size:13px}
body.portal-active #eventCards.cards{gap:14px}
body.portal-active #eventCards .event-card{min-height:175px;padding:21px}
body.portal-active .hub-navigation{gap:8px;margin:0 0 20px;flex-wrap:wrap}
body.portal-active .hub-navigation button{background:var(--secondary);color:var(--ink);border-color:var(--line);padding:8px 12px;font-size:13px}
.portal-section{max-width:1400px}
.portal-workspace{width:100%}
#portalWorkspaceBack{margin-bottom:18px;padding:8px 12px}
body.portal-active .portal-inline-dialog[open]{display:block;position:static;inset:auto;width:100%;max-width:none;max-height:none;margin:0;padding:clamp(20px,2.5vw,34px);overflow:visible;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:none}
body.portal-active .portal-inline-dialog>.heading,body.portal-active .portal-inline-dialog>form>.heading{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
body.portal-active .portal-inline-dialog>.heading>button[aria-label^="Close"],body.portal-active .portal-inline-dialog>form>.heading>button[aria-label^="Close"]{display:none}
body.portal-active .portal-inline-dialog.live-games-dialog>.heading{position:static;top:auto;z-index:auto;margin:0 0 18px;padding:0 0 18px}
body.portal-active .portal-inline-dialog h2{font-size:clamp(25px,2.5vw,36px);letter-spacing:-.5px}
body.portal-active #supportDialog.portal-inline-dialog>form{max-width:760px}
.portal-kicker{color:var(--accent);font-size:11px;font-weight:850;letter-spacing:1.6px}
.portal-intro{color:var(--muted);margin:0 0 24px}
.portal-world-hero{position:relative;overflow:hidden;padding:28px 30px;margin:20px 0;background:var(--portal-hero-bg,var(--notice));color:var(--portal-hero-ink,var(--ink));border:1px solid var(--line);border-radius:14px}
.portal-world-hero::after{content:'';position:absolute;right:-55px;top:-65px;width:290px;height:290px;border:52px solid #ffffff24;border-radius:50%;pointer-events:none}
.portal-world-hero>*{position:relative;z-index:1}
.portal-world-hero h2{font-size:clamp(22px,2.7vw,31px);margin:8px 0 9px}
.portal-world-hero p{margin:0;max-width:680px;color:var(--portal-hero-muted,var(--muted))}
.portal-world-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.portal-world-card{display:flex;flex-direction:column;gap:9px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.portal-world-card h3{margin:0;font-size:22px}.portal-world-card p{margin:0 0 12px;color:var(--muted)}
.portal-world-card button{align-self:flex-start;margin-top:auto}
.world-tv-card{grid-column:1/-1}
.world-tv-card form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.world-tv-card form label{flex:1 1 340px;display:grid;gap:7px;font-size:13px;font-weight:700}
.world-tv-card form input{width:100%;min-width:0}
.world-tv-card form button{margin:0}
.world-tv-card #worldTVStatus{min-height:1.2em;margin:0}
#worldTVViews{display:grid;gap:8px}
.world-tv-view{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px;border:1px solid var(--line);border-radius:9px}
.world-tv-view>div{display:grid;gap:4px;min-width:0}
.world-tv-view a{overflow-wrap:anywhere}
.world-tv-view button{margin:0;white-space:nowrap}
.portal-leader-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.portal-leader-head button{background:var(--secondary);color:var(--ink);border-color:var(--line)}
.portal-own-position{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0;padding:20px 24px;background:var(--portal-own-bg,var(--notice));color:var(--portal-own-ink,var(--ink));border-radius:12px}
.portal-own-position strong{display:block;font-size:21px}.portal-own-position p{margin:3px 0 0;color:var(--portal-own-muted,var(--muted))}
.portal-own-rank{font-size:38px;font-weight:850;color:var(--portal-own-rank,var(--accent))}
.portal-leader-controls{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0 15px}
.portal-filter-tags{display:flex;flex-wrap:wrap;gap:7px}
.portal-filter-tags span{padding:7px 12px;border:1px solid var(--line);border-radius:99px;background:var(--panel);color:var(--accent);font-size:12px;font-weight:750}
.portal-leader-controls label{margin:0;min-width:220px}
.portal-leader-controls select{margin-top:4px;padding:8px 11px}
.portal-leader-panel,.portal-player-detail{background:var(--panel);border:1px solid var(--line);border-radius:13px}
.portal-leader-panel{overflow:hidden}.portal-leader-panel>div:first-child{padding:18px 20px 9px}
.portal-leader-panel h2{margin:0 0 2px;font-size:22px}.portal-leader-panel p{margin:0;color:var(--muted);font-size:13px}
.portal-category-strip{display:flex;gap:25px;padding:0 20px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}
.portal-category-strip span{padding:11px 0}.portal-category-strip .selected{color:var(--accent);border-bottom:3px solid var(--accent);font-weight:750}
.portal-category-strip button{padding:11px 0;background:transparent;border:0;border-radius:0;color:var(--muted);font-size:13px;font-weight:650}
.portal-category-strip button:hover{color:var(--accent);filter:none}
.portal-table-wrap{overflow-x:auto}
.portal-leader-table{min-width:740px;margin:0;font-size:13px}
.portal-leader-table th{white-space:nowrap;text-align:right}.portal-leader-table td{text-align:right;font-variant-numeric:tabular-nums}
.portal-leader-table th:nth-child(2),.portal-leader-table td:nth-child(2){text-align:left}
.portal-leader-table tr.selected{background:var(--notice)}
.portal-player-link{background:transparent;border:0;color:var(--ink);padding:5px 2px;text-align:left}
.portal-player-link:hover{color:var(--accent)}
.portal-player-detail{margin-top:15px;padding:20px 22px}
.portal-detail-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.portal-detail-head h3{margin:4px 0;font-size:21px}.portal-detail-head p{margin:0;color:var(--muted)}
.portal-detail-head>span{color:var(--accent);font-weight:750}
.portal-detail-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.portal-detail-grid div{border-top:1px solid var(--line);padding-top:10px}.portal-detail-grid span{display:block;color:var(--muted);font-size:12px}.portal-detail-grid strong{font-size:18px}
.portal-player-detail>button{margin-top:18px}
.portal-formula{max-width:900px;color:var(--muted);font-size:13px}
@media(max-width:800px){body.portal-active #home .live-games-home>span:last-child{color:var(--portal-hero-muted,var(--muted))}}
@media(max-width:900px){body.portal-active{grid-template-columns:1fr}body.portal-active>main{grid-column:1}#portalSidebar{display:none;position:absolute;top:71px;left:0;z-index:5;width:min(280px,88vw);box-shadow:8px 15px 30px #0002}#portalSidebar.open{display:block}body.portal-active #portalMenuToggle{display:block}.portal-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){body.portal-active>header{padding:12px 15px;gap:9px}body.portal-active>main{padding:22px 16px 48px}body.portal-active .brand,body.portal-active .brand span{font-size:16px}body.portal-active .brand-status{width:auto}body.portal-active #connection{display:none}body.portal-active .header-link{display:none}body.portal-active .header-right #emailButton{padding:8px;font-size:12px}body.portal-active .header-right #account{display:none}.portal-world-grid{grid-template-columns:1fr}.portal-world-hero{padding:22px}.portal-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-leader-head button{width:100%}.portal-leader-controls label{width:100%}}

/* Signed-out welcome message and donation link. */
#auth .welcome-copy{transform:translateY(-12px)}
#auth .welcome-copy .intro{margin-bottom:22px}
#auth .welcome-community{display:grid;gap:3px;max-width:520px;padding:11px 0 11px 16px;border-left:3px solid var(--accent);color:var(--ink);line-height:1.4}
#auth .welcome-community strong{font-size:15px}
#auth .welcome-community a{width:max-content;font-size:14px;font-weight:750;text-decoration:none}
#auth .welcome-community a:hover,#auth .welcome-community a:focus-visible{text-decoration:underline}
#auth .welcome-copy .tags{margin-top:26px}
@media(max-width:750px){#auth .welcome-copy{transform:none}}
/* App-choice landing page from the Arena preview, adapted to each account theme. */
body.portal-landing>header{min-height:66px;padding:12px clamp(20px,3vw,38px);background:var(--portal-header-bg,var(--panel))}
body.portal-landing>main{width:100%;max-width:1280px;padding:46px clamp(20px,3vw,38px) 54px}
body.portal-landing .brand{font-size:19px;letter-spacing:-.6px}
body.portal-landing .brand span{margin-left:0;font-size:19px;letter-spacing:-.6px}
body.portal-landing .brand-status #connection{display:none}
body.portal-landing .header-right{margin-left:auto;gap:12px;flex-wrap:nowrap}
body.portal-landing .header-right .header-link,body.portal-landing .header-right #myProfileButton,body.portal-landing .header-right #playersButton,body.portal-landing .header-right #socialButton{display:none}
body.portal-landing .header-right #emailButton{background:var(--secondary);color:var(--ink);border-color:var(--line)}
body.portal-landing .app-landing{padding:0}
.app-landing .landing-intro>.eyebrow{margin:0;color:var(--accent)}
.app-landing .landing-intro h1{max-width:850px;margin:15px 0 13px;font-size:clamp(42px,5.2vw,64px);line-height:1.02;letter-spacing:-2.8px}
.app-landing .landing-intro>p:not(.eyebrow){max-width:620px;margin:0;color:var(--muted);font-size:16px;line-height:1.5}
.landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 35px}
.landing-actions button{min-width:175px;padding:12px 19px}
.landing-actions .landing-cape-button{display:inline-flex;align-items:center;justify-content:center;min-width:175px;padding:12px 19px;border:1px solid var(--line-strong);border-radius:9px;background:var(--panel);color:var(--ink);font-weight:700;text-decoration:none;text-align:center}
.landing-actions .landing-cape-button:hover,.landing-actions .landing-cape-button:focus-visible{border-color:var(--accent);color:var(--accent)}
.landing-feature{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:2px;overflow:hidden;background:var(--line);border:1px solid var(--line);border-radius:15px}
.landing-feature>div{min-width:0;padding:28px}
.landing-feature-copy{background:var(--panel)}
.landing-feature-copy h2{margin:9px 0 8px;font-size:clamp(22px,2vw,30px);letter-spacing:-.5px}
.landing-feature-copy>p:not(.eyebrow){max-width:450px;margin:0 0 21px;color:var(--muted);font-size:14px}
.landing-feature-copy button{padding:8px 13px;color:var(--accent)}
.landing-feature-score{background:var(--portal-hero-bg,linear-gradient(130deg,var(--raised),var(--accent)));color:var(--portal-hero-side,var(--ink))}
.landing-feature-score .eyebrow{margin:0 0 12px;color:inherit;font-size:11px}
.landing-feature-score>strong{display:block;min-height:28px;font-size:15px;overflow-wrap:anywhere}
.landing-score{margin:6px 0 10px;padding:5px 0 11px;border-bottom:1px solid currentColor;font-size:clamp(31px,4vw,50px);font-weight:850;line-height:1.1;font-variant-numeric:tabular-nums}
.landing-feature-score>p:last-child{margin:0;font-size:13px;color:inherit}
.landing-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.landing-tiles button{min-height:110px;padding:18px;text-align:left;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:11px}
.landing-tiles button:hover,.landing-tiles button:focus-visible{border-color:var(--accent)}
.landing-tiles strong{display:block;margin-bottom:7px;font-size:14px}
.landing-tiles small{display:block;color:var(--muted);font-size:12px;font-weight:400;line-height:1.45}
.landing-footnote{margin:19px 0 0;color:var(--muted);font-size:12px;text-align:right}
:root[data-theme=spud-dark] .landing-actions #openScore{background:#f8f9ed;color:#131914}
:root[data-theme=spud-dark] .landing-actions #openPoker{background:transparent;color:#f8f9ed;border-color:#91a79a}
:root[data-theme=spud-dark] .landing-feature-score{background:linear-gradient(130deg,#1d644d,#2ca886 65%,#bced9e);color:#082a1e}
@media(max-width:900px){.landing-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){body.portal-landing>main{padding:30px 17px 46px}.app-landing .landing-intro h1{font-size:clamp(40px,10vw,56px)}.landing-feature{grid-template-columns:1fr}.landing-feature>div{padding:22px}.landing-actions{margin-bottom:25px}.landing-actions button,.landing-actions .landing-cape-button{flex:1 1 180px}}
@media(max-width:600px){body.portal-landing .brand-status{width:auto}}
@media(max-width:460px){.landing-tiles{grid-template-columns:1fr}.landing-tiles button{min-height:82px}.landing-footnote{text-align:left}}
