/* ============================================================
   控制台 / 通用业务组件样式
   ============================================================ */

/* ---------- 通用动画 ---------- */
/* 按钮等待态的旋转图标(与登录/注册页同名,两处文案与观感保持一致) */
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- 统计卡 ---------- */
.stat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px;transition:all .18s;}
.stat-card:hover{box-shadow:var(--shadow-md);}
/* 渐变底色变体 */
.stat-card.grad-blue{background:linear-gradient(135deg,#eef4ff,#f8fbff);border-color:#dbe7fb;}
.stat-card.grad-indigo{background:linear-gradient(135deg,#f0efff,#f8f6ff);border-color:#e2dffb;}
.stat-card.grad-orange{background:linear-gradient(135deg,#fff5ea,#fffbf5);border-color:#fbe4c9;}
.stat-card.grad-green{background:linear-gradient(135deg,#ecfdf3,#f6fef9);border-color:#cdeed8;}
.stat-card.grad-cyan{background:linear-gradient(135deg,#ebf9ff,#f5fcff);border-color:#cfeef8;}
.stat-card.grad-violet{background:linear-gradient(135deg,#f6f0ff,#fbf7ff);border-color:#e8dcfb;}
.stat-card .lbl{font-size:13.5px;color:var(--text3);margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.stat-card .val{font-size:32px;font-weight:600;color:var(--text4);letter-spacing:-.5px;line-height:1.1;}
.stat-card .val.sm{font-size:22px;}
.stat-card .delta{font-size:12.5px;color:var(--ok);margin-top:8px;display:flex;align-items:center;gap:5px;}
.stat-card .delta.muted{color:var(--text3);}

/* ---------- 图表 ---------- */
.chart-box{display:flex;align-items:flex-end;gap:8px;height:220px;padding:12px 0 0;}
.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;}
.chart-col .bar{width:58%;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#4d9eff,var(--primary));min-height:3px;transition:height .5s ease;position:relative;cursor:pointer;}
.chart-col .bar:hover{filter:brightness(1.08);}
.chart-col .xl{font-size:10.5px;color:var(--text3);}
.bar-tip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--text4);border-radius:8px;padding:5px 10px;font-size:11.5px;white-space:nowrap;z-index:5;color:#fff;}
.chart-col:hover .bar-tip{display:block;}

/* 环形/占比条 */
.ratio-row{display:flex;align-items:center;gap:14px;padding:11px 0;}
.ratio-row .nm{width:96px;font-size:13.5px;color:var(--text2);flex-shrink:0;}
.ratio-row .track{flex:1;height:8px;border-radius:99px;background:var(--panel3);overflow:hidden;}
.ratio-row .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--indigo),var(--primary));}
.ratio-row .pc{width:52px;text-align:right;font-size:13px;color:var(--text3);flex-shrink:0;}

/* ---------- API Key ---------- */
/* 定宽列:Key 色块宽度固定,不随名称 / 限额文本长度变化 */
.key-item{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--border);border-radius:14px;margin-bottom:12px;background:#fff;transition:all .15s;}
.key-item:hover{border-color:rgba(41,114,233,.35);box-shadow:var(--shadow);}
.key-item .info{flex:1 1 auto;min-width:0;}
.key-item .kname{font-size:14.5px;font-weight:600;color:var(--text4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.key-item .kmeta{font-size:12px;color:var(--text3);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.key-item .kquota{flex:0 0 176px;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text3);}
.key-item .kquota span{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.key-item .kquota i{font-size:13px;color:var(--text3);}
.key-item .kquota .q-full i{color:var(--primary);}
.key-item .kval{flex:0 0 320px;font-family:Consolas,monospace;font-size:12.5px;color:var(--text2);background:var(--panel3);border:1px solid var(--border2);border-radius:9px;padding:9px 14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.key-item .tag{flex:0 0 auto;}
.key-item .ops{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
@media (max-width:1380px){
  .key-item{flex-wrap:wrap;}
  .key-item .kval{flex:1 1 100%;order:5;}
}
.safety-tip{background:var(--warn-bg);border:1px solid rgba(245,158,11,.3);border-radius:14px;padding:20px 22px;font-size:13.5px;color:#b45309;line-height:2;margin-top:20px;}
.safety-tip b{display:flex;align-items:center;gap:8px;margin-bottom:8px;}

/* ---------- 调试台 ---------- */
.play-grid{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:stretch;}
.play-params{background:#fff;border:1px solid var(--border);border-radius:16px;padding:24px;height:calc(100vh - 210px);overflow-y:auto;}
.play-result{background:#fff;border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;height:calc(100vh - 210px);}
.play-msgs{flex:1;padding:22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;}
.msg{max-width:88%;border-radius:14px;padding:14px 17px;font-size:14px;line-height:1.85;white-space:pre-wrap;}
.msg.user{align-self:flex-end;background:var(--primary-bg);border:1px solid rgba(41,114,233,.28);color:var(--text4);}
.msg.ai{align-self:flex-start;background:var(--panel3);border:1px solid var(--border2);}
.msg .meta{font-size:11.5px;color:var(--text3);margin-top:11px;display:flex;gap:14px;flex-wrap:wrap;}
.cursor-blink::after{content:"▍";animation:blink 1s infinite;color:var(--primary);}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0;}}
.play-input-bar{display:flex;gap:12px;padding:18px;border-top:1px solid var(--border2);}
.play-input-bar .input{flex:1;}
.pg-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border2);margin-bottom:20px;}
.pg-tabs .pt{flex:1;text-align:center;padding:10px 0;font-size:13.5px;color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;}
.pg-tabs .pt.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.img-result{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;}
.img-result .thumb{width:118px;height:118px;border-radius:12px;background:linear-gradient(135deg,#dbeafe,#e0e7ff);border:1px solid var(--border2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--primary);font-size:12px;}
.audio-result{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border2);border-radius:12px;padding:13px 17px;margin-top:12px;}
.audio-result .play{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;}
.audio-result .wave{flex:1;height:34px;display:flex;align-items:center;gap:2px;}
.audio-result .wave span{flex:1;background:var(--primary);opacity:.75;border-radius:2px;}
.embed-result{font-family:Consolas,monospace;font-size:12px;color:#2549a8;background:var(--panel3);border:1px solid var(--border2);border-radius:10px;padding:12px;margin-top:12px;overflow-x:auto;}

/* ---------- 筛选栏 ---------- */
.filter-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px;}
.filter-bar .search{flex:1;min-width:220px;max-width:340px;}
.chip-group{display:flex;gap:8px;flex-wrap:wrap;}
.chip{padding:8px 18px;border-radius:99px;border:1px solid var(--border);background:#fff;color:var(--text2);font-size:13.5px;cursor:pointer;transition:all .15s;}
.chip:hover{border-color:var(--primary);color:var(--primary);}
.chip.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:500;}

/* ---------- 模型卡片(列表,分层结构) ---------- */
.model-card2{
  background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;
  transition:all .18s;cursor:pointer;display:flex;flex-direction:column;position:relative;
}
.model-card2:hover{border-color:var(--primary);box-shadow:0 14px 36px rgba(41,114,233,.12);transform:translateY(-4px);}
.model-card2 .mc-hd{padding:22px 22px 0;display:flex;align-items:flex-start;gap:14px;}
.model-card2 .mc-logo{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;color:#fff;letter-spacing:-.5px;
  background:linear-gradient(135deg,var(--indigo),var(--primary));
}
.model-card2 .mc-title{flex:1;min-width:0;}
.model-card2 .mc-name{font-size:16.5px;font-weight:600;color:var(--text4);letter-spacing:-.2px;line-height:1.4;}
.model-card2 .mc-vendor{font-size:12.5px;color:var(--text3);margin-top:4px;}
.model-card2 .mc-flags{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.model-card2 .mc-body{padding:14px 22px 0;flex:1;}
.model-card2 .mc-desc{font-size:13.5px;color:var(--text2);line-height:1.8;min-height:48px;}
.model-card2 .mc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px;}
.model-card2 .mc-price{
  margin:16px 22px 0;background:var(--panel3);border:1px solid var(--border2);
  border-radius:12px;padding:13px 16px;display:flex;gap:10px;
}
.model-card2 .mc-price .p{flex:1;min-width:0;}
.model-card2 .mc-price .k{font-size:11.5px;color:var(--text3);margin-bottom:4px;}
.model-card2 .mc-price .v{font-size:14.5px;font-weight:600;color:var(--text4);}
.model-card2 .mc-price .v.free{color:var(--ok);}
.model-card2 .mc-price .unit{font-size:11px;color:var(--text3);font-weight:400;margin-left:2px;}
.model-card2 .mc-foot{
  margin-top:16px;padding:13px 22px;background:#fbfcfe;border-top:1px solid var(--border2);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.model-card2 .mc-id{font-family:Consolas,monospace;font-size:11.5px;color:#2549a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.model-card2 .mc-copy{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text3);flex-shrink:0;}
.model-card2 .mc-copy:hover{color:var(--primary);}

/* 徽章 */
.free-badge{
  display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;
  font-size:11.5px;font-weight:600;border-radius:7px;padding:3px 10px;
  box-shadow:0 2px 8px rgba(22,163,74,.28);white-space:nowrap;
}
.new-badge{
  display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,var(--indigo),var(--primary));color:#fff;
  font-size:11.5px;font-weight:600;border-radius:7px;padding:3px 10px;
  box-shadow:0 2px 8px rgba(81,75,253,.28);white-space:nowrap;
}
.discount-badge{
  display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,#ff5a36,#e53e3e);color:#fff;
  font-size:11.5px;font-weight:700;border-radius:7px;padding:3px 10px;
  box-shadow:0 2px 8px rgba(229,62,62,.3);white-space:nowrap;
}

/* ---------- 精选推荐卡 ---------- */
.featured-card2{
  position:relative;overflow:hidden;border-radius:20px;padding:26px;
  background:linear-gradient(160deg,#f2f6ff,#f4f2ff 55%,#f8fbff);
  border:1.5px solid rgba(41,114,233,.24);cursor:pointer;transition:all .2s;
  display:flex;flex-direction:column;
}
.featured-card2:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(41,114,233,.16);border-color:var(--primary);}
.featured-card2::after{content:"";position:absolute;top:-90px;right:-70px;width:240px;height:240px;background:radial-gradient(circle,rgba(81,75,253,.12),transparent 65%);pointer-events:none;}
.featured-card2 .fc-top{display:flex;align-items:flex-start;gap:14px;position:relative;margin-bottom:14px;}
.featured-card2 .fc-logo{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--indigo),var(--primary));flex-shrink:0;box-shadow:0 4px 14px rgba(81,75,253,.3);}
.featured-card2 .fc-name{font-size:18px;font-weight:600;color:var(--text4);letter-spacing:-.3px;line-height:1.35;}
.featured-card2 .fc-vendor{font-size:12.5px;color:var(--text3);margin-top:4px;}
.featured-card2 .fc-flags{position:absolute;top:0;right:0;display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
.featured-card2 .fc-desc{font-size:13.5px;color:var(--text2);line-height:1.8;min-height:48px;margin-bottom:14px;position:relative;}
.featured-card2 .fc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;position:relative;}
.featured-card2 .fc-price{
  background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.9);border-radius:12px;
  padding:13px 16px;display:flex;gap:10px;position:relative;margin-bottom:16px;
}
.featured-card2 .fc-price .p{flex:1;}
.featured-card2 .fc-price .k{font-size:11.5px;color:var(--text3);margin-bottom:4px;}
.featured-card2 .fc-price .v{font-size:15px;font-weight:600;color:var(--text4);}
.featured-card2 .fc-price .v.free{color:var(--ok);}
.featured-card2 .fc-price .unit{font-size:11px;color:var(--text3);font-weight:400;margin-left:2px;}
.featured-card2 .fc-go{
  margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:13px;color:var(--primary);font-weight:600;position:relative;
}
.featured-card2 .fc-id{font-family:Consolas,monospace;font-size:11.5px;color:#2549a8;background:rgba(255,255,255,.8);border-radius:7px;padding:4px 10px;}

/* 筛选栏中的选中态补充 */
.filter-bar .select.sm{width:auto;min-width:130px;}

/* ---------- 等高卡片(账户设置) ---------- */
.eq-grid{align-items:stretch;}
.eq-card{display:flex;flex-direction:column;}
.eq-card .card-hd{flex-shrink:0;}
.eq-card .sec-foot{margin-top:auto;padding-top:20px;border-top:1px solid var(--border2);}

/* ---------- 账户设置 ---------- */
.profile-row{display:flex;align-items:center;gap:16px;padding:18px;border-radius:14px;background:linear-gradient(135deg,#eef4ff,#f8f6ff);border:1px solid #e2e6fb;margin-bottom:22px;}
.profile-avatar{width:60px;height:60px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--indigo),var(--primary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;box-shadow:0 6px 18px rgba(81,75,253,.25);}
.profile-name{font-size:17px;font-weight:600;color:var(--text4);letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sec-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--border2);}
.sec-row .sr-l{flex:1;min-width:0;}
.sec-row .sr-l .t{font-size:14.5px;font-weight:600;color:var(--text4);}
.sec-row .sr-l .d{font-size:12.5px;color:var(--text3);margin-top:5px;}
.sec-row .sr-v{font-size:13.5px;color:var(--text2);text-align:right;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sec-row .btn{flex-shrink:0;}

/* ---------- 站内信 ---------- */
.msg-layout{display:grid;grid-template-columns:1fr 400px;gap:22px;align-items:start;}
.msg-list{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;}
.msg-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px;}
.msg-toolbar .search{
  flex:1;min-width:220px;max-width:320px;display:flex;align-items:center;gap:9px;
  background:#fff;border:1px solid var(--border);border-radius:10px;padding:0 14px;transition:border-color .15s;
}
.msg-toolbar .search:focus-within{border-color:var(--primary);}
.msg-toolbar .search i{color:var(--text3);font-size:16px;}
.msg-toolbar .search .input{flex:1;border:none;background:none;box-shadow:none;padding:11px 0;height:auto;}
.msg-item{display:flex;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border2);cursor:pointer;transition:background .15s;position:relative;}
.msg-item:last-child{border-bottom:none;}
.msg-item:hover{background:var(--panel3);}
.msg-item.on{background:var(--primary-bg);}
.msg-item.on::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary);}
.msg-item .mi-ic{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--panel3);color:var(--text3);}
.msg-item .mi-ic.t-system{background:var(--primary-bg);color:var(--primary);}
.msg-item .mi-ic.t-bill{background:#fff4e8;color:#e67e00;}
.msg-item .mi-ic.t-product{background:var(--indigo-bg);color:var(--indigo);}
.msg-item .mi-ic.t-activity{background:var(--ok-bg);color:var(--ok);}
.msg-item .mi-bd{flex:1;min-width:0;}
.msg-item .mi-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.msg-item .mi-title{font-size:14.5px;font-weight:600;color:var(--text4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.msg-item.unread .mi-title::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--danger);margin-right:7px;vertical-align:middle;}
.msg-item .mi-time{font-size:12px;color:var(--text3);flex-shrink:0;}
.msg-item .mi-sum{font-size:13px;color:var(--text3);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.msg-item .mi-tags{display:flex;gap:6px;margin-top:9px;align-items:center;}
.msg-detail{background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px;position:sticky;top:calc(var(--header-h) + 24px);min-height:320px;}
.msg-detail .md-hd{border-bottom:1px solid var(--border2);padding-bottom:16px;margin-bottom:18px;}
.msg-detail .md-title{font-size:17.5px;font-weight:600;color:var(--text4);line-height:1.5;margin-bottom:10px;}
.msg-detail .md-meta{font-size:12.5px;color:var(--text3);display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.msg-detail .md-body{font-size:14px;color:var(--text2);line-height:2.05;}
.msg-detail .md-body p{margin-bottom:14px;}
.msg-detail .md-body b{color:var(--text4);}
.msg-detail .md-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--border2);display:flex;gap:10px;}
.msg-empty{text-align:center;padding:70px 20px;color:var(--text3);}
.msg-empty i{font-size:40px;color:var(--border);display:block;margin-bottom:14px;}

/* ---------- 邀请有礼(赠送算力) ---------- */
.inv-hero{
  position:relative;overflow:hidden;border-radius:20px;padding:32px 34px;margin-bottom:24px;
  background:linear-gradient(135deg,#eef3ff 0%,#f1efff 55%,#f6f9ff 100%);border:1px solid #e2e7f8;
}
.inv-hero::after{content:"";position:absolute;top:-120px;right:-70px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(81,75,253,.14),transparent 68%);pointer-events:none;}
.inv-hero .ih-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:center;position:relative;}
.inv-hero h2{font-size:24px;font-weight:600;color:var(--text4);letter-spacing:-.4px;margin-bottom:12px;}
.inv-hero .ih-lead{font-size:14.5px;color:var(--text2);line-height:1.95;margin-bottom:22px;}
.inv-hero .ih-gift{display:inline-flex;align-items:baseline;gap:6px;color:var(--primary);font-weight:600;}
.poster-card{
  border-radius:18px;padding:26px 24px;text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#eef3ff,#f2efff 60%,#f7faff);border:1px solid #e3e8f9;
}
.poster-card .pc-brand{display:flex;align-items:center;justify-content:center;gap:9px;font-size:16px;font-weight:600;color:var(--text4);}
.poster-card .pc-brand .logo{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--indigo),var(--primary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;}
/* 后台上传 Logo 后:海报卡里的图标块同样只做容器,去掉渐变底 */
.poster-card .pc-brand .logo.has-img{background:none;}
.poster-card .pc-brand .pc-sub{font-size:11.5px;font-weight:400;color:var(--text3);padding-left:9px;border-left:1px solid var(--border);}
.poster-card .pc-title{font-size:19px;font-weight:600;color:var(--text4);letter-spacing:-.3px;margin-top:20px;line-height:1.4;}
.poster-card .pc-sub2{font-size:13px;color:var(--text2);margin-top:8px;}
.poster-card .pc-code{font-size:13px;color:var(--text2);}
.poster-card .pc-code b{font-family:Consolas,monospace;color:var(--primary);letter-spacing:1px;}
.rule-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px;transition:all .18s;}
.rule-card:hover{border-color:rgba(41,114,233,.35);box-shadow:var(--shadow);}
.rule-card .rc-top{display:flex;align-items:center;gap:12px;}
.rule-card .rc-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;background:linear-gradient(135deg,var(--indigo),var(--primary));flex-shrink:0;}
.rule-card .rc-ic.g{background:linear-gradient(135deg,#22c55e,#16a34a);}
.rule-card .rc-ic.o{background:linear-gradient(135deg,#fbbf24,#f59e0b);}
.rule-card .rc-name{font-size:15.5px;font-weight:600;color:var(--text4);}
.rule-card .rc-step{font-size:12px;color:var(--text3);margin-top:3px;}
.rule-card .rc-num{font-size:26px;font-weight:600;color:var(--primary);letter-spacing:-.6px;line-height:1.1;}
.rule-card .rc-num small{font-size:13px;font-weight:500;color:var(--text3);letter-spacing:0;margin-left:4px;}
.rule-card .rc-desc{font-size:13px;color:var(--text2);line-height:1.85;}
.rule-card .rc-side{background:var(--panel3);border:1px solid var(--border2);border-radius:11px;padding:12px 14px;font-size:12.5px;color:var(--text2);line-height:1.8;}
.rule-card .rc-side b{color:var(--primary);}
.tier-row{display:flex;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--border2);}
.tier-row:last-child{border-bottom:none;padding-bottom:0;}
.tier-badge{width:64px;height:44px;border-radius:11px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel3);border:1px solid var(--border2);}
.tier-badge .n{font-size:15px;font-weight:600;color:var(--text4);line-height:1.1;}
.tier-badge .u{font-size:10px;color:var(--text3);}
.tier-row .tr-mid{flex:1;min-width:0;}
.tier-row .tr-t{font-size:14px;font-weight:600;color:var(--text4);display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.tier-row .tr-bar{height:8px;border-radius:99px;background:var(--panel3);overflow:hidden;}
.tier-row .tr-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--indigo),var(--primary));transition:width .5s;}
.tier-row .tr-note{font-size:12px;color:var(--text3);margin-top:7px;}
.tier-row .tr-prize{text-align:right;flex-shrink:0;}
.tier-row .tr-prize .v{font-size:17px;font-weight:600;color:var(--ok);}
.tier-row .tr-prize .s{font-size:11.5px;color:var(--text3);margin-top:3px;}
.tier-row.locked .tr-prize .v{color:var(--text3);}
.inv-tabs{display:flex;gap:26px;border-bottom:1px solid var(--border2);margin-bottom:20px;}
.inv-tabs .it{padding:0 0 13px;font-size:14.5px;color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.inv-tabs .it.on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}

/* ---------- 概览:接入进度(替代原「开通申请」) ---------- */
.notice-strip{
  display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:12px;
  background:var(--primary-bg);border:1px solid rgba(41,114,233,.22);color:var(--text2);
  font-size:13px;line-height:1.7;margin-bottom:18px;
}
.notice-strip > i{font-size:17px;color:var(--primary);flex-shrink:0;}
.notice-strip > div{flex:1;min-width:0;}
.notice-strip.warn{background:var(--warn-bg);border-color:rgba(245,158,11,.28);}
.notice-strip.warn > i{color:#e67e00;}
.notice-strip .btn{flex-shrink:0;}
.steps{display:flex;flex-direction:column;}
.steps .step{display:flex;align-items:flex-start;gap:13px;padding:13px 0;border-bottom:1px dashed var(--border2);}
.steps .step:last-child{border-bottom:none;padding-bottom:4px;}
.steps .st-ic{
  width:32px;height:32px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:16px;background:var(--panel3);border:1px solid var(--border2);color:var(--text3);
}
.steps .step.done .st-ic{background:var(--ok-bg);border-color:rgba(22,163,74,.28);color:var(--ok);}
.steps .step:not(.done) .st-ic{background:var(--primary-bg);border-color:rgba(41,114,233,.22);color:var(--primary);}
.steps .st-bd{flex:1;min-width:0;}
.steps .st-t{font-size:14px;font-weight:600;color:var(--text4);display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.steps .st-d{font-size:12.5px;color:var(--text3);line-height:1.75;}
.steps .step .btn{flex-shrink:0;align-self:center;}
.progress-foot{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border2);}
.progress-foot .pf-bar{flex:1;height:7px;border-radius:99px;background:var(--panel3);overflow:hidden;}
.progress-foot .pf-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--indigo),var(--primary));transition:width .5s;}
.progress-foot .muted{font-size:12.5px;white-space:nowrap;}

/* 页面级上下文状态条(调试台 / 各业务页顶部的轻量提示) */
.ctx-bar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 18px;border-radius:14px;
  background:#fff;border:1px solid var(--border);margin-bottom:22px;font-size:13px;color:var(--text2);
}
.ctx-bar .cb-item{display:flex;align-items:center;gap:7px;}
.ctx-bar .cb-item i{font-size:16px;color:var(--text3);}
.ctx-bar .cb-item b{color:var(--text4);font-weight:600;}
.ctx-bar .cb-sep{width:1px;height:16px;background:var(--border);}
.ctx-bar .cb-right{margin-left:auto;display:flex;gap:10px;align-items:center;}
.ctx-bar.warn{background:var(--warn-bg);border-color:rgba(245,158,11,.3);}
.ctx-bar.warn .cb-item i{color:#e67e00;}
.ctx-bar.warn .cb-sep{background:rgba(245,158,11,.3);}

/* ---------- 分页 ---------- */
.pagination{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:18px;font-size:13px;color:var(--text3);}
.pagination button{background:#fff;border:1px solid var(--border);color:var(--text2);border-radius:9px;padding:6px 13px;font-size:13px;transition:all .15s;}
.pagination button:hover{color:var(--primary);border-color:var(--primary);}
.pagination .cur{color:var(--primary);font-weight:600;}

/* ---------- 充值套餐 ---------- */
.pkg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.pkg-tile{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:26px 18px;text-align:center;cursor:pointer;transition:all .18s;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;}
.pkg-tile:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 10px 28px rgba(41,114,233,.12);}
.pkg-tile .pt-icon{width:46px;height:46px;border-radius:13px;background:var(--primary-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:22px;}
.pkg-tile .pt-amount{font-size:27px;font-weight:600;color:var(--text4);line-height:1;}
.pkg-tile .pt-power{font-size:13.5px;color:var(--text2);}
.pkg-tile .pt-note{font-size:12px;color:var(--text3);}
.pkg-tile .pt-bonus{font-size:12px;color:#e67e00;background:var(--warn-bg);border-radius:99px;padding:3px 12px;}
.pkg-tile.hot{border-color:var(--primary);background:linear-gradient(180deg,#f0f6ff,#fff);}
.pkg-tile.hot .pt-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#ff5a36,#f59e0b);color:#fff;font-size:11px;font-weight:600;padding:3px 14px;border-radius:99px;white-space:nowrap;box-shadow:0 2px 8px rgba(245,158,11,.4);}
.pkg-tile.custom .pt-icon{background:var(--indigo-bg);color:var(--indigo);}
.pkg-tile.custom .pt-amount{color:var(--text3);font-size:20px;}

/* ---------- 充值弹窗 ---------- */
.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pay-method{border:1.5px solid var(--border);border-radius:12px;padding:16px;text-align:center;cursor:pointer;font-size:14px;transition:all .15s;}
.pay-method.on{border-color:var(--primary);background:var(--primary-bg);}
.quick-amounts{display:flex;gap:8px;flex-wrap:wrap;}

/* ---------- 余额大卡 ---------- */
.balance-hero{
  background:linear-gradient(135deg,#1b1f3b,#232a5c 55%,#2f3a8f);border-radius:20px;
  padding:34px 36px;color:#fff;position:relative;overflow:hidden;
}
.balance-hero::before{content:"";position:absolute;top:-140px;right:-90px;width:400px;height:400px;background:radial-gradient(circle,rgba(81,75,253,.5),transparent 65%);}
.balance-hero .lbl{font-size:13.5px;color:rgba(255,255,255,.6);margin-bottom:12px;position:relative;}
.balance-hero .val{font-size:42px;font-weight:600;letter-spacing:-1px;position:relative;line-height:1.1;}
.balance-hero .val small{font-size:16px;font-weight:400;color:rgba(255,255,255,.6);margin-left:8px;}
.balance-hero .sub{font-size:13px;color:rgba(255,255,255,.55);margin-top:12px;position:relative;}
.balance-hero .actions{margin-top:24px;display:flex;gap:12px;position:relative;}
.balance-hero .hero-metrics{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
}
.balance-hero .hero-metrics .hm{display:flex;flex-direction:column;gap:7px;}
.balance-hero .hero-metrics .k{font-size:12px;color:rgba(255,255,255,.55);}
.balance-hero .hero-metrics .v{font-size:16px;font-weight:600;color:#fff;letter-spacing:-.3px;}
.balance-hero .btn-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff;}
.balance-hero .btn-ghost:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);color:#fff;}

/* ---------- 时间线 ---------- */
.timeline{position:relative;padding-left:26px;}
.timeline::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:var(--border);}
.tl-item{position:relative;padding-bottom:22px;}
.tl-item::before{content:"";position:absolute;left:-22px;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--border);}
.tl-item.done::before{background:var(--ok);border-color:var(--ok);}
.tl-item.active::before{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-bg);}
.tl-item .t{font-size:14px;font-weight:600;color:var(--text4);}
.tl-item .d{font-size:12.5px;color:var(--text3);margin-top:4px;line-height:1.7;}

/* ---------- 申请流程 ---------- */
.flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.flow-node{display:flex;flex-direction:column;align-items:center;gap:9px;padding:20px 30px;border:1px solid var(--border);border-radius:14px;background:#fff;min-width:150px;}
.flow-node .ic{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;background:var(--panel3);color:var(--text3);}
.flow-node.done .ic{background:var(--ok-bg);color:var(--ok);}
.flow-node.done{border-color:rgba(22,163,74,.35);}
.flow-node.active .ic{background:var(--primary-bg);color:var(--primary);animation:pulse 1.5s infinite;}
.flow-node.active{border-color:var(--primary);}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(41,114,233,.35);}50%{box-shadow:0 0 0 8px rgba(41,114,233,0);}}
.flow-node .t{font-size:13px;color:var(--text2);}
.flow-arrow{color:var(--text3);font-size:18px;}

/* ---------- 步骤卡(小) ---------- */
.step-mini{display:flex;gap:14px;align-items:flex-start;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--panel3);}
.step-mini .n{width:28px;height:28px;border-radius:9px;background:var(--primary);color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.step-mini .t{font-size:14.5px;font-weight:600;color:var(--text4);margin-bottom:5px;}
.step-mini .d{font-size:12.5px;color:var(--text3);line-height:1.7;}

@media (max-width:1200px){
  .play-grid{grid-template-columns:1fr;}
  .play-params,.play-result{height:auto;min-height:420px;}
  .pkg-grid{grid-template-columns:repeat(2,1fr);}
  .msg-layout{grid-template-columns:1fr;}
  .msg-detail{position:static;}
  .inv-hero .ih-grid{grid-template-columns:1fr;}
}
