:root{color-scheme:light;--ink:#172033;--muted:#657187;--accent:#285deb;--line:#e3e8f0;--paper:#f5f7fb;--surface:#fff;--sidebar:#101827;--radius:10px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
aside{position:fixed;inset:0 auto 0 0;width:240px;padding:32px 18px 24px;background:var(--sidebar);color:#e5ecfa;display:flex;flex-direction:column;border-right:1px solid #202a3c}
.brand{display:flex;align-items:center;gap:12px;padding:0 12px;color:inherit;text-decoration:none}
.brand-mark{width:40px;height:44px;display:grid;place-items:center;color:#7ba5ff}
.brand-mark svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.brand b{display:block;font-size:25px;font-weight:650;line-height:1.1;letter-spacing:2px}
.brand small{display:block;margin-top:6px;font-size:10px;letter-spacing:.5px;color:#9ba9c1}
.navlabel{color:#6e7e99;font:10px/1.5 Consolas,monospace;letter-spacing:1.7px;margin:42px 16px 14px}
nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:11px 14px;border:1px solid transparent;border-radius:7px;color:#aab6cc;text-decoration:none;margin-bottom:6px;font-size:13px;transition:background .15s,color .15s}
nav a svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
nav a:hover{background:#1b263b;color:#fff}
nav a.active{background:#1d3157;border-color:#2a426c;color:#d7e6ff}
nav a.active svg{color:#82acff}
.aside-bottom{margin-top:auto;padding:24px 14px 0;font-size:11px;color:#a5b2c8}
.environment-label{display:flex;align-items:center;gap:8px}
.aside-bottom i{background:#6d94e8;width:6px;height:6px;border-radius:50%}
.aside-bottom small{display:block;color:#798aa4;font-size:10px;margin-top:7px}
.platform-label{display:block;font:9px/1.5 Consolas,monospace;letter-spacing:1.2px;color:#596b88;padding-top:26px}
main{margin-left:240px}
header{height:72px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:var(--surface)}
#breadcrumb{font-size:13px;font-weight:500}
header>div{display:flex;align-items:center;gap:20px}
#identity{font-size:12px;color:var(--muted)}
section{padding:34px 40px 40px;min-height:calc(100vh - 129px);max-width:1500px;margin:auto}
h1{font-size:30px;font-weight:620;letter-spacing:-.6px;line-height:1.4;margin:8px 0 10px}
h2{font-size:19px;font-weight:600;line-height:1.5;margin:0 0 14px}
h3{margin:0 0 8px;font-size:16px;font-weight:600}
p{color:var(--muted);margin:6px 0 20px;line-height:1.85}
.eyebrow{color:#758198;font:10px/1.5 Consolas,monospace;letter-spacing:1.7px}
.hero{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:32px;display:flex;align-items:center;justify-content:space-between;gap:26px;margin:26px 0 22px;overflow:hidden}
.hero>div:first-child{z-index:1;flex:1;min-width:0}
.hero h2{font-size:24px;letter-spacing:-.4px}
.hero p{max-width:530px;font-size:13px}
.hero .graphic{width:240px;flex:0 0 240px;align-self:stretch;display:grid;align-items:center;position:relative}
.hero .graphic::before{content:"";position:absolute;inset:-32px -32px -32px 0;background-image:linear-gradient(#edf1f8 1px,transparent 1px),linear-gradient(90deg,#edf1f8 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(90deg,transparent,#000);opacity:.8}
.graphic svg{position:relative;width:100%;height:180px}
.graphic .wire{fill:none;stroke:#b4c8ef;stroke-width:1.3}
.graphic .node{fill:#fff;stroke:#b8caea;stroke-width:1}
.graphic .chip{fill:#f6f9ff;stroke:#7fa5ed;stroke-width:1.5}
.graphic text{font:10px Consolas,monospace;fill:#637898;letter-spacing:.7px}
.graphic .chip-label{fill:#285deb;font-size:17px;font-weight:600;letter-spacing:1.5px}
.pill{display:inline-flex;align-items:center;gap:7px;background:#f0f5ff;color:#4367ad;border:1px solid #dce7fb;padding:3px 9px;border-radius:4px;font-size:10px}
.pill.pending{background:#fff9ec;color:#896a24;border-color:#eee1bf}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0 28px}
.card{padding:24px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.card .value{display:block;font-size:32px;line-height:1.3;margin:14px 0 9px;font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:-.6px}
.card small{color:var(--muted);font-size:11px}
.stats .card{font-size:12px;color:#66748a;padding:22px}
.stats .value{color:#192741}
.grid:not(.stats)>.card p{font-size:12px;min-height:44px;margin-bottom:20px}
.grid:not(.stats)>.card>.button{background:#f3f6fb;color:#315dba;border:1px solid #e4eaf4;padding:7px 12px;font-size:12px}
.rowtitle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 16px}
.rowtitle h2{margin:0}
.empty{padding:48px 28px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:20px 0}
.empty b{display:block;font-size:17px;font-weight:550}
.empty p{font-size:13px;max-width:660px;margin:10px auto 22px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.steps{padding-left:20px;color:var(--muted)}
.steps li{padding:8px 0}
button,.button{border:1px solid transparent;background:var(--accent);color:#fff;border-radius:6px;min-height:40px;padding:9px 16px;font:inherit;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s,border-color .15s}
button:hover,.button:hover{background:#194cd0}
.quiet{background:#fff;color:#43516a;border-color:#dce3ee}
.quiet:hover{background:#f4f7fc;border-color:#b9c8e5}
.hero .quiet{margin-left:5px}
button.danger{background:#fff;color:#b84945;border-color:#eddbdc}
button.danger:hover{background:#fff5f5}
button:disabled{opacity:.5;cursor:not-allowed}
a:focus-visible,button:focus-visible{outline:3px solid #9fbbfc;outline-offset:3px}
label{display:block;font-size:12px;font-weight:500;margin:16px 0 4px;color:#4d5a70}
input,select,textarea{display:block;width:100%;border:1px solid #dbe2ed;border-radius:6px;background:#fff;padding:11px 12px;font:14px system-ui;color:var(--ink);margin-top:7px}
input::placeholder,textarea::placeholder{color:#8995a8}
input:focus,textarea:focus,select:focus{outline:none;border-color:#7096ed;box-shadow:0 0 0 3px #e9effc}
textarea{min-height:108px;resize:vertical}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:22px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}
th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}
th{background:#f7f9fc;color:#67748b;font-weight:500}
tbody tr:last-child td{border-bottom:0}
td.wrap{white-space:normal;min-width:200px;max-width:420px;overflow-wrap:anywhere}
.notice{background:#fcf9f1;border:1px solid #ebe3cf;border-left:3px solid #c3ab72;border-radius:5px;padding:13px 18px;color:#78683f;margin:20px 0;font-size:12px}
.mono,pre{font:12px/1.8 Consolas,monospace}
pre{background:#131e33;color:#bfd0ee;padding:22px;border:1px solid #26334c;border-radius:8px;overflow:auto}
code{overflow-wrap:anywhere}
#message{padding:12px 40px;background:#edf3ff;border-bottom:1px solid #d8e4fa;color:#315b9b;overflow-wrap:anywhere}
#message.error{background:#fff0ee;color:#ac4943;border-color:#f1d6d1}
dialog{border:1px solid var(--line);border-radius:12px;padding:32px;width:min(460px,90vw);color:var(--ink);box-shadow:0 24px 90px #10182726}
dialog::backdrop{background:#10182766}
dialog h2{margin-top:14px}
dialog p{font-size:12px}
footer{padding:18px 40px;color:#8994a7;font-size:10px;border-top:1px solid var(--line)}
footer span{float:right}
.secret{padding:16px;background:#f0f5ff;border:1px solid #d9e5fa;border-radius:6px;margin:16px 0;overflow-wrap:anywhere}
.admin-only{display:none}
body.admin nav a.admin-only{display:flex}
.resource-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}
.resource-spec{font-size:30px;font-weight:550;letter-spacing:-.7px}
.resource-meta{color:var(--muted);font-size:12px;margin:16px 0}
.hint{font-size:12px;color:var(--muted)}
@media(max-width:1200px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero .graphic{width:190px;flex-basis:190px}section{padding:30px}header{padding:0 30px}}
@media(max-width:1000px){aside{width:210px;padding-left:12px;padding-right:12px}main{margin-left:210px}.cols{grid-template-columns:minmax(0,1fr)}.grid:not(.stats){grid-template-columns:minmax(0,1fr)}.hero .graphic{display:none}h1{font-size:27px}}
@media(max-width:700px){aside{position:static;width:auto;padding:20px 16px 12px}.brand{padding:0 4px;gap:9px}.brand b{font-size:22px}.brand-mark{width:31px;height:37px}.brand-mark svg{width:29px;height:29px}.navlabel,.aside-bottom{display:none}nav{display:flex;overflow:auto;gap:6px;margin-top:20px;scrollbar-width:thin;scrollbar-color:#384f70 transparent;padding-bottom:3px}nav a{flex:none;white-space:nowrap;padding:8px 10px;gap:7px;font-size:12px;min-height:36px;margin:0}nav a svg{width:14px;height:14px}main{margin:0}header{height:60px;padding:0 20px}header>div{gap:8px}#identity{display:none}section{padding:24px 20px 32px}.eyebrow{font-size:9px;letter-spacing:1.3px}h1{font-size:25px;line-height:1.5;letter-spacing:-.4px}section>p{font-size:12px}.hero{padding:24px 22px;margin-top:22px}.hero h2{font-size:21px}.hero .button{font-size:12px;padding:8px 12px}.hero .quiet{margin-left:0}.stats{gap:12px}.stats .card{padding:17px 15px;font-size:11px}.stats .value{font-size:26px;margin:12px 0 8px}.stats .card small{font-size:10px;display:block}.card{padding:22px}.rowtitle{align-items:flex-start}footer{padding:18px 20px;line-height:1.9}footer span{float:none;display:block}#message{padding:12px 20px}.empty{padding:32px 20px}}
@media(max-width:360px){.stats{grid-template-columns:minmax(0,1fr)}.hero .button{width:100%;margin-top:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* A consistent console identity, distinct from the public website. */
:root{--accent:#2865e8;--paper:#f3f6fb;--sidebar:#0b1528;--radius:12px}
aside{background:radial-gradient(ellipse at 0 0,#19426366,transparent 65%),#0b1528;border-right:1px solid #263950}
.brand-mark{color:#66e6dc}.brand small{color:#99b4cf}
nav a.active{background:linear-gradient(100deg,#164a68,#1c355e);border-color:#3e6b8755;color:#e4fcff}
.customer-portal .navlabel::after{content:" / 企业控制台";color:#91a9c7}
.staff-portal .navlabel::after{content:" / 运营管理";color:#91a9c7}
header{background:#ffffffec;backdrop-filter:blur(18px)}
.hero{background:radial-gradient(ellipse at 100% 0,#e3f6fc,transparent 65%),#fff;border-color:#d8e5f1}
.hero .pill{color:#227894;background:#eaf8fb;border-color:#cce9ef}
.graphic .chip{fill:#e9f9fc;stroke:#54bac5}.graphic .wire{stroke:#86bccb}.graphic .chip-label{fill:#247487}
.customer-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
footer a{color:#52799d;text-decoration:none}footer a:hover{text-decoration:underline}
.card{box-shadow:0 3px 14px #213d6903}
@media(max-width:700px){.customer-stats{grid-template-columns:minmax(0,1fr)}.customer-portal .navlabel::after{content:none}}
