:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --ink:#101828;
  --muted:#667085;
  --primary:#4137A8;
  --primary-600:#3b3299;
  --success:#1b9c85;
  --info:#0ea5e9;
  --danger:#ef4444;
  --border:#e5e7eb;
  --table-head:#302a86;
  --table-alt:#f5f8ff;
  --radius:16px;
  --shadow:0 4px 20px rgba(0,0,0,.06)
}
body.dark{
  --bg:#0f172a;
  --card:#111827;
  --ink:#e5e7eb;
  --muted:#94a3b8;
  --border:#1f2937;
  --table-head:#1f2565;
  --table-alt:#0b1326;
  --shadow:0 4px 20px rgba(0,0,0,.35)
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Cairo",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.7;
  text-align:center
}
.container{max-width:1100px;margin:24px auto;padding:0 16px}
.hero{position:relative;margin-bottom:16px}
.theme-toggle{
  position:absolute;top:0;inset-inline-start:0;
  padding:8px 12px;border-radius:999px;border:1px solid var(--border);
  background:var(--card);color:var(--ink);font-weight:700;cursor:pointer;box-shadow:var(--shadow)
}
.title{margin:0 0 6px;font-size:28px;font-weight:800;color:var(--primary)}
.signature{
  display:inline-flex;gap:8px;align-items:center;justify-content:center;
  background:var(--card);padding:6px 12px;border-radius:999px;border:1px solid var(--border);
  color:var(--muted);font-weight:600;box-shadow:var(--shadow)
}
.signature .role{color:var(--primary)}
.signature .name{color:var(--ink)}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;border:1px solid var(--border)}
.label{display:block;font-weight:600;margin-bottom:8px;color:var(--muted)}
.paste{
  width:100%;min-height:180px;resize:vertical;padding:12px 14px;border-radius:12px;
  border:1px solid var(--border);outline:none;background:var(--card);color:var(--ink);text-align:center
}
.paste::placeholder{color:#9aa3af;white-space:pre-line}
.paste:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(65,55,168,.12)}
.filters{display:flex;gap:10px;margin:14px 0;justify-content:center;flex-wrap:wrap}
.center-input{text-align:center}
.control{
  width:320px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);
  outline:none;background:var(--card);color:var(--ink)
}
.control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(65,55,168,.08)}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-bottom:10px}
.btn{
  padding:10px 14px;border:none;border-radius:12px;cursor:pointer;font-weight:700;
  background:#ddd;color:#111;transition:transform .04s ease,box-shadow .2s ease
}
body.dark .btn{color:#eee}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-600)}
.btn-success{background:var(--success);color:#fff}
.btn-info{background:var(--info);color:#fff}
.btn-danger{background:var(--danger);color:#fff}
.num{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;
  background:#fff;color:var(--primary);border:1px solid var(--border);margin-inline-end:6px;font-weight:800;font-size:12px
}
.badge{background:#fff;color:var(--primary);border-radius:999px;padding:2px 8px;margin-inline-start:6px;font-size:12px}
.warn{
  margin:8px auto 12px;padding:8px 12px;border-radius:10px;border:1px solid #f59e0b;
  color:#92400e;background:#fffbeb;max-width:900px
}
.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--border)}
.table{width:100%;border-collapse:separate;border-spacing:0;text-align:center}
.table thead th{background:var(--table-head);color:#fff;font-weight:700;padding:12px;position:sticky;top:0}
.table tbody td{padding:10px 12px;background:var(--card);border-top:1px solid var(--border);color:var(--ink)}
.table tbody tr:nth-child(even) td{background:var(--table-alt)}
.table td[contenteditable="true"]{outline:none}
.table td.invalid{background:#fff3f3;position:relative}
.table td.invalid::after{
  content:"⚠";position:absolute;inset-inline-end:6px;inset-block-start:6px;font-size:14px;color:#ef4444;opacity:.95;pointer-events:none
}
.table td.invalid[title]{cursor:help}
body.dark .table td.invalid{background:#3b1d1d}
.cat{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.cat.login{background:#fff1;color:#fff;border:1px solid #fff3}
.cat.device{background:#0ea5e922;color:#0ea5e9;border:1px solid #0ea5e955}
.cat.form{background:#fef3c7;color:#a16207;border:1px solid #f59e0b}
.cat.network{background:#dcfce7;color:#166534;border:1px solid #22c55e}
.cat.update{background:#e0e7ff;color:#3730a3;border:1px solid #6366f1}
.cat.default{background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1}
body.dark .cat.default{background:#111827;color:#e5e7eb;border-color:#334155}
.toast{
  position:fixed;bottom:20px;inset-inline-start:20px;background:#111827;color:#fff;
  padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);
  transition:.25s ease;pointer-events:none;font-weight:600
}
.toast.show{opacity:1;transform:translateY(0)}
.lock{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.35));
  backdrop-filter:blur(6px);z-index:9999
}
.lock-card{
  background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);
  padding:22px;min-width:320px;display:flex;flex-direction:column;gap:10px
}
.lock-title{font-weight:800;color:var(--primary);font-size:22px}
.lock-btn{width:100%}
.lock-msg{color:#ef4444;font-weight:700}
@media (max-width:640px){
  .filters{flex-direction:column}
  .btn-row{gap:6px}
  .lock-card{min-width:260px}
}
