/* ============================================================
   註冊（register.html）與 Onboarding（onboarding.html）
   版面沿用 login.css 的左右分欄；以下是註冊專屬元件
   ============================================================ */

/* ---------- 左側：數據與來源上下文 ---------- */
.rg-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 520px; margin-top: clamp(22px, 3vh, 34px); padding-top: 18px; border-top: 1px dashed rgba(247, 247, 247, .18); }
.rg-stats dt { font-size: 12px; color: rgba(247, 247, 247, .55); }
.rg-stats dd { margin-top: 4px; font-size: clamp(18px, 1.8vw, 24px); color: var(--c-accent); }
.rg-ctx { display: flex; flex-direction: column; gap: 4px; max-width: 420px; margin-top: 22px; padding: 14px 16px; border: 1px dashed rgba(210, 160, 110, .5); border-radius: 8px; background: rgba(20, 16, 16, .7); }
.rg-ctx__k { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; color: var(--c-accent); }
.rg-ctx b { font-size: 15px; font-weight: 500; }
.rg-ctx span:last-child { font-size: 12.5px; color: rgba(247, 247, 247, .6); }
@media (max-width: 900px) { .rg-visual { min-height: 0; padding-top: 72px; } .rg-stats { display: none; } }

/* ---------- 右側面板 ---------- */
.rg-panel { align-items: flex-start; padding-top: clamp(40px, 7vh, 88px); }
.rg-form { width: min(100%, 440px); }
.rg-form .lg-brand { margin-bottom: clamp(24px, 4vh, 40px); }
.rg-title-s { font-size: clamp(22px, 2.1vw, 27px); }
.lg-sub b { font-weight: 500; color: var(--c-text); }
.lg-sub .rg-link { margin-left: 10px; }

