/* ===== 参照 anxinshouyi-dashboard 的金融看板风格 ===== */
:root{
  --bg:#f5f6f8;
  --card:#ffffff;
  --border:#ebeef2;
  --text:#2c3e50;
  --muted:#8492a6;
  --up:#e74c3c;        /* 上涨红 */
  --down:#18b566;      /* 下跌绿 */
  --flat:#c0ccda;
  --primary:#3b82f6;
  --primary-d:#2563eb;
  --tag-bg:#f0f5ff;
  --tag-text:#3b82f6;
  --shadow:0 1px 2px rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.04);
  --radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;
  background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;
}
.app{min-height:100vh}

/* 顶部栏 */
.topbar{
  background:var(--card);border-bottom:1px solid var(--border);
  padding:16px 32px;display:flex;justify-content:space-between;align-items:center;
  position:sticky;top:0;z-index:10;box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{font-size:28px}
.brand h1{font-size:20px;font-weight:600}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}
.topbar-actions{display:flex;gap:10px;align-items:center}
#fundCodeInput{
  padding:8px 14px;border:1px solid var(--border);border-radius:6px;
  width:220px;font-size:13px;transition:.2s;
}
#fundCodeInput:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.btn{padding:8px 18px;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:.2s;font-weight:500}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-d)}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}
.btn-ghost:hover{color:var(--text);border-color:var(--flat)}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* 主容器 */
.container{max-width:1100px;margin:0 auto;padding:24px 32px;display:flex;flex-direction:column;gap:20px}

/* 卡片 */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card-head{
  padding:14px 20px;border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;background:#fafbfc;
}
.card-head h3{font-size:15px;font-weight:600}
.card-tag{font-size:12px;color:var(--tag-text);background:var(--tag-bg);padding:2px 10px;border-radius:10px}
.head-actions{display:flex;gap:10px;align-items:center}
.filter-input{padding:5px 12px;border:1px solid var(--border);border-radius:5px;font-size:12px;width:160px}

/* 净值概览网格 */
.nav-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);
}
.nav-cell{background:var(--card);padding:18px 20px}
.nav-cell .label{font-size:12px;color:var(--muted);margin-bottom:6px}
.nav-cell .value{font-size:22px;font-weight:700}
.nav-cell .sub{font-size:11px;color:var(--muted);margin-top:4px}

/* 业绩表现网格 */
.perf-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--border)}
.perf-cell{background:var(--card);padding:16px;text-align:center}
.perf-cell .period{font-size:12px;color:var(--muted);margin-bottom:8px}
.perf-cell .ret{font-size:17px;font-weight:600}

/* 风险指标网格 */
.risk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border)}
.risk-cell{background:var(--card);padding:16px 20px}
.risk-cell .label{font-size:12px;color:var(--muted);margin-bottom:6px}
.risk-cell .value{font-size:18px;font-weight:600}
.risk-cell .sub{font-size:11px;color:var(--muted);margin-top:4px}

/* 表格 */
.table-wrap{overflow-x:auto}
.fund-table{width:100%;border-collapse:collapse}
.fund-table thead{background:#fafbfc}
.fund-table th{
  padding:10px 16px;text-align:left;font-size:12px;color:var(--muted);
  font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;
}
.fund-table th.num,.fund-table td.num{text-align:right}
.fund-table td{
  padding:11px 16px;border-bottom:1px solid #f5f6f8;font-size:13px;white-space:nowrap;
}
.fund-table tbody tr:hover{background:#fafbfc}
.fund-table tbody tr:last-child td{border-bottom:none}
.empty{text-align:center;color:var(--flat);padding:32px}

/* 涨跌色 */
.text-up{color:var(--up)}
.text-down{color:var(--down)}
.text-flat{color:var(--flat)}
.tag-up{color:var(--up);background:#fef0ef;padding:2px 8px;border-radius:4px;font-weight:500}
.tag-down{color:var(--down);background:#e8f8f0;padding:2px 8px;border-radius:4px;font-weight:500}
.tag-flat{color:var(--muted);background:#f5f6f8;padding:2px 8px;border-radius:4px}

/* 图表 */
.chart-box{height:340px;padding:12px}

.hidden{display:none}

/* 详情区操作链接 */
.act-link{color:var(--primary);cursor