*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:#eef3f9;color:#142033}button,input,select,textarea{font:inherit}button{cursor:pointer}
:root{--nav:#182437;--nav2:#101a2a;--blue:#2878e5;--cyan:#21b9e8;--green:#22b573;--red:#e45468;--line:#d7e0eb;--muted:#708096;--card:#fff;--bg:#eef3f9}
.boot{height:100vh;display:flex;gap:12px;align-items:center;justify-content:center;background:#0b1220;color:white}.boot .mark,.brandmark{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;font-weight:900}.boot span{color:#8da1bb}
.topbar{height:58px;background:var(--nav);color:#fff;display:flex;align-items:center;padding:0 24px;gap:28px;position:sticky;top:0;z-index:30;box-shadow:0 1px 0 #26364d}.brand{display:flex;align-items:center;gap:9px;font-weight:800}.topnav{display:flex;gap:18px;font-size:13px;color:#c7d2df}.topnav span.active{color:white}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.pill{border:1px solid #344a67;background:#213149;border-radius:20px;padding:7px 11px;font-size:12px}
.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 58px)}.sidebar{background:#e7edf5;border-right:1px solid #cfdae8;padding:22px 16px}.server-mini{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:18px}.server-mini b{display:block}.navgroup{font-size:10px;letter-spacing:.12em;font-weight:800;color:#8493a6;margin:18px 10px 7px}.navitem{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:7px;color:#52647b;font-size:13px;margin:2px 0}.navitem:hover,.navitem.active{background:#d7e5f7;color:#1766c5}.main{padding:26px 32px;min-width:0}.pagehead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.pagehead h1{margin:0 0 5px;font-size:24px}.sub{color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid #c6d3e2;background:white;color:#26374d;padding:9px 13px;border-radius:7px;font-weight:700;font-size:13px}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.success{background:var(--green);border-color:#15935b;color:white}.btn.danger{background:#fff0f2;border-color:#f0bdc5;color:#b72c42}.btn.dark{background:#25364d;color:#fff;border-color:#25364d}.btn.small{padding:6px 9px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px #1c2b3b0a}.cardpad{padding:18px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.span4{grid-column:span 4}.span6{grid-column:span 6}.span8{grid-column:span 8}.span12{grid-column:span 12}.metric{padding:18px}.metric small{color:var(--muted);font-weight:700}.metric strong{display:block;font-size:25px;margin-top:6px}.good{color:#129b61}.bad{color:#cf3850}.warn{color:#bf7b0b}
.heroaddr{background:linear-gradient(135deg,#0d263c,#0e3b58);color:#fff;padding:20px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.heroaddr small{display:block;color:#80d6f0;font-weight:800;letter-spacing:.1em}.heroaddr strong{font-family:ui-monospace,monospace;font-size:19px;display:block;margin-top:6px}
.tabs{display:flex;border-bottom:1px solid var(--line);background:#fff;padding:0 12px;overflow:auto}.tab{border:0;background:none;padding:14px 12px;color:#66768a;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:#1b68c7;border-color:#1b8af1}.tabbody{padding:20px;background:#fff;border-radius:0 0 10px 10px;border:1px solid var(--line);border-top:0}
.console{background:#0a111d;color:#d7e7f8;border-radius:8px;padding:14px;height:430px;overflow:auto;white-space:pre-wrap;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas}.command{display:flex;gap:8px;margin-top:10px}.command input{flex:1}
.input,.select,.textarea{width:100%;border:1px solid #c9d5e3;background:white;border-radius:7px;padding:10px 11px;color:#24364c;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#52a2ef;box-shadow:0 0 0 3px #2889e51c}.textarea{min-height:180px;resize:vertical}.field label{display:block;font-size:12px;color:#56677c;font-weight:800;margin-bottom:6px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sectiontitle{font-size:14px;margin:0 0 14px}.notice{padding:11px 13px;border-radius:7px;background:#edf6ff;border:1px solid #c6e2fa;color:#315d82;font-size:13px}.notice.warning{background:#fff7df;border-color:#f4d98b;color:#705415}
.servercards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.servercard{padding:16px}.servercard .row{display:flex;justify-content:space-between;gap:8px}.badge{font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:5px 7px;border-radius:10px;background:#e8eef6;color:#607188;font-weight:800}.badge.online{background:#ddf7ea;color:#128452}.badge.offline{background:#f4e9ec;color:#a13d50}.soft{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.soft span{font-size:11px;background:#f1f5f9;border-radius:5px;padding:5px 7px}
.modtoolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px}.modtoolbar input{flex:1}.modgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.modcard{border:1px solid var(--line);border-radius:9px;padding:13px;background:#fff;display:grid;grid-template-columns:52px 1fr;gap:11px}.modcard img{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#eaf0f6}.modcard h4{margin:0;font-size:14px}.modcard p{margin:5px 0 9px;font-size:12px;color:var(--muted);height:32px;overflow:hidden}.modmeta{font-size:10px;color:#8593a5}.installed{margin-bottom:18px}.rowline{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf1f6;padding:10px 0}.rowline:last-child{border-bottom:0}
table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#718197;background:#f7f9fc;padding:10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid #edf1f5}.filename{font-family:ui-monospace,monospace;color:#245b91;cursor:pointer}
.auth{min-height:100vh;background:radial-gradient(circle at 20% 10%,#17466c,#08111f 45%);display:grid;place-items:center;padding:24px}.authbox{width:min(440px,100%);background:#fff;border-radius:14px;padding:28px;box-shadow:0 30px 90px #0006}.authbrand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.authbox h1{font-size:23px;margin:0}.authbox .field{margin:12px 0}.authfoot{text-align:center;color:#7a8798;font-size:12px;margin-top:15px}
.modalbg{position:fixed;inset:0;background:#07101fb8;display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(760px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 30px 90px #0006}.modalhead,.modalfoot{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modalfoot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.modalbody{padding:18px}.wizardsteps{display:flex;gap:6px;margin-bottom:16px}.wizardsteps span{flex:1;height:4px;background:#d8e2ee;border-radius:4px}.wizardsteps span.on{background:var(--blue)}
#toast{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:8px}.toast{background:#18283d;color:white;border-radius:8px;padding:11px 13px;box-shadow:0 10px 35px #0003;font-size:13px;max-width:380px}.toast.error{background:#9d2d3f}.toast.success{background:#14794d}
.ownergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.muted{color:var(--muted)}.hidden{display:none!important}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:16px}.span4,.span6,.span8{grid-column:span 12}.formgrid{grid-template-columns:1fr}.ownergrid{grid-template-columns:repeat(2,1fr)}}

.cataloghead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.catalogfilters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 14px}
.checkline{font-size:12px;color:#52647b;display:flex;gap:7px;align-items:center}
.catalogsummary{font-size:12px;color:#64758b;margin:8px 0 14px}
.catalogmore{text-align:center;padding:18px 0 4px}
.modcard{min-height:168px}
