:root{--bg:#0b1020;--panel:#151c2e;--panel2:#1d2740;--text:#e7edf7;--muted:#8ea0bd;--line:#2d3852;--gold:#d8a83f;--ok:#35c785;--bad:#ef5f6b;--blue:#5ca8ff}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}a{color:var(--gold);text-decoration:none}code{background:#0e1528;border:1px solid var(--line);padding:2px 6px;border-radius:6px;color:#f8d77a}.sidebar{position:fixed;left:0;top:0;bottom:0;width:240px;background:#0f1729;border-right:1px solid var(--line);padding:20px}.brand{font-size:18px;font-weight:700;color:#fff;margin-bottom:22px}.brand small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.sidebar nav a{display:block;padding:12px 14px;border-radius:10px;color:#cbd6ea;margin:4px 0}.sidebar nav a:hover{background:var(--panel2);color:#fff}.sidefoot{position:absolute;bottom:20px;left:20px;right:20px;color:var(--muted);font-size:13px}.main{margin-left:240px;padding:28px;min-height:100vh}h1{margin:0 0 18px;font-size:28px}h2{margin-top:28px}.cards{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:16px;margin-bottom:22px}.card{background:linear-gradient(160deg,var(--panel),#10182a);border:1px solid var(--line);border-radius:18px;padding:20px}.card b{display:block;font-size:34px;color:#fff}.card span{color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;margin:14px 0;flex-wrap:wrap}.btn,button{display:inline-block;background:linear-gradient(135deg,#d59b2d,#b87318);border:0;color:#fff;border-radius:10px;padding:10px 16px;cursor:pointer;font-weight:700}.btn.ghost,button.ghost{background:#22304d;color:#dbe7ff}input,select,textarea{width:100%;background:#0e1528;color:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:6px}textarea{height:100px}label{display:block;color:#cfdaee}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1100px}.wide{grid-column:1/3}.checkline{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);padding:12px;border-radius:12px}.checkline input{width:auto;margin:0}small,.muted{color:var(--muted)}table{border-collapse:separate;border-spacing:0;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:top}th{background:#10182a;color:#f7d879}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px}.badge-ok{background:rgba(53,199,133,.16);color:var(--ok)}.badge-bad{background:rgba(239,95,107,.16);color:var(--bad)}.badge-neutral{background:#24314d;color:#cbd6ea}.alert{padding:12px 14px;border-radius:12px;margin:12px 0}.alert.danger{background:rgba(239,95,107,.14);border:1px solid rgba(239,95,107,.35);color:#ffb7bd}.alert.success{background:rgba(53,199,133,.14);border:1px solid rgba(53,199,133,.35);color:#a4f2c9}.inline{display:inline-flex;gap:4px;margin-left:8px}.inline button{padding:5px 8px;font-size:12px;background:#263654}.login{display:grid;place-items:center;min-height:100vh}.loginbox{width:min(420px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:28px}.install{min-height:100vh;background:radial-gradient(circle at top,#1b2b4f,var(--bg))}.install-wrap{max-width:980px;margin:0 auto;padding:40px 16px}.install-card{background:rgba(15,23,41,.94);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 20px 80px rgba(0,0,0,.35)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px}.steps span{background:#111a2e;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;color:var(--muted)}.steps .on{background:rgba(216,168,63,.15);border-color:var(--gold);color:#ffe29a}.check .ok{color:var(--ok)}.check .bad{color:var(--bad)}@media(max-width:900px){.sidebar{position:static;width:auto}.main{margin-left:0}.cards{grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}.wide{grid-column:1}.steps{grid-template-columns:1fr 1fr}}@media(max-width:560px){.cards{grid-template-columns:1fr}.toolbar{display:block}.toolbar>*{margin:6px 0}.main{padding:16px}}

.cfg-section{background:linear-gradient(160deg,var(--panel),#10182a);border:1px solid var(--line);border-radius:18px;padding:18px;margin:8px 0}.cfg-section h2{margin:0 0 12px;color:#f7d879;font-size:18px}.cfg-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.cfg-grid textarea{min-height:90px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.sticky-actions{position:sticky;bottom:0;background:rgba(11,16,32,.92);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:12px;z-index:5}.formgrid{max-width:1500px}@media(max-width:1200px){.cfg-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.cfg-grid{grid-template-columns:1fr}}
.hidden{display:none!important}.mini-check{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--muted);font-size:12px}.mini-check input{width:auto;margin:0}.large-textarea{min-height:360px;font-family:ui-monospace,SFMono-Regular,Consolas,"Microsoft YaHei",monospace;line-height:1.5}.cfg-grid .wide{grid-column:1/-1}.loginbox .btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed}.cfg-section .toolbar{margin-top:12px}

.copy-wrap{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.copy-field{display:flex;align-items:center;gap:8px}.copy-field input{flex:1}.copy-btn{padding:5px 9px;font-size:12px;line-height:1;border-radius:8px;background:#263654;color:#dbe7ff;white-space:nowrap}.copy-btn.copy-ok{background:rgba(53,199,133,.22);color:#a4f2c9}.copy-btn.copy-fail{background:rgba(239,95,107,.22);color:#ffb7bd}

.field-help{display:block;margin-top:8px;line-height:1.55;color:var(--muted)}
.login-shell{width:min(1080px,94vw);display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:24px;align-items:stretch;padding:28px 0}
.login-shell>.loginbox{width:100%;align-self:stretch;display:flex;flex-direction:column;justify-content:center;box-shadow:0 24px 80px rgba(0,0,0,.26)}
.login-intro{position:relative;overflow:hidden;background:radial-gradient(circle at 10% 0%,rgba(92,168,255,.2),transparent 46%),linear-gradient(145deg,#17213a,#10182b);border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:0 24px 80px rgba(0,0,0,.26)}
.login-intro:after{content:"";position:absolute;right:-72px;bottom:-92px;width:240px;height:240px;border-radius:50%;border:42px solid rgba(216,168,63,.08)}
.login-intro h1{position:relative;z-index:1;font-size:34px;line-height:1.2;margin:12px 0 24px;color:#fff}
.login-intro ul{position:relative;z-index:1;margin:0;padding-left:22px;display:grid;gap:14px;color:#cbd6ea;line-height:1.7}
.login-intro li::marker{color:var(--gold)}
.login-kicker{position:relative;z-index:1;display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(216,168,63,.14);border:1px solid rgba(216,168,63,.32);color:#f8d77a;font-size:12px;font-weight:700;letter-spacing:.12em}
.login-intro-editor{min-height:180px;line-height:1.55}
@media(max-width:800px){.login-shell{grid-template-columns:1fr;padding:18px 0}.login-intro{padding:26px}.login-intro h1{font-size:28px}.login-shell>.loginbox{min-height:0}}

/* v3.79 statistics compatibility and aggregate dashboards */
.stats-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(520px,1.2fr);gap:16px;align-items:start}.table-scroll{overflow:auto;max-width:100%}.stats-user-list{display:grid;gap:12px}.stats-user-card,.stats-instance-card,.stats-delete-panel{background:linear-gradient(160deg,var(--panel),#10182a);border:1px solid var(--line);border-radius:16px;overflow:hidden}.stats-user-card>summary,.stats-instance-card>summary,.stats-delete-panel>summary{cursor:pointer;list-style:none;padding:16px 18px;display:flex;gap:18px;align-items:center;justify-content:space-between}.stats-user-card>summary::-webkit-details-marker,.stats-instance-card>summary::-webkit-details-marker,.stats-delete-panel>summary::-webkit-details-marker{display:none}.stats-user-card>summary:before,.stats-instance-card>summary:before,.stats-delete-panel>summary:before{content:"＋";font-weight:900;color:var(--gold);font-size:18px}.stats-user-card[open]>summary:before,.stats-instance-card[open]>summary:before,.stats-delete-panel[open]>summary:before{content:"－"}.stats-summary-main{display:flex;flex-direction:column;gap:6px;min-width:220px}.stats-summary-main small{color:var(--muted)}.stats-summary-metrics{display:flex;gap:14px;align-items:center;justify-content:flex-end;flex-wrap:wrap;color:var(--muted);font-size:12px}.stats-summary-metrics b{color:var(--text)}.stats-lazy-body{border-top:1px solid var(--line);padding:16px}.stats-loading{padding:18px;color:var(--muted);text-align:center}.stats-license-tools{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:12px}.stats-instance-card{margin:10px 0;background:#11192b}.stats-instance-detail{display:grid;gap:14px}.stats-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.stats-kpi-grid>div{background:#0e1528;border:1px solid var(--line);border-radius:12px;padding:12px}.stats-kpi-grid span{display:block;color:var(--muted);font-size:12px}.stats-kpi-grid b{display:block;margin-top:6px;font-size:19px}.stats-chart-wrap{overflow:auto;background:#0e1528;border:1px solid var(--line);border-radius:12px;padding:10px}.stats-chart{width:100%;min-width:540px;display:block}.stats-chart text{fill:var(--muted);font-size:11px}.chart-axis{stroke:#52617e;stroke-width:1}.chart-balance{fill:none;stroke:#d8a83f;stroke-width:2}.chart-equity{fill:none;stroke:#5ca8ff;stroke-width:2;stroke-dasharray:7 5}.chart-legend{display:flex;gap:18px;color:var(--muted);font-size:12px;padding:6px 6px 0}.stats-delete-panel{margin-top:14px;border-color:rgba(239,95,107,.35)}.stats-delete-panel>summary{color:#ffb7bd}.stats-delete-panel>div,.stats-delete-panel>form{margin:0 16px 16px}.stats-delete-grid{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:12px}.stats-delete-grid form{background:#0e1528;border:1px solid var(--line);border-radius:12px;padding:12px}.stats-instance-detail details:not(.stats-delete-panel){background:#0e1528;border:1px solid var(--line);border-radius:12px;padding:10px}.stats-instance-detail details:not(.stats-delete-panel)>summary{cursor:pointer;color:#f7d879;font-weight:700;padding:5px}.stats-instance-detail details:not(.stats-delete-panel)>div{margin-top:10px}
@media(max-width:1100px){.stats-layout{grid-template-columns:1fr}.stats-kpi-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.stats-summary-metrics{justify-content:flex-start}.stats-user-card>summary,.stats-instance-card>summary{align-items:flex-start;flex-wrap:wrap}.stats-delete-grid{grid-template-columns:1fr}}
@media(max-width:560px){.stats-kpi-grid{grid-template-columns:1fr}.stats-license-tools{align-items:flex-start;flex-direction:column}.stats-user-card>summary,.stats-instance-card>summary{padding:12px}.stats-lazy-body{padding:10px}}

/* v3.79 isolated normal/VIP groups and login announcement */
.license-group-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:14px}.license-group-heading h2{margin-bottom:5px}.license-group-heading p{margin:0}.license-group-vip{border-color:rgba(216,168,63,.5);box-shadow:inset 0 1px 0 rgba(255,226,154,.08)}.license-group-normal{border-color:var(--line)}.license-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.license-actions .inline{margin:0;flex-wrap:wrap}.stats-error-inline{display:inline-block;margin-top:4px;color:#ffb7bd;font-size:12px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-announcement-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(2,6,16,.76);backdrop-filter:blur(8px);animation:dgcNoticeIn .18s ease-out}.login-announcement-backdrop.is-closing{opacity:0;transition:opacity .16s ease}.login-announcement-panel{position:relative;width:min(620px,94vw);max-height:min(78vh,760px);overflow:auto;background:radial-gradient(circle at 8% 0%,rgba(216,168,63,.16),transparent 42%),linear-gradient(155deg,#18233d,#0f1729);border:1px solid rgba(216,168,63,.48);border-radius:22px;padding:30px;box-shadow:0 30px 120px rgba(0,0,0,.58)}.login-announcement-panel h2{margin:12px 42px 16px 0;color:#fff;font-size:28px}.login-announcement-content{color:#dbe7ff;line-height:1.8;overflow-wrap:anywhere}.login-announcement-close{position:absolute;right:16px;top:14px;width:38px;height:38px;padding:0;border-radius:50%;background:#263654;color:#fff;font-size:24px;line-height:1}.login-announcement-panel .toolbar{justify-content:flex-end;margin:24px 0 0}@keyframes dgcNoticeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:700px){.license-group-heading{align-items:flex-start;flex-direction:column}.login-announcement-panel{padding:24px 20px}.login-announcement-panel h2{font-size:23px}}
