/* ============================================================
   VERACITY BANK v4 — Light Theme | DM Sans | Crimson Accent
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

:root {
  --red:       #C0182A;
  --red-dark:  #96101F;
  --red-soft:  rgba(192,24,42,0.07);
  --red-glow:  rgba(192,24,42,0.13);
  --bg:        #F4F6F9;
  --surface:   #FFFFFF;
  --surface-2: #F8F9FB;
  --surface-3: #EEF0F4;
  --border:    #E3E7EF;
  --border-md: #C8CDD8;
  --text-1:    #111827;
  --text-2:    #4B5563;
  --text-3:    #9CA3AF;
  --green:     #16A34A;
  --green-soft:rgba(22,163,74,0.08);
  --amber:     #D97706;
  --nav-h:     62px;
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius:    14px;
  --radius-lg: 20px;
  --shadow-xs: 0 1px 4px rgba(0,0,0,0.06);
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.08);
  --shadow-md: 0 6px 24px rgba(0,0,0,0.10);
  --shadow-lg: 0 16px 48px rgba(0,0,0,0.13);
  --ease:      cubic-bezier(0.4,0,0.2,1);
  --t:         0.2s;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text-1);min-height:100vh;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
input,select,textarea{font-family:inherit}
.hidden{display:none!important}
.fade-in{animation:fadeUp .3s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── Shared App Nav ── */
.app-nav{height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 36px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-xs)}
.app-nav-brand{display:flex;align-items:center;gap:9px;margin-right:36px;flex-shrink:0;text-decoration:none}
.app-nav-brand-icon{width:32px;height:32px;background:var(--red);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff}
.app-nav-brand-name{font-size:16px;font-weight:700;letter-spacing:1.5px;color:var(--text-1);text-transform:uppercase}
.app-nav-links{display:flex;align-items:center;gap:2px;flex:1;list-style:none}
.nav-item{display:flex;align-items:center;gap:7px;padding:7px 14px;font-size:14px;font-weight:400;color:var(--text-2);border-radius:var(--radius-xs);cursor:pointer;transition:color var(--t),background var(--t);white-space:nowrap;position:relative;text-decoration:none}
.nav-item:hover:not(.disabled){color:var(--text-1);background:var(--surface-3)}
.nav-item.active{color:var(--red);font-weight:500;background:var(--red-soft)}
.nav-item.active::after{content:'';position:absolute;bottom:-11px;left:14px;right:14px;height:2px;background:var(--red);border-radius:2px 2px 0 0}
.nav-item.disabled{opacity:.4;cursor:not-allowed}
.nav-item .nav-icon{font-size:15px}
.app-nav-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-icon-btn{width:36px;height:36px;border-radius:var(--radius-xs);background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-2);cursor:pointer;position:relative;transition:background var(--t)}
.nav-icon-btn:hover{background:var(--surface-3)}
.notif-badge{position:absolute;top:7px;right:7px;width:7px;height:7px;background:var(--red);border-radius:50%;border:1.5px solid var(--surface)}
.nav-user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;background:var(--surface-2);border:1px solid var(--border);border-radius:40px;cursor:pointer;transition:border-color var(--t),background var(--t);text-decoration:none}
.nav-user-chip:hover{background:var(--surface-3);border-color:var(--border-md)}
.nav-avatar{width:28px;height:28px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.nav-username{font-size:13px;font-weight:500;color:var(--text-1)}
.page-content{flex:1;padding:36px 40px;max-width:1280px;width:100%;margin:0 auto}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px}
.page-greeting{font-size:13px;color:var(--text-2);margin-bottom:4px}
.page-title{font-size:26px;font-weight:700;color:var(--text-1);letter-spacing:-0.3px}
.page-sub{font-size:13px;color:var(--text-3);margin-top:3px}
.quick-actions{display:flex;gap:10px}
.btn-action{display:flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:all var(--t);cursor:pointer;border:none}
.btn-action.primary{background:var(--red);color:#fff}
.btn-action.primary:hover{background:var(--red-dark);box-shadow:0 4px 14px var(--red-glow)}
.btn-action.ghost{background:var(--surface);color:var(--text-2);border:1px solid var(--border)}
.btn-action.ghost:hover{background:var(--surface-3);color:var(--text-1)}
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.section-title{font-size:16px;font-weight:600;color:var(--text-1)}
.section-link{font-size:13px;color:var(--red);font-weight:500;cursor:pointer}
.section-link:hover{opacity:.8}

/* ── Login Page ── */
.public-nav{height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 40px;position:sticky;top:0;z-index:200;box-shadow:var(--shadow-xs)}
.public-nav-brand{display:flex;align-items:center;gap:10px}
.public-nav-brand-icon{width:32px;height:32px;background:var(--red);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff}
.public-nav-brand-name{font-size:16px;font-weight:700;letter-spacing:1.5px;color:var(--text-1);text-transform:uppercase}
.public-nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.public-nav-links li a{padding:7px 14px;font-size:14px;color:var(--text-2);border-radius:var(--radius-xs);display:block;transition:color var(--t),background var(--t)}
.public-nav-links li a:hover{color:var(--text-1);background:var(--surface-3)}
.public-nav-links li a.nav-active{color:var(--red);font-weight:500}
.public-nav-right{display:flex;align-items:center;gap:10px}
.nav-search-btn{width:34px;height:34px;border-radius:var(--radius-xs);background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-2);transition:background var(--t)}
.nav-search-btn:hover{background:var(--surface-3)}
.nav-search-bar{display:none;align-items:center;background:var(--surface);border:1.5px solid var(--red);border-radius:var(--radius-xs);overflow:hidden}
.nav-search-bar.open{display:flex}
.nav-search-bar input{border:none;background:transparent;padding:7px 14px;font-size:14px;outline:none;width:180px;color:var(--text-1)}
.nav-search-bar input::placeholder{color:var(--text-3)}
.nav-search-close{padding:0 12px;font-size:15px;color:var(--text-3);cursor:pointer;line-height:34px}
.login-body{flex:1;display:grid;grid-template-columns:1fr 460px;min-height:0}
.login-left{background:var(--red);display:flex;flex-direction:column;justify-content:center;padding:60px 64px;gap:48px;position:relative;overflow:hidden}
.login-left::before{content:'';position:absolute;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,0.15) 0%,transparent 70%);top:-160px;left:-160px;pointer-events:none}
.login-left::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,0.05) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,0.05) 40px);pointer-events:none}
.login-hero{position:relative;z-index:1}
.login-hero h1{font-size:clamp(32px,4vw,50px);font-weight:700;line-height:1.15;letter-spacing:-0.5px;margin-bottom:18px;color:#fff}
.login-hero h1 em{font-style:normal;color:rgba(255,255,255,0.72)}
.login-hero p{font-size:16px;color:rgba(255,255,255,0.78);max-width:380px;line-height:1.75}
.login-features{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px}
.login-feature-item{display:flex;align-items:center;gap:14px;font-size:14px;color:rgba(255,255,255,0.82)}
.login-feature-item span:first-child{width:34px;height:34px;border-radius:var(--radius-xs);background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.login-right{background:var(--surface);display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto;border-left:1px solid var(--border)}
.login-box{width:100%;max-width:360px}
.login-box h2{font-size:26px;font-weight:700;color:var(--text-1);margin-bottom:6px}
.login-box>p{font-size:14px;color:var(--text-2);margin-bottom:32px}
.login-error{background:rgba(192,24,42,0.07);border:1px solid rgba(192,24,42,0.2);border-radius:var(--radius-sm);padding:11px 14px;font-size:13px;color:var(--red);margin-bottom:18px;display:none}
.login-error.show{display:block}
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:7px;letter-spacing:0.5px;text-transform:uppercase}
.form-input{width:100%;padding:12px 15px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;color:var(--text-1);outline:none;transition:border-color var(--t),box-shadow var(--t)}
.form-input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-glow)}
.form-input::placeholder{color:var(--text-3)}
.form-input:disabled{opacity:.6;cursor:not-allowed;background:var(--surface-3)}
.input-wrapper{position:relative}
.input-wrapper .form-input{padding-right:44px}
.input-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:17px;cursor:pointer}
.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;margin-top:-4px}
.remember-me{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer}
.remember-me input[type="checkbox"]{accent-color:var(--red);width:14px;height:14px}
.forgot-link{font-size:13px;color:var(--red);font-weight:500}
.forgot-link:hover{opacity:.8}
.btn-primary{width:100%;padding:13px;background:var(--red);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:background var(--t),box-shadow var(--t),transform var(--t);display:flex;align-items:center;justify-content:center;gap:8px}
.btn-primary:hover{background:var(--red-dark);box-shadow:0 4px 16px var(--red-glow);transform:translateY(-1px)}
.btn-primary:active{transform:none}
.login-footer{margin-top:22px;text-align:center;font-size:13px;color:var(--text-3)}
.login-footer a{color:var(--red);font-weight:500}

