/* ================================================================
   Tobey 外贸运营工作台 - 全局样式
   主题：简洁商务浅黄色清爽浅色卡片设计
   ================================================================ */

/* ---------- Reset & Base ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg-main:#FFFEF7;
  --bg-card-1:#FFFBF0;
  --bg-card-2:#FFF8E1;
  --bg-card-hover:#FFF3CC;
  --primary:#D97706;
  --primary-light:#F59E0B;
  --primary-dark:#B45309;
  --accent-blue:#2563EB;
  --accent-blue-light:#DBEAFE;
  --accent-green:#059669;
  --accent-red:#DC2626;
  --accent-orange:#EA580C;
  --text-dark:#374151;
  --text-medium:#6B7280;
  --text-light:#9CA3AF;
  --border-color:#FDE68A;
  --border-light:#FEF3C7;
  --shadow-sm:0 1px 3px rgba(217,119,6,0.08);
  --shadow-md:0 4px 12px rgba(217,119,6,0.10);
  --shadow-lg:0 8px 24px rgba(217,119,6,0.12);
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --sidebar-width:270px;
  --topbar-height:64px;
  --transition:0.25s ease;
}

body{
  font-family:'Segoe UI','Microsoft YaHei','PingFang SC',sans-serif;
  background:var(--bg-main);
  color:var(--text-dark);
  font-size:14px;
  overflow:hidden;
  height:100vh;
}

/* 滚动条 */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--border-light);border-radius:3px;}
::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--primary);}

/* ---------- 顶部工具栏 ---------- */
#topbar{
  height:var(--topbar-height);
  background:linear-gradient(135deg,#FFFBF0 0%,#FEF3C7 100%);
  border-bottom:2px solid var(--border-color);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 20px;
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  box-shadow:var(--shadow-sm);
}
.topbar-left{display:flex;align-items:center;gap:16px;}
.logo{display:flex;align-items:center;gap:8px;}
.logo-icon{font-size:26px;}
.logo-text{font-size:20px;font-weight:700;color:var(--primary-dark);letter-spacing:0.5px;}
.logo-divider{color:var(--primary-light);margin:0 2px;}
.topbar-subtitle{font-size:12px;color:var(--text-medium);background:var(--accent-blue-light);padding:3px 10px;border-radius:20px;white-space:nowrap;}

.topbar-right{display:flex;align-items:center;gap:10px;}

.tool-card{
  background:#fff;
  border:1px solid var(--border-color);
  border-radius:var(--radius-sm);
  padding:6px 14px;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:var(--shadow-sm);
  cursor:default;
  transition:var(--transition);
}
.tool-card:hover{box-shadow:var(--shadow-md);}
.tool-label{font-size:11px;color:var(--text-medium);font-weight:500;}
.tool-value{font-size:16px;font-weight:700;color:var(--accent-blue);}
.tool-trend{font-size:11px;color:var(--accent-green);font-weight:600;}

.exchange-card{min-width:120px;}

.clock-card{display:flex;gap:14px;}
.timezone-item{display:flex;flex-direction:column;align-items:center;gap:1px;}
.tz-label{font-size:10px;color:var(--text-medium);}
.tz-time{font-size:14px;font-weight:700;color:var(--text-dark);font-variant-numeric:tabular-nums;}

.todo-card{cursor:pointer;position:relative;}
.todo-icon{font-size:18px;}
.todo-badge{
  position:absolute;
  top:-6px;right:-6px;
  background:var(--accent-red);
  color:#fff;
  font-size:10px;
  font-weight:700;
  width:18px;height:18px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}

.search-card{padding:4px 8px;}
.global-search-input{
  border:none;outline:none;
  background:transparent;
  font-size:13px;
  width:200px;
  color:var(--text-dark);
}
.global-search-input::placeholder{color:var(--text-light);}

