:root{--bg0:#e8eef2;--bg1:#f4f7f9;--ink:#14201c;--ink-muted:#4a5c55;--brand:#1a3a32;--accent:#2d6a5a;--accent-soft:#7ec8b0;--warn:#c47a1a;--danger:#b33a2b;--ok:#2a7a4b;--line:#14201c1f;--shadow:0 18px 50px #14282414;--radius:14px;--font-display:"Source Serif 4", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%, #7ec8b059, transparent 55%), radial-gradient(900px 500px at 100% 0%, #e8a54b2e, transparent 50%), linear-gradient(165deg, var(--bg0), var(--bg1) 45%, #dde6ea);background-attachment:fixed;margin:0}button,input,textarea{font:inherit}a{color:var(--accent)}.app-shell{max-width:1100px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;animation:.55s both rise;display:flex}.brand{flex-direction:column;gap:.15rem;display:flex}.brand-mark{font-family:var(--font-display);letter-spacing:-.02em;color:var(--brand);font-size:clamp(1.75rem,3vw,2.35rem);font-weight:700;line-height:1.1}.brand-sub{color:var(--ink-muted);font-size:.92rem}.nav{flex-wrap:wrap;gap:.4rem;display:flex}.nav button{color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.45rem .85rem;transition:background .2s,color .2s,border-color .2s}.nav button:hover{color:var(--ink);background:#ffffff73}.nav button.active{color:var(--brand);border-color:var(--line);box-shadow:var(--shadow);background:#ffffffbf}.panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffb8;padding:1.25rem 1.35rem;animation:.6s both rise}.panel+.panel{margin-top:1rem}.panel h2{font-family:var(--font-display);color:var(--brand);margin:0 0 .35rem;font-size:1.35rem}.panel p.lead{color:var(--ink-muted);max-width:42rem;margin:0 0 1.1rem}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.85rem;display:grid}.metric{border:1px solid var(--line);background:linear-gradient(160deg,#1a3a320f,#ffffff80);border-radius:12px;padding:.85rem .95rem}.metric .label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:.35rem;font-size:.75rem;display:block}.metric .value{color:var(--brand);font-size:1.45rem;font-weight:600}.bar{background:#14201c14;border-radius:999px;height:6px;margin-top:.55rem;overflow:hidden}.bar>span{background:linear-gradient(90deg, var(--accent), var(--accent-soft));border-radius:inherit;height:100%;transition:width .6s;display:block}.site-list,.server-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.site-list li,.server-row{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .9rem;display:flex}.server-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:transform .2s,box-shadow .2s}.server-row:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.badge{border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge.ok{color:var(--ok);background:#2a7a4b1f}.badge.down{color:var(--danger);background:#b33a2b1f}.badge.warn{color:var(--warn);background:#c47a1a24}.dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:2.2s infinite pulse}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.65rem .4rem}th{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.btn-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:.5rem .9rem;transition:background .15s,border-color .15s,transform .15s}.btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand);color:#f2f8f5;border-color:var(--brand)}.btn.danger{color:var(--danger);border-color:#b33a2b59}.btn.warn{color:var(--warn);border-color:#c47a1a66}.field{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.field label{color:var(--ink-muted);font-size:.82rem}.field input,.field textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:.65rem .8rem}.field input:focus,.field textarea:focus{border-color:var(--accent);outline:2px solid #2d6a5a59}.flash{border-radius:10px;margin:.75rem 0;padding:.7rem .9rem;font-size:.9rem}.flash.error{color:var(--danger);background:#b33a2b1a}.flash.ok{color:var(--ok);background:#2a7a4b1a}.login-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-panel{width:min(400px,100%);animation:.65s both rise}.login-panel .brand-mark{margin-bottom:.25rem}.muted{color:var(--ink-muted);font-size:.88rem}.back-link{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-bottom:.85rem;padding:0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@media (width<=640px){.topbar,.site-list li,.server-row{flex-direction:column;align-items:flex-start}}
