@charset "utf-8";

/* ==========================================================================
   全局响应式内外边距 (5~100, 步长5)
   采用 CSS 变量控制：PC端使用 rem 等比缩放，手机端使用 px 保底防止过小
   ========================================================================== */

/* 1. 定义间距变量 (默认 PC 端使用 rem) */
:root {
    --sp-5: 0.05rem;  --sp-10: 0.1rem;  --sp-15: 0.15rem; --sp-20: 0.2rem;
    --sp-25: 0.25rem; --sp-30: 0.3rem;  --sp-35: 0.35rem; --sp-40: 0.4rem;
    --sp-45: 0.45rem; --sp-50: 0.5rem;  --sp-55: 0.55rem; --sp-60: 0.6rem;
    --sp-65: 0.65rem; --sp-70: 0.7rem;  --sp-75: 0.75rem; --sp-80: 0.8rem;
    --sp-85: 0.85rem; --sp-90: 0.9rem;  --sp-95: 0.95rem; --sp-100: 1rem;
}

/* 2. 平板端适配 (<1200px)：适当减小大间距的 rem 比例 */
@media screen and (max-width: 1200px) {
    :root {
        --sp-100: 0.8rem;  --sp-95: 0.76rem; --sp-90: 0.72rem; --sp-85: 0.68rem;
        --sp-80: 0.64rem;  --sp-75: 0.6rem;  --sp-70: 0.56rem; --sp-65: 0.52rem;
        --sp-60: 0.48rem;  --sp-55: 0.44rem; --sp-50: 0.4rem;  --sp-45: 0.36rem;
        --sp-40: 0.32rem;  --sp-35: 0.28rem; --sp-30: 0.24rem;
        /* 30以下的间距保持原 rem 比例即可 */
    }
}

/* 3. 手机端适配 (<768px)：改用固定 px 作为保底，防止 rem 缩放导致间距缩成一条线 */
@media screen and (max-width: 768px) {
    :root {
        --sp-100: 50px; --sp-95: 48px; --sp-90: 45px; --sp-85: 42px;
        --sp-80: 40px;  --sp-75: 38px; --sp-70: 35px; --sp-65: 32px;
        --sp-60: 30px;  --sp-55: 28px; --sp-50: 25px; --sp-45: 22px;
        --sp-40: 20px;  --sp-35: 18px; --sp-30: 15px; --sp-25: 12px;
        --sp-20: 10px;  --sp-15: 8px;  --sp-10: 5px;  --sp-5: 3px;
    }
}

/* ==========================================================================
   生成具体的 Padding 和 Margin 类名
   ========================================================================== */

