/* ================= PHASE-2 fixes & additions ================= */

/* 24 — kill mobile blue tap highlight + unwanted selection on controls */
*{ -webkit-tap-highlight-color: transparent; }
button, a, [role="button"], .clickable, .nav-item, .icon-btn, .side-link,
.set-row, .qa, .type-card, .tf, .key, .swatch, .toss-pick, .dice-pick,
.pc-avatar, .profile-edit, .req, .lifafa-item, .auth-btn, .sheet-close,
.wallet-act, .chip {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none; user-select: none; touch-action: manipulation;
}
button:focus:not(:focus-visible), a:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible){ outline: none; }
/* keep copyable/selectable text selectable */
.selectable, .copy-value, input, textarea { -webkit-user-select: text; user-select: text; }

/* 4 — bottom sheet: never full viewport, stable grab area, scrollable body */
.sheet{ max-height: calc(100dvh - 40px); }
.sheet-grab{ flex: none; cursor: grab; touch-action: none; }
.sheet-grab:active{ cursor: grabbing; }
.sheet .sheet-body{ overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

/* 8 — expandable sections (Create Lifafa toggles) */
.expandable{ display:grid; grid-template-rows:0fr; opacity:0;
  transition: grid-template-rows .32s var(--ease), opacity .28s var(--ease), margin .28s var(--ease); }
.expandable > .exp-inner{ overflow:hidden; min-height:0; }
.expandable.open{ grid-template-rows:1fr; opacity:1; }

/* generic entrance util */
.fade-in{ animation: fadeIn .3s var(--ease) both; }
@keyframes fadeIn{ from{opacity:0; transform: translateY(6px)} to{opacity:1; transform:none} }

/* 1 — login primary mobile */
.login-card{ margin-top:8px; }
.otp-timer{ text-align:center; font-size:.82rem; color:var(--text-muted); margin-top:10px; }
.otp-timer b{ color:var(--primary); font-variant-numeric:tabular-nums; }
.change-num{ display:inline-flex; align-items:center; gap:6px; font-size:.82rem; color:var(--primary); font-weight:700; margin-top:2px; }
.divider{ display:flex; align-items:center; gap:12px; margin:22px 0 16px; color:var(--text-muted); font-size:.76rem; font-weight:700; }
.divider::before,.divider::after{ content:""; height:1px; flex:1; background:var(--border); }

/* 3 — settings profile card */
.acct-card{ display:flex; align-items:center; gap:14px; }
.acct-card .av{ width:64px; height:64px; border-radius:20px; object-fit:cover; background:var(--grad); flex:none; box-shadow:var(--shadow-sm); }
.acct-card .info{ min-width:0; flex:1; }
.acct-card .nm{ font-weight:800; font-size:1.05rem; }
.acct-card .meta{ font-size:.8rem; color:var(--text-muted); display:flex; flex-direction:column; gap:2px; margin-top:3px; }
.acct-card .edit{ margin-left:auto; }

/* 10/11 — wallet action buttons + clickable safe */
.wallet-actions{ display:flex; gap:12px; margin-top:18px; }
.wallet-act{ flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:16px;
  background:rgba(255,255,255,.18); color:#fff; font-weight:800; backdrop-filter:blur(6px); transition:transform .16s var(--ease); }
.wallet-act:active{ transform:scale(.96); }
.wallet-sub .ws{ cursor:pointer; transition:transform .16s var(--ease); }
.wallet-sub .ws:active{ transform:scale(.97); }
.quick-amts{ display:flex; gap:8px; margin:10px 0; }
.quick-amts .qa-btn{ flex:1; padding:9px; border-radius:12px; background:var(--surface-2); font-weight:700; font-size:.85rem; }

/* eye/copy row for passcode */
.pc-value-row{ display:flex; align-items:center; gap:10px; }
.pc-value{ flex:1; font-size:clamp(.95rem,4.4vw,1.2rem); font-weight:800; letter-spacing:2px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.pc-ic{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:var(--surface-2); color:var(--text); }

/* 8 — reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}


/* Settings profile: keep email icon and long address on one line. */
#acct-email{display:flex;align-items:center;gap:6px;min-width:0;width:100%;white-space:nowrap;overflow:hidden}
#acct-email>i{flex:0 0 auto}
#acct-email .acct-email-text{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* ===== Banned Numbers — Single / Bulk manager ===== */
.bn-mode-seg{margin-bottom:2px}.bn-mode-seg .seg-btn{min-height:68px}.bn-pane{animation:bnPaneIn .2s var(--ease)}
@keyframes bnPaneIn{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
.bn-bulk-input{min-height:126px;font-size:16px;line-height:1.55}.bn-help{display:flex;align-items:flex-start;gap:8px;margin-top:8px;color:var(--text-muted);font-size:.64rem;line-height:1.45}.bn-help i{color:var(--primary);margin-top:2px}
.bn-divider{border:0;border-top:1.5px dashed color-mix(in srgb,var(--text-muted) 34%,transparent);margin:21px 0 17px}.bn-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bn-list-head>div{display:flex;flex-direction:column;gap:2px}.bn-list-head b{font-size:.82rem}.bn-list-head span{font-size:.59rem;color:var(--text-muted)}
.bn-search-field{margin-bottom:4px}.bn-search-field .input{padding-left:42px}.bn-search-ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.78rem;z-index:1}
.bn-preview-empty,.bn-preview-error{min-height:78px;border:1px dashed var(--border);border-radius:16px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;text-align:center;gap:9px;padding:15px;color:var(--text-muted);font-size:.66rem;line-height:1.45}.bn-preview-empty>i{color:var(--primary);font-size:1rem}.bn-preview-error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--border));background:var(--danger-soft)}.bn-preview-loading .ld{width:16px;height:16px;border-width:2px}
.bn-bulk-preview{border:1px solid var(--border);border-radius:17px;background:var(--surface);overflow:hidden}.bn-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.bn-summary-grid>div{background:var(--surface-2);display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 4px}.bn-summary-grid b{font-size:.8rem}.bn-summary-grid span{font-size:.46rem;color:var(--text-muted);font-weight:700}.bn-summary-grid .ready b{color:var(--success)}.bn-summary-grid .banned b{color:var(--danger)}.bn-summary-grid .invalid b{color:var(--warning)}
.bn-preview-list{max-height:245px;overflow:auto;padding:4px 11px}.bn-preview-row{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 1px;border-bottom:1px solid var(--border)}.bn-preview-row:last-child{border-bottom:0}.bn-preview-row>i{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-size:.62rem}.bn-preview-row>div{min-width:0;display:flex;flex-direction:column}.bn-preview-row b{font-size:.68rem;letter-spacing:.02em}.bn-preview-row span{font-size:.5rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn-preview-row em{font-style:normal;font-size:.48rem;font-weight:800;padding:4px 6px;border-radius:999px;white-space:nowrap}.bn-preview-row.ready>i,.bn-preview-row.ready em{background:var(--success-soft);color:var(--success)}.bn-preview-row.banned>i,.bn-preview-row.banned em{background:var(--danger-soft);color:var(--danger)}.bn-preview-row.invalid>i,.bn-preview-row.invalid em{background:var(--warning-soft);color:var(--warning)}
.bn-bulk-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.bn-bulk-actions .btn{min-width:0}.bn-unban-all{border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));color:var(--danger)}.bn-bulk-actions .btn:disabled{opacity:.42}
.bn-list-main{flex:1;min-width:0;text-align:left!important;padding-left:0!important}.bn-list-main>div:first-child{font-weight:800;font-size:.72rem}.bn-list-main .tiny{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn-empty{padding:24px 10px;display:flex;flex-direction:column;align-items:center;text-align:center}.bn-empty i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);margin-bottom:8px}.bn-empty b{font-size:.76rem}.bn-empty span{margin-top:3px;color:var(--text-muted);font-size:.58rem}
.bn-confirm-copy{display:block;line-height:1.45}.bn-confirm-list{display:block;max-height:170px;overflow:auto;margin-top:11px;padding:6px 9px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);text-align:left}.bn-confirm-list>span{display:flex;align-items:center;gap:7px;padding:7px 2px;border-bottom:1px solid var(--border);font-size:.7rem;font-weight:700;color:var(--text)}.bn-confirm-list>span:last-child{border-bottom:0}.bn-confirm-list i{width:18px;text-align:center;color:var(--primary);flex:none}.bn-confirm-list>span>span{display:flex;min-width:0;flex:1;flex-direction:column;gap:1px}.bn-confirm-list b{font-size:.66rem}.bn-confirm-list small{font-size:.47rem;color:var(--text-muted);font-weight:700}.bn-confirm-list>span.skip{opacity:.62}.bn-confirm-list>span.skip i{color:var(--text-muted)}.bn-confirm-list>span.apply small{color:var(--primary)}
@media(max-width:360px){.bn-summary-grid span{font-size:.42rem}.bn-preview-row{grid-template-columns:23px minmax(0,1fr) auto;gap:6px}.bn-preview-row em{font-size:.43rem;padding:4px 5px}.bn-bulk-actions{gap:7px}}

