/* ============================================================
   theme-modern.css  —  云解析前台 青色现代主题
   设计原则：纯色 + 圆角 + 柔和阴影 + flex，避免渐变/网格，
   兼容较老的移动端内核。
   主色：青绿 #1abc9c / 深青 #0f9b8a / 浅青底 #eafaf5
   ============================================================ */
:root{
  --teal:#1abc9c;
  --teal-d:#0f9b8a;
  --teal-dd:#0c8174;
  --teal-bg:#eafaf5;
  --teal-soft:#f3fbf9;
  --ink:#2b3a4a;
  --muted:#8a97a6;
  --line:#eef1f4;
  --bg:#f3f6f9;
}

*{ -webkit-tap-highlight-color:transparent; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;
  line-height:1.6;
}
a{ color:var(--teal-d); }
a:hover{ color:var(--teal-dd); text-decoration:none; }

/* ---------------- 顶部导航（home 布局） ---------------- */
.bd-navbar{
  background:var(--teal);
  box-shadow:0 2px 12px rgba(15,155,138,.25);
  padding:.55rem 1rem;
  position:sticky; top:0; z-index:1030;
}
.bd-navbar .nav-logo-name{
  color:#fff; font-size:18px; font-weight:700; letter-spacing:.5px;
  display:inline-flex; align-items:center;
}
.bd-navbar .nav-logo-name i{ margin-right:8px; font-size:20px; }
.bd-navbar .nav-link{ color:rgba(255,255,255,.88); }
.bd-navbar .nav-link:hover{ color:#fff; }
.bd-navbar .nav-link.nav-menu i{ color:#fff; }
.bd-navbar .dropdown-menu{
  border:none; border-radius:12px; box-shadow:0 8px 30px rgba(20,40,80,.18);
  padding:.5rem .4rem; margin-top:10px; min-width:200px;
}
.bd-navbar .dropdown-item{ border-radius:8px; padding:.45rem .8rem; }
.bd-navbar .dropdown-item:hover{ background:var(--teal-soft); color:var(--teal-d); }
.bd-navbar .btn-info{ background:rgba(255,255,255,.18); border-color:transparent; }
.bd-navbar .btn-info:hover{ background:rgba(255,255,255,.30); }

/* 头像圆形 */
.yuanxing{ width:56px; height:56px; border-radius:50%; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.15); }

/* ---------------- 侧边栏菜单 ---------------- */
.bd-sidebar{
  background:#fff; border-radius:14px; box-shadow:0 4px 18px rgba(20,40,80,.05);
  padding:10px; margin-top:18px;
}
.bd-sidebar .menu-item{
  background:#fff !important; border-radius:10px !important;
  margin-bottom:8px; transition:all .18s ease; border:1px solid transparent;
}
.bd-sidebar .menu-item:last-child{ margin-bottom:0; }
.bd-sidebar .menu-item:hover{ background:var(--teal-soft) !important; border-color:var(--teal-bg); }
.bd-sidebar .menu-link{
  display:flex; align-items:center; padding:12px 16px;
  color:var(--ink); font-size:15px; font-weight:500;
}
.bd-sidebar .menu-link i{ width:22px; text-align:center; margin-right:10px; color:var(--teal); font-size:16px; }
.bd-sidebar .menu-item.active{ background:var(--teal) !important; border-color:var(--teal); box-shadow:0 6px 14px rgba(26,188,156,.30); }
.bd-sidebar .menu-item.active .menu-link{ color:#fff; }
.bd-sidebar .menu-item.active .menu-link i{ color:#fff; }

.bd-content{ padding-top:18px; padding-bottom:30px; }

/* ---------------- 卡片 ---------------- */
.card{
  border:none; border-radius:14px; box-shadow:0 4px 18px rgba(20,40,80,.06);
  overflow:hidden;
}
.card-header{
  background:var(--teal-bg); color:var(--teal-d); border:none;
  font-weight:600; font-size:15px; padding:.85rem 1.1rem;
}
.card-header.bg-info, .card-header.text-white{ background:var(--teal) !important; color:#fff !important; text-align:center; font-weight:600; }
.card-footer{ background:#fff; border-top:1px solid var(--line); }

/* ---------------- 表格 ---------------- */
.table{ margin-bottom:0; color:var(--ink); }
.table thead th{
  background:var(--teal-soft); color:var(--teal-d); border:none;
  font-weight:600; font-size:13px; padding:.7rem .8rem; white-space:nowrap;
}
.table td{ border-color:var(--line); padding:.7rem .8rem; vertical-align:middle; }
.table-bordered{ border:none; }
.table-bordered td, .table-bordered th{ border:1px solid var(--line); }
.table tbody tr{ transition:background .15s; }
.table tbody tr:hover{ background:var(--teal-soft); }

/* ---------------- 按钮 ---------------- */
.btn{ border-radius:8px; font-weight:500; transition:all .18s; }
.btn-info{ background:var(--teal); border-color:var(--teal); color:#fff !important; }
.btn-info:hover, .btn-info:focus{ background:var(--teal-d); border-color:var(--teal-d); color:#fff; }
.btn-info:active{ background:var(--teal-dd); }
.btn-primary{ background:var(--teal); border-color:var(--teal); }
.btn-primary:hover{ background:var(--teal-d); border-color:var(--teal-d); }
.btn-secondary{ background:#9aa7b5; border-color:#9aa7b5; }
.btn-secondary:hover{ background:#8593a3; border-color:#8593a3; }
.btn-sm{ border-radius:7px; }

/* ---------------- 表单控件 ---------------- */
.form-control{ border-radius:8px; border-color:#dfe5ec; padding:.5rem .8rem; }
.form-control:focus{ border-color:var(--teal); box-shadow:0 0 0 .15rem rgba(26,188,156,.18); }
.form-control:disabled, .form-control[disabled]{ background:#f6f8fa; color:#95a1ae; }

/* ---------------- 提示框 ---------------- */
.alert-primary{ background:var(--teal-bg); border:none; color:var(--teal-d); border-radius:10px; }

/* ---------------- 分页 ---------------- */
.pagination{ justify-content:center; }
.page-item.active .page-link{ background:var(--teal); border-color:var(--teal); }
.page-link{ color:var(--teal-d); border-radius:6px; margin:0 3px; border-color:var(--line); }
.page-link:hover{ color:var(--teal-dd); background:var(--teal-soft); }

/* ============================================================
   登录 / 注册 / 找回密码 / 重设密码 页
   ============================================================ */
.bd-masthead{ padding:30px 0 50px; }
.bd-navbar-index, .bd-navbar.bd-navbar-index{ background:var(--teal) !important; color:#fff; }
.bd-navbar-index .navbar-brand img{ border-radius:8px; }
.bd-navbar-index .nav-link{ color:rgba(255,255,255,.9); }
.bd-navbar-index .nav-link:hover{ color:#fff; }

.auth-brand{ text-align:center; margin:6px 0 14px; }
.auth-brand .ab-logo{
  width:42px; height:42px; line-height:42px; border-radius:11px;
  background:var(--teal); color:#fff; font-size:20px; display:inline-block;
  box-shadow:0 2px 8px rgba(26,188,156,.15);
}
.auth-brand .ab-name{ font-size:19px; font-weight:600; color:var(--ink); margin-top:9px; }
.auth-brand .ab-sub{ font-size:13px; color:var(--muted); margin-top:2px; }

/* 认证卡片顶部青色条 */
#content .card{ position:relative; }
#content .card .card-header{ background:var(--teal) !important; color:#fff !important; font-size:16px; }

/* ============================================================
   首页数据概览条（dashboard header）
   ============================================================ */
.dash-header{
  background:linear-gradient(135deg,#1abc9c,#0f9b8a); /* 现代浏览器生效，旧内核回退到下方背景色 */
  background-color:var(--teal);
  border-radius:16px; color:#fff; padding:20px 22px; margin-bottom:20px;
  box-shadow:0 10px 30px rgba(26,188,156,.30);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
}
.dash-greet{ display:flex; align-items:center; }
.dash-avatar{ width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; font-size:26px; margin-right:14px; }
.dash-hi{ font-size:18px; font-weight:700; }
.dash-sub{ font-size:13px; opacity:.85; margin-top:2px; }
.dash-stats{ display:flex; flex-wrap:wrap; gap:26px; margin-top:6px; }
.dash-stat{ text-align:center; min-width:64px; }
.ds-num{ font-size:20px; font-weight:700; }
.ds-lab{ font-size:12px; opacity:.85; margin-top:2px; }

@media (max-width:575px){
  .dash-header{ flex-direction:column; align-items:flex-start; }
  .dash-stats{ margin-top:14px; gap:18px; width:100%; justify-content:space-between; }
}

/* ============================================================
   v2 修正与优化
   ============================================================ */
/* 1) 名片内按钮可见（修复白底白字隐身问题） */
.bd-navbar .dropdown-menu .btn-info{
  background:var(--teal); border-color:var(--teal); color:#fff !important;
  box-shadow:0 3px 8px rgba(26,188,156,.25);
}
.bd-navbar .dropdown-menu .btn-info:hover{ background:var(--teal-d); border-color:var(--teal-d); }

/* 2) 移动端：导航已改为 sticky，去掉旧版 fixed 时代的 4rem 顶部补偿空隙 */
@media (max-width:576px){
  .bd-content{ margin-top:0 !important; }
}

/* 3) 导航条精修 */
.bd-navbar{ padding:.6rem .9rem; }
.bd-navbar .dropdown-toggle{ display:flex; align-items:center; }
.bd-navbar .dropdown-toggle::after{ margin-left:7px; vertical-align:middle; }
.nav-avatar{
  width:30px; height:30px; border-radius:50%; margin-right:8px;
  border:2px solid rgba(255,255,255,.55); object-fit:cover; background:#fff;
}

/* 4) 用户名片（下拉卡片）重设计 */
.bd-navbar .dropdown-menu{ min-width:230px; padding:10px 12px 12px; }
.ud-card{ text-align:center; }
.ud-avatar{
  width:64px; height:64px; border-radius:50%; display:block;
  border:3px solid var(--teal-bg); box-shadow:0 4px 14px rgba(26,188,156,.28);
  margin:4px auto 8px; object-fit:cover; background:#fff;
}
.ud-name{ font-size:16px; font-weight:700; color:var(--ink); }
.ud-meta{
  display:flex; justify-content:center; gap:18px;
  font-size:13px; color:var(--muted); margin:5px 0 12px;
}
.ud-meta b{ color:var(--teal-d); font-weight:700; }
.ud-btn{
  display:block; width:100%; padding:.5rem 0; margin-bottom:8px;
  font-size:14px; border-radius:9px;
}
.ud-btn i{ margin-right:6px; }
.ud-btn:last-child{ margin-bottom:0; }
.bd-navbar .dropdown-menu .ud-logout{
  background:#fff; border:1px solid #f5b7b1; color:#e74c3c !important; box-shadow:none;
}
.bd-navbar .dropdown-menu .ud-logout:hover{ background:#fdf0ef; border-color:#e74c3c; }
/* 老内核 gap 兜底 */
.ud-meta span{ margin:0 9px; }

/* ============================================================
   v3 — 全新文件名强制刷新缓存 + 圆润导航 + 头像/适配修正
   ============================================================ */
/* 1) 顶部导航：圆润悬浮胶囊，不再是一整块长方形 */
.bd-navbar{
  border-radius:20px !important;
  margin:10px 10px 6px !important;
  top:8px !important;
  flex-wrap:nowrap !important;
  padding:.55rem .8rem !important;
}
/* 2) 站名不再换行：超出省略号，导航永远单行 */
.bd-navbar .navbar-nav-scroll{ min-width:0; flex:1 1 auto; }
.bd-navbar .bd-navbar-nav{ flex-wrap:nowrap; }
.bd-navbar .bd-navbar-nav .nav-item{ min-width:0; }
.bd-navbar .nav-logo-name{
  display:block !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  font-size:16px !important; line-height:30px;
}
/* 3) 用户名 + 头像：严格一行，头像固定 30px 圆形 */
.bd-navbar .dropdown-toggle{
  white-space:nowrap; max-width:44vw; overflow:hidden; text-overflow:ellipsis;
  display:flex !important; align-items:center; flex-shrink:0;
}
.bd-navbar .nav-avatar{
  width:30px !important; height:30px !important; border-radius:50% !important;
  object-fit:cover !important; flex-shrink:0; display:inline-block;
  border:2px solid rgba(255,255,255,.6) !important; background:#fff;
}
/* 4) 名片头像：固定 64px 圆形（任何旧样式都覆盖掉） */
.bd-navbar .dropdown-menu .ud-avatar{
  width:64px !important; height:64px !important; border-radius:50% !important;
  object-fit:cover !important; display:block !important; margin:4px auto 8px !important;
}
/* 5) 名片按钮：强制青色实底白字（旧缓存里白底白字的问题彻底作废） */
.bd-navbar .dropdown-menu .btn-info{
  background:var(--teal) !important; border-color:var(--teal) !important; color:#fff !important;
  box-shadow:0 3px 8px rgba(26,188,156,.25);
}
.bd-navbar .dropdown-menu .btn-info:hover{ background:var(--teal-d) !important; border-color:var(--teal-d) !important; }
.bd-navbar .dropdown-menu .ud-logout{
  background:#fff !important; border:1px solid #f5b7b1 !important; color:#e74c3c !important; box-shadow:none !important;
}
.bd-navbar .dropdown-menu .ud-logout:hover{ background:#fdf0ef !important; border-color:#e74c3c !important; }
/* 6) 下拉面板压住樱花等浮层 */
.bd-navbar .dropdown-menu{ z-index:1060; }
/* 7) 导航圆角后，内容区与侧边栏留出呼吸空隙 */
.bd-content{ margin-top:8px; }

/* ============================================================
   v4 — 全局响应式适配（手机 / 平板 / 桌面）
   ============================================================ */

/* 1) 侧边栏高度跟随内容，修掉整屏空白白条 */
.bd-sidebar{ height:auto !important; min-height:0 !important; }
@media (min-width:576px){
  .bd-sidebar{
    position:-webkit-sticky; position:sticky;
    top:74px; height:auto !important;
  }
}

/* 2) 手机端抽屉菜单：贴边滑出 + 遮罩，内容不再被推挤 */
@media (max-width:575.98px){
  .bd-navbar{ margin:8px 8px 4px !important; }
  .bd-sidebar{
    top:64px; left:0; width:78vw; max-width:300px; margin-top:0;
    border-radius:0 16px 16px 0;
    box-shadow:8px 0 30px rgba(20,40,80,.18);
    -webkit-transform:translateX(-110%);
    -ms-transform:translateX(-110%);
    transform:translateX(-110%);
    -webkit-transition:-webkit-transform .3s ease;
    transition:transform .3s ease;
  }
  .bd-sidebar.openMenu{
    -webkit-transform:translateX(0);
    -ms-transform:translateX(0);
    transform:translateX(0);
  }
  .bd-content{ padding-left:12px; padding-right:12px; }
  .container-fluid{ padding-left:10px; padding-right:10px; }
}
.menu-mask{
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:rgba(15,30,45,.45); z-index:998;
  opacity:0; visibility:hidden;
  -webkit-transition:all .25s ease; transition:all .25s ease;
}
.menu-mask.show{ opacity:1; visibility:visible; }

/* 3) 筛选/搜索表单：小屏两列换行，不再挤压溢出 */
@media (max-width:767.98px){
  .form-inline{ display:-webkit-box; display:flex; -webkit-flex-wrap:wrap; flex-wrap:wrap; -webkit-box-align:center; align-items:center; }
  .form-inline > .form-group{
    -webkit-box-flex:0; -webkit-flex:0 0 48.5%; flex:0 0 48.5%;
    max-width:48.5%; margin:0 0 8px;
  }
  .form-inline > .form-group:nth-child(2n){ margin-left:3%; }
  .form-inline .form-control{ width:100%; }
  .form-inline > .btn, .form-inline > a.btn{ margin-left:0 !important; }
}

/* 4) 表格：小屏收紧密度，长记录值自动断行 */
@media (max-width:767.98px){
  .table thead th, .table td{ padding:.55rem .55rem; font-size:13px; }
  .table td{ word-break:break-all; }
  .btn-sm{ padding:.25rem .5rem; font-size:12px; }
}

/* 5) 概览条小屏更紧凑 */
@media (max-width:400px){
  .dash-header{ padding:16px; }
  .dash-stats{ margin-top:10px; }
  .ds-num{ font-size:17px; }
  .dash-avatar{ width:44px; height:44px; font-size:22px; margin-right:10px; }
  .dash-hi{ font-size:16px; }
}

/* 登录/找回密码页：隐藏顶部云朵 logo 图标（保留站名文字） */
.auth-brand .ab-logo{ display:none !important; }