.rg-methods { display: flex; flex-direction: column; margin-top: clamp(22px, 3.4vh, 32px); }
.rg-methods .lg-or { margin: 22px 0 18px; }
.rg-method { display: flex; flex-direction: column; gap: 10px; padding: 0; }
.page-register .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rg-k { font-family: var(--mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; color: rgba(247, 247, 247, .5); }
.rg-method.is-main .rg-k { color: var(--c-accent); }
.rg-net { text-align: center; font-size: 10.5px; color: rgba(247, 247, 247, .4); }

/* 錢包清單：已檢測到的置頂 */
.rg-wallets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rg-wallet { position: relative; display: flex; }
.rg-wallet > button {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 11px 12px;
  border: 1px dashed var(--line-on-dark); border-radius: 8px; text-align: left; font-size: 13px; color: rgba(247, 247, 247, .82);
  transition: border-color .25s, background-color .25s, color .25s;
}
.rg-wallet > button:hover, .rg-wallet > button:focus-visible { border-color: rgba(210, 160, 110, .6); background: rgba(210, 160, 110, .06); color: var(--c-text); }
.rg-wallet.is-installed > button { border-style: solid; border-color: rgba(210, 160, 110, .32); }
.rg-wallet svg { width: 22px; height: 22px; flex: none; }
.rg-wallet__name { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; white-space: nowrap; }
.rg-wallet__tag { flex: none; padding: 2px 6px; border-radius: 3px; background: rgba(157, 185, 140, .14); color: #A9C497; font-family: var(--mono); font-size: 9.5px; font-weight: 700; letter-spacing: .04em; }
.rg-wallet__tag.is-mute { background: rgba(247, 247, 247, .06); color: rgba(247, 247, 247, .55); }
.rg-wallet:not(.is-installed) > button { color: rgba(247, 247, 247, .55); }
.rg-wc svg { width: 20px; height: 20px; }
@media (max-width: 420px) { .rg-wallets { grid-template-columns: minmax(0, 1fr); } }

.rg-new { font-size: 13px; color: rgba(247, 247, 247, .65); }
.rg-new summary { cursor: pointer; width: fit-content; margin: 0 auto; font-size: 12.5px; color: rgba(247, 247, 247, .6); border-bottom: 1px dashed rgba(247, 247, 247, .3); list-style: none; }
.rg-new summary::-webkit-details-marker { display: none; }
.rg-new[open] summary { color: var(--c-accent); margin-bottom: 10px; }
.rg-new p { line-height: 1.8; padding: 12px 14px; border-radius: 8px; background: rgba(247, 247, 247, .04); }
.rg-new .rg-link { margin-top: 8px; }

.rg-link { font-size: 13px; color: var(--c-accent); border-bottom: 1px dashed rgba(210, 160, 110, .5); transition: color .2s; }
.rg-link:hover { color: #E6BC8E; }
.rg-link.is-mute { color: rgba(247, 247, 247, .45); border-bottom-color: transparent; cursor: default; }
.rg-link.is-hot { padding: 8px 14px; border: 1px solid var(--c-accent); border-radius: 999px; }

.rg-invite { margin-top: 18px; padding: 12px 14px; border: 1px solid rgba(210, 160, 110, .45); border-radius: 8px; background: rgba(210, 160, 110, .08); font-size: 13px; line-height: 1.7; }
.rg-invite b { color: var(--c-accent); font-weight: 500; }
.rg-invite span { display: block; margin-top: 4px; font-size: 11px; color: rgba(247, 247, 247, .6); }
.rg-ref { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; margin-top: 18px; font-size: 12.5px; color: rgba(247, 247, 247, .6); }
.rg-ref .lg-input { padding: 10px 16px; font-family: var(--mono); letter-spacing: .1em; }

/* 協議：未勾選時抖動＋紅字，不彈窗 */
.rg-agree { display: flex; align-items: flex-start; gap: 10px; margin-top: 22px; font-size: 12.5px; line-height: 1.7; color: rgba(247, 247, 247, .7); cursor: pointer; }
.rg-agree input { width: 16px; height: 16px; margin-top: 3px; flex: none; accent-color: var(--c-accent); }
.rg-agree a { color: var(--c-accent); }
.rg-agree.is-shake { animation: rgShake .42s; }
.rg-agree.is-shake span { color: #E8B3A4; }
@keyframes rgShake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
.rg-agree__err { min-height: 18px; margin-top: 4px; padding-left: 26px; font-size: 12px; color: #D9A08C; }

/* ---------- 流程頭：上一步／步驟指示／關閉 ---------- */
.rg-flowhead { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px dashed var(--line-on-dark); }
.rg-back { font-size: 11.5px; color: rgba(247, 247, 247, .6); white-space: nowrap; }
.rg-back:hover { color: var(--c-accent); }
.rg-x { width: 30px; height: 30px; border-radius: 4px; font-size: 18px; color: rgba(247, 247, 247, .55); }
.rg-x:hover { color: var(--c-text); background: rgba(247, 247, 247, .06); }
.rg-steps { display: flex; justify-content: center; gap: 14px; font-size: 12px; color: rgba(247, 247, 247, .42); }
.rg-steps li { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.rg-steps b { font-family: var(--mono); font-size: 10.5px; }
.rg-steps .is-done { color: rgba(247, 247, 247, .7); }
.rg-steps .is-done b { color: #A9C497; }
.rg-steps .is-now { color: var(--c-text); }
.rg-steps .is-now b { color: var(--c-accent); }
@media (max-width: 480px) { .rg-steps { gap: 8px; } .rg-steps li:not(.is-now) { font-size: 0; } .rg-steps li:not(.is-now) b { font-size: 10.5px; } }

/* ---------- 郵箱登入態 ---------- */
.rg-note-ok { margin: 12px 0 18px; text-align: center; font-size: 13px; color: #A9C497; }
.rg-who { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 14px; font-size: 13px; }
.rg-pw { position: relative; }
.rg-pw .lg-input { padding-right: 50px; }
.rg-eye { position: absolute; right: 8px; top: 50%; width: 34px; height: 34px; transform: translateY(-50%); display: grid; place-items: center; border-radius: 50%; color: rgba(247, 247, 247, .55); }
.rg-eye svg { width: 16px; height: 16px; }
.rg-eye[aria-pressed="true"], .rg-eye:hover { color: var(--c-accent); }
.rg-hint { margin-top: 14px; text-align: center; font-size: 10.5px; color: rgba(247, 247, 247, .35); }

/* ---------- 驗證碼 ---------- */
.rg-otp { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-top: 26px; }
.rg-otp input {
  width: 100%; aspect-ratio: .86; padding: 0; text-align: center;
  border: 1px dashed var(--line-on-dark); border-radius: 8px; background: rgba(247, 247, 247, .03);
  color: var(--c-text); font-family: var(--mono); font-size: clamp(20px, 2.4vw, 26px); font-weight: 500;
  transition: border-color .2s;
}
.rg-otp input:focus { outline: none; border-style: solid; border-color: var(--c-accent); }
.rg-otp input:disabled { opacity: .4; }
.rg-otp.is-bad input { border-style: solid; border-color: #C08A7A; }
.rg-otp.is-bad { animation: rgShake .42s; }
.rg-otp__st { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 22px; margin-top: 12px; font-size: 12.5px; color: rgba(247, 247, 247, .6); }
.rg-otp__st.is-bad { color: #E8B3A4; }
.rg-otp__st .spin { width: 13px; height: 13px; border-color: rgba(247, 247, 247, .2); border-top-color: var(--c-accent); }
.rg-ok { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 6px; border-radius: 50%; background: #9DB98C; color: #16120F; vertical-align: -3px; }
.rg-ok svg { width: 9px; height: 9px; }
.rg-resend { display: flex; justify-content: center; margin-top: 12px; text-align: center; }
.rg-safe { margin-top: 14px; text-align: center; font-size: 11.5px; color: rgba(247, 247, 247, .42); }
.rg-safe a { color: var(--c-accent); }

/* ---------- 設置密碼 ---------- */
.rg-resume { margin: 12px 0 4px; padding: 10px 14px; border-radius: 8px; background: rgba(210, 160, 110, .08); font-size: 13px; line-height: 1.7; color: rgba(247, 247, 247, .8); }
.rg-resume .rg-link { margin-left: 8px; }
#rgPwForm { margin-top: 22px; }
.rg-meter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-top: 2px; }
.rg-meter i { height: 4px; border-radius: 2px; background: rgba(247, 247, 247, .1); transition: background-color .25s; }
.rg-meter[data-s="1"] i:nth-child(-n+1) { background: #D98C7A; }
.rg-meter[data-s="2"] i:nth-child(-n+2) { background: #E6B04E; }
.rg-meter[data-s="3"] i { background: #9DB98C; }
.rg-meter__t { font-family: var(--mono); font-size: 11px; color: rgba(247, 247, 247, .5); }
.rg-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; font-size: 12.5px; color: rgba(247, 247, 247, .5); }
.rg-rules li::before { content: '○'; margin-right: 7px; font-family: var(--mono); }
.rg-rules li.is-on { color: #A9C497; }
.rg-rules li.is-on::before { content: '✓'; }
.rg-rules li.is-bonus:not(.is-on) { color: rgba(247, 247, 247, .35); }
.rg-leak { min-height: 0; font-size: 12px; color: #E6C27A; }
.rg-leak:empty { display: none; }
.rg-warn { padding: 9px 12px; border: 1px dashed rgba(230, 194, 122, .5); border-radius: 6px; font-size: 12px; line-height: 1.7; color: #E6C27A; }

.rg-switch { display: flex; align-items: center; gap: 12px; margin: 6px 0 2px; font-size: 13px; color: rgba(247, 247, 247, .8); cursor: pointer; }
.rg-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rg-switch__box { position: relative; width: 36px; height: 20px; flex: none; border-radius: 999px; background: rgba(247, 247, 247, .14); transition: background-color .25s; }
.rg-switch__box::after { content: ''; position: absolute; left: 3px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: #F7F7F7; transition: transform .25s var(--ease-power4); }
.rg-switch input:checked + .rg-switch__box { background: var(--c-accent); }
.rg-switch input:checked + .rg-switch__box::after { transform: translateX(16px); }
.rg-switch input:focus-visible + .rg-switch__box { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.rg-switch small { display: block; font-size: 11.5px; color: rgba(247, 247, 247, .45); }

/* ---------- 錢包連接／簽名的等待態 ---------- */
.rg-wait { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 0 8px; text-align: center; }
.rg-wait b { font-size: 18px; font-weight: 400; }
.rg-wait p { font-size: 13px; line-height: 1.7; color: rgba(247, 247, 247, .6); }
.rg-wait__ops { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; margin-top: 10px; }
.rg-wait__ok { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--c-accent); color: #16120F; }
.rg-wait__ok svg { width: 22px; height: 22px; }
.rg-pulse { position: relative; display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: 8px; border: 1px dashed rgba(210, 160, 110, .6); border-radius: 18px; }
.rg-pulse svg { width: 36px; height: 36px; }
.rg-pulse::after { content: ''; position: absolute; inset: -8px; border: 1px solid rgba(210, 160, 110, .5); border-radius: 24px; animation: rgPulse 1.6s ease-out infinite; }
@keyframes rgPulse { from { opacity: .9; transform: scale(.92); } to { opacity: 0; transform: scale(1.18); } }
.rg-qr { display: block; padding: 8px; border-radius: 12px; background: #F7F7F7; }
.rg-qr svg { display: block; }
.rg-addr { padding: 4px 10px; border-radius: 999px; background: rgba(247, 247, 247, .06); }
.rg-netpill { margin-left: 8px; padding: 3px 8px; border-radius: 3px; background: rgba(140, 169, 191, .14); color: #9DB8CB; font-family: var(--mono); font-size: 11px; }
/* 等待錢包時左側品牌區半透明遮罩 */
.page-register.is-waiting .rg-visual::before { content: ''; position: absolute; inset: 0; z-index: 4; background: rgba(12, 9, 8, .55); transition: opacity .3s; }

/* 簽名前的白話說明 */
.rg-plain { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 14px; }
.rg-plain li { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px 12px 40px; position: relative; border: 1px dashed var(--line-on-dark); border-radius: 8px; font-size: 12.5px; color: rgba(247, 247, 247, .58); }
.rg-plain li::before { content: '✓'; position: absolute; left: 14px; top: 12px; font-family: var(--mono); color: var(--c-accent); }
.rg-plain b { font-size: 14px; font-weight: 500; color: var(--c-text); }
.rg-msg { margin-bottom: 8px; font-size: 12.5px; color: rgba(247, 247, 247, .6); }
.rg-msg summary { cursor: pointer; margin-bottom: 8px; }
.rg-msg pre { padding: 12px 14px; border-radius: 8px; background: #0F0C0B; border: 1px solid rgba(247, 247, 247, .08); font-family: var(--mono); font-size: 11.5px; line-height: 1.8; white-space: pre-wrap; word-break: break-all; color: rgba(247, 247, 247, .82); }
.rg-form > #rgView > .rg-link { display: block; width: fit-content; margin: 14px auto 0; }

/* ---------- 帳號已創建：全屏成功動效 ---------- */
.rg-success { position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; background: radial-gradient(40% 40% at 50% 46%, rgba(210, 160, 110, .18), transparent 70%), rgba(14, 11, 10, .96); opacity: 0; transition: opacity .25s; cursor: pointer; }
.rg-success.is-on { opacity: 1; }
.rg-success__mark { position: relative; display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: var(--c-accent); color: #16120F; transform: scale(.6); transition: transform .5s var(--ease-power4); }
.rg-success.is-on .rg-success__mark { transform: scale(1); }
.rg-success__mark svg { width: 40px; height: 40px; }
.rg-success__mark svg path { stroke-dasharray: 40; stroke-dashoffset: 40; transition: stroke-dashoffset .45s .2s; }
.rg-success.is-on .rg-success__mark svg path { stroke-dashoffset: 0; }
.rg-success__mark::after { content: ''; position: absolute; inset: -14px; border-radius: 50%; border: 1px solid rgba(210, 160, 110, .55); animation: rgPulse 1.2s ease-out infinite; }
.rg-success__t { margin-top: 8px; font-size: clamp(24px, 3vw, 32px); font-weight: 300; }
.rg-success__s { font-size: 14px; color: rgba(247, 247, 247, .62); }
.rg-success__skip { margin-top: 18px; font-size: 10.5px; color: rgba(247, 247, 247, .35); }
.rg-idcard { display: flex; align-items: center; gap: 14px; margin-top: 10px; padding: 14px 18px; border: 1px dashed rgba(210, 160, 110, .5); border-radius: 10px; text-align: left; background: rgba(27, 21, 20, .8); }
.rg-idcard__av svg { display: block; border-radius: 10px; }
.rg-idcard b { display: block; font-size: 15px; font-weight: 500; }
.rg-idcard small { display: block; margin-top: 2px; font-size: 12px; color: rgba(247, 247, 247, .55); }

@media (prefers-reduced-motion: reduce) {
  .rg-agree.is-shake, .rg-otp.is-bad, .rg-pulse::after, .rg-success__mark::after { animation: none; }
  .rg-success, .rg-success__mark, .rg-success__mark svg path { transition: none; }
}

/* ============================================================
   Onboarding（onboarding.html）
   ============================================================ */
.page-onboarding { min-height: 100svh; background: radial-gradient(60% 40% at 50% 0%, rgba(210, 160, 110, .1), transparent 70%), var(--c-bg); }
.ob-top { position: sticky; top: 0; z-index: 10; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px var(--pad); border-bottom: 1px dashed var(--line-on-dark); background: rgba(20, 16, 16, .9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.ob-brand { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; letter-spacing: .06em; }
.ob-brand svg { width: 26px; height: 26px; }
.ob-later { font-size: 13px; color: rgba(247, 247, 247, .65); border-bottom: 1px dashed rgba(247, 247, 247, .3); }
.ob-later:hover { color: var(--c-accent); }
@media (max-width: 560px) { .ob-brand span { display: none; } }

.ob { padding: clamp(32px, 6vh, 72px) var(--pad) 96px; }
.ob-body { max-width: 860px; margin: 0 auto; }
.ob-k { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; color: var(--c-accent); }
.ob-h1 { margin-top: 10px; font-size: clamp(26px, 3.4vw, 40px); font-weight: 300; line-height: 1.3; }
.ob-sub { margin-top: 12px; max-width: 60ch; font-size: 15px; line-height: 1.8; color: rgba(247, 247, 247, .65); }
.ob-pre { display: block; margin-top: 6px; font-size: 12.5px; color: var(--c-accent); }

.ob-cards { display: grid; gap: 12px; margin-top: 28px; }
.ob-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .ob-cards--3 { grid-template-columns: minmax(0, 1fr); } }
.ob-card {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; min-height: 132px; padding: 20px;
  border: 1px dashed var(--line-on-dark); border-radius: 10px; text-align: left; background: rgba(27, 21, 20, .6);
  font-size: 13px; line-height: 1.7; color: rgba(247, 247, 247, .6);
  transition: border-color .25s, background-color .25s, transform .3s var(--ease-power4);
}
.ob-card b { font-size: 17px; font-weight: 500; color: var(--c-text); }
.ob-card:hover { border-color: rgba(210, 160, 110, .55); transform: translateY(-2px); }
.ob-card[aria-checked="true"], .ob-card[aria-pressed="true"] { border-style: solid; border-color: var(--c-accent); background: rgba(210, 160, 110, .08); }
.ob-card__dot { position: absolute; right: 16px; top: 16px; width: 16px; height: 16px; border: 1px solid rgba(247, 247, 247, .35); border-radius: 50%; }
.ob-card[aria-checked="true"] .ob-card__dot { border: 5px solid var(--c-accent); }
.ob-track__tag { padding: 3px 9px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.ob-track--ai .ob-track__tag { background: rgba(210, 160, 110, .16); color: #D2A06E; }
.ob-track--web3 .ob-track__tag { background: rgba(140, 169, 191, .16); color: #8CA9BF; }
.ob-track--rwa .ob-track__tag { background: rgba(157, 185, 140, .16); color: #9DB98C; }
.ob-track.ob-track--web3[aria-pressed="true"], .ob-track.ob-track--web3[aria-checked="true"] { border-color: #8CA9BF; background: rgba(140, 169, 191, .08); }
.ob-track.ob-track--rwa[aria-pressed="true"], .ob-track.ob-track--rwa[aria-checked="true"] { border-color: #9DB98C; background: rgba(157, 185, 140, .08); }
.ob-track__n { margin-top: auto; font-size: 11px; color: rgba(247, 247, 247, .45); }
.ob-tcard { display: flex; flex-direction: column; gap: 8px; }
.ob-subs summary { cursor: pointer; width: fit-content; font-size: 12.5px; color: rgba(247, 247, 247, .55); list-style: none; border-bottom: 1px dashed rgba(247, 247, 247, .25); }
.ob-subs summary::-webkit-details-marker { display: none; }
.ob-subs[open] summary { margin-bottom: 8px; color: var(--c-text); }
.ob-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ob-chip { padding: 7px 13px; border: 1px dashed var(--line-on-dark); border-radius: 999px; font-size: 12.5px; color: rgba(247, 247, 247, .72); transition: border-color .2s, color .2s, background-color .2s; }
.ob-chip:hover { border-color: rgba(210, 160, 110, .55); }
.ob-chip[aria-pressed="true"], .ob-chip[aria-checked="true"] { border-style: solid; border-color: var(--c-accent); color: var(--c-accent); background: rgba(210, 160, 110, .08); }
.ob-label { margin: 26px 0 10px; font-family: var(--mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; color: rgba(247, 247, 247, .5); }

.ob-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: 36px; padding-top: 20px; border-top: 1px dashed var(--line-on-dark); }
.ob-foot > div { display: flex; align-items: center; gap: 18px; }
.ob-next { width: auto; min-width: 160px; padding: 14px 28px; }
.ob-next:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }
.rg-link.is-skip { color: rgba(247, 247, 247, .55); border-bottom-color: rgba(247, 247, 247, .25); }

.ob-profile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 28px; margin-top: 28px; }
.ob-av { grid-column: 1 / -1; display: flex; align-items: center; gap: 20px; }
.ob-av > span svg { display: block; border-radius: 20px; }
.ob-av > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.ob-av .lg-ghost { width: auto; padding: 9px 18px; font-size: 13px; }
.ob-av small, .ob-field small { font-size: 11.5px; color: rgba(247, 247, 247, .45); }
.ob-field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: rgba(247, 247, 247, .75); }
.ob-select { appearance: none; -webkit-appearance: none; color-scheme: dark; cursor: pointer; }
@media (max-width: 640px) { .ob-profile { grid-template-columns: minmax(0, 1fr); } }

.ob-done { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ob-done .ob-sub { margin-inline: auto; }
.ob-tasks { max-width: 620px; margin: 32px auto 0; padding: 22px; border: 1px solid rgba(247, 247, 247, .1); border-radius: 12px; background: rgba(247, 247, 247, .04); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ob-tasks ul { display: flex; flex-direction: column; margin-top: 12px; }
.ob-tasks li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 14px 0; border-top: 1px dashed var(--line-on-dark); }
.ob-tasks li > span { display: grid; place-items: center; width: 20px; height: 20px; margin-top: 2px; border: 1px solid rgba(247, 247, 247, .3); border-radius: 5px; font-size: 11px; color: #16120F; }
.ob-tasks li.is-done > span { border-color: #9DB98C; background: #9DB98C; }
.ob-tasks b { display: block; font-size: 14.5px; font-weight: 500; }
.ob-tasks small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.6; color: rgba(247, 247, 247, .55); }
.ob-tasks li.is-done b { color: rgba(247, 247, 247, .7); }
.ob-bind { margin-top: 12px; }
.ob-end { display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 620px; margin: 28px auto 0; }
.ob-end .lg-main { width: auto; min-width: 260px; padding: 15px 30px; }
/* 信箱、地址等原樣顯示，不套 t-mono 的大寫 */
.rg-form .t-mono, .ob-tasks .t-mono, .rg-idcard .t-mono, .rg-msg pre { text-transform: none; }
.rg-steps[hidden], .ob-later[hidden] { display: none; }

/* hidden 屬性必須勝過上面元件自帶的 display（成功遮罩未顯示時不能攔截點擊） */
.rg-success[hidden], .rg-ctx[hidden], .lg-demo[hidden] { display: none; }
