/* eztravel.love 温暖轻奢主题 */

:root{
    --ez-primary:#ff5f7e;
    --ez-primary-dark:#e94769;
    --ez-secondary:#806cff;

    --ez-gradient:linear-gradient(
        135deg,
        #ff7190 0%,
        #ff5f7e 45%,
        #806cff 100%
    );

    --ez-gradient-soft:linear-gradient(
        135deg,
        #fff1f4 0%,
        #f3f0ff 100%
    );

    --ez-background:#f7f7fa;
    --ez-card:#ffffff;
    --ez-text:#1f2430;
    --ez-muted:#8b8f9c;
    --ez-border:#ececf2;

    --ez-success:#22a06b;
    --ez-warning:#f59e0b;
    --ez-danger:#e5484d;

    --ez-radius-small:10px;
    --ez-radius-medium:16px;
    --ez-radius-large:22px;

    --ez-shadow-small:
        0 5px 16px rgba(31,36,48,.06);

    --ez-shadow-medium:
        0 12px 32px rgba(31,36,48,.09);

    --ez-shadow-primary:
        0 12px 25px rgba(255,95,126,.25);

    --ez-page-width:520px;
}

*{
    box-sizing:border-box;
}

html{
    -webkit-text-size-adjust:100%;
    scroll-behavior:smooth;
}

body{
    color:var(--ez-text);
    background:var(--ez-background);
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Microsoft YaHei",
        Arial,
        sans-serif;
    -webkit-font-smoothing:antialiased;
}

/* 公共页面容器 */
.ez-page{
    width:100%;
    max-width:var(--ez-page-width);
    min-height:100vh;
    margin:0 auto;
    padding:20px 16px 100px;
}

/* 公共白色卡片 */
.ez-card{
    background:var(--ez-card);
    border:1px solid rgba(236,236,242,.75);
    border-radius:var(--ez-radius-large);
    box-shadow:var(--ez-shadow-small);
}

/* 公共标题 */
.ez-title{
    margin:0;
    color:var(--ez-text);
    font-size:26px;
    font-weight:800;
    letter-spacing:-.5px;
}

.ez-subtitle{
    margin-top:6px;
    color:var(--ez-muted);
    font-size:14px;
    line-height:1.6;
}

/* 主要渐变按钮 */
.ez-primary-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:50px;
    border:0;
    border-radius:14px;
    color:#fff;
    background:var(--ez-gradient);
    box-shadow:var(--ez-shadow-primary);
    font-size:16px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        opacity .18s ease;
}

.ez-primary-btn:hover{
    transform:translateY(-1px);
    box-shadow:
        0 15px 30px rgba(255,95,126,.3);
}

.ez-primary-btn:active{
    transform:scale(.98);
}

/* 次要按钮 */
.ez-secondary-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 18px;
    border:1px solid #ffd4dd;
    border-radius:13px;
    color:var(--ez-primary-dark);
    background:#fff3f6;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
}

/* 输入框 */
.ez-input,
.ez-select,
.ez-textarea{
    width:100%;
    border:1px solid var(--ez-border);
    border-radius:14px;
    color:var(--ez-text);
    background:#fff;
    padding:13px 15px;
    font-size:15px;
    font-family:inherit;
    outline:none;
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.ez-input:focus,
.ez-select:focus,
.ez-textarea:focus{
    border-color:#ff91a7;
    box-shadow:
        0 0 0 4px rgba(255,95,126,.1);
}

.ez-textarea{
    min-height:110px;
    resize:vertical;
}

/* 状态标签 */
.ez-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    line-height:1;
}

.ez-tag-primary{
    color:var(--ez-primary-dark);
    background:#fff0f4;
}

.ez-tag-success{
    color:#168454;
    background:#eaf8f1;
}

.ez-tag-warning{
    color:#a76700;
    background:#fff6dc;
}

.ez-tag-muted{
    color:#777c88;
    background:#f0f1f5;
}

/* 提示框 */
.ez-message{
    padding:13px 15px;
    border-radius:13px;
    font-size:14px;
    line-height:1.6;
}

.ez-message-success{
    color:#168454;
    background:#eaf8f1;
}

.ez-message-error{
    color:#c83242;
    background:#fff0f2;
}

/* 渐变会员卡 */
.ez-gradient-card{
    color:#fff;
    background:var(--ez-gradient);
    border-radius:var(--ez-radius-large);
    box-shadow:var(--ez-shadow-primary);
}

/* 细分隔线 */
.ez-divider{
    width:100%;
    height:1px;
    background:var(--ez-border);
}

/* 空数据状态 */
.ez-empty{
    padding:45px 20px;
    color:var(--ez-muted);
    text-align:center;
}

/* 手机安全区域 */
@supports(
    padding-bottom:env(safe-area-inset-bottom)
){
    .ez-page{
        padding-bottom:
            calc(100px + env(safe-area-inset-bottom));
    }
}