/* 待办弹窗 */
.todo-popup{
  position:fixed;
  top:calc(var(--topbar-height) + 8px);
  right:20px;
  width:380px;
  max-height:500px;
  background:#fff;
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  z-index:1001;
  overflow:hidden;
  flex-direction:column;
}
.todo-popup-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 16px;
  background:var(--bg-card-2);
  border-bottom:1px solid var(--border-color);
}
.todo-popup-header h3{font-size:15px;color:var(--primary-dark);}
.todo-close{cursor:pointer;color:var(--text-light);font-size:16px;}
.todo-close:hover{color:var(--accent-red);}
.todo-popup-body{overflow-y:auto;max-height:440px;padding:8px;}
.todo-item{
  padding:10px 12px;
  border-bottom:1px solid var(--border-light);
  display:flex;gap:10px;align-items:flex-start;
  transition:var(--transition);
}
.todo-item:hover{background:var(--bg-card-1);}
.todo-item.overdue{border-left:3px solid var(--accent-red);}
.todo-item .todo-type{font-size:18px;}
.todo-item .todo-info{flex:1;}
.todo-item .todo-title{font-size:13px;font-weight:600;color:var(--text-dark);}
.todo-item .todo-meta{font-size:11px;color:var(--text-medium);margin-top:2px;}
.todo-item .todo-due{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;}
.todo-due.overdue{background:#FEE2E2;color:var(--accent-red);}
.todo-due.today{background:#FEF3C7;color:var(--primary-dark);}
.todo-due.soon{background:#DBEAFE;color:var(--accent-blue);}

/* ---------- 主体布局 ---------- */
.main-wrapper{
  display:flex;
  margin-top:var(--topbar-height);
  height:calc(100vh - var(--topbar-height));
}

/* ---------- 左侧导航栏 ---------- */
#sidebar{
  width:var(--sidebar-width);
  min-width:var(--sidebar-width);
  background:linear-gradient(180deg,#FFFBF0 0%,#FEF9E7 100%);
  border-right:2px solid var(--border-color);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#navTree{
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  padding:8px 0;
}

/* 一级导航 */
.nav-group{margin-bottom:2px;}
.nav-group-header{
  display:flex;align-items:center;gap:8px;
  padding:10px 16px;
  cursor:pointer;
  font-size:14px;
  font-weight:600;
  color:var(--text-dark);
  transition:var(--transition);
  user-select:none;
  white-space:nowrap;
}
.nav-group-header:hover{background:var(--bg-card-hover);}
.nav-group-header.active{color:var(--primary-dark);}
.nav-group-icon{font-size:16px;width:20px;text-align:center;}
.nav-group-arrow{
  margin-left:auto;
  font-size:10px;
  color:var(--text-light);
  transition:transform 0.2s;
}
.nav-group.expanded .nav-group-arrow{transform:rotate(90deg);}

/* 二级导航 */
.nav-children{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.3s ease;
}
.nav-group.expanded .nav-children{max-height:600px;}

.nav-child{
  display:flex;align-items:center;gap:8px;
  padding:8px 16px 8px 44px;
  cursor:pointer;
  font-size:13px;
  color:var(--text-medium);
  transition:var(--transition);
  white-space:nowrap;
}
.nav-child:hover{background:var(--bg-card-hover);color:var(--primary-dark);}
.nav-child.active{
  background:linear-gradient(90deg,var(--accent-blue-light),transparent);
  color:var(--accent-blue);
  font-weight:600;
  border-left:3px solid var(--accent-blue);
  padding-left:41px;
}
.nav-child-icon{font-size:12px;opacity:0.7;}

/* 侧边栏底部拓展预留 */
.sidebar-footer{
  padding:12px 16px;
  border-top:1px dashed var(--border-color);
}
.btn-clear-all{
  width:100%;
  padding:8px 12px;
  margin-bottom:10px;
  border:1.5px solid #FCA5A5;
  border-radius:var(--radius-sm);
  background:#FEF2F2;
  color:#DC2626;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s;
}
.btn-clear-all:hover{
  background:#FEE2E2;
  border-color:#EF4444;
}
.ext-placeholder{
  text-align:center;
  padding:12px;
  border:2px dashed var(--border-color);
  border-radius:var(--radius-sm);
  background:rgba(254,243,199,0.3);
}
.ext-placeholder span{display:block;font-size:12px;font-weight:600;color:var(--primary);}
.ext-placeholder small{font-size:10px;color:var(--text-light);}

/* ---------- 右侧主内容区 ---------- */
#contentArea{
  flex:1;
  overflow-y:auto;
  padding:20px 24px;
  background:var(--bg-main);
}

/* 页面标题 */
.page-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
  flex-wrap:wrap;
  gap:12px;
}
.page-title{
  font-size:22px;
  font-weight:700;
  color:var(--text-dark);
  display:flex;
  align-items:center;
  gap:8px;
}
.page-title-icon{font-size:24px;}
.page-subtitle{font-size:12px;color:var(--text-medium);margin-top:2px;}
.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* ---------- 卡片 ---------- */
.card{
  background:linear-gradient(135deg,var(--bg-card-1),var(--bg-card-2));
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:16px;
  box-shadow:var(--shadow-sm);
  transition:var(--transition);
}
.card:hover{box-shadow:var(--shadow-md);}
.card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
}
.card-title{font-size:15px;font-weight:700;color:var(--text-dark);display:flex;align-items:center;gap:6px;}
.card-subtitle{font-size:11px;color:var(--text-light);}

