/* =============================================================================
   custom.css — 界面美化层（加载于所有样式之后，覆盖 bootstrap/turbo 默认外观）
   适用于 union 前台与 admin 后台（两套主题结构一致）
   ============================================================================= */

:root{
  --c-primary:#6366f1;
  --c-primary-dark:#4f46e5;
  --c-primary-light:#818cf8;
  --c-accent:#8b5cf6;
  --c-success:#10b981;
  --c-danger:#ef4444;
  --c-warning:#f59e0b;
  --c-info:#0ea5e9;
  --c-text:#1e293b;
  --c-text-muted:#64748b;
  --c-border:#e2e8f0;
  --c-bg:#f1f5f9;
  --c-card:#ffffff;
  --sidebar-grad:linear-gradient(160deg,#1e1b33 0%,#241f42 55%,#2b2260 100%);
  --card-shadow:0 1px 3px rgba(15,23,42,.06),0 8px 24px -12px rgba(15,23,42,.12);
  --card-shadow-hover:0 4px 12px rgba(15,23,42,.08),0 20px 44px -16px rgba(99,102,241,.22);
  --radius:14px;
}

html,body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--c-text);
  -webkit-font-smoothing:antialiased;
}

/* ------------------------------ 布局与侧栏 ------------------------------ */
.wrapper > .sidebar{
  background:var(--sidebar-grad) !important;
  box-shadow:4px 0 24px rgba(15,23,42,.18);
}
.sidebar .logo a.simple-text,
.sidebar .logo-mini a.simple-text{
  color:#fff !important;
  font-weight:700;
  letter-spacing:.5px;
}
.sidebar .logo{
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:18px 14px;
}
.sidebar .sidebar-wrapper ul.nav li a{
  color:rgba(255,255,255,.72) !important;
  margin:2px 10px;
  border-radius:10px;
  padding:10px 14px;
  transition:all .22s ease;
}
.sidebar .sidebar-wrapper ul.nav li a i{
  color:var(--c-primary-light) !important;
  transition:transform .22s ease;
}
.sidebar .sidebar-wrapper ul.nav li a:hover{
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  transform:translateX(2px);
}
.sidebar .sidebar-wrapper ul.nav li a:hover i{
  transform:scale(1.12);
}
.sidebar .sidebar-wrapper ul.nav li.active a,
.sidebar .sidebar-wrapper ul.nav li a[data-active="1"]{
  background:linear-gradient(90deg,rgba(99,102,241,.35),rgba(99,102,241,.12)) !important;
  color:#fff !important;
  box-shadow:inset 3px 0 0 var(--c-primary-light);
}

/* ------------------------------ 顶栏 ------------------------------ */
.main-panel .navbar{
  background:#fff;
  border-bottom:1px solid var(--c-border);
  box-shadow:0 1px 4px rgba(15,23,42,.05);
}
.main-panel .navbar .navbar-brand{
  color:var(--c-text) !important;
  font-weight:600;
}
.navbar .dropdown-menu{
  border:none;
  border-radius:12px;
  box-shadow:var(--card-shadow);
  padding:8px;
}
.navbar .dropdown-menu li a{
  border-radius:8px;
  padding:9px 14px !important;
  transition:background .15s;
}
.navbar .dropdown-menu li a:hover{
  background:#eef2ff !important;
  color:var(--c-primary-dark) !important;
}

/* ------------------------------ 卡片 ------------------------------ */
.card{
  background:var(--c-card);
  border:none;
  border-radius:var(--radius);
  box-shadow:var(--card-shadow);
  transition:box-shadow .25s ease,transform .25s ease;
  overflow:hidden;
}
.card:hover{
  box-shadow:var(--card-shadow-hover);
}
.card .card-header{
  background:transparent;
  border-bottom:1px solid var(--c-border);
  padding:18px 22px 12px;
}
.card .card-title{
  font-weight:700;
  color:var(--c-text);
  font-size:20px;
  margin:0;
}
.card .card-content{
  padding:20px 22px;
}
.card .card-footer{
  background:transparent;
  border-top:1px solid var(--c-border);
}

/* 统计数字页（index 仪表盘的 icon-card） */
.card .card-icon{
  border-radius:12px;
  box-shadow:0 6px 16px -6px rgba(99,102,241,.5);
}
.stats .card .card-icon i{
  font-size:34px;
}

/* ------------------------------ 按钮 ------------------------------ */
.btn{
  border-radius:9px;
  font-weight:600;
  letter-spacing:.3px;
  transition:all .2s ease;
  text-transform:none !important;
}
.btn:active,.btn:focus{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.25) !important;
}
.btn-wd,.btn-lg,.btn-fill{
  min-width:120px;
}
.btn-default,.btn-primary,.btn-info,.btn-wd,.navbar .btn{
  background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-accent) 100%) !important;
  border:none !important;
  color:#fff !important;
  box-shadow:0 4px 14px -4px rgba(99,102,241,.55);
}
.btn-default:hover,.btn-primary:hover,.btn-info:hover,.btn-wd:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px -6px rgba(99,102,241,.65) !important;
  filter:brightness(1.06);
}
.btn-success,.btn-simple.btn-success{
  background:var(--c-success) !important;
  border-color:var(--c-success) !important;
}
.btn-danger,.btn-simple.btn-danger{
  background:var(--c-danger) !important;
  border-color:var(--c-danger) !important;
}
.btn-simple{
  background:transparent !important;
  box-shadow:none !important;
}
.btn-simple.btn-success{ color:var(--c-success) !important; background:transparent !important; }
.btn-simple.btn-danger{ color:var(--c-danger) !important; background:transparent !important; }
.btn-simple:hover{ transform:scale(1.06); }

