:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
}

* {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  box-sizing: border-box;
}

html, body {
  overscroll-behavior-y: contain;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background-color: #E8EFF7;
  color: #173B68;
}

.tabular-nums {
  font-variant-numeric: tabular-nums;
}

.app-header-pad {
  padding-top: calc(var(--safe-top) + 16px);
}

.app-bottom-nav {
  padding-bottom: calc(var(--safe-bottom) + 10px);
}

.main-scroll {
  padding-bottom: calc(var(--safe-bottom) + 100px);
}

.btn-touch {
  user-select: none;
  -webkit-user-select: none;
  transition: transform 0.12s ease, opacity 0.12s ease, background-color 0.15s ease;
}

.btn-touch:active {
  transform: scale(0.96);
  opacity: 0.9;
}

.fintech-gradient {
  background: linear-gradient(155deg, #173B68 0%, #245791 55%, #2F75B5 100%);
}

.fab-shadow {
  box-shadow: 0 10px 24px -4px rgba(47, 117, 181, 0.55), 0 4px 10px rgba(23, 59, 104, 0.25);
}

.card-soft {
  box-shadow: 0 8px 24px -6px rgba(23, 59, 104, 0.08), 0 2px 6px rgba(23, 59, 104, 0.04);
}

.cushion-gradient {
  background: linear-gradient(135deg, #F2B84B 0%, #E89B3C 100%);
  box-shadow: 0 10px 24px -6px rgba(232, 155, 60, 0.45);
}

/* Bottom Sheet Animation */
.sheet-backdrop {
  transition: opacity 0.22s ease;
}

.sheet-panel {
  padding-bottom: calc(var(--safe-bottom) + 24px);
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.sheet-hidden .sheet-backdrop {
  opacity: 0;
  pointer-events: none;
}

.sheet-hidden .sheet-panel {
  transform: translateY(100%);
}

.sheet-hidden {
  pointer-events: none;
}

/* Circular progress ring */
.ring-progress {
  transition: stroke-dashoffset 0.5s ease;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