/* Padding (内边距) */
.p5 { padding: var(--sp-5); } .pt-5 { padding-top: var(--sp-5); } .pb-5 { padding-bottom: var(--sp-5); } .pl-5 { padding-left: var(--sp-5); } .pr-5 { padding-right: var(--sp-5); }
.p10 { padding: var(--sp-10); } .pt-10 { padding-top: var(--sp-10); } .pb-10 { padding-bottom: var(--sp-10); } .pl-10 { padding-left: var(--sp-10); } .pr-10 { padding-right: var(--sp-10); }
.p15 { padding: var(--sp-15); } .pt-15 { padding-top: var(--sp-15); } .pb-15 { padding-bottom: var(--sp-15); } .pl-15 { padding-left: var(--sp-15); } .pr-15 { padding-right: var(--sp-15); }
.p20 { padding: var(--sp-20); } .pt-20 { padding-top: var(--sp-20); } .pb-20 { padding-bottom: var(--sp-20); } .pl-20 { padding-left: var(--sp-20); } .pr-20 { padding-right: var(--sp-20); }
.p25 { padding: var(--sp-25); } .pt-25 { padding-top: var(--sp-25); } .pb-25 { padding-bottom: var(--sp-25); } .pl-25 { padding-left: var(--sp-25); } .pr-25 { padding-right: var(--sp-25); }
.p30 { padding: var(--sp-30); } .pt-30 { padding-top: var(--sp-30); } .pb-30 { padding-bottom: var(--sp-30); } .pl-30 { padding-left: var(--sp-30); } .pr-30 { padding-right: var(--sp-30); }
.p35 { padding: var(--sp-35); } .pt-35 { padding-top: var(--sp-35); } .pb-35 { padding-bottom: var(--sp-35); } .pl-35 { padding-left: var(--sp-35); } .pr-35 { padding-right: var(--sp-35); }
.p40 { padding: var(--sp-40); } .pt-40 { padding-top: var(--sp-40); } .pb-40 { padding-bottom: var(--sp-40); } .pl-40 { padding-left: var(--sp-40); } .pr-40 { padding-right: var(--sp-40); }
.p45 { padding: var(--sp-45); } .pt-45 { padding-top: var(--sp-45); } .pb-45 { padding-bottom: var(--sp-45); } .pl-45 { padding-left: var(--sp-45); } .pr-45 { padding-right: var(--sp-45); }
.p50 { padding: var(--sp-50); } .pt-50 { padding-top: var(--sp-50); } .pb-50 { padding-bottom: var(--sp-50); } .pl-50 { padding-left: var(--sp-50); } .pr-50 { padding-right: var(--sp-50); }
.p55 { padding: var(--sp-55); } .pt-55 { padding-top: var(--sp-55); } .pb-55 { padding-bottom: var(--sp-55); } .pl-55 { padding-left: var(--sp-55); } .pr-55 { padding-right: var(--sp-55); }
.p60 { padding: var(--sp-60); } .pt-60 { padding-top: var(--sp-60); } .pb-60 { padding-bottom: var(--sp-60); } .pl-60 { padding-left: var(--sp-60); } .pr-60 { padding-right: var(--sp-60); }
.p65 { padding: var(--sp-65); } .pt-65 { padding-top: var(--sp-65); } .pb-65 { padding-bottom: var(--sp-65); } .pl-65 { padding-left: var(--sp-65); } .pr-65 { padding-right: var(--sp-65); }
.p70 { padding: var(--sp-70); } .pt-70 { padding-top: var(--sp-70); } .pb-70 { padding-bottom: var(--sp-70); } .pl-70 { padding-left: var(--sp-70); } .pr-70 { padding-right: var(--sp-70); }
.p75 { padding: var(--sp-75); } .pt-75 { padding-top: var(--sp-75); } .pb-75 { padding-bottom: var(--sp-75); } .pl-75 { padding-left: var(--sp-75); } .pr-75 { padding-right: var(--sp-75); }
.p80 { padding: var(--sp-80); } .pt-80 { padding-top: var(--sp-80); } .pb-80 { padding-bottom: var(--sp-80); } .pl-80 { padding-left: var(--sp-80); } .pr-80 { padding-right: var(--sp-80); }
.p85 { padding: var(--sp-85); } .pt-85 { padding-top: var(--sp-85); } .pb-85 { padding-bottom: var(--sp-85); } .pl-85 { padding-left: var(--sp-85); } .pr-85 { padding-right: var(--sp-85); }
.p90 { padding: var(--sp-90); } .pt-90 { padding-top: var(--sp-90); } .pb-90 { padding-bottom: var(--sp-90); } .pl-90 { padding-left: var(--sp-90); } .pr-90 { padding-right: var(--sp-90); }
.p95 { padding: var(--sp-95); } .pt-95 { padding-top: var(--sp-95); } .pb-95 { padding-bottom: var(--sp-95); } .pl-95 { padding-left: var(--sp-95); } .pr-95 { padding-right: var(--sp-95); }
.p100 { padding: var(--sp-100); } .pt-100 { padding-top: var(--sp-100); } .pb-100 { padding-bottom: var(--sp-100); } .pl-100 { padding-left: var(--sp-100); } .pr-100 { padding-right: var(--sp-100); }

