:root{
  --bg:#0b0e14;
  --card:#151a23;
  --card-hover:#1a212d;
  --border:#232a36;
  --border-strong:#334058;
  --text:#e5e9f0;
  --text-dim:#8b94a3;
  --up:#ef4444;      /* 红涨 */
  --down:#22c55e;    /* 绿跌 */
  --accent:#3b82f6;
  --accent-hover:#2563eb;
  --chart-grid:#232a36;
  --chart-text:#8b94a3;
  --topbar-bg:rgba(11,14,20,.9);
  --radius:14px;
}
/* 浅棕色主题 */
[data-theme="light"]{
  --bg:#f3ecdf;
  --card:#fdf8ef;
  --card-hover:#f6eddc;
  --border:#e2d5bf;
  --border-strong:#cdb997;
  --text:#3d3123;
  --text-dim:#9a8867;
  --up:#d43d3d;
  --down:#1c9e50;
  --accent:#a3703a;
  --accent-hover:#8f5f2e;
  --chart-grid:#e2d5bf;
  --chart-text:#9a8867;
  --topbar-bg:rgba(243,236,223,.9);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.5;min-height:100vh;
}
.hidden{display:none!important;}

/* ===== 顶栏 ===== */
.topbar{position:sticky;top:0;z-index:50;background:var(--topbar-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.topbar-inner{max-width:1400px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;}
.brand h1{font-size:17px;font-weight:600;letter-spacing:.5px;}
.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);}
.market-status{font-size:12px;color:var(--text-dim);border:1px solid var(--border);border-radius:20px;padding:2px 10px;}
.market-status.open{color:var(--up);border-color:var(--up);}
.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.last-update{font-size:12px;color:var(--text-dim);}

.btn{
  background:var(--card);border:1px solid var(--border);color:var(--text);
  border-radius:9px;padding:7px 14px;font-size:13px;cursor:pointer;transition:.15s;
}
.btn:hover{background:var(--card-hover);border-color:var(--border-strong);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);}
.select{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:7px 10px;font-size:13px;cursor:pointer;}
.input{
  width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);
  border-radius:9px;padding:10px 12px;font-size:14px;outline:none;
}
.input:focus{border-color:var(--accent);}

/* ===== 汇总条 ===== */
.summary{
  max-width:1400px;margin:16px auto 0;padding:0 20px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;}
.stat-label{font-size:12px;color:var(--text-dim);margin-bottom:4px;}
.stat-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;}

/* ===== 卡片网格 ===== */
.container{max-width:1400px;margin:0 auto;padding:16px 20px 40px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 16px;cursor:pointer;transition:.15s;position:relative;
}
.card:hover{background:var(--card-hover);border-color:var(--border-strong);transform:translateY(-2px);}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.card-name{font-size:14px;font-weight:600;line-height:1.3;}
.card-code{font-size:12px;color:var(--text-dim);margin-top:1px;}
.card-del{
  background:none;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;
  padding:0 2px;line-height:1;flex-shrink:0;
}
.card-del:hover{color:var(--up);}
.card-body{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;gap:8px;}
.nav-block .nav-label{font-size:11px;color:var(--text-dim);}
.nav-block .nav-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;}
.nav-block .nav-date{font-size:11px;color:var(--text-dim);}
.est-block{text-align:right;}
.est-label{font-size:11px;color:var(--text-dim);}
.est-value{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;}
.est-nav{font-size:11px;color:var(--text-dim);}
.spark{width:100%;height:44px;margin-top:10px;display:block;}
.card-perf{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--text-dim);}
.card-perf b{display:block;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;}
.card-loading{padding:30px 16px;text-align:center;color:var(--text-dim);}

.up{color:var(--up)!important;}
.down{color:var(--down)!important;}
.flat{color:var(--text-dim)!important;}

/* ===== 弹窗 ===== */
.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;}
.modal-box{background:var(--card);border:1px solid var(--border);border-radius:16px;width:100%;max-height:90vh;display:flex;flex-direction:column;}
.modal-small{max-width:400px;}
.modal-large{max-width:760px;}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);}
.modal-head h2{font-size:16px;font-weight:600;}
.modal-close{background:none;border:none;color:var(--text-dim);font-size:22px;cursor:pointer;line-height:1;}
.modal-close:hover{color:var(--text);}
.modal-body{padding:18px 20px;overflow-y:auto;}
.modal-actions{display:flex;gap:10px;margin-top:14px;}
.add-error{color:var(--up);font-size:12px;margin-top:8px;}

/* ===== 详情 ===== */
.detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin-bottom:14px;}
.detail-stats .stat{padding:10px 12px;}
.detail-stats .stat-value{font-size:16px;}
.chart-wrap{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:10px;}
#detailChart{width:100%;height:240px;display:block;}
.section-title{font-size:14px;font-weight:600;margin:16px 0 10px;}
.holding-date{font-size:12px;color:var(--text-dim);font-weight:400;}
.table-wrap{overflow-x:auto;}
.table{width:100%;border-collapse:collapse;font-size:13px;}
.table th,.table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums;}
.table th{color:var(--text-dim);font-weight:500;font-size:12px;}
.table th:nth-child(-n+3),.table td:nth-child(-n+3){text-align:left;}
.table tfoot td{font-weight:600;border-bottom:none;border-top:1px solid var(--border-strong);}
.note{font-size:12px;color:var(--text-dim);margin-top:10px;}

/* ===== 其他 ===== */
.empty{text-align:center;padding:60px 20px;color:var(--text-dim);}
.empty .btn{margin-top:14px;}
.footer{border-top:1px solid var(--border);padding:18px 20px 30px;text-align:center;}
.footer p{max-width:900px;margin:0 auto;font-size:12px;color:var(--text-dim);line-height:1.7;}

@media (max-width:768px){
  .summary{grid-template-columns:repeat(2,1fr);}
  .grid{grid-template-columns:1fr;}
  .brand h1{font-size:15px;}
}
