/* ============================================================
   大会邀请与报名 · 前台样式（v24 严格还原设计稿：深蓝科技风）
   基准：设计稿画板 @1x ≈ 750px，容器 7.5rem / 面板 6.4rem（素材自然宽，零拉伸）
        html font-size = 100vw / 7.5，1rem = 100 设计px；≥750px 锁定 100px
   素材：bg.jpg 页面底 / banner.jpg 子页主视觉 / banner2.jpg 主页主视觉
        bg1~bg4.png 卡片框（左上六边形徽标已内嵌，标题直接以文字叠放）
        home-icon-1~10.png 宫格 / btn.png 胶囊按钮
        radio.png radio-on.png 单选 / icon.png 红色圆点
   色值均取自设计稿逐点采样，面板底色靠素材 alpha=230 与页面底色合成，CSS 不得再铺白
   ============================================================ */

/* ---------- 缩放基准 ---------- */
html { font-size: calc(100vw / 7.5); }

@media (min-width: 750px) {
    html { font-size: 100px; }
}

/* ---------- 设计令牌 ---------- */
:root {
    --bg-blue: #0011DD;      /* 页面底色（设计稿实测，非偏暗的 #0a1fb8） */
    --blue-deep: #00089b;    /* 底部渐变收尾 */
    --blue-strong: #011AE9;  /* 强调小标题 / 用餐日期 */
    --th-bg: #001AE9;        /* 表头实色，设计稿无渐变 */
    --th-fg: #7DF7FF;        /* 表头青色字 */
    --row-a: #E5E7FC;        /* 奇数行，与面板合成色一致 */
    --row-b: #D7F2F9;        /* 偶数行浅青 */
    --line: #79FFF8;         /* 表格网格线（青色，非灰紫） */
    --ink: #000000;          /* 正文黑 */
    --ink-2: #2b3556;        /* 次级文字 */
    --ink-3: #6b7495;        /* 占位文字 */
    --panel-pad-x: 0.45rem;  /* 面板左右内缩（参考设计稿，内容距边框留足呼吸空间） */
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html, body { margin: 0; padding: 0; }

body {
    min-height: 100vh;
    background: var(--bg-blue) url('/assets/img/bg.jpg') no-repeat bottom center / 100% auto;
    color: #fff;
    font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.2rem;
    line-height: 1.6;
}

[v-cloak] { display: none; }

img { max-width: 100%; }

#app { max-width: 7.5rem; margin: 0 auto; padding-bottom: 15vh; }

/* ---------- 主视觉 Banner（图内已含 logo 与标题，不叠加文字） ---------- */
.banner { display: block; line-height: 0; }

.banner__img { display: block; width: 100%; }

/* ---------- 首页 10 宫格：两列 2.88rem + 间距 0.64rem = 6.4rem，与面板左右对齐 ---------- */
.home { padding: 0 0.55rem; }

.tiles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 0.64rem;
    row-gap: 0.32rem;
    margin-top: 0.4rem;
}

.tile img {
    display: block;
    width: 100%;
    transition: transform .15s ease;
}

.tile:active img { transform: scale(.965); }

/* ---------- 子页面通用外壳 ---------- */
.page { padding: 0 0.55rem; }

