/* 生态矩阵页专属样式：令牌与基础组件来自 inner.css，这里只补矩阵/入口/账号三块 */

/* ---------- 工具条 ---------- */
.eco-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px}
.eco-tabs{display:flex;flex-wrap:wrap;gap:8px}
.eco-tab{height:38px;padding:0 17px;border-radius:999px;border:1px solid var(--line);background:transparent;color:rgba(255,255,255,.66);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .3s var(--ease)}
.eco-tab:hover{border-color:rgba(255,255,255,.4);color:#fff}
.eco-tab.is-on{background:var(--lime);border-color:var(--lime);color:var(--ink);font-weight:650}
.eco-tab i{font-style:normal;font-family:"Space Grotesk",sans-serif;font-size:11px;opacity:.62}
.eco-tab.is-on i{opacity:.72}
.eco-search{margin-left:auto;position:relative;display:flex;align-items:center}
.eco-search input{height:38px;width:230px;padding:0 34px 0 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:#fff;font-size:12.5px;font-family:inherit;transition:border-color .3s,width .35s var(--ease)}
.eco-search input::placeholder{color:rgba(255,255,255,.34)}
.eco-search input:focus{outline:none;border-color:rgba(200,255,77,.5);width:270px}
.eco-search span{position:absolute;right:13px;font-size:12px;color:rgba(255,255,255,.34);pointer-events:none}

.eco-dims{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.02);padding:6px 20px;margin-bottom:24px}
.eco-dim{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:start;padding:12px 0;border-bottom:1px dashed var(--line)}
.eco-dim:last-child{border-bottom:0}
.eco-dim>span{font-family:"Space Grotesk",sans-serif;font-size:10.5px;letter-spacing:.18em;color:rgba(255,255,255,.4);padding-top:9px}
.eco-chips{display:flex;flex-wrap:wrap;gap:8px}
.eco-chips button{height:30px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:rgba(255,255,255,.6);font-size:11.5px;cursor:pointer;transition:all .3s var(--ease)}
.eco-chips button:hover{border-color:rgba(255,255,255,.38);color:#fff}
.eco-chips button.is-on{border-color:var(--cyan);color:var(--cyan);background:rgba(56,232,255,.08)}

.eco-count{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;margin:0 0 18px;font-size:12.5px;color:rgba(255,255,255,.55)}
.eco-count b{font-family:"Space Grotesk",sans-serif;font-size:26px;color:var(--lime);letter-spacing:.02em}
.eco-count button{margin-left:auto;height:32px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:transparent;color:rgba(255,255,255,.7);font-size:12px;cursor:pointer;transition:all .3s var(--ease)}
.eco-count button:hover{border-color:var(--lime);color:var(--lime)}

/* ---------- 入口卡 ---------- */
.eco-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.eco-grid[hidden]{display:none}
.eco-card{--c:var(--lime);position:relative;display:flex;flex-direction:column;gap:11px;padding:20px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.025);overflow:hidden;transition:transform .5s var(--ease),border-color .4s,background .4s}
.eco-card::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;pointer-events:none;background:radial-gradient(340px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--c) 13%,transparent),transparent 62%)}
.eco-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--c);opacity:.5;transition:opacity .4s}
.eco-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c) 40%,transparent);background:rgba(255,255,255,.04)}
.eco-card:hover::before{opacity:1}
.eco-card:hover::after{opacity:1}
.eco-card[hidden]{display:none}
.eco-card--wx{--c:var(--lime)}
.eco-card--ali{--c:var(--cyan)}
.eco-card--dy{--c:var(--coral)}

