:root {
  --primary: #4A90E2;
  --bg: #F5F9FF;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: 'Vazirmatn', system-ui, sans-serif;
  background: var(--bg);
  -webkit-tap-highlight-color: transparent;
}

body {
  overscroll-behavior-y: none;
}

/* hide scrollbars on horizontal pickers */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* FAB anchored to bottom-right of the centered app column, above bottom nav */
.fab-btn {
  position: fixed;
  bottom: 88px;
  /* Center calc so it hugs the right edge of the max-w-md (28rem) column */
  right: max(20px, calc(50% - 14rem + 20px));
}

/* loading spinner */
.spinner {
  width: 36px;
  height: 36px;
  border: 4px solid #d6e4f5;
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* bottom sheet entrance */
.sheet-in {
  animation: sheetUp 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes sheetUp {
  from { transform: translateY(100%); opacity: 0.6; }
  to { transform: translateY(0); opacity: 1; }
}

/* input focus ring */
input:focus { box-shadow: inset 0 0 0 2px var(--primary) !important; }

/* smooth text */
* { -webkit-font-smoothing: antialiased; }