:root{--bg: #07101c;--surface: #101d2f;--surface-deep: #0b1625;--line: #26384e;--text: #edf6ff;--muted: #9aadc1;--cyan: #58e3ff;--violet: #ad8cff;--green: #55e6ab}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}.center{min-height:100vh;display:grid;place-items:center}.login{min-height:100vh;padding:8vw;display:flex;align-items:center;justify-content:space-between;gap:60px;background:radial-gradient(circle at 15% 20%,#1a557143,transparent 32%),radial-gradient(circle at 85% 80%,#61488e25,transparent 30%),var(--bg)}.brand{color:var(--text);font-size:27px;font-weight:800;letter-spacing:4px}.login-copy h1.ant-typography{margin-top:72px;font-size:clamp(36px,4vw,64px);line-height:1.3;letter-spacing:-2px;color:var(--text)}.login-copy p{color:var(--muted);font-size:16px;line-height:1.9}.login-lines{margin-top:70px;font-size:10px;letter-spacing:3px;color:var(--cyan)}.login-card{width:400px;flex-shrink:0;padding:20px 12px;border:1px solid var(--line);background:linear-gradient(150deg,#132338,#0d1929);box-shadow:0 24px 70px #0005}.muted{color:var(--muted);font-size:12px;margin-top:22px}.shell{min-height:100vh;background:var(--bg)}.shell .ant-layout-sider{border-right:1px solid var(--line);background:#0a1421}.side-brand{padding:32px 24px 38px;font-size:23px}.side-brand span{font-size:10px;letter-spacing:1px;color:var(--cyan)}.nav-label{color:#71869b;font-size:12px;padding:0 24px 16px}.shell .ant-menu{border:0!important;padding:0 12px;background:transparent}.shell .ant-menu-item{height:48px;margin:5px 0;border:1px solid transparent;border-radius:12px;color:var(--muted)}.shell .ant-menu-item-selected{border-color:var(--line);color:var(--text);background:linear-gradient(90deg,#58e3ff1a,#58e3ff06);box-shadow:inset 3px 0 0 var(--cyan)}.shell .ant-btn-primary,.login .ant-btn-primary{border-color:#58e3ff;color:#06151e;background:linear-gradient(135deg,#72ebff,#32bddb);font-weight:700}.shell .ant-btn-primary:hover,.login .ant-btn-primary:hover{border-color:#8cf0ff;color:#06151e;background:linear-gradient(135deg,#9cf2ff,#58d4ec)}.sidebar-foot{position:absolute;bottom:28px;left:24px;font-size:12px;line-height:2.2;color:var(--muted)}.header{background:var(--surface-deep);height:auto;min-height:80px;padding:18px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);line-height:normal}.header .ant-select-selector{border-color:var(--line)!important;background:var(--surface)!important}.divider{color:#60758a;margin:0 4px}.content{padding:30px clamp(18px,3vw,48px) 60px;background:linear-gradient(#47749d08 1px,transparent 1px),linear-gradient(90deg,#47749d08 1px,transparent 1px),radial-gradient(circle at 75% 0,#2d9bc622,transparent 38%),var(--bg);background-size:42px 42px,42px 42px,auto,auto}.mode-alert{margin-bottom:26px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 30px}.page-title h2{margin:8px 0 12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--cyan)}@media(max-width:1000px){.header{flex-wrap:wrap;padding:16px}.content{padding:24px 18px}.page-title{align-items:flex-start;flex-direction:column}.login{padding:40px;gap:24px}.login-card{width:360px}}@media(max-width:720px){.login{justify-content:center}.login-copy{display:none}.login-card{width:100%;max-width:420px}.shell>.ant-layout-sider{display:none}}.mobile-nav{display:none;padding:16px 18px 0}@media(max-width:720px){.mobile-nav{display:block}}.project-list{display:flex;flex-direction:column;gap:24px}.project-card-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.project-card-identity{display:flex;align-items:center;gap:14px;min-width:0}.project-card-identity h4{margin:0;overflow-wrap:anywhere}.project-caption{color:var(--muted);font-size:12px;margin-top:6px}.dialog-project{margin-bottom:18px}@media(max-width:720px){.project-card-header{align-items:flex-start;flex-direction:column}}.access-sections{width:100%}.registry-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:4px 2px 16px;border-bottom:1px solid var(--line)}.registry-hero h1.ant-typography{margin:0 0 4px;color:var(--text);font-size:clamp(20px,2vw,25px);line-height:1.3}.registry-hero .ant-typography:not(h1){color:var(--muted);font-size:12px}.registry-hero-actions{display:flex;flex-wrap:wrap;gap:8px}.registry-hero-actions .ant-btn{height:34px;border-radius:8px}.registry-hero-actions .ant-btn-primary{color:#06151e;border-color:#58e3ff;background:linear-gradient(135deg,#72ebff,#32bddb);font-weight:700}.registry-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0 24px}.registry-stat{display:flex;flex-direction:column;gap:8px;min-height:126px;padding:20px 24px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#14263b,#0d1a2b);box-shadow:0 16px 36px #0002}.registry-stat span{color:var(--muted);font-size:13px}.registry-stat strong{color:var(--cyan);font-size:32px;line-height:1}.registry-stat small{color:#71869b}.registry-stat:first-child strong{color:var(--green)}.registry-stat:last-child strong{color:var(--violet)}.project-card{container-type:inline-size;padding:26px 28px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#122238,#0c192a);box-shadow:0 20px 48px #0003}.project-card-selected{border-color:#58e3ff55;box-shadow:0 0 0 1px #58e3ff18,0 20px 48px #0003}.project-card .ant-tag{margin-inline-end:0;border-color:#354a61;color:#b5c9d9;background:#17283b}.project-card .ant-tag-green,.server-connection .ant-tag-success{border-color:#55e6ab55;color:#9ae8ca;background:#55e6ab12}.server-connection .ant-tag-processing{border-color:#58e3ff55;color:var(--cyan);background:#58e3ff12}.project-card-header{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.project-icon{display:grid;place-items:center;width:54px;height:54px;flex:none;border-radius:12px;color:var(--cyan);font-size:25px;border:1px solid #58e3ff2a;background:#58e3ff12}.server-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1500px;gap:16px}@container (max-width: 1050px){.server-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 650px){.server-grid{grid-template-columns:minmax(0,1fr)}}.server-card{min-width:0;max-width:490px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#0d1a2b;transition:border-color .16s,box-shadow .16s,transform .16s}.server-card:hover{transform:translateY(-2px);border-color:#58e3ff66;box-shadow:0 12px 28px #0004}.server-card-selected{border-color:#58e3ff88;background:linear-gradient(145deg,#152d42,#0c1e30);box-shadow:inset 3px 0 0 var(--cyan),0 0 0 1px #58e3ff18}.server-card-heading,.server-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.server-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:11px;color:var(--cyan);border:1px solid #58e3ff26;background:#58e3ff14;font-size:18px}.server-card-name{flex:1;min-width:0}.server-card-name .ant-typography{display:block;font-size:10px;letter-spacing:1px}.server-card-name h5.ant-typography{margin:2px 0 0;color:var(--text);font-size:17px;letter-spacing:0}.server-card-address{display:flex;flex-direction:column;gap:7px;margin:16px 0;padding:12px 14px;border-radius:10px;border:1px solid #26384e99;background:#07131f;color:var(--muted);font-size:12px}.server-card-address code{color:#9bd3e5;font-size:12px;overflow-wrap:anywhere}.server-card-footer{min-height:38px}.server-card-heading+.server-card-footer{margin-top:16px}.server-connection{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.server-connection .ant-tag{margin-inline-end:0}.server-portal{min-height:100vh;color:#edf6ff;background:#07101c}.portal-header,.portal-header-start,.portal-header-end{display:flex;align-items:center}.portal-header{justify-content:space-between;flex-wrap:wrap;gap:12px 24px;min-height:72px;padding:12px 24px;border-bottom:1px solid #25364a;background:#0b1625}.portal-header-start,.portal-header-end{gap:12px}.portal-header-start{min-width:0}.portal-action.ant-btn{border-color:#2a3a4e;border-radius:10px;color:#d4e4f2;background:#111e30;box-shadow:none}.portal-action.ant-btn:hover{border-color:#58e3ff;color:#58e3ff;background:#152a3d}.portal-header-divider{width:1px;height:26px;margin:0 4px;background:#2a3a4e}.portal-brand{flex:none;color:#edf6ff;font-weight:800;letter-spacing:2px}.portal-brand span{color:#58e3ff;font-size:11px;letter-spacing:0}.portal-target{min-width:0;display:flex;flex-direction:column;gap:3px;padding-left:16px;border-left:1px solid #2a3a4e}.portal-target span{color:#8397ad;font-size:9px;letter-spacing:1.5px}.portal-target strong{overflow:hidden;color:#edf6ff;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.portal-target i{padding:0 4px;color:#60758a;font-style:normal}.portal-environment,.portal-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border:1px solid #2a3a4e;border-radius:999px;color:#a7bacd;background:#111e30;font-size:11px;white-space:nowrap}.portal-environment-pro{border-color:#914a59;color:#ff9ca9}.portal-status:before{content:"";width:6px;height:6px;margin-right:7px;border-radius:50%;background:#f4c972}.portal-status-ready:before{background:#55e6ab;box-shadow:0 0 8px #55e6ab}.portal-status-error:before{background:#ff7d91}.portal-user-name{color:#a7bacd;font-size:12px}.portal-content{padding:16px 24px}.server-portal .ant-empty-description{color:#a7bacd}.server-portal .gm-view .ant-card{border-color:#25364a;background:#111e30}.gm-view,.gm-view .ant-spin-nested-loading,.gm-view .ant-spin-container{width:100%}.gm-frame{display:block;width:100%;height:calc(100vh - 104px);min-height:500px;border:1px solid #25364a;border-radius:12px;background:#07101c}@media(max-width:800px){.registry-hero{align-items:flex-start;flex-direction:column;padding-bottom:14px}.portal-content{padding:12px 18px}.gm-frame{height:calc(100vh - 128px)}}@media(max-width:600px){.registry-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.registry-stat{min-height:105px;padding:15px 12px}.registry-stat strong{font-size:25px}.registry-stat small{display:none}.project-card{padding:20px 16px}.portal-header{padding:12px 18px}.portal-target,.portal-user-name{display:none}.portal-header-end{flex-wrap:wrap}.gm-frame{height:calc(100vh - 150px);min-height:420px}}