.eco-card__top{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.eco-plat{height:22px;display:inline-flex;align-items:center;padding:0 9px;border-radius:6px;font-size:10.5px;font-weight:650;letter-spacing:.04em;color:var(--ink);background:var(--c)}
.eco-type{height:22px;display:inline-flex;align-items:center;padding:0 9px;border-radius:6px;border:1px solid color-mix(in srgb,var(--c) 42%,transparent);color:var(--c);font-size:10.5px;letter-spacing:.04em;background:color-mix(in srgb,var(--c) 7%,transparent)}
.eco-state{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.03em;white-space:nowrap}
.eco-state::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.eco-state--live{color:var(--cyan)}
.eco-state--built{color:var(--lime)}
.eco-state--demo{color:var(--gold)}
.eco-state--todo{color:rgba(255,255,255,.42)}

.eco-card h3{position:relative;font-size:18px;font-weight:650;letter-spacing:-.01em;line-height:1.3}
.eco-card h3 small{display:block;margin-top:5px;font-family:"Space Grotesk",sans-serif;font-size:9.5px;letter-spacing:.16em;color:rgba(255,255,255,.34);font-weight:400}
.eco-card>p{position:relative;font-size:12px;line-height:1.8;color:var(--muted)}
.eco-meta{position:relative;display:grid;gap:7px;padding:12px 0;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.eco-meta>div{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:baseline}
.eco-meta dt{font-size:10.5px;letter-spacing:.06em;color:rgba(255,255,255,.36)}
.eco-meta dd{font-size:11px;line-height:1.65;color:rgba(255,255,255,.72);overflow-wrap:anywhere}
.eco-meta dd code{font-family:"SFMono-Regular",Consolas,monospace;font-size:10.5px;color:var(--gold)}
.eco-links{position:relative;margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}
.eco-link{flex:1;min-width:104px;height:33px;padding:0 11px;border-radius:9px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:rgba(255,255,255,.78);text-decoration:none;transition:all .3s var(--ease)}
.eco-link:hover{border-color:var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 8%,transparent)}
.eco-link span{font-family:"Space Grotesk",sans-serif;font-size:10px;opacity:.7}
.eco-link--main{background:color-mix(in srgb,var(--c) 14%,transparent);border-color:color-mix(in srgb,var(--c) 45%,transparent);color:var(--c);font-weight:600}
.eco-note{position:relative;font-size:10.5px;line-height:1.7;color:rgba(255,255,255,.4)}
.eco-note b{color:var(--gold);font-weight:500}

.eco-empty{padding:56px 24px;text-align:center;border:1px dashed var(--line);border-radius:18px;color:rgba(255,255,255,.5);font-size:13.5px}
.eco-empty button{margin-top:16px;height:34px;padding:0 18px;border-radius:999px;border:1px solid var(--lime);background:transparent;color:var(--lime);font-size:12.5px;cursor:pointer}
.eco-empty[hidden]{display:none}

/* ---------- 后台入口 ---------- */
.console-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03);margin-bottom:18px}
.console-bar label{font-size:11.5px;color:rgba(255,255,255,.55);letter-spacing:.04em}
.console-bar input{flex:1;min-width:220px;height:36px;padding:0 13px;border-radius:9px;border:1px solid var(--line);background:rgba(5,7,13,.6);color:#fff;font-family:"SFMono-Regular",Consolas,monospace;font-size:12px}
.console-bar input:focus{outline:none;border-color:rgba(56,232,255,.5)}
.console-bar button{height:36px;padding:0 16px;border-radius:9px;border:1px solid var(--line);background:transparent;color:rgba(255,255,255,.8);font-size:12px;cursor:pointer;transition:all .3s var(--ease);white-space:nowrap}
.console-bar button:hover{border-color:var(--lime);color:var(--lime)}
.console-bar .is-main{background:var(--lime);border-color:var(--lime);color:var(--ink);font-weight:650}
.console-bar .is-main:hover{background:#d9ff7a;border-color:#d9ff7a;color:var(--ink)}
.console-hint{font-size:11.5px;line-height:1.8;color:var(--faint);margin-bottom:18px}
.console-hint b{color:rgba(255,255,255,.72);font-weight:500}
.console-hint code{font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;color:var(--gold)}

.console-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.console-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:15px 17px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.02);transition:border-color .35s,background .35s}
.console-item:hover{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.035)}
.console-item__name{min-width:112px}
.console-item__name b{display:block;font-size:13.5px;font-weight:650}
.console-item__name span{display:block;margin-top:3px;font-family:"Space Grotesk",sans-serif;font-size:9.5px;letter-spacing:.14em;color:rgba(255,255,255,.34)}
.console-item__url{flex:1;min-width:180px;font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;color:rgba(255,255,255,.6);word-break:break-all}
.console-item__acts{display:flex;gap:7px;margin-left:auto}
.console-item__acts a,.console-item__acts button{height:31px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:transparent;color:rgba(255,255,255,.78);font-size:11.5px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:all .3s var(--ease);white-space:nowrap}
.console-item__acts a:hover,.console-item__acts button:hover{border-color:var(--lime);color:var(--lime)}
.console-item__acts .is-main{background:rgba(200,255,77,.14);border-color:rgba(200,255,77,.45);color:var(--lime);font-weight:600}
.probe{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.03em;color:rgba(255,255,255,.4);white-space:nowrap}
.probe::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.probe.is-ok{color:var(--lime)}
.probe.is-bad{color:var(--coral)}
.probe.is-busy{color:var(--gold)}
.probe.is-busy::before{animation:probePulse 1s infinite}
@keyframes probePulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ---------- 统一账号 ---------- */
.acct-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:26px}
.acct-step{position:relative;padding:20px 18px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.025);transition:transform .45s var(--ease),border-color .35s}
.acct-step:hover{transform:translateY(-4px);border-color:rgba(56,232,255,.34)}
.acct-step>b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(56,232,255,.42);background:rgba(56,232,255,.08);font-family:"Space Grotesk",sans-serif;font-size:12px;font-weight:500;color:var(--cyan)}
.acct-step h4{margin-top:13px;font-size:14px;font-weight:650}
.acct-step p{margin-top:7px;font-size:11.5px;line-height:1.8;color:var(--faint)}
.acct-step::after{content:"→";position:absolute;right:-11px;top:50%;transform:translateY(-50%);z-index:2;font-family:"Space Grotesk",sans-serif;font-size:13px;color:rgba(255,255,255,.28)}
.acct-step:last-child::after{display:none}

