@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap');

body { 
    font-family: 'Noto Sans SC', 'Inter', 'Plus Jakarta Sans', sans-serif; 
    background: linear-gradient(145deg, #f1f5f9 0%, #f8fafc 100%);
    min-height: 100vh;
}

input[type="number"]::-webkit-inner-spin-button, 
input[type="number"]::-webkit-outer-spin-button { 
    -webkit-appearance: none; 
    margin: 0; 
}

.focus-ring:focus { 
    border-color: #4f46e5; 
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.15);
    outline: none; 
}

.transition-all { 
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
}

/* 卡片微光效果 */
.card-glow {
    position: relative;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.5);
}
.card-glow::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(145deg, rgba(255,255,255,0.8), rgba(255,255,255,0.2));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

/* 自定义选中按钮微动 */
.radio-option {
    transition: all 0.2s ease;
}
.radio-option:hover {
    transform: translateY(-1px);
}

/* 数字跳动效果 */
.mono-number {
    font-feature-settings: "tnum";
    transition: color 0.2s;
}