/* The Meeple Collective / Japan-inspired dense information portal skin. Presentation only. */
:root{--jp-border:#2c4245;--jp-card:#fffefc;--jp-bg:#f1f5ed;--jp-text:#253439;--jp-accent:#255d55;--jp-pink:#f6ccd9;--jp-mint:#c6e9d5;--jp-lav:#ded1f6;--jp-yellow:#fce7a8;--jp-blue:#d0e5f8;--jp-shadow:3px 3px 0 #30454b26}
html[data-theme=dark]{--jp-border:#a6c8c4;--jp-card:#202e35;--jp-bg:#152026;--jp-text:#ebf4f1;--jp-accent:#9adbc5;--jp-pink:#613e51;--jp-mint:#294b45;--jp-lav:#45405f;--jp-yellow:#605532;--jp-blue:#294a62;--jp-shadow:3px 3px 0 #0005}
body{background:var(--jp-bg)!important;color:var(--jp-text);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.48}
a,button{transition:background-color .12s ease}a:hover{text-decoration:underline;text-underline-offset:3px}
.shell{max-width:1380px}.wrap{max-width:1340px!important}.header{border-bottom:3px solid var(--jp-border);background:var(--jp-card);min-height:70px!important;padding-top:10px!important;padding-bottom:10px!important;gap:12px!important}.brand{font-weight:900!important;letter-spacing:-.04em}.brand img{width:43px!important;height:43px!important;object-fit:contain}.header nav,.nav{gap:6px!important}.header nav a,.nav a{background:var(--jp-blue);border:1px solid var(--jp-border);padding:8px 10px;font-size:12px;font-weight:800;line-height:1.2}.header nav a:nth-child(2),.nav a:nth-child(2){background:var(--jp-mint)}.header nav a:nth-child(3),.nav a:nth-child(3){background:var(--jp-lav)}.header nav a:nth-child(4),.nav a:nth-child(4){background:var(--jp-pink)}.header-actions .signup,.signup,.primary,.btn:not(.secondary){background:var(--jp-yellow)!important;color:#213838!important;border:1px solid var(--jp-border)!important;border-radius:4px!important}.header-actions button,.btn,.button,button,.field{border-radius:4px!important}.header-actions .account,.header-account,.nav-user{border:1px solid var(--jp-border);border-radius:4px!important}
.jp-ticker{background:var(--jp-yellow);border-bottom:2px solid var(--jp-border);color:#25383d}.jp-ticker-inner{min-height:34px;display:flex;align-items:center;gap:13px;font-size:12px}.jp-ticker b{background:#283e41;color:#fff;padding:4px 9px;white-space:nowrap}.jp-ticker a{margin-left:auto;font-weight:900;white-space:nowrap}.jp-shortcuts{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding-top:12px;padding-bottom:10px}.jp-shortcuts a{background:var(--jp-card);border:2px solid var(--jp-border);padding:11px;font-size:11px;font-weight:900;box-shadow:var(--jp-shadow)}.jp-shortcuts b{display:block;font-size:15px;letter-spacing:-.02em;margin-top:3px}.jp-shortcuts a:nth-child(2){background:var(--jp-mint)}.jp-shortcuts a:nth-child(3){background:var(--jp-pink)}.jp-shortcuts a:nth-child(4){background:var(--jp-lav)}.jp-shortcuts a:nth-child(5){background:var(--jp-yellow)}
.jp-layout{display:grid;grid-template-columns:minmax(0,3.2fr) minmax(245px,1fr);gap:13px;padding-top:3px;padding-bottom:22px}.jp-primary,.jp-sidebar{min-width:0}.jp-sectionbar,.jp-aside-title{background:#2a5451;color:white;font-weight:900;padding:9px 12px;font-size:14px;letter-spacing:.04em;border:2px solid var(--jp-border);display:flex;justify-content:space-between;align-items:center;gap:10px}.jp-sectionbar span,.jp-aside-title span{font-weight:600;font-size:10px;opacity:.9}.jp-aside-title{margin-top:0}.jp-aside-title.lavender{background:#63518b}.jp-aside-title.peach{background:#a95a6e}.jp-aside-title.yellow{background:#8c7428}.jp-mini{background:var(--jp-card);border:2px solid var(--jp-border);border-top:0;padding:13px;margin-bottom:10px;font-size:13px}.jp-mini h3{margin:6px 0;font-size:17px}.jp-mini p{margin:5px 0;color:var(--jp-text)}.jp-mini a{display:block;font-weight:900;margin-top:9px;text-decoration:underline}.jp-chip{display:inline-block;background:var(--jp-mint);color:#203b39;border:1px solid #567b70;font-weight:900;padding:3px 6px;font-size:10px}
.hero{margin:0!important;min-height:0!important;padding:15px!important;gap:18px!important;background:var(--jp-card);border:2px solid var(--jp-border);border-top:0;grid-template-columns:1fr 1.04fr!important;align-items:center}.hero h1{font-size:clamp(31px,3.9vw,56px)!important;margin:8px 0!important;letter-spacing:-.045em}.hero p{font-size:14px!important;line-height:1.55}.hero .eyebrow{display:inline-block;background:var(--jp-pink);border:1px solid var(--jp-border);padding:5px 8px;color:#333e40}.hero .cta{margin-top:15px;gap:7px}.hero .cta a{font-size:12px;padding:10px 11px;border:1px solid var(--jp-border);border-radius:3px!important}.hero .secondary{background:var(--jp-lav);color:var(--jp-text)}.slide-frame{border:2px solid var(--jp-border);border-radius:2px!important;box-shadow:var(--jp-shadow)}.slide-controls{margin-top:6px}.arrows button{border-radius:3px!important}.jp-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.jp-action-grid a{padding:13px;background:var(--jp-pink);border:2px solid var(--jp-border);box-shadow:var(--jp-shadow)}.jp-action-grid a:nth-child(2){background:var(--jp-blue)}.jp-action-grid a:nth-child(3){background:var(--jp-lav)}.jp-action-grid b{display:block;font-size:12px;color:#25383d}.jp-action-grid span{display:block;color:#344447;font-size:11px;margin-top:5px}
.summary{padding:22px 0!important;background:var(--jp-mint)}.summary-grid{gap:20px!important}.summary h2,.details h2{font-size:clamp(23px,2.8vw,32px)!important}.details{padding-top:30px!important;padding-bottom:25px!important}.details h2{margin-top:12px}.footer,.foot{border-top:3px solid var(--jp-border);background:var(--jp-card)}
/* Catalogue, login and session screens retain their JS hooks and functionality. */
.page{padding-top:28px!important;padding-bottom:50px!important}.intro{margin-bottom:16px!important}.intro h1{font-size:clamp(26px,3.5vw,40px)!important;letter-spacing:-.035em!important}.intro .muted{font-size:13px}.card,.game,.auth,.panel-grid>.card{border:2px solid var(--jp-border)!important;border-radius:5px!important;box-shadow:var(--jp-shadow)!important;background:var(--jp-card)!important;padding:15px!important}.card h2,.game h2{font-size:18px!important}.grid,.cards{gap:10px!important}.grid{grid-template-columns:repeat(4,minmax(0,1fr))}.cover{border-radius:3px!important}.pill,.tag{border:1px solid var(--jp-border);border-radius:3px!important}.bar{background:var(--jp-card);border:2px solid var(--jp-border);padding:12px;margin-bottom:14px}.pagination{background:var(--jp-card);border:2px solid var(--jp-border);padding:10px!important}.field{border:1px solid var(--jp-border)!important}.auth{max-width:520px}.tabs button{border:1px solid var(--jp-border)!important}.notice-body{border:3px solid var(--jp-border)!important;border-radius:9px!important;box-shadow:var(--jp-shadow)!important}
/* The upcoming page contains its own inline CSS: override using higher specificity. */
body .section{padding:22px 0 28px}.section .heading{margin-bottom:10px}.section .heading h2{font-size:24px}.section .card{border:2px solid var(--jp-border);border-radius:4px;padding:14px}.section .cards{gap:10px}.section .hero{border:2px solid var(--jp-border);margin-top:12px!important}.section .tag{border:1px solid var(--jp-border)}.section .btn{border-radius:4px}
@media(max-width:1030px){.jp-layout{grid-template-columns:minmax(0,1fr) 220px}.jp-shortcuts{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.jp-layout{grid-template-columns:1fr}.jp-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;align-content:start}.jp-sidebar .jp-aside-title{grid-column:auto}.jp-sidebar .jp-mini{grid-column:auto}.jp-shortcuts{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr!important}.grid{grid-template-columns:repeat(2,1fr)}.header nav,.nav{overflow-x:auto;max-width:100%;padding-bottom:4px}.jp-ticker-inner{flex-wrap:wrap;padding-top:6px;padding-bottom:6px}.jp-ticker a{margin-left:0}.jp-action-grid{grid-template-columns:1fr}}
@media(max-width:470px){.jp-sidebar{display:block}.jp-shortcuts{grid-template-columns:1fr 1fr}.jp-shortcuts a{font-size:10px}.jp-shortcuts b{font-size:12px}.grid{grid-template-columns:1fr}.jp-sectionbar span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important}}

/* V7: neutral charcoal dark mode (all pages) */
html[data-theme="dark"]{--jp-bg:#15171d;--jp-card:#232630;--jp-border:#55596a;--jp-text:#f0edf4;--jp-accent:#bdabd9;--jp-pink:#493545;--jp-mint:#313a49;--jp-lav:#3d3654;--jp-yellow:#615139;--jp-blue:#303e59;--bg:#15171d;--paper:#232630;--surface:#232630;--soft:#282c37;--ink:#f0edf4;--muted:#b9b9c8;--stroke:#505261;--line:#505261;--green:#c5afd8;--accent:#bbabd8;--tint:#303344;--peach:#493545;--lilac:#3d3654;--yellow:#615139;color-scheme:dark}
html[data-theme="dark"] body{background:#15171d;color:#f0edf4}
html[data-theme="dark"] .jp-action-grid b,html[data-theme="dark"] .jp-action-grid span{color:#252932}
/* V7: banner stays centered in the shared page container */
main .upcoming-hero{width:min(1120px,calc(100% - 36px))!important;margin:16px auto!important;box-sizing:border-box}
/* V7: standard thumbnail viewport with consistent cropping */
.game .cover{display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;aspect-ratio:4/3!important;height:auto!important;min-height:0!important;padding:0!important;line-height:1!important}
.game .cover img{display:block!important;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;margin:0!important;transform:none!important}
html[data-theme="dark"] .game .cover{background:#343746!important}
/* Account editor */
.account-layout{max-width:980px;margin:20px auto;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px}.account-avatar{width:98px;height:98px;border-radius:50%;object-fit:cover;border:2px solid var(--jp-border);background:var(--jp-blue)}.account-summary{text-align:center}.account-summary img{margin:10px auto}.account-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.account-status{min-height:22px;color:var(--accent);font-size:13px}.account-field{max-width:580px}@media(max-width:700px){.account-layout{grid-template-columns:1fr}}

/* V7.1: consistent centered content on the upcoming schedule view.
   V6's `.hero { margin:0!important }` unintentionally defeats `.wrap` centering. */
body main > section.upcoming-hero.wrap {
  width:min(1120px, calc(100% - 36px))!important;
  max-width:1120px!important;
  margin:16px auto 22px!important;
  box-sizing:border-box;
}
@media (max-width:620px){body main > section.upcoming-hero.wrap{width:calc(100% - 24px)!important;}}

/* V8: account badges, compact expandable descriptions and a separate admin page */
.nav-avatar{width:25px;height:25px;display:inline-grid;place-items:center;vertical-align:middle;border-radius:50%;overflow:hidden;background:#d7d7e3;color:#39424b;margin-right:4px;flex-shrink:0}
.nav-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.nav-avatar.hide-until-user{display:none}
body:has(#navUserBadge:not(.hide)) .nav-avatar.hide-until-user{display:inline-grid}
.header-account{display:inline-flex;align-items:center;gap:5px}
.description-wrap{min-width:0;width:100%;margin:8px 0;overflow-wrap:anywhere}
.game-description{white-space:pre-line;overflow-wrap:anywhere;word-break:normal;line-height:1.55;margin:0}
.description-wrap:not(.expanded) .game-description{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;line-clamp:4}
.description-wrap .description-toggle{display:block;margin-top:6px;padding:4px 8px;font-size:12px;cursor:pointer}
.admin-data-hidden{display:none!important}.admin-page-head{padding:32px 0 0}.admin-page-head h1{margin:0;font-size:clamp(25px,4vw,42px)}.admin-page-head p{color:var(--muted)}

/* Guest registration V10 */
.registration-dialog{width:min(94vw,510px);max-height:90dvh;overflow:auto;border:2px solid var(--border);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 28px 95px #0006;padding:0}.registration-dialog::backdrop{background:#090d17ab;backdrop-filter:blur(5px)}.registration-dialog-inner{padding:24px;position:relative}.registration-dialog h2{margin:6px 36px 12px 0;letter-spacing:-.04em}.registration-x{position:absolute;right:18px;top:14px;background:var(--soft);color:var(--ink);border:1px solid var(--border);border-radius:8px;font-size:24px;line-height:1;width:33px;height:33px}.registration-choices{display:flex;gap:10px;flex-wrap:wrap}.reg-fieldset{border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;gap:18px;flex-wrap:wrap}.reg-fieldset legend{font-size:13px;font-weight:700}.reg-check{display:flex!important;grid-template-columns:none!important;flex-direction:row;gap:9px!important;align-items:start;font-size:13px!important}.reg-check input{margin-top:5px}.registration-feedback{color:var(--accent);font-size:13px;min-height:20px}.registration-captcha{min-height:60px}.registration-dialog .notice{font-size:12px}.registration-dialog .form{margin-top:16px}

.guest-table{width:100%;border-collapse:collapse;min-width:650px;font-size:13px}.guest-table td,.guest-table th{padding:10px;border-bottom:1px solid var(--border);text-align:left}.guest-table th{background:var(--soft)}
