/* ==========================================================================
   企业年报登记系统 · H5 客户端样式
   第一段：手写等效工具类（替代原站引用的 Tailwind CDN，保证离线可用）
   第二段：各页面样式（结构、类名、取值均与原站一致）
   ========================================================================== */

/* ------------------------- 1. 工具类（Tailwind 等效） ------------------------- */
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;}

.container{width:100%;margin-left:auto;margin-right:auto;}
.mx-auto{margin-left:auto;margin-right:auto;}
.max-w-lg{max-width:32rem;}
.px-2{padding-left:.5rem;padding-right:.5rem;}
.px-4{padding-left:1rem;padding-right:1rem;}
.py-2{padding-top:.5rem;padding-bottom:.5rem;}
.py-3{padding-top:.75rem;padding-bottom:.75rem;}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem;}
.py-8{padding-top:2rem;padding-bottom:2rem;}
.p-3{padding:.75rem;}
.p-5{padding:1.25rem;}
.p-6{padding:1.5rem;}
.mt-1{margin-top:.25rem;}
.mt-2{margin-top:.5rem;}
.mt-4{margin-top:1rem;}
.mt-6{margin-top:1.5rem;}
.mb-1{margin-bottom:.25rem;}
.mb-2{margin-bottom:.5rem;}
.mb-3{margin-bottom:.75rem;}
.mb-4{margin-bottom:1rem;}
.mb-6{margin-bottom:1.5rem;}
.ml-2{margin-left:.5rem;}
.ml-3{margin-left:.75rem;}
.pb-2{padding-bottom:.5rem;}

.flex{display:flex;}
.block{display:block;}
.hidden{display:none;}
.flex-col{flex-direction:column;}
.items-center{align-items:center;}
.items-start{align-items:flex-start;}
.justify-between{justify-content:space-between;}
.justify-center{justify-content:center;}
.text-center{text-align:center;}
.relative{position:relative;}
.absolute{position:absolute;}
.float-right{float:right;}
.cursor-pointer{cursor:pointer;}
.italic{font-style:italic;}
.leading-relaxed{line-height:1.625;}
.overflow-hidden{overflow:hidden;}

.w-full{width:100%;}
.w-1\/3{width:33.333333%;}
.w-2\/5{width:40%;}
.w-3\/5{width:60%;}
.w-4{width:1rem;}
.w-8{width:2rem;}
.h-4{height:1rem;}
.h-8{height:2rem;}
.rounded{border-radius:.25rem;}
.rounded-lg{border-radius:.5rem;}
.rounded-xl{border-radius:.75rem;}
.rounded-full{border-radius:9999px;}
.border{border-width:1px;border-style:solid;}
.border-b{border-bottom-width:1px;border-style:solid;}
.border-4{border-width:4px;border-style:solid;}
.border-gray-100{border-color:#f3f4f6;}
.border-gray-200{border-color:#e5e7eb;}
.border-gray-300{border-color:#d1d5db;}
.bg-white{background-color:#fff;}
.bg-gray-50{background-color:#f9fafb;}
.bg-primary{background-color:#28a745;}
.text-white{color:#fff;}
.text-gray-400{color:#9ca3af;}
.text-gray-500{color:#6b7280;}
.text-gray-600{color:#4b5563;}
.text-gray-700{color:#374151;}
.text-gray-800{color:#1f2937;}
.text-red-500{color:#ef4444;}
.text-primary{color:#28a745;}
.text-xs{font-size:.75rem;line-height:1rem;}
.text-sm{font-size:.875rem;line-height:1.25rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.font-medium{font-weight:500;}
.font-bold{font-weight:700;}
.font-sans{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;}

/* 垂直间距流（等价 space-y-*） */
.space-y-3 > * + *{margin-top:.75rem;}
.space-y-4 > * + *{margin-top:1rem;}
.space-y-6 > * + *{margin-top:1.5rem;}
.space-y-1 > * + *{margin-top:.25rem;}

.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.transition-colors{transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1);}
.duration-300{transition-duration:.3s;}
.hover\:bg-secondary:hover{background-color:#1e7e34;}

.card-shadow{box-shadow:0 4px 20px rgba(0,0,0,.08);}
.hover-lift{transition:transform .3s ease,box-shadow .3s ease;}
.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 25px rgba(0,0,0,.1);}
.content-auto{content-visibility:auto;}

.loader{border-top-color:#22c55e;animation:spinner .6s linear infinite;}
@keyframes spinner{to{transform:rotate(360deg);}}

.font-sans.text-gray-800{color:#1f2937;}
.text-xl{font-size:1rem !important;}

/* ------------------------- 2. 公共底部导航 ------------------------- */
.footer{position:fixed;bottom:0;left:0;right:0;height:52px;background-color:#fff;border-top:1px solid #ddd;
  display:flex;justify-content:center;align-items:center;z-index:50;}
.footer-item{text-align:center;cursor:pointer;padding:0 18px;}
.footer-text{font-size:16px;font-weight:500;letter-spacing:.5px;color:#333;}
.footer-item.active .footer-text{color:#2979ff;font-weight:600;}
.noline{text-decoration:none;}
.taber{width:80%;}
.has-footer{padding-bottom:62px;}

/* 软键盘弹起时收起底部入口（2026-10-06 用户要求「不要放在输入键盘上，永远放在页面最底部」）：
   安卓 / 微信 WebView 弹键盘会把视口缩小，fixed 元素就被顶到键盘正上方 —— 看起来像压在键盘上。
   此时把入口藏起来，键盘收起自动恢复；入口永远只在页面最底部。 */
body.kb-open .footer{display:none;}

/* ------------------------- 3. 首页 ------------------------- */
.page-index{background-color:#092FBA;font-family:"Microsoft Yahei",sans-serif;}
.page-index .header{background-color:#2979ff;color:#fff;padding:20px 15px;text-align:center;}
.page-index .logo{width:60px;height:60px;background-color:#fff;border-radius:50%;margin:0 auto 10px;background-size:cover;}
.page-index .main{background-color:#fff;border-top-left-radius:15px;border-top-right-radius:15px;padding:20px 15px;
  margin:0 10px;position:relative;margin-top:-20px;margin-bottom:60px;}
.page-index .section-title{font-size:18px;font-weight:bold;color:#333;margin-bottom:15px;position:relative;padding-left:10px;}
.page-index .section-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:5px;height:20px;background-color:#2979ff;border-radius:3px;}
.page-index .search-box{display:flex;margin-bottom:25px;}
.page-index .search-input{flex:1;height:40px;border:1px solid #ddd;border-top-left-radius:5px;border-bottom-left-radius:5px;
  padding:0 15px;font-size:14px;outline:none;}
.page-index .search-btn{width:80px;height:40px;background-color:#ddd;color:#333;border:none;
  border-top-right-radius:5px;border-bottom-right-radius:5px;cursor:pointer;font-size:14px;}
.page-index .stats{display:flex;justify-content:space-between;margin-bottom:30px;}
.page-index .stat-item{text-align:center;}
.page-index .stat-num{font-size:24px;font-weight:bold;color:#2979ff;}
.page-index .stat-desc{font-size:12px;color:#666;margin-top:5px;}
.page-index .reason-title{font-size:18px;font-weight:bold;color:#333;margin-bottom:15px;position:relative;padding-left:10px;}
.page-index .reason-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:5px;height:20px;background-color:#2979ff;border-radius:3px;}
.page-index .reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;}
.page-index .reason-card{background-color:#4A92FD;border-radius:8px;text-align:center;}
.page-index .reason-card-title{font-size:16px;color:#fff;background-color:#2979ff;padding:8px 0;border-radius:5px;margin-bottom:10px;}
.page-index .reason-card-desc{font-size:14px;color:#333;}

/* 员工号弹窗 */
.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);
  display:flex;justify-content:center;align-items:center;z-index:100;}
.modal-content{background-color:#fff;border-radius:8px;padding:20px;width:80%;max-width:400px;}
.modal-title{margin-bottom:15px;}
.form-group{margin-bottom:15px;}
.form-group label{display:block;margin-bottom:5px;font-size:14px;}
.form-group input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;outline:none;}
.confirm-btn{width:100%;padding:10px;background-color:#2979ff;color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer;}
.shake{animation:shake .3s;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}

/* 简易提示（替代 layui layer.alert） */
.layer-toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.78);color:#fff;
  padding:12px 20px;border-radius:6px;font-size:14px;max-width:70%;text-align:center;z-index:9999;}
.layer-confirm{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9998;}
.layer-confirm .box{background:#fff;border-radius:8px;width:78%;max-width:320px;overflow:hidden;text-align:center;}
.layer-confirm .hd{padding:18px 16px 6px;font-size:16px;color:#333;}
.layer-confirm .bd{padding:0 16px 18px;font-size:14px;color:#666;line-height:1.6;}
.layer-confirm .ft{display:flex;border-top:1px solid #eee;}
.layer-confirm .ft button{flex:1;padding:12px;border:none;background:#fff;font-size:15px;cursor:pointer;color:#333;}
.layer-confirm .ft button + button{border-left:1px solid #eee;color:#2979ff;}
/* 只有标题的提示框（无正文）：标题与按钮字号加大（2026-10-09 再调大：24/20） */
.layer-confirm .box.no-bd .hd{padding:28px 20px 24px;font-size:24px;font-weight:600;color:#1f2937;line-height:1.5;}
.layer-confirm .box.no-bd .ft button{padding:16px;font-size:20px;font-weight:600;color:#2979ff;}

/* ------------------------- 4. 企业列表页 ------------------------- */
.page-qylist{background-color:#f9fafb;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#1f2937;}
.page-qylist main{padding-bottom:20px;}
.qylist-head{padding:14px 16px 4px;}
.qylist-kw{font-size:13px;color:#6b7280;}
.qylist-kw b{color:#1f2937;}
.empty-tip{text-align:center;padding:60px 20px;color:#9ca3af;font-size:14px;}
.empty-tip .fa{font-size:34px;display:block;margin-bottom:10px;color:#d1d5db;}

/* ------------------------- 5. 年报登记页 ------------------------- */
.page-pay3{background-color:#f8f9fa;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#374151;}
.page-pay3 .section-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:1.25rem;
  margin-bottom:1.5rem;transition:all .3s;}
.page-pay3 .section-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);}
.page-pay3 .section-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin-bottom:1rem;padding-left:1rem;position:relative;}
.page-pay3 .section-title::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background-color:#2979ff;border-radius:9999px;}
.page-pay3 .form-input{width:100%;padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;transition:all .2s;outline:none;font-size:14px;}
.page-pay3 .form-input:focus{box-shadow:0 0 0 2px rgba(41,121,255,.35);border-color:#2979ff;}
.page-pay3 .section-card .space-y-4.text-sm{font-size:.875rem;line-height:1.25rem;}
.radio-option{transition:all .2s ease;}
.radio-option:hover{background-color:#f1f8e9;}
.radio-option.checked{border-color:#2979ff !important;background-color:#f1f8e9;}
.page-pay3 .top-banner{background:linear-gradient(180deg,#72B37E 0%,#DBE8DF 98%);font-size:0;}
.page-pay3 .top-banner img{width:100%;display:block;}

/* 支付弹窗 */
.pay-mask{display:none;position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.6);
  z-index:999;align-items:center;justify-content:center;pointer-events:auto;}
.pay-box{width:85%;max-width:320px;background:#fff;border-radius:16px;padding:24px;text-align:center;position:relative;}
.close-pay{position:absolute;right:12px;top:12px;font-size:20px;color:#999;cursor:pointer;z-index:2;line-height:1;}
.qrcode-wrap{pointer-events:auto !important;user-select:text !important;-webkit-user-select:text !important;touch-action:manipulation;position:relative;width:220px;margin:10px auto;}
.qrcode-img{width:220px;height:220px;margin:0 auto;border:1px solid #eee;display:block;object-fit:contain;background:#fff;}
/* 多收款码通道切换（后台「支付设置」维护） */
.qr-tabs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:0 0 8px;}
.qr-tab{
  padding:6px 14px;border:1px solid #dbe4f0;background:#fff;color:#5a6b85;
  border-radius:20px;font-size:12px;cursor:pointer;transition:all .18s;
}
.qr-tab.active{background:#2979ff;border-color:#2979ff;color:#fff;font-weight:600;}

/* 云熠码实时二维码：加载态 + 打开收银台按钮 */
.qr-loading{position:absolute;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;
  gap:8px;font-size:12px;color:#8a94a6;}
.loader-circle{width:16px;height:16px;border:2px solid #e6eefc;border-top-color:#2979ff;border-radius:50%;
  display:inline-block;animation:spinner .7s linear infinite;}
.pay-open-btn{display:block;width:100%;margin-top:14px;padding:11px;background:#2979ff;color:#fff;
  border-radius:8px;font-size:15px;text-align:center;text-decoration:none;}

/* ------------------------- 5.1 支付结果页 ------------------------- */
.page-result{background:#f1f5fb;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#374151;}
.result-wrap{padding:34px 18px 20px;text-align:center;}
.result-icon{width:64px;height:64px;line-height:64px;border-radius:50%;background:#fff;color:#16a34a;
  font-size:32px;margin:0 auto 14px;box-shadow:0 6px 18px rgba(31,64,120,.10);}
.result-title{font-size:20px;margin:0 0 6px;color:#1f2937;}
.result-sub{margin:0 0 18px;font-size:13px;color:#8a94a6;}
.result-card{text-align:left;margin-top:6px;}
.result-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:7px 0;border-bottom:1px solid #f3f6fb;}
.result-row:last-child{border-bottom:none;}
.result-row span{color:#8a94a6;}
.result-row b{color:#374151;font-weight:500;word-break:break-all;text-align:right;}
.result-actions{margin-top:22px;display:flex;flex-direction:column;gap:10px;}
.btn-primary{width:100%;padding:13px;border:none;border-radius:10px;background:#2979ff;color:#fff;font-size:15px;cursor:pointer;}
.btn-plain{width:100%;padding:13px;border:1px solid #dbe4f0;border-radius:10px;background:#fff;color:#5a6b85;font-size:15px;cursor:pointer;}
.result-tip{margin-top:16px;font-size:12px;color:#9aa4b2;line-height:1.7;}

/* ------------------------- 7. 在线客服对话框 ------------------------- */
.svc-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9990;display:flex;align-items:flex-end;justify-content:center;}
.svc-panel{width:100%;max-width:480px;height:76vh;max-height:640px;background:#f2f5fa;border-radius:14px 14px 0 0;
  display:flex;flex-direction:column;overflow:hidden;animation:svcUp .22s ease;}
@keyframes svcUp{from{transform:translateY(30px);opacity:.3;}to{transform:translateY(0);opacity:1;}}
.svc-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#2979ff;color:#fff;flex:0 0 auto;}
.svc-avatar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.22);font-size:12px;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.svc-head-txt{flex:1;line-height:1.3;}
.svc-head-txt b{font-size:14px;font-weight:600;display:block;}
.svc-head-txt i{font-size:11px;opacity:.85;font-style:normal;}
.svc-close{font-size:24px;line-height:1;cursor:pointer;opacity:.9;padding:0 4px;}
.svc-body{flex:1;overflow-y:auto;padding:14px 12px;-webkit-overflow-scrolling:touch;}
.svc-msg{display:flex;margin-bottom:12px;}
.svc-msg.is-svc{justify-content:flex-start;}
.svc-msg.is-me{justify-content:flex-end;}
.svc-msg.is-svc > *,.svc-msg.is-me > *{max-width:86%;}
.svc-msg.is-svc{font-size:13px;line-height:1.7;}
.svc-msg.is-svc > *:not(.svc-card){background:#fff;border-radius:12px;padding:9px 12px;color:#374151;
  box-shadow:0 1px 3px rgba(31,64,120,.06);word-break:break-word;}
.svc-msg.is-me > *{background:#2979ff;color:#fff;border-radius:12px;padding:9px 12px;font-size:13px;}
.svc-msg.svc-actions-wrap > *,
.svc-msg.is-svc.svc-actions-wrap > *{background:transparent;box-shadow:none;padding:0;max-width:100%;}
.svc-action{padding:7px 14px;background:#fff;border:1px solid #d7e3f7;color:#2979ff;border-radius:9999px;
  font-size:12px;text-decoration:none;}
.svc-dots{display:inline-flex;gap:4px;align-items:center;}
.svc-dots i{width:6px;height:6px;border-radius:50%;background:#b9c6da;display:inline-block;animation:svcBlink 1s infinite;}
.svc-dots i:nth-child(2){animation-delay:.2s;}
.svc-dots i:nth-child(3){animation-delay:.4s;}
@keyframes svcBlink{0%,100%{opacity:.3;}50%{opacity:1;}}
.svc-foot{flex:0 0 auto;display:flex;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid #eef2f8;}
.svc-foot input{flex:1;height:40px;border:1px solid #e2e8f2;border-radius:20px;padding:0 14px;font-size:14px;outline:none;}
.svc-foot input:focus{border-color:#2979ff;}
.svc-foot button{width:76px;height:40px;border:none;border-radius:20px;background:#2979ff;color:#fff;font-size:14px;cursor:pointer;}

/* ------------------------- 6. 我的订单页 ------------------------- */
.page-my{background-color:#f1f5fb;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#374151;}
.page-my .my-hero{background:linear-gradient(135deg,#2979ff 0%,#4A92FD 100%);color:#fff;padding:22px 18px 70px;}
.page-my .my-hero h1{font-size:19px;margin:0 0 6px;font-weight:700;}
.page-my .my-hero p{margin:0;font-size:12px;opacity:.88;}
.page-my .my-body{margin:-52px 12px 0;}
.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 16px rgba(31,64,120,.08);}
.query-row{display:flex;gap:8px;}
.query-row input{flex:1;height:42px;border:1px solid #e2e8f2;border-radius:8px;padding:0 12px;font-size:14px;outline:none;}
.query-row button{width:88px;height:42px;border:none;border-radius:8px;background:#2979ff;color:#fff;font-size:14px;cursor:pointer;}
.order-item{margin-top:12px;border-bottom:1px solid #f0f3f8;padding-bottom:12px;}
.order-item:last-child{border-bottom:none;padding-bottom:0;}
.order-top{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;}
.order-company{font-size:14px;color:#1f2937;margin:8px 0 4px;line-height:1.4;}
.order-meta{font-size:12px;color:#8a94a6;line-height:1.7;}
.badge{font-size:11px;padding:3px 9px;border-radius:9999px;font-weight:500;white-space:nowrap;}
.badge-unpaid{background:#fff4e5;color:#d97706;}
.badge-paid{background:#e8f1ff;color:#2979ff;}
.badge-completed{background:#e7f8ee;color:#16a34a;}
.badge-refunded{background:#fdeaea;color:#dc2626;}
.receipt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;}
.receipt-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;border:1px solid #eef2f8;cursor:pointer;background:#fafbfd;}
.receipt-empty{margin-top:10px;padding:14px;border:1px dashed #dbe4f0;border-radius:8px;background:#fafcff;
  font-size:12px;color:#8a94a6;text-align:center;}

/* 图片预览 */
.img-viewer{position:fixed;inset:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:9999;}
.img-viewer img{max-width:92%;max-height:82%;border-radius:6px;}
.img-viewer .close{position:absolute;top:18px;right:22px;color:#fff;font-size:30px;cursor:pointer;line-height:1;}

/* 小屏适配 */
@media (max-width:360px){
  .page-index .stat-num{font-size:20px;}
  .page-index .reason-card-title{font-size:14px;}
}

/* 非微信环境下点「联系专属客服」的兜底提示（企微客服会话只能在微信内打开） */
.svc-link-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999;}
.svc-link-box{background:#fff;border-radius:10px;width:82%;max-width:360px;overflow:hidden;text-align:center;}
.svc-link-hd{padding:18px 16px 6px;font-size:17px;font-weight:600;color:#1f2937;}
.svc-link-bd{padding:0 18px 16px;font-size:13px;color:#5a6b85;line-height:1.8;text-align:left;}
.svc-link-bd b{color:#2979ff;}
.svc-link-url{display:block;margin-top:8px;padding:8px 10px;background:#f4f7fb;border-radius:6px;font-size:11px;color:#7b8798;word-break:break-all;font-style:normal;}
.svc-link-ft{display:flex;border-top:1px solid #eef1f6;}
.svc-link-ft button{flex:1;padding:13px;border:none;background:#fff;font-size:15px;cursor:pointer;color:#333;}
.svc-link-ft button + button{border-left:1px solid #eef1f6;color:#2979ff;font-weight:600;}
