/**
 * mylost.test - Layout-specific styles
 * 从老 EC_JPDFS 失物找回主站 layout 移植(.ml-* 类 + 首页 section)
 *
 * 包含:
 *   - .ml-container / .ml-topbar / .ml-header / .ml-nav / .ml-footer  (layout 骨架)
 *   - #intro    (Hero 全屏背景图轮播 + 中央大字 + 双 CTA)
 *   - #about    (关于服务:左图右文 + ✓ 列表)
 *   - #services (4 服务卡片)
 *   - #call-to-action (蓝底 CTA 条)
 *   - .section-header h2::before  (蓝色短下划线)
 */

/* ============ ml-container 标准容器 ============ */
.ml-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }

/* ============ topbar(细灰条) ============ */
.ml-topbar { background: #F5F5F7; border-bottom: 1px solid #ECECEF; font-size: 13px; color: var(--text-muted); }
.ml-topbar .ml-container { display: flex; align-items: center; justify-content: space-between; height: 42px; }
.ml-tb-contact { display: flex; align-items: center; gap: 22px; }
.ml-tb-contact span { display: inline-flex; align-items: center; gap: 6px; }
.ml-tb-contact i, .ml-tb-contact svg { color: var(--text-light); flex-shrink: 0; }
.ml-topbar a { color: var(--text-muted); text-decoration: none; transition: color 0.18s; }
.ml-topbar a:hover { color: var(--primary); }
.ml-tb-right { display: flex; align-items: center; gap: 18px; }

/* 语言下拉 */
.ml-lang { position: relative; }
.ml-lang-toggle { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; user-select: none; }
.ml-lang-menu { position: absolute; top: 100%; right: 0; margin-top: 8px; min-width: 132px; background: #fff; border: 1px solid var(--border-default); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); padding: 6px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 0.18s, transform 0.18s, visibility 0.18s; z-index: 1200; list-style: none; }
.ml-lang:hover .ml-lang-menu, .ml-lang:focus-within .ml-lang-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ml-lang-menu li { list-style: none; }
.ml-lang-menu a { display: block; padding: 9px 14px; border-radius: var(--radius-sm); font-size: 13px; color: var(--text-dark); white-space: nowrap; text-decoration: none; }
.ml-lang-menu a:hover, .ml-lang-menu a.active { background: var(--bg-page); color: var(--primary); }

/* 登录/注册 */
.ml-tb-auth { display: flex; align-items: center; gap: 14px; }
.ml-tb-auth .ml-sep { color: var(--border-icon); }
.ml-tb-auth .ml-btn-quit { background: transparent; border: 0; padding: 0; color: inherit; cursor: pointer; font: inherit; }
.ml-tb-auth .ml-btn-quit:hover { color: var(--primary); }

/* ============ header(主导航,毛玻璃) ============ */
/* z-index: 1030 — 低于 Bootstrap 5 offcanvas 默认 1045,保证抽屉能盖住 header */
.ml-header { background: rgba(255, 255, 255, 0.92); -webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--border-default); box-shadow: 0 1px 16px rgba(17, 24, 39, 0.04); position: sticky; top: 0; z-index: 1030; }
.ml-header .ml-container { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.ml-logo a { font-size: 24px; font-weight: 700; letter-spacing: -0.5px; color: var(--text-dark); text-decoration: none; }
.ml-nav { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ml-nav > li { list-style: none; }
.ml-nav > li > a { display: block; padding: 9px 15px; border-radius: var(--radius-sm); font-size: 15px; font-weight: 500; color: var(--text-normal); text-decoration: none; letter-spacing: 0.1px; transition: color 0.2s ease, background 0.2s ease; white-space: nowrap; }
.ml-nav > li > a:hover, .ml-nav > li > a.active { color: var(--primary); background: var(--bg-hover); }

/* Hamburger 按钮(移动端) */
.ml-burger { display: none; background: transparent; border: 0; padding: 6px; color: var(--text-dark); cursor: pointer; }

/* ============ footer ============ */
.ml-footer { margin-top: auto; background: #fff; border-top: 1px solid var(--border-default); padding: 24px 0; text-align: center; }
.ml-footer .ml-footer-links { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.ml-footer .ml-footer-links a { color: var(--text-muted); text-decoration: none; transition: color 0.15s; }
.ml-footer .ml-footer-links a:hover { color: var(--primary); }
.ml-footer .ml-footer-links .ml-sep { margin: 0 10px; color: var(--border-color); }
.ml-footer .ml-copyright { font-size: 13px; color: var(--text-muted); letter-spacing: 0.2px; }
.ml-footer .ml-credits { margin-top: 7px; font-size: 12px; color: var(--text-light); }

/* ============ 响应式 ============ */
@media (max-width: 992px) {
    .ml-container { padding: 0 16px; }
    .ml-topbar { display: none; }
    .ml-header { position: static; background: #fff !important; backdrop-filter: none; box-shadow: none; }
    .ml-header .ml-container { height: 60px; }
    .ml-nav { display: none; }
    .ml-burger { display: inline-flex; align-items: center; }
    .ml-logo a { font-size: 21px; }
}

/* ============ 移动端 offcanvas 抽屉(Apple 简约) ============ */
.offcanvas { background: #fff; box-shadow: -4px 0 30px rgba(17, 24, 39, 0.12); border: 0; }
.offcanvas-header { padding: 22px 22px 16px; border-bottom: 1px solid #ECECEF; }
.offcanvas-title { font-size: 19px; font-weight: 700; color: var(--text-dark); letter-spacing: -0.3px; }
.offcanvas-body { padding: 0; }

/* 菜单清单 */
.ml-mobile-nav { padding: 6px 0; margin: 0; list-style: none; }
.ml-mobile-nav li { list-style: none; border-bottom: 1px solid #F4F4F6; }
.ml-mobile-nav li:last-child { border-bottom: none; }
.ml-mobile-nav a { display: block; padding: 13px 22px; font-size: 15px; font-weight: 500; color: var(--text-dark); text-decoration: none; transition: background 0.15s, color 0.15s; }
.ml-mobile-nav a:hover, .ml-mobile-nav a:active, .ml-mobile-nav a.active { background: #F2F4F7; color: var(--primary); }

/* offcanvas footer 区(语言 + 登录注册) */
.offcanvas-footer { padding: 18px 22px; border-top: 1px solid #ECECEF; margin-top: auto; }
.offcanvas .offcanvas-body { display: flex; flex-direction: column; }
.offcanvas .offcanvas-body > .ml-mobile-nav { flex: 1 0 auto; }

.lang-label { font-size: 11px; font-weight: 600; color: var(--text-light); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 10px; }

/* 语言下拉(可扩展,适合未来加更多语言) */
.lang-dropdown { margin-bottom: 18px; }
.lang-dropdown-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 11px 14px; background: #fff; border: 1px solid var(--border-input); border-radius: 10px; font-size: 14px; font-weight: 500; color: var(--text-dark); cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.lang-dropdown-toggle:hover, .lang-dropdown-toggle:focus, .lang-dropdown-toggle[aria-expanded="true"] { border-color: var(--primary); outline: none; }
.lang-dropdown-toggle .chevron { transition: transform 0.2s; flex-shrink: 0; }
.lang-dropdown-toggle[aria-expanded="true"] .chevron { transform: rotate(180deg); }
.lang-dropdown .dropdown-menu { width: 100%; margin-top: 6px; padding: 6px; border: 1px solid var(--border-default); border-radius: 10px; box-shadow: var(--shadow-lg); }
.lang-dropdown .dropdown-item { padding: 9px 12px; border-radius: 6px; font-size: 14px; color: var(--text-dark); }
.lang-dropdown .dropdown-item:hover, .lang-dropdown .dropdown-item:focus { background: #F2F4F7; color: var(--primary); }
.lang-dropdown .dropdown-item.active { background: var(--primary); color: #fff; }

.auth-actions { display: flex; gap: 8px; }
.auth-btn-login, .auth-btn-register { flex: 1; padding: 10px 16px; font-size: 14px; font-weight: 600; text-align: center; border-radius: 8px; text-decoration: none; transition: all 0.15s; }
.auth-btn-login { background: #fff; border: 1px solid var(--border-input); color: var(--text-dark); }
.auth-btn-login:hover { border-color: var(--primary); color: var(--primary); }
.auth-btn-register { background: var(--primary); border: 1px solid var(--primary); color: #fff; }
.auth-btn-register:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: #fff; }
.auth-user { display: flex; align-items: center; gap: 8px; padding: 8px 0; margin-bottom: 10px; color: var(--text-muted); font-size: 14px; }
.auth-user-quit { background: transparent; border: 1px solid var(--border-input); border-radius: 8px; padding: 10px 16px; font-size: 14px; font-weight: 500; color: var(--text-dark); cursor: pointer; width: 100%; }
.auth-user-quit:hover { border-color: var(--primary); color: var(--primary); }

/* ============================================================
 * 首页 (site/index.php) 各 section 样式
 * ============================================================ */

/* === Section header 通用(蓝色短下划线) === */
.section-header { text-align: center; margin-bottom: 50px; }
.section-header h2 { position: relative; display: inline-block; padding-bottom: 14px; margin-bottom: 12px; font-size: 32px; font-weight: 700; letter-spacing: -0.3px; color: var(--text-dark); }
.section-header h2::before { content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 50px; height: 3px; background: var(--primary); border-radius: 2px; }
.section-header p { color: var(--text-muted); font-size: 16px; margin: 0; }

/* === #intro Hero(全屏背景图轮播 + 中央文字) === */
#intro { position: relative; width: 100%; height: 75vh; min-height: 480px; max-height: 720px; overflow: hidden; }
#intro .intro-carousel-bs { position: absolute; inset: 0; }
#intro .intro-carousel-bs .carousel,
#intro .intro-carousel-bs .carousel-inner,
#intro .intro-carousel-bs .carousel-item { height: 100%; }
#intro .intro-carousel-bs .carousel-item { background-size: cover; background-position: center; background-repeat: no-repeat; }
/* hero 区不再蒙整张图 — 改用文字阴影/描边保证大字可读性(详见 h2/按钮的 text-shadow) */
#intro .intro-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; z-index: 10; padding: 0 20px; max-width: 100%; width: 100%; }
/* 不蒙图,大字本身用阴影/描边保证在任意背景图上都清晰可读 */
#intro .intro-content h2 { color: var(--text-dark); font-size: clamp(28px, 5vw, 56px); font-weight: 800; letter-spacing: -0.5px; margin-bottom: 36px; line-height: 1.3; text-shadow: 0 2px 12px rgba(255,255,255,0.95), 0 1px 3px rgba(255,255,255,0.85), 0 0 22px rgba(255,255,255,0.8); }
#intro .intro-content h2 span { color: var(--primary); }
#intro .intro-content .btn-get-started,
#intro .intro-content .btn-projects { display: inline-block; padding: 14px 36px; font-size: 17px; font-weight: 600; border-radius: 10px; border: 2px solid var(--primary); margin: 0 8px 8px; text-decoration: none; transition: all 0.2s ease; }
#intro .intro-content .btn-get-started { background: var(--primary); color: #fff; }
#intro .intro-content .btn-get-started:hover { background: var(--primary-hover); border-color: var(--primary-hover); box-shadow: var(--shadow-btn); }
#intro .intro-content .btn-projects { background: #fff; color: var(--primary); }
#intro .intro-content .btn-projects:hover { background: var(--primary); color: #fff; }

/* === #about(关于服务:左图右文) === */
#about { background: #fff; padding: 80px 0; }
#about .about-row { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 0; }
#about .about-img { flex: 0 0 50%; max-width: 50%; padding: 0 20px; }
#about .about-img img { display: block; width: 100%; height: auto; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); }
#about .about-content { flex: 0 0 50%; max-width: 50%; padding: 0 30px; }
#about .about-content h2 { font-size: 32px; font-weight: 700; letter-spacing: -0.3px; color: var(--text-dark); margin-bottom: 24px; }
#about .about-content p { color: var(--text-muted); font-size: 16px; line-height: 1.7; margin-bottom: 24px; }
#about .about-content ul { list-style: none; padding: 0; margin: 0; }
#about .about-content ul li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; color: var(--text-dark); font-size: 15px; line-height: 1.6; }
#about .about-content ul li svg { color: var(--primary); flex-shrink: 0; margin-top: 1px; }

@media (max-width: 992px) {
    #about { padding: 50px 0; }
    #about .about-img, #about .about-content { flex: 0 0 100%; max-width: 100%; }
    #about .about-content { padding: 0 20px; margin-top: 30px; }
    #about .about-content h2 { font-size: 26px; }
}

/* === #services(4 服务卡片) === */
#services { background: var(--bg-page); padding: 80px 0; }
#services .services-row { display: flex; flex-wrap: wrap; gap: 24px 0; margin: 0 -12px; }
#services .services-col { flex: 0 0 50%; max-width: 50%; padding: 12px; }
#services .box { padding: 32px 28px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); box-shadow: var(--shadow); transition: box-shadow 0.2s ease, transform 0.2s ease; height: 100%; }
#services .box:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
#services .box .icon { width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 18px; background: var(--primary-light); border-radius: var(--radius-md); color: var(--primary); }
#services .box h4 { font-size: 20px; font-weight: 700; margin-bottom: 10px; color: var(--text-dark); }
#services .box h4 a { color: var(--text-dark); text-decoration: none; }
#services .box h4 a:hover { color: var(--primary); }
#services .box p { color: var(--text-muted); font-size: 15px; line-height: 1.6; margin: 0; }

@media (max-width: 992px) {
    #services { padding: 50px 0; }
    #services .services-col { flex: 0 0 100%; max-width: 100%; }
}

/* === #call-to-action(蓝底 CTA 条) === */
#call-to-action { background: var(--primary); padding: 50px 0; }
#call-to-action .cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 0; }
#call-to-action .cta-text-col { flex: 1; }
#call-to-action .cta-btn-col { flex: 0 0 auto; text-align: center; }
#call-to-action .cta-title { color: #fff; font-size: 28px; font-weight: 700; letter-spacing: -0.2px; margin-bottom: 8px; }
#call-to-action .cta-text { color: rgba(255, 255, 255, 0.88); margin: 0; font-size: 15px; line-height: 1.6; }
#call-to-action .cta-btn { display: inline-block; background: #fff; color: var(--primary); border: 1px solid #fff; border-radius: var(--radius); padding: 14px 36px; font-size: 16px; font-weight: 600; text-decoration: none; transition: background 0.2s, color 0.2s; }
#call-to-action .cta-btn:hover { background: var(--primary-light); }

@media (max-width: 992px) {
    #call-to-action { padding: 40px 0; }
    #call-to-action .cta-text-col, #call-to-action .cta-btn-col { flex: 0 0 100%; text-align: center; }
    #call-to-action .cta-title { font-size: 22px; }
}

/* ============================================================
 * 内页通用样式(page-header / 资讯卡片 / 失物认领卡片 / 空状态)
 * ============================================================ */

/* === page-header(各内页顶部标题区) === */
.page-header { margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--border-color); }
.page-header h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.4px; color: var(--text-dark); margin-bottom: 6px; }
.page-header .page-subtitle { color: var(--text-muted); font-size: 15px; margin: 0; }

@media (max-width: 768px) {
    .page-header h1 { font-size: 24px; }
}

/* ============ 首页失物认领区块 ============ */
/* PC: 横条 list(所有行装在一张白卡里,行间有分隔线)
   H5: 卡片网格(每条独立卡片,垂直堆叠) */
/* padding-top 留 8px(services 自己 padding-bottom 80px 已够),避免出现一大块灰空白 */
#lost-found-home { padding: 8px 0 56px; background: var(--bg-page); }

/* 标题区:左侧标题 + 副标题,右侧"查看更多"链接 */
.lf-home-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.lf-home-title-wrap h2 { font-size: 28px; font-weight: 700; letter-spacing: -0.5px; color: var(--text-dark); margin: 0 0 6px; }
.lf-home-sub { color: var(--text-muted); font-size: 14px; margin: 0; }
.lf-home-more { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 999px; color: var(--text-muted); font-size: 13px; font-weight: 500; text-decoration: none; box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04); transition: color 0.18s, border-color 0.18s, box-shadow 0.18s; }
.lf-home-more:hover { color: var(--primary); border-color: var(--primary-light); box-shadow: 0 2px 10px rgba(0, 113, 227, 0.12); }
.lf-home-more:hover .bi { transform: translateX(2px); }
.lf-home-more .bi { font-size: 13px; transition: transform 0.18s; }

/* === PC 横条模式(默认): 每条数据是独立小卡片(不再装在大白卡里) === */
.lf-home-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lf-home-card-item {
    --accent: var(--primary);
    --accent-tint: var(--primary-tint);
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    grid-template-areas:
        "icon chip name cta"
        "icon meta meta cta";
    align-items: center;
    column-gap: 14px;
    row-gap: 6px;
    padding: 18px 22px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 14px rgba(17, 24, 39, 0.04);
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.lf-home-card-item:hover {
    transform: translateY(-2px);
    border-color: var(--accent);
    box-shadow: 0 2px 4px rgba(17, 24, 39, 0.05), 0 12px 28px rgba(17, 24, 39, 0.08);
}

/* 左侧 3px 主题色条:增加视觉锚定 */
.lf-home-card-item::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; left: 0;
    width: 3px;
    background: var(--accent);
    opacity: 0;
    transition: opacity 0.2s ease;
}
.lf-home-card-item:hover::before { opacity: 1; }

/* 不同类型色板 */
/* kind 跟主站 LOST_KIND_* 对齐:1 酒店 / 2 其他 / 3 车站 / 4 警察局 */
.lf-home-card-item[data-kind="1"] { --accent: #0071E3; --accent-tint: rgba(0, 113, 227, 0.10); } /* 酒店 蓝 */
.lf-home-card-item[data-kind="2"] { --accent: #8E8E93; --accent-tint: rgba(142, 142, 147, 0.12); } /* 其他 灰 */
.lf-home-card-item[data-kind="3"] { --accent: #34C759; --accent-tint: rgba(52, 199, 89, 0.12); }  /* 车站 绿 */
.lf-home-card-item[data-kind="4"] { --accent: #FF3B30; --accent-tint: rgba(255, 59, 48, 0.10); }  /* 警察 红 */

/* head wrapper 在 PC 上 display: contents,让 icon + chip 直接进入外层 grid */
.lf-home-card-head { display: contents; }

/* icon 在第 1 列,跨两行垂直居中 */
.lf-home-icon {
    grid-area: icon;
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px;
    background: var(--accent-tint);
    color: var(--accent);
    border-radius: 12px;
    font-size: 22px;
    flex-shrink: 0;
}

/* chip 在第 1 行第 2 列 */
.lf-home-chip {
    grid-area: chip;
    justify-self: start;
    display: inline-flex; align-items: center;
    padding: 4px 11px;
    background: var(--accent-tint);
    color: var(--accent);
    border-radius: 999px;
    font-size: 12px; font-weight: 500;
    flex-shrink: 0;
}

/* 物品名 在第 1 行第 3 列(1fr 撑开) */
.lf-home-name {
    grid-area: name;
    justify-self: start;
    margin: 0;
    font-size: 16px; font-weight: 600;
    color: var(--text-dark);
    line-height: 1.4;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    transition: color 0.18s;
    max-width: 100%;
}
.lf-home-card-item:hover .lf-home-name { color: var(--accent); }

/* 地址 在第 2 行,跨 chip + name 两列(meta meta) */
.lf-home-addr {
    grid-area: meta;
    justify-self: start;
    display: inline-flex; align-items: center; gap: 5px;
    color: var(--text-muted);
    font-size: 13px;
    max-width: 100%;
    overflow: hidden;
}
.lf-home-addr .bi { color: var(--text-light); font-size: 13px; flex-shrink: 0; }
.lf-home-addr span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* PC 横条不显示长描述,信息密度优先 */
.lf-home-desc { display: none; }

.lf-home-cta {
    grid-area: cta;
    display: inline-flex; align-items: center; gap: 4px;
    padding: 8px 14px;
    background: transparent;
    border: 1px solid var(--accent);
    color: var(--accent);
    border-radius: 999px;
    font-size: 13px; font-weight: 500;
    transition: background 0.18s, color 0.18s;
    flex-shrink: 0;
    white-space: nowrap;
}
.lf-home-card-item:hover .lf-home-cta { background: var(--accent); color: #fff; }
.lf-home-card-item:hover .lf-home-cta .bi { transform: translateX(2px); }
.lf-home-cta .bi { transition: transform 0.18s; }

/* === H5 卡片网格模式(覆盖 PC 设置) === */
@media (max-width: 768px) {
    #lost-found-home { padding: 48px 0 32px; }
    .lf-home-title-wrap h2 { font-size: 22px; }
    .lf-home-sub { font-size: 13px; }
    .lf-home-header { align-items: flex-start; }

    /* 容器:取消白卡,改 grid 网格 */
    .lf-home-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        background: transparent;
        border: 0;
        box-shadow: none;
        overflow: visible;
    }

    /* 每条恢复成独立卡片(垂直堆叠) */
    .lf-home-card-item {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 22px 22px 18px;
        background: var(--bg-card);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-xl);
        box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 14px rgba(17, 24, 39, 0.04);
        position: relative;
        overflow: hidden;
    }
    /* H5 重置 PC 的左侧竖条:改回顶部横条且常显 */
    .lf-home-card-item::before {
        top: 0; left: 0; right: 0; bottom: auto;
        width: auto; height: 3px;
        opacity: 0.7;
    }
    .lf-home-card-item:hover { background: var(--bg-card); transform: none; box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 14px rgba(17, 24, 39, 0.04); }
    .lf-home-card-item:hover::before { opacity: 0.7; }

    /* head 在 H5 恢复 flex 横向(icon 左,chip 右) */
    .lf-home-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
    .lf-home-icon { width: 44px; height: 44px; border-radius: 12px; font-size: 22px; }

    .lf-home-name { font-size: 17px; margin: 0 0 10px; white-space: normal; overflow: visible; text-overflow: clip; }
    .lf-home-addr { display: flex; max-width: none; margin-bottom: 10px; }
    .lf-home-desc { display: -webkit-box; color: var(--text-light); font-size: 13px; line-height: 1.6; margin: 0 0 16px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

    /* CTA 全宽底部按钮 */
    .lf-home-cta {
        display: flex; justify-content: center;
        margin-top: auto;
        padding: 10px 18px;
    }
}

/* === back-link(返回链接 chip) === */
.back-link {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 7px 14px 7px 11px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 999px;
    color: var(--text-muted);
    font-size: 13px; font-weight: 500;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    transition: color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    margin-bottom: 18px;
}
.back-link:hover {
    color: var(--primary);
    border-color: var(--primary-light);
    box-shadow: 0 2px 10px rgba(0, 113, 227, 0.12);
}
.back-link:hover .bi { transform: translateX(-2px); }
.back-link .bi { font-size: 14px; transition: transform 0.18s ease; }

/* detail 页:让 back-link 跟下方 article-detail(max-width 820)同宽居中,避免孤立左漂 */
.article-back-wrap { max-width: 820px; margin: 0 auto; }
@media (max-width: 768px) {
    .article-back-wrap { max-width: 100%; }
}

/* === 空状态 === */
.empty-state { text-align: center; padding: 60px 20px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
.empty-state .empty-icon { font-size: 52px; color: var(--text-pale); margin-bottom: 12px; line-height: 1; }
.empty-state .empty-text { color: var(--text-muted); font-size: 15px; }

/* ============ 资讯列表卡片 ============ */
.article-card { position: relative; display: block; padding: 22px 56px 22px 28px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); box-shadow: var(--shadow); margin-bottom: 14px; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.article-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: var(--primary-light); }
.article-card .article-title { font-size: 17px; font-weight: 600; color: var(--text-dark); margin-bottom: 6px; line-height: 1.4; transition: color 0.2s; }
.article-card:hover .article-title { color: var(--primary); }
.article-card .article-meta { display: flex; align-items: center; gap: 10px; color: var(--text-light); font-size: 13px; margin-bottom: 8px; }
.article-card .article-meta .bi { font-size: 13px; }
.article-card .article-excerpt { color: var(--text-muted); font-size: 14px; line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.article-card .article-arrow { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); color: var(--text-pale); font-size: 18px; transition: color 0.2s, transform 0.2s; }
.article-card:hover .article-arrow { color: var(--primary); transform: translateY(-50%) translateX(4px); }

@media (max-width: 768px) {
    .article-card { padding: 18px 22px 18px 22px; }
    .article-card .article-arrow { display: none; }
    .article-card .article-title { font-size: 15px; }
}

/* ============ 资讯详情 ============ */
/* overflow-x: hidden 是兜底:富文本内容偶尔有固定宽度的 figure/table,防止它把卡片撑破版 */
.article-detail {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    padding: 52px 56px 48px;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 8px 28px rgba(17, 24, 39, 0.06);
    max-width: 820px;
    margin: 0 auto;
    overflow-x: hidden;
    min-height: 320px;  /* 短文章兜底,不让卡片显得矮小漂浮 */
}

/* 标题区:更大字号 + 紧 letter-spacing + 适当呼吸 */
.article-detail h1 {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 1.35;
    color: var(--text-dark);
    margin: 0 0 16px;
}

/* meta:时间 chip 化(浅灰底圆角胶囊) + 底部细分隔线 */
.article-detail .article-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-bottom: 26px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-light);
    font-size: 13px;
}
.article-detail .article-meta > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    background: var(--bg-page);
    border-radius: 999px;
    color: var(--text-muted);
}
.article-detail .article-meta .bi { font-size: 13px; color: var(--text-light); }

/* 富文本正文:更舒适字号 + 行高 + 段落间距 */
.article-detail .article-content {
    color: #2c3338;
    font-size: 16.5px;
    line-height: 1.9;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.article-detail .article-content * { max-width: 100%; box-sizing: border-box; }

/* 关键:富文本编辑器经常给 span/p 加 inline style="text-wrap-mode: nowrap" 或 white-space: nowrap,
   导致整段中文不换行,撑爆容器。这里强制还原为可换行(除了 pre/code 块要保留代码格式) */
.article-detail .article-content,
.article-detail .article-content *:not(pre):not(code) {
    white-space: normal !important;
    text-wrap-mode: wrap !important;
    text-wrap: wrap !important;
}
.article-detail .article-content pre { white-space: pre-wrap !important; }

/* 媒体类:宽度自适应 + 高度自动 + 居中 */
.article-detail .article-content img,
.article-detail .article-content video,
.article-detail .article-content iframe,
.article-detail .article-content embed,
.article-detail .article-content object {
    height: auto;
    display: block;
    margin: 16px auto;
    border-radius: var(--radius);
}

/* 表格 / 代码块:宽超出时横向滚动,不撑爆父容器 */
.article-detail .article-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-collapse: collapse;
}
.article-detail .article-content pre {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: pre-wrap;
}

.article-detail .article-content p { margin-bottom: 18px; }
.article-detail .article-content p:last-child { margin-bottom: 0; }
.article-detail .article-content h2 { font-size: 22px; font-weight: 600; margin: 32px 0 14px; letter-spacing: -0.2px; }
.article-detail .article-content h3 { font-size: 18px; font-weight: 600; margin: 26px 0 12px; }
.article-detail .article-content blockquote { margin: 20px 0; padding: 14px 20px; border-left: 3px solid var(--primary); background: var(--bg-page); border-radius: 0 var(--radius-md) var(--radius-md) 0; color: var(--text-muted); font-style: normal; }
.article-detail .article-content a { color: var(--primary); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.18s; }
.article-detail .article-content a:hover { border-bottom-color: var(--primary); }
.article-detail .article-content ul,
.article-detail .article-content ol { padding-left: 24px; margin: 0 0 18px; }
.article-detail .article-content li { margin-bottom: 6px; }

@media (max-width: 768px) {
    .article-detail { padding: 28px 22px 26px; min-height: auto; }
    .article-detail h1 { font-size: 22px; letter-spacing: -0.3px; }
    .article-detail .article-meta { padding-bottom: 20px; margin-bottom: 24px; }
    .article-detail .article-content { font-size: 15.5px; line-height: 1.8; }
    .article-detail .article-content h2 { font-size: 19px; }
    .article-detail .article-content h3 { font-size: 16.5px; }
}

/* ============ 失物认领搜索栏 ============ */
.lf-search { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: 14px; margin-bottom: 24px; box-shadow: var(--shadow); }
.lf-search .lf-search-row { display: flex; gap: 8px; flex-wrap: wrap; }
.lf-search .form-control { flex: 1; min-width: 200px; background: var(--bg-input); border: 1px solid var(--border-input); border-radius: var(--radius-md); padding: 11px 16px; font-size: 15px; }
.lf-search .form-control:focus { background: #fff; }
.lf-search .btn { padding: 11px 22px; flex-shrink: 0; }

/* ============ 失物认领卡片 ============ */
.lf-card { display: flex; flex-direction: column; height: 100%; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: 22px; box-shadow: var(--shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.lf-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.lf-card .lf-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.lf-card .lf-title { font-size: 16px; font-weight: 600; color: var(--text-dark); margin: 0; line-height: 1.4; flex: 1; }
.lf-card .lf-badge { display: inline-block; padding: 4px 10px; background: var(--primary-light); color: var(--primary); font-size: 12px; font-weight: 500; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
.lf-card .lf-desc { color: var(--text-muted); font-size: 14px; line-height: 1.6; margin-bottom: 14px; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.lf-card .lf-location { display: flex; align-items: center; gap: 5px; color: var(--text-light); font-size: 13px; padding-top: 14px; margin-bottom: 14px; border-top: 1px solid var(--border-color); }
.lf-card .lf-location .bi { color: var(--primary); }
.lf-card .lf-action { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 10px 16px; background: #fff; border: 1px solid var(--primary); color: var(--primary); border-radius: var(--radius-md); font-size: 14px; font-weight: 500; text-decoration: none; transition: all 0.2s; }
.lf-card .lf-action:hover { background: var(--primary); color: #fff; }

/* ============ 失物认领详情 ============ */
.lf-detail-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: 32px; box-shadow: var(--shadow); }
.lf-detail-card .lf-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--border-color); }
.lf-detail-card .lf-detail-title { font-size: 24px; font-weight: 700; color: var(--text-dark); margin: 0; letter-spacing: -0.2px; line-height: 1.3; }
.lf-info-block { margin-bottom: 22px; }
.lf-info-block:last-child { margin-bottom: 0; }
.lf-info-label { display: flex; align-items: center; gap: 6px; color: var(--text-light); font-size: 13px; font-weight: 500; margin-bottom: 5px; }
.lf-info-label .bi { color: var(--primary); font-size: 14px; }
.lf-info-value { color: var(--text-dark); font-size: 15px; line-height: 1.6; }

.lf-cta-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-xl); padding: 28px 24px; box-shadow: var(--shadow); text-align: center; position: sticky; top: 88px; }
.lf-cta-card h5 { font-size: 17px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }
.lf-cta-card p { color: var(--text-muted); font-size: 13px; line-height: 1.6; margin-bottom: 18px; }
.lf-cta-card .lf-cta-btn { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 24px; background: var(--primary); color: #fff; border-radius: var(--radius-md); font-weight: 600; text-decoration: none; transition: background 0.2s; }
.lf-cta-card .lf-cta-btn:hover { background: var(--primary-hover); color: #fff; }
.lf-cta-card .lf-cta-hint { color: var(--text-light); font-size: 12px; margin-top: 12px; }

@media (max-width: 992px) {
    .lf-cta-card { position: static; }
}

@media (max-width: 768px) {
    .lf-detail-card { padding: 22px 20px; }
    .lf-detail-card .lf-detail-title { font-size: 20px; }
}

/* ============ 分页（覆盖 Bootstrap 5 默认,Apple 风方块 chip） ============ */
.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0; margin: 32px 0 0; list-style: none; }
.pagination .page-item { list-style: none; margin: 0; }
.pagination .page-link {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; height: 40px; padding: 0 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-dark);
    font-size: 14px; font-weight: 500;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.pagination .page-link:hover {
    border-color: var(--primary);
    color: var(--primary);
    box-shadow: 0 2px 10px rgba(0, 113, 227, 0.12);
}
.pagination .page-link:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-tint);
}
.pagination .page-item.active .page-link {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 113, 227, 0.25);
}
.pagination .page-item.active .page-link:hover {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
    color: #fff;
}
.pagination .page-item.disabled .page-link {
    background: var(--bg-page);
    border-color: var(--border-color);
    color: var(--text-pale);
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
}

@media (max-width: 576px) {
    .pagination .page-link { min-width: 36px; height: 36px; font-size: 13px; padding: 0 10px; }
}

/* ============ 触底加载（手机端无限滚动） ============ */
/* 状态条：PC 端默认隐藏，手机端显示 */
.ml-load-more { display: none; justify-content: center; align-items: center; padding: 22px 0 8px; color: var(--text-muted); font-size: 13px; min-height: 44px; }
.ml-load-more .ml-load-more-idle,
.ml-load-more .ml-load-more-loading,
.ml-load-more .ml-load-more-end { display: none; align-items: center; gap: 6px; }
.ml-load-more[data-state="idle"]    .ml-load-more-idle    { display: inline-flex; }
.ml-load-more[data-state="loading"] .ml-load-more-loading { display: inline-flex; }
.ml-load-more[data-state="end"]     .ml-load-more-end     { display: inline-flex; }
/* 全局旋转(loading spinner 通用)*/
.spin { animation: ml-spin 0.9s linear infinite; display: inline-block; }
.ml-load-more .spin { animation: ml-spin 0.9s linear infinite; }
@keyframes ml-spin { to { transform: rotate(360deg); } }

/* 小屏：隐藏分页器，启用触底状态条 */
@media (max-width: 768px) {
    .ml-pagination-wrap { display: none !important; }
    .ml-load-more { display: flex; }
}

/* ============ 找回流程 timeline ============ */
.process-timeline { max-width: 820px; margin: 0 auto; }
.process-step { display: grid; grid-template-columns: 56px 1fr; gap: 18px; margin-bottom: 0; }
.process-step-rail {
    display: flex; flex-direction: column; align-items: center;
}
.process-step-no {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    font-size: 16px; font-weight: 700;
    box-shadow: 0 4px 12px rgba(0, 113, 227, 0.25);
    flex-shrink: 0;
}
.process-step-line {
    width: 2px; flex: 1;
    background: linear-gradient(to bottom, var(--primary-light), var(--border-color));
    margin-top: 8px;
    min-height: 30px;
}
.process-step-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    padding: 22px 24px;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 16px rgba(17, 24, 39, 0.04);
    margin-bottom: 24px;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.process-step-card:hover {
    transform: translateY(-2px);
    border-color: var(--primary-light);
    box-shadow: 0 2px 4px rgba(17, 24, 39, 0.05), 0 12px 28px rgba(17, 24, 39, 0.08);
}
.process-step-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.process-step-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px;
    background: var(--primary-tint);
    color: var(--primary);
    border-radius: 10px;
    font-size: 18px;
}
.process-step-title { font-size: 18px; font-weight: 600; color: var(--text-dark); margin: 0; letter-spacing: -0.2px; }
.process-step-title s { color: var(--text-light); font-weight: 500; }
.process-step-desc { color: var(--text-normal); font-size: 14.5px; line-height: 1.75; margin: 0 0 12px; }
.process-step-fee {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
    padding: 10px 14px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    font-size: 13px;
}
.process-step-fee > .bi-coin { color: #FF9F0A; font-size: 16px; }
.process-step-fee-note { color: var(--text-light); }
.process-step-fee-link {
    margin-left: auto;
    color: var(--primary); text-decoration: none;
    display: inline-flex; align-items: center; gap: 4px;
    font-weight: 500;
    transition: transform 0.18s;
}
.process-step-fee-link:hover { color: var(--primary-hover); }
.process-step-fee-link:hover .bi { transform: translateX(2px); }
.process-step-fee-link .bi { transition: transform 0.18s; font-size: 12px; }

@media (max-width: 576px) {
    .process-step { grid-template-columns: 44px 1fr; gap: 14px; }
    .process-step-no { width: 32px; height: 32px; font-size: 14px; }
    .process-step-card { padding: 18px 18px; }
    .process-step-title { font-size: 16px; }
    .process-step-desc { font-size: 14px; }
    .process-step-fee { flex-direction: column; align-items: flex-start; }
    .process-step-fee-link { margin-left: 0; }
}

/* ============ 费用计算 ============ */
.calc-wrap {
    display: grid;
    /* 左侧表单偏窄(440)+ 右侧结果偏宽(1fr),整体充满主内容区 */
    grid-template-columns: minmax(0, 440px) 1fr;
    gap: 24px;
}
.calc-form-card,
.calc-result-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 8px 24px rgba(17, 24, 39, 0.05);
    padding: 28px 28px;
}
.calc-field { margin-bottom: 18px; }
.calc-field-hint { color: var(--text-light); font-size: 12px; font-weight: 400; margin-left: 4px; }
/* 大区 + 县 两级 select(垂直叠,间距 8px) */
.calc-region-pair { display: grid; grid-template-columns: 1fr; gap: 8px; }
.calc-region-pair select:disabled { color: var(--text-pale); cursor: not-allowed; }
.calc-form .auth-btn-primary { margin-top: 8px; }
.calc-stub-note {
    margin: 14px 0 0;
    padding: 10px 14px;
    background: var(--bg-page);
    color: var(--text-muted);
    font-size: 12px;
    border-radius: var(--radius-md);
    display: flex; align-items: center; gap: 6px;
}
.calc-stub-note .bi { color: var(--primary); flex-shrink: 0; }

.calc-result-card { display: flex; flex-direction: column; }
.calc-result-head { color: var(--text-muted); font-size: 14px; margin-bottom: 8px; }
.calc-result-total {
    display: flex; align-items: baseline; gap: 6px;
    padding: 20px 24px;
    background: linear-gradient(135deg, var(--primary), var(--primary-hover));
    color: #fff;
    border-radius: var(--radius-md);
    margin-bottom: 20px;
    box-shadow: 0 4px 16px rgba(0, 113, 227, 0.25);
}
.calc-result-num { font-size: 38px; font-weight: 700; letter-spacing: -1px; line-height: 1; }
.calc-result-unit { font-size: 18px; opacity: 0.9; }
.calc-result-breakdown {
    list-style: none; margin: 0; padding: 0;
    border-top: 1px solid var(--border-color);
}
.calc-result-breakdown li {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-muted);
    font-size: 14px;
}
.calc-result-breakdown li:last-child { border-bottom: 0; }
.calc-result-item { color: var(--text-dark); font-weight: 500; }
.calc-result-note { color: var(--text-light); font-size: 12px; line-height: 1.6; margin: 14px 0 0; }

@media (max-width: 768px) {
    .calc-wrap { grid-template-columns: 1fr; gap: 18px; }
    .calc-form-card, .calc-result-card { padding: 22px 22px; }
    .calc-result-num { font-size: 32px; }
}

/* === 费用参考表(日本国内 / 国际) === */
.fee-table-section {
    margin: 40px 0 0;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 8px 24px rgba(17, 24, 39, 0.05);
    padding: 28px 28px;
}
.fee-table-title {
    font-size: 20px; font-weight: 700; letter-spacing: -0.3px;
    color: var(--text-dark);
    margin: 0 0 18px;
    text-align: center;
}
.fee-table-scroll { overflow-x: auto; margin: 0 -6px; }
.fee-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    color: var(--text-dark);
}
.fee-table th, .fee-table td {
    padding: 10px 8px;
    border-bottom: 1px solid var(--border-color);
    border-right: 1px solid var(--border-color);
    text-align: center;
    min-width: 64px;
    vertical-align: middle;
}
.fee-table th:first-child, .fee-table td:first-child { border-left: 1px solid var(--border-color); }
.fee-table thead tr:first-child th { border-top: 1px solid var(--border-color); }
.fee-table thead th {
    background: var(--bg-page);
    font-weight: 600;
    color: var(--text-dark);
}
.fee-table thead tr:first-child th { font-size: 14px; }
.fee-table tbody tr:hover td { background: var(--bg-hover); }
.fee-cell-axis, .fee-th-axis, .fee-th-sides, .fee-th-weight {
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-page);
    white-space: nowrap;
}
.fee-county-cell {
    line-height: 1.7; font-weight: 400; font-size: 12px;
    color: var(--text-muted); padding: 10px 10px;
    white-space: normal;
}
.fee-county-cell span { display: block; white-space: nowrap; }
/* 表头 + 数据单元格不允许压缩成单字纵排 */
.fee-table thead th { white-space: nowrap; }
.fee-cell-axis { white-space: nowrap; }

.fee-intl-picker {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 16px;
    max-width: 420px;
}
.fee-intl-picker label { color: var(--text-muted); font-size: 13px; font-weight: 500; white-space: nowrap; }
.fee-intl-picker .ml-select { flex: 1; }

.fee-intl-empty {
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    padding: 36px 0;
    color: var(--text-light);
    font-size: 13px;
}
.fee-intl-empty .bi { font-size: 32px; color: var(--text-pale); }

.fee-intl-table { max-width: 480px; margin: 0 auto; }

/* 国际运费 chip 网格(每行自动 4-6 个,跟随父宽度) */
.fee-intl-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
}
.fee-intl-chip {
    background: var(--bg-page);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 12px 14px;
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
    cursor: default;
}
.fee-intl-chip:hover {
    background: var(--primary-tint);
    border-color: var(--primary-light);
    transform: translateY(-1px);
}
.fee-intl-chip-weight {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
}
.fee-intl-chip-price {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-dark);
    margin-top: 3px;
    letter-spacing: -0.3px;
}
.fee-intl-chip:hover .fee-intl-chip-price { color: var(--primary); }

@media (max-width: 576px) {
    .fee-intl-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
    .fee-intl-chip { padding: 10px 12px; }
    .fee-intl-chip-price { font-size: 15px; }
}

@media (max-width: 768px) {
    .fee-table-section { padding: 20px 14px; margin-top: 24px; }
    .fee-table-title { font-size: 17px; margin-bottom: 14px; }
    .fee-table { font-size: 12.5px; }
    .fee-table th, .fee-table td { padding: 8px 10px; min-width: 70px; white-space: nowrap; }
    /* 手机端隐藏「县名」那一行(thead 第 2 行),只留大区名 + 档位列名 + 价格行,大幅压缩表头高度 */
    .fee-table thead tr:nth-of-type(2) { display: none; }
    /* 滚动条提示:手机端表格内容宽,水平滚动条始终可见,加滑动手势 */
    .fee-table-scroll { -webkit-overflow-scrolling: touch; margin: 0 -14px; padding: 0 14px; }
}

/* ============ 填写申请 ============ */
.apply-wrap {
    display: grid;
    grid-template-columns: 1fr minmax(0, 340px);
    gap: 24px;
    align-items: flex-start;
}
.apply-main {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 8px 24px rgba(17, 24, 39, 0.05);
    padding: 8px 28px 28px;
}
.apply-section { padding-top: 24px; border-bottom: 1px solid var(--border-color); padding-bottom: 8px; }
.apply-section:last-child { border-bottom: 0; }
/* 编辑模式:申请类型只读(不可改,锁提示) */
.apply-kind-locked {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 12px 14px;
    background: var(--bg-page);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    font-size: 15px; font-weight: 500; color: var(--text-dark);
}
.apply-kind-locked-hint {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 400; color: var(--text-muted);
}
.apply-kind-locked-hint .bi { font-size: 12px; }
.apply-section-title {
    display: flex; align-items: center; gap: 8px;
    font-size: 15px; font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 14px;
    letter-spacing: -0.1px;
}
.apply-section-title .bi { color: var(--primary); font-size: 16px; }
.apply-hint { margin: -6px 0 14px; color: var(--text-light); font-size: 12px; display: flex; align-items: center; gap: 5px; }
.apply-hint .bi { color: var(--text-light); }

/* 地点搜索 */
.apply-field-label {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 500; color: var(--text-muted);
    margin-bottom: 6px;
}
.apply-field-hint { color: var(--text-light); font-size: 12px; font-weight: 400; }
.apply-search-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-bottom: 8px; align-items: center; }
/* 搜索按钮在 search-row 里不需要 label 让位的 margin-top */
.apply-search-row .auth-code-btn { margin-top: 0; }
.apply-place-results { margin-bottom: 16px; max-height: 320px; overflow-y: auto; border-radius: var(--radius-md); }
.apply-place-results:empty { display: none; }
.apply-place-item {
    padding: 12px 14px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    margin-bottom: 6px;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}
.apply-place-item:hover { background: var(--primary-tint); }
.apply-place-item.is-loading { opacity: 0.5; cursor: wait; }
.apply-place-name { font-size: 14px; font-weight: 600; color: var(--text-dark); }
.apply-place-item:hover .apply-place-name { color: var(--primary); }
.apply-place-desc { font-size: 12px; color: var(--text-muted); margin-top: 3px; line-height: 1.4; }
.apply-place-empty {
    padding: 20px;
    text-align: center;
    color: var(--text-light);
    font-size: 13px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
}
.apply-place-empty .bi { margin-right: 4px; }

/* 图片上传 */
.apply-imgs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.apply-img-item {
    position: relative;
    width: 96px; height: 96px;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--bg-page);
    border: 1px solid var(--border-color);
}
.apply-img-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 上传中占位卡:灰底 + 转圈 spinner + "上传中…" */
.apply-img-loading {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 6px;
    background: var(--bg-page);
}
.apply-img-spinner i {
    display: inline-block;
    font-size: 22px;
    color: var(--primary);
    animation: apply-img-spin 0.8s linear infinite;
}
.apply-img-loading-txt { font-size: 11px; color: var(--text-muted); }
@keyframes apply-img-spin { to { transform: rotate(360deg); } }
.apply-img-del {
    position: absolute; top: 4px; right: 4px;
    width: 22px; height: 22px;
    border: 0;
    border-radius: 50%;
    background: rgba(17, 24, 39, 0.7);
    color: #fff;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
    transition: background 0.15s;
}
.apply-img-del:hover { background: #FF3B30; }
.apply-img-add {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 96px; height: 96px;
    border: 1.5px dashed var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-light);
    font-size: 12px;
    cursor: pointer;
    transition: border-color 0.18s, color 0.18s, background 0.18s;
    gap: 4px;
}
.apply-img-add:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--primary-tint);
}
.apply-img-add .bi { font-size: 22px; }

/* 右侧 sticky 费用预览 */
.apply-side { position: sticky; top: 96px; }
.apply-side-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 8px 24px rgba(17, 24, 39, 0.05);
    padding: 24px 22px;
}
.apply-side-head { display: flex; align-items: center; gap: 7px; color: var(--text-muted); font-size: 13px; margin-bottom: 4px; }
.apply-side-head .bi { color: #FF9F0A; font-size: 16px; }
.apply-side-fee { display: flex; align-items: baseline; gap: 5px; margin-bottom: 14px; }
.apply-side-fee-num { font-size: 34px; font-weight: 700; letter-spacing: -1px; color: var(--text-dark); line-height: 1; }
.apply-side-fee-unit { font-size: 14px; color: var(--text-muted); }
/* 费用明细(服务费 + 电话加费)折叠在总价下面 */
.apply-fee-breakdown {
    list-style: none; margin: 0 0 14px; padding: 12px 14px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    font-size: 12.5px;
}
.apply-fee-breakdown li {
    display: flex; justify-content: space-between; align-items: center;
    padding: 4px 0;
    color: var(--text-muted);
}
.apply-fee-breakdown li:first-child { color: var(--text-normal); }
.apply-fee-breakdown li .bi { color: #FF9F0A; margin-right: 4px; }
.apply-fee-row-val { color: var(--text-dark); font-weight: 500; }
.apply-side-note { color: var(--text-light); font-size: 12px; line-height: 1.7; margin: 0 0 16px; }
/* 未选申请类型时的占位提示(替代丑陋的"— 日元") */
.apply-side-empty {
    padding: 18px 16px;
    margin: 0 0 14px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    font-size: 13px;
    text-align: center;
}
.apply-side-cancel {
    display: block; text-align: center; margin-top: 10px;
    color: var(--text-muted); font-size: 13px; text-decoration: none;
    padding: 8px;
}
.apply-side-cancel:hover { color: var(--primary); }

/* 申请页右侧 sticky 面板 - 支付方式选择 */
.apply-side-paylist {
    margin: 16px 0 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}
.apply-side-paylist-title {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.apply-side-pay-item {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 12px;
    margin-bottom: 6px;
    background: var(--bg-page);
    border: 1.5px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s, border-color 0.15s;
}
.apply-side-pay-item:hover { background: #EBEBED; }
.apply-side-pay-item:has(input:checked) {
    background: #EAF2FF;
    border-color: var(--primary);
}
.apply-side-pay-item input[type="radio"] {
    margin: 0;
    accent-color: var(--primary);
    flex-shrink: 0;
}
.apply-side-pay-item.is-suspend { opacity: 0.5; cursor: not-allowed; }
.apply-side-pay-note {
    color: var(--text-muted);
    font-size: 10px;
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
    flex-shrink: 0;
}

/* 右侧 sticky 面板 - 支付前重要提示(同 .pending-pay-notice 配色,稍紧凑) */
.apply-side-notice {
    margin: 0 0 14px;
    padding: 12px 14px;
    background: #FFF8E6;
    border: 1px solid #FFE6A8;
    border-radius: var(--radius-md);
    display: flex;
    gap: 8px;
    text-align: left;
}
.apply-side-notice > i {
    color: #FF9500;
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 1px;
}
.apply-side-notice-body p {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
    color: #1D1D1F;
}
.apply-side-notice-body p + p {
    margin-top: 4px;
}
.apply-side-notice-body strong {
    color: #B26200;
    font-weight: 600;
}
.apply-side-notice-sub {
    color: var(--text-muted) !important;
    font-size: 11px !important;
}

@media (max-width: 992px) {
    .apply-wrap { grid-template-columns: 1fr; }
    .apply-side { position: static; }
}
@media (max-width: 576px) {
    .apply-main { padding: 4px 18px 18px; }
    .apply-section { padding-top: 20px; }
}

/* ============ 待支付占位页 ============ */
.pending-wrap { display: flex; justify-content: center; align-items: flex-start; padding: 20px 0; }
.pending-card {
    width: 100%; max-width: 520px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 16px 40px rgba(17, 24, 39, 0.08);
    padding: 40px 36px 32px;
    text-align: center;
}
.pending-icon {
    width: 64px; height: 64px;
    margin: 0 auto 18px;
    display: flex; align-items: center; justify-content: center;
    background: var(--primary-tint);
    color: var(--primary);
    border-radius: 50%;
    font-size: 30px;
}
.pending-title { font-size: 22px; font-weight: 700; letter-spacing: -0.4px; margin: 0 0 8px; }
.pending-subtitle { color: var(--text-muted); font-size: 14px; margin: 0 0 28px; }
.pending-info {
    background: var(--bg-page);
    border-radius: var(--radius-md);
    padding: 16px 18px;
    margin-bottom: 22px;
    text-align: left;
}
.pending-info-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border-color); font-size: 14px; }
.pending-info-row:last-child { border-bottom: 0; }
.pending-info-row span:first-child { color: var(--text-muted); }
.pending-info-row code { font-family: Menlo, Consolas, monospace; color: var(--primary); }
.pending-info-fee { padding-top: 12px; }
.pending-fee-num { font-size: 22px; font-weight: 700; color: var(--text-dark); letter-spacing: -0.5px; }
.pending-fee-num small { font-size: 13px; font-weight: 400; color: var(--text-muted); margin-left: 3px; }
.pending-actions { margin-bottom: 0; }
.pending-edit-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-muted); font-size: 13px; text-decoration: none;
    padding: 6px 12px;
    border-radius: 6px;
    transition: color 0.18s, background 0.18s;
}
.pending-edit-link:hover {
    color: var(--primary);
    background: var(--bg-page);
}
.pending-edit-link .bi { margin-right: 0; font-size: 14px; }

.pending-stub-note {
    margin: 12px 0 0;
    padding: 10px 14px;
    background: var(--bg-page);
    color: var(--text-muted);
    font-size: 12px;
    border-radius: var(--radius-md);
    display: flex; align-items: flex-start; gap: 6px;
    text-align: left;
}
.pending-stub-note .bi { color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.pending-foot {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
    display: flex;
    justify-content: center;
    gap: 8px;
    color: var(--text-light); font-size: 13px;
}
.pending-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-muted);
    text-decoration: none;
    padding: 6px 12px;
    border-radius: 6px;
    transition: color 0.18s, background 0.18s;
}
.pending-link:hover {
    color: var(--primary);
    background: var(--bg-page);
}
.pending-sep { display: none; }  /* 用 gap 间距代替分隔符 */

/* === 支付成功状态 icon === */
.pending-icon-ok i { color: #34C759; }

/* === 支付前重要提示 === */
.pending-pay-notice {
    margin-top: 20px;
    padding: 14px 16px;
    background: #FFF8E6;
    border: 1px solid #FFE6A8;
    border-radius: var(--radius-md);
    display: flex;
    gap: 10px;
    text-align: left;
}
.pending-pay-notice > i {
    color: #FF9500;
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}
.pending-pay-notice-body p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #1D1D1F;
}
.pending-pay-notice-body p + p {
    margin-top: 6px;
}
.pending-pay-notice-body strong {
    color: #B26200;
    font-weight: 600;
}
.pending-pay-notice-sub {
    color: var(--text-muted) !important;
    font-size: 12px !important;
}

/* ===== 收件地址(address-list / address-edit) ===== */
.addr-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 24px 64px;
}
.addr-head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 20px;
}
.addr-title {
    font-size: 24px; font-weight: 700; margin: 0;
    color: var(--text-dark); letter-spacing: -0.3px;
}
.addr-new-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px;
    background: var(--primary); color: #fff;
    border-radius: 10px;
    font-size: 13px; font-weight: 500;
    text-decoration: none;
    transition: background 0.18s;
}
.addr-new-btn:hover { background: #0077ED; color: #fff; }

.addr-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--text-muted);
}
.addr-empty i {
    font-size: 56px;
    color: var(--text-pale);
    display: block;
    margin-bottom: 14px;
}
.addr-empty p {
    font-size: 15px;
    margin-bottom: 24px;
}