/* ── Dashboard ── */
.balance-hero{background:var(--red);border-radius:var(--radius-lg);padding:30px 34px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px;position:relative;overflow:hidden;margin-bottom:22px;box-shadow:0 6px 28px var(--red-glow)}
.balance-hero::before{content:'';position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,0.12) 0%,transparent 70%);top:-120px;right:-70px;pointer-events:none}
.balance-hero::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,0.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,0.04) 40px);pointer-events:none}
.balance-left{position:relative;z-index:1}
.balance-label-text{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,0.7);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.balance-label-text::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px #4ade80}
.balance-amount{font-size:44px;font-weight:700;color:#fff;letter-spacing:-1.5px;line-height:1;margin-bottom:14px}
.balance-amount span{font-size:24px;font-weight:400;color:rgba(255,255,255,0.7);letter-spacing:0}
.balance-meta{display:flex;align-items:center;gap:12px}
.balance-acct-tag{display:flex;align-items:center;gap:7px;padding:5px 12px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.2);border-radius:40px;font-size:12px;color:rgba(255,255,255,0.9)}
.balance-type-tag{padding:5px 12px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.2);border-radius:40px;font-size:12px;color:#fff;font-weight:500}
.balance-right{position:relative;z-index:1}
.bank-card-hero{width:190px;height:110px;border-radius:12px;padding:12px 14px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.bank-card-hero.platinum{background:linear-gradient(135deg,#1a0a2e,#7B1FA2)}
.bank-card-hero.gold    {background:linear-gradient(135deg,#0d2137,#1565C0)}
.bank-card-hero.world   {background:linear-gradient(135deg,#1a1a1a,#424242)}
.bank-card-hero::before{content:'';position:absolute;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,0.07);top:-24px;right:-16px}
.card-h-top{display:flex;justify-content:space-between;align-items:center}
.card-h-label{font-size:8px;font-weight:700;letter-spacing:1.5px;color:rgba(255,255,255,0.55)}
.card-h-chip{font-size:15px;color:rgba(255,255,255,0.4)}
.card-h-number{font-size:9px;color:rgba(255,255,255,0.55);letter-spacing:2px;text-align:center;padding:2px 0}
.card-h-bottom{display:flex;justify-content:space-between;align-items:flex-end}
.card-h-holder{font-size:8px;font-weight:600;color:rgba(255,255,255,0.85);text-transform:uppercase;letter-spacing:0.3px;max-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-h-expiry{font-size:8px;color:rgba(255,255,255,0.55)}
.card-h-network{font-size:12px;font-weight:900;color:rgba(255,255,255,0.75);letter-spacing:-2px}
.card-h-holder-label{font-size:6px;color:rgba(255,255,255,0.4);letter-spacing:1px;text-transform:uppercase;margin-bottom:2px}

.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-xs);transition:box-shadow var(--t)}
.stat-card:hover{box-shadow:var(--shadow-sm)}
.stat-icon-box{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.stat-icon-box.red  {background:var(--red-soft)}
.stat-icon-box.green{background:var(--green-soft)}
.stat-label{font-size:12px;color:var(--text-2);margin-bottom:4px;font-weight:500}
.stat-value{font-size:22px;font-weight:700;color:var(--text-1);letter-spacing:-0.5px;line-height:1}
.stat-sub  {font-size:11px;color:var(--text-3);margin-top:3px}
.dash-content{display:grid;grid-template-columns:2fr 1fr;gap:22px;align-items:start}
.txn-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs)}
.txn-table-wrapper{overflow-x:auto}
.txn-table{width:100%;border-collapse:collapse}
.txn-table th{padding:11px 18px;font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:0.8px;text-align:left;background:var(--surface-2);border-bottom:1px solid var(--border)}
.txn-table td{padding:13px 18px;font-size:14px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-1)}
.txn-table tr:last-child td{border-bottom:none}
.txn-table tbody tr:hover td{background:var(--surface-2)}
.txn-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.txn-icon.debit {background:var(--red-soft)}
.txn-icon.credit{background:var(--green-soft)}
.txn-info{display:flex;align-items:center;gap:11px}
.txn-name{font-weight:500;font-size:14px;color:var(--text-1)}
.txn-type-label{font-size:12px;color:var(--text-3)}
.txn-amount{font-weight:600;font-size:14px}
.txn-amount.debit {color:var(--red)}
.txn-amount.credit{color:var(--green)}
.txn-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}
.txn-status.completed{background:rgba(22,163,74,0.1);color:var(--green)}
.txn-status.aborted  {background:var(--red-soft);color:var(--red)}
.txn-status.pending  {background:rgba(217,119,6,0.1);color:var(--amber)}
.cards-col{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-xs)}
.bank-card{width:100%;height:110px;border-radius:12px;padding:12px 14px;position:relative;overflow:hidden;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:transform var(--t),box-shadow var(--t)}
.bank-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.bank-card.platinum{background:linear-gradient(135deg,#1a0a2e,#7B1FA2)}
.bank-card.gold    {background:linear-gradient(135deg,#0d2137,#1565C0)}
.bank-card.world   {background:linear-gradient(135deg,#1a1a1a,#424242)}
.bank-card::before{content:'';position:absolute;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,0.06);top:-24px;right:-16px}
.card-top-row   {display:flex;justify-content:space-between;align-items:center}
.card-type      {font-size:8px;font-weight:700;letter-spacing:1.5px;color:rgba(255,255,255,0.55)}
.card-chip      {font-size:16px;color:rgba(255,255,255,0.4)}
.card-number    {font-size:9px;color:rgba(255,255,255,0.55);letter-spacing:2px;text-align:center;padding:2px 0}
.card-bottom-row{display:flex;justify-content:space-between;align-items:flex-end}
.card-holder-label{font-size:6px;color:rgba(255,255,255,0.4);letter-spacing:1px;text-transform:uppercase;margin-bottom:2px}
.card-holder-name,.card-expiry{font-size:8px;font-weight:600;color:rgba(255,255,255,0.85);text-transform:uppercase;letter-spacing:0.3px;max-width:68px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-network  {font-size:12px;font-weight:900;color:rgba(255,255,255,0.75);letter-spacing:-2px}

/* ── Send Money ── */
.send-money-container{max-width:640px;margin:0 auto}
.step-indicator{display:flex;align-items:center;margin-bottom:26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 24px;box-shadow:var(--shadow-xs)}
.step{display:flex;align-items:center;gap:10px;flex:1}
.step-num{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--border-md);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-3);transition:all var(--t);flex-shrink:0}
.step.active .step-num{background:var(--red);border-color:var(--red);color:#fff}
.step.done   .step-num{background:var(--green);border-color:var(--green);color:#fff}
.step-label{font-size:13px;color:var(--text-3);font-weight:500}
.step.active .step-label{color:var(--text-1)}
.step.done   .step-label{color:var(--text-2)}
.step-line{flex:1;height:1px;background:var(--border);margin:0 16px}
.transfer-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.transfer-type-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:26px 20px;cursor:pointer;text-align:center;transition:all var(--t);box-shadow:var(--shadow-xs)}
.transfer-type-card:hover{border-color:var(--red);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.transfer-type-card.selected{border-color:var(--red);background:var(--red-soft);box-shadow:0 0 0 3px var(--red-glow)}
.transfer-type-icon{font-size:34px;margin-bottom:12px}
.transfer-type-title{font-size:15px;font-weight:600;color:var(--text-1);margin-bottom:5px}
.transfer-type-desc{font-size:13px;color:var(--text-2);line-height:1.6}
.transfer-form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-xs)}
.transfer-form-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.transfer-form-header-icon{width:42px;height:42px;background:var(--red-soft);border:1px solid rgba(192,24,42,0.15);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}
.transfer-form-header h3{font-size:18px;font-weight:600;color:var(--text-1)}
.transfer-form-header p {font-size:13px;color:var(--text-2);margin-top:2px}
.sender-info-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 16px;margin-bottom:22px;display:flex;align-items:center;justify-content:space-between}
.si-label{font-size:11px;color:var(--text-3);margin-bottom:3px;text-transform:uppercase;letter-spacing:0.5px}
.si-value{font-weight:600;font-size:14px;color:var(--text-1)}
.si-balance{color:var(--green)}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid-2 .form-group.full{grid-column:1/-1}
.form-actions{display:flex;gap:10px;margin-top:26px}
.btn-back{padding:12px 22px;border:1px solid var(--border-md);border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;background:var(--surface-2);transition:all var(--t)}
.btn-back:hover{background:var(--surface-3);color:var(--text-1)}
.btn-proceed{flex:1;padding:12px;background:var(--red);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:background var(--t),box-shadow var(--t);display:flex;align-items:center;justify-content:center;gap:8px}
.btn-proceed:hover{background:var(--red-dark);box-shadow:0 4px 14px var(--red-glow)}

/* ── Modals ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);backdrop-filter:blur(5px);z-index:500;align-items:center;justify-content:center}
.modal-overlay.show{display:flex}
.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:38px;width:420px;max-width:92vw;box-shadow:var(--shadow-lg);animation:modalIn .26s cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes modalIn{from{opacity:0;transform:scale(.88) translateY(16px)}to{opacity:1;transform:none}}
.modal-icon{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 18px}
.modal-icon.lock   {background:var(--red-soft);border:1px solid rgba(192,24,42,0.15)}
.modal-icon.success{background:rgba(22,163,74,0.1);border:1px solid rgba(22,163,74,0.15)}
.modal-box h3{font-size:20px;font-weight:700;text-align:center;color:var(--text-1);margin-bottom:7px}
.modal-box>p{text-align:center;font-size:14px;color:var(--text-2);margin-bottom:26px}
.passcode-input-row{display:flex;gap:12px;justify-content:center;margin-bottom:8px}
.passcode-digit{width:56px;height:60px;border:1.5px solid var(--border-md);background:var(--surface-2);border-radius:var(--radius-sm);text-align:center;font-size:22px;font-weight:700;color:var(--text-1);outline:none;transition:border-color var(--t),box-shadow var(--t);-webkit-text-security:disc}
.passcode-digit:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-glow)}
.passcode-error{text-align:center;font-size:13px;color:var(--red);margin-bottom:14px;min-height:18px}
.modal-btn-row{display:flex;gap:10px;margin-top:4px}
.modal-cancel{flex:1;padding:12px;border:1px solid var(--border-md);border-radius:var(--radius-sm);background:var(--surface-2);font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all var(--t)}
.modal-cancel:hover{background:var(--surface-3);color:var(--text-1)}
.modal-confirm{flex:2;padding:12px;background:var(--red);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;transition:background var(--t)}
.modal-confirm:hover{background:var(--red-dark)}
.success-details{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;margin-bottom:22px}
.success-detail-row{display:flex;justify-content:space-between;padding:7px 0;font-size:13px;border-bottom:1px solid var(--border)}
.success-detail-row:last-child{border-bottom:none}
.sd-label{color:var(--text-3)}
.sd-value{font-weight:500;color:var(--text-1)}
.sd-value.red{color:var(--red);font-weight:600}
.modal-go-home{width:100%;padding:13px;background:var(--text-1);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;transition:background var(--t)}
.modal-go-home:hover{background:var(--text-2)}
.coming-soon-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;text-align:center;padding:40px}
.coming-soon-icon{font-size:48px;margin-bottom:18px;opacity:.3}
.coming-soon-wrap h2{font-size:22px;font-weight:600;color:var(--text-1);margin-bottom:9px}
.coming-soon-wrap p{font-size:14px;color:var(--text-2);max-width:360px}

/* ── Profile Page ── */
.profile-grid{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start}
.profile-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs);position:sticky;top:calc(var(--nav-h) + 24px)}
.profile-avatar-block{background:var(--red);padding:34px 24px 26px;text-align:center;position:relative;overflow:hidden}
.profile-avatar-block::before{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(0,0,0,0.1);top:-80px;right:-60px;pointer-events:none}
.profile-avatar-block::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,0.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,0.04) 40px);pointer-events:none}
.profile-avatar-circle{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,0.2);border:3px solid rgba(255,255,255,0.35);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;margin:0 auto 12px;position:relative;z-index:1}
.profile-avatar-name{font-size:17px;font-weight:700;color:#fff;margin-bottom:4px;position:relative;z-index:1}
.profile-avatar-acct{font-size:12px;color:rgba(255,255,255,0.7);position:relative;z-index:1}
.profile-side-info{padding:18px}
.profile-info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}
.profile-info-row:last-child{border-bottom:none}
.pir-label{color:var(--text-3);font-weight:500;flex-shrink:0;margin-right:10px}
.pir-value{color:var(--text-1);font-weight:500;text-align:right;word-break:break-all}
.pir-value.green{color:var(--green)}
.profile-main{display:flex;flex-direction:column;gap:20px}
.profile-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs)}
.profile-section-header{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--surface-2)}
.profile-section-title{font-size:15px;font-weight:600;color:var(--text-1)}
.profile-section-body{padding:22px}
.profile-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.profile-field-group{display:flex;flex-direction:column;gap:4px}
.profile-field-group.full{grid-column:1/-1}
.pf-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:0.5px}
.pf-value{font-size:14px;font-weight:500;color:var(--text-1)}
.pf-value.empty{color:var(--text-3);font-style:italic;font-weight:400}
.profile-edit-form{display:none}
.profile-edit-form.active{display:block}
.profile-view.hidden{display:none}
.edit-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.edit-fields-grid .form-group.full{grid-column:1/-1}
.profile-form-actions{display:flex;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
.btn-save{padding:11px 24px;background:var(--red);color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--t);border:none}
.btn-save:hover{background:var(--red-dark)}
.btn-cancel-edit{padding:11px 20px;background:var(--surface-2);border:1px solid var(--border-md);color:var(--text-2);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--t)}
.btn-cancel-edit:hover{background:var(--surface-3);color:var(--text-1)}
.btn-edit-section{padding:7px 14px;background:var(--red-soft);border:1px solid rgba(192,24,42,0.15);color:var(--red);border-radius:var(--radius-xs);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--t)}
.btn-edit-section:hover{background:var(--red);color:#fff}
.save-toast{position:fixed;bottom:28px;right:28px;background:var(--green);color:#fff;padding:12px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;box-shadow:var(--shadow-md);transform:translateY(80px);opacity:0;transition:all .3s var(--ease);z-index:999}
.save-toast.show{transform:translateY(0);opacity:1}

/* ── Responsive ── */
/* ── Pagination ── */
.txn-pagination{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-top:1px solid var(--border);
  flex-wrap:wrap;gap:10px;
}
.txn-page-info{font-size:13px;color:var(--text-2)}
.txn-page-controls{display:flex;align-items:center;gap:6px}
.txn-page-btn{
  padding:6px 14px;border-radius:var(--radius-xs);
  border:1px solid var(--border-md);background:var(--surface);
  font-size:13px;font-weight:500;color:var(--text-2);
  cursor:pointer;transition:all var(--t);
}
.txn-page-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}
.txn-page-btn:disabled{opacity:.4;cursor:not-allowed}
.txn-page-numbers{display:flex;gap:4px}
.txn-pg-num{
  width:32px;height:32px;border-radius:var(--radius-xs);
  border:1px solid var(--border);background:var(--surface);
  font-size:13px;font-weight:500;color:var(--text-2);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all var(--t);
}
.txn-pg-num:hover{background:var(--surface-3);color:var(--text-1)}
.txn-pg-num.active{background:var(--red);border-color:var(--red);color:#fff}

/* ── Hamburger button ── */
.hamburger{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:38px;height:38px;
  border-radius:var(--radius-xs);background:var(--surface-2);
  border:1px solid var(--border);cursor:pointer;
  flex-shrink:0;margin-right:10px;
}
.hamburger span{
  display:block;width:18px;height:2px;
  background:var(--text-2);border-radius:2px;
  transition:all .2s var(--ease);
}

/* ── Mobile overlay ── */
.mob-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.45);z-index:300;
  backdrop-filter:blur(2px);
}
.mob-overlay.open{display:block}

