:root{--bg: #0f172a;--surface: #1e293b;--surface2: #334155;--accent: #3b82f6;--accent2: #22d3ee;--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--text: #e2e8f0;--text2: #94a3b8}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:1.4;background:var(--bg);color:var(--text);min-height:100vh}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-box{background:var(--surface);border-radius:12px;padding:1.5rem;width:100%;max-width:360px;box-shadow:0 20px 60px #0006}.login-box h1{text-align:center;font-size:1.5rem;margin-bottom:.4rem;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-box p{text-align:center;color:var(--text2);margin-bottom:1.2rem;font-size:.8rem}.login-box input{width:100%;padding:.6rem .8rem;margin-bottom:.7rem;background:var(--surface2);border:1px solid #475569;border-radius:6px;color:var(--text);font-size:.9rem;outline:none;transition:border .2s}.login-box input:focus{border-color:var(--accent)}.login-box button{width:100%;padding:.6rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.login-box button:hover{background:#2563eb}.login-error{color:var(--red);text-align:center;margin-bottom:.7rem;font-size:.8rem}.dashboard{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--surface2)}.header h1{font-size:1.1rem;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-right{display:flex;align-items:center;gap:.75rem}.header-right span{color:var(--text2);font-size:.8rem}.logout-btn{padding:.35rem .75rem;background:var(--red);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:.78rem}.tabs{display:flex;gap:0;background:var(--surface);padding:0 1.5rem;border-bottom:1px solid var(--surface2);overflow-x:auto}.tab{padding:.65rem 1.1rem;cursor:pointer;color:var(--text2);font-size:.82rem;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{padding:1rem 1.5rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-bottom:1.5rem}.card{background:var(--surface);border-radius:8px;padding:.85rem;border:1px solid var(--surface2);transition:transform .15s ease,border-color .15s ease}.card:hover{transform:translateY(-1px);border-color:var(--accent)}.server-card.is-selectable{min-height:180px}.server-card.is-selectable:focus-visible{outline:2px solid rgba(47,125,246,.55);outline-offset:2px}.server-card.is-selected{background:linear-gradient(180deg,rgba(47,125,246,.1),var(--surface) 42%)}.server-card.is-selected:hover{border-color:var(--accent2)}.server-detail-view{scroll-margin-top:calc(var(--header-h, 74px) + 4rem)}.card h3{color:var(--text2);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.card .value{font-size:1.6rem;font-weight:700}.card .sub{color:var(--text2);font-size:.78rem;margin-top:.2rem}.btn{padding:.35rem .75rem;border:none;border-radius:5px;cursor:pointer;font-size:.78rem;font-weight:500;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb}.btn-danger{background:var(--red);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-sm{padding:.2rem .6rem;font-size:.72rem}.form-label{display:grid;gap:.3rem;color:var(--text2);font-size:.78rem;font-weight:500}.form-input{width:100%;min-width:0;padding:.5rem .65rem;background:var(--surface);border:1px solid var(--surface2);border-radius:6px;color:var(--text);font-size:.82rem;outline:none}.form-input:focus{border-color:var(--accent)}.alert{border-radius:6px;padding:.55rem .75rem;font-size:.82rem}.alert-red{background:#ef44441f;border:1px solid var(--red);color:var(--red)}.alert-green{background:#22c55e1f;border:1px solid var(--green);color:var(--green)}.table-wrap{background:var(--surface);border-radius:10px;border:1px solid var(--surface2);overflow:hidden;margin-bottom:1.5rem}table{width:100%;border-collapse:collapse}th,td{padding:.55rem .8rem;text-align:left;font-size:.82rem}th{background:var(--surface2);color:var(--text2);font-weight:500;text-transform:uppercase;font-size:.68rem;letter-spacing:.04em}td{border-top:1px solid var(--surface2)}tr:hover td{background:#3b82f60d}.badge{display:inline-block;padding:.15rem .45rem;border-radius:12px;font-size:.68rem;font-weight:500}.badge-green{background:#22c55e26;color:var(--green)}.badge-red{background:#ef444426;color:var(--red)}.badge-yellow{background:#f59e0b26;color:var(--yellow)}.code-block{background:var(--surface);border:1px solid var(--surface2);border-radius:6px;padding:.6rem .75rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;color:var(--accent2);margin-bottom:.4rem;cursor:pointer;transition:border-color .2s;word-break:break-all}.code-block:hover{border-color:var(--accent)}.event-item{display:flex;gap:.75rem;padding:.55rem .75rem;background:var(--surface);border-radius:6px;margin-bottom:.4rem;border:1px solid var(--surface2);font-size:.82rem}.event-time{color:var(--text2);white-space:nowrap;font-size:.72rem}.event-type{padding:.1rem .4rem;border-radius:3px;font-size:.62rem;text-transform:uppercase;font-weight:600}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--surface2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;margin-top:.35rem}.progress-fill{height:100%;border-radius:2px;transition:width .5s}@media (max-width: 768px){.header{padding:.75rem}.tabs{padding:0 .4rem}.tab-content{padding:.75rem}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.server-card.is-selectable{min-height:220px}th,td{padding:.45rem .6rem;font-size:.75rem}}
