/* Member Studio — shared premium presentation. Loaded after the base styles. */
:root {
  --background: oklch(.975 .008 255); --foreground: oklch(.23 .035 260);
  --surface: oklch(1 0 0); --surface-alt: oklch(.965 .013 255);
  --surface-hover: oklch(.94 .018 255); --muted: oklch(.55 .035 255);
  --line: oklch(.925 .018 255); --strong: oklch(.36 .15 263);
  --success: oklch(.51 .14 155); --warning: oklch(.62 .14 75);
  --danger: oklch(.56 .2 25); --inverse: oklch(1 0 0);
  --member-navy: oklch(.255 .12 264); --member-blue: oklch(.36 .15 263);
  --member-blue-soft: oklch(.46 .12 264); --member-green: oklch(.72 .19 151);
  --member-gold: oklch(.77 .16 75); --member-canvas: var(--background);
  --member-ink: var(--foreground); --member-soft: var(--muted);
  --member-white: var(--surface); --member-line: var(--line);
  --premium-hero-end: oklch(.4 .17 263); --premium-on-hero: oklch(1 0 0);
  --premium-hero-muted: oklch(.84 .045 259); --premium-hero-line: oklch(1 0 0 / .18);
  --premium-hero-soft: oklch(1 0 0 / .09); --premium-gold-soft: oklch(.97 .045 85);
  --premium-success-soft: oklch(.95 .045 155); --premium-danger-soft: oklch(.96 .03 25);
  --premium-warning-soft: oklch(.97 .045 85); --premium-focus: oklch(.62 .16 259 / .18);
  --premium-gradient: linear-gradient(145deg,var(--member-navy),var(--member-blue) 68%,var(--premium-hero-end));
  --shadow: 0 6px 22px oklch(.27 .06 260 / .055);
  --shadow-lg: 0 12px 30px oklch(.27 .06 260 / .1);
  --member-shadow: var(--shadow-lg); --radius: 16px;
  --landing-primary: var(--member-blue); --landing-primary-foreground: var(--premium-on-hero);
  --landing-tint: var(--surface-alt); --landing-success: var(--success);
  --landing-success-tint: var(--premium-success-soft);
}
:root[data-theme="dark"] {
  --background: oklch(.19 .02 260); --foreground: oklch(.94 .01 255);
  --surface: oklch(.235 .025 260); --surface-alt: oklch(.28 .03 260);
  --surface-hover: oklch(.32 .035 260); --muted: oklch(.72 .035 255);
  --line: oklch(.35 .025 260); --strong: oklch(.75 .115 255);
  --success: oklch(.76 .14 155); --warning: oklch(.8 .14 75);
  --danger: oklch(.75 .14 25); --inverse: oklch(.17 .03 260);
  --premium-gold-soft: oklch(.3 .05 75); --premium-success-soft: oklch(.29 .045 155);
  --premium-danger-soft: oklch(.3 .045 25); --premium-warning-soft: oklch(.3 .05 75);
  --landing-primary: var(--strong); --landing-tint: var(--surface-alt);
  --shadow: 0 6px 22px oklch(.1 .02 260 / .2); --shadow-lg: 0 12px 30px oklch(.1 .02 260 / .3);
}
body { transition: background-color .2s ease,color .2s ease; }
a:hover { opacity:1; }
button,input,select,textarea { font:inherit; letter-spacing:0; }
h1,h2,h3 { font-weight:800; }
.top { min-height:68px; background:var(--surface); box-shadow:none; }
.brand-mark { border:0; background:var(--premium-gradient); color:var(--premium-on-hero); border-radius:10px; }
.top-balance { color:var(--strong); }
.theme-toggle { border-radius:10px; min-height:38px; }
.user-page:not(.page-home)>.wrap { padding:0 0 28px; }
.user-page:not(.page-home)>.wrap>.card,.user-page:not(.page-home)>.wrap>form.card { margin:16px 14px; }
.user-page:not(.page-home)>.wrap>.alert { margin:14px; }
.user-page:not(.page-home)>.wrap>.vip-grid { margin:0 14px 18px; }
.user-page:not(.page-home)>.wrap>h3 { margin:24px 18px 14px; }
.page-hero { padding:23px 20px 25px; background:var(--premium-gradient); color:var(--premium-on-hero); border-radius:0 0 22px 22px; }
.page-hero-top { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:21px; }
.page-hero .member-studio { color:var(--premium-hero-muted); opacity:1; letter-spacing:2px; overflow-wrap:anywhere; }
.page-hero-heading { display:flex; align-items:center; gap:13px; }
.page-hero-icon { display:grid; place-items:center; width:49px; height:49px; flex:none; border:1px solid var(--premium-hero-line); border-radius:14px; background:var(--premium-hero-soft); }
.page-hero-icon .icon { width:25px; height:25px; }
.page-hero-heading>div { min-width:0; }
.page-hero h1 { margin:0; font-size:25px; color:var(--premium-on-hero); overflow-wrap:anywhere; }
.page-hero p { margin:5px 0 0; color:var(--premium-hero-muted); font-size:12px; }
.page-hero-balance { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-top:23px; padding-top:18px; border-top:1px solid var(--premium-hero-line); }
.page-hero-balance span { color:var(--premium-hero-muted); font-size:12px; }
.page-hero-balance strong { font-size:25px; line-height:1.3; overflow-wrap:anywhere; }
.round-tool { border-color:var(--premium-hero-line); background:var(--premium-hero-soft); color:var(--premium-on-hero); }
.card { padding:21px; border-radius:16px; box-shadow:var(--shadow); }
.card:hover { transform:none; box-shadow:var(--shadow); }
.card h2,.card h3 { font-size:18px; margin:0 0 16px; }
.section-heading { display:flex; align-items:center; gap:10px; }
.section-heading .icon { color:var(--strong); width:21px; height:21px; }
.section-heading>span { flex:1; min-width:0; }
.section-heading small { font-size:11px; font-weight:600; color:var(--muted); }
.form-note { margin-bottom:19px; font-size:12px; color:var(--muted); line-height:1.7; }
.form-section-label { margin:0 0 12px; font-size:12px; color:var(--muted); }
input,select,textarea { min-height:49px; background:var(--surface-alt); border-color:var(--line); border-radius:10px; margin:7px 0 17px; }
input:focus,select:focus,textarea:focus,.form-group input:focus { border-color:var(--strong); box-shadow:0 0 0 3px var(--premium-focus); }
label,.form-group label { font-size:12px; letter-spacing:0; text-transform:none; }
.btn { min-height:48px; border-radius:11px; white-space:normal; background:var(--member-blue); border-color:var(--member-blue); color:var(--premium-on-hero); }
.btn:hover { transform:none; filter:brightness(1.06); }
.btn.gray { background:var(--surface-alt); border-color:var(--line); color:var(--foreground); }
.btn.green,.btn-deposit { background:var(--member-green); border-color:var(--member-green); color:var(--member-navy); }
.btn.red { background:var(--danger); border-color:var(--danger); color:var(--inverse); }
.btn.sm { min-height:35px; padding:7px 11px; border-radius:8px; }
.btn-claim { background:var(--member-blue); }
.btn:disabled { opacity:.45; cursor:not-allowed; filter:none; }
.btn .icon { width:19px; height:19px; }
.method { align-items:flex-start; padding:14px; border-radius:12px; margin-bottom:11px; background:var(--surface); }
.method input[type=radio] { flex:none; margin:6px 0 0; }
.method>div { flex:1; min-width:0; }
.method b { display:block; font-size:14px; }
.method-number { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:4px 0; font-size:13px; }
.method-number>span { overflow-wrap:anywhere; }
.method .muted { font-size:11px; font-weight:400; }
.method:hover,.method:has(input:checked) { border-color:var(--strong); background:var(--surface-alt); box-shadow:0 0 0 1px var(--strong); }
.method-list { margin-bottom:22px; }
.copy-btn { min-height:30px; padding:4px 9px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--strong); font-size:11px; }
.copy-btn:hover { background:var(--surface-hover); }
.copy-btn.copied { border-color:var(--success); color:var(--success); background:var(--premium-success-soft); }
.transaction-summary { display:flex; justify-content:space-between; gap:12px; padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--line); font-size:12px; color:var(--muted); }
.transaction-summary strong { color:var(--foreground); }
.history-row { display:flex; align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid var(--line); }
.history-row:last-child { border-bottom:0; padding-bottom:0; }
.history-icon { display:grid; place-items:center; width:39px; height:39px; flex:none; background:var(--surface-alt); border-radius:11px; color:var(--strong); }
.history-row>div { flex:1; min-width:0; }
.history-row strong { display:block; font-size:15px; overflow-wrap:anywhere; }
.history-row .muted { font-size:10px; overflow-wrap:anywhere; margin-top:3px; }
.history-method { font-size:11px; color:var(--muted); font-weight:500; }
.pill { border:0; border-radius:7px; padding:5px 8px; font-size:10px; white-space:nowrap; flex:none; }
.pill.pending { background:var(--premium-warning-soft); color:var(--warning); }
.pill.approved { background:var(--premium-success-soft); color:var(--success); }
.pill.rejected { background:var(--premium-danger-soft); color:var(--danger); opacity:1; }
.empty-state { padding:26px 12px; text-align:center; color:var(--muted); font-size:12px; }
.empty-state>.icon { width:32px; height:32px; margin:0 auto 12px; color:var(--strong); }
.empty-state p { margin:0; }
.alert { background:var(--surface); border-radius:10px; font-size:13px; }
.bal { background:var(--premium-gradient); color:var(--premium-on-hero); border:0; }
.bal h2 { color:var(--premium-on-hero); font-size:30px; }
.vip-status { border:1px solid var(--line); background:var(--surface); }
.vip-badge { background:var(--premium-gold-soft); color:var(--warning); border-radius:8px; padding:7px 12px; }
.vip-info { display:grid; gap:0; }
.vip-info p { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:11px 0; border-bottom:1px solid var(--line); font-size:12px; }
.vip-info p:last-child { border:0; }
.vip-claim-form .btn { width:100%; }
.claim-wait { background:var(--premium-success-soft); color:var(--success); border-radius:9px; }
.no-vip { text-align:left; font-size:13px; padding:0; }
.no-vip p { margin-bottom:0; }
.vip-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.vip-card { position:relative; padding:19px 14px 14px; border-radius:14px; box-shadow:var(--shadow); text-align:left; min-height:268px; }
.vip-card:hover { transform:none; border-color:var(--member-gold); box-shadow:var(--shadow-lg); }
.vip-plan-icon { display:grid; place-items:center; width:38px; height:38px; margin-bottom:15px; border-radius:11px; background:var(--premium-gold-soft); color:var(--warning); }
.vip-level { color:var(--muted); font-size:12px; }
.vip-price { font-size:23px; overflow-wrap:anywhere; line-height:1.3; margin-bottom:12px; }
.vip-details { text-align:left; margin-bottom:15px; font-size:11px; }
.vip-details p { display:flex; flex-direction:column; gap:1px; padding:6px 0; margin:0; }
.vip-details strong { font-size:12px; color:var(--foreground); }
.vip-card form { margin-top:auto; }
.profile-summary .profile-info p { display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px; padding:10px 0; margin:0; border-bottom:1px solid var(--line); font-size:12px; overflow-wrap:anywhere; }
.profile-summary .profile-info p:last-child { border-bottom:0; }
.profile-summary .profile-info strong { color:var(--muted); font-weight:500; }
.stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.stat-grid>div { background:var(--surface-alt); padding:14px; border-radius:12px; min-width:0; }
.stat-grid p { margin:0 0 7px; font-size:11px; }
.stat-grid strong { font-size:20px; overflow-wrap:anywhere; }
.referral-code-box { background:var(--surface-alt); padding:15px; border-radius:12px; margin:14px 0; }
.referral-code-box p { margin:0 0 7px; color:var(--muted); font-size:11px; }
.referral-code-box strong { font:700 19px/1.4 monospace; color:var(--strong); overflow-wrap:anywhere; }
.referral-link-row { display:flex; gap:8px; align-items:center; margin-bottom:14px; }
.referral-link-row input { margin:0; min-width:0; flex:1; font-size:11px; }
.referral-link-row .copy-btn { min-height:49px; flex:none; }
.ref-bonus { border-radius:11px; background:var(--surface-alt); font-size:12px; }
.ref-bonus.paid { border-color:var(--premium-success-soft); }
.chat { min-height:240px; max-height:48dvh; gap:15px; padding:15px 0; }
.msg { max-width:88%; border-radius:13px; padding:12px; overflow-wrap:anywhere; font-size:13px; }
.msg.user { background:var(--member-blue); color:var(--premium-on-hero); border-color:var(--member-blue); border-bottom-right-radius:4px; }
.msg.admin { background:var(--surface-alt); border-bottom-left-radius:4px; }
.message-time { font-size:10px; margin-top:6px; opacity:.7; }
.message-compose { border-top:1px solid var(--line); padding-top:16px; }
.message-compose textarea { min-height:90px; }
.nav,.page-home .nav { background:var(--surface); border-top-color:var(--line); box-shadow:0 -8px 24px oklch(.27 .06 260 / .06); }
.nav a,.page-home .nav a { color:var(--muted); border:0; border-radius:0; }
.nav a:hover,.nav a.on,.page-home .nav a:hover,.page-home .nav a.on { background:transparent; color:var(--strong); }
.nav a.on:before { content:""; position:absolute; top:-8px; width:24px; height:3px; border-radius:3px; background:var(--strong); }
.nav a[href="vip.php"] .nav-icon { color:var(--warning); }
.page-home .member-panel { background:var(--premium-gradient); color:var(--premium-on-hero); }
.page-home .member-panel:before { display:none; }
.member-name-line h1,.member-shortcuts a,.member-details>p { color:var(--premium-on-hero); }
.member-details>p { color:var(--premium-hero-muted); }
.member-avatar { border-color:var(--premium-on-hero); background:var(--surface); color:var(--member-navy); }
.member-primary-btn.deposit { background:var(--member-green); color:var(--member-navy); }
.member-primary-btn.withdraw { background:var(--surface); color:var(--foreground); }
.member-tier { color:var(--member-navy); box-shadow:none; }
.member-studio { letter-spacing:2px; }
.shortcut-icon,.uid-copy { background:var(--premium-hero-soft); color:var(--premium-on-hero); }
.vip-modern-icon { background:var(--premium-gold-soft); color:var(--warning); }
.modern-notice { background:var(--surface-alt); border-color:var(--line); }
.modern-notice p { color:var(--strong); }
.modern-notice>span { background:var(--member-blue); color:var(--premium-on-hero); }
.asset-heading .eyebrow { letter-spacing:0; }
.admin-header { background:var(--premium-gradient); color:var(--premium-on-hero); min-height:92px; border-bottom:0; }
.admin-brand strong { color:var(--premium-on-hero); }
.admin-brand small { color:var(--premium-hero-muted); letter-spacing:0; }
.admin-header .brand-mark { background:var(--premium-hero-soft); border:1px solid var(--premium-hero-line); }
.admin-header .theme-toggle { background:var(--premium-hero-soft); border-color:var(--premium-hero-line); color:var(--premium-on-hero); }
.anav { gap:10px; margin-top:22px; }
.anav a { border-radius:12px; min-height:65px; box-shadow:none; background:var(--surface); font-size:12px; }
.anav a:hover { transform:none; background:var(--surface-alt); }
.anav a.on { background:var(--member-blue); color:var(--premium-on-hero); border-color:var(--member-blue); box-shadow:none; transform:none; }
.anav .admin-nav-icon { color:var(--strong); }
.anav a.on .admin-nav-icon { color:var(--premium-on-hero); }
.admin-wrap>h2 { display:flex; align-items:center; gap:10px; font-size:24px; margin-bottom:23px; }
.admin-wrap>h2 .icon { color:var(--strong); }
.admin-stats .card { min-height:126px; background:var(--surface); border:1px solid var(--line); padding:20px; }
.admin-stats .card h2 { color:var(--strong); font-size:29px; margin:12px 0 0; overflow-wrap:anywhere; }
.admin-stats .card:first-child { background:var(--premium-gradient); border:0; color:var(--premium-on-hero); }
.admin-stats .card:first-child h2,.admin-stats .card:first-child .muted { color:var(--premium-on-hero); }
.admin-stats .card:nth-child(2) { border-top:3px solid var(--member-green); }
.admin-stats .card:nth-child(3) { border-top:3px solid var(--member-gold); }
.admin-wrap th { background:var(--surface-alt); letter-spacing:0; padding:13px 11px; }
.admin-wrap td { padding:15px 11px; font-size:12px; }
.admin-wrap td .btn { margin:2px; }
.admin-wrap td input { min-width:110px; }
.admin-wrap .scroll { border:1px solid var(--line); border-radius:10px; }
.admin-wrap .scroll .scroll { border:0; }
.admin-wrap .thread-link { padding:12px; margin:4px 0; border:1px solid transparent; }
.admin-wrap .thread-link.selected { border-color:var(--line); color:var(--strong); }
.admin-auth { padding:32px 0; }
.admin-auth .wrap { max-width:460px; }
.admin-auth .auth-theme { display:flex; justify-content:flex-end; }
.admin-auth .card { margin-top:26px; }
.admin-auth-heading { display:flex; gap:13px; align-items:center; margin-bottom:24px; }
.admin-auth-heading .page-hero-icon { background:var(--premium-gradient); color:var(--premium-on-hero); }
.admin-auth-heading h2 { margin:0; }
.landing-intro { background:var(--premium-gradient); border:0; color:var(--premium-on-hero); padding:62px 0 48px; }
.landing-intro h1 { color:var(--premium-on-hero); }
.landing-kicker,.landing-intro p { color:var(--premium-hero-muted); }
.landing-intro .landing-btn:not(.secondary) { background:var(--member-green); border-color:var(--member-green); color:var(--member-navy); }
.landing-intro .landing-btn.secondary { background:var(--premium-hero-soft); border-color:var(--premium-hero-line); color:var(--premium-on-hero); }
.landing-btn { border-radius:10px; }
.landing-dialog { border-radius:16px; }
.landing-dialog h2 { font-size:23px; }
.landing-feature-icon { border-radius:12px; }
.landing-feature:first-child .landing-feature-icon { background:var(--premium-success-soft); color:var(--success); }
.landing-feature:nth-child(2) .landing-feature-icon { background:var(--premium-gold-soft); color:var(--warning); }
.landing-features { gap:24px; }
.landing-footer { padding-bottom:32px; }
@media(min-width:621px) {
 .user-page:not(.page-home)>.wrap { padding-top:24px; }
 .user-page:not(.page-home) .page-hero { margin:0 14px; border-radius:20px; }
}
@media(max-width:760px) {
 .admin-header { min-height:78px; }
 .anav { gap:7px; }
 .anav a { min-height:72px; font-size:10px; padding:8px 4px; gap:7px; }
 .admin-wrap { padding-top:23px; }
 .admin-wrap .card { padding:15px; }
 .admin-header .theme-label { display:none; }
 .admin-header .theme-toggle { width:38px; }
 .admin-wrap>.row { flex-wrap:wrap; }
}
@media(max-width:420px) {
 .page-hero { padding:20px 17px 23px; }
 .page-hero h1 { font-size:23px; }
 .page-hero-balance strong { font-size:23px; }
 .card { padding:18px; }
 .user-page:not(.page-home)>.wrap>.card,.user-page:not(.page-home)>.wrap>form.card { margin:14px 10px; }
 .user-page:not(.page-home)>.wrap>.vip-grid { margin-inline:10px; }
 .vip-card { padding:15px 12px 12px; }
 .vip-price { font-size:21px; }
 .nav a { font-size:10px; }
 .history-row { gap:9px; }
 .history-icon { width:34px; height:34px; }
 .history-row strong { font-size:13px; }
 .landing-intro { padding:40px 0 35px; }
 .landing-intro .landing-actions { flex-wrap:wrap; }
 .landing-brand { max-width:48%; }
 .stat-grid strong { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; } }

.admin-dashboard>.section-heading { font-size:24px; margin-bottom:23px; }
.admin-dashboard>.section-heading .icon { color:var(--strong); }
.admin-recent { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:12px; }
.admin-recent>div { min-width:0; }
.admin-quick-actions { margin-top:24px; }
.admin-action-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.admin-action-grid .btn { flex-direction:column; font-size:12px; min-height:85px; }
@media(max-width:760px) {
 .admin-stats .card h2 { font-size:21px; }
 .admin-recent { grid-template-columns:1fr; gap:24px; }
 .admin-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Processing spinner — always runs, even with reduced motion */
.pill.processing { display:inline-flex!important; align-items:center; gap:6px; }
.pill .spinner { display:inline-block!important; flex:none; width:11px; height:11px; border:2px solid currentColor; border-top-color:transparent!important; border-radius:50%; animation:ivas-spin .8s linear infinite!important; -webkit-animation:ivas-spin .8s linear infinite!important; }
@keyframes ivas-spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@-webkit-keyframes ivas-spin { from { -webkit-transform:rotate(0deg); } to { -webkit-transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .pill .spinner { animation:ivas-spin .8s linear infinite!important; animation-duration:.8s!important; } }
