
:root{
  --bg:#f7f9fc; --card:#ffffff; --muted:#6b778c; --text:#20293c;
  --line:#e6ebf2; --chip:#f3f6fb; --brand:#1e2a44; --ok:#1f9d6a; --bad:#d14545; --warn:#e0a100;
  --accent:#cfe0ff;
  --shadow: 0 10px 30px rgba(18, 38, 63, .06);
  --r:18px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:22px auto;padding:0 18px}
.topbar{position:sticky;top:0;z-index:20;display:flex;gap:14px;align-items:center;padding:14px 18px;background:rgba(247,249,252,.88);backdrop-filter: blur(10px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;color:var(--brand);font-size:18px}
.search{flex:1}
.search input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--chip);outline:none}
.nav{display:flex;gap:8px}
.nav a{padding:8px 10px;border-radius:14px;border:1px solid var(--line);background:var(--chip);font-size:13px;color:#3b4a66}
.nav a.active{background:var(--accent)}
.userchip{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;border:1px solid var(--line);background:var(--chip);font-size:13px}
.userchip .logout{opacity:.7}
.h1{display:flex;align-items:flex-end;justify-content:space-between;margin:12px 0 10px}
.h1 h1{margin:0;font-size:20px}
.h1 p{margin:6px 0 0;color:var(--muted);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.row{display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;gap:8px;align-items:center;padding:8px 10px;border-radius:14px;border:1px solid var(--line);background:var(--chip);font-size:13px;color:#3b4a66;cursor:pointer}
.btn.primary{background:var(--accent)}
.btn.danger{background:#ffe1e1;color:#8c1a1a;border-color:#ffd0d0}
.btn:disabled{opacity:.5;cursor:not-allowed}
.grid{display:grid;gap:14px}
.group{padding:14px}
.groupHead{display:flex;justify-content:space-between;gap:12px}
.groupTitle{display:flex;gap:10px;align-items:center}
.badge{font-size:12px;color:var(--muted)}
.kpis{margin-top:6px;color:var(--muted);font-size:12px}
.kpis b{color:var(--text)}
.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.toggle{min-width:38px;justify-content:center}
.sub{margin-top:12px;border-top:1px dashed var(--line);padding-top:12px}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:10px 0}
.table{width:100%;border-collapse:separate;border-spacing:0 10px}
.table th{font-size:12px;color:var(--muted);text-align:left;padding:0 10px}
.table td{padding:12px 10px;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.table td:first-child{border-left:1px solid var(--line);border-top-left-radius:14px;border-bottom-left-radius:14px}
.table td:last-child{border-right:1px solid var(--line);border-top-right-radius:14px;border-bottom-right-radius:14px}
.status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:12px;background:var(--chip);border:1px solid var(--line);font-size:12px}
.status.online{color:var(--ok)}
.status.offline{color:var(--bad)}
.small{font-size:12px;color:var(--muted)}
.mono{font-family:var(--mono)}
.modalMask{position:fixed;inset:0;background:rgba(12,16,24,.35);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.modal{width:min(860px,100%);background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:16px}
.modal h3{margin:6px 0 8px}
.field{display:grid;gap:6px;margin:10px 0}
.field label{font-size:12px;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--chip);outline:none}
.field textarea{min-height:120px;font-family:var(--mono)}
hr{border:none;border-top:1px solid var(--line);margin:12px 0}
.toast{position:fixed;right:14px;bottom:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:10px 12px;max-width:420px}
.loginWrap{max-width:520px;margin:60px auto;padding:0 18px}
.loginCard{padding:18px}
