/* register.css —— 注册全屏三步流（T-M5-02④）；色值全引 token.css 令牌；
   热区≥48px；动效仅 transform/opacity；z-index 995 压住引导 overlay(990)。 */
.register-flow{position:fixed;inset:0;z-index:995;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 16px;background:linear-gradient(180deg,var(--ocean-base),var(--ocean-base-end));overflow-y:auto}.reg-progress{display:flex;gap:28px;flex:0 0 auto}
.reg-dot{display:flex;align-items:center;gap:8px;opacity:.55;transition:opacity 250ms ease-out}
.reg-dot-num{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--paper-card);color:var(--ink-sub);font-size:20px;font-weight:700;border:2px solid var(--ink-sub)}
.reg-dot-label{font-size:18px;color:var(--ink-text)} .reg-dot.is-active{opacity:1} .reg-dot.is-active .reg-dot-num{background:var(--cta-main);border-color:var(--cta-main);color:#fff} .reg-dot.is-done .reg-dot-num{background:var(--status-green);border-color:var(--status-green);color:#fff}
.reg-stage{flex:0 1 auto;width:100%;max-width:560px} .reg-step{display:flex;justify-content:center} .reg-step[hidden]{display:none} .reg-card{width:100%;background:var(--paper-card);border-radius:24px;padding:28px 24px;box-shadow:0 8px 24px rgba(55,71,79,.12);display:flex;flex-direction:column;gap:16px}
.reg-title{margin:0;font-size:24px;font-weight:700;color:var(--ink-text)} .reg-hint{margin:0;font-size:18px;color:var(--ink-sub)} .reg-notice{margin:0;font-size:18px;line-height:1.6;color:var(--ink-text);background:var(--ocean-base);border-radius:16px;padding:14px 16px}
.reg-name-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:120px} .reg-name-chip{min-height:48px;border:2px solid var(--border-country);border-radius:16px;background:#fff;color:var(--ink-text);font-size:18px;cursor:pointer;transition:transform 250ms ease-out,border-color 250ms ease-out}
.reg-name-chip.is-selected{border-color:var(--cta-main);background:var(--ocean-base);transform:scale(1.06);font-weight:700} .reg-avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px} .reg-avatar-chip{aspect-ratio:1;min-height:48px;border:2px solid var(--border-country);border-radius:16px;background:#fff;cursor:pointer;padding:6px;transition:transform 250ms ease-out,border-color 250ms ease-out}
.reg-avatar-chip svg{width:100%;height:100%;display:block} .reg-avatar-chip.is-selected{border-color:var(--cta-main);transform:scale(1.08);box-shadow:0 0 0 3px var(--ocean-base)}
.reg-consent{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:8px;border:none;background:none;cursor:pointer;text-align:left} .reg-consent-box{flex:0 0 auto;width:32px;height:32px;margin-top:2px;border:3px solid var(--ink-sub);border-radius:10px;background:#fff;position:relative;transition:background 250ms ease-out,border-color 250ms ease-out}
.reg-consent.is-checked .reg-consent-box{background:var(--status-green);border-color:var(--status-green)} .reg-consent.is-checked .reg-consent-box::after{content:"";position:absolute;left:9px;top:4px;width:9px;height:16px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)} .reg-consent-label{font-size:18px;color:var(--ink-text);line-height:1.5}
.reg-actions{display:flex;justify-content:flex-end;gap:12px;min-height:48px} .reg-actions-step1{justify-content:flex-end;flex-wrap:wrap} .reg-btn{min-height:48px;min-width:96px;padding:10px 20px;border-radius:16px;font-size:18px;font-weight:700;cursor:pointer;border:none;transition:transform 250ms ease-out,opacity 250ms ease-out}
.reg-btn-main{background:var(--cta-main);color:#fff} .reg-btn-main:disabled{opacity:.4;cursor:default} .reg-btn-ghost{background:var(--paper-card);color:var(--ink-text);border:2px solid var(--ink-sub)} .reg-btn:not(:disabled):active{transform:scale(.96)}
.reg-error{margin:0;font-size:18px;color:var(--ty-red)} .reg-loading{margin:0;font-size:18px;color:var(--ink-sub)} .reg-back{position:fixed;left:16px;top:16px;min-height:48px;padding:10px 18px;border-radius:16px;border:2px solid var(--ink-sub);background:var(--paper-card);color:var(--ink-text);font-size:18px;cursor:pointer}
.reg-friend-code{font-size:48px;font-weight:700;letter-spacing:8px;color:var(--cta-main);text-align:center;font-variant-numeric:tabular-nums} .reg-card-done{align-items:center}
/* 找回子视图（T-M5-09）：4 位码槽 + 32 键点选专用键盘（F13-2/N-7.1 无键盘自由文本结构性保证）；热区≥48px */
.reg-code-slots{display:flex;justify-content:center;gap:12px;min-height:64px}
.reg-code-slot{display:flex;align-items:center;justify-content:center;width:56px;height:64px;border:2px dashed var(--border-country);border-radius:16px;background:#fff;font-size:32px;font-weight:700;color:var(--ink-sub);font-variant-numeric:tabular-nums;transition:border-color 250ms ease-out,transform 250ms ease-out}
.reg-code-slot.is-filled{border-style:solid;border-color:var(--cta-main);color:var(--cta-main);transform:scale(1.05)}
.reg-kbd{display:flex;flex-direction:column;gap:10px} .reg-kbd-row{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.reg-kbd-key{min-height:48px;border:2px solid var(--border-country);border-radius:14px;background:#fff;color:var(--ink-text);font-size:20px;font-weight:700;cursor:pointer;transition:transform 250ms ease-out,border-color 250ms ease-out,background 250ms ease-out}
.reg-kbd-key:active{transform:scale(.94);border-color:var(--cta-main);background:var(--ocean-base)}
@media (max-width:600px){.reg-kbd-row{gap:6px}.reg-kbd-key{font-size:18px;border-radius:12px}}
@media (prefers-reduced-motion:reduce){.register-flow *,.register-flow *::after,.register-flow *::before{transition:none!important;animation:none!important}}