.panel {
    position: relative;
    width: 6.4rem;
    margin: 0.9rem auto 0;
    /* 右侧内缩减半，给表格更多横向空间（顶 0.9 / 右 panel-pad-x 的一半 / 底 0.45 / 左 panel-pad-x） */
    padding: 0.9rem calc(var(--panel-pad-x) / 2) 0.45rem var(--panel-pad-x);
    background-image: url('/assets/img/bg2.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}

/* 按内容量换框图档位：min-height 取素材自然高，减少四角装饰拉伸形变 */
.panel--f1 { min-height: 6.38rem; background-image: url('/assets/img/bg1.png'); }
.panel--f2 { min-height: 6.95rem; background-image: url('/assets/img/bg2.png'); }
.panel--f3 { min-height: 7.68rem; background-image: url('/assets/img/bg3.png'); }
.panel--f4 { min-height: 7.52rem; background-image: url('/assets/img/bg4.png'); }

/* 标题文字叠放层：六边形徽标框线已内嵌于 bg1~bg4 素材左上角（x 20..250 / y 0..55，与旧覆盖层逐像素一致），此处只放文字，固定尺寸不随面板纵向拉伸 */
.panel__badge {
    position: absolute;
    top: 0;
    left: 0;
    width: 2.52rem;
    height: 0.62rem;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 六边形在框体内偏右（实测框体 x 37..242，中心 140），文字相应右移 */
    padding-left: 0.28rem;
    color: #fff;
    font-size: 0.32rem;
    font-weight: 700;
    letter-spacing: 0.02rem;
    line-height: 1;
}

.panel__badge span { display: block; }

.panel__body { color: var(--ink); }

.soon { padding: 0.4rem 0; text-align: center; color: var(--ink-3); font-size: 0.2rem; }

/* ---------- 会议议程：行 pitch 0.44rem，组间额外 0.45rem（实测设计稿行距 44 / 组隔 89） ---------- */
.agenda { padding: 0.02rem 0 0; }

.agenda-group { margin-bottom: 0.45rem; }

.agenda-group__row {
    display: flex;
    align-items: flex-start;
    min-height: 0.44rem;
}

.agenda-group__time {
    flex: none;
    width: 1.95rem;
    padding-right: 0.1rem;
    text-align: right;
    white-space: nowrap;
    font-size: 0.276rem;
    font-weight: 400;
    line-height: 0.44rem;
    color: var(--ink);
}

.agenda-group__dot {
    flex: none;
    width: 0.22rem;
    height: 0.23rem;
    margin: 0.1rem 0.26rem 0 0.19rem;
    background: url('/assets/img/icon.png') center / contain no-repeat;
}

.agenda-group__title {
    flex: 1;
    font-size: 0.267rem;
    font-weight: 400;
    line-height: 0.44rem;
    color: var(--ink);
    white-space: pre-line;
}

/* ---------- 表格（用餐安排 / 会务联系） ---------- */
.tbl {
    width: 100%;
    margin-top: 0.12rem;
    border-collapse: collapse;
    table-layout: fixed;
}

.tbl th {
    padding: 0 0.08rem;
    background: var(--th-bg);
    color: var(--th-fg);
    font-size: 0.19rem;
    font-weight: 700;
    letter-spacing: 0.02rem;
    line-height: 0.435rem;
    border: 1px solid var(--th-bg);
    white-space: nowrap;
}

.tbl td {
    padding: 0 0.08rem;
    border: 1px solid var(--line);
    text-align: center;
    vertical-align: middle;
    font-size: 0.19rem;
    color: var(--ink);
    line-height: 0.435rem;
    word-break: break-word;
}

.tbl tbody tr:nth-child(odd) { background: var(--row-a); }
.tbl tbody tr:nth-child(even) { background: var(--row-b); }

.tbl--left { text-align: left; padding-left: 0.14rem; }

/* 用餐：列宽按设计稿实测比例（table-layout:fixed 由首行 th 决定） */
.tbl--meal th:nth-child(1) { width: 26.1%; }
.tbl--meal th:nth-child(2) { width: 21.4%; }
.tbl--meal th:nth-child(3) { width: 16.2%; }
.tbl--meal th:nth-child(4) { width: 36.3%; }

/* 会务联系：首列（类别）可换行，联系人 / 联系方式单行不换行，行高回落避免撑高框图 */
.tbl--contact th:nth-child(1) { width: 48%; }
.tbl--contact th:nth-child(2) { width: 16%; }
.tbl--contact th:nth-child(3) { width: 36%; }

.tbl--contact td { text-align: left; padding-left: 0.14rem; }
.tbl--contact td:nth-child(1) { white-space: normal; word-break: break-word; }
.tbl--contact td:nth-child(2),
.tbl--contact td:nth-child(3) { white-space: nowrap; }

.tel { color: var(--ink); text-decoration: none; }

/* ---------- 用餐安排 ---------- */
.meal-date { margin-bottom: 0.22rem; }

.meal-date__head {
    display: flex;
    align-items: center;
    margin-top: 0.1rem;
    font-size: 0.26rem;
    font-weight: 700;
    letter-spacing: 0.01rem;
    color: var(--blue-strong);
}

.dot {
    flex: none;
    width: 0.22rem;
    height: 0.23rem;
    margin-right: 0.1rem;
    background: url('/assets/img/icon.png') center / contain no-repeat;
}

.meal-notes { margin-top: 0.24rem; }

.meal-notes p {
    position: relative;
    margin: 0.14rem 0;
    padding-left: 0.36rem;
    font-size: 0.21rem;
    color: var(--ink);
    line-height: 1.7;
    text-indent: 0;
}

.meal-notes p::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.07rem;
    width: 0.22rem;
    height: 0.23rem;
    background: url('/assets/img/icon.png') center / contain no-repeat;
}

.meal-notes b { color: var(--ink); font-weight: normal; }

/* ---------- 会务联系说明（设计稿表格上方无文字，段落移到表格之后） ---------- */
.contact-intro { margin-top: 0.24rem; }

.contact-intro p {
    margin: 0.06rem 0;
    font-size: 0.19rem;
    color: var(--ink-2);
    line-height: 1.7;
    text-indent: 0;
}

/* ---------- 报名表单：标签右对齐，输入框纯白无边框 ---------- */
/* 实测：标签文字左起 79 / 输入框 217..554（面板 640 基准），故表单左右各自内缩 */
.form { padding: 0.04rem 0.61rem 0 0.54rem; }

.form-row {
    display: flex;
    align-items: center;
    /* 行 pitch 0.78rem = 输入框 0.58rem + 上下 margin 各 0.1rem（相邻 margin 合并后取最大值） */
    min-height: 0.58rem;
    margin: 0.1rem 0;
}

.form-row__label {
    flex: none;
    width: 1.45rem;
    padding-right: 0.3rem;
    text-align: left;
    white-space: nowrap;
    font-size: 0.24rem;
    color: var(--ink);
}

.form-row__input {
    flex: 1;
    min-width: 0;
    height: 0.58rem;
    padding: 0 0.18rem;
    border: 0;
    border-radius: 0.15rem;
    background: #fff;
    font-size: 0.24rem;
    color: var(--ink);
    outline: none;
}

.form-row__input--inline { display: flex; align-items: center; padding: 0 0.06rem 0 0.18rem; }

.input-inner {
    flex: 1;
    min-width: 0;
    height: 100%;
    padding: 0 0.12rem;
    border: 0;
    background: transparent;
    font-size: 0.24rem;
    color: var(--ink);
    outline: none;
}

/* 手机号行：验证码按钮前的竖分隔线（设计稿有）；实测按钮约 86x30 */
.btn-code {
    position: relative;
    flex: none;
    height: 0.3rem;
    margin-right: 0.1rem;
    padding: 0 0.1rem 0 0.14rem;
    border: 0;
    border-radius: 0.15rem;
    background: var(--th-bg);
    color: #fff;
    font-size: 0.17rem;
    line-height: 0.3rem;
    white-space: nowrap;
}

.btn-code::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.05rem;
    bottom: 0.05rem;
    width: 1px;
    background: #c9d3ee;
}

.btn-code:disabled { opacity: .55; }

.radios { display: flex; flex: 1; gap: 0.75rem; }

.radio {
    display: flex;
    align-items: center;
    font-size: 0.24rem;
    color: var(--ink);
    cursor: pointer;
}

.radio__dot {
    width: 0.37rem;
    height: 0.37rem;
    margin-right: 0.2rem;
    background: url('/assets/img/radio.png') center / contain no-repeat;
}

.radio__dot.is-on { background-image: url('/assets/img/radio-on.png'); }

.radio em { font-style: normal; }

.form-actions { margin-top: 0.3rem; }

/* 提交按钮：btn.png 自然尺寸 2.06rem x 0.58rem */
.btn-main {
    display: block;
    width: 2.6rem;
    height: 0.72rem;
    margin: 0 auto;
    border: 0;
    border-radius: 0.36rem;
    background: url('/assets/img/btn.png') center / 100% 100% no-repeat;
    color: #fff;
    font-size: 0.3rem;
    font-weight: 700;
    letter-spacing: 0.05rem;
    text-shadow: 0 1px 3px rgba(0, 10, 60, .45);
}

.btn-main:disabled { opacity: .65; }

.btn-main--sheet { width: 100%; height: 0.5rem; margin-top: 0.2rem; font-size: 0.19rem; letter-spacing: 0.03rem; }

/* ---------- 富文本栏目 ---------- */
.rich { padding: 0.04rem 0.06rem; }

.rich p {
    margin: 0.12rem 0;
    font-size: 0.19rem;
    color: var(--ink);
    line-height: 1.9;
    text-indent: 2em;
}

.rich h2, .rich h3, .rich h4 {
    margin: 0.18rem 0 0.1rem;
    color: var(--blue-strong);
    font-size: 0.21rem;
}

.rich ul, .rich ol {
    margin: 0.12rem 0;
    padding-left: 0.28rem;
    color: var(--ink);
    font-size: 0.19rem;
    line-height: 1.9;
}

.rich img { display: block; width: 100%; border-radius: 0.08rem; margin: 0.12rem 0; }

.rich a { color: var(--blue-strong); }

.rich__center {
    text-align: center;
    text-indent: 0;
    font-weight: 700;
    letter-spacing: 0.03rem;
    color: var(--blue-strong) !important;
}

/* ---------- 演讲嘉宾 ---------- */
.guest-swipe { margin: 0.08rem 0; }