/* KPI卡片网格 */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin-bottom:20px;
}
.kpi-card{
  background:linear-gradient(135deg,#FFFBF0,#FFF3CC);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:18px 16px;
  position:relative;
  overflow:hidden;
  transition:var(--transition);
  cursor:pointer;
}
.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.kpi-card::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:4px;height:100%;
}
.kpi-card.blue::before{background:var(--accent-blue);}
.kpi-card.green::before{background:var(--accent-green);}
.kpi-card.orange::before{background:var(--accent-orange);}
.kpi-card.red::before{background:var(--accent-red);}
.kpi-card.purple::before{background:#7C3AED;}
.kpi-icon{font-size:28px;margin-bottom:8px;}
.kpi-label{font-size:12px;color:var(--text-medium);margin-bottom:4px;}
.kpi-value{font-size:26px;font-weight:800;color:var(--text-dark);font-variant-numeric:tabular-nums;}
.kpi-value .unit{font-size:13px;font-weight:500;color:var(--text-medium);margin-left:4px;}
.kpi-trend{font-size:11px;margin-top:6px;display:flex;align-items:center;gap:4px;}
.kpi-trend.up{color:var(--accent-green);}
.kpi-trend.down{color:var(--accent-red);}
.kpi-trend.neutral{color:var(--text-light);}

/* ---------- 网格布局 ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;}
@media(max-width:1200px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
}

/* ---------- 图表容器 ---------- */
.chart-container{
  position:relative;
  height:280px;
  width:100%;
}
.chart-container.tall{height:360px;}
.chart-container.small{height:200px;}

/* ---------- 数据表格 ---------- */
.table-wrapper{
  background:#fff;
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  margin-bottom:16px;
}
.table-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 14px;
  background:var(--bg-card-1);
  border-bottom:1px solid var(--border-color);
  flex-wrap:wrap;
  gap:8px;
}
.table-toolbar-left{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.table-toolbar-right{display:flex;gap:8px;align-items:center;}
.table-info{font-size:12px;color:var(--text-medium);}
.table-info b{color:var(--primary-dark);}

table.data-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
table.data-table thead{
  background:linear-gradient(135deg,var(--bg-card-1),var(--bg-card-2));
}
table.data-table th{
  padding:10px 12px;
  text-align:left;
  font-weight:600;
  color:var(--text-dark);
  border-bottom:2px solid var(--border-color);
  white-space:nowrap;
  position:sticky;
  top:0;
  z-index:1;
}
table.data-table td{
  padding:8px 12px;
  border-bottom:1px solid var(--border-light);
  color:var(--text-dark);
  white-space:nowrap;
}
table.data-table tbody tr:hover{background:var(--bg-card-1);}
table.data-table tbody tr:last-child td{border-bottom:none;}

/* 表格内滚动 */
.table-scroll{max-height:480px;overflow:auto;}

/* ---------- 标签/徽章 ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:2px 8px;
  border-radius:20px;
  font-size:11px;
  font-weight:600;
  white-space:nowrap;
}
.tag-aa{background:#D1FAE5;color:#065F46;border:1px solid #6EE7B7;}
.tag-a{background:#DBEAFE;color:#1E40AF;border:1px solid #93C5FD;}
.tag-b{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D;}
.tag-c{background:#E0E7FF;color:#3730A3;border:1px solid #A5B4FC;}
.tag-d{background:#FED7AA;color:#9A3412;border:1px solid #FDBA74;}
.tag-e{background:#FEE2E2;color:#991B1B;border:1px solid #FCA5A5;}

.tag-status-deal{background:#D1FAE5;color:#065F46;}
.tag-status-sample{background:#DBEAFE;color:#1E40AF;}
.tag-status-follow{background:#FEF3C7;color:#92400E;}
.tag-status-wait{background:#E0E7FF;color:#3730A3;}
.tag-status-pause{background:#FED7AA;color:#9A3412;}
.tag-status-invalid{background:#FEE2E2;color:#991B1B;}

.tag-region-me{background:#FEF3C7;color:#92400E;}
.tag-region-sa{background:#D1FAE5;color:#065F46;}
.tag-region-af{background:#DBEAFE;color:#1E40AF;}

/* ---------- 按钮 ---------- */
.btn{
  padding:7px 16px;
  border:none;
  border-radius:var(--radius-sm);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:var(--transition);
  display:inline-flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-blue{background:var(--accent-blue);color:#fff;}
.btn-blue:hover{background:#1D4ED8;}
.btn-green{background:var(--accent-green);color:#fff;}
.btn-green:hover{background:#047857;}
.btn-outline{background:transparent;border:1px solid var(--border-color);color:var(--text-dark);}
.btn-outline:hover{background:var(--bg-card-hover);border-color:var(--primary);}
.btn-danger{background:var(--accent-red);color:#fff;}
.btn-danger:hover{background:#B91C1C;}
.btn-sm{padding:4px 10px;font-size:12px;}
.btn:disabled{opacity:0.5;cursor:not-allowed;}

/* ---------- 筛选栏 ---------- */
.filter-bar{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  padding:12px 14px;
  background:var(--bg-card-1);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  margin-bottom:16px;
}
.filter-item{display:flex;flex-direction:column;gap:3px;}
.filter-label{font-size:11px;color:var(--text-medium);font-weight:600;}
.filter-select,.filter-input{
  padding:6px 10px;
  border:1px solid var(--border-color);
  border-radius:var(--radius-sm);
  font-size:13px;
  background:#fff;
  color:var(--text-dark);
  outline:none;
  transition:var(--transition);
}
.filter-select:focus,.filter-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(245,158,11,0.15);}
.filter-select{min-width:110px;}

/* ---------- 漏斗图 ---------- */
.funnel{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;}
.funnel-stage{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 20px;
  border-radius:var(--radius-sm);
  font-size:13px;
  font-weight:600;
  color:#fff;
  transition:var(--transition);
  cursor:pointer;
  min-width:200px;
}
.funnel-stage:hover{transform:scale(1.03);}
.funnel-stage .stage-count{font-size:16px;font-weight:800;}
.funnel-stage .stage-rate{font-size:11px;opacity:0.85;}

/* ---------- 预警清单 ---------- */
.alert-list{display:flex;flex-direction:column;gap:8px;}
.alert-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;
  border-radius:var(--radius-sm);
  border-left:4px solid;
  background:#fff;
  transition:var(--transition);
}
.alert-item:hover{transform:translateX(2px);box-shadow:var(--shadow-sm);}
.alert-item.danger{border-color:var(--accent-red);background:#FEF2F2;}
.alert-item.warning{border-color:var(--accent-orange);background:#FFF7ED;}
.alert-item.info{border-color:var(--accent-blue);background:#EFF6FF;}
.alert-item.success{border-color:var(--accent-green);background:#F0FDF4;}
.alert-icon{font-size:18px;}
.alert-content{flex:1;}
.alert-title{font-size:13px;font-weight:600;color:var(--text-dark);}
.alert-desc{font-size:11px;color:var(--text-medium);margin-top:2px;}
.alert-time{font-size:11px;color:var(--text-light);white-space:nowrap;}

/* ---------- 表单 ---------- */
.form-group{margin-bottom:14px;}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-dark);margin-bottom:5px;}
.form-label .required{color:var(--accent-red);}
.form-input,.form-textarea,.form-select{
  width:100%;
  padding:8px 12px;
  border:1px solid var(--border-color);
  border-radius:var(--radius-sm);
  font-size:13px;
  background:#fff;
  color:var(--text-dark);
  outline:none;
  transition:var(--transition);
}
.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(245,158,11,0.15);}
.form-textarea{resize:vertical;min-height:80px;}

/* ---------- 模态框（旧样式已合并到下方 Modal 区，此处保留空位避免重复定义冲突） ---------- */

/* ---------- 空状态 ---------- */
.empty-state{
  text-align:center;
  padding:40px 20px;
  color:var(--text-light);
}
.empty-state-icon{font-size:48px;margin-bottom:12px;}
.empty-state-text{font-size:14px;}

/* ---------- 统计条 ---------- */
.stat-row{
  display:flex;
  gap:16px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.stat-box{
  flex:1;
  min-width:140px;
  background:linear-gradient(135deg,#FFFBF0,#FEF3C7);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:14px 16px;
  text-align:center;
}
.stat-box .stat-label{font-size:12px;color:var(--text-medium);margin-bottom:6px;}
.stat-box .stat-value{font-size:22px;font-weight:800;color:var(--primary-dark);}
.stat-box .stat-unit{font-size:12px;color:var(--text-medium);font-weight:400;}

/* ---------- 进度条 ---------- */
.progress-bar{
  width:100%;
  height:8px;
  background:var(--border-light);
  border-radius:4px;
  overflow:hidden;
}
.progress-fill{
  height:100%;
  border-radius:4px;
  transition:width 0.5s ease;
}

/* ---------- 时间线 ---------- */
.timeline{position:relative;padding-left:24px;}
.timeline::before{
  content:'';position:absolute;left:8px;top:0;bottom:0;
  width:2px;background:var(--border-color);
}
.timeline-item{position:relative;padding-bottom:16px;}
.timeline-item::before{
  content:'';position:absolute;left:-20px;top:4px;
  width:10px;height:10px;border-radius:50%;
  background:var(--primary);border:2px solid #fff;
  box-shadow:0 0 0 2px var(--primary);
}
.timeline-date{font-size:11px;color:var(--text-light);}
.timeline-content{font-size:13px;color:var(--text-dark);margin-top:2px;}

/* ---------- 计算器 ---------- */
.calculator{
  max-width:500px;
  background:linear-gradient(135deg,var(--bg-card-1),var(--bg-card-2));
  border:1px solid var(--border-color);
  border-radius:var(--radius-lg);
  padding:24px;
  box-shadow:var(--shadow-md);
}
.calc-result{
  background:#fff;
  border:2px solid var(--primary-light);
  border-radius:var(--radius-md);
  padding:16px;
  text-align:center;
  margin-top:16px;
}
.calc-result .result-label{font-size:12px;color:var(--text-medium);}
.calc-result .result-value{font-size:28px;font-weight:800;color:var(--primary-dark);margin-top:4px;}
.calc-result .result-unit{font-size:14px;color:var(--text-medium);}

/* ---------- 资源卡片 ---------- */
.resource-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
}
.resource-card{
  background:#fff;
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:14px;
  transition:var(--transition);
  cursor:pointer;
}
.resource-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.resource-thumb{
  width:100%;height:120px;
  border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  font-size:40px;
  margin-bottom:10px;
}
.resource-name{font-size:13px;font-weight:600;color:var(--text-dark);}
.resource-meta{font-size:11px;color:var(--text-light);margin-top:4px;}

/* ---------- 通用工具类 ---------- */
.text-center{text-align:center;}
.text-right{text-align:right;}
.text-blue{color:var(--accent-blue);}
.text-green{color:var(--accent-green);}
.text-red{color:var(--accent-red);}
.text-orange{color:var(--accent-orange);}
.text-bold{font-weight:700;}
.text-sm{font-size:12px;}
.text-lg{font-size:16px;}
.mt-8{margin-top:8px;}
.mt-16{margin-top:16px;}
.mt-24{margin-top:24px;}
.mb-8{margin-bottom:8px;}
.mb-16{margin-bottom:16px;}
.flex{display:flex;}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
.gap-8{gap:8px;}
.gap-16{gap:16px;}
.wrap{flex-wrap:wrap;}
.hidden{display:none;}
.cursor-pointer{cursor:pointer;}

/* 高亮行 */
tr.highlight-row{background:#FEF9E7 !important;}
tr.overdue-row td{color:var(--accent-red) !important;}
tr.overdue-row .tag{opacity:0.8;}

/* 加载动画 */
.loading{
  display:inline-block;
  width:20px;height:20px;
  border:3px solid var(--border-color);
  border-top-color:var(--primary);
  border-radius:50%;
  animation:spin 0.8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* 通知提示 */
.toast{
  position:fixed;
  bottom:24px;right:24px;
  background:var(--accent-green);
  color:#fff;
  padding:12px 20px;
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-lg);
  z-index:3000;
  font-size:14px;
  font-weight:600;
  animation:slideIn 0.3s ease;
}
@keyframes slideIn{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* ==================== 弹窗 Modal ==================== */
.modal-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(0,0,0,0.4);
  z-index:4000;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity 0.2s;
}
.modal-overlay.show{opacity:1;}
.modal-box{
  background:#fff;border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  width:560px;max-width:92vw;max-height:88vh;
  display:flex;flex-direction:column;
  transform:scale(0.95);transition:transform 0.2s;
}
.modal-overlay.show .modal-box{transform:scale(1);}
.modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid #F3E8C7;
}
.modal-header h3{font-size:16px;font-weight:700;color:var(--text-primary);}
.modal-close{cursor:pointer;font-size:18px;color:var(--text-secondary);padding:4px 8px;}
.modal-close:hover{color:var(--text-primary);}
.modal-body{padding:20px;overflow-y:auto;flex:1;}
.modal-footer{
  display:flex;align-items:center;gap:8px;justify-content:flex-end;
  padding:12px 20px;border-top:1px solid #F3E8C7;
}

/* ==================== 表单字段 ==================== */
.form-field{margin-bottom:14px;}
.form-field label{
  display:block;font-size:13px;font-weight:600;color:var(--text-primary);
  margin-bottom:4px;
}
.form-field .req{color:var(--accent-red);}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;padding:8px 12px;
  border:1.5px solid #E5D9B6;border-radius:var(--radius-sm);
  font-size:14px;font-family:inherit;
  background:#FFFEF7;color:var(--text-primary);
  transition:border-color 0.2s;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;border-color:var(--accent-blue);
  box-shadow:0 0 0 3px rgba(37,99,235,0.1);
}
.form-field textarea{resize:vertical;min-height:60px;}

/* ==================== 空状态 ==================== */
.empty-state-box{
  text-align:center;padding:48px 24px;
  background:var(--bg-card);border-radius:var(--radius);
  border:2px dashed #E5D9B6;
}
.empty-state-icon-lg{font-size:56px;margin-bottom:12px;}
.empty-state-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:6px;}
.empty-state-desc{font-size:14px;color:var(--text-secondary);margin-bottom:16px;}
.empty-state-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}

/* ==================== 数据操作栏 ==================== */
.data-action-bar{
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  padding:12px 16px;background:var(--bg-card-2);
  border-radius:var(--radius-sm);margin-bottom:12px;
}
.data-action-bar .spacer{flex:1;}

/* 导入提示 */
.import-hint{
  display:flex;align-items:center;gap:6px;
  font-size:12px;color:var(--text-secondary);
  padding:4px 10px;background:#FFFBEB;border-radius:var(--radius-sm);
  border:1px solid #FDE68A;
}

/* 表格行操作 */
td .btn{margin:2px;}

/* 数据计数 */
.data-count{
  display:inline-flex;align-items:center;gap:4px;
  font-size:13px;color:var(--text-secondary);
  padding:4px 10px;background:var(--bg-card-2);border-radius:var(--radius-sm);
}
.data-count b{color:var(--accent-blue);font-size:15px;}

/* ==================== 联网实时页面样式 ==================== */

/* KPI行（与kpi-grid相同布局） */
.kpi-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
  margin-bottom:16px;
}
.kpi-row .kpi-card{
  background:linear-gradient(135deg,#FFFBF0,#FFF3CC);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:14px 16px;
  text-align:center;
}
.kpi-row .kpi-value{font-size:24px;font-weight:800;color:var(--text-dark);}
.kpi-row .kpi-label{font-size:12px;color:var(--text-medium);margin-top:4px;}
.kpi-row .kpi-sub{font-size:11px;color:var(--text-light);margin-top:2px;}

/* 数据源卡片网格 */
.source-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:10px;
  margin-bottom:16px;
}
.source-card{
  display:block;
  background:var(--bg-card);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:12px 14px;
  text-decoration:none;
  transition:all 0.15s;
}
.source-card:hover{
  border-color:var(--accent-blue);
  box-shadow:0 2px 8px rgba(37,99,235,0.12);
  transform:translateY(-1px);
}
.source-card .source-name{font-size:14px;font-weight:700;color:var(--text-dark);}
.source-card .source-desc{font-size:12px;color:var(--text-medium);margin-top:3px;}

/* 公司搜索结果面板 */
.search-result-panel{
  margin-top:20px;
  background:var(--bg-card);
  border:1px solid var(--border-color);
  border-radius:var(--radius-lg);
  padding:16px;
  animation:fadeIn 0.2s ease;
}
@keyframes fadeIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
.search-result-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;
}
.search-result-header h3{
  font-size:16px;font-weight:700;color:var(--text-dark);margin:0;
}
.search-tools-row{
  display:flex;flex-wrap:wrap;gap:8px;
  padding:10px;
  background:var(--bg-card-2);
  border-radius:var(--radius-md);
}
.search-tool-btn{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 12px;
  background:var(--bg-card);
  border:1px solid var(--border-color);
  border-radius:var(--radius-sm);
  font-size:13px;
  color:var(--text-dark);
  text-decoration:none;
  transition:all 0.15s;
}
.search-tool-btn:hover{
  border-color:var(--accent-blue);
  color:var(--accent-blue);
  background:#EFF6FF;
}

/* 加载状态 */
.live-loading{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:60px 20px;text-align:center;
}
.live-spinner{
  width:36px;height:36px;
  border:3px solid var(--border-light);
  border-top-color:var(--accent-blue);
  border-radius:50%;
  animation:liveSpin 0.8s linear infinite;
  margin-bottom:14px;
}
@keyframes liveSpin{to{transform:rotate(360deg);}}
.live-loading-text{font-size:14px;color:var(--text-medium);}

/* 错误状态 */
.live-error{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 20px;text-align:center;
}
.live-error-icon{font-size:36px;margin-bottom:10px;}
.live-error-text{font-size:14px;color:var(--text-medium);line-height:1.6;}

/* 实时标记 */
.live-badge{
  font-size:9px;background:var(--accent-green);color:#fff;
  padding:1px 4px;border-radius:3px;margin-left:4px;vertical-align:middle;
}

/* 物流追踪面板 */
.track-panel{
  background:var(--bg-card-1);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:16px 20px;
  margin-bottom:16px;
}
.track-panel-title{
  font-size:14px;font-weight:700;color:var(--text-dark);
  margin-bottom:12px;
}
.track-input-row{
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  margin-bottom:12px;
}
.track-select{
  padding:8px 10px;border:1px solid var(--border-color);
  border-radius:var(--radius-sm);background:#fff;
  font-size:13px;color:var(--text-dark);min-width:180px;
  cursor:pointer;
}
.track-input{
  flex:1;min-width:200px;
  padding:8px 12px;border:1px solid var(--border-color);
  border-radius:var(--radius-sm);font-size:13px;
}
.track-quick-links{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:12px;
}
.track-quick-label{color:var(--text-medium);font-weight:600;}
.track-quick-link{
  color:var(--accent-blue);text-decoration:none;
  padding:2px 8px;border:1px solid var(--border-color);
  border-radius:var(--radius-sm);background:var(--bg-card-2);
  transition:all 0.15s;
}
.track-quick-link:hover{
  background:var(--accent-blue);color:#fff;border-color:var(--accent-blue);
}
.track-quick-sep{color:var(--border-color);margin:0 2px;}

/* 表格内追踪链接 */
.track-link{
  color:var(--accent-blue);text-decoration:none;
  border-bottom:1px dashed var(--accent-blue);
  padding-bottom:1px;transition:all 0.15s;
}
.track-link:hover{
  color:var(--accent-blue-dark,#0056b3);
  border-bottom-style:solid;
}

/* 追踪提示 */
.track-tips{
  background:var(--bg-card-2);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:14px 20px;margin-top:16px;
}
.track-tips-title{
  font-size:13px;font-weight:700;color:var(--text-dark);
  margin-bottom:8px;
}
.track-tips ul{
  margin:0;padding-left:18px;
  font-size:12px;color:var(--text-medium);line-height:1.8;
}

/* 新闻列表 */
.news-list{display:flex;flex-direction:column;gap:10px;}
.news-item{
  background:var(--bg-card-1);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:14px 16px;
  transition:box-shadow 0.2s;
}
.news-item:hover{box-shadow:var(--shadow-md);}
.news-item-header{
  display:flex;align-items:flex-start;gap:8px;
  margin-bottom:6px;
}
.news-item-num{
  flex-shrink:0;
  width:22px;height:22px;
  background:var(--accent-blue);color:#fff;
  border-radius:50%;
  font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin-top:2px;
}
.news-item-title{
  flex:1;
  font-size:14px;font-weight:600;color:var(--text-dark);
  text-decoration:none;line-height:1.5;
}
.news-item-title:hover{color:var(--accent-blue);}
.news-item-desc{
  font-size:12px;color:var(--text-medium);line-height:1.6;
  margin:4px 0 6px 30px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.news-item-meta{
  display:flex;align-items:center;gap:14px;
  margin-left:30px;
  font-size:11px;color:var(--text-light);
}
.news-item-link{
  color:var(--accent-blue);text-decoration:none;font-weight:500;
  margin-left:auto;
}
.news-item-link:hover{text-decoration:underline;}

/* 展会卡片 */
.expo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:14px;
}
.expo-card{
  background:var(--bg-card-1);
  border:1px solid var(--border-color);
  border-radius:var(--radius-md);
  padding:16px;
  transition:box-shadow 0.2s;
  border-left:4px solid var(--accent-blue);
}
.expo-card:hover{box-shadow:var(--shadow-md);}
.expo-card.urgent{border-left-color:var(--accent-red);}
.expo-card-header{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:10px;
}
.expo-card-name{font-size:15px;font-weight:700;color:var(--text-dark);}
.expo-card-fullname{font-size:11px;color:var(--text-light);margin-top:2px;}
.expo-card-stars{font-size:12px;flex-shrink:0;margin-left:8px;}
.expo-card-body{font-size:13px;line-height:1.8;}
.expo-card-date{color:var(--accent-blue);font-weight:600;}
.expo-card-location{color:var(--text-medium);}
.expo-card-industry{
  display:inline-block;font-size:11px;
  background:#FEF3C7;color:#92400E;
  padding:1px 6px;border-radius:3px;margin-top:4px;
}
.expo-card-desc{
  font-size:12px;color:var(--text-medium);
  margin-top:8px;line-height:1.5;
}
.expo-card-footer{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:12px;padding-top:10px;
  border-top:1px dashed var(--border-color);
}
.expo-card-countdown{
  font-size:13px;font-weight:700;color:var(--accent-blue);
}
.expo-card-countdown.urgent{color:var(--accent-red);}
.expo-card-link{
  font-size:12px;color:var(--accent-blue);text-decoration:none;font-weight:500;
}
.expo-card-link:hover{text-decoration:underline;}

/* 节日列表 */
.month-section{margin-bottom:20px;}
.month-header{
  font-size:15px;font-weight:700;color:var(--primary-dark);
  margin-bottom:10px;padding-bottom:6px;
  border-bottom:2px solid var(--border-light);
}
.holiday-list{display:flex;flex-direction:column;gap:6px;}
.holiday-item{
  display:flex;align-items:center;gap:12px;
  background:var(--bg-card-1);
  border:1px solid var(--border-color);
  border-radius:var(--radius-sm);
  padding:10px 14px;
  transition:background 0.2s;
}
.holiday-item:hover{background:var(--bg-card-2);}
.holiday-flag{font-size:22px;flex-shrink:0;}
.holiday-info{flex:1;}
.holiday-name{font-size:14px;font-weight:600;color:var(--text-dark);}
.holiday-meta{font-size:12px;color:var(--text-light);margin-top:2px;}
.holiday-countdown{
  font-size:14px;font-weight:700;color:var(--accent-blue);
  flex-shrink:0;min-width:60px;text-align:right;
}
.holiday-countdown.urgent{color:var(--accent-red);}

/* ===== 员工业绩表 ===== */
.section-title{
  font-size:16px;font-weight:700;color:var(--text-dark);
  margin:24px 0 12px;padding-left:10px;
  border-left:3px solid var(--accent-blue);
}
.section-title:first-child{margin-top:0;}

.ranking-list{display:flex;flex-direction:column;gap:8px;}
.ranking-item{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:10px;
  transition:all 0.2s;
}
.ranking-item:hover{box-shadow:0 2px 8px rgba(0,0,0,0.06);transform:translateX(2px);}
.ranking-item.top{
  background:linear-gradient(135deg,#FFFBEB 0%,#FEF3C7 100%);
  border-color:#F59E0B;
}
.ranking-item.top:first-child{border-color:#FFD700;}
.ranking-rank{
  font-size:28px;width:44px;text-align:center;flex-shrink:0;
}
.rank-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:50%;
  background:var(--bg-card-2);color:var(--text-medium);
  font-size:14px;font-weight:700;
}
.ranking-info{flex:1;}
.ranking-name{font-size:15px;font-weight:700;color:var(--text-dark);}
.ranking-role{
  font-size:12px;font-weight:400;color:var(--text-light);
  background:var(--bg-card-2);padding:1px 8px;border-radius:10px;margin-left:6px;
}
.ranking-meta{
  display:flex;gap:16px;flex-wrap:wrap;
  font-size:12px;color:var(--text-medium);margin-top:4px;
}
.ranking-meta b{color:var(--text-dark);font-weight:600;}
.ranking-overdue b{color:var(--accent-red)!important;}
.ranking-revenue{
  font-size:20px;font-weight:800;color:var(--accent-green);
  flex-shrink:0;white-space:nowrap;
}
.ranking-item.top .ranking-revenue{color:#D97706;}

/* 分段切换控件（排行榜时间维度：总/每周/每日、总/月/今日） */
.seg-control{display:inline-flex;background:var(--bg-card-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px;margin:2px 0 14px;flex-wrap:wrap;}
.seg-btn{
  border:none;background:transparent;cursor:pointer;
  padding:7px 18px;border-radius:8px;font-size:13px;font-weight:600;
  color:var(--text-medium);transition:all 0.15s;font-family:inherit;
}
.seg-btn:hover{color:var(--text-dark);}
.seg-btn.active{background:var(--accent-blue);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.12);}

/* ===== 登录系统 ===== */
.login-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:linear-gradient(135deg,#FFFBF0 0%,#FEF9E7 50%,#FEF3C7 100%);
  display:flex;align-items:center;justify-content:center;
  z-index:9999;
}
.login-box{
  background:#fff;border-radius:16px;padding:40px 36px;
  width:380px;max-width:90vw;
  box-shadow:0 8px 32px rgba(0,0,0,0.1);
  text-align:center;
}
.login-logo{font-size:48px;margin-bottom:8px;}
.login-title{font-size:22px;font-weight:800;color:var(--text-dark);margin-bottom:4px;}
.login-subtitle{font-size:13px;color:var(--text-light);margin-bottom:24px;}
.login-tabs{
  display:flex;gap:0;margin-bottom:20px;
  border:1.5px solid #E5D9B6;border-radius:8px;overflow:hidden;
}
.login-tab{
  flex:1;padding:10px;font-size:13px;font-weight:600;
  cursor:pointer;color:var(--text-medium);background:transparent;
  transition:all 0.2s;border:none;
}
.login-tab.active{background:var(--accent-blue);color:#fff;}
.login-panel{display:flex;flex-direction:column;gap:12px;}
.login-input{
  padding:12px 16px;border:1.5px solid #E5D9B6;border-radius:8px;
  font-size:14px;outline:none;transition:border 0.2s;
  font-family:inherit;
}
.login-input:focus{border-color:var(--accent-blue);}
.login-btn{
  padding:12px;background:var(--accent-blue);color:#fff;
  border:none;border-radius:8px;font-size:15px;font-weight:600;
  cursor:pointer;transition:all 0.2s;margin-top:4px;
}
.login-btn:hover{background:#3B82F6;transform:translateY(-1px);}
.login-btn:active{transform:translateY(0);}
.login-hint{font-size:12px;color:var(--text-light);margin-top:12px;min-height:16px;}
.login-hint.error{color:var(--accent-red);}

/* 用户标识 */
.user-badge{
  padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:all 0.2s;
  border:1.5px solid transparent;
}
.user-badge.admin{
  background:#FEF3C7;color:#92400E;border-color:#F59E0B;
}
.user-badge.admin:hover{background:#FDE68A;}
.user-badge.employee{
  background:#DBEAFE;color:#1E40AF;border-color:#3B82F6;
}
.user-badge.employee:hover{background:#BFDBFE;}

/* 账号管理弹窗 */
.account-add-form{
  display:flex;gap:8px;align-items:center;margin-bottom:16px;
}
.account-add-form .login-input{flex:1;padding:8px 12px;font-size:13px;}

/* 实时同步状态指示灯 */
.live-dot{
  width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle;
  background:#94a3b8;box-shadow:0 0 0 2px rgba(0,0,0,.05);flex:0 0 auto;
}
.live-dot.online{ background:#22c55e; box-shadow:0 0 0 2px rgba(34,197,94,.25); animation:pulseDot 1.6s infinite; }
.live-dot.syncing{ background:#f59e0b; animation:pulseDot 1s infinite; }
.live-dot.offline{ background:#94a3b8; }
@keyframes pulseDot{ 0%{transform:scale(1);opacity:1;} 50%{transform:scale(1.4);opacity:.55;} 100%{transform:scale(1);opacity:1;} }

.live-tag{
  font-size:11px;background:#22c55e;color:#fff;padding:2px 8px;border-radius:10px;margin-left:8px;vertical-align:middle;
  box-shadow:0 1px 3px rgba(34,197,94,.35);
}

/* 连接团队服务器按钮 */
.conn-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;cursor:pointer;flex:0 0 auto;
  font-size:15px;line-height:1;margin-right:6px;vertical-align:middle;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  transition:background .15s, transform .15s;
}
.conn-btn:hover{ background:rgba(34,197,94,.25); transform:translateY(-1px); }

/* ===== 产品照片图库 ===== */
.gallery-section{ margin:18px 0 8px; background:var(--bg-card,#fff); border:1px solid var(--border-light,#eee); border-radius:14px; padding:16px; }
.gallery-header{ display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.gallery-title{ font-size:16px; font-weight:700; color:var(--text-primary,#222); }
.gallery-sub{ font-size:12px; color:var(--text-light,#999); font-weight:400; margin-left:6px; }
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:14px; }
.gallery-card{ background:var(--bg-card-2,#fafafa); border:1px solid var(--border-light,#eee); border-radius:12px; overflow:hidden; transition:transform .15s, box-shadow .15s; }
.gallery-card:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.10); }
.gallery-thumb{ width:100%; aspect-ratio:1/1; background:#f0f0f0; cursor:pointer; overflow:hidden; }
.gallery-thumb-inner{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.gallery-thumb-inner img{ width:100%; height:100%; object-fit:cover; display:block; cursor:pointer; }
.gallery-spinner{ width:22px; height:22px; border:3px solid rgba(0,0,0,.12); border-top-color:#d4a017; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.gallery-broken{ font-size:12px; color:#c0392b; padding:8px; text-align:center; }
.gallery-meta{ padding:8px 10px 10px; }
.gallery-name{ font-size:13px; font-weight:600; color:var(--text-primary,#222); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gallery-by{ font-size:11px; color:var(--text-light,#999); margin:3px 0 8px; }
.gallery-card-actions{ display:flex; gap:6px; flex-wrap:wrap; }
.gallery-loading, .gallery-empty{ grid-column:1/-1; text-align:center; color:var(--text-light,#999); padding:30px 10px; font-size:13px; }
.btn-xs{ padding:3px 8px; font-size:11px; border-radius:7px; }
.btn-xs.danger{ color:#c0392b; border-color:#f0c0c0; }
.btn-xs.danger:hover{ background:#fdecea; }
.section-divider{ display:flex; align-items:center; margin:22px 0 14px; color:var(--text-secondary,#666); font-size:14px; font-weight:600; }

/* 图库分类筛选 chips + 分类徽标 + 表单字段 */
.gallery-filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.chip{ padding:5px 12px; font-size:12px; border-radius:999px; border:1px solid var(--border-light,#ddd); background:var(--bg-card,#fff); color:var(--text-secondary,#555); cursor:pointer; transition:all .15s; }
.chip:hover{ border-color:var(--primary,#f59e0b); color:var(--primary,#f59e0b); }
.chip.active{ background:var(--primary,#f59e0b); border-color:var(--primary,#f59e0b); color:#fff; font-weight:600; }
.gallery-cat{ display:inline-block; font-size:10px; line-height:1; padding:3px 7px; margin:5px 0 2px; border-radius:6px; background:rgba(245,158,11,.12); color:#b9770e; font-weight:600; }
.field-label{ display:block; font-size:13px; font-weight:600; color:var(--text-primary,#333); margin-bottom:6px; }
.field-hint{ font-size:12px; color:var(--text-light,#999); margin-top:8px; line-height:1.5; }
.lightbox-cat{ font-size:12px; font-weight:600; padding:3px 10px; border-radius:999px; background:rgba(245,158,11,.14); color:#b9770e; margin-left:8px; }
.section-divider::before, .section-divider::after{ content:''; flex:1; height:1px; background:var(--border-light,#eee); }
.section-divider span{ padding:0 12px; }
/* 灯箱 */
.lightbox-box{ background:#fff; border-radius:14px; width:min(92vw,860px); max-height:90vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.4); }
.lightbox-bar{ display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid #eee; }
.lightbox-title{ font-size:15px; font-weight:700; color:#222; }
.lightbox-bar .spacer{ flex:1; }
.lightbox-img-wrap{ overflow:auto; background:#111; display:flex; align-items:center; justify-content:center; padding:10px; }
.lightbox-img{ max-width:100%; max-height:72vh; object-fit:contain; }
