@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--brand-1: #0a2540;--brand-2: #0e6e7d;--brand-3: #16a38a;--accent: #0ea5a5;--accent-strong: #0d8a8a;--grad-header: linear-gradient(120deg, #0a2540 0%, #0e6e7d 55%, #16a38a 100%);--grad-btn: linear-gradient(120deg, #0ea5a5, #14b8a6);--grad-btn-hover: linear-gradient(120deg, #0d8a8a, #0ea59a);--bg: #f3f7fa;--surface: #ffffff;--surface-2: #f2fafb;--text: #0b2440;--muted: #5b6b7a;--border: #e2ebf1;--border-strong: #cfdde6;--success: #10b981;--danger: #ef4444;--warn: #f59e0b;--radius: 14px;--radius-sm: 9px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(31, 27, 46, .06), 0 1px 3px rgba(31, 27, 46, .08);--shadow: 0 4px 14px rgba(14, 110, 125, .1), 0 2px 6px rgba(11, 36, 64, .06);--shadow-lg: 0 18px 40px -12px rgba(10, 37, 64, .3);--ring: 0 0 0 3px rgba(14, 165, 165, .22);--font: "Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:radial-gradient(1100px 480px at 12% -8%,rgba(14,110,125,.1),transparent 60%),radial-gradient(900px 460px at 100% 0%,rgba(22,163,138,.08),transparent 55%),var(--bg);background-attachment:fixed;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{color:var(--text);font-weight:800;letter-spacing:-.02em;line-height:1.2}h2{font-size:1.6rem}h4{font-weight:700}a{color:var(--accent-strong);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}::selection{background:#0ea5a533}button{font-family:inherit;font-weight:600;font-size:.92rem;color:var(--accent-strong);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:.5rem .9rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease,color .12s ease}button:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:var(--grad-btn);border:none;box-shadow:var(--shadow)}.btn-primary:hover{background:var(--grad-btn-hover);color:#fff}input,select,textarea{font-family:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:.55rem .7rem;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}table{background:transparent}thead th{background:transparent;color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;font-weight:700;border-bottom:2px solid var(--border)!important}tbody tr{transition:background .12s ease}tbody tr:hover{background:#0ea5a50f}tbody td{border-bottom:1px solid var(--border)!important}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.2rem}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border-radius:var(--radius-pill);font-size:.74rem;font-weight:700;letter-spacing:.01em;text-transform:capitalize}.pill:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.pill-online{color:#047857;background:#10b98124}.pill-offline{color:#b91c1c;background:#ef444421}.pill-unknown{color:#6b7280;background:#6b728021}.badge{display:inline-block;padding:.05rem .5rem;border-radius:var(--radius-pill);font-size:.7rem;font-weight:700;background:#0ea5a521;color:var(--accent-strong)}.app-shell{max-width:1080px;margin:0 auto;padding:0 1.1rem 3rem}.app-header{color:#fff;background:var(--grad-header);border-radius:0 0 22px 22px;box-shadow:var(--shadow-lg);padding:1.15rem 1.4rem;margin-bottom:1.4rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.9rem}.brand{display:flex;align-items:center;gap:.7rem}.brand-mark{width:40px;height:40px;border-radius:12px;background:#ffffff2e;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;font-size:1.35rem;font-weight:800;color:#fff;box-shadow:inset 0 1px #fff6}.brand-name{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:#fff}.brand-sub{font-size:.72rem;opacity:.82;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.header-right{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;justify-content:flex-end}.header-right a{color:#fff;opacity:.95}.header-right a:hover{opacity:1}.header-btn{color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-pill);padding:.35rem .85rem}.header-btn:hover{background:#ffffff47;color:#fff;border-color:#ffffff80}.chip{display:inline-flex;align-items:center;gap:.45rem;background:#ffffff29;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-pill);padding:.3rem .7rem;font-size:.8rem;font-weight:600}.dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block}.dot-on{background:#a7f3d0;box-shadow:0 0 0 3px #a7f3d04d}.dot-off{background:#fecaca}.view-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-pill);padding:.3rem .75rem;font-size:.82rem;font-weight:600}.nav{display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1.4rem;padding:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.nav-link{padding:.5rem .95rem;border-radius:var(--radius-sm);color:var(--muted);font-weight:700;font-size:.92rem;text-decoration:none;transition:background .12s ease,color .12s ease,transform .12s ease}.nav-link:hover{color:var(--accent-strong);background:var(--surface-2);text-decoration:none}.nav-link.active{color:#fff;background:var(--grad-btn);box-shadow:var(--shadow)}.nav-link.active:hover{color:#fff}.owner-banner{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin:-.4rem 0 1.2rem;padding:.5rem .9rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:var(--radius);color:#9a3412;font-size:.86rem;font-weight:600}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.hero{background:var(--grad-header);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.5rem 1.6rem;margin:.2rem 0 1.4rem}.hero h2{color:#fff;margin:0;font-size:1.7rem}.hero p{margin:.3rem 0 0;opacity:.9;font-weight:500}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}a.stat{display:block;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.2rem;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}a.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-strong);text-decoration:none}.stat-top{display:flex;align-items:center;gap:.55rem;margin-bottom:.5rem}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:1.05rem;background:#0ea5a521;color:var(--accent-strong)}.stat-label{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.stat-num{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;line-height:1}.stat-sub{margin-top:.3rem;font-size:.82rem;color:var(--muted);font-weight:600}.bar{height:7px;border-radius:999px;background:#0b244014;margin-top:.6rem;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:var(--grad-btn);transition:width .4s ease}.brand-plate{background:#fff;border-radius:11px;padding:.4rem .65rem;box-shadow:var(--shadow-sm);display:inline-flex}.brand-logo{height:30px;display:block}.login-logo{width:210px;max-width:78%;height:auto;display:block;margin:0 auto}