.addr-list {
    display: flex; flex-direction: column;
    gap: 14px;
}
.addr-item {
    padding: 18px 20px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.03);
}
.addr-item-head {
    display: flex; gap: 12px; align-items: center;
    margin-bottom: 8px;
}
.addr-item-name {
    font-size: 16px; font-weight: 600; color: var(--text-dark);
}
.addr-item-tel {
    color: var(--text-muted); font-size: 13px;
}
.addr-item-detail {
    color: var(--text-secondary); font-size: 14px; line-height: 1.5;
}
.addr-item-meta {
    color: var(--text-muted); font-size: 12px; margin-top: 4px;
}
.addr-item-actions {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border-light);
    display: flex; gap: 18px;
}
.addr-item-actions a {
    color: var(--text-muted); font-size: 13px;
    text-decoration: none;
    transition: color 0.15s;
}
.addr-item-actions a:hover { color: var(--primary); }
.addr-item-actions .addr-delete-btn:hover { color: #E43C1F; }

.addr-form {
    padding: 28px 32px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
}
.addr-form-row {
    margin-bottom: 18px;
}
.addr-form-row label {
    display: block;
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 6px;
}
.addr-form-row .required {
    color: #E43C1F;
}
.addr-form-row textarea.auth-input {
    height: auto;
    padding: 10px 12px;
    line-height: 1.5;
}
.addr-region-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.addr-form-actions {
    display: flex; gap: 14px; align-items: center;
    margin-top: 8px;
}
.addr-form-actions .auth-btn-primary { flex: 1; }

@media (max-width: 640px) {
    .addr-region-row { grid-template-columns: 1fr 1fr; }
}

/* ===== 提交回寄申请(apply-order) ===== */
.apply-order-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 24px 24px 64px;
}
.apply-order-head {
    margin-bottom: 24px;
}
.apply-order-head .back-link {
    display: inline-flex; align-items: center; gap: 4px;
    color: var(--text-muted); font-size: 13px;
    text-decoration: none;
    margin-bottom: 12px;
}
.apply-order-head .back-link:hover { color: var(--primary); }
.apply-order-sub {
    color: var(--text-muted); font-size: 14px;
    margin: 6px 0 0;
}
.apply-order-summary {
    padding: 14px 18px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    margin-bottom: 22px;
}
.apply-order-summary-row {
    display: flex; justify-content: space-between;
    padding: 6px 0;
    font-size: 14px;
}
.apply-order-summary-row span:first-child { color: var(--text-muted); }
.apply-order-summary-row code { color: var(--primary); font-family: Menlo, Consolas, monospace; }