/* ===== Phase 2026.09.04.3 — wallet card actions + OTP rhythm ===== */
/* OTP input → resend timer → action button: slightly more breathing room. */
.otp-step-timer{margin-top:14px!important;}
.otp-step-action{margin-top:14px!important;}

/* Wallet balance card: original two-info-card layout with a copyable Finzo number. */
.wallet-safe-chevron{font-size:.58rem;opacity:.72;transition:transform .16s var(--ease)}
.wallet-sub .ws:active .wallet-safe-chevron{transform:translateX(2px)}
.wallet-finzo-card{cursor:default!important;min-width:0}
.wallet-finzo-card:active{transform:none!important}
.wallet-finzo-line{display:flex;align-items:center;gap:7px;min-width:0}
.wallet-finzo-line .v{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.wallet-finzo-copy{width:27px;height:27px;flex:none;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.65rem;transition:transform .15s var(--ease),background .2s}
.wallet-finzo-copy:active{transform:scale(.91);background:rgba(255,255,255,.23)}
.wallet-card-divider{height:0;border-top:1.5px dashed rgba(255,255,255,.25);margin:17px 1px 0}
.wallet-card-divider+.wallet-actions{margin-top:14px}

/* ===== Phase 2026.09.04.5 — unified expandable mobile-number previews ===== */
.mobile-preview{margin-top:10px;border:1px solid var(--border);border-radius:17px;background:var(--surface);overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.035)}
.mp-head{display:flex;align-items:stretch;min-height:58px;background:var(--surface-2)}
.mp-counts{flex:1;min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));align-items:stretch}
.mp-stat{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:9px 4px;border-right:1px solid var(--border);text-align:center}
.mp-stat b{font-size:.82rem;line-height:1.15;font-weight:850;font-variant-numeric:tabular-nums}.mp-stat span{max-width:100%;font-size:.49rem;line-height:1.15;color:var(--text-muted);font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-stat.valid b{color:var(--success)}.mp-stat.duplicate b{color:var(--warning)}.mp-stat.invalid b,.mp-stat.banned b{color:var(--danger)}.mp-stat.no-account b{color:var(--warning)}
.mp-toggle{width:48px;flex:0 0 48px;border:0;background:transparent;color:var(--text-muted);display:grid;place-items:center;font-size:.72rem;cursor:pointer;transition:background .18s,color .18s}.mp-toggle:not(:disabled):active{background:var(--primary-soft);color:var(--primary)}.mp-toggle:disabled{opacity:.35;cursor:default}.mp-toggle i{transition:transform .28s var(--ease)}.mobile-preview.expanded .mp-toggle i{transform:rotate(180deg)}
.mp-list-wrap{max-height:0;opacity:0;overflow:hidden;transition:max-height .34s var(--ease),opacity .22s ease}.mobile-preview.expanded .mp-list-wrap{max-height:285px;opacity:1;border-top:1px solid var(--border)}
.mp-list{max-height:284px;overflow:auto;padding:4px 11px;background:var(--surface)}
.mp-row{display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 1px;border-bottom:1px solid var(--border)}.mp-row:last-child{border-bottom:0}
.mp-row>i{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;font-size:.64rem}.mp-row>div{min-width:0;display:flex;flex-direction:column;gap:1px}.mp-row b{font-size:.7rem;letter-spacing:.015em;font-variant-numeric:tabular-nums}.mp-row span{font-size:.52rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-row em{font-style:normal;font-size:.49rem;font-weight:800;padding:4px 7px;border-radius:999px;white-space:nowrap}
.mp-row.valid>i,.mp-row.valid em{background:var(--success-soft);color:var(--success)}.mp-row.duplicate>i,.mp-row.duplicate em,.mp-row.self>i,.mp-row.self em{background:var(--warning-soft);color:var(--warning)}.mp-row.invalid>i,.mp-row.invalid em,.mp-row.banned>i,.mp-row.banned em{background:var(--danger-soft);color:var(--danger)}.mp-row.no-account>i,.mp-row.no-account em{background:var(--warning-soft);color:var(--warning)}
.mp-list-empty{min-height:70px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;color:var(--text-muted);font-size:.62rem;text-align:center}.mp-list-empty i{color:var(--primary)}
#sp-preview,#bulk-number-preview{margin-top:4px}.bn-bulk-preview.mobile-preview{margin-top:0}.bn-preview-empty+.bn-bulk-actions,.mobile-preview+.bn-bulk-actions{margin-top:11px}
@media(max-width:360px){.mp-head{min-height:56px}.mp-toggle{width:42px;flex-basis:42px}.mp-stat{padding-left:2px;padding-right:2px}.mp-stat b{font-size:.76rem}.mp-stat span{font-size:.44rem}.mp-row{grid-template-columns:25px minmax(0,1fr) auto;gap:6px}.mp-row>i{width:25px;height:25px}.mp-row em{font-size:.45rem;padding:4px 5px}}
#bn-bulk-preview.mobile-preview{margin-top:0}


/* ===== Phase 2026.09.04.6 — Number Tool + compact five-state Bulk preview ===== */
#bulk-number-preview .mp-counts{grid-template-columns:repeat(5,minmax(0,1fr))}
#bulk-number-preview .mp-stat{padding-left:2px;padding-right:2px}
#bulk-number-preview .mp-stat span{font-size:.46rem;letter-spacing:-.01em}
#bulk-number-preview .mp-toggle{width:44px;flex-basis:44px}
@media(max-width:360px){#bulk-number-preview .mp-toggle{width:38px;flex-basis:38px}#bulk-number-preview .mp-stat b{font-size:.72rem}#bulk-number-preview .mp-stat span{font-size:.41rem}}

.number-tool-page{padding-bottom:10px}
.nt-builder-card{overflow:visible}
.nt-intro{display:flex;align-items:flex-start;gap:11px;padding:12px;margin-bottom:15px;border-radius:15px;background:var(--surface-2);border:1px solid var(--border)}
.nt-intro-icon{width:38px;height:38px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:.9rem}
.nt-intro>div:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.nt-intro b{font-size:.78rem}.nt-intro span{font-size:.62rem;line-height:1.48;color:var(--text-muted)}
.nt-textarea-wrap{position:relative}.nt-textarea-wrap .textarea{min-height:142px;padding-right:82px}
.nt-paste-btn{position:absolute;top:9px;right:9px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--primary);display:flex;align-items:center;gap:6px;font-family:inherit;font-size:.62rem;font-weight:800;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s var(--ease),background .18s}.nt-paste-btn:active{transform:scale(.96);background:var(--primary-soft)}
#nt-preview{margin-top:-2px}.nt-name-field{margin-top:14px}.nt-name-field label .muted{font-size:.62rem;font-weight:600}
.nt-section-divider{height:0;border-top:1.5px dashed var(--border);margin:25px 2px 20px}
.nt-collections-title{align-items:flex-end}.nt-collections-title>div{display:flex;flex-direction:column;gap:3px}.nt-collections-title p{font-size:.6rem;color:var(--text-muted);margin:0}
.nt-collection-list{display:grid;gap:11px}.nt-collection-card{padding:13px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)}
.nt-collection-top{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px}.nt-collection-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:.9rem}
.nt-collection-name{min-width:0;display:flex;flex-direction:column;gap:2px}.nt-collection-name b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nt-collection-name span{font-size:.55rem;color:var(--text-muted)}
.nt-code-pill{max-width:112px;min-height:34px;padding:0 9px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));border-radius:11px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:.65rem;font-weight:850;letter-spacing:.035em;cursor:pointer}.nt-code-pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nt-code-pill i{flex:none;font-size:.62rem}
.nt-collection-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px;padding-top:11px;border-top:1px dashed var(--border)}.nt-collection-meta>div{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-areas:'icon label' 'icon value';align-items:center;padding:8px 9px;border-radius:12px;background:var(--surface-2)}.nt-collection-meta i{grid-area:icon;width:24px;color:var(--primary);font-size:.65rem}.nt-collection-meta span{grid-area:label;font-size:.5rem;color:var(--text-muted);font-weight:700}.nt-collection-meta b{grid-area:value;margin-top:1px;font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-empty{border:1px dashed var(--border);border-radius:18px;background:var(--surface)}
@media(max-width:360px){.nt-collection-top{grid-template-columns:36px minmax(0,1fr) auto;gap:8px}.nt-collection-icon{width:36px;height:36px}.nt-code-pill{max-width:96px;padding:0 7px;font-size:.59rem}.nt-collection-meta{gap:6px}.nt-collection-meta>div{padding:7px}}
