@import '@nutui/nutui-taro/dist/style.css'; @import './styles/variables'; page { min-height: 100%; background: $bg; color: $text-1; font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif; -webkit-font-smoothing: antialiased; } view, text, scroll-view, image { box-sizing: border-box; } .page-shell { min-height: 100vh; padding: 14px 16px 24px; display: flex; flex-direction: column; gap: 14px; } // Utility classes .row-between { display: flex; align-items: center; justify-content: space-between; } .inline-tags { display: flex; flex-wrap: wrap; gap: 8px; } .caption-text { font-size: 12px; line-height: 1.6; color: $text-4; } .value-text { font-size: 14px; line-height: 1.7; color: $text-2; } .status-success { color: $primary; } .status-danger { color: $red; } .empty-wrap { padding: 28px 0 10px; } .safe-bottom { padding-bottom: calc(120px + env(safe-area-inset-bottom)); } // Field input (used in checkout etc.) .field-input { width: 100%; height: 44px; border: 1.5px solid $border; border-radius: $r-md; padding: 0 14px; font-size: 13px; color: $text-1; background: $bg; outline: none; font-family: inherit; transition: border-color 0.2s; &::placeholder { color: $text-5; } &:focus { border-color: $primary; } } // Animations @keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } @keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } // Overlay .overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.45); z-index: 200; }