page { min-height: 100%; box-sizing: border-box; background: #f4f7fb; color: #1c1c1e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } view, text, input, button, textarea, picker, scroll-view { box-sizing: border-box; } button::after { border: 0; } .page-shell { min-height: 100vh; padding: 44rpx 32rpx 184rpx; } .eyebrow { color: #007aff; font-size: 26rpx; font-weight: 700; line-height: 1.35; } .page-heading { display: flex; align-items: center; margin-top: 10rpx; } .page-title { color: #1c1c1e; font-size: 50rpx; font-weight: 800; line-height: 1.15; } .page-subtitle { margin-top: 16rpx; color: #6e6e73; font-size: 28rpx; line-height: 1.5; } .surface { overflow: hidden; border: 1rpx solid #e5e5ea; border-radius: 16rpx; background: #ffffff; box-shadow: 0 4rpx 18rpx rgba(60, 60, 67, 0.06); } .primary-button, .secondary-button, .icon-button { display: flex; align-items: center; justify-content: center; min-height: 76rpx; border-radius: 12rpx; font-size: 30rpx; font-weight: 700; line-height: 1; transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1); transform-origin: center; } .primary-button { border: 0; background: #007aff; color: #ffffff; } .secondary-button, .icon-button { border: 1rpx solid #d1d1d6; background: #ffffff; color: #007aff; } .primary-button:active, .secondary-button:active, .icon-button:active { transform: scale(0.98); } .primary-button:active { background: #006ee6; } .secondary-button:active, .icon-button:active { background: #f2f7ff; } button[disabled]:active { transform: none; } .button-icon { margin-right: 10rpx; font-size: 34rpx; font-weight: 500; } .helper-text { color: #6e6e73; font-size: 26rpx; line-height: 1.55; } .field-label { color: #6e6e73; font-size: 26rpx; font-weight: 700; } .field-value { margin-top: 14rpx; color: #1c1c1e; font-size: 30rpx; font-weight: 700; } .status-banner { display: flex; align-items: center; justify-content: space-between; gap: 20rpx; margin-top: 24rpx; padding: 20rpx 22rpx; border: 1rpx solid #f1c4c4; border-radius: 12rpx; background: #fff2f2; color: #a83d3d; font-size: 25rpx; line-height: 1.45; } .status-action { flex: none; color: #007aff; font-weight: 700; } .loading-state { padding: 70rpx 32rpx; color: #6e6e73; font-size: 28rpx; text-align: center; } @media (prefers-reduced-motion: reduce) { .primary-button, .secondary-button, .icon-button { transition: none; } .primary-button:active, .secondary-button:active, .icon-button:active { transform: none; } }