/* VELUA member design system · source: domestic mobile/styles.css (v9.6.1).
   Used by BOTH /mobile and /web. Member scope intentionally excludes /admin.
   Put shared visual changes HERE; entry CSS may only define feature layouts. */
.velua-member {
  --v-bg: #030817;
  --v-surface: #0b1732;
  --v-ink: #f7f9ff;
  --v-mid: #aebdde;
  --v-muted: #7f91b8;
  --v-blue: #2f6eff;
  --v-blue-light: #68a0ff;
  --v-line: rgba(145,174,236,.18);
  --v-good: #2ee5a8;
  --v-bad: #ff6884;
  --v-warn: #ffbe59;
  --v-font: Inter, Pretendard, "Noto Sans KR", system-ui, sans-serif;
  --v-radius-input: 16px;
  --v-radius-card: 20px;
  --v-radius-hero: 28px;
  --v-input-height: 56px;
  --v-page-width: 560px;
  --v-auth-width: 520px;
  --v-shadow: 0 22px 58px rgba(0,0,0,.34);
  --v-button: linear-gradient(145deg,#3377ff,#3159e7);
  --v-selected: linear-gradient(145deg,#2f6eff,#5b77ff);
  --v-panel: linear-gradient(145deg,rgba(14,32,69,.97),rgba(5,17,40,.98));
  --v-wallet: radial-gradient(circle at 88% 0,rgba(85,218,253,.15),transparent 30%),linear-gradient(140deg,#07142f,#0d3489 58%,#1b67ff);
  --v-page: radial-gradient(circle at 50% 0,rgba(47,110,255,.2),transparent 22%),linear-gradient(180deg,#020611 0%,#071126 52%,#071a3a 100%);
  --v-auth: radial-gradient(650px 450px at 90% 0,rgba(63,103,255,.65),transparent 70%),linear-gradient(160deg,#040a25 0%,#071547 52%,#1639b3 100%);
  /* Compatibility aliases: no API/DB or market-specific business coupling. */
  --bg:var(--v-bg); --paper:var(--v-surface); --surface:var(--v-surface);
  --sub:#0d265d; --navy:#07142f; --navy2:#0d265d;
  --ink:var(--v-ink); --mid:var(--v-mid); --dim:var(--v-muted); --muted:var(--v-muted);
  --blue:var(--v-blue); --blue2:var(--v-blue-light); --sky:#dce9ff; --cyan:#8fc2ff;
  --line:var(--v-line); --good:var(--v-good); --green:var(--v-good);
  --bad:var(--v-bad); --red:var(--v-bad); --amber:var(--v-warn);
  --radius:var(--v-radius-card); --shadow:var(--v-shadow);
  margin:0; min-height:100vh; color:var(--v-ink); color-scheme:dark;
  font-family:var(--v-font); font-size:16px; line-height:normal;
  background:radial-gradient(circle at 90% 0,rgba(47,110,255,.2),transparent 26%),linear-gradient(180deg,#020611,#071126 62%,#071a3a);
  -webkit-font-smoothing:antialiased;
}
.velua-member *, .velua-member *::before, .velua-member *::after { box-sizing:border-box; }
.velua-member :is(button,input,select,textarea) { font-family:var(--v-font); }
.velua-member button { cursor:pointer; }
.velua-member button:disabled {cursor:not-allowed;opacity:.46;filter:saturate(.6);transform:none;}
.velua-member :is(button,input,select,textarea,a):focus-visible {outline:2px solid var(--v-blue-light);outline-offset:3px;}
.velua-member .hidden {display:none!important;}
/* One auth shell and one login template are rendered by member-ui.js. */
.velua-member .auth-shell {position:relative;min-height:100vh;overflow:hidden;width:100%;max-width:var(--v-auth-width);margin:0 auto;padding:calc(22px + env(safe-area-inset-top)) 20px calc(30px + env(safe-area-inset-bottom));background:var(--v-auth);color:#fff;}
.velua-member .auth-ambient {position:absolute;border-radius:50%;pointer-events:none;filter:blur(1px);opacity:.32;}
.velua-member .ambient-a {width:340px;height:340px;right:-180px;top:-190px;background:rgba(47,110,255,.19);}
.velua-member .ambient-b {width:240px;height:240px;left:-180px;top:42%;background:rgba(85,218,253,.07);}
.velua-member :is(.auth-brand,.brand-mini) {display:flex;align-items:center;flex-direction:row;justify-content:normal;gap:11px;position:relative;z-index:2;padding:0;margin:0;background:none;color:#fff;}
.velua-member :is(.brand-logo,.velua-logo) {display:block;width:auto;height:30px;object-fit:contain;filter:brightness(0) invert(1);flex:none;}
.velua-member .auth-brand .brand-logo {height:34px;}
.velua-member :is(.brand-mini .brand-logo,.member-header .velua-logo) {height:26px;}
.velua-member .auth-copy {position:relative;z-index:2;margin:38px 0 22px;width:100%;max-width:none;}
.velua-member :is(.eyebrow,.section-kicker) {color:var(--v-blue-light);font-size:9px;font-weight:900;letter-spacing:.16em;}
.velua-member .auth-copy h1 {display:flex;flex-direction:column;align-items:flex-start;margin:10px 0;width:100%;text-align:left;font-size:31px;line-height:1.2;letter-spacing:-1.2px;font-weight:700;color:#fff;}
.velua-member .auth-copy h1 span {display:block;width:100%;}
.velua-member .auth-copy .hero-copy-accent {margin-top:2px;color:#8fc2ff;}
.velua-member .auth-card {position:relative;z-index:2;width:100%;padding:18px;border-radius:27px;background:var(--v-panel);border:1px solid rgba(139,173,236,.22);box-shadow:0 30px 70px rgba(0,0,0,.4);}
.velua-member .auth-card :is(.auth-form,.form) {display:grid;gap:16px;margin:17px 0 0;padding:0;width:100%;max-width:none;border:0;background:none;box-shadow:none;border-radius:0;}
.velua-member .auth-form.busy {opacity:.68;}
.velua-member :is(.login-region,.segmented,.filter-tabs,.reward-tabs,.relation-tabs) {display:flex;gap:4px;padding:5px;border-radius:14px;background:rgba(2,8,22,.72);border:1px solid var(--v-line);}
.velua-member :is(.login-region,.segmented,.filter-tabs,.reward-tabs,.relation-tabs) button {display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-height:42px;padding:0 10px;margin:0;border:0;border-radius:11px;background:transparent;color:var(--v-muted);font-size:12px;font-weight:900;line-height:normal;box-shadow:none;}
.velua-member :is(.login-region,.segmented,.filter-tabs,.reward-tabs,.relation-tabs) :is(button.active,button.on) {color:#fff;background:var(--v-selected);box-shadow:0 9px 18px rgba(47,110,255,.28);}
.velua-member :is(.auth-form,.panel-form) label {display:grid;gap:8px;color:#dce8ff;font-size:12px;font-weight:800;line-height:1.35;}
.velua-member :is(.auth-form,.panel-form) input:not([type=checkbox]):not([type=hidden]),
.velua-member .field :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) {width:100%;min-height:var(--v-input-height);border-radius:var(--v-radius-input);border:1px solid rgba(139,173,236,.2);background:rgba(3,11,27,.82);color:#fff;padding:0 15px;font-size:16px;font-weight:400;line-height:1.35;outline:none;box-shadow:inset 0 1px rgba(255,255,255,.025);}
.velua-member :is(.auth-form,.panel-form) input:not([type=checkbox]):not([type=hidden]) {height:var(--v-input-height);margin-top:7px;font-weight:800;}
.velua-member .field {display:grid;gap:8px;min-width:0;}
.velua-member .field label {display:block;margin:0;color:#dce8ff;font-size:12px;font-weight:800;line-height:1.35;}
.velua-member .field :is(input,select,textarea) {margin:0;}
.velua-member .field textarea {padding:14px 15px;min-height:100px;resize:vertical;}
.velua-member .field small {color:var(--v-muted);font-size:10.5px;line-height:1.55;}
.velua-member :is(.auth-form,.panel-form,.field) :is(input,textarea,select):focus {border-color:var(--v-blue-light);box-shadow:0 0 0 3px rgba(47,110,255,.12);}
.velua-member .form-note {margin:0;color:var(--v-muted);font-size:10.5px;line-height:1.55;font-weight:400;}
.velua-member .region-note {margin-top:-8px;text-align:center;}
.velua-member :is(.primary,.secondary,.danger-button,.btn) {min-height:54px;border-radius:16px;border:1px solid var(--v-line);font-size:13px;font-weight:900;background:rgba(15,35,76,.88);color:#dce8ff;padding:0 18px;line-height:normal;}
.velua-member :is(.primary,.btn.primary) {border:0;background:var(--v-button);color:#fff;box-shadow:0 14px 26px rgba(47,110,255,.28);}
.velua-member .auth-form .primary.large {min-height:56px;}
.velua-member :is(.danger-button,.btn.danger) {background:rgba(255,104,132,.12);color:#ff8ba0;border-color:rgba(255,104,132,.24);}
.velua-member .btn {display:inline-flex;justify-content:center;align-items:center;gap:8px;}
.velua-member .btn.sm {min-height:36px;padding:7px 11px;font-size:12px;}
.velua-member :is(.btn.text,.text-link-button) {min-height:30px;padding:2px 0;border:0;background:transparent;box-shadow:none;color:var(--v-blue-light);}
.velua-member .text-link-button {font-size:11px;justify-self:center;}
.velua-member .text-link-button strong {color:white;}
.velua-member .auth-links {display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;}
.velua-member .auth-links button {border:0;background:transparent;color:var(--v-blue-light);font-size:11px;font-weight:800;min-height:36px;}
.velua-member .auth-card .form-error:empty {display:none;}
.velua-member .auth-card .title {font-size:22px;font-weight:800;letter-spacing:-.04em;line-height:1.4;}
.velua-member .auth-card .lead {margin:8px 0 18px;color:var(--v-muted);font-size:12px;line-height:1.6;}
.velua-member .password-field {position:relative;}
.velua-member .password-field>input {padding-right:54px!important;}
.velua-member .password-reveal {position:absolute;right:6px;bottom:6px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--v-muted);font-size:15px;display:grid;place-items:center;box-shadow:none;}
.velua-member .field.password-field>input {padding-right:54px;}
/* Page frame. Same 560px wallet layout on phone and desktop; wide admin unaffected. */
.velua-member :is(.app-shell,.member-shell) {max-width:var(--v-page-width);width:100%;margin:0 auto;min-height:100vh;padding-bottom:calc(100px + env(safe-area-inset-bottom));background:var(--v-page);color:var(--v-ink);position:relative;}
.velua-member :is(.mobile-header,.member-header) {position:sticky;z-index:90;top:0;height:auto;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 18px 12px;background:linear-gradient(180deg,rgba(3,8,23,.98),rgba(3,8,23,.86),transparent);backdrop-filter:blur(14px);}
.velua-member :is(.icon-button,.profile-button,.member-avatar,.refresh-button,.eye) {width:42px;height:42px;min-height:42px;border-radius:14px;border:1px solid var(--v-line);background:rgba(13,31,66,.88);color:white;font-weight:900;padding:0;display:grid;place-items:center;}
.velua-member :is(.profile-button,.member-avatar) {background:linear-gradient(145deg,#2f6eff,#6555eb);}
.velua-member :is(.app-shell>main,.main.member-main) {padding:0 8px;max-width:none;}
.velua-member .main.member-main {padding:18px 26px 0;}
.velua-member :is(.welcome h1,.welcome h2,.screen-title h2,.page-head h1) {font-size:28px;line-height:1.3;letter-spacing:-1px;font-weight:700;margin:6px 0 0;}
.velua-member .welcome {display:block;margin:15px 0;}
.velua-member :is(.screen-title p,.page-head .lead) {font-size:12px;line-height:1.65;color:var(--v-muted);margin:9px 0;}
.velua-member :is(.panel,.stat) {background:rgba(10,25,55,.9);border:1px solid var(--v-line);border-radius:var(--v-radius-card);box-shadow:none;}
.velua-member :is(.balance-card,.wallet-total,.reward-hero,.hero.point-card,.token-card) {position:relative;padding:22px;border-radius:var(--v-radius-hero);background:var(--v-wallet);border:1px solid rgba(145,183,255,.25);box-shadow:0 28px 58px rgba(0,0,0,.38);overflow:hidden;color:var(--v-ink);}
.velua-member :is(.balance-card>strong,.wallet-total>strong,.reward-hero>strong,.point-card .amount) {display:block;font-size:34px;font-weight:700;letter-spacing:-1.2px;margin:18px 0 12px;line-height:1.2;white-space:nowrap;}
.velua-member .balance-top {display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#b7c9e9;}
.velua-member .balance-meta {display:flex;flex-wrap:wrap;gap:7px;}
.velua-member .balance-meta span {padding:5px 8px;border-radius:99px;background:rgba(255,255,255,.08);font-size:8px;color:#d9e7ff;}
.velua-member .balance-wave {width:100%;height:65px;margin-top:10px;overflow:visible;}
.velua-member .balance-wave path {fill:none;stroke:rgba(143,204,255,.72);stroke-width:2;}
.velua-member .balance-wave .glow {stroke:rgba(89,130,255,.28);stroke-width:8;filter:blur(5px);}
.velua-member :is(.quick-grid,.quick-actions) {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0;padding:0;}
.velua-member :is(.quick-grid,.quick-actions)>button {border:0;background:transparent;color:#dce8ff;font-size:10.5px;line-height:1.3;font-weight:800;min-height:78px;padding:0;display:flex;flex-direction:column;align-items:center;gap:8px;}
.velua-member :is(.quick-grid i,.icon-well) {width:50px;height:50px;min-height:50px;margin:0 auto;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(92,145,255,.42),rgba(7,21,49,.92));border:1px solid rgba(116,163,255,.36);color:var(--v-blue-light);font-size:18px;font-style:normal;box-shadow:0 12px 22px rgba(0,0,0,.24);}
.velua-member :is(.bottom-nav,.member-bottom-nav) {position:fixed;z-index:100;left:50%;right:auto;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));width:min(532px,calc(100% - 24px));height:76px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 8px;border-radius:25px;background:linear-gradient(145deg,rgba(14,31,68,.98),rgba(4,13,32,.99));border:1px solid rgba(151,184,245,.2);box-shadow:0 24px 48px rgba(0,0,0,.52);backdrop-filter:blur(18px);}
.velua-member :is(.bottom-nav,.member-bottom-nav)>button {min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:#7585a9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;font-weight:900;}
.velua-member :is(.bottom-nav,.member-bottom-nav) :is(i,.tab-icon) {width:37px;height:32px;margin:0;border-radius:12px;display:grid;place-items:center;font-style:normal;font-size:17px;}
.velua-member :is(.bottom-nav,.member-bottom-nav)>button.active {color:white;}
.velua-member :is(.bottom-nav,.member-bottom-nav)>button.active :is(i,.tab-icon) {background:linear-gradient(145deg,#75b8ff,#356cff 53%,#4d48ef);box-shadow:0 8px 18px rgba(47,110,255,.36);}
.velua-member :is(.bottom-nav,.member-bottom-nav) .nav-main :is(i,.tab-icon) {width:49px;height:49px;border-radius:17px;background:linear-gradient(145deg,#2f6eff,#64c7ff);color:white;box-shadow:0 12px 25px rgba(47,110,255,.48);}
.velua-member .modal {background:var(--v-surface);border:1px solid var(--v-line);border-radius:var(--v-radius-card);}
.velua-member .modal-head {background:var(--v-surface);}
.velua-member :is(.note,.notice-card,.security-note) {background:rgba(96,146,255,.08);border:1px solid var(--v-line);border-radius:14px;color:var(--v-mid);font-size:12px;line-height:1.6;}
.velua-member :is(.badge,.status-chip) {border-radius:99px;font-size:10px;}
.velua-member .badge.good {background:rgba(46,229,168,.1);color:var(--v-good);}
.velua-member .badge.warn {background:rgba(255,190,89,.1);color:var(--v-warn);}
.velua-member .badge.bad {background:rgba(255,104,132,.1);color:var(--v-bad);}
.velua-member .auth-card .checkline {font-size:12px;line-height:1.6;}
.velua-member .auth-card input[type=checkbox] {width:22px;height:22px;min-height:0;margin:0;accent-color:var(--v-blue);}
@media(min-width:700px) {
 .velua-member :is(.app-shell,.member-shell) {margin:22px auto;border-radius:30px;overflow:hidden;min-height:calc(100vh - 44px);}
}
@media(max-width:380px) {
 .velua-member .auth-shell {padding-left:14px;padding-right:14px;}
 .velua-member .auth-copy h1 {font-size:27px;}
 .velua-member {--v-input-height:54px;}
 .velua-member .auth-form .primary.large {min-height:54px;}
 .velua-member :is(.bottom-nav,.member-bottom-nav) {width:calc(100% - 12px);}
}
@media(prefers-reduced-motion:reduce) {
 .velua-member *, .velua-member *::before, .velua-member *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
