/* ConnectHub — enterprise design tokens + components */
html{font-family:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif}
body{font-feature-settings:'cv11','ss01';text-rendering:optimizeLegibility}
.font-mono,code{font-family:'JetBrains Mono',ui-monospace,monospace}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;border:2px solid #f4f6f8}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}
.tabular-nums{font-variant-numeric:tabular-nums}

/* login backdrop texture */
.grid-bg{background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse 90% 80% at 50% 20%,black 30%,transparent 75%)}
.status-dot{width:7px;height:7px;border-radius:999px;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18);flex-shrink:0}

/* type */
.micro-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b}
.lbl{display:block;font-size:12.5px;font-weight:600;color:#334155;margin-bottom:6px}

/* inputs */
.inp{width:100%;height:42px;padding:0 13px;border:1px solid #dbe0e7;border-radius:8px;font-size:13.5px;background:#fff;color:#0f172a;outline:none;transition:border-color .15s,box-shadow .15s}
.inp::placeholder{color:#9aa4b2}
.inp:hover{border-color:#c3ccd7}
.inp:focus{border-color:#0f172a;box-shadow:0 0 0 3px rgba(15,23,42,.08)}
select.inp{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}
.file{font-size:12.5px;color:#475569}
.file::file-selector-button{padding:7px 13px;border-radius:8px;border:1px solid #dbe0e7;background:#f8fafc;font-weight:600;font-size:12.5px;cursor:pointer;margin-right:10px;color:#0f172a}
.file::file-selector-button:hover{background:#eef1f5}

/* buttons */
.btn-primary{background:#0f172a;color:#fff;font-weight:600;font-size:13.5px;padding:0 18px;height:42px;border-radius:8px;transition:background .15s,transform .1s;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.btn-primary:hover{background:#1e293b}
.btn-primary:active{transform:scale(.985)}
.btn-primary:disabled{opacity:.55;pointer-events:none}
.btn-secondary{background:#fff;border:1px solid #dbe0e7;font-weight:600;font-size:13.5px;padding:0 16px;height:42px;border-radius:8px;transition:.15s;color:#1e293b;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.btn-secondary:hover{border-color:#94a3b8;background:#f8fafc}
.btn-icon{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid #e2e8f0;background:#fff;color:#475569;transition:.15s;flex-shrink:0}
.btn-icon:hover{border-color:#94a3b8;color:#0f172a;background:#f8fafc}
.btn-mini{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px;border:1px solid #dbe0e7;background:#fff;color:#1e293b;transition:.15s;white-space:nowrap}
.btn-mini:hover{border-color:#0f172a;background:#0f172a;color:#fff}
.btn-mini-danger{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px;border:1px solid #fecaca;background:#fff;color:#b91c1c;transition:.15s;white-space:nowrap}
.btn-mini-danger:hover{background:#fef2f2;border-color:#fca5a5}
.link{font-size:12.5px;font-weight:600;color:#0f172a;white-space:nowrap;border-bottom:1px solid #cbd5e1;padding-bottom:1px}
.link:hover{border-color:#0f172a}

/* nav */
.navbtn{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:13.5px;font-weight:500;color:#475569;transition:.12s;text-align:left;border:1px solid transparent}
.navbtn:hover{background:#f1f5f9;color:#0f172a}
.navbtn.active{background:#0f172a;color:#fff;font-weight:600}
.navbtn.active .nav-ic{color:#fff}
.nav-ic{color:#94a3b8;display:grid;place-items:center;flex-shrink:0}
.navbtn.active .nav-ic{color:#cbd5e1}
.mnavbtn{padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600;background:#fff;border:1px solid #e2e8f0;text-align:left;color:#334155}
.mnavbtn.active{background:#0f172a;color:#fff;border-color:#0f172a}

/* cards + sections */
.card{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(15,23,42,.05);margin-bottom:0}
@media(min-width:640px){.card{padding:24px}}
.card-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-h h3{font-weight:700;letter-spacing:-.01em;font-size:14.5px;color:#0f172a}
.card-h p{font-size:12.5px;color:#64748b;margin-top:3px}
.section-box{background:#f8fafc;border:1px solid #e8edf2;border-radius:12px;padding:16px}

/* stats */
.stat{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:18px 20px;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.stat-v{font-size:30px;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1}
.stat-s{font-size:12.5px;color:#64748b;margin-top:6px}

/* quick actions */
.qa{display:block;width:100%;text-align:left;padding:11px 13px;border:1px solid #e5e9ef;border-radius:10px;background:#fff;transition:.13s}
.qa:hover{border-color:#0f172a;background:#f8fafc}
.qa-t{display:block;font-size:13px;font-weight:600;color:#0f172a}
.qa-s{display:block;font-size:12px;color:#64748b;margin-top:1px}

/* pills, badges, chips, dots */
.badge-muted{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;white-space:nowrap}
.pill-ok{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;white-space:nowrap}
.pill-no{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;white-space:nowrap}
.pill-info{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;white-space:nowrap}
.dot{width:6px;height:6px;border-radius:999px;display:inline-block;flex-shrink:0}
.dot-ok{background:#10b981}.dot-no{background:#cbd5e1}.dot-warn{background:#f59e0b}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;background:#f8fafc;border:1px solid #e2e8f0;color:#1e293b;border-radius:7px;padding:4px 6px 4px 10px;font-family:'JetBrains Mono',monospace;font-size:12px}
.chip-x{display:grid;place-items:center;width:20px;height:20px;border-radius:5px;color:#94a3b8;font-size:14px;line-height:1}
.chip-x:hover{background:#e2e8f0;color:#0f172a}

/* avatars */
.av{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;background:#e2e8f0;color:#334155;font-size:13px;font-weight:700;flex-shrink:0;letter-spacing:.02em}
.av.sm{width:30px;height:30px;font-size:11.5px}

/* tables */
.tbl-wrap{overflow-x:auto;border:1px solid #e8edf2;border-radius:12px}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:600px;background:#fff}
.tbl-wide{min-width:920px}
.tbl thead th{background:#f8fafc;text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:700;padding:10px 14px;border-bottom:1px solid #e8edf2;white-space:nowrap}
.tbl thead th.text-right,.tbl tbody td.text-right{text-align:right}
.tbl tbody td{padding:11px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr:hover{background:#f8fafc}

/* groups + audit */
.group-card{border:1px solid #e5e9ef;border-radius:12px;padding:16px;background:#fff;transition:.13s}
.group-card:hover{border-color:#cbd5e1}
.audit-row{display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border:1px solid #eef1f5;border-radius:10px;background:#fbfcfe}
.audit-row:hover{background:#fff;border-color:#e2e8f0}
.audit-dot{width:7px;height:7px;border-radius:999px;background:#0f172a;margin-top:6px;flex-shrink:0}

/* per-user usage detail */
.dtoggle{display:inline-flex;align-items:center;gap:5px}
.dtoggle .chev{transition:transform .15s;color:#94a3b8}
.dtoggle.open .chev{transform:rotate(180deg)}
.urow-detail td{background:#f8fafc !important;padding:0 !important;border-bottom:1px solid #e8edf2}
.urow-detail:hover td{background:#f8fafc !important}
.udetail{padding:18px 20px;text-align:left}
.mini-wrap{overflow-x:auto;border:1px solid #e8edf2;border-radius:10px;background:#fff}
.mini-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:420px}
.mini-tbl thead th{background:#f8fafc;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#64748b;font-weight:700;padding:8px 12px;border-bottom:1px solid #e8edf2;white-space:nowrap}
.mini-tbl thead th.text-right,.mini-tbl tbody td.text-right{text-align:right}
.mini-tbl tbody td{padding:8px 12px;border-bottom:1px solid #f1f5f9}
.mini-tbl tbody tr:last-child td{border-bottom:none}
.call-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #e8edf2;border-radius:10px;background:#fff;font-size:12.5px;min-width:0}
.upill{font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 7px;border-radius:6px;flex-shrink:0}
.upill.in{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.upill.out{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.udetail-note{font-size:12.5px;color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;padding:12px 14px;line-height:1.5}

/* empty + toast */
.empty{text-align:center;padding:32px 16px;color:#94a3b8;font-size:13px}
.toast{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;font-size:13px;font-weight:500;color:#1e293b;box-shadow:0 12px 32px rgba(15,23,42,.14);animation:slideUp .22s ease-out}
.toast.out{opacity:0;transform:translateY(8px);transition:.25s}

/* motion */
.view{animation:fadeIn .22s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* external-call permissions */
.perm{font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 7px;border-radius:6px;border:1px solid;flex-shrink:0;cursor:default}
.perm-on{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.perm-off{background:#f8fafc;color:#94a3b8;border-color:#e2e8f0;text-decoration:line-through}
.perm-warn{background:#fffbeb;color:#b45309;border-color:#fde68a}
.perm-tgl{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:7px;border:1px solid #e2e8f0;background:#fff;color:#334155;transition:.15s}
.perm-tgl:hover{border-color:#0f172a}
.perm-tgl.off{background:#f8fafc;color:#64748b}
.calling-box{background:#fff;border:1px solid #e8edf2;border-radius:10px;padding:14px 16px;margin-bottom:16px}
