:root{font-family:Segoe UI,Arial,sans-serif;color:#0f172a;background:#f5f7fb}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8fafc,#eef2ff)}.center{min-height:100vh;display:grid;place-items:center;font-size:1.1rem}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.layout{max-width:1200px;margin:0 auto;padding:1rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.card{background:#fff;border:1px solid #dbe3ee;border-radius:14px;padding:1rem;box-shadow:0 8px 24px #0f172a0f}.card h1,.card h2,.card h3{margin-top:0}.list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.list li{display:flex;justify-content:space-between;gap:1rem;border:1px solid #e7edf6;border-radius:10px;padding:.6rem .75rem}.list li div{display:grid;gap:.2rem}input,button,select{font:inherit}select{border:1px solid #cfd8e3;border-radius:8px;padding:.55rem .7rem;background:#fff}label{display:grid;gap:.35rem;margin-bottom:.75rem}input{border:1px solid #cfd8e3;border-radius:8px;padding:.55rem .7rem}button{border:none;border-radius:8px;padding:.6rem .85rem;background:#1d4ed8;color:#fff;cursor:pointer}button:hover{background:#1e40af}.card button+button{margin-top:.55rem}.btn-secondary{background:#e2e8f0;color:#1e293b}.btn-secondary:hover{background:#cbd5e1}.error,.error-banner{background:#fee2e2;color:#7f1d1d;border:1px solid #fecaca;border-radius:8px;padding:.6rem .75rem}.error-banner{margin-bottom:1rem}.download-agent{margin-top:1rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.download-agent a{display:inline-block;padding:.4rem .9rem;background:#3b82f6;color:#fff;border-radius:6px;text-decoration:none;font-size:.85rem;font-weight:500}.download-agent a:hover{background:#2563eb}.tab-bar{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.tab{background:transparent;color:#64748b;border:none;border-radius:8px 8px 0 0;padding:.5rem 1rem;font-weight:500;cursor:pointer}.tab:hover{background:#f1f5f9;color:#1e293b}.tab.active{background:#1d4ed8;color:#fff}.badge-super{display:inline-block;background:linear-gradient(135deg,#7c3aed,#db2777);color:#fff;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:6px;text-transform:uppercase;letter-spacing:.04em}.badge-role{display:inline-block;background:#e0e7ff;color:#3730a3;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:6px}.badge-online{display:inline-block;background:#d1fae5;color:#065f46;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:6px}.badge-offline{display:inline-block;background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:6px}.stat-card{text-align:center}.stat-card strong{font-size:2rem;display:block;margin-top:.25rem;color:#1d4ed8}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:.75rem}.admin-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid #e2e8f0;color:#64748b;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.admin-table td{padding:.55rem .75rem;border-bottom:1px solid #f1f5f9}.admin-table tr:hover td{background:#f8fafc}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.3rem .6rem;font-size:.78rem;border-radius:6px}@media (max-width: 900px){.stats,.grid-2{grid-template-columns:1fr}}@media (max-width: 1200px) and (min-width: 901px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:grid;place-items:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:1.5rem;min-width:320px;max-width:500px;box-shadow:0 20px 60px #0003}.modal h2{margin-top:0;margin-bottom:.5rem}.modal p{color:#64748b;margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}
