*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#0057a8;--color-primary-dark:#003f7a;--color-bg:#f4f6f9;--color-card:#fff;--color-border:#dde3ec;--color-text:#1a1d23;--color-muted:#6b7280;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--radius:8px;--shadow:0 1px 4px rgba(0,0,0,.08)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:0 24px}.navbar{background:var(--color-primary);color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between}.navbar h1{font-size:18px;font-weight:700;letter-spacing:-.3px}.navbar nav a{color:#fff;margin-left:20px;font-size:14px;opacity:.85}.navbar nav a:hover{opacity:1}.page{padding:32px 24px;max-width:1200px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.page-title{font-size:22px;font-weight:700}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px}.kpi-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.kpi-card .label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-muted);margin-bottom:6px}.kpi-card .value{font-size:28px;font-weight:700;color:var(--color-primary)}.kpi-card .unit{font-size:14px;color:var(--color-muted);margin-left:4px}.kpi-card .delta{font-size:12px;margin-top:6px}.kpi-card .delta.up{color:var(--color-success)}.kpi-card .delta.down{color:var(--color-danger)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--color-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}th{background:#f8fafc;color:var(--color-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;text-align:left}td,th{padding:12px 16px;border-bottom:1px solid var(--color-border)}td{font-size:14px}tr:last-child td{border-bottom:none}tr:hover td{background:#f9fafb}.form-group{margin-bottom:18px}label{display:block;font-size:13px;font-weight:600;color:var(--color-muted);margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--color-border);border-radius:6px;padding:10px 12px;font-size:14px;color:var(--color-text);background:#fff;transition:border-color .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,87,168,.12)}textarea{font-family:Courier New,monospace;min-height:160px;resize:vertical}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-outline:hover{background:#eef4fb}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{padding:5px 12px;font-size:13px}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}.badge-green{background:#dcfce7;color:var(--color-success)}.badge-red{background:#fee2e2;color:var(--color-danger)}.badge-gray{background:#f1f5f9;color:var(--color-muted)}.badge-blue{background:#dbeafe;color:#1d4ed8}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-box{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:40px 36px;width:380px;box-shadow:var(--shadow)}.login-box h2{font-size:22px;font-weight:700;margin-bottom:6px}.login-box .subtitle{color:var(--color-muted);font-size:14px;margin-bottom:28px}.error-msg{background:#fee2e2;color:var(--color-danger);border-radius:6px;padding:10px 14px;font-size:14px;margin-bottom:16px}.agent-status{display:inline-flex;align-items:center;gap:6px;font-size:13px}.agent-dot{width:8px;height:8px;border-radius:50%}.agent-dot.ok{background:var(--color-success)}.agent-dot.warn{background:var(--color-warning)}.agent-dot.dead{background:var(--color-danger)}