/* ── Mobile slide-out drawer ── */
.mob-drawer{
  position:fixed;top:0;left:0;bottom:0;
  width:280px;max-width:85vw;
  background:var(--surface);
  box-shadow:var(--shadow-lg);
  z-index:400;
  transform:translateX(-100%);
  transition:transform .28s var(--ease);
  display:flex;flex-direction:column;
  overflow-y:auto;
}
.mob-drawer.open{transform:translateX(0)}

.mob-drawer-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.mob-close{
  width:32px;height:32px;border-radius:var(--radius-xs);
  background:var(--surface-2);border:1px solid var(--border);
  font-size:14px;color:var(--text-2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}

.mob-drawer-user{
  display:flex;align-items:center;gap:12px;
  padding:18px;
  background:var(--red-soft);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.mob-drawer-avatar{
  width:44px;height:44px;border-radius:50%;
  background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;flex-shrink:0;
}
.mob-drawer-name{font-size:15px;font-weight:600;color:var(--text-1)}
.mob-drawer-acct{font-size:12px;color:var(--text-3);margin-top:2px}

.mob-drawer-nav{padding:12px 8px;flex:1}
.mob-nav-label{
  font-size:10px;font-weight:700;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--text-3);
  padding:8px 10px 4px;
}
.mob-nav-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 12px;border-radius:var(--radius-sm);
  font-size:14px;color:var(--text-2);
  cursor:pointer;transition:all .15s;
  text-decoration:none;margin-bottom:2px;
}
.mob-nav-item:hover,.mob-nav-item.active{
  background:var(--red-soft);color:var(--red);font-weight:500;
}
.mob-nav-item.mob-logout{color:var(--red);margin-top:4px}
.mob-nav-item.mob-logout:hover{background:var(--red-soft)}
.mob-nav-item span{font-size:16px;width:20px;text-align:center}