.acct-table{width:100%;border-collapse:collapse;font-size:12px}
.acct-table th{text-align:left;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.14);font-family:"Space Grotesk",sans-serif;font-size:9.5px;letter-spacing:.14em;color:var(--faint);font-weight:500;white-space:nowrap}
.acct-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06);color:var(--muted);vertical-align:top;line-height:1.75}
.acct-table td b{color:#fff;font-weight:600;font-size:12.5px}
.acct-table tr:hover td{background:rgba(255,255,255,.02)}
.acct-table code{font-family:"SFMono-Regular",Consolas,monospace;font-size:10.5px;color:var(--gold)}
.acct-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.02)}
.acct-scroll .acct-table{min-width:720px}

.acct-note{margin-top:18px;padding:17px 19px;border:1px solid rgba(232,194,122,.3);border-left:2px solid var(--gold);border-radius:13px;background:rgba(232,194,122,.05);font-size:12px;line-height:1.9;color:rgba(255,255,255,.72)}
.acct-note b{color:var(--gold);font-weight:600}
.acct-note code{font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;color:rgba(255,255,255,.8)}

/* ---------- 内容号 ---------- */
.chan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.chan{--c:var(--lime);position:relative;padding:22px;border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.025);overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.chan::before{content:"";position:absolute;right:-18%;top:-24%;width:64%;aspect-ratio:1;border-radius:50%;background:var(--c);filter:blur(54px);opacity:.14;transition:opacity .5s}
.chan:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c) 38%,transparent)}
.chan:hover::before{opacity:.24}
.chan--video{--c:var(--coral)}
.chan--service{--c:var(--cyan)}
.chan__ico{position:relative;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--c) 42%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);color:var(--c);font-size:17px}
.chan h3{position:relative;margin-top:15px;font-size:17px;font-weight:650}
.chan h3 small{display:block;margin-top:5px;font-family:"Space Grotesk",sans-serif;font-size:9.5px;letter-spacing:.16em;color:rgba(255,255,255,.34);font-weight:400}
.chan p{position:relative;margin-top:10px;font-size:12px;line-height:1.85;color:var(--muted)}
.chan__row{position:relative;margin-top:15px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.chan__row a{height:32px;padding:0 13px;border-radius:9px;border:1px solid var(--line);display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:rgba(255,255,255,.78);text-decoration:none;transition:all .3s var(--ease)}
.chan__row a:hover{border-color:var(--c);color:var(--c)}

/* ---------- 轻提示 ---------- */
.eco-toast{position:fixed;left:50%;bottom:34px;z-index:130;transform:translate(-50%,14px);max-width:min(560px,88vw);padding:12px 20px;border-radius:12px;border:1px solid rgba(200,255,77,.4);background:rgba(5,7,13,.94);backdrop-filter:blur(12px);color:#fff;font-size:12.5px;line-height:1.7;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .35s var(--ease)}
.eco-toast.is-on{opacity:1;transform:translate(-50%,0)}
.eco-toast.is-bad{border-color:rgba(255,107,90,.5)}

/* ---------- 响应式 ---------- */
@media (max-width:1100px){
 .eco-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .acct-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
 .acct-step:nth-child(2)::after{display:none}
 .chan-grid{grid-template-columns:1fr}
}
@media (max-width:960px){
 .console-grid{grid-template-columns:1fr}
 .eco-search{margin-left:0;width:100%}
 .eco-search input,.eco-search input:focus{width:100%}
}
@media (max-width:720px){
 .eco-grid{grid-template-columns:1fr}
 .eco-dim{grid-template-columns:1fr;gap:7px}
 .eco-dim>span{padding-top:0}
 .eco-dims{padding:6px 15px}
 .acct-flow{grid-template-columns:1fr}
 .acct-step::after{display:none}
 .console-item__acts{margin-left:0;width:100%}
 .console-item__acts a,.console-item__acts button{flex:1;justify-content:center}
 .eco-state{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
 .probe.is-busy::before{animation:none}
}