* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'DM Sans', system-ui, sans-serif; transition: background-color 0.3s, color 0.3s; }
.font-mono { font-family: 'DM Mono', monospace; }
.rate-input { transition: opacity 0.25s ease, transform 0.25s ease; }
.rate-input-hidden { opacity: 0; transform: translateY(4px); pointer-events: none; }
.rate-input-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.swap-btn svg { transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.swap-btn.swapped svg { transform: rotate(180deg); }
.row-highlight { transition: background-color 0.2s ease; }
.expand-section { overflow: hidden; transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease; }
.expand-section.collapsed { max-height: 0; opacity: 0; }
.expand-section.expanded { opacity: 1; }
.skeleton-pulse { animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.fav-star { transition: transform 0.2s ease, color 0.2s ease; }
.fav-star:hover { transform: scale(1.2); }
.lang-dropdown { transition: opacity 0.2s, transform 0.2s; }
.tricolor-bar { background: linear-gradient(90deg, #002B7F 33.33%, #FFCD00 33.33%, #FFCD00 66.66%, #CE1126 66.66%); height: 3px; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
.currency-row:last-child .row-divider { display: none; }
@media (hover: none) {
  .rate-input-hidden { opacity: 1; transform: translateY(0); pointer-events: auto; }
}