.apply-order-empty-addr {
    padding: 24px;
    text-align: center;
    background: #FFF8E6;
    border: 1px dashed #FFE6A8;
    border-radius: var(--radius-md);
}
.apply-order-empty-addr p {
    color: #7C4A00; margin: 0 0 12px;
}

.apply-order-addr-list {
    display: flex; flex-direction: column;
    gap: 10px;
}
.apply-order-addr-item {
    position: relative;
    display: flex; align-items: flex-start; gap: 12px;
    padding: 14px 44px 14px 16px;
    background: var(--bg-page);
    border: 1.5px solid transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.apply-order-addr-item:hover { background: #EBEBED; }
.apply-order-addr-item:has(input:checked) {
    background: #EAF2FF;
    border-color: var(--primary);
}
.apply-order-addr-item:has(input:checked)::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M13.485 1.929 5.5 9.914 2.515 6.929 1.101 8.343 5.5 12.742l9.399-9.399z'/%3E%3C/svg%3E") center / 11px 11px no-repeat;
}
.apply-order-addr-item input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.apply-order-addr-info { flex: 1; }
.apply-order-addr-name {
    margin-bottom: 4px;
}
.apply-order-addr-name strong {
    color: var(--text-dark);
    font-weight: 600;
    margin-right: 8px;
}
.apply-order-addr-name span {
    color: var(--text-muted); font-size: 13px;
}
.apply-order-addr-detail {
    color: var(--text-secondary); font-size: 13px; line-height: 1.5;
}
.apply-order-addr-add {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    margin-top: 10px;
    padding: 10px;
    color: var(--primary); font-size: 13px; font-weight: 500;
    text-decoration: none;
    border: 1px dashed #D0D2D6;
    border-radius: var(--radius-md);
    background: #fff;
    transition: border-color 0.15s, background 0.15s;
}
.apply-order-addr-add:hover {
    border-color: var(--primary);
    background: #F5F9FF;
    text-decoration: none;
}

.apply-order-goods-list {
    display: flex; flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}
.apply-order-goods-row {
    display: grid;
    grid-template-columns: 2fr 80px 1fr 40px;
    gap: 8px;
    align-items: center;
}
.apply-order-goods-del {
    width: 40px; height: 48px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--text-muted);
    font-size: 18px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}
.apply-order-goods-del:hover {
    color: #E43C1F;
    border-color: #E43C1F;
}
.apply-order-goods-add {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    padding: 10px;
    color: var(--primary); font-size: 13px; font-weight: 500;
    text-decoration: none;
    border: 1px dashed #D0D2D6;
    border-radius: var(--radius-md);
    background: #fff;
    transition: border-color 0.15s, background 0.15s;
}
.apply-order-goods-add:hover {
    border-color: var(--primary);
    background: #F5F9FF;
    text-decoration: none;
}

@media (max-width: 640px) {
    .apply-order-goods-row { grid-template-columns: 1fr 60px 1fr 32px; }
}
@media (max-width: 480px) {
    /* 超窄屏(手机竖屏):商品名独占第一行,数量/价格/删除排第二行,避免 4 列挤成一团 */
    .apply-order-goods-row { grid-template-columns: 1fr 1fr 32px; }
    .apply-order-goods-row .g-name { grid-column: 1 / -1; }
}

/* ===== 错误页(404 / 403 / 500) ===== */
.error-wrap {
    max-width: 480px;
    margin: 0 auto;
    padding: 80px 24px;
    text-align: center;
}
.error-icon {
    width: 88px; height: 88px;
    margin: 0 auto 18px;
    background: var(--bg-page);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--text-muted);
    font-size: 42px;
}
.error-code {
    font-size: 56px;
    font-weight: 800;
    color: var(--text-light);
    letter-spacing: -2px;
    line-height: 1;
    margin-bottom: 8px;
}
.error-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 12px;
}
.error-message {
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.7;
    margin: 0 0 32px;
}
.error-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}
.error-back {
    color: var(--text-muted);
    font-size: 13px;
    text-decoration: none;
    padding: 6px;
}
.error-back:hover { color: var(--primary); }

/* ===== 服务条款 / 隐私政策静态页 ===== */
.terms-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 48px 24px 80px;
}
.terms-body { max-width: 800px; }  /* 文本块仍限制阅读宽度(超过 800 行太长会累),整体容器跟 nav 对齐 */
.terms-title {
    font-size: 28px; font-weight: 700; letter-spacing: -0.4px;
    margin: 0 0 8px;
    color: var(--text-dark);
}
.terms-updated {
    color: var(--text-muted);
    font-size: 13px;
    margin: 0 0 32px;
}
.terms-body section {
    margin-bottom: 28px;
}
.terms-body h2 {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 10px;
}
.terms-body p, .terms-body li {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.75;
    margin: 0 0 8px;
}
.terms-body ul {
    padding-left: 22px;
    margin: 8px 0;
}
.terms-body strong {
    color: var(--text-dark);
}
.terms-body a {
    color: var(--primary);
    text-decoration: none;
}
.terms-body a:hover {
    text-decoration: underline;
}

/* ===== 完整状态机视图扩展(详情页) ===== */

/* lost-apply-pending 详情页用 .apply-wrap 双栏布局,只需补几个辅助 class */

/* dl 紧凑列表(替代之前的 pending-info-row)*/
.pending-dl {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px 16px;
    margin: 0;
    padding: 0;
}
.pending-dl dt { color: var(--text-muted); font-size: 13px; font-weight: 400; line-height: 1.5; }
.pending-dl dd { margin: 0; color: var(--text-dark); font-size: 14px; line-height: 1.5; word-break: break-all; }
.pending-dl dd code { color: var(--primary); font-family: Menlo, Consolas, monospace; }

/* 右侧 sticky 卡片 - 支付方式选区 */
.apply-side-paylist {
    margin-bottom: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}
.apply-side-paylist-title { font-size: 12px; color: var(--text-muted); margin-bottom: 8px; }
.apply-side-pay-item {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 12px;
    margin-bottom: 6px;
    background: var(--bg-page);
    border: 1.5px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s, border-color 0.15s;
}
.apply-side-pay-item:hover { background: #EBEBED; }
.apply-side-pay-item:has(input:checked) { background: #EAF2FF; border-color: var(--primary); }
.apply-side-pay-item input[type="radio"] { margin: 0; accent-color: var(--primary); flex-shrink: 0; }
.apply-side-pay-item.is-suspend { opacity: 0.5; cursor: not-allowed; }
.apply-side-pay-note { color: var(--text-muted); font-size: 10px; margin-left: auto; white-space: nowrap; flex-shrink: 0; }

/* 申报商品表 / 资金明细表(详情页转运订单区) */
.pending-declare-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--bg-card);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border-light);
}
.pending-declare-table thead th {
    background: var(--bg-page);
    padding: 10px 14px;
    text-align: left;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-color);
}
.pending-declare-table tbody td {
    padding: 11px 14px;
    font-size: 13px;
    color: var(--text-dark);
    border-bottom: 1px solid var(--border-light);
}
.pending-declare-table tbody tr:last-child td { border-bottom: 0; }
.pending-declare-table tbody tr:hover td { background: var(--bg-page); }

/* 最新物流日志高亮 */
.pending-log-item.is-latest { border-left-color: #1AB394; background: #F0FBF7; }
.pending-log-latest-badge {
    padding: 1px 6px;
    background: #1AB394;
    color: #fff;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}

/* 操作日志(订单进度后的客服/系统操作记录) */
.pending-log {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pending-log-item {
    position: relative;
    padding: 12px 16px 12px 18px;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    margin-bottom: 8px;
    border-left: 3px solid var(--primary);
}
.pending-log-item:last-child { margin-bottom: 0; }
.pending-log-meta {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 4px;
    font-size: 12px;
    color: var(--text-muted);
}
.pending-log-time {
    font-family: Menlo, Consolas, monospace;
}
.pending-log-operator {
    padding: 1px 6px;
    background: var(--bg-card);
    border-radius: 4px;
    color: var(--text-dark);
    font-weight: 500;
}
.pending-log-desc {
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-dark);
    word-break: break-word;
}
.pending-log-desc a {
    color: var(--primary);
    text-decoration: none;
}
.pending-log-desc a:hover { text-decoration: underline; }

/* 右侧 sticky 卡片 - 次要操作(修改/删除/取消/撤销),横向并排 */
.apply-side-minor {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}
.apply-side-minor a {
    flex: 1;                              /* 等分剩余宽度 — 2 个时各 50%,1 个时占满 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: 13px;
    text-decoration: none;
    padding: 9px 8px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}
.apply-side-minor a:hover {
    color: var(--primary);
    border-color: var(--primary);
    background: var(--bg-page);
}
.apply-side-minor a .bi { font-size: 14px; line-height: 1; color: inherit; }
.apply-side-minor a.text-danger { color: #E43C1F; border-color: #FFCCC7; }
.apply-side-minor a.text-danger:hover { color: #B91C1C; border-color: #E43C1F; background: #FFF1F0; }

/* page-header 副标题里 code 高亮 */
.page-header .page-subtitle code { color: var(--primary); font-family: Menlo, Consolas, monospace; }

/* 详情页改用 apply-wrap 双栏 — 旧 pending-card 留作 fallback */
.pending-card-wide { max-width: 100%; }

/* 关键修复:卡片宽时,每行 label/value 紧凑左对齐,不再 space-between 拉开两端 */
.pending-card-wide .pending-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; padding: 18px 22px; }
.pending-card-wide .pending-info .pending-info-row {
    display: flex;
    justify-content: flex-start;     /* 不再 space-between */
    align-items: baseline;
    gap: 16px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border-light);
}
.pending-card-wide .pending-info .pending-info-row span:first-child {
    min-width: 100px;
    flex-shrink: 0;
    color: var(--text-muted);
}
.pending-card-wide .pending-info .pending-info-row code,
.pending-card-wide .pending-info .pending-info-row span:not(:first-child) {
    word-break: break-all;
}
/* 关键行(总额)占满 2 列宽,加强视觉权重 */
.pending-card-wide .pending-info .pending-info-fee {
    grid-column: 1 / -1;
    justify-content: space-between;  /* 应付总额这行恢复两端对齐(突出金额)*/
    padding-top: 14px;
    margin-top: 6px;
    border-top: 1px solid var(--border-color);
    border-bottom: 0;
}
@media (max-width: 720px) {
    .pending-card-wide .pending-info { grid-template-columns: 1fr; gap: 0; }
}

/* 状态描述/支付前提示 限阅读宽度,左对齐(不再 center)— 跟其他 section 一致 */
.pending-card-wide .pending-status-des,
.pending-card-wide .pending-reason-box,
.pending-card-wide .pending-pay-notice {
    max-width: 100%;
}

/* 支付方式选区:不再单独限宽,跟其他 section 一致宽度;
   每个 pay-item 内部 max-width 让单条不会撑得过长 */
.pending-card-wide .pending-pay-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}

/* 顶部状态徽章 */
.pending-status-banner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid;
    font-size: 15px;
    font-weight: 600;
    margin: 0 auto 18px;
}
.pending-status-banner i {
    font-size: 18px;
}
.pending-found-chip {
    margin-left: 6px;
    padding: 3px 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
}
.pending-found-chip.found-ok {
    background: #DCFCE7;
    color: #14803C;
}
.pending-found-chip.found-no {
    background: #FEE2E2;
    color: #B91C1C;
}

/* 状态描述提示横条 */
.pending-status-des {
    text-align: left;
    padding: 12px 16px;
    border-radius: var(--radius-md);
    background: var(--bg-page);
    color: var(--text-dark);
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 20px;
}
/* 不同 status 不同提示底色(对齐主站红/黄/绿/灰) */
.pending-status-des-0,
.pending-status-des-2,
.pending-status-des-4,
.pending-status-des-6 { background: #FFF1F0; color: #99270D; border-left: 3px solid #E43C1F; }
.pending-status-des-1,
.pending-status-des-3,
.pending-status-des-7 { background: #FFF8E6; color: #7C4A00; border-left: 3px solid #FDA041; }
.pending-status-des-5 { background: #E7F8F2; color: #0E6D5B; border-left: 3px solid #1AB394; }
.pending-status-des-8 { background: #F5F5F5; color: #595959; border-left: 3px solid #999999; }

/* 取消/拒绝原因 */
.pending-reason-box {
    text-align: left;
    padding: 14px 16px;
    margin-bottom: 18px;
    background: #FFF8E6;
    border: 1px solid #FFE6A8;
    border-radius: var(--radius-md);
    font-size: 13px;
}
.pending-reason-box strong {
    color: #B26200;
    display: block;
    margin-bottom: 6px;
}
.pending-reason-box p {
    margin: 0;
    color: var(--text-dark);
    line-height: 1.6;
}
.pending-reason-box-danger {
    background: #FFF1F0;
    border-color: #FFCCC7;
}
.pending-reason-box-danger strong {
    color: #B91C1C;
}

/* 分块标题 */
.pending-section {
    margin-bottom: 18px;
    text-align: left;
}
.pending-section-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 500;
    margin: 0 4px 8px;
}
.pending-section-title i {
    font-size: 14px;
}
.pending-section .pending-info { margin-bottom: 0; }

/* 订单进度时间线 */
.pending-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}
.pending-timeline li {
    position: relative;
    padding: 0 0 18px 28px;
    text-align: left;
}
.pending-timeline li::before {
    content: '';
    position: absolute;
    left: 9px;
    top: 18px;
    bottom: -6px;
    width: 2px;
    background: var(--border-color);
}
.pending-timeline li:last-child::before { display: none; }
.pending-timeline li.is-done::before { background: #1AB394; }
.pending-timeline-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 20px; height: 20px;
    border-radius: 50%;
    background: var(--bg-card);
    border: 2px solid var(--border-color);
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
    color: #fff;
}
.pending-timeline li.is-done .pending-timeline-dot {
    background: #1AB394;
    border-color: #1AB394;
}
.pending-timeline-body {
    padding-top: 1px;
}
.pending-timeline-label {
    font-size: 14px;
    color: var(--text-dark);
    font-weight: 500;
}
.pending-timeline li.is-pending .pending-timeline-label {
    color: var(--text-light);
    font-weight: 400;
}
.pending-timeline-time {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

/* 操作按钮区:支持多个并排次要链接 */
.pending-action-row {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}
.pending-action-row .pending-edit-link {
    /* 已继承 .pending-edit-link 基础样式,无需重复 */
}
.pending-action-row:empty { display: none; }
.pending-edit-link-danger {
    color: #E43C1F !important;
}
.pending-edit-link-danger:hover {
    color: #B91C1C !important;
}

@media (max-width: 640px) {
    .pending-card,
    .pending-card-wide { padding: 28px 18px 22px; max-width: 100%; }
    .pending-status-banner { font-size: 14px; padding: 8px 14px; }
    .pending-found-chip { display: block; margin: 6px 0 0; }
}

/* === 支付方式选择(待支付状态显示) === */
.pending-pay-section {
    margin: 20px 0 22px;
    padding-top: 18px;
    border-top: 1px solid var(--border-light);
}
.pending-pay-title {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 10px;
    text-align: left;
}
.pending-pay-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pending-pay-item {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px;
    background: var(--bg-page);
    border: 1.5px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    text-align: left;
}
.pending-pay-item:hover { background: #EBEBED; }
.pending-pay-item input[type="radio"] {
    margin: 0;
    accent-color: var(--primary);
    flex-shrink: 0;
}
.pending-pay-item:has(input:checked) {
    background: #EAF2FF;
    border-color: var(--primary);
}
.pending-pay-name {
    font-size: 14px;
    color: var(--text-dark);
    font-weight: 500;
}
.pending-pay-note {
    font-size: 12px;
    color: var(--text-muted);
    margin-left: auto;
}
.pending-pay-item.is-suspend {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--bg-page);
}
.pending-pay-suspend {
    font-size: 11px;
    padding: 2px 6px;
    background: var(--text-muted);
    color: #fff;
    border-radius: 4px;
    margin-left: auto;
}

/* ============ 我的申请列表(my-lost-list) ============ */
.mll-wrap {
    padding: 32px 0 64px;
}
.mll-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 20px;
}
.mll-title {
    font-size: 24px; font-weight: 700; color: var(--text-dark);
    margin: 0; letter-spacing: -0.3px;
}
.mll-new-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px;
    background: var(--primary);
    color: #fff;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.18s;
}
.mll-new-btn:hover {
    background: #0077ED;
    color: #fff;
}

/* 次要按钮(outline 蓝色描边) — 用于"按运单号查询"、"返回列表"等次要入口 */
.mll-ghost-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 16px;
    background: #fff;
    color: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.18s, color 0.18s;
}
.mll-ghost-btn:hover {
    background: var(--primary);
    color: #fff;
}

/* 搜索表单 */
.mll-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
    padding: 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
}
.mll-search-input {
    height: 38px;
    flex: 1 1 160px;
    min-width: 140px;
    margin: 0;
    font-size: 13px;
}
.mll-search-date {
    flex: 0 1 150px;
    min-width: 130px;
}
.mll-search-sep {
    color: var(--text-muted);
    font-size: 13px;
    padding: 0 4px;
}
.mll-search-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 16px;
    height: 38px;
    background: var(--primary);
    color: #fff;
    border: 0;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s;
}
.mll-search-btn:hover { background: #0077ED; }
.mll-search-reset {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-muted);
    font-size: 13px;
    text-decoration: none;
    padding: 0 8px;
    transition: color 0.15s;
}
.mll-search-reset:hover { color: var(--primary); }

/* 违禁品订单物流轨迹时间轴(对齐主站 contrabandOrderQuery 的 .timeline 视觉) */
.contraband-timeline {
    position: relative;
    list-style: none;
    margin: 8px 0 0 0;
    padding: 0 0 0 48px;
}
.contraband-timeline::before {
    content: '';
    position: absolute;
    left: 22px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: linear-gradient(to bottom, var(--primary) 0%, var(--border-color) 100%);
}
.contraband-timeline-item {
    position: relative;
    padding: 0 0 26px 0;
    min-height: 44px;
}
.contraband-timeline-item:last-child { padding-bottom: 0; }
.contraband-timeline-item::before {
    content: '';
    position: absolute;
    left: -33px;
    top: 5px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--border-color);
    box-shadow: 0 0 0 3px rgba(17,24,39,0.06);
    transition: all 0.3s ease;
    z-index: 1;
}
.contraband-timeline-item.is-active::before {
    background: var(--primary);
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(0,113,227,0.22);
    animation: contraband-timeline-pulse 2s infinite;
}
@keyframes contraband-timeline-pulse {
    0%   { box-shadow: 0 0 0 0   rgba(0,113,227,0.40); }
    70%  { box-shadow: 0 0 0 10px rgba(0,113,227,0);    }
    100% { box-shadow: 0 0 0 0   rgba(0,113,227,0);    }
}
.contraband-timeline-time {
    color: var(--text-muted);
    font-size: 13px;
    margin-bottom: 6px;
    font-family: Menlo, Monaco, monospace;
    font-weight: 400;
}
.contraband-timeline-desc {
    color: var(--text-dark);
    font-size: 14px;
    line-height: 1.6;
}
.contraband-timeline-item.is-active .contraband-timeline-desc {
    color: var(--primary);
    font-weight: 500;
}

/* tabs */
.mll-tabs {
    display: flex; gap: 6px;
    margin-bottom: 16px;
    padding: 0 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
}
.mll-tab {
    position: relative;
    padding: 12px 16px;
    color: var(--text-muted);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.15s;
}
.mll-tab:hover {
    color: var(--text-dark);
}
.mll-tab.is-active {
    color: var(--primary);
    font-weight: 600;
}
/* active 横线用 ::after 绝对定位在文字正下方,贴近 tab 而非容器边界 */
.mll-tab.is-active::after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 4px;
    height: 2px;
    background: var(--primary);
    border-radius: 2px;
}

/* 空态 */
/* 关键:用 > 直接子选择器,避免污染 .mll-new-btn 等按钮内部的 <i> 图标
 * (后代选择器 .mll-empty i 会把按钮 + 号撑成 56px 大方块) */
.mll-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--text-muted);
}
.mll-empty > i {
    font-size: 56px;
    color: var(--text-pale);
    display: block;
    margin-bottom: 14px;
}
.mll-empty > p {
    font-size: 15px;
    margin-bottom: 24px;
}

/* 列表卡片 */
.mll-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
}
.mll-item {
    display: block;
    padding: 18px 20px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.03);
    transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}
.mll-item:hover {
    border-color: var(--primary);
    box-shadow: 0 8px 24px rgba(0, 113, 227, 0.08);
    transform: translateY(-2px);
    color: inherit;
}
.mll-item-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px;
}
.mll-item-no {
    font-family: Menlo, Consolas, monospace;
    font-size: 12px;
    color: var(--text-muted);
    letter-spacing: 0.3px;
}
.mll-item-status {
    font-size: 12px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    border: 1px solid transparent;
}
.mll-item-body {
    margin-bottom: 12px;
}
.mll-item-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 8px;
    line-height: 1.4;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.mll-item-meta {
    display: flex; flex-wrap: wrap; gap: 6px;
}
.mll-chip {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px;
    padding: 3px 7px;
    background: var(--bg-page);
    color: var(--text-muted);
    border-radius: 6px;
}
.mll-chip i {
    font-size: 12px;
}
.mll-chip-soft {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mll-item-foot {
    display: flex; align-items: center; justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--border-light);
}
.mll-item-time {
    font-size: 12px;
    color: var(--text-light);
}
.mll-item-fee {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark);
}
.mll-item-fee small {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-muted);
    margin-left: 2px;
}