.guest { padding: 0.1rem 0.06rem; text-align: center; }

.guest__avatar {
    display: block;
    width: 0.96rem;
    height: 1.24rem;
    margin: 0 auto;
    border-radius: 0.06rem;
    object-fit: cover;
    background: #fff;
    box-shadow: 0 2px 10px rgba(10, 25, 90, .18);
}

.guest__avatar--text {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #1a3ae0, var(--bg-blue));
    color: #fff;
    font-size: 0.4rem;
    font-weight: 700;
}

.guest__name { margin-top: 0.1rem; font-size: 0.2rem; font-weight: 700; color: var(--ink); }

.guest__title { margin-top: 0.04rem; font-size: 0.15rem; color: var(--ink-2); line-height: 1.5; }

/* ---------- 展览 ---------- */
.exh { padding: 0 0.06rem; }

.exh__img { display: block; width: 100%; border-radius: 0.06rem; }

/* ---------- 顶部返回箭头（rem 缩放，保留 44px 触摸热区；宽屏下对齐 7.5rem 内容列） ---------- */
.back-arrow {
    position: fixed;
    top: 0.2rem;
    left: max(0.2rem, calc(50% - 3.65rem));
    z-index: 100;
    min-width: 44px;
    min-height: 44px;
    width: 0.56rem;
    height: 0.56rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(0, 8, 120, .5);
    color: #fff;
    line-height: 1;
    cursor: pointer;
}
.back-arrow img {
    width: 0.3rem;
    height: 0.3rem;
    display: block;
}

.dock-space { height: 1.1rem; }

.dock {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    display: flex;
    gap: 0.12rem;
    max-width: 7.5rem;
    margin: 0 auto;
    padding: 0.2rem 0.55rem calc(0.2rem + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(0, 17, 221, 0) 0%, rgba(0, 8, 155, .88) 42%, rgba(0, 6, 130, .96) 100%);
}

.dock__btn {
    flex: 1;
    min-height: 44px;
    height: 0.6rem;
    border: 0;
    border-radius: 0.3rem;
    background: url('/assets/img/btn.png') center / 100% 100% no-repeat;
    color: #fff;
    font-size: 0.22rem;
    font-weight: 700;
    letter-spacing: 0.03rem;
}

/* ---------- 电子票 / 验证弹框（沿用同一套视觉语言） ---------- */
.ticket {
    width: 4.2rem;
    max-width: 86vw;
    padding: 0.3rem 0.26rem 0.24rem;
    border-radius: 0.14rem;
    background: var(--row-a);
    color: var(--ink);
}

.ticket__head {
    font-size: 0.24rem;
    font-weight: 700;
    letter-spacing: 0.04rem;
    text-align: center;
    color: var(--blue-strong);
}

.ticket__qr {
    width: 2rem;
    height: 2rem;
    margin: 0.2rem auto 0.12rem;
    padding: 0.08rem;
    background: #fff;
    border-radius: 0.08rem;
}

.ticket__qr img, .ticket__qr canvas { display: block; }

.ticket__no { text-align: center; font-size: 0.17rem; color: var(--ink-2); letter-spacing: 0.01rem; }

.ticket__info { margin-top: 0.08rem; text-align: center; font-size: 0.2rem; font-weight: 600; }

.ticket__hint { margin: 0.06rem 0 0.04rem; text-align: center; font-size: 0.15rem; color: var(--ink-3); }

.ticket__status {
    margin: 0.26rem 0 0.1rem;
    text-align: center;
    font-size: 0.22rem;
    font-weight: 700;
    color: var(--blue-strong);
    line-height: 1.6;
}

.ticket__status.is-warn { color: #c8341f; }

.sheet {
    width: 4.2rem;
    max-width: 90vw;
    padding: 0.3rem 0.52rem 0.24rem;
    border-radius: 0.14rem;
    background: var(--row-a);
    color: var(--ink);
}

.sheet__title {
    margin-bottom: 0.06rem;
    font-size: 0.23rem;
    font-weight: 700;
    letter-spacing: 0.02rem;
    text-align: center;
    color: var(--blue-strong);
}

.sheet__tip { margin: 0.1rem 0 0.06rem; font-size: 0.16rem; color: var(--ink-2); text-align: center; }

.sheet .form-row__label { width: 0.9rem; font-size: 0.18rem; padding-right: 0.12rem; }

/* ---------- Vant 覆写：组件内部为固定 px，按新色基与字号对齐设计稿 ---------- */
.van-popup--round { background: var(--row-a); }

.van-toast { font-size: 14px; }

.van-popup__close-icon { color: var(--blue-strong); }