/* ------------------------------ 表单 ------------------------------ */
.form-control{
  border-radius:9px;
  border-color:var(--c-border);
  box-shadow:none;
  transition:border-color .2s,box-shadow .2s;
  color:var(--c-text);
}
.form-control:focus{
  border-color:var(--c-primary-light);
  box-shadow:0 0 0 3px rgba(99,102,241,.15) !important;
}
.label-floating .control-label{
  color:var(--c-text-muted);
}
.form-group.label-floating .form-control:focus ~ label,
.form-group.label-floating.is-focused .control-label,
.form-group.label-floating label.control-label{
  color:var(--c-primary) !important;
}
.input-group-addon{
  background:transparent;
  border:none;
  color:var(--c-text-muted);
}
textarea.form-control{
  border:1px solid var(--c-border);
}

/* ------------------------------ 表格 ------------------------------ */
.table{
  border-collapse:separate;
  border-spacing:0;
}
.table > thead > tr > th{
  color:var(--c-text-muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.6px;
  border-bottom:1px solid var(--c-border) !important;
  padding:12px 14px;
  background:#f8fafc;
}
.table > thead:first-child > tr:first-child > th{
  border-top:none;
}
.table > tbody > tr > td{
  border-top:1px solid #eef2f7 !important;
  padding:13px 14px;
  vertical-align:middle;
}
.table-striped > tbody > tr:nth-of-type(odd){
  background:#fafbff;
}
.table > tbody > tr:hover > td{
  background:#eef2ff !important;
}
.table .btn-simple{
  padding:4px;
}

/* ------------------------------ 分页 ------------------------------ */
.pagination > li > a{
  border-radius:9px !important;
  margin:0 3px;
  border:none;
  color:var(--c-primary-dark);
  font-weight:600;
  min-width:36px;
  text-align:center;
  transition:all .18s;
}
.pagination > li > a:hover{
  background:#eef2ff;
}
.pagination > li.active > a{
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent)) !important;
  color:#fff !important;
  box-shadow:0 4px 12px -4px rgba(99,102,241,.55);
}

/* ------------------------------ 提示页（message） ------------------------------ */
.error_page_header{
  background:linear-gradient(135deg,#312e81,#6d28d9) !important;
  padding:70px 0 30px !important;
  text-align:center;
}
.error_page_container .card{
  max-width:560px;
  margin:32px auto;
  padding-bottom:10px;
}

/* ------------------------------ 登录/注册整页 ------------------------------ */
.wrapper-full-page .full-page{
  background:linear-gradient(135deg,#1e1b33 0%,#312e81 45%,#6d28d9 100%) !important;
}
.wrapper-full-page .full-page:after{
  background:radial-gradient(1200px 600px at 80% -10%,rgba(139,92,246,.35),transparent 60%),
             radial-gradient(900px 500px at -10% 110%,rgba(14,165,233,.25),transparent 55%) !important;
}
.full-page .card-login{
  border-radius:18px;
  padding:10px 6px 6px;
  backdrop-filter:blur(6px);
}
.full-page .card-login .card-header .card-title{
  font-size:24px;
  background:linear-gradient(135deg,var(--c-primary-dark),var(--c-accent));
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  padding-bottom:6px;
}
.full-page .footer .copyright,
.full-page .footer a{
  color:rgba(255,255,255,.75) !important;
}
.full-page .content .card a{
  color:var(--c-primary-dark);
  font-weight:600;
}
.full-page .content .card a:hover{
  color:var(--c-accent);
}
.full-page .navbar-brand,.full-page .navbar .navbar-nav > li > a{
  color:#fff !important;
}

/* ------------------------------ 其他组件 ------------------------------ */
.alert{
  border:none;
  border-radius:12px;
  box-shadow:var(--card-shadow);
}
.label{
  border-radius:6px;
  padding:.35em .7em;
}
.badge{
  border-radius:8px;
}
.modal-content{
  border:none;
  border-radius:16px;
  box-shadow:0 24px 64px -16px rgba(15,23,42,.35);
}
.nav-tabs > li > a{
  border-radius:10px 10px 0 0;
  color:var(--c-text-muted);
}
.nav-tabs > li.active > a{
  color:var(--c-primary-dark) !important;
  border-top:2px solid var(--c-primary) !important;
}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#c7d0dd;border-radius:8px;border:2px solid #f1f5f9}
::-webkit-scrollbar-thumb:hover{background:#a7b3c4}
::-webkit-scrollbar-track{background:transparent}

a{transition:color .15s ease;}
main-panel .footer,.footer .copyright{
  color:var(--c-text-muted);
}

/* 响应式微调 */
@media (max-width:991px){
  .sidebar{
    box-shadow:none;
  }
  .card .card-content{
    padding:16px;
  }
}
