/* Account pages extend the site's existing white / teal identity. */
.member-page { --member-green:#0b7268; --member-ink:#163730; --member-mint:#edf5f2; --member-muted:#63716c; background:#fcfdfc; color:var(--member-ink); }
.member-page [hidden] { display:none !important; }
.member-header { max-width:1280px; margin:auto; padding:28px 48px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); gap:24px; }
.member-header nav { display:flex; gap:28px; align-items:center; font-size:14px; }
.member-header .brand { font-size:25px; white-space:nowrap; }
.nav-account { color:var(--member-green); }
.member-main { max-width:1184px; padding:0 32px 80px; margin:auto; min-height:70vh; }
.member-eyebrow { color:var(--member-green); letter-spacing:.12em; font-size:12px; font-weight:600; margin:0 0 24px; }
.member-page h1,.member-page h2,.member-page h3 { font-family:var(--display); font-weight:600; letter-spacing:-.035em; }
.member-page h1 { font-size:clamp(36px,4.4vw,62px); line-height:1.25; margin:0 0 22px; }
.member-page h2 { font-size:26px; line-height:1.5; margin:0 0 20px; }
.member-page h3 { font-size:23px; margin:18px 0 22px; }
.member-page p { line-height:1.85; }
.auth-layout { display:grid; grid-template-columns:1fr 420px; gap:80px; align-items:center; padding:84px 16px 70px; }
.auth-intro h1 { font-size:clamp(44px,5.5vw,76px); }
.auth-intro > p:not(.member-eyebrow) { color:var(--member-muted); font-size:16px; margin-bottom:36px; }
.intro-note { display:flex; align-items:center; gap:18px; padding:25px 0; margin-bottom:28px; border-top:1px solid var(--line); max-width:370px; font-size:14px; line-height:1.8; }
.small-dice { font-size:56px; color:var(--member-green); line-height:1; }
.auth-card,.member-card,.single-card { background:#fff; border:1px solid #dce7e1; border-radius:16px; padding:32px; }
.auth-card { box-shadow:0 18px 65px #16373008; padding:36px; }
.auth-tabs { display:flex; gap:30px; border-bottom:1px solid var(--line); margin-bottom:28px; }
.auth-tabs button { border:0; border-bottom:3px solid transparent; padding:0 0 16px; background:none; color:var(--member-muted); cursor:pointer; font-size:18px; }
.auth-tabs button[aria-pressed=true] { color:var(--member-green); border-color:var(--member-green); font-weight:600; }
.member-form { display:flex; flex-direction:column; gap:16px; }
.member-form label { display:flex; flex-direction:column; gap:9px; font-size:14px; font-weight:500; }
.member-form input,.member-form select,.member-form textarea,.admin-search input { border:1px solid #ccd9d2; border-radius:7px; padding:13px 14px; font:inherit; width:100%; background:#fff; color:var(--member-ink); min-height:48px; }
.member-form input:focus,.member-form select:focus,.admin-search input:focus { outline:2px solid #0b7268; outline-offset:2px; }
.member-form small { margin-top:-8px; font-size:12px; color:var(--member-muted); line-height:1.7; }
#register-fields > label { margin-bottom:15px; }
.member-button { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:48px; border:1px solid var(--member-green); border-radius:7px; padding:13px 23px; background:var(--member-green); color:white; cursor:pointer; font:600 14px var(--body); line-height:1.6; text-align:center; }
.member-button:hover:not(:disabled) { background:#075a53; }
.member-button-light { color:var(--member-green); background:#f4f9f6; border-color:#c8dcd2; }
.member-button-light:hover:not(:disabled) { background:#e5f1ea; }
.member-button:disabled { cursor:default; background:#e9eeeb; border-color:#e1e8e3; color:#66766d; }
.member-page a:focus-visible,.member-page button:focus-visible,.member-page summary:focus-visible { outline:2px solid var(--member-green); outline-offset:5px; }
.subtle-button { background:none; border:0; padding:0; color:var(--member-muted); cursor:pointer; font:inherit; }
.text-link { display:inline-flex; gap:14px; color:var(--member-green); font-size:14px; }
.auth-card > .text-link { margin-top:22px; }
.form-note { color:var(--member-muted); font-size:13px; margin:0; line-height:1.8; }
.form-error { color:#a83230; background:#fff4f0; border-radius:5px; padding:10px 12px; font-size:13px; margin:0; overflow-wrap:anywhere; }
.notice { border:1px solid #bfdacd; background:#eef7f1; color:#205c40; padding:16px 20px; border-radius:8px; margin-top:28px; font-size:14px; overflow-wrap:anywhere; }
.notice.is-error { background:#fff5ef; border-color:#efcbbb; color:#8b3d22; }
.single-card { max-width:480px; margin:72px auto; }
.single-card h1 { font-size:34px; }
.dashboard-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin:60px 0 38px; }
.dashboard-heading .member-eyebrow { margin-bottom:14px; }
.dashboard-heading h1 { font-size:36px; margin:0; overflow-wrap:anywhere; }
.account-actions { display:flex; gap:20px; font-size:14px; }
.dashboard-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:24px; margin:24px 0; }
.library-heading,.section-line { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.library-heading h2 { margin:0; font-size:32px; }
.status-chip { font-size:12px; color:var(--member-green); background:#e9f5ef; border:1px solid #cce5d7; padding:4px 12px; border-radius:20px; white-space:nowrap; }
.game-library > p:not(.member-eyebrow) { font-size:14px; color:var(--member-muted); }
.game-library .member-button { margin:20px 0 12px; min-width:160px; }
.entitlement-list { display:flex; flex-direction:column; gap:8px; font-size:13px; }
.entitlement-row { display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; padding:12px 14px; background:var(--member-mint); border-radius:5px; }
.table-scroll { overflow-x:auto; }
.member-page table { border-collapse:collapse; width:100%; font-size:13px; text-align:left; }
.member-page th { font-weight:500; color:var(--member-muted); padding:14px 12px; border-bottom:1px solid var(--line); white-space:nowrap; }
.member-page td { padding:16px 12px; border-bottom:1px solid #eef2ef; max-width:300px; overflow-wrap:anywhere; }
.order-section .form-note { margin:14px 0; }
.order-id { font-family:monospace; font-size:12px; }
.password-settings { margin-top:24px; max-width:550px; }
.password-settings summary { cursor:pointer; font-size:16px; }
.password-settings form { margin-top:24px; }
.member-footer { border-top:1px solid var(--line); max-width:1184px; margin:auto; padding:26px 32px; display:flex; justify-content:space-between; gap:24px; font-size:12px; color:var(--member-muted); }
.game-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:center; padding:80px 0 90px; }
.game-hero h1 { font-size:clamp(40px,4.4vw,60px); }
.game-hero h1 > span { display:block; font-size:.78em; color:var(--member-green); margin-top:18px; line-height:1.45; }
.game-lede { color:var(--member-muted); font-size:15px; }
.hero-actions { display:flex; align-items:center; gap:25px; margin-top:32px; }
.live-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--member-green); margin-right:9px; }
.board-art { aspect-ratio:1; position:relative; max-width:440px; width:100%; margin:auto; background:#eaf3ec; border-radius:36px; transform:rotate(-5deg); }
.board-loop { position:absolute; inset:22px; border:2px dashed #87ae98; border-radius:24px; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(3,1fr); gap:12px; padding:12px; }
.board-loop i { background:#fdfef9; border:1px solid #d1e1d4; border-radius:12px; font-style:normal; display:flex; align-items:center; justify-content:center; font-size:13px; color:#4c755b; box-shadow:0 3px 0 #cfdfd2; }
.board-loop i:nth-child(5) { grid-column:3; grid-row:3; background:#0b7268; color:white; }
.board-loop i:nth-child(6) { grid-column:2; grid-row:3; }
.board-loop i:nth-child(7) { grid-column:1; grid-row:3; }
.board-loop i:nth-child(8) { grid-column:1; grid-row:2; }
.board-center { position:absolute; inset:28%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; transform:rotate(5deg); }
.board-center strong { font-family:var(--display); font-size:clamp(16px,1.6vw,22px); line-height:1.65; white-space:nowrap; }
.board-center small { font-size:10px; letter-spacing:.2em; margin-top:12px; color:var(--member-green); }
.board-dice { font-size:65px; line-height:1; color:#0b7268; margin-bottom:10px; }
.plan-section { padding-top:36px; border-top:1px solid var(--line); }
.plan-section .member-eyebrow { margin-bottom:10px; }
.plan-section .section-line { align-items:end; margin-bottom:30px; }
.plan-section h2 { font-size:34px; margin:0; }
.plan-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.plan-card { border:1px solid #dbe5df; background:#fff; padding:30px; border-radius:12px; display:flex; flex-direction:column; }
.plan-featured { border:2px solid #0b7268; background:#f4f9f5; padding:29px; }
.plan-label { font-size:12px; color:var(--member-muted); }
.plan-price { min-height:65px; display:flex; gap:6px; align-items:baseline; color:var(--member-green); font-size:52px; line-height:1.2; font-weight:600; }
.plan-price > span { font-size:22px; }
.plan-price small { margin-left:8px; color:var(--member-muted); font-size:12px; font-weight:400; }
.price-pending { font-size:28px; align-items:center; color:#65756b; }
.plan-card > p { font-size:14px; color:var(--member-muted); min-height:54px; }
.plan-term { border-top:1px solid #d9e4dd; padding:20px 0; font-size:13px; margin-top:auto; }
.plan-card > small { color:var(--member-muted); margin-top:12px; font-size:11px; line-height:1.8; }
.redemption-strip { margin-top:60px; background:#eaf3ee; border-radius:12px; padding:32px 40px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.redemption-strip .member-eyebrow { margin-bottom:8px; }
.redemption-strip h2 { margin:0; }
.redemption-strip p:last-child { margin:8px 0 0; color:var(--member-muted); font-size:14px; }
.game-faq { max-width:760px; margin:65px auto 0; }
.game-faq details { border-bottom:1px solid var(--line); padding:20px 0; }
.game-faq summary { cursor:pointer; font-size:15px; }
.game-faq details p { color:var(--member-muted); font-size:14px; }
.checkout-dialog { max-width:480px; width:calc(100% - 32px); border:1px solid #c7d8cd; border-radius:16px; padding:32px; color:var(--member-ink); }
.checkout-dialog::backdrop { background:#102e2455; }
.checkout-price { font-size:42px; margin:15px 0; color:var(--member-green); }
.checkbox-row { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.8; margin:22px 0; }
.checkbox-row input { margin-top:6px; }
.member-form .checkbox-row { flex-direction:row; align-items:flex-start; }
.member-form .checkbox-row input { width:auto; min-height:0; }
.dialog-actions { display:flex; gap:24px; justify-content:flex-end; margin-top:24px; }
.admin-intro { margin-top:52px; }
.admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:28px 0; }
.admin-search { display:flex; gap:12px; max-width:450px; margin-bottom:20px; }
.admin-output { white-space:pre-wrap; overflow-wrap:anywhere; font-family:monospace; font-size:14px; background:#edf5f0; padding:18px; border-radius:7px; }
.admin-block { margin-top:24px; }
.admin-block h2 { margin-bottom:12px; }
.admin-overview { margin-top:28px; }
.admin-overview .section-line { margin-bottom:12px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:24px 0; margin:0; gap:20px; }
.admin-stats dt { font-size:12px; color:var(--member-muted); }
.admin-stats dd { font-size:clamp(24px,3vw,34px); font-weight:600; color:var(--member-green); margin:8px 0 0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.admin-order-search { display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; margin:20px 0; }
.admin-order-search > label { min-width:0; }
.admin-order-search .form-error,.admin-filter-actions { grid-column:1 / -1; }
.admin-filter-actions { display:flex; align-items:center; gap:22px; }
.admin-payment-test summary { cursor:pointer; font-size:15px; color:var(--member-muted); }
.admin-payment-test h2 { margin-top:24px; }
@media(max-width:680px) { .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }.admin-order-search { grid-template-columns:1fr; }.admin-overview .section-line { align-items:start; } }
.member-page .danger-button { color:#96392c; border:1px solid #e8ccc4; border-radius:5px; padding:6px 10px; background:#fff8f5; cursor:pointer; font:inherit; white-space:nowrap; }
.tiny-note { font-size:12px; color:var(--member-muted); }
.home-game-entry { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:38px 7vw; display:flex; align-items:center; justify-content:space-between; gap:25px; background:#f3f8f5; }
.home-game-entry h2 { font:600 28px var(--display); margin:0 0 10px; }
.home-game-entry p { color:var(--muted); font-size:14px; margin:0; }
@media(max-width:850px) { .auth-layout { gap:35px; grid-template-columns:1fr 390px; padding:55px 0; }.game-hero { gap:30px; }.plan-card { padding:22px; }.plan-featured { padding:21px; }.plan-grid { gap:12px; }.dashboard-grid { grid-template-columns:1fr 1fr; }.member-header { padding:24px 32px; } }
@media(max-width:680px) { .member-header { padding:22px 20px; gap:15px; }.member-header nav { gap:18px; font-size:12px; }.member-header .brand { font-size:22px; }.member-main { padding:0 20px 50px; }.auth-layout { display:block; padding:40px 0; }.auth-intro h1 { font-size:44px; }.auth-intro > p:not(.member-eyebrow) { margin-bottom:20px; }.intro-note { padding:18px 0; margin-bottom:0; }.auth-intro > .text-link { margin:4px 0 30px; }.auth-card { padding:26px; }.member-eyebrow { margin-bottom:16px; }.dashboard-heading { align-items:start; margin:36px 0 25px; }.dashboard-heading h1 { font-size:28px; }.account-actions { font-size:12px; flex-direction:column; gap:12px; white-space:nowrap; }.dashboard-grid,.admin-grid { grid-template-columns:1fr; }.member-card { padding:24px; }.section-line { flex-wrap:wrap; gap:5px 15px; }.member-page table { min-width:550px; }.game-hero { display:flex; flex-direction:column; align-items:stretch; padding:45px 0 45px; gap:35px; }.game-hero h1 { font-size:42px; }.game-hero h1 > span { font-size:.8em; }.board-art { max-width:320px; }.board-center strong { font-size:18px; }.board-dice { font-size:48px; }.plan-section .section-line { gap:12px; }.plan-grid { grid-template-columns:1fr; gap:20px; }.plan-card,.plan-featured { padding:26px; }.plan-price { min-height:unset; }.plan-card > p { min-height:unset; }.redemption-strip { margin-top:35px; padding:26px; display:block; }.redemption-strip .member-button { margin-top:22px; }.redemption-strip h2 { font-size:23px; }.member-footer { padding:23px 20px; font-size:11px; }.home-game-entry { padding:30px 24px; align-items:start; flex-direction:column; }.home-game-entry h2 { font-size:24px; }.game-faq { margin-top:40px; }.single-card { margin:40px auto; padding:26px; }.checkout-dialog { padding:26px; } }
@media(prefers-reduced-motion:reduce) { .member-page * { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
