:root{
  --gold:#f0b90b; --gold2:#ffd451;
  --text:#e8edf4; --muted:#8a93a6;
  --green:#16c784; --red:#ea3943;
  --border:#26314699; --radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  color:var(--text);line-height:1.65;min-height:100vh;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(240,185,11,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 10%, rgba(22,199,132,.06), transparent 55%),
    linear-gradient(180deg,#0a0e15,#0b1019 40%,#0a0e15);
  background-attachment:fixed;
}
a{color:var(--gold);text-decoration:none;transition:.2s;}
a:hover{color:var(--gold2);}

.nav{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
  padding:14px 30px;background:rgba(12,16,25,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);}
.nav .brand{display:flex;flex-direction:column;line-height:1.12;}
.nav .brand .brand-main{font-size:19px;font-weight:800;letter-spacing:.5px;
  background:linear-gradient(90deg,#f0b90b,#ffd451);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.nav .brand .brand-sub{font-size:10px;color:#8896b5;font-weight:600;letter-spacing:1.5px;}
.nav .links{display:flex;align-items:center;flex-wrap:wrap;gap:4px;}
.nav .links a{color:#c3cbd9;font-size:14px;font-weight:500;padding:7px 14px;border-radius:8px;}
.nav .links a:hover{color:#fff;background:rgba(255,255,255,.06);}

.container{max-width:1080px;margin:34px auto;padding:0 22px;}
.card{background:linear-gradient(180deg,#151c2b,#1a2233);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px;margin-bottom:22px;box-shadow:var(--shadow);transition:border-color .25s;min-width:0;}
.card:hover{border-color:#33425e;}
.card h2{color:#fff;margin-bottom:16px;font-size:19px;font-weight:700;display:flex;align-items:center;gap:10px;}
.card h2::before{content:"";width:4px;height:18px;border-radius:3px;background:linear-gradient(180deg,#f0b90b,#ffd451);}

.auth-box{max-width:400px;margin:70px auto;}
.auth-box h2{justify-content:center;}
.auth-box h2::before{display:none;}

label{display:block;margin:16px 0 7px;font-size:13px;color:var(--muted);font-weight:500;}
input[type=text],input[type=password],select{width:100%;padding:12px 14px;background:#0b0f18;border:1px solid #2a3650;
  border-radius:10px;color:#fff;font-size:15px;transition:.2s;}
input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,185,11,.15);}
input::placeholder{color:#56607a;}

.btn{display:inline-block;cursor:pointer;text-align:center;padding:12px 20px;border:none;border-radius:10px;
  font-size:15px;font-weight:700;letter-spacing:.3px;color:#1a1205;
  background:linear-gradient(135deg,#f0b90b,#ffd451);box-shadow:0 6px 18px rgba(240,185,11,.25);transition:.2s;}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(240,185,11,.38);color:#1a1205;}
.btn.block{width:100%;margin-top:22px;}
.btn.ghost{background:rgba(255,255,255,.05);color:#dfe5ef;border:1px solid #33425e;box-shadow:none;}
.btn.ghost:hover{background:rgba(255,255,255,.1);color:#fff;}

.msg{padding:11px 15px;border-radius:10px;margin-bottom:16px;font-size:14px;}
.msg.err{background:rgba(234,57,67,.12);color:#ff8088;border:1px solid rgba(234,57,67,.35);}
.msg.ok{background:rgba(22,199,132,.12);color:#7fffb0;border:1px solid rgba(22,199,132,.35);}
.tip{text-align:center;margin-top:20px;font-size:14px;color:var(--muted);}

table{width:100%;border-collapse:separate;border-spacing:0;}
th,td{padding:13px 14px;text-align:left;font-size:14px;border-bottom:1px solid #222c3f;}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.6px;}
tbody tr{transition:.15s;}
tr:hover td{background:rgba(255,255,255,.03);}

.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;}
.badge.active{background:rgba(22,199,132,.15);color:#5fe6a8;}
.badge.disabled{background:rgba(234,57,67,.15);color:#ff8088;}
.badge.trial{background:rgba(240,185,11,.15);color:#ffd451;}

.rank{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:8px;
  font-weight:800;font-size:14px;background:#0b0f18;border:1px solid #2a3650;color:#c3cbd9;}
.rank-1{background:linear-gradient(135deg,#f0b90b,#ffd451);color:#1a1205;border:none;}
.rank-2{background:linear-gradient(135deg,#aeb7c7,#dde4ef);color:#1a1205;border:none;}
.rank-3{background:linear-gradient(135deg,#cd7f32,#e8a85c);color:#1a1205;border:none;}

.muted{color:var(--muted);font-size:14px;}

.hero{text-align:center;padding:64px 30px;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 240px at 50% -40%,rgba(240,185,11,.18),transparent 70%);pointer-events:none;}
.hero h1{font-size:38px;font-weight:900;margin-bottom:16px;letter-spacing:.5px;
  background:linear-gradient(90deg,#fff 10%,#ffd451 60%,#f0b90b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.hero p{color:#aeb7c7;font-size:16px;max-width:600px;margin:0 auto 28px;}

.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.feature{background:linear-gradient(180deg,#0e1320,#121a29);border:1px solid #243044;border-radius:14px;padding:24px;transition:.25s;}
.feature:hover{transform:translateY(-3px);border-color:#3a496b;box-shadow:var(--shadow);}
.feature .ic{font-size:26px;margin-bottom:12px;}
.feature h3{color:#fff;font-size:16px;margin-bottom:8px;}
.feature p{color:var(--muted);font-size:13.5px;line-height:1.7;}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

.strategy-card h2{margin-bottom:4px;}
.strategy-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px;}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0;}
.metric-grid div{background:linear-gradient(180deg,#0e1320,#121a29);border:1px solid #243044;border-radius:12px;padding:14px 16px;}
.metric-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px;}
.metric-grid b{color:#fff;font-size:16px;}

.detail-box{margin-top:16px;border-radius:10px;}
.detail-box summary{color:var(--gold);cursor:pointer;font-weight:700;padding:8px 0;}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:14px 0;}
.detail-grid section{background:linear-gradient(180deg,#0e1320,#121a29);border-radius:12px;padding:16px;border:1px solid #243044;}
.detail-grid .detail-wide{grid-column:1 / -1;}
.detail-grid h3{color:var(--gold);font-size:15px;margin-bottom:10px;}
.detail-grid p{color:#cfd6e3;font-size:13px;margin:6px 0;}
.prompt-summary{color:#9aa4b8 !important;background:#0b0f18;border-left:3px solid var(--gold);padding:10px;border-radius:6px;white-space:pre-wrap;max-height:160px;overflow:auto;font-family:"Microsoft YaHei",sans-serif;font-size:13px;}
.status-line{margin-top:12px;color:var(--muted);font-size:13px;}
.chart-frame{width:100%;max-width:100%;overflow:hidden;border-radius:12px;border:1px solid #243044;background:#000;}
.chart-img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;border:0;box-shadow:var(--shadow);transition:.2s;}
.chart-img:hover{border-color:#3a496b;}
.prompt-full{color:#cfd6e3;background:#0b0f18;border:1px solid #243044;border-left:3px solid var(--gold);padding:16px;border-radius:8px;white-space:pre-wrap;word-break:break-word;font-family:"Microsoft YaHei",sans-serif;font-size:13.5px;line-height:1.8;}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#0b0f18;}
::-webkit-scrollbar-thumb{background:#2a3650;border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:#3a496b;}

/* 涨跌色 */
.up{color:var(--green) !important;}
.down{color:var(--red) !important;}

/* 交易员卡片榜单 */
.trader-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.trader-card{display:block;background:linear-gradient(180deg,#151c2b,#1a2233);border:1px solid var(--border);
  border-radius:16px;padding:20px;transition:.22s;color:var(--text);}
.trader-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 14px 34px rgba(0,0,0,.45);color:var(--text);}
.tc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.tc-id b{display:block;font-size:15px;color:#fff;}
.tc-id small{color:var(--muted);font-size:12px;}
.tc-profit{font-size:30px;font-weight:900;letter-spacing:.5px;color:#fff;}
.tc-sub{color:var(--muted);font-size:12px;margin-bottom:14px;}
.tc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:14px;border-top:1px solid #222c3f;}
.tc-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px;}
.tc-grid b{color:#e8edf4;font-size:13px;}
.tc-foot{margin-top:14px;color:var(--gold);font-size:12px;}

/* KPI 指标条 */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:22px;}
.kpi{background:linear-gradient(180deg,#151c2b,#1a2233);border:1px solid var(--border);border-radius:14px;padding:16px 18px;}
.kpi span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px;}
.kpi b{font-size:22px;font-weight:800;color:#fff;}

/* 内联 SVG 走势图 */
.curve-wrap{width:100%;height:300px;background:linear-gradient(180deg,#101622,#131b29);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.curve-svg{display:block;width:100%;height:100%;}
.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:14px;text-align:center;padding:0 20px;}
.card h2 small{font-size:12px;font-weight:500;}

/* 详情两栏 */
.detail-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.9fr);gap:20px;align-items:start;margin-bottom:22px;max-width:100%;overflow:hidden;}
.detail-left{display:flex;flex-direction:column;gap:20px;min-width:0;max-width:100%;overflow:hidden;}
.detail-right{min-width:0;max-width:100%;}
.info-stack{display:flex;flex-direction:column;gap:16px;}
.info-stack section{background:linear-gradient(180deg,#151c2b,#1a2233);border:1px solid var(--border);border-radius:12px;padding:18px;}
.info-stack h3{color:var(--gold);font-size:15px;margin-bottom:10px;}
.info-stack p{color:#cfd6e3;font-size:13.5px;margin:6px 0;}

/* ===== 管理后台 ===== */
.container.admin{max-width:1280px;}
.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:linear-gradient(180deg,#151c2b,#1a2233);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 20px;margin-bottom:22px;box-shadow:var(--shadow);}
.admin-title{font-size:18px;font-weight:800;color:#fff;display:flex;align-items:center;gap:10px;white-space:nowrap;}
.admin-title::before{content:"";width:4px;height:18px;border-radius:3px;background:linear-gradient(180deg,#f0b90b,#ffd451);}
.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;}
.admin-tabs a{font-size:13.5px;font-weight:600;color:#c3cbd9;padding:8px 14px;border-radius:9px;border:1px solid transparent;white-space:nowrap;transition:.18s;}
.admin-tabs a:hover{background:rgba(255,255,255,.06);color:#fff;}
.admin-tabs a.on{background:linear-gradient(135deg,#f0b90b,#ffd451);color:#1a1205;box-shadow:0 4px 14px rgba(240,185,11,.28);}
.admin-tabs a.ext{color:#8a93a6;}
.admin-tabs a.ext:hover{color:#fff;background:rgba(255,255,255,.06);}
/* 宽表格在卡片内横向滚动, 不撑破整体布局 */
.container.admin .card{overflow-x:auto;}
.container.admin table{min-width:720px;}
/* 后台快捷入口 */
.quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;}
.quick-links a{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:12px;
  background:linear-gradient(180deg,#0e1320,#121a29);border:1px solid #243044;color:#dfe5ef;font-weight:600;transition:.2s;}
.quick-links a:hover{border-color:var(--gold);transform:translateY(-2px);color:#fff;}
.quick-links .ic{font-size:22px;line-height:1;}
.quick-links small{display:block;color:var(--muted);font-size:11.5px;font-weight:500;margin-top:2px;}

/* ===== 联系作者 ===== */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px;}
.contact-item{background:linear-gradient(180deg,#0e1320,#121a29);border:1px solid #243044;border-radius:14px;
  padding:26px 20px;text-align:center;transition:.25s;}
.contact-item:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--shadow);}
.contact-item .ic{font-size:34px;margin-bottom:10px;line-height:1;}
.contact-item h3{color:#fff;font-size:15px;margin-bottom:10px;}
.contact-item .big{color:var(--gold);font-size:18px;font-weight:800;letter-spacing:.5px;margin-bottom:4px;word-break:break-all;}
.contact-item small{display:block;color:var(--muted);font-size:12px;margin-bottom:14px;}
.contact-item .btn{padding:8px 16px;font-size:13px;}

@media (max-width:900px){
  .metric-grid,.detail-grid,.feature-grid,.trader-grid,.kpi-row,.contact-grid{grid-template-columns:1fr;}
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .detail-layout{grid-template-columns:1fr;}
  .strategy-head{flex-direction:column;}
  .hero h1{font-size:28px;}
  .nav{padding:12px 16px;}
  .container{padding:0 14px;}
  .admin-bar{flex-direction:column;align-items:flex-start;}
}
