/**
 * front.css — 前台站点专属样式
 *
 * 依赖 tokens.css / base.css / components.css（Sarah & Bill）
 * 本文件由 Nick 维护，配色全部走 var(--lh-*) 变量
 * 禁止出现紫色硬编码色值（H 250°-310° S>=15% 一律违规）
 */

/* ==============================
   0. 通用工具
   ============================== */
.lh-container{max-width:72rem;margin:0 auto;padding:0 1.5rem;}
.lh-container--sm{max-width:42rem;}
.lh-container--md{max-width:56rem;}
.lh-link{color:var(--lh-primary,#ff3f9f);text-decoration:none;transition:color .2s;}
.lh-link:hover{color:var(--lh-primary-hover,#e62e8b);text-decoration:underline;}

/* ==============================
   1. 背景光斑
   ============================== */
.lh-bg-orbs{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}
.lh-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;animation:lh-orb-float 20s ease-in-out infinite alternate;}
.lh-orb--1{width:35vw;height:35vw;top:-10%;left:-8%;background:var(--lh-primary,#ff3f9f);}
.lh-orb--2{width:30vw;height:30vw;bottom:5%;right:-5%;background:var(--lh-accent,#ff7a45);animation-delay:-7s;}
.lh-orb--3{width:20vw;height:20vw;top:40%;left:50%;background:var(--lh-accent-2,#ff9f43);animation-delay:-14s;}
@keyframes lh-orb-float{0%{transform:translate(0,0) scale(1);}100%{transform:translate(30px,-20px) scale(1.08);}}

/* ==============================
   2. 顶栏 Header
   ============================== */
.lh-header{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));transition:box-shadow .3s;}
.lh-header__inner{display:flex;align-items:center;gap:1rem;max-width:72rem;margin:0 auto;padding:.625rem 1.5rem;}
.lh-header__logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;flex-shrink:0;}
.lh-header__title{font-weight:700;font-size:1.125rem;color:var(--lh-text,#0f172a);}
.lh-header__nav{display:flex;align-items:center;gap:.25rem;margin-left:auto;}
.lh-header__actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem;}
.lh-header__mobile-toggle{display:none;}
.lh-nav-link{padding:.375rem .75rem;border-radius:var(--lh-radius-sm,.375rem);color:var(--lh-text-secondary,#475569);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s,background .2s;}
.lh-nav-link:hover{color:var(--lh-primary,#ff3f9f);background:var(--lh-primary-light,#fff0f7);}
.lh-nav-link--active{color:var(--lh-primary,#ff3f9f);background:var(--lh-primary-light,#fff0f7);}

/* 主题切换 */
.lh-theme-icon--dark{display:none;}
[data-theme="dark"] .lh-theme-icon--light{display:none;}
[data-theme="dark"] .lh-theme-icon--dark{display:inline-flex;}

/* 移动端 */
@media(max-width:768px){
    .lh-header__nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--lh-bg-soft,#eef1f8);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));padding:.75rem;backdrop-filter:blur(16px);}
    .lh-header__nav--open{display:flex;}
    .lh-header__mobile-toggle{display:inline-flex;}
    .lh-header__actions{margin-left:auto;}
}

/* ==============================
   3. 主内容区
   ============================== */
.lh-main{position:relative;z-index:1;min-height:calc(100vh - 10rem);padding:2rem 1.5rem;}
.lh-body--front .lh-main{max-width:72rem;margin:0 auto;}

/* ==============================
   4. 页脚
   ============================== */
.lh-footer{position:relative;z-index:1;border-top:1px solid var(--lh-border,rgba(15,23,42,.08));padding:2rem 0;margin-top:4rem;}
.lh-footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.lh-footer__copy{font-size:.8125rem;color:var(--lh-text-tertiary,#94a3b8);}
.lh-footer__links{display:flex;gap:1.5rem;}
.lh-footer__links a{font-size:.8125rem;color:var(--lh-text-secondary,#475569);text-decoration:none;transition:color .2s;}
.lh-footer__links a:hover{color:var(--lh-primary,#ff3f9f);}

/* ==============================
   5. Hero 区域（首页）
   ============================== */
.hero{text-align:center;padding:5rem 1.5rem 3rem;position:relative;}
.hero__badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:2rem;background:var(--lh-primary-light,#fff0f7);color:var(--lh-primary,#ff3f9f);font-size:.75rem;font-weight:600;margin-bottom:1.5rem;}
.hero__title{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15;color:var(--lh-text,#0f172a);margin-bottom:1rem;}
.hero__title-gradient{background:var(--lh-gradient,linear-gradient(135deg,#ff3f9f 0%,#ff7a45 100%));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero__desc{font-size:1.125rem;color:var(--lh-text-secondary,#475569);max-width:38rem;margin:0 auto 2rem;}
.hero__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;}

/* ==============================
   6. 特性卡片
   ============================== */
.features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.5rem;padding:2rem 0;}
.feature-card{padding:1.75rem;border-radius:var(--lh-radius,0.75rem);transition:transform .25s,box-shadow .25s;}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.18));}
.feature-card__icon{width:2.75rem;height:2.75rem;border-radius:var(--lh-radius-sm,.375rem);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:#fff;}
.feature-card__icon--primary{background:var(--lh-primary,#ff3f9f);}
.feature-card__icon--accent{background:var(--lh-accent,#ff7a45);}
.feature-card__icon--info{background:var(--lh-info,#0ea5e9);}
.feature-card__icon--warning{background:var(--lh-warning,#f59e0b);}
.feature-card__title{font-size:1.0625rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.375rem;}
.feature-card__desc{font-size:.875rem;color:var(--lh-text-secondary,#475569);line-height:1.6;}

/* ==============================
   7. 价格套餐卡片
   ============================== */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.5rem;padding:2rem 0;}
.pricing-card{position:relative;padding:2rem;border-radius:var(--lh-radius,0.75rem);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;}
.pricing-card:hover{transform:translateY(-4px);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.18));}
.pricing-card--featured{border:2px solid var(--lh-primary,#ff3f9f);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.18));}
.pricing-card__badge{position:absolute;top:-0.75rem;left:50%;transform:translateX(-50%);padding:.25rem 1rem;border-radius:2rem;font-size:.75rem;font-weight:700;color:#fff;background:var(--lh-gradient,linear-gradient(135deg,#ff3f9f 0%,#ff7a45 100%));}
.pricing-card__name{font-size:1.25rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.pricing-card__price{font-size:2.25rem;font-weight:800;color:var(--lh-primary,#ff3f9f);margin-bottom:.25rem;}
.pricing-card__price small{font-size:.875rem;font-weight:400;color:var(--lh-text-secondary,#475569);}
.pricing-card__period{font-size:.8125rem;color:var(--lh-text-tertiary,#94a3b8);margin-bottom:1.25rem;}
.pricing-card__features{list-style:none;padding:0;margin:0 0 1.5rem;flex:1;}
.pricing-card__features li{padding:.375rem 0;font-size:.875rem;color:var(--lh-text-secondary,#475569);display:flex;align-items:center;gap:.5rem;}
.pricing-card__features li::before{content:'';width:1.125rem;height:1.125rem;border-radius:50%;background:var(--lh-success,#16a34a);flex-shrink:0;display:inline-block;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px;}

/* VIP 金色 */
.pricing-card--vip .pricing-card__badge{background:var(--lh-gradient-warm,linear-gradient(135deg,#d99a2b 0%,#f0c060 100%));}
.pricing-card--vip .pricing-card__price{color:var(--lh-vip-gold,#d99a2b);}

/* ==============================
   8. FAQ 折叠面板
   ============================== */
.faq-list{max-width:48rem;margin:0 auto;padding:2rem 0;}
.faq-item{border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));}
.faq-item__q{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 0;background:none;border:none;cursor:pointer;font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);text-align:left;}
.faq-item__q svg{transition:transform .3s;flex-shrink:0;}
.faq-item--open .faq-item__q svg{transform:rotate(180deg);}
.faq-item__a{padding:0 0 1rem;font-size:.875rem;color:var(--lh-text-secondary,#475569);line-height:1.7;display:none;}
.faq-item--open .faq-item__a{display:block;}

/* ==============================
   9. 文档页
   ============================== */
.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;padding:1.5rem 0;}
.docs-card{display:block;padding:1.25rem;border-radius:var(--lh-radius,0.75rem);text-decoration:none;transition:transform .2s,box-shadow .2s;}
.docs-card:hover{transform:translateY(-2px);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.18));}
.docs-card__title{font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.25rem;}
.docs-card__desc{font-size:.8125rem;color:var(--lh-text-secondary,#475569);}
.docs-detail{max-width:48rem;margin:0 auto;padding:2rem 0;}
.docs-detail h2{font-size:1.25rem;color:var(--lh-text,#0f172a);margin:2rem 0 .75rem;}
.docs-detail p,.docs-detail li{font-size:.9375rem;color:var(--lh-text-secondary,#475569);line-height:1.7;}
.docs-detail code{background:var(--lh-bg-soft,#eef1f8);padding:.125rem .375rem;border-radius:.25rem;font-size:.8125rem;}
.docs-detail pre{background:var(--lh-bg-soft,#eef1f8);padding:1rem;border-radius:var(--lh-radius-sm,.375rem);overflow-x:auto;margin:1rem 0;}

/* ==============================
   10. 联系页 & 授权查询
   ============================== */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;padding:1.5rem 0;}
.contact-card{padding:1.5rem;border-radius:var(--lh-radius,0.75rem);text-align:center;}
.contact-card__icon{margin-bottom:.75rem;color:var(--lh-primary,#ff3f9f);}
.contact-card__label{font-size:.8125rem;color:var(--lh-text-secondary,#475569);margin-bottom:.25rem;}
.contact-card__value{font-size:1rem;font-weight:600;color:var(--lh-text,#0f172a);word-break:break-all;}
.lookup-form{max-width:28rem;margin:2rem auto 0;}
.lookup-form__row{display:flex;gap:.5rem;}
.lookup-form__row .lh-input{flex:1;}
.lookup-result{max-width:28rem;margin:1.5rem auto 0;}

/* ==============================
   11. 认证页（登录/注册/找回/重置）
   ============================== */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 12rem);padding:2rem 0;}
.auth-card{width:100%;max-width:24rem;padding:2.5rem;border-radius:var(--lh-radius,0.75rem);}
.auth-card__header{text-align:center;margin-bottom:2rem;}
.auth-card__logo{display:flex;justify-content:center;margin-bottom:1rem;}
.auth-card__title{font-size:1.375rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.25rem;}
.auth-card__desc{font-size:.875rem;color:var(--lh-text-secondary,#475569);}
.auth-form .lh-form-group{margin-bottom:1rem;}
.auth-form .lh-form-label{display:block;font-size:.8125rem;font-weight:500;color:var(--lh-text,#0f172a);margin-bottom:.375rem;}
.auth-form .lh-input{width:100%;}
.auth-form__actions{margin-top:1.5rem;}
.auth-form__btn{width:100%;}
.auth-form__footer{text-align:center;margin-top:1.25rem;font-size:.8125rem;color:var(--lh-text-secondary,#475569);}
.auth-form__footer a{color:var(--lh-primary,#ff3f9f);text-decoration:none;font-weight:500;}
.auth-form__footer a:hover{text-decoration:underline;}
.auth-form__row{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;}
.auth-form__row a{color:var(--lh-primary,#ff3f9f);text-decoration:none;}

/* ==============================
   12. 控制台布局
   ============================== */
.lh-body--dashboard .lh-main{padding:0;}
.lh-dash-wrap{position:relative;z-index:1;display:flex;min-height:calc(100vh - 4rem);max-width:72rem;margin:0 auto;}

/* 侧边栏 */
.dash-sidebar{width:14rem;flex-shrink:0;padding:1.25rem .75rem;border-right:1px solid var(--lh-border,rgba(15,23,42,.08));display:flex;flex-direction:column;}
.dash-sidebar__nav{display:flex;flex-direction:column;gap:.125rem;flex:1;}
.dash-sidebar__link{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--lh-radius-sm,.375rem);color:var(--lh-text-secondary,#475569);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s,background .2s;}
.dash-sidebar__link:hover{color:var(--lh-primary,#ff3f9f);background:var(--lh-primary-light,#fff0f7);}
.dash-sidebar__link--active{color:#fff !important;background:var(--lh-gradient,linear-gradient(135deg,#ff3f9f 0%,#ff7a45 100%)) !important;}
.dash-sidebar__link--logout{color:var(--lh-danger,#ef4444);}
.dash-sidebar__link--logout:hover{background:rgba(239,68,68,.08);}
.dash-sidebar__icon{width:1.125rem;height:1.125rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dash-sidebar__badge{margin-left:auto;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:2rem;background:var(--lh-danger,#ef4444);color:#fff;font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;}
.dash-sidebar__footer{border-top:1px solid var(--lh-border,rgba(15,23,42,.08));padding-top:.75rem;margin-top:.75rem;}

/* 内容区 */
.dash-content{flex:1;min-width:0;padding:1.5rem 2rem;}
.dash-content__inner{max-width:56rem;}

@media(max-width:768px){
    .lh-dash-wrap{flex-direction:column;}
    .dash-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));}
    .dash-sidebar__nav{flex-direction:row;overflow-x:auto;gap:.25rem;}
    .dash-sidebar__footer{display:none;}
    .dash-content{padding:1rem;}
}

/* ==============================
   13. 控制台组件
   ============================== */
/* 页头 */
.dash-page-header{margin-bottom:1.5rem;}
.dash-page-header h1{font-size:1.5rem;font-weight:700;color:var(--lh-text,#0f172a);}
.dash-page-header p{font-size:.875rem;color:var(--lh-text-secondary,#475569);margin-top:.25rem;}
.dash-page-header__row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;}
.dash-page-header__actions{display:flex;gap:.5rem;flex-shrink:0;}

/* 统计卡片网格 */
.dash-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;margin-bottom:2rem;}
.dash-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;}
.dash-stat-card__icon{width:2.75rem;height:2.75rem;border-radius:var(--lh-radius-sm,.375rem);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;}
.dash-stat-card__icon--primary{background:var(--lh-primary,#ff3f9f);}
.dash-stat-card__icon--success{background:var(--lh-success,#16a34a);}
.dash-stat-card__icon--info{background:var(--lh-info,#0ea5e9);}
.dash-stat-card__icon--warning{background:var(--lh-warning,#f59e0b);}
.dash-stat-card__body{display:flex;flex-direction:column;}
.dash-stat-card__num{font-size:1.5rem;font-weight:700;color:var(--lh-text,#0f172a);line-height:1.2;}
.dash-stat-card__label{font-size:.8125rem;color:var(--lh-text-secondary,#475569);}

/* 区块 */
.dash-section{margin-bottom:2rem;}
.dash-section__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;}
.dash-section__header h2{font-size:1.125rem;font-weight:600;color:var(--lh-text,#0f172a);}
.dash-section__more{font-size:.8125rem;color:var(--lh-primary,#ff3f9f);text-decoration:none;}
.dash-section__more:hover{text-decoration:underline;}

/* 表格 */
.dash-table-wrap{overflow-x:auto;border-radius:var(--lh-radius,0.75rem);}
.dash-table{width:100%;border-collapse:collapse;font-size:.875rem;}
.dash-table th{padding:.625rem .75rem;text-align:left;font-weight:600;color:var(--lh-text-secondary,#475569);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));white-space:nowrap;font-size:.8125rem;}
.dash-table td{padding:.625rem .75rem;color:var(--lh-text,#0f172a);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));}
.dash-table tr:last-child td{border-bottom:none;}
.dash-code{font-family:var(--lh-font-mono,"SF Mono",Monaco,Consolas,monospace);font-size:.8125rem;background:var(--lh-bg-soft,#eef1f8);padding:.125rem .375rem;border-radius:.25rem;word-break:break-all;}
.dash-link{color:var(--lh-primary,#ff3f9f);text-decoration:none;}
.dash-link:hover{text-decoration:underline;}

/* 筛选 */
.dash-filter{display:flex;gap:.375rem;flex-wrap:wrap;margin-bottom:1.25rem;}
.dash-filter__btn{padding:.375rem .75rem;border-radius:2rem;font-size:.8125rem;font-weight:500;color:var(--lh-text-secondary,#475569);text-decoration:none;transition:color .2s,background .2s;border:1px solid var(--lh-border,rgba(15,23,42,.08));}
.dash-filter__btn:hover{color:var(--lh-primary,#ff3f9f);border-color:var(--lh-primary,#ff3f9f);}
.dash-filter__btn--active{color:#fff;background:var(--lh-primary,#ff3f9f);border-color:var(--lh-primary,#ff3f9f);}

/* 分页 */
.dash-pagination{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-top:1.5rem;}
.dash-pagination__btn{padding:.375rem .875rem;border-radius:var(--lh-radius-sm,.375rem);font-size:.8125rem;font-weight:500;color:var(--lh-primary,#ff3f9f);text-decoration:none;border:1px solid var(--lh-border,rgba(15,23,42,.08));transition:background .2s;}
.dash-pagination__btn:hover{background:var(--lh-primary-light,#fff0f7);}
.dash-pagination__info{font-size:.8125rem;color:var(--lh-text-secondary,#475569);}

/* 空状态 */
.dash-empty{display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem;text-align:center;}
.dash-empty p{margin:.75rem 0 1rem;color:var(--lh-text-secondary,#475569);font-size:.9375rem;}
.dash-empty-text{padding:1.5rem;text-align:center;color:var(--lh-text-tertiary,#94a3b8);font-size:.875rem;}

/* 详情卡 */
.dash-detail-card{padding:1.5rem;border-radius:var(--lh-radius,0.75rem);margin-bottom:1.25rem;}
.dash-detail-card__title{font-size:1.0625rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:1rem;}
.dash-detail-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.dash-detail-card__footer{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--lh-border,rgba(15,23,42,.08));}
.dash-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.75rem;}
.dash-detail-item{display:flex;flex-direction:column;gap:.25rem;}
.dash-detail-item__label{font-size:.75rem;font-weight:500;color:var(--lh-text-tertiary,#94a3b8);text-transform:uppercase;letter-spacing:.025em;}
.dash-detail-item__value{font-size:.9375rem;color:var(--lh-text,#0f172a);display:flex;align-items:center;gap:.5rem;}
.dash-detail-item__value--price{font-size:1.125rem;font-weight:700;color:var(--lh-primary,#ff3f9f);}

/* 域名表单 */
.dash-domain-form{margin-bottom:1rem;padding:1rem;border-radius:var(--lh-radius-sm,.375rem);background:var(--lh-bg-soft,#eef1f8);}
.dash-domain-form__row{display:flex;gap:.5rem;align-items:center;}
.dash-domain-form__row .lh-input{flex:1;}

/* 表单 */
.dash-profile-form .dash-form-group{margin-bottom:1.25rem;}
.dash-form-label{display:block;font-size:.8125rem;font-weight:500;color:var(--lh-text,#0f172a);margin-bottom:.375rem;}
.dash-form-hint{font-size:.75rem;color:var(--lh-text-tertiary,#94a3b8);margin-top:.25rem;}
.dash-form-actions{padding-top:.75rem;}

/* 通知列表 */
.dash-notification-list{display:flex;flex-direction:column;gap:.5rem;}
.dash-notification-item{display:flex;gap:.75rem;padding:1rem;border-radius:var(--lh-radius,0.75rem);transition:background .2s;}
.dash-notification-item--unread{border-left:3px solid var(--lh-primary,#ff3f9f);}
.dash-notification-item__icon{flex-shrink:0;margin-top:.125rem;}
.dash-notification-item__body{flex:1;min-width:0;}
.dash-notification-item__title{font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.25rem;}
.dash-notification-item__text{font-size:.8125rem;color:var(--lh-text-secondary,#475569);line-height:1.5;margin-bottom:.375rem;}
.dash-notification-item__time{font-size:.75rem;color:var(--lh-text-tertiary,#94a3b8);}
.dash-notification-item__actions{display:flex;gap:.375rem;flex-shrink:0;align-items:flex-start;}

/* ==============================
   14. 结账 / 收银台 / 结果
   ============================== */
.checkout-page{padding:2rem 0;}
.checkout-header{text-align:center;margin-bottom:2rem;}
.checkout-header h1{font-size:1.75rem;font-weight:700;color:var(--lh-text,#0f172a);}
.checkout-header p{color:var(--lh-text-secondary,#475569);margin-top:.25rem;}

.checkout-summary{padding:1.5rem;border-radius:var(--lh-radius,0.75rem);margin-bottom:1.25rem;}
.checkout-summary__title{font-size:1rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:1rem;}
.checkout-summary__product{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;}
.checkout-summary__product-name{font-weight:600;color:var(--lh-text,#0f172a);}
.checkout-summary__plan-name{font-size:.875rem;color:var(--lh-primary,#ff3f9f);font-weight:500;}
.checkout-summary__desc{margin-bottom:1rem;font-size:.875rem;color:var(--lh-text-secondary,#475569);}
.checkout-summary__features{list-style:none;padding:0;margin:.5rem 0 0;}
.checkout-summary__features li{padding:.25rem 0;font-size:.8125rem;color:var(--lh-text-secondary,#475569);}
.checkout-summary__features li::before{content:'✓ ';color:var(--lh-success,#16a34a);}
.checkout-summary__price-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.875rem;color:var(--lh-text-secondary,#475569);border-top:1px solid var(--lh-border,rgba(15,23,42,.08));}
.checkout-summary__price-row--total{font-weight:700;font-size:1rem;color:var(--lh-text,#0f172a);}
.checkout-summary__price-row--discount{color:var(--lh-success,#16a34a);}
.checkout-summary__total{font-size:1.25rem;font-weight:800;color:var(--lh-primary,#ff3f9f);}

.checkout-coupon{padding:1.25rem;border-radius:var(--lh-radius,0.75rem);margin-bottom:1.25rem;}
.checkout-coupon__title{font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.75rem;}
.checkout-coupon__input-row{display:flex;gap:.5rem;}
.checkout-coupon__input-row .lh-input{flex:1;}
.checkout-coupon__msg{font-size:.8125rem;margin-top:.5rem;min-height:1.25rem;}

.checkout-gateways{padding:1.25rem;border-radius:var(--lh-radius,0.75rem);margin-bottom:1.5rem;}
.checkout-gateways__title{font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.75rem;}
.checkout-gateways__list{display:flex;flex-direction:column;gap:.5rem;}
.checkout-gateway{cursor:pointer;}
.checkout-gateway input[type="radio"]{display:none;}
.checkout-gateway__card{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;border:2px solid var(--lh-border,rgba(15,23,42,.08));border-radius:var(--lh-radius-sm,.375rem);transition:border-color .2s,background .2s;}
.checkout-gateway input:checked + .checkout-gateway__card{border-color:var(--lh-primary,#ff3f9f);background:var(--lh-primary-light,#fff0f7);}
.checkout-gateway__icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.checkout-gateway__name{font-weight:600;font-size:.9375rem;color:var(--lh-text,#0f172a);}
.checkout-gateway__desc{font-size:.75rem;color:var(--lh-text-tertiary,#94a3b8);}
.checkout-gateway__info{display:flex;flex-direction:column;gap:.125rem;}

.checkout-actions{text-align:center;}
.checkout-actions__hint{font-size:.75rem;color:var(--lh-text-tertiary,#94a3b8);margin-top:.75rem;}

/* 收银台 */
.cashier-page{padding:2rem 0;}
.cashier-header{text-align:center;margin-bottom:2rem;}
.cashier-header h1{font-size:1.5rem;font-weight:700;color:var(--lh-text,#0f172a);}
.cashier-card{padding:2rem;border-radius:var(--lh-radius,0.75rem);text-align:center;}
.cashier-amount{margin-bottom:1.5rem;}
.cashier-amount__label{font-size:.875rem;color:var(--lh-text-secondary,#475569);display:block;margin-bottom:.375rem;}
.cashier-amount__value{font-size:2.5rem;font-weight:800;color:var(--lh-primary,#ff3f9f);}
.cashier-info{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;padding:1rem;border-radius:var(--lh-radius-sm,.375rem);background:var(--lh-bg-soft,#eef1f8);}
.cashier-info__row{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--lh-text-secondary,#475569);}
.cashier-info__row code{font-size:.8125rem;}

.cashier-qr{padding:1.5rem 0;}
.cashier-qr__hint{margin-bottom:1rem;font-size:.875rem;color:var(--lh-text-secondary,#475569);}
.cashier-qr__canvas{display:flex;justify-content:center;margin-bottom:1rem;}
.cashier-qr__canvas canvas,.cashier-qr__canvas svg{border-radius:var(--lh-radius-sm,.375rem);border:4px solid #fff;box-shadow:0 2px 12px rgba(0,0,0,.08);}
.cashier-qr__waiting{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--lh-text-secondary,#475569);font-size:.875rem;}

.cashier-spinner{width:1rem;height:1rem;border:2px solid var(--lh-border,rgba(15,23,42,.08));border-top-color:var(--lh-primary,#ff3f9f);border-radius:50%;display:inline-block;animation:lh-spin 1s linear infinite;}
.cashier-spinner--lg{width:2.5rem;height:2.5rem;border-width:3px;}
@keyframes lh-spin{to{transform:rotate(360deg);}}

.cashier-redirect{padding:2rem 0;}
.cashier-redirect__icon{margin-bottom:1rem;}
.cashier-redirect p{color:var(--lh-text-secondary,#475569);font-size:.875rem;}
.cashier-redirect__hint{margin-top:.5rem;}
.cashier-manual{padding:1.5rem 0;}
.cashier-manual__icon{margin-bottom:1rem;}
.cashier-manual h3{font-size:1.125rem;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.cashier-manual p{font-size:.875rem;color:var(--lh-text-secondary,#475569);margin-bottom:.5rem;}
.cashier-manual__order code{font-weight:600;font-size:.9375rem;}
.cashier-error{padding:2rem 0;}
.cashier-error__icon{margin-bottom:1rem;}
.cashier-error h3{font-size:1.125rem;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.cashier-error p{font-size:.875rem;color:var(--lh-text-secondary,#475569);margin-bottom:1rem;}
.cashier-footer{text-align:center;margin-top:1.5rem;}

/* 结果页 */
.result-page{padding:3rem 0;}
.result-card{padding:2.5rem;border-radius:var(--lh-radius,0.75rem);text-align:center;}
.result-card__icon{margin-bottom:1.25rem;}
.result-card__title{font-size:1.75rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.result-card__desc{font-size:1rem;color:var(--lh-text-secondary,#475569);margin-bottom:1.5rem;}
.result-card__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}
.result-card__polling{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--lh-text-secondary,#475569);font-size:.875rem;}

.result-license{padding:1.5rem;border-radius:var(--lh-radius-sm,.375rem);margin:1.5rem auto;max-width:28rem;text-align:center;}
.result-license__label{font-size:.8125rem;color:var(--lh-text-secondary,#475569);margin-bottom:.5rem;}
.result-license__key{display:block;font-family:var(--lh-font-mono,"SF Mono",Monaco,Consolas,monospace);font-size:1.125rem;font-weight:600;color:var(--lh-primary,#ff3f9f);padding:.75rem;background:var(--lh-bg-soft,#eef1f8);border-radius:var(--lh-radius-sm,.375rem);margin-bottom:.75rem;word-break:break-all;}
.result-license__hint{font-size:.75rem;color:var(--lh-text-tertiary,#94a3b8);margin-top:.5rem;}

/* ==============================
   15. 页面区块通用
   ============================== */
.page-section{padding:3rem 1.5rem;}
.page-section__header{text-align:center;margin-bottom:2rem;}
.page-section__title{font-size:1.75rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.page-section__desc{font-size:1rem;color:var(--lh-text-secondary,#475569);max-width:36rem;margin:0 auto;}

/* CTA 条 */
.cta-section{text-align:center;padding:4rem 1.5rem;margin:3rem 0;border-radius:var(--lh-radius,0.75rem);background:var(--lh-gradient,linear-gradient(135deg,#ff3f9f 0%,#ff7a45 100%));color:#fff;position:relative;overflow:hidden;}
.cta-section::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,.12) 0%,transparent 60%);pointer-events:none;}
.cta-section h2{font-size:1.75rem;font-weight:700;margin-bottom:.5rem;position:relative;}
.cta-section p{font-size:1rem;opacity:.9;margin-bottom:1.5rem;position:relative;}

/* ==============================
   16. 输入框补充（front 专属）
   ============================== */
.lh-input{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;color:var(--lh-text,#0f172a);background:var(--lh-bg,#f4f6fb);border:1px solid var(--lh-border,rgba(15,23,42,.08));border-radius:var(--lh-radius-sm,.375rem);outline:none;transition:border-color .2s,box-shadow .2s;}
.lh-input:focus{border-color:var(--lh-primary,#ff3f9f);box-shadow:0 0 0 3px rgba(255,63,159,.12);}
.lh-input:disabled{opacity:.6;cursor:not-allowed;}

/* ==============================
   17. 前台内页通用组件
   ============================== */

/* --- 页面标题区 --- */
.front-page-header{text-align:center;padding:3.5rem 0 2.5rem;}
.front-page-header__title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;color:var(--lh-text,#0f172a);margin-bottom:.75rem;line-height:1.2;}
.front-page-header__desc{font-size:1.0625rem;color:var(--lh-text-soft,#475569);max-width:36rem;margin:0 auto;line-height:1.6;}

/* --- 通用表单 --- */
.front-form .lh-form-group{margin-bottom:1.25rem;}

/* --- 空状态 --- */
.front-empty{text-align:center;padding:4rem 2rem;border-radius:var(--lh-r-lg,20px);}
.front-empty p{font-size:1rem;color:var(--lh-text-mute,#94a3b8);margin:0;}

/* --- 授权查询结果 --- */
.front-lookup-result{margin-top:1.25rem;padding:1.25rem;border-radius:var(--lh-r-sm,.375rem);background:var(--lh-bg-soft,#eef1f8);font-size:.875rem;color:var(--lh-text,#0f172a);}

/* ==============================
   18. 价格套餐页
   ============================== */
.front-pricing__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:1rem 0 3rem;align-items:start;}
.front-pricing__grid--center{max-width:64rem;margin:0 auto;}

.front-price-card{position:relative;padding:2rem;border-radius:var(--lh-r-lg,20px);display:flex;flex-direction:column;transition:transform .3s var(--lh-ease,cubic-bezier(.4,0,.2,1)),box-shadow .3s;}
.front-price-card:hover{transform:translateY(-4px);box-shadow:var(--lh-sh-2,0 4px 12px rgba(15,23,42,.06),0 12px 28px rgba(15,23,42,.06));}
.front-price-card--featured{border:2px solid var(--lh-primary,#ff3f9f);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.25));transform:scale(1.02);}
.front-price-card--featured:hover{transform:scale(1.02) translateY(-4px);}

.front-price-card__badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);padding:.25rem 1.25rem;border-radius:var(--lh-r-full,999px);font-size:.75rem;font-weight:700;color:#fff;background:var(--lh-gradient-primary,linear-gradient(135deg,#ff3f9f 0%,#ff7a45 100%));white-space:nowrap;letter-spacing:.04em;}
.front-price-card__name{font-size:1.25rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.front-price-card__desc{font-size:.875rem;color:var(--lh-text-mute,#94a3b8);margin-bottom:1rem;line-height:1.5;}
.front-price-card__price{display:flex;align-items:baseline;gap:2px;margin-bottom:1.25rem;}
.front-price-card__currency{font-size:1.125rem;font-weight:700;color:var(--lh-primary,#ff3f9f);}
.front-price-card__amount{font-size:clamp(2rem,4vw,2.75rem);font-weight:800;color:var(--lh-primary,#ff3f9f);line-height:1;}
.front-price-card__period{font-size:.875rem;color:var(--lh-text-mute,#94a3b8);margin-left:.25rem;}
.front-price-card__features{list-style:none;padding:0;margin:0 0 1.5rem;flex:1;display:flex;flex-direction:column;gap:.625rem;}
.front-price-card__features li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--lh-text-soft,#475569);line-height:1.5;}
.front-price-card__features li svg{flex-shrink:0;}

/* --- FAQ 区域 --- */
.front-pricing__faq{padding:3rem 0;}
.front-faq-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:2rem;}
.front-faq-item{padding:1.5rem;border-radius:var(--lh-r-md,14px);transition:transform .25s,box-shadow .25s;}
.front-faq-item:hover{transform:translateY(-2px);box-shadow:var(--lh-sh-2,0 4px 12px rgba(15,23,42,.06),0 12px 28px rgba(15,23,42,.06));}
.front-faq-item h3{font-size:.9375rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.5rem;}
.front-faq-item p{font-size:.8125rem;color:var(--lh-text-soft,#475569);line-height:1.7;margin:0;}

/* ==============================
   19. 功能介绍页
   ============================== */
.front-features-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;padding:1rem 0 3rem;}

.front-feature-section{display:flex;gap:1.25rem;padding:1.75rem;border-radius:var(--lh-r-lg,20px);transition:transform .3s var(--lh-ease,cubic-bezier(.4,0,.2,1)),box-shadow .3s,border-color .3s;}
.front-feature-section:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-glow,0 8px 30px rgba(255,63,159,.25));border-color:var(--lh-primary,#ff3f9f);}
.front-feature-section__icon{width:52px;height:52px;min-width:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--lh-gradient-soft,linear-gradient(135deg,rgba(255,63,159,.12) 0%,rgba(255,122,69,.12) 100%));}
.front-feature-section__body{flex:1;min-width:0;}
.front-feature-section__body h3{font-size:1.0625rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:.375rem;}
.front-feature-section__body p{font-size:.875rem;color:var(--lh-text-soft,#475569);line-height:1.7;margin:0;}

/* ==============================
   20. 文档页
   ============================== */
.front-docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;padding:1rem 0 3rem;}

.front-doc-card{display:flex;flex-direction:column;padding:1.5rem;border-radius:var(--lh-r-md,14px);text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;}
.front-doc-card:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-2,0 4px 12px rgba(15,23,42,.06),0 12px 28px rgba(15,23,42,.06));border-color:var(--lh-primary,#ff3f9f);}
.front-doc-card__title{font-size:1rem;font-weight:600;color:var(--lh-text,#0f172a);margin-bottom:.375rem;}
.front-doc-card:hover .front-doc-card__title{color:var(--lh-primary,#ff3f9f);}
.front-doc-card__desc{font-size:.8125rem;color:var(--lh-text-soft,#475569);line-height:1.6;flex:1;}
.front-doc-card__arrow{position:absolute;top:1.5rem;right:1.5rem;opacity:0;transform:translateX(-8px);transition:opacity .25s,transform .25s;}
.front-doc-card:hover .front-doc-card__arrow{opacity:1;transform:translateX(0);}

/* 文档详情 */
.front-doc-detail{max-width:48rem;margin:0 auto;padding:0 0 3rem;}
.front-doc-back{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--lh-text-soft,#475569);text-decoration:none;margin-bottom:1.5rem;padding:.375rem .75rem;border-radius:var(--lh-r-sm,.375rem);transition:color .2s,background .2s;}
.front-doc-back:hover{color:var(--lh-primary,#ff3f9f);background:var(--lh-primary-light,#fff0f7);}
.front-doc-content{padding:2rem;border-radius:var(--lh-r-lg,20px);line-height:1.8;}
.front-doc-content h2{font-size:1.5rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:1.25rem;}
.front-doc-content h3{font-size:1.125rem;font-weight:600;color:var(--lh-text,#0f172a);margin:1.5rem 0 .75rem;}
.front-doc-content p{font-size:.9375rem;color:var(--lh-text-soft,#475569);margin-bottom:.75rem;}
.front-doc-content ol,.front-doc-content ul{padding-left:1.25rem;margin-bottom:1rem;}
.front-doc-content ol{list-style:decimal;}
.front-doc-content ul{list-style:disc;}
.front-doc-content li{font-size:.9375rem;color:var(--lh-text-soft,#475569);margin-bottom:.5rem;line-height:1.7;}
.front-doc-content code{background:var(--lh-bg-soft,#eef1f8);padding:.125rem .375rem;border-radius:.25rem;font-size:.8125rem;font-family:var(--lh-font-mono,monospace);}

.front-doc-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.875rem;}
.front-doc-table th{padding:.625rem .75rem;text-align:left;font-weight:600;color:var(--lh-text-soft,#475569);background:var(--lh-bg-soft,#eef1f8);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));}
.front-doc-table td{padding:.625rem .75rem;color:var(--lh-text,#0f172a);border-bottom:1px solid var(--lh-border,rgba(15,23,42,.08));}
.front-doc-table tr:last-child td{border-bottom:none;}

/* ==============================
   21. 联系页
   ============================== */
.front-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:1rem 0 3rem;}

.front-contact-card{padding:1.75rem;border-radius:var(--lh-r-lg,20px);transition:transform .25s,box-shadow .25s;}
.front-contact-card:hover{transform:translateY(-2px);box-shadow:var(--lh-sh-2,0 4px 12px rgba(15,23,42,.06),0 12px 28px rgba(15,23,42,.06));}
.front-contact-card h3{font-size:1.0625rem;font-weight:700;color:var(--lh-text,#0f172a);margin-bottom:1rem;}

.front-contact-list{display:flex;flex-direction:column;gap:.75rem;}
.front-contact-item{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;color:var(--lh-text-soft,#475569);}
.front-contact-item svg{flex-shrink:0;}
.front-contact-item span{word-break:break-all;}

.front-contact-links{display:flex;flex-direction:column;gap:.75rem;}

/* ==============================
   22. 暗色模式补充
   ============================== */
[data-theme="dark"] .front-page-header__title{color:var(--lh-text,#e7ecf6);}
[data-theme="dark"] .front-price-card--featured{border-color:var(--lh-primary,#ff6bb5);}
[data-theme="dark"] .front-feature-section:hover{border-color:var(--lh-primary,#ff6bb5);}
[data-theme="dark"] .front-doc-card:hover{border-color:var(--lh-primary,#ff6bb5);}
[data-theme="dark"] .front-doc-table th{background:var(--lh-bg-soft,#0f1524);}
[data-theme="dark"] .front-faq-item:hover{box-shadow:var(--lh-sh-2);}

/* ==============================
   23. 前台内页响应式
   ============================== */
@media(max-width:768px){
    .front-page-header{padding:2.5rem 0 1.5rem;}
    .front-features-detail{grid-template-columns:1fr;}
    .front-pricing__grid{grid-template-columns:1fr;max-width:24rem;margin-left:auto;margin-right:auto;}
    .front-docs-grid{grid-template-columns:1fr;}
    .front-contact-grid{grid-template-columns:1fr;}
    .front-faq-list{grid-template-columns:1fr;}
    .front-price-card--featured{transform:none;}
    .front-price-card--featured:hover{transform:translateY(-4px);}
}