/* Margin (外边距) */
.m5 { margin: var(--sp-5); } .mt-5 { margin-top: var(--sp-5); } .mb-5 { margin-bottom: var(--sp-5); } .ml-5 { margin-left: var(--sp-5); } .mr-5 { margin-right: var(--sp-5); }
.m10 { margin: var(--sp-10); } .mt-10 { margin-top: var(--sp-10); } .mb-10 { margin-bottom: var(--sp-10); } .ml-10 { margin-left: var(--sp-10); } .mr-10 { margin-right: var(--sp-10); }
.m15 { margin: var(--sp-15); } .mt-15 { margin-top: var(--sp-15); } .mb-15 { margin-bottom: var(--sp-15); } .ml-15 { margin-left: var(--sp-15); } .mr-15 { margin-right: var(--sp-15); }
.m20 { margin: var(--sp-20); } .mt-20 { margin-top: var(--sp-20); } .mb-20 { margin-bottom: var(--sp-20); } .ml-20 { margin-left: var(--sp-20); } .mr-20 { margin-right: var(--sp-20); }
.m25 { margin: var(--sp-25); } .mt-25 { margin-top: var(--sp-25); } .mb-25 { margin-bottom: var(--sp-25); } .ml-25 { margin-left: var(--sp-25); } .mr-25 { margin-right: var(--sp-25); }
.m30 { margin: var(--sp-30); } .mt-30 { margin-top: var(--sp-30); } .mb-30 { margin-bottom: var(--sp-30); } .ml-30 { margin-left: var(--sp-30); } .mr-30 { margin-right: var(--sp-30); }
.m35 { margin: var(--sp-35); } .mt-35 { margin-top: var(--sp-35); } .mb-35 { margin-bottom: var(--sp-35); } .ml-35 { margin-left: var(--sp-35); } .mr-35 { margin-right: var(--sp-35); }
.m40 { margin: var(--sp-40); } .mt-40 { margin-top: var(--sp-40); } .mb-40 { margin-bottom: var(--sp-40); } .ml-40 { margin-left: var(--sp-40); } .mr-40 { margin-right: var(--sp-40); }
.m45 { margin: var(--sp-45); } .mt-45 { margin-top: var(--sp-45); } .mb-45 { margin-bottom: var(--sp-45); } .ml-45 { margin-left: var(--sp-45); } .mr-45 { margin-right: var(--sp-45); }
.m50 { margin: var(--sp-50); } .mt-50 { margin-top: var(--sp-50); } .mb-50 { margin-bottom: var(--sp-50); } .ml-50 { margin-left: var(--sp-50); } .mr-50 { margin-right: var(--sp-50); }
.m55 { margin: var(--sp-55); } .mt-55 { margin-top: var(--sp-55); } .mb-55 { margin-bottom: var(--sp-55); } .ml-55 { margin-left: var(--sp-55); } .mr-55 { margin-right: var(--sp-55); }
.m60 { margin: var(--sp-60); } .mt-60 { margin-top: var(--sp-60); } .mb-60 { margin-bottom: var(--sp-60); } .ml-60 { margin-left: var(--sp-60); } .mr-60 { margin-right: var(--sp-60); }
.m65 { margin: var(--sp-65); } .mt-65 { margin-top: var(--sp-65); } .mb-65 { margin-bottom: var(--sp-65); } .ml-65 { margin-left: var(--sp-65); } .mr-65 { margin-right: var(--sp-65); }
.m70 { margin: var(--sp-70); } .mt-70 { margin-top: var(--sp-70); } .mb-70 { margin-bottom: var(--sp-70); } .ml-70 { margin-left: var(--sp-70); } .mr-70 { margin-right: var(--sp-70); }
.m75 { margin: var(--sp-75); } .mt-75 { margin-top: var(--sp-75); } .mb-75 { margin-bottom: var(--sp-75); } .ml-75 { margin-left: var(--sp-75); } .mr-75 { margin-right: var(--sp-75); }
.m80 { margin: var(--sp-80); } .mt-80 { margin-top: var(--sp-80); } .mb-80 { margin-bottom: var(--sp-80); } .ml-80 { margin-left: var(--sp-80); } .mr-80 { margin-right: var(--sp-80); }
.m85 { margin: var(--sp-85); } .mt-85 { margin-top: var(--sp-85); } .mb-85 { margin-bottom: var(--sp-85); } .ml-85 { margin-left: var(--sp-85); } .mr-85 { margin-right: var(--sp-85); }
.m90 { margin: var(--sp-90); } .mt-90 { margin-top: var(--sp-90); } .mb-90 { margin-bottom: var(--sp-90); } .ml-90 { margin-left: var(--sp-90); } .mr-90 { margin-right: var(--sp-90); }
.m95 { margin: var(--sp-95); } .mt-95 { margin-top: var(--sp-95); } .mb-95 { margin-bottom: var(--sp-95); } .ml-95 { margin-left: var(--sp-95); } .mr-95 { margin-right: var(--sp-95); }
.m100 { margin: var(--sp-100); } .mt-100 { margin-top: var(--sp-100); } .mb-100 { margin-bottom: var(--sp-100); } .ml-100 { margin-left: var(--sp-100); } .mr-100 { margin-right: var(--sp-100); }