/* ── Responsive ── */
@media(max-width:1024px){
  .profile-grid{grid-template-columns:1fr}
  .profile-sidebar{position:static}
}

@media(max-width:900px){
  /* Login */
  .login-body{grid-template-columns:1fr}
  .login-left{display:none}
  .login-right{border-left:none}

  /* Nav — hide links, show hamburger */
  .hamburger{display:flex}
  .app-nav-links{display:none}
  .app-nav{padding:0 16px;gap:0}
  .app-nav-brand{margin-right:auto}
  /* Show only avatar in right side — hide username text */
  .nav-username{display:none}
  .nav-user-chip{padding:4px}

  /* Content */
  .page-content{padding:20px 16px}
  .dash-content{grid-template-columns:1fr}
  .balance-hero{grid-template-columns:1fr}
  .balance-right{display:none}

  /* Page header stacks on mobile */
  .page-header{flex-direction:column;gap:14px;align-items:flex-start}
  .quick-actions{width:100%;justify-content:flex-start}
  .btn-action{flex:1;justify-content:center}
}

@media(max-width:640px){
  /* Stats single col */
  .dash-stats{grid-template-columns:1fr}

  /* Forms */
  .form-grid-2,.edit-fields-grid,.profile-fields-grid{grid-template-columns:1fr}
  .form-grid-2 .form-group.full,.edit-fields-grid .form-group.full,.profile-field-group.full{grid-column:1}

  /* Transfer types */
  .transfer-type-grid{grid-template-columns:1fr}

  /* Public nav */
  .public-nav-links{display:none}

  /* Balance hero amount smaller */
  .balance-amount{font-size:34px}
  .balance-amount span{font-size:20px}

  /* Txn table — hide narration column on small screens */
  .txn-table th:nth-child(3),
  .txn-table td:nth-child(3){display:none}

  /* Pagination compact */
  .txn-pagination{flex-direction:column;align-items:flex-start;gap:8px}
  .txn-page-numbers{display:none}

  /* Step label hide on tiny */
  .step-label{display:none}
}

@media(max-width:480px){
  .app-nav-brand-name{display:none}
  .balance-meta{flex-wrap:wrap;gap:8px}
  .stat-card{padding:16px}
  .txn-table th:nth-child(2),
  .txn-table td:nth-child(2){display:none}
}


/* ── User dropdown chip ── */
#nav-user-chip { cursor:pointer; user-select:none; }

/* ── New page components (Deposit, Pay Bills, Beneficiaries, Loans) ── */

/* Cheque upload zone */
.cheque-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-md);border-radius:var(--radius);padding:28px 18px;cursor:pointer;transition:border-color var(--t),background var(--t);text-align:center;min-height:140px;background:var(--surface-2)}
.cheque-upload-zone:hover{border-color:var(--red);background:var(--red-soft)}
.cheque-upload-zone.has-file{border-color:var(--green);background:var(--green-soft)}
.cheque-upload-icon{font-size:28px;margin-bottom:8px;opacity:.5}
.cheque-upload-text{font-size:13px;font-weight:600;color:var(--text-2)}
.cheque-upload-sub{font-size:11px;color:var(--text-3);margin-top:4px}

/* Biller category grid */
.biller-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:10px}
.biller-cat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px 12px;cursor:pointer;transition:border-color var(--t),box-shadow var(--t),transform var(--t);text-align:center}
.biller-cat-card:hover{border-color:var(--red);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.biller-cat-card.selected{border-color:var(--red);background:var(--red-soft);box-shadow:0 0 0 3px var(--red-glow)}
.biller-cat-icon{font-size:26px;margin-bottom:8px}
.biller-cat-label{font-size:13px;font-weight:500;color:var(--text-1)}

/* Loan product grid */
.loan-product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:6px}
.loan-product-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:24px;cursor:pointer;transition:border-color var(--t),box-shadow var(--t),transform var(--t)}
.loan-product-card:hover{border-color:var(--red);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.loan-product-card.selected{border-color:var(--red);background:var(--red-soft);box-shadow:0 0 0 3px var(--red-glow)}
.loan-product-icon{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px}
.loan-product-title{font-size:16px;font-weight:700;color:var(--text-1);margin-bottom:6px}
.loan-product-desc{font-size:13px;color:var(--text-2);margin-bottom:14px;line-height:1.5}
.loan-product-meta{display:flex;flex-wrap:wrap;gap:7px}
.loan-tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:40px;background:var(--red-soft);color:var(--red)}
.loan-tag.green{background:var(--green-soft);color:var(--green)}
.loan-tag.blue{background:rgba(59,130,246,0.08);color:#2563EB}
.loan-tag.gold{background:rgba(234,179,8,0.09);color:#B45309}

/* Beneficiary grid */
.ben-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ben-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow-xs);transition:box-shadow var(--t)}
.ben-card:hover{box-shadow:var(--shadow-sm)}
.ben-avatar{width:44px;height:44px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;flex-shrink:0}
.ben-name{font-size:14px;font-weight:600;color:var(--text-1)}
.ben-bank{font-size:12px;color:var(--text-2);margin-top:2px}
.ben-acct-num{font-size:12px;color:var(--text-3);margin-top:1px;font-family:monospace}
.ben-tag{display:inline-block;margin-top:5px;font-size:10px;font-weight:600;padding:2px 7px;border-radius:40px;background:var(--red-soft);color:var(--red);text-transform:uppercase}
.ben-tag.intl{background:rgba(59,130,246,0.08);color:#2563EB}
.ben-actions{margin-left:auto;display:flex;flex-direction:column;gap:7px;align-items:flex-end}
.ben-btn{font-size:12px;font-weight:500;padding:5px 12px;border-radius:var(--radius-xs);cursor:pointer;transition:background var(--t),color var(--t);border:none}
.ben-btn.send{background:var(--red);color:#fff}.ben-btn.send:hover{background:var(--red-dark)}
.ben-btn.del{background:var(--surface-3);color:var(--text-2)}.ben-btn.del:hover{background:var(--red-soft);color:var(--red)}

/* Confirm detail rows (deposit/loan) */
.confirm-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}
.confirm-row:last-child{border-bottom:none}
.confirm-row .cr-label{color:var(--text-2)}
.confirm-row .cr-value{font-weight:600;color:var(--text-1)}

/* Transfer form sub-header */
.transfer-form-header{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.transfer-form-header-icon{width:44px;height:44px;background:var(--red-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.transfer-form-header h3{font-size:17px;font-weight:700;color:var(--text-1);margin-bottom:3px}
.transfer-form-header p{font-size:13px;color:var(--text-2);margin:0}
.si-label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:3px}
.si-value{font-size:14px;font-weight:600;color:var(--text-1)}
.si-balance{color:var(--green)}
.modal-go-home{width:100%;padding:12px;background:var(--red);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600;border:none;cursor:pointer;margin-top:18px;transition:background var(--t)}
.modal-go-home:hover{background:var(--red-dark)}
.modal-btn-row{display:flex;gap:10px;margin-top:16px}
.modal-cancel{flex:1;padding:11px;background:var(--surface-3);color:var(--text-2);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--t)}
.modal-cancel:hover{background:var(--border)}
.modal-confirm{flex:1;padding:11px;background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--t)}
.modal-confirm:hover{background:var(--red-dark)}
.modal-icon{font-size:36px;text-align:center;display:block;margin-bottom:12px}
.success-details{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-top:18px}
.success-detail-row{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);font-size:13px}
.success-detail-row:last-child{border-bottom:none}
.sd-label{color:var(--text-2)}.sd-value{font-weight:600;color:var(--text-1)}.sd-value.red{color:var(--red)}

@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:900px){.loan-product-grid{grid-template-columns:1fr 1fr}.ben-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.biller-cat-grid{grid-template-columns:repeat(4,1fr)}.loan-product-grid{grid-template-columns:1fr}.ben-grid{grid-template-columns:1fr}}

/* ================================================================
   GLOBAL FULLSCREEN LOADER — Option A (Crimson overlay)
   ================================================================ */

@keyframes vb-spin {
  to { transform: rotate(360deg); }
}
@keyframes vb-dot-pulse {
  0%, 100% { opacity: 0.3; transform: scale(0.7); }
  50%       { opacity: 1;   transform: scale(1);   }
}
@keyframes vb-loader-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes vb-loader-out {
  from { opacity: 1; }
  to   { opacity: 0; }
}

/* Overlay — covers the entire viewport */
.vb-loader {
  position: fixed;
  inset: 0;
  background: #C0182A;
  z-index: 9999;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  animation: vb-loader-in 0.2s ease both;
}
.vb-loader.active {
  display: flex;
}
.vb-loader.hiding {
  animation: vb-loader-out 0.3s ease both;
  pointer-events: none;
}

/* Spinner ring */
.vb-loader-ring {
  width: 56px;
  height: 56px;
  border: 4px solid rgba(255, 255, 255, 0.25);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: vb-spin 0.8s linear infinite;
}

/* Main message */
.vb-loader-msg {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.2px;
}

/* Sub message */
.vb-loader-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
  margin-top: -12px;
}

/* Three pulsing dots */
.vb-loader-dots {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}
.vb-loader-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.8);
  animation: vb-dot-pulse 1.2s ease infinite;
}
.vb-loader-dots span:nth-child(2) { animation-delay: 0.2s; }
.vb-loader-dots span:nth-child(3) { animation-delay: 0.4s; }

/* Inline section loader — txn table skeleton */
.section-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px;
  color: var(--text-3);
  font-size: 14px;
}
.section-loader-ring {
  width: 22px;
  height: 22px;
  border: 2.5px solid var(--border);
  border-top-color: var(--red);
  border-radius: 50%;
  animation: vb-spin 0.7s linear infinite;
  flex-shrink: 0;
}

