/* Geometry/utilities are provided by the downloaded Scan Pay stylesheet.
   This file contains violet tokens and bridges for PayForYou-only screens. */
:root, html[data-theme], html[data-tg-app] {
  --background: #100d17; --dashboard-background: #100d17; --foreground: #f6f3fa;
  --card: #211a2e; --card-foreground: #f6f3fa; --popover: #211a2e; --popover-foreground: #f6f3fa;
  --primary: #d2b4ff; --primary-foreground: #27143f; --secondary: #30263f; --secondary-foreground: #f6f3fa;
  --muted: #30263f; --muted-foreground: #a89bb9; --accent: #30263f; --accent-foreground: #f6f3fa;
  --border: #ffffff16; --input: #ffffff1f; --ring: #b68af0; --destructive: #fb7185;
  --app-font-sans: -apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;
  --app-font-rounded: ui-rounded,var(--app-font-sans); --radius-4xl: 2rem;
  --premium-button-gradient: radial-gradient(82.73% 121.53% at 17.94% 77.44%,#9c64ee 36.98%,#cf87ed 89.06%);
  --glass-shadow-modern: inset 1.8px 3px 0 -2px #ffffff65,inset 2px 2px 0 -2px #ffffff65,inset -2px -2px 2px -2px #ffffff40,inset -1.8px -3px 0 -2px #ffffff40;
  --bg:var(--background); --bg-top:var(--background); --bg-mid:var(--background); --bg-bottom:var(--background);
  --bg1:var(--card); --bg2:var(--card); --bg3:var(--secondary); --bg4:var(--secondary);
  --iris:var(--primary); --cyan:var(--primary); --bl5:var(--primary); --bl4:var(--primary); --bl7:#a878e5;
  --card-a:var(--card); --card-b:var(--card); --card-c:var(--secondary);
  --text:var(--foreground); --white:var(--foreground); --w:var(--foreground); --w92:#f6f3fa; --w70:#c4b8d4; --w50:#a89bb9; --w30:#8d7e9e;
  --dim:var(--muted-foreground); --text-secondary:var(--muted-foreground); --surface:var(--card); --hairline:var(--border);
  --green:#68d6a4; --grn:#68d6a4; --red:#fb7185; --amb:#e9bd79;
  --tg-bg:var(--background); --tg-surface:var(--card); --tg-surface-2:var(--secondary); --tg-text:var(--foreground); --tg-muted:var(--muted-foreground); --tg-cyan:var(--primary); --tg-mint:var(--primary); --tg-border:var(--border);
  color-scheme: dark;
}
html,body,html[data-tg-app] body { margin:0; min-width:320px; background:var(--background); color:var(--foreground); font-family:var(--app-font-sans); }
body::before,body::after,.ambient-bg,.ambient-background { display:none; }
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:default; }
button:focus-visible,a:focus-visible { outline:2px solid var(--ring); outline-offset:3px; }
a { color:inherit; text-decoration:none; }
svg { flex-shrink:0; }
.pfy-content { width:100%; max-width:32rem; min-height:100dvh; margin:0 auto; padding:var(--tg-top-inset,0px) 16px calc(100px + env(safe-area-inset-bottom)); }
.pfy-home-header { display:flex; align-items:center; gap:12px; width:min(calc(100% - 32px),480px); margin:calc(24px + var(--tg-top-inset,0px)) auto -4px; }
.pfy-home-header h1 { flex:1; margin:0; font-size:24px; line-height:32px; font-weight:600; letter-spacing:-.025em; }
.pfy-home-header a { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--card); }
.pfy-home-header + .pfy-content { padding-top:0; }
.pfy-balance { background:var(--card); }
.pfy-primary { background:var(--primary); color:var(--primary-foreground); border:0; }
.pfy-tile-label { overflow-wrap:anywhere; line-height:1.25; }
.pfy-qr-frame i { position:absolute; width:16px; height:16px; border-color:currentColor; border-style:solid; opacity:.55; }
.pfy-qr-frame i:nth-child(1) { top:0;left:0;border-width:2px 0 0 2px;border-radius:3px 0 0 0; }
.pfy-qr-frame i:nth-child(2) { top:0;right:0;border-width:2px 2px 0 0;border-radius:0 3px 0 0; }
.pfy-qr-frame i:nth-child(3) { bottom:0;left:0;border-width:0 0 2px 2px;border-radius:0 0 0 3px; }
.pfy-qr-frame i:nth-child(4) { bottom:0;right:0;border-width:0 2px 2px 0;border-radius:0 0 3px 0; }
.pfy-tabbar { position:fixed; inset:auto 0 0; display:flex; justify-content:center; z-index:100; padding:10px 12px calc(12px + env(safe-area-inset-bottom)); pointer-events:none; }
.pfy-tabbar ul { margin:0; list-style:none; pointer-events:auto; background:#211a2e99; border:0; box-shadow:0 8px 40px #00000059,var(--glass-shadow-modern); backdrop-filter:blur(20px) saturate(280%) contrast(.62) brightness(.72); }
.pfy-tab { position:relative; z-index:1; width:76px; min-width:0; }
.pfy-tab a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:6px 8px 8px; border-radius:999px; color:var(--muted-foreground); }
.pfy-tab a[aria-current="page"] { color:var(--primary); }
.pfy-tab a span { width:100%; overflow:hidden; text-overflow:ellipsis; text-align:center; font-size:10px; line-height:12px; font-weight:500; }
.pfy-tab-indicator { position:absolute; top:4px; left:4px; width:76px; height:calc(100% - 8px); border-radius:999px; background:#ffffff1a; transition:transform .22s ease; }

/* Shared route structure used by Scan Pay's transfer/history/checks pages. */
.screen.active { display:flex; flex-direction:column; gap:24px; padding:24px 0; background:none; }
.screen h1 { margin:0; font-size:24px; line-height:32px; font-weight:600; letter-spacing:-.025em; }
.screen h2,.section-title,.sec-title { margin:0; font-size:16px; line-height:24px; font-weight:600; }
.section,.sec { margin:0; }
.section-header,.sec-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.section-title { display:flex; align-items:center; gap:8px; }
.section-title svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8; }
.card,.panel,.service-card,.service-list-section,.transfer-card,.profile-info,.profile-menu,.ref-link-card,.ref-earnings,.ref-rates,.stats-card,.ref-level-card { border:0; border-radius:32px; background:var(--card); padding:24px; box-shadow:none; }
.transfer-hero,.service-hero { display:flex; align-items:center; gap:12px; background:none; padding:0; border:0; box-shadow:none; }
.transfer-glyph,.transfer-eyebrow,.service-hero-icon { display:none; }
.transfer-hero p,.service-hero p { margin:4px 0 0; font-size:14px; color:var(--muted-foreground); }
.transfer-card { display:flex;flex-direction:column;gap:12px; }
.form-label,.service-card label>span { font-size:16px; font-weight:500; color:var(--foreground); }
.form-input,input:not([type="checkbox"]):not([type="radio"]),select,textarea { width:100%; min-width:0; min-height:48px; border:1px solid var(--input); border-radius:16px; padding:12px 16px; background:#ffffff05; color:var(--foreground); outline:none; box-shadow:var(--glass-shadow-modern); }
input:focus,textarea:focus,select:focus { border-color:var(--ring); }
.btn,.btn-primary,.btn-blue,.btn-ghost,.transfer-search,.filter-apply { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border:0;border-radius:999px;font-size:15px;font-weight:500;cursor:pointer; }
.btn-primary,.btn-blue,.filter-apply { background:var(--primary);color:var(--primary-foreground);width:100%; }
.btn-ghost,.transfer-search { background:var(--secondary);color:var(--foreground); }
.btn-primary-inner { display:inline-flex;align-items:center;gap:8px; }
.transfer-search-row { display:flex;gap:8px; }
.transfer-search { flex-shrink:0; }
.transfer-target { display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:#b68af016; }
.transfer-avatar { display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--secondary); }
.transfer-target small { display:block;color:var(--muted-foreground); }
.transfer-ok { margin-left:auto; }
.transfer-amount { display:flex;align-items:center;gap:8px; }
.transfer-available,.service-balance { color:var(--muted-foreground);font-size:14px; }
.transfer-error,.service-error { color:var(--destructive);font-size:14px; }
.filters-row { display:flex;gap:8px;overflow-x:auto;flex-wrap:nowrap;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none; }
.filter-chip { flex-shrink:0;border:1px solid var(--border);border-radius:999px;padding:6px 14px;color:var(--muted-foreground);background:none;font-size:14px; }
.filter-chip.active { background:var(--primary);color:var(--primary-foreground);border-color:transparent; }
.filter-params { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.filter-params label { display:block;font-size:12px;color:var(--muted-foreground);margin-bottom:6px; }
.filter-actions { display:flex;gap:12px; }
.filter-clear { border:0;background:none;color:var(--muted-foreground); }
.tx-row { display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border);background:none; }
.tx-dot { display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--secondary);color:var(--primary); }
.tx-dot svg { width:22px;height:22px; }
.tx-info { min-width:0;flex:1; }
.tx-name { font-size:14px;line-height:20px;font-weight:500; }
.tx-time,.tx-sub { font-size:12px;line-height:18px;color:var(--muted-foreground);overflow-wrap:anywhere; }
.tx-end { text-align:right;flex-shrink:0; }
.tx-val { font-size:14px;font-weight:500;font-variant-numeric:tabular-nums; }
.tx-val-plus { color:#68d6a4; }
.tx-val-minus { color:var(--foreground); }
.empty-state,.service-empty { padding:32px 12px;text-align:center;font-size:14px;color:var(--muted-foreground); }
.check-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0; }
.check-form-grid label span { display:block;margin-bottom:8px; }
.service-list-row { display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--border); }
.service-list-row small { display:block;color:var(--muted-foreground);font-size:12px; }
.service-row-actions { display:flex;gap:8px;margin-left:auto;flex-direction:column; }
.service-row-actions button { background:var(--secondary);border:0;border-radius:12px;padding:8px;color:var(--foreground);font-size:12px; }
.service-row-actions .danger { color:var(--destructive); }
.ref-link-label,.ref-share-hint,.ref-earnings-label,.ref-rate-level { color:var(--muted-foreground);font-size:14px; }
.ref-link-box { display:flex;align-items:center;gap:8px;margin:12px 0; }
.ref-link-text { min-width:0;overflow-wrap:anywhere;flex:1;font-size:14px; }
.ref-copy-btn { padding:10px;border:0;border-radius:999px;background:var(--primary);color:var(--primary-foreground); }
.ref-levels { display:grid;grid-template-columns:repeat(3,1fr);gap:12px; }
.ref-level-card { padding:16px;text-align:center; }
.ref-level-num,.ref-level-label { font-size:12px;color:var(--muted-foreground); }
.ref-level-count { font-size:28px;font-weight:600;margin:8px 0; }
.ref-earnings-row,.ref-rate-row,.profile-info-row { display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px; }
.profile-menu-item { display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--border);cursor:pointer; }
.pm-icon { display:grid;place-items:center;width:40px;height:40px;border-radius:16px;background:var(--secondary); }
.pm-icon svg { width:22px;height:22px; }
.pm-body { flex:1;min-width:0; }
.pm-name { font-size:14px;font-weight:500; }
.pm-desc,.profile-info-key { font-size:12px;color:var(--muted-foreground); }
.profile-ver { text-align:center;font-size:12px;color:var(--muted-foreground); }
.sheet-overlay { position:fixed;inset:0;z-index:300;background:#0008;display:none;align-items:flex-end;justify-content:center; }
.sheet-overlay.active { display:flex; }
.sheet { width:100%;max-width:512px;max-height:90dvh;overflow-y:auto;border-radius:32px 32px 0 0;background:var(--card);padding-bottom:env(safe-area-inset-bottom); }
.sheet-body { padding:24px; }
.sheet-handle { width:36px;height:5px;border-radius:99px;background:var(--muted-foreground);opacity:.4;margin:10px auto; }
.pay-title { font-size:24px;font-weight:600;letter-spacing:-.025em; }
.pay-subtitle { font-size:14px;color:var(--muted-foreground);margin:8px 0 20px; }
.pay-center { text-align:center; }
.form-group { margin-bottom:16px; }
.form-group .form-label { display:block;margin-bottom:8px; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } }
