/* =========================================================
   易如意网络验证系统 - 主题美化层 (eruyi-theme.css)
   在 eruyi.min.css 之后引入，仅做覆盖与增强，不改动原文件
   ========================================================= */
:root{
  --er-primary:#4f6ef7;
  --er-primary-2:#7c5cfc;
  --er-gradient:linear-gradient(135deg,#4f6ef7 0%,#7c5cfc 100%);
  --er-success:#10b981;
  --er-warning:#f59e0b;
  --er-danger:#ef4444;
  --er-info:#06b6d4;
  --er-ink:#0f172a;
  --er-body:#f3f5fa;
  --er-line:#e8ecf3;
  --er-muted:#64748b;
  --er-radius:14px;
  --er-radius-lg:18px;
  --er-shadow-sm:0 2px 10px rgba(15,23,42,.05);
  --er-shadow:0 8px 24px rgba(79,110,247,.14);
  --er-shadow-lg:0 24px 60px rgba(15,23,42,.16);
  --er-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
}
html,body{font-family:var(--er-font);}
body{background:var(--er-body);color:#334155;}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#c7d0de;border-radius:8px;}
::-webkit-scrollbar-thumb:hover{background:#a8b4c8;}

/* =========================================================
   官网 Landing 页
   ========================================================= */
.er-hero{
  position:relative;
  background:
    radial-gradient(1000px 480px at 85% -10%,rgba(124,92,252,.45),transparent 60%),
    radial-gradient(900px 420px at -10% 110%,rgba(79,110,247,.4),transparent 60%),
    linear-gradient(135deg,#1e293b 0%,#0f172a 55%,#1a1440 100%);
  color:#fff;
  padding:88px 24px 96px;
  text-align:center;
  overflow:hidden;
}
.er-hero::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(124,92,252,.6),transparent);
}
.er-hero-logo{
  width:72px;height:72px;margin:0 auto 22px;display:block;
  filter:drop-shadow(0 10px 24px rgba(79,110,247,.45));
  animation:er-float 5s ease-in-out infinite;
}
@keyframes er-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.er-hero h1{
  font-size:clamp(30px,5vw,46px);
  font-weight:800;letter-spacing:.5px;margin:0 0 14px;
  background:linear-gradient(90deg,#fff,#c7d2fe);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.er-hero-sub{
  max-width:640px;margin:0 auto 34px;
  font-size:16px;line-height:1.8;color:#a5b4fc;opacity:.92;
}
.er-hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.er-btn{
  display:inline-block;padding:12px 30px;border-radius:12px;
  font-size:15px;font-weight:600;text-decoration:none!important;
  transition:transform .18s,box-shadow .18s,background .18s;
}
.er-btn:hover{transform:translateY(-2px);}
.er-btn-solid{background:var(--er-gradient);color:#fff!important;box-shadow:0 10px 26px rgba(79,110,247,.4);}
.er-btn-solid:hover{box-shadow:0 14px 32px rgba(79,110,247,.55);}
.er-btn-ghost{background:rgba(255,255,255,.08);color:#e2e8f0!important;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);}
.er-btn-ghost:hover{background:rgba(255,255,255,.16);}

.er-apps{padding:56px 0 16px;}
.er-section-title{text-align:center;margin-bottom:34px;}
.er-section-title h2{font-size:26px;font-weight:700;color:var(--er-ink);margin:0 0 8px;}
.er-section-title p{color:var(--er-muted);margin:0;}
.er-app-card{
  position:relative;height:100%;
  background:#fff;border:1px solid var(--er-line);border-radius:var(--er-radius);
  padding:26px 24px 24px;margin-bottom:26px;
  box-shadow:var(--er-shadow-sm);
  transition:transform .2s,box-shadow .2s,border-color .2s;
  overflow:hidden;
}
.er-app-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--er-gradient);opacity:0;transition:opacity .2s;
}
.er-app-card:hover{transform:translateY(-4px);box-shadow:var(--er-shadow);border-color:#dbe3f5;}
.er-app-card:hover::before{opacity:1;}
.er-app-icon{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--er-gradient);color:#fff;font-size:26px;margin-bottom:16px;
  box-shadow:0 8px 18px rgba(79,110,247,.35);
}
.er-app-name{font-size:17px;font-weight:700;color:var(--er-ink);margin:0 0 6px;}
.er-app-stats{margin:14px 0 8px;border-top:1px dashed var(--er-line);padding-top:12px;}
.er-app-stats .col-4{padding:4px 2px;}
.er-stat-num{font-size:17px;font-weight:800;color:var(--er-primary);margin:0;line-height:1.2;}
.er-stat-label{font-size:11px;color:var(--er-muted);margin:2px 0 0;}
.er-app-num{font-size:30px;font-weight:800;color:var(--er-primary);margin:0 0 4px;line-height:1.2;}
.er-app-num small{font-size:13px;font-weight:500;color:var(--er-muted);}
.er-app-meta{display:flex;align-items:center;gap:8px;color:var(--er-muted);font-size:13px;margin-top:10px;}
.er-badge{
  display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;
  background:#eef2ff;color:var(--er-primary);
}
.er-dot{width:8px;height:8px;border-radius:50%;background:var(--er-success);box-shadow:0 0 0 3px rgba(16,185,129,.18);}

.er-features{padding:40px 0 30px;}
.er-feature{text-align:center;padding:30px 20px;margin-bottom:24px;background:#fff;border:1px solid var(--er-line);border-radius:var(--er-radius);box-shadow:var(--er-shadow-sm);height:100%;}
.er-feature:hover{box-shadow:var(--er-shadow);transform:translateY(-3px);transition:all .2s;}
.er-feature-icon{
  width:58px;height:58px;margin:0 auto 16px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:var(--er-gradient);color:#fff;font-size:26px;
  box-shadow:0 10px 22px rgba(79,110,247,.32);
}
.er-feature h5{font-size:16px;font-weight:700;color:var(--er-ink);margin:0 0 8px;}
.er-feature p{color:var(--er-muted);font-size:14px;margin:0;}

.er-footer{
  margin-top:40px;padding:34px 0 26px;text-align:center;
  border-top:1px solid var(--er-line);background:#fff;
  color:var(--er-muted);font-size:13px;
}
.er-footer a{color:var(--er-primary);text-decoration:none;}
.er-footer a:hover{text-decoration:underline;}

/* =========================================================
   404 / 错误页
   ========================================================= */
.er-error-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(160deg,#eef2ff 0%,#f5f3ff 55%,#fdf2f8 100%);position:relative;overflow:hidden;}
.er-error-wrap::before,.er-error-wrap::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none;}
.er-error-wrap::before{width:340px;height:340px;background:rgba(79,110,247,.35);top:-80px;right:-60px;animation:er-float 7s ease-in-out infinite;}
.er-error-wrap::after{width:300px;height:300px;background:rgba(124,92,252,.3);bottom:-70px;left:-50px;animation:er-float 9s ease-in-out infinite reverse;}
.er-error-card{max-width:520px;width:100%;text-align:center;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:24px;padding:52px 36px;box-shadow:var(--er-shadow-lg);border:1px solid rgba(255,255,255,.7);position:relative;z-index:1;}
.er-error-code{font-size:88px;font-weight:800;line-height:1;background:var(--er-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px;animation:er-float 4s ease-in-out infinite;}
.er-error-title{font-size:20px;font-weight:700;color:var(--er-ink);margin:0 0 10px;}
.er-error-desc{color:var(--er-muted);font-size:14px;line-height:1.8;margin:0 0 26px;}
.er-error-card .btn-primary{background:var(--er-gradient)!important;border:none;border-radius:12px;padding:11px 34px;font-weight:600;box-shadow:0 10px 24px rgba(79,110,247,.35);}
.er-error-card .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(79,110,247,.45);}

/* =========================================================
   登录页
   ========================================================= */
body.authentication-bg{
  background:
    radial-gradient(900px 480px at 90% -10%,rgba(124,92,252,.35),transparent 60%),
    radial-gradient(800px 420px at -10% 110%,rgba(79,110,247,.3),transparent 60%),
    linear-gradient(135deg,#eef2ff 0%,#f5f3ff 60%,#fdf2f8 100%)!important;
}
.authentication-bg .account-pages{margin-top:6vh!important;}
.authentication-bg .card{border:none;border-radius:22px;box-shadow:var(--er-shadow-lg);overflow:hidden;background:rgba(255,255,255,.8);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.65)!important;}
.authentication-bg .card-header.bg-primary{background:var(--er-gradient)!important;border-bottom:none;padding:26px!important;}
.authentication-bg .card-header img{border-radius:10px;}
.authentication-bg .card-body{padding:34px 36px!important;}
.authentication-bg h4{color:var(--er-ink);font-weight:700;}
.authentication-bg .form-control{border-radius:11px;padding:11px 14px;border-color:#dbe2ee;}
.authentication-bg .btn-primary{
  background:var(--er-gradient)!important;border:none;border-radius:11px;padding:11px 20px;
  font-weight:600;box-shadow:0 10px 24px rgba(79,110,247,.35);
}
.authentication-bg .btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(79,110,247,.45);}
.authentication-bg .alert{border-radius:12px;}
.authentication-bg .footer{color:#94a3b8;}
/* 登录页移动端适配 */
@media (max-width:576px){
  .authentication-bg .account-pages{margin-top:2vh!important;margin-bottom:2vh!important;}
  .authentication-bg .card-body{padding:26px 22px!important;}
  .authentication-bg .card-header{padding:20px!important;}
  .authentication-bg h4{font-size:18px;}
  .authentication-bg .btn-primary{padding:12px 20px;}
}

/* =========================================================
   后台整体
   ========================================================= */
.navbar-custom.topnav-navbar{
  background:rgba(255,255,255,.92)!important;
  backdrop-filter:blur(10px);
  box-shadow:0 1px 14px rgba(15,23,42,.06)!important;
  border-bottom:1px solid var(--er-line);
}
.topnav-logo{display:flex;align-items:center;}
.topnav-logo img{border-radius:8px;}
.left-side-menu{background:#fff!important;border-right:1px solid var(--er-line)!important;}
.leftbar-user{background:var(--er-gradient)!important;border-radius:0 0 18px 18px;margin:0 14px 10px;padding:18px 14px!important;box-shadow:0 10px 24px rgba(79,110,247,.3);}
.leftbar-user img{border:2px solid rgba(255,255,255,.7);}
.leftbar-user-name{color:#fff!important;font-weight:600;}
.leftbar-user .text-muted{color:rgba(255,255,255,.8)!important;}
.side-nav-title{color:#94a3b8!important;letter-spacing:.5px;}
.side-nav-link{
  color:#475569!important;border-radius:10px;margin:2px 12px;
  transition:background .18s,color .18s,transform .18s;
}
.side-nav-link:hover{background:#f1f4fb!important;color:var(--er-primary)!important;}
.side-nav-item.mm-active > .side-nav-link,
.side-nav-link.active{
  background:var(--er-gradient)!important;color:#fff!important;
  box-shadow:0 8px 18px rgba(79,110,247,.35);
}
.side-nav-second-level .side-nav-link{margin-left:28px;font-size:13.5px;}
.side-nav-second-level li.active .side-nav-link{background:#eef2ff!important;color:var(--er-primary)!important;box-shadow:none;}
.metismenu .menu-arrow::before{color:#94a3b8;}

.content-page .content{padding:26px 24px 40px;}
.page-title-box h4{font-weight:700;color:var(--er-ink);font-size:19px;}
.page-title-box .breadcrumb{background:transparent;}
.breadcrumb-item a{color:var(--er-primary);}
.breadcrumb-item.active{color:var(--er-muted);}

/* ---------- 卡片 ---------- */
.card{border:1px solid var(--er-line)!important;border-radius:var(--er-radius)!important;box-shadow:var(--er-shadow-sm)!important;}
.card:hover{box-shadow:var(--er-shadow-sm);}
.card-header{border-bottom:1px solid var(--er-line);background:#fff;border-radius:var(--er-radius) var(--er-radius) 0 0!important;}
.card-body{padding:24px;}
.header-title{font-weight:700!important;color:var(--er-ink);}

.widget-flat{overflow:hidden;}
.widget-flat .widget-icon{
  background:var(--er-gradient);color:#fff;border-radius:12px!important;
  box-shadow:0 8px 18px rgba(79,110,247,.32);
}
.widget-flat h3{font-weight:800;color:var(--er-ink);}
.widget-flat h5{color:var(--er-muted)!important;}

/* ---------- 按钮 ---------- */
.btn{border-radius:10px;font-weight:500;transition:transform .16s,box-shadow .16s,background .16s;}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--er-gradient)!important;border:none!important;box-shadow:0 8px 18px rgba(79,110,247,.3);}
.btn-primary:hover{box-shadow:0 12px 24px rgba(79,110,247,.42);}
.btn-info{background:var(--er-info)!important;border:none!important;box-shadow:0 8px 18px rgba(6,182,212,.25);}
.btn-success{background:var(--er-success)!important;border:none!important;box-shadow:0 8px 18px rgba(16,185,129,.25);}
.btn-danger{background:var(--er-danger)!important;border:none!important;box-shadow:0 8px 18px rgba(239,68,68,.22);}
.btn-warning{background:var(--er-warning)!important;border:none!important;color:#fff!important;}
.btn-dark{background:#334155!important;border:none!important;}

/* ---------- 徽章 ---------- */
.badge{border-radius:7px;font-weight:600;padding:4px 9px;}
.badge-primary{background:var(--er-gradient)!important;}
.badge-success{background:var(--er-success)!important;}
.badge-danger{background:var(--er-danger)!important;}
.badge-warning{background:var(--er-warning)!important;}
.badge-light-lighten{background:#f1f5f9!important;color:#475569!important;}
.badge-primary-lighten{background:#eef2ff!important;color:var(--er-primary)!important;}
.badge-success-lighten{background:#ecfdf5!important;color:#059669!important;}
.badge-danger-lighten{background:#fef2f2!important;color:#dc2626!important;}
.badge-warning-lighten{background:#fffbeb!important;color:#d97706!important;}
.badge-info-lighten{background:#ecfeff!important;color:#0891b2!important;}

/* ---------- 表格 ---------- */
.table thead th{background:#f8fafc!important;color:#475569!important;font-weight:600;border-bottom:1px solid var(--er-line)!important;}
.table tbody tr{transition:background .15s;}
.table-hover tbody tr:hover{background:#f8faff!important;}
.table td,.table th{vertical-align:middle;}

/* ---------- 表单 ---------- */
.form-control{border-radius:10px;border-color:#dbe2ee;padding:9px 13px;}
.form-control:focus{border-color:var(--er-primary);box-shadow:0 0 0 .18rem rgba(79,110,247,.15);}
.custom-control-input:checked ~ .custom-control-label::before{background:var(--er-primary);border-color:var(--er-primary);}
.input-group-text{background:#f8fafc;border-color:#dbe2ee;}

/* ---------- 分页 ---------- */
.pagination .page-link{border-radius:9px!important;margin:0 3px;border:1px solid var(--er-line);color:#475569;min-width:36px;text-align:center;}
.pagination .page-link:hover{background:#eef2ff;color:var(--er-primary);}
.pagination .page-item.active .page-link{background:var(--er-gradient);border-color:transparent;box-shadow:0 6px 14px rgba(79,110,247,.32);}

/* ---------- 弹窗 ---------- */
.modal-content{border:none!important;border-radius:var(--er-radius-lg)!important;box-shadow:var(--er-shadow-lg);}
.modal-header{border-bottom:1px solid var(--er-line);border-radius:var(--er-radius-lg) var(--er-radius-lg) 0 0!important;}
.modal-header .modal-title{font-weight:700;color:var(--er-ink);}
.modal-footer{border-top:1px solid var(--er-line);border-radius:0 0 var(--er-radius-lg) var(--er-radius-lg)!important;}

/* ---------- 页脚 ---------- */
.footer{color:#94a3b8!important;font-size:13px;}
.footer a{color:var(--er-primary);text-decoration:none;}

/* ---------- 下拉菜单 ---------- */
.dropdown-menu{border:1px solid var(--er-line);border-radius:12px;box-shadow:var(--er-shadow);}
.dropdown-item{border-radius:8px;margin:2px 6px;width:auto;}
.dropdown-item:hover{background:#f1f4fb;color:var(--er-primary);}
.dropdown-item i{color:var(--er-primary);}

/* ---------- 链接/杂项 ---------- */
.text-title{color:var(--er-primary)!important;}
a{transition:color .15s;}
.maintenance-icon{box-shadow:0 10px 22px rgba(79,110,247,.25);}

/* ---------- DataTables 微调 ---------- */
.dataTables_wrapper .dataTables_filter input{border-radius:10px;border:1px solid #dbe2ee;padding:6px 12px;}
.dataTables_wrapper .dataTables_length select{border-radius:8px;border:1px solid #dbe2ee;padding:4px 8px;}
table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control::before{background:var(--er-primary)!important;}

/* ---------- 响应式 ---------- */
@media (max-width:767px){
  .er-hero{padding:64px 16px 72px;}
  .er-app-card{margin-bottom:18px;}
  .content-page .content{padding:18px 14px 30px;}
  .leftbar-user{margin:0 8px 8px;}
}

/* 订单/支付公开页微调 */
body{min-height:100vh;}
.order-page-wrap{background:#f6f8fc;}

/* ---------- 开发文档页 ---------- */
.card h2[id]{font-size:19px;font-weight:700;color:var(--er-ink);padding-bottom:10px;border-bottom:2px solid #eef2ff;margin-bottom:16px;}
.card h2[id]::before{content:"";display:inline-block;width:6px;height:18px;border-radius:4px;background:var(--er-gradient);margin-right:10px;vertical-align:-2px;}
.card h2[id] + p code,.card-body code{background:#eef2ff;color:var(--er-primary);padding:2px 7px;border-radius:6px;font-size:13px;}
.note-editor.note-frame.codeview{border:1px solid #e2e8f0!important;border-radius:12px!important;box-shadow:inset 0 2px 8px rgba(15,23,42,.04);overflow:hidden;}
.note-editor .note-codable{background:#0f172a!important;color:#c7d2fe!important;border:none!important;padding:16px 18px!important;font-size:13px!important;line-height:1.7!important;font-family:Consolas,"Courier New",monospace!important;white-space:pre-wrap;word-break:break-all;}
.doc-nav .btn-link{color:var(--er-primary);border-radius:8px;margin:2px;}
.doc-nav .btn-link:hover{background:#eef2ff;}
@media (max-width:576px){ .card h2[id]{font-size:16px;} }

/* ---------- 打印发票样式 ---------- */
@media print{
  .er-hero,.navbar-custom,.footer,.btn,.input-group-append,.er-footer{display:none!important;}
  body{background:#fff!important;}
  .card{box-shadow:none!important;border:1px solid #dde3ec!important;border-radius:6px!important;}
  .card-body{padding:18px!important;}
  .content-page .content{padding:0!important;}
  .table td,.table th{padding:8px 6px!important;font-size:12px;}
}
/* ---------- 移动端按钮点击区加大 ---------- */
@media (max-width:576px){
  .btn{padding:11px 18px!important;font-size:15px!important;}
  .input-group .btn{padding:12px 16px!important;}
  .table td,.table th{padding:10px 8px!important;}
  .account-pages .btn-block{padding:13px 20px!important;}
}

/* ---------- 顶栏：下拉不被遮挡 + 退出按钮 ---------- */
.navbar-custom{overflow:visible!important;}
.topbar-dropdown-menu{position:absolute!important;z-index:1200!important;}
.topbar-right-menu .nav-item .nav-link{border-radius:10px;transition:background .15s;}
.topbar-right-menu .nav-item .nav-link:hover{background:#f1f4fb;}
.topbar-right-menu .nav-item .nav-link:hover .mdi-logout{color:var(--er-danger)!important;}