/* 分页 */
.mll-pager {
    display: flex; justify-content: center;
    margin-top: 32px;
}
.mll-pager-ul {
    display: flex; gap: 4px;
    list-style: none;
    padding: 0; margin: 0;
}
.mll-pager-ul li a,
.mll-pager-ul li span {
    display: inline-block;
    padding: 8px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--text-dark);
    font-size: 13px;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    cursor: pointer;
}
.mll-pager-ul li a:hover {
    background: var(--bg-page);
    border-color: var(--primary);
    color: var(--primary);
}
.mll-pager-ul li.is-active a,
.mll-pager-ul li.is-active span {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}
.mll-pager-ul li.is-disabled a,
.mll-pager-ul li.is-disabled span {
    opacity: 0.4;
    cursor: not-allowed;
}

@media (max-width: 640px) {
    .mll-list {
        grid-template-columns: 1fr;
    }
    .mll-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .mll-tabs {
        overflow-x: auto;
        white-space: nowrap;
    }
    .mll-tab {
        flex-shrink: 0;
    }
    /* mobile 搜索表单 — 文本框各占一行,日期范围两个挤一行用 - 分隔 */
    .mll-search-form {
        gap: 10px;
        padding: 12px;
    }
    .mll-search-input {
        flex: 1 1 100%;
        min-width: 0;
        height: 40px;
    }
    .mll-search-date {
        flex: 1 1 calc(50% - 16px);
        min-width: 0;
    }
    .mll-search-sep {
        flex: 0 0 auto;
        padding: 0;
    }
    .mll-search-btn {
        flex: 1 1 100%;
        justify-content: center;
        height: 40px;
    }
    .mll-search-reset {
        flex: 1 1 100%;
        justify-content: center;
        padding: 6px;
    }
}

/* ============ 账号系统页面(登录/注册/忘记密码) ============ */
.auth-page {
    display: flex; align-items: center; justify-content: center;
    padding: 56px 16px;
    min-height: 60vh;
}
.auth-card {
    width: 100%; max-width: 420px;
    padding: 44px 40px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 16px 40px rgba(17, 24, 39, 0.08);
}
/* 注册卡略宽(放得下 2 列网格) */
.auth-card-wide { max-width: 540px; }
.auth-card-wide { padding: 36px 36px 32px; }
.auth-card-wide .auth-header { margin-bottom: 24px; }

/* 双列网格(密码+确认密码) */
.auth-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 14px;
}

/* 注册 Tab(邮箱 / 手机号) */
.auth-tabs {
    display: flex;
    background: var(--bg-page);
    border-radius: var(--radius-md);
    padding: 4px;
    margin-bottom: 18px;
    gap: 2px;
}
.auth-tab {
    flex: 1;
    background: transparent;
    border: 0;
    padding: 10px 14px;
    border-radius: calc(var(--radius-md) - 2px);
    color: var(--text-muted);
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: background 0.18s, color 0.18s, box-shadow 0.18s;
}
.auth-tab:hover { color: var(--text-dark); }
.auth-tab.is-active {
    background: var(--bg-card);
    color: var(--primary);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05), 0 2px 8px rgba(17, 24, 39, 0.04);
}
.auth-tab .bi { font-size: 14px; }

/* 验证码字段:输入框 + 右侧"发送验证码"按钮(同一行) */
.auth-code-row {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 10px;
    align-items: start;
}
.auth-code-field { margin-bottom: 14px; }
.auth-code-btn {
    box-sizing: border-box;
    height: 48px;        /* 跟 .auth-input 同高 */
    padding: 0 18px;
    margin-top: 23px;    /* 跟 input 顶端对齐(让出 label + 间距高度) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;            /* icon 跟文字间距(地点搜索的"🔍 搜索"按钮) */
    background: var(--bg-card);
    border: 1px solid var(--primary);
    color: var(--primary);
    border-radius: var(--radius-md);
    font-size: 13px; font-weight: 500;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.auth-code-btn:hover:not(.is-disabled) {
    background: var(--primary);
    color: #fff;
}
.auth-code-btn.is-disabled,
.auth-code-btn[disabled] {
    background: var(--bg-page);
    border-color: var(--border-color);
    color: var(--text-light);
    cursor: not-allowed;
}

/* 协议提示文字 */
.auth-agreement {
    color: var(--text-light);
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
    margin: 6px 0 14px;
}

@media (max-width: 540px) {
    .auth-card-wide { padding: 30px 24px 26px; }
    .auth-grid-2 { grid-template-columns: 1fr; column-gap: 0; }
}

.auth-header { text-align: center; margin-bottom: 30px; }
.auth-title { font-size: 28px; font-weight: 700; letter-spacing: -0.5px; color: var(--text-dark); margin: 0 0 8px; }
.auth-subtitle { color: var(--text-muted); font-size: 14px; margin: 0; }

/* 字段:覆盖 Yii2 ActiveForm 默认 .form-group/.help-block
   margin-bottom 设小,因为 .auth-error 永远占 ~22px 当作字段间距,避免错误出现时撑开页面 */
.auth-field { margin-bottom: 0; }
.auth-label { display: block; font-size: 13px; font-weight: 500; color: var(--text-muted); margin: 0 0 6px; }
.auth-input { box-sizing: border-box; width: 100%; height: 48px; background: var(--bg-input); border: 1px solid var(--border-input); border-radius: var(--radius-md); padding: 0 14px; font-size: 15px; color: var(--text-dark); transition: border-color 0.18s, box-shadow 0.18s, background 0.18s; background-image: none; }
/* textarea 单独样式:取消 fixed 48px,允许垂直撑高,padding 加回,禁用拉伸 */
textarea.auth-input {
    height: auto;
    min-height: 96px;
    padding: 12px 14px;
    line-height: 1.6;
    resize: none;
}
.auth-input::placeholder { color: var(--text-pale); }
.auth-input:focus { background: #fff; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-tint); outline: none; }
/* 关键:覆盖浏览器/Bootstrap 5 默认的 :invalid 样式(红边+SVG感叹号),只在 Yii2 has-error 状态下才标红 */
.auth-input:invalid,
.auth-input:user-invalid {
    background-image: none !important;
    border-color: var(--border-input);
    box-shadow: none;
}
.auth-input:invalid:focus,
.auth-input:user-invalid:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}

/* 错误文本:始终占固定空间(min-height),只用 opacity 渐变出现/消失
   → 错误出现/消失时不再撑开 / 收起字段下方高度,页面完全不抖动 */
.auth-error {
    color: #FF3B30;
    font-size: 12px;
    line-height: 1.4;
    min-height: 18px;
    margin-top: 4px;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.18s ease;
}
.auth-error:not(:empty) { opacity: 1; }

/* Yii2 校验失败时:input 加 .is-invalid(yii2-bootstrap5 ActiveForm 的默认行为,加在 input 上而不是 wrap div) */
.auth-input.is-invalid {
    border-color: #FF3B30;
    padding-right: 40px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23FF3B30' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px;
}
.auth-input.is-invalid:focus { box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.12); }

/* 行:记住我 + 忘记密码 */
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -4px 0 22px; }
.auth-remember { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 13px; cursor: pointer; margin: 0; user-select: none; }
/* 自定义 checkbox:隐藏原生外观,自己画圆角方框 + 勾 */
.auth-remember input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 18px; height: 18px;
    margin: 0;
    border: 1.5px solid var(--border-input);
    border-radius: 5px;
    background: var(--bg-card);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.auth-remember:hover input[type="checkbox"]:not(:checked) {
    border-color: var(--primary-light);
}
.auth-remember input[type="checkbox"]:checked {
    background: var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M13.485 1.929 5.5 9.914 2.515 6.929 1.101 8.343 5.5 12.742l9.399-9.399z'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
    border-color: var(--primary);
}
.auth-remember input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-tint);
}
.auth-remember:hover { color: var(--text-dark); }
.auth-link-secondary { color: var(--text-muted); font-size: 13px; text-decoration: none; transition: color 0.18s; }
.auth-link-secondary:hover { color: var(--primary); }

/* 主按钮(登录/注册) */
.auth-btn-primary,
.auth-btn-primary:link,
.auth-btn-primary:visited {
    display: block; width: 100%;
    padding: 12px 20px;
    background: var(--primary);
    color: #fff !important;             /* 用 <a> 标签时强制白字,防 hover 变继承色 */
    text-align: center;
    text-decoration: none !important;   /* 防 <a> 默认下划线 */
    border: 0;
    border-radius: var(--radius-md);
    font-size: 15px; font-weight: 600;
    cursor: pointer;
    transition: background 0.18s, box-shadow 0.18s, transform 0.1s;
    box-shadow: 0 1px 2px rgba(0, 113, 227, 0.2), 0 4px 12px rgba(0, 113, 227, 0.15);
    box-sizing: border-box;
}
.auth-btn-primary:hover,
.auth-btn-primary:focus {
    background: var(--primary-hover);
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 1px 3px rgba(0, 113, 227, 0.25), 0 6px 18px rgba(0, 113, 227, 0.22);
}
.auth-btn-primary:active { transform: scale(0.99); }

/* 底部"还没有账号? 立即注册" */
.auth-footer { margin-top: 22px; text-align: center; color: var(--text-muted); font-size: 14px; }
.auth-link-primary { color: var(--primary); text-decoration: none; font-weight: 500; transition: opacity 0.18s; }
.auth-link-primary:hover { opacity: 0.75; }

@media (max-width: 576px) {
    .auth-page { padding: 24px 12px; min-height: 50vh; }
    .auth-card { padding: 32px 22px; }
    .auth-title { font-size: 24px; }
}

/* ============ ml-select(自定义下拉,替代原生 select) ============ */
.ml-select { position: relative; width: 100%; }
/* ml-select / 虚线块按钮都是块状元素,没有原生表单元素的基线间隙,apply-hint 的负 margin-top 会压住它,这里归正 */
.ml-select + .apply-hint,
.apply-order-goods-add + .apply-hint { margin-top: 6px; }
/* 展开时拉高 stacking,防止被 footer/其他 section 盖住(sticky header z-index:1030,所以这里 1050 够) */
.ml-select.is-open { z-index: 1050; }

.ml-select-trigger {
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    padding: 0 38px 0 14px;
    background: var(--bg-input);
    border: 1px solid var(--border-input);
    border-radius: var(--radius-md);
    font-size: 15px;
    color: var(--text-dark);
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    position: relative;
    transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}
.ml-select-trigger:hover:not(:disabled):not(.is-disabled) { border-color: var(--border-color); }
.ml-select-trigger.is-open {
    background: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}
.ml-select-trigger.is-disabled,
.ml-select-trigger:disabled {
    background: var(--bg-page);
    color: var(--text-pale);
    cursor: not-allowed;
}
.ml-select-label {
    flex: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ml-select-label.is-placeholder { color: var(--text-pale); }
.ml-select-caret {
    position: absolute;
    right: 14px;
    color: var(--text-light);
    font-size: 13px;
    transition: transform 0.2s ease, color 0.18s;
    pointer-events: none;
}
.ml-select-trigger.is-open .ml-select-caret { transform: rotate(180deg); color: var(--primary); }

.ml-select-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0; right: 0;
    z-index: 100;
    max-height: 280px;
    overflow-y: auto;
    padding: 6px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 32px rgba(17, 24, 39, 0.12), 0 2px 8px rgba(17, 24, 39, 0.06);
    opacity: 0;
    transform: translateY(-4px) scale(0.98);
    transform-origin: top center;
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s cubic-bezier(0.2, 0.8, 0.2, 1);
    /* 自定义滚动条:细 + Apple 灰 */
    scrollbar-width: thin;
    scrollbar-color: var(--border-color) transparent;
}
.ml-select-menu::-webkit-scrollbar { width: 6px; }
.ml-select-menu::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; }
.ml-select.is-open .ml-select-menu {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.ml-select-option {
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    color: var(--text-dark);
    font-size: 14.5px;
    line-height: 1.4;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
    user-select: none;
}
.ml-select-option:hover {
    background: var(--bg-hover);
    color: var(--primary);
}
.ml-select-option.is-selected {
    background: var(--primary-tint);
    color: var(--primary);
    font-weight: 500;
    position: relative;
    padding-right: 32px;
}
.ml-select-option.is-selected::after {
    content: '';
    position: absolute;
    right: 12px; top: 50%;
    width: 14px; height: 14px;
    transform: translateY(-50%);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230071E3'%3E%3Cpath d='M13.485 1.929 5.5 9.914 2.515 6.929 1.101 8.343 5.5 12.742l9.399-9.399z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ml-select-group-label {
    padding: 10px 12px 4px;
    color: var(--text-light);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============ ml-toast / ml-dialog(全局 UI 组件,替代原生 alert) ============ */
#ml-toast-container {
    position: fixed;
    inset: 0;                         /* 全屏 */
    z-index: 2200;                    /* 必须高于 ml-dialog-mask(2100),否则弹窗内的字数校验 toast 被遮住看不见 */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;          /* 垂直居中 */
    gap: 10px;
    pointer-events: none;             /* 容器穿透,toast 自己 pointer-events: auto */
    padding: 24px;
}
.ml-toast {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 20px;
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    box-shadow: 0 8px 28px rgba(17, 24, 39, 0.10), 0 2px 6px rgba(17, 24, 39, 0.05);
    font-size: 14px;
    font-weight: 500;
    color: var(--text-dark);
    max-width: 90vw;
    opacity: 0;
    transform: translateY(-8px) scale(0.96);
    transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.2, 0.8, 0.2, 1);
    pointer-events: auto;
    cursor: pointer;
}
.ml-toast.ml-toast-show {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.ml-toast.ml-toast-leave {
    opacity: 0;
    transform: translateY(-8px) scale(0.96);
}
.ml-toast .bi { font-size: 16px; flex-shrink: 0; }
.ml-toast .ml-toast-msg { line-height: 1.4; }

.ml-toast-success .bi { color: #34C759; }
.ml-toast-error   .bi { color: #FF3B30; }
.ml-toast-warning .bi { color: #FF9F0A; }
.ml-toast-info    .bi { color: var(--primary); }

/* ml-dialog(confirm 用) */
.ml-dialog-mask {
    position: fixed; inset: 0;
    background: rgba(17, 24, 39, 0.35);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 2100;
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.ml-dialog-mask.ml-dialog-show { opacity: 1; }
.ml-dialog-mask.ml-dialog-leave { opacity: 0; }

.ml-dialog {
    width: 100%; max-width: 400px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(17, 24, 39, 0.20), 0 4px 12px rgba(17, 24, 39, 0.08);
    overflow: hidden;
    transform: scale(0.94);
    transition: transform 0.22s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ml-dialog-mask.ml-dialog-show .ml-dialog { transform: scale(1); }

.ml-dialog-title {
    margin: 0;
    padding: 26px 28px 6px;
    font-size: 17px; font-weight: 700;
    color: var(--text-dark);
    text-align: center;
}
.ml-dialog-body {
    padding: 8px 28px 24px;
    color: var(--text-normal);
    font-size: 14px; line-height: 1.6;
    text-align: center;
}
/* 仅 body 无 title 时,补回顶部内边距 */
.ml-dialog > .ml-dialog-body:first-child { padding-top: 28px; }

/* 按钮区:浅灰底,圆角按钮分两侧,有 gap */
.ml-dialog-actions {
    display: flex;
    gap: 10px;
    padding: 4px 20px 20px;
    background: #fff;
}
.ml-dialog-btn {
    flex: 1;
    border: 0;
    padding: 0 16px;
    height: 42px;
    border-radius: 12px;
    font-size: 14px; font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s, color 0.15s;
}
/* 取消:次按钮,灰底灰字 */
.ml-dialog-btn-cancel {
    background: var(--bg-page);
    color: var(--text-dark);
}
.ml-dialog-btn-cancel:hover { background: #ECECF0; }
/* 确定:主按钮,蓝色实心 + 阴影 */
.ml-dialog-btn-ok {
    background: var(--primary);
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(0, 113, 227, 0.22);
}
.ml-dialog-btn-ok:hover {
    background: #0077ED;
    box-shadow: 0 3px 12px rgba(0, 113, 227, 0.32);
}
/* 危险确认(删除):红色实心 */
.ml-dialog-btn-danger {
    background: #FF3B30;
    color: #fff;
    box-shadow: 0 2px 8px rgba(255, 59, 48, 0.24);
}
.ml-dialog-btn-danger:hover {
    background: #E33024;
    box-shadow: 0 3px 12px rgba(255, 59, 48, 0.34);
}

/* ml.prompt - 带 textarea 的输入弹窗 */
.ml-dialog-prompt { max-width: 440px; }
.ml-dialog-textarea {
    width: calc(100% - 36px);
    margin: 0 18px 6px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-dark);
    background: var(--bg-page);
    border: 1px solid transparent;
    border-radius: 8px;
    resize: none;
    min-height: 110px;
    box-sizing: border-box;
    transition: background 0.15s, border-color 0.15s;
    outline: none;
    font-family: inherit;
}
.ml-dialog-textarea:focus {
    background: #fff;
    border-color: var(--primary);
}
.ml-dialog-counter {
    margin: 0 18px 14px;
    font-size: 12px;
    color: var(--text-muted);
    text-align: right;
}

/* ============ Flatpickr Apple 简约风覆盖 ============ */
/* 弹层容器:圆角放大 + 更明显的阴影,边距宽松 */
/* width 用 min() 保证窄屏不会溢出右侧(input 靠近右边时被 position:'auto right' 自动翻转) */
.flatpickr-calendar {
    width: min(320px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    height: auto !important;
    border-radius: 14px !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 12px 36px rgba(17, 24, 39, 0.14) !important;
    padding: 10px 6px 16px !important;
    font-family: inherit !important;
    overflow: visible !important;
}
.flatpickr-calendar::before, .flatpickr-calendar::after { display: none !important; }
.flatpickr-calendar.hasTime { height: auto !important; }
.flatpickr-calendar.hasTime .flatpickr-time { height: auto !important; max-height: none !important; overflow: visible !important; }
.flatpickr-innerContainer, .flatpickr-rContainer { overflow: visible !important; }

/* 顶部年月条 */
.flatpickr-months {
    padding: 4px 6px 8px !important;
    align-items: center !important;
}
.flatpickr-months .flatpickr-month {
    height: 36px !important;
    color: var(--text-dark) !important;
    overflow: visible !important;
}
/* 保留 flatpickr 默认 position:absolute + width:75% + left:12.5% 居中布局 — 不要用 flex 覆盖,
 * 否则 .flatpickr-current-month 会占满整行盖住 prev/next 按钮 */
.flatpickr-current-month {
    font-size: 15px !important;
    font-weight: 600 !important;
    padding-top: 6px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: var(--text-dark) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 4px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month input.cur-year:hover {
    background: var(--bg-page) !important;
    border-radius: 6px !important;
}
/* 上/下月切换箭头 */
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: var(--text-muted) !important;
    fill: var(--text-muted) !important;
    padding: 8px !important;
    border-radius: 8px !important;
    transition: background 0.15s, color 0.15s !important;
    top: 4px !important;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
    background: var(--bg-page) !important;
    color: var(--primary) !important;
    fill: var(--primary) !important;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    width: 14px !important;
    height: 14px !important;
}

/* 星期表头 */
.flatpickr-weekdays { margin-top: 4px !important; }
.flatpickr-weekday {
    color: var(--text-muted) !important;
    font-weight: 500 !important;
    font-size: 12px !important;
}

/* 日期格 */
/* 关键:.flatpickr-days 默认 width 307.875px 几乎占满 calendar 内容区(308px),
 * 最后一列(周日)的 day 元素贴 dayContainer 右边界 — today/selected 的 background/border 在右侧被父容器裁切。
 * 解法:给 .flatpickr-days 设 width:100% + 左右各留 4px padding,让 dayContainer 整体内收,最后一列有缓冲 */
.flatpickr-days {
    width: 100% !important;
    padding: 4px 8px 0 !important;
    box-sizing: border-box !important;
}
.dayContainer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 4px 0 !important;
}
.flatpickr-day {
    color: var(--text-dark) !important;
    border-radius: 10px !important;
    border: 0 !important;
    height: 34px !important;
    line-height: 34px !important;
    /* width 自动按 dayContainer/7,不再固定 max-width 避免最后一列贴边 */
    max-width: none !important;
    flex-basis: calc(100% / 7) !important;
    font-size: 13px !important;
    transition: background 0.15s, color 0.15s !important;
    box-sizing: border-box !important;
}
.flatpickr-day:hover {
    background: var(--bg-page) !important;
    color: var(--primary) !important;
}
/* today 用浅蓝背景 + 蓝字 — 避免边框在最后一列被裁(子像素渲染问题) */
.flatpickr-day.today {
    border: 0 !important;
    background: rgba(0, 113, 227, 0.10) !important;
    color: var(--primary) !important;
    font-weight: 600 !important;
}
.flatpickr-day.today:hover {
    background: rgba(0, 113, 227, 0.18) !important;
    color: var(--primary) !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: var(--primary) !important;
    color: #fff !important;
    font-weight: 600 !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: #C7C7CC !important;
}
.flatpickr-day.flatpickr-disabled:hover {
    background: transparent !important;
    color: #C7C7CC !important;
}

/* 上下月按钮始终保留占位(maxDate:'today' 会禁用 next 按钮,默认会隐藏可见性) */
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
    visibility: visible !important;
    opacity: 0.3 !important;
    cursor: not-allowed !important;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled:hover,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled:hover {
    background: transparent !important;
    color: var(--text-muted) !important;
    fill: var(--text-muted) !important;
}

/* 时间选择器(enableTime: true 的丢失时间用) — 给 HH/MM 输入框加视觉边界,用户知道可点击改 */
.flatpickr-time {
    border-top: 1px solid var(--border-light) !important;
    margin-top: 8px !important;
    padding-top: 12px !important;
    height: auto !important;
    line-height: normal !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
}
.flatpickr-time .numInputWrapper {
    flex: 0 0 60px !important;
    width: 60px !important;
    height: 36px !important;
    background: var(--bg-page) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
}
.flatpickr-time .numInputWrapper:hover,
.flatpickr-time .numInputWrapper:focus-within {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(0,113,227,0.12) !important;
}
.flatpickr-time input.flatpickr-hour,
.flatpickr-time input.flatpickr-minute,
.flatpickr-time input.flatpickr-second {
    background: transparent !important;
    color: var(--text-dark) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    height: 100% !important;
    line-height: 36px !important;
}
.flatpickr-time .flatpickr-time-separator {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--text-dark) !important;
    padding: 0 2px !important;
    line-height: 36px !important;
    height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
}
/* 隐藏所有 numInputWrapper 的上下箭头 — 时间用键盘输入,年份改用自定义点击面板 */
.flatpickr-time .numInputWrapper span.arrowUp,
.flatpickr-time .numInputWrapper span.arrowDown,
.flatpickr-current-month .numInputWrapper span.arrowUp,
.flatpickr-current-month .numInputWrapper span.arrowDown {
    display: none !important;
}
/* 年份变成可点击文本(去掉 numInput 的 wrapper 视觉) */
.flatpickr-current-month .ml-fp-yearwrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    width: auto !important;
    display: inline-flex !important;
    align-items: center !important;
}
.flatpickr-current-month .ml-fp-yearwrap:hover input.cur-year {
    background: var(--bg-page) !important;
    border-radius: 6px !important;
}
.flatpickr-current-month input.cur-year {
    cursor: pointer !important;
    padding: 2px 6px !important;
    width: 56px !important;
    text-align: center !important;
    white-space: nowrap !important;
}
.flatpickr-current-month .ml-fp-monthlabel {
    cursor: pointer !important;
    padding: 2px 6px !important;
    border-radius: 6px !important;
    transition: background 0.15s !important;
    display: inline-block !important;
    white-space: nowrap !important;
    text-align: center !important;
}
.flatpickr-current-month .ml-fp-monthlabel:hover {
    background: var(--bg-page) !important;
}

/* ===== 企业合作申请:机构类型 chip 选择 ===== */
.biz-type-chips {
    display: flex;
    gap: 10px;
    margin-top: 6px;
}
.biz-type-chip {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 16px;
    background: var(--bg-page);
    border: 1.5px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-dark);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.biz-type-chip:hover {
    background: #ECECF0;
}
.biz-type-chip input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.biz-type-chip.is-active {
    background: rgba(0, 113, 227, 0.10);
    border-color: var(--primary);
    color: var(--primary);
}

/* ===== 年/月选择面板(overlay) ===== */
.ml-fp-picker {
    position: absolute;
    top: 42px;  /* 留出顶部年月条空间 */
    left: 6px;
    right: 6px;
    bottom: 12px;
    background: var(--bg-card);
    z-index: 5;
    border-radius: 10px;
    padding: 14px 10px;
    overflow: auto;
}
.ml-fp-picker-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    height: 100%;
    align-content: center;
}
.ml-fp-picker-grid-year {
    grid-template-columns: repeat(3, 1fr);
}
.ml-fp-picker-cell {
    height: 44px;
    background: var(--bg-page);
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--text-dark);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ml-fp-picker-cell:hover:not(:disabled) {
    background: #fff;
    border-color: var(--primary);
    color: var(--primary);
}
.ml-fp-picker-cell.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}
.ml-fp-picker-cell:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ===== 日历底部"清除 / 确认"按钮栏 ===== */
.ml-fp-confirmbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 12px 4px;
    border-top: 1px solid var(--border-light);
    margin-top: 10px;
}
.ml-fp-btn {
    height: 36px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
/* "清除":左侧文字风格,弱化 */
.ml-fp-btn-ghost {
    flex: 0 0 auto;
    padding: 0 14px;
    background: transparent;
    color: var(--text-muted);
    border: 0;
}
.ml-fp-btn-ghost:hover {
    color: var(--primary);
    background: var(--bg-page);
}
/* "确认":右侧蓝色实心,稍宽,视觉重点 */
.ml-fp-btn-primary {
    flex: 0 0 96px;
    padding: 0 18px;
    background: var(--primary);
    color: #fff;
    border: 0;
    box-shadow: 0 2px 8px rgba(0, 113, 227, 0.22);
}
.ml-fp-btn-primary:hover {
    background: #0077ED;
    box-shadow: 0 3px 12px rgba(0, 113, 227, 0.32);
}
.ml-fp-btn-primary:active {
    background: #0064CC;
    box-shadow: 0 1px 4px rgba(0, 113, 227, 0.22);
}
/* 隐藏后让 input 居中,不留箭头空位 */
.flatpickr-time input.flatpickr-hour,
.flatpickr-time input.flatpickr-minute {
    text-align: center !important;
    padding: 0 !important;
}
