/* Siljo Planet unified public/user page design. Admin pages intentionally do not load this file. */
:root{
  --sp-radius-xl:24px;
  --sp-radius-lg:18px;
  --sp-radius-md:13px;
  --sp-shadow:0 18px 46px rgba(0,0,0,.16);
  --sp-shadow-soft:0 10px 28px rgba(0,0,0,.10);
}

.sp-site-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 0%,rgba(43,108,176,.08),transparent 30rem),
    radial-gradient(circle at 94% 18%,rgba(21,115,71,.07),transparent 27rem),
    var(--bg);
}

.sp-site-page .navbar{
  position:sticky;
  top:0;
  z-index:1000;
  gap:8px;
  padding:10px max(14px,calc((100vw - 1380px)/2));
  background:color-mix(in srgb,var(--surface-2) 90%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--border) 88%,transparent);
  box-shadow:0 8px 30px rgba(0,0,0,.08);
  backdrop-filter:blur(16px);
}

.sp-site-page .navbar .nav-link,
.sp-site-page .navbar>a{
  min-height:38px;
  padding:6px 10px;
  border:1px solid transparent;
  border-radius:10px;
  font-size:.9rem;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}

.sp-site-page .navbar .nav-link:hover,
.sp-site-page .navbar>a:hover{
  transform:translateY(-1px);
  border-color:var(--border);
}

.sp-site-page .brand{
  padding:20px 16px 8px;
}

.sp-modern-hero{
  width:min(1180px,calc(100% - 28px));
  margin:24px auto 22px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:30px;
  border:1px solid color-mix(in srgb,var(--border) 82%,transparent);
  border-radius:var(--sp-radius-xl);
  background:
    radial-gradient(circle at 88% 14%,rgba(37,211,102,.17),transparent 34%),
    linear-gradient(135deg,rgba(43,108,176,.13),transparent 56%),
    var(--surface);
  box-shadow:var(--sp-shadow);
}

.sp-modern-hero::after{
  content:"";
  position:absolute;
  right:-54px;
  bottom:-80px;
  width:245px;
  height:245px;
  border-radius:50%;
  background:repeating-linear-gradient(45deg,rgba(127,255,127,.08) 0 14px,transparent 14px 28px);
  transform:rotate(-12deg);
  pointer-events:none;
}

.sp-modern-hero>*{position:relative;z-index:1}
.sp-modern-hero__copy{max-width:760px}
.sp-modern-kicker{
  margin:0 0 8px;
  color:var(--accent);
  font-size:.76rem;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.sp-modern-hero__title-row{display:flex;align-items:center;gap:12px}
.sp-modern-hero__icon{font-size:1.7rem;line-height:1}
.sp-modern-hero h1{margin:0;color:var(--accent);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05}
.sp-modern-hero__description{margin:12px 0 0;max-width:720px;line-height:1.65;color:color-mix(in srgb,var(--text) 78%,transparent)}
.sp-modern-hero__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.sp-modern-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 17px;
  border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);
  border-radius:13px;
  background:var(--accent);
  color:#07140d!important;
  text-decoration:none;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 18%,transparent);
}
.sp-modern-button--ghost{background:transparent;color:var(--text)!important;border-color:var(--border);box-shadow:none}
.sp-modern-button:hover{filter:brightness(1.04);transform:translateY(-1px)}

/* Unified content width and rhythm. */
.sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) .container,
.sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) .wrap,
.sp-site-page .tourWrap,
.sp-site-page .achWrap{
  width:min(1180px,calc(100% - 28px));
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
  box-sizing:border-box;
}

.sp-page-arcade .container>.pageTitle:first-child,
.sp-page-categories .wrap>h1:first-child,
.sp-page-forum .container>div:first-child>h1:first-child,
.sp-page-downloads .container>.pageTitle:first-child,
.sp-page-messages .wrap .panel>.pm-head:first-child>h1:first-child,
.sp-page-ranking .container>.pageTitle:first-child{
  display:none!important;
}

/* Panels, cards, lists and tables share the same surface language. */
.sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) :is(.box,.panel,.card,.sectionBox,.thread,.post,.empty,.alert,.tableBox,.dlTable,.playerCard,.unlockCard,.reviewBox,.reviewItem,.forum-search-panel,.forum-search-result,.forum-player-card,.hallRow,.recentRow,.achCard,.achShowcaseCard,.achIconGuideCard,.tourPanel,.tourArchiveCard,.tourCurrentCard,.tourLiveRow,.tourPodiumRow){
  border-color:color-mix(in srgb,var(--border) 92%,transparent)!important;
  border-radius:var(--sp-radius-lg)!important;
  box-shadow:var(--sp-shadow-soft);
}

.sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) :is(.box,.panel,.sectionBox,.tableBox,.dlTable,.reviewBox,.forum-search-panel,.tourPanel){
  background:color-mix(in srgb,var(--surface) 97%,transparent)!important;
}

.sp-site-page :is(.thread,.post,.reviewItem,.forum-search-result,.forum-player-card,.hallRow,.recentRow,.achCard,.achShowcaseCard,.achIconGuideCard,.tourArchiveCard,.tourCurrentCard,.tourLiveRow,.tourPodiumRow,.miniCard,.feedItem,.relatedCard,.pm-row,.pm-msg .pm-bubble){
  background:color-mix(in srgb,var(--surface-2) 88%,var(--surface))!important;
}

.sp-site-page :is(.box,.panel,.sectionBox,.tourPanel,.achPanel){padding:20px}
.sp-site-page .sectionTitle,
.sp-site-page .tourSectionTitle,
.sp-site-page .achSectionTitle{
  font-size:1.14rem;
  letter-spacing:-.01em;
}

/* Buttons and controls. */
.sp-site-page :is(button,.btn,.tourBtn,.achBtn,input[type="submit"]){
  min-height:42px;
  border-radius:12px!important;
  font-weight:850!important;
  transition:transform .15s ease,filter .15s ease,border-color .15s ease;
}
.sp-site-page :is(button,.btn,.tourBtn,.achBtn,input[type="submit"]):hover{transform:translateY(-1px);filter:brightness(1.05)}
.sp-site-page :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  border-radius:12px!important;
  border:1px solid var(--border)!important;
  background:var(--surface-2)!important;
  color:var(--text)!important;
  min-height:44px;
  box-sizing:border-box;
}
.sp-site-page textarea{min-height:120px;padding:12px}
.sp-site-page :is(input,select,textarea):focus{
  outline:3px solid color-mix(in srgb,var(--accent-2) 22%,transparent)!important;
  border-color:var(--accent-2)!important;
}

/* Arcade */
.sp-page-arcade .seoIntro{
  margin:0 0 18px;
  padding:15px 17px;
  border:1px solid var(--border);
  border-radius:15px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  line-height:1.6;
  color:color-mix(in srgb,var(--text) 78%,transparent);
}
.sp-page-arcade .tools{gap:14px}
.sp-page-arcade .grid{gap:16px}
.sp-page-arcade .card{overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.sp-page-arcade .card:hover{transform:translateY(-3px)!important;box-shadow:0 18px 35px rgba(0,0,0,.16)!important}
.sp-page-arcade .card img{border-radius:13px}
.sp-page-arcade .nowPlayingBox{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),var(--surface))!important}

/* Categories */
.sp-page-categories .wrap>p:first-of-type{margin:0 0 20px!important;color:color-mix(in srgb,var(--text) 74%,transparent)}
.sp-page-categories .grid{gap:16px}
.sp-page-categories .card{overflow:hidden;background:var(--surface)!important;transition:transform .16s ease,box-shadow .16s ease}
.sp-page-categories .card:hover{transform:translateY(-4px)!important;background:var(--surface)!important;box-shadow:0 18px 38px rgba(0,0,0,.16)}
.sp-page-categories .thumb{background:var(--surface-2)}
.sp-page-categories .content{padding:15px}

/* Tournaments and achievements already have bespoke heroes; align them to the new system. */
.sp-page-tournaments .tourHero,
.sp-page-achievements .achHero{
  border-radius:var(--sp-radius-xl)!important;
  padding:28px!important;
  border-color:var(--border)!important;
  background:
    radial-gradient(circle at 88% 12%,rgba(255,207,84,.15),transparent 32%),
    linear-gradient(135deg,rgba(43,108,176,.12),transparent 56%),
    var(--surface)!important;
  box-shadow:var(--sp-shadow)!important;
}
.sp-page-tournaments .tourHeroStat,
.sp-page-achievements .heroStat{
  border-radius:15px!important;
  background:color-mix(in srgb,var(--surface-2) 88%,var(--surface))!important;
  border-color:var(--border)!important;
}

/* Forum */
.sp-page-forum .container,
.sp-page-forum-category .container,
.sp-page-forum-thread .container,
.sp-page-forum-compose .container,
.sp-page-forum-search .container{display:grid;gap:16px}
.sp-site-page .forum-header,
.sp-site-page .forum-head,
.sp-site-page .cat-head,
.sp-site-page .thread-head,
.sp-site-page .pm-head{
  align-items:center;
  gap:14px;
}
.sp-site-page .thread{padding:16px!important;transition:transform .14s ease,border-color .14s ease}
.sp-site-page .thread:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent-2) 55%,var(--border))!important}
.sp-site-page .thread-title{font-size:1.02rem}
.sp-site-page .post{overflow:hidden}
.sp-site-page .post-user{background:color-mix(in srgb,var(--surface-2) 82%,var(--surface))!important}
.sp-site-page .forum-breadcrumb{padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}
.sp-site-page .pill{border-radius:999px!important}

/* Downloads */
.sp-page-downloads .dl{display:grid;gap:16px}
.sp-page-downloads .dlTable{
  overflow-x:auto;
  overflow-y:hidden;
}
.sp-page-downloads .dlTable table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
}
.sp-page-downloads .dlTable th{background:var(--surface-2);color:var(--accent)}
.sp-page-downloads .dlTable :is(th,td){padding:14px;border-bottom:1px solid var(--border)}
.sp-page-downloads .dlTable tr:last-child td{border-bottom:0}
.sp-page-downloads .dlTable .name,
.sp-page-downloads .dlTable .desc{
  min-width:0;
  overflow-wrap:anywhere;
}
.sp-page-downloads .dlTable td:nth-child(7) code{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sp-page-downloads .dlTable :is(th,td):last-child{
  width:132px;
  min-width:132px;
  box-sizing:border-box;
  text-align:center;
  background:var(--surface);
}

.sp-page-downloads .dlTable th:last-child{
  background:var(--surface-2);
}

.sp-page-downloads .dlTable td:last-child{
  padding:12px 14px!important;
}

.sp-page-downloads .dlTable td:last-child .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:104px;
  max-width:100%;
  min-height:42px;
  margin:0;
  padding:10px 12px;
  white-space:nowrap;
}

@media(min-width:1100px){
  .sp-page-downloads .dlTable table{
    table-layout:fixed;
    min-width:0;
  }

  .sp-page-downloads .dlTable :is(th,td):nth-child(1){width:29%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(2){width:13%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(3){width:6%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(4){width:8%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(5){width:8%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(6){width:15%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(7){width:10%}
  .sp-page-downloads .dlTable :is(th,td):nth-child(8){width:11%}
}

@media(max-width:1099px){
  .sp-page-downloads .dlTable table{min-width:1080px}
}

/* Profiles */
.sp-page-profile .wrap,
.sp-page-public-profile .wrap{display:grid;gap:18px}
.sp-page-profile .panel,
.sp-page-public-profile .panel{padding:22px!important}
.sp-site-page :is(.user-profile-card,.profileHeader,.userHero,.profileTop){border-radius:var(--sp-radius-lg)!important}
.sp-site-page :is(.avatar,.user-avatar,.profileAvatar){box-shadow:0 10px 28px rgba(0,0,0,.18)}
.sp-site-page .user-link-list,
.sp-site-page .linkList{display:grid;gap:9px}
.sp-site-page .user-link-list a,
.sp-site-page .linkList a{padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}

/* Messages */
.sp-page-messages .panel,
.sp-page-messages-compose .panel,
.sp-page-messages-thread .panel{padding:22px!important}
.sp-site-page .pm-list{display:grid;gap:10px}
.sp-site-page .pm-row{border:1px solid var(--border)!important;border-radius:15px!important;padding:14px!important}
.sp-site-page .pm-thread{padding:8px 0;display:grid;gap:10px}
.sp-site-page .pm-msg .pm-bubble{border:1px solid var(--border);border-radius:16px!important;padding:13px 15px!important}
.sp-site-page .pm-msg.mine .pm-bubble{background:color-mix(in srgb,var(--accent-2) 17%,var(--surface))!important}

/* Rankings, achievements and game detail */
.sp-page-ranking .rankingTableWrap{border:1px solid var(--border);border-radius:15px;overflow:auto}
.sp-page-ranking .rankingTable th{background:var(--surface-2);color:var(--accent)}
.sp-page-ranking .rankingTable tr:last-child td{border-bottom:0}
.sp-page-game .panel{border-radius:var(--sp-radius-xl)!important;box-shadow:var(--sp-shadow)}
.sp-page-game .playerFrame{border-radius:18px;overflow:hidden;border:1px solid var(--border)}
.sp-page-game .relatedCard{border-radius:15px!important}

/* Legal and status pages */
.sp-page-privacy .container,
.sp-page-cookies .container{line-height:1.7}
.sp-page-privacy .container>*,
.sp-page-cookies .container>*{max-width:900px}

/* Who is online + footer */
.sp-site-page .who-online-wrap,
.sp-site-page .whoOnline,
.sp-site-page .onlineUsers{
  width:min(1180px,calc(100% - 28px));
  margin-left:auto!important;
  margin-right:auto!important;
  border-radius:18px!important;
}
.sp-site-page footer{margin-top:36px;padding:24px 16px calc(24px + var(--safe-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface-2) 74%,transparent)}

/* Light mode: force hard-coded legacy dark components onto the real light palette. */
html[data-theme="light"] .sp-site-page{
  --sp-shadow:0 16px 40px rgba(18,32,51,.10);
  --sp-shadow-soft:0 8px 22px rgba(18,32,51,.07);
}
html[data-theme="light"] .sp-modern-hero,
html[data-theme="light"] .sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) :is(.box,.panel,.card,.sectionBox,.thread,.post,.empty,.alert,.tableBox,.dlTable,.playerCard,.unlockCard,.reviewBox,.reviewItem,.forum-search-panel,.forum-search-result,.forum-player-card,.hallRow,.recentRow,.achCard,.achShowcaseCard,.achIconGuideCard,.tourHero,.tourPanel,.tourArchiveCard,.tourCurrentCard,.tourLiveRow,.tourPodiumRow,.achHero,.achPanel,.miniCard,.feedItem,.relatedCard,.pm-row,.pm-msg .pm-bubble){
  color:var(--text)!important;
  border-color:var(--border)!important;
}
html[data-theme="light"] .sp-modern-hero,
html[data-theme="light"] .sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) :is(.box,.panel,.sectionBox,.tableBox,.dlTable,.reviewBox,.forum-search-panel,.tourPanel,.tourHero,.achHero,.achPanel){
  background:var(--surface)!important;
}
html[data-theme="light"] .sp-modern-hero{
  background:
    radial-gradient(circle at 88% 14%,rgba(37,211,102,.11),transparent 34%),
    linear-gradient(135deg,rgba(43,108,176,.08),transparent 56%),
    var(--surface)!important;
}
html[data-theme="light"] .sp-site-page :is(.thread,.post,.reviewItem,.forum-search-result,.forum-player-card,.hallRow,.recentRow,.achCard,.achShowcaseCard,.achIconGuideCard,.tourArchiveCard,.tourCurrentCard,.tourLiveRow,.tourPodiumRow,.miniCard,.feedItem,.relatedCard,.pm-row,.pm-msg .pm-bubble,.tourHeroStat,.heroStat,.dlTable th){
  background:var(--surface-2)!important;
}
html[data-theme="light"] .sp-site-page :is(.tourPlayer,.tourPodiumName,.tourArchiveGame,.tourCurrentGame,.achCardTitle,.achShowcaseMain,.achIconGuideCard b,.relatedTitle,.uLink,.thread-title,.pm-user){color:var(--text)!important}
html[data-theme="light"] .sp-site-page .nowPlayingBox{background:linear-gradient(135deg,rgba(21,115,71,.07),var(--surface))!important}
html[data-theme="light"] .sp-page-categories .card:hover{background:var(--surface)!important}

@media(max-width:900px){
  .sp-site-page .navbar{position:relative;padding:10px 12px}
  .sp-modern-hero{align-items:flex-start;flex-direction:column;padding:24px}
  .sp-modern-hero__actions{justify-content:flex-start}
}
@media(max-width:700px){
  .sp-modern-hero{width:calc(100% - 18px);margin-top:16px;padding:20px;border-radius:19px}
  .sp-modern-hero__actions{width:100%}
  .sp-modern-button{flex:1 1 160px}
  .sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) .container,
  .sp-site-page:not(.sp-page-pcem):not(.sp-page-minecraft):not(.sp-page-games-lobby) .wrap,
  .sp-site-page .tourWrap,
  .sp-site-page .achWrap{width:calc(100% - 18px)}
  .sp-site-page :is(.box,.panel,.sectionBox,.tourPanel,.achPanel){padding:15px}
}

/* Compose editor: real space below the Quill frame, not overlapping controls. */
.forum-editor.forum-editor--compose{
  display:block;
  margin-bottom:20px!important;
}

.forum-editor.forum-editor--compose + .forum-editor-extras{
  position:relative;
  z-index:2;
  clear:both;
  display:flex;
  align-items:center;
  margin:0 0 18px!important;
  padding:0!important;
}

/* Final forum composer spacing: a real flow element separates controls from Quill. */
[data-forum-editor] .forum-editor-controls-spacer{
  display:block!important;
  min-height:12px!important;
  flex:0 0 12px!important;
}

[data-forum-editor] .forum-editor-extras{
  position:relative!important;
  top:auto!important;
  transform:none!important;
  margin:0 0 18px!important;
  padding:0!important;
}

