/* PABX PRIME ADMIN SSH SECURITY CSS V1.3 20260905 */
.admin-ssh-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.admin-ssh-card { min-width:0; }
.admin-ssh-section { margin-top:18px; border:1px solid #dce4ee; border-radius:14px; background:#fff; overflow:hidden; }
.admin-ssh-section-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 18px; border-bottom:1px solid #e7edf4; }
.admin-ssh-section-head h3 { margin:0 0 4px; font-size:15px; }
.admin-ssh-section-head p { margin:0; color:#667085; font-size:12px; }
.admin-ssh-table-wrap { width:100%; overflow-x:auto; }
.admin-ssh-table { width:100%; border-collapse:collapse; min-width:1120px; }
.admin-ssh-table th,.admin-ssh-table td { padding:11px 13px; border-bottom:1px solid #edf1f5; text-align:left; vertical-align:middle; font-size:12px; white-space:nowrap; }
.admin-ssh-table th { background:#f8fafc; color:#475467; font-weight:700; }
.admin-ssh-table tbody tr:last-child td { border-bottom:0; }
.admin-ssh-empty { padding:24px 18px; color:#667085; font-size:13px; }
.admin-ssh-actions-cell { display:flex; gap:6px; align-items:center; }

.admin-ssh-rules-grid { display:grid; grid-template-columns:1.05fr 1.35fr 1.35fr; gap:12px; padding:16px 18px; }
.admin-ssh-rule-card { border:1px solid #e1e7ef; border-radius:12px; background:#fbfcfe; padding:14px; min-width:0; }
.admin-ssh-rule-danger { border-color:#f1c9c9; background:#fffafa; }
.admin-ssh-rule-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.admin-ssh-rule-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.admin-ssh-rule-fields label { display:flex; flex-direction:column; gap:5px; }
.admin-ssh-rule-fields label>span { color:#667085; font-size:10px; font-weight:700; }
.admin-ssh-rule-fields input,.admin-ssh-allow-add input,.admin-ssh-filters input,.admin-ssh-filters select { width:100%; min-height:36px; padding:7px 10px; border:1px solid #d0d8e3; border-radius:9px; background:#fff; color:#1d2939; outline:none; }
.admin-ssh-rule-card small { color:#667085; line-height:1.4; }
.admin-ssh-rule-fixed { display:flex; align-items:center; justify-content:center; gap:12px; min-height:54px; border-radius:10px; background:#fff; margin-bottom:10px; }
.admin-ssh-user-chips,.admin-ssh-allow-items { display:flex; flex-wrap:wrap; gap:8px; }
.admin-ssh-user-chips span,.admin-ssh-allow-chip { display:inline-flex; align-items:center; gap:7px; min-height:28px; padding:4px 10px; border-radius:999px; background:#eaf7ef; color:#176b3a; font-size:11px; font-weight:700; }
.admin-ssh-allow-chip button { border:0; background:transparent; color:inherit; cursor:pointer; font-size:16px; line-height:1; }
.admin-ssh-allowlist { display:grid; grid-template-columns:minmax(260px,1fr) minmax(300px,1fr) minmax(340px,1.6fr); gap:14px; align-items:end; padding:16px 18px; border-top:1px solid #e7edf4; }
.admin-ssh-allowlist h4 { margin:0 0 5px; }
.admin-ssh-allowlist p { margin:0; color:#667085; font-size:11px; line-height:1.4; }
.admin-ssh-allow-add { display:flex; gap:8px; }
.admin-ssh-rule-actions { display:flex; justify-content:flex-end; padding:0 18px 16px; }

.admin-ssh-filters { display:grid; grid-template-columns:minmax(130px,1fr) minmax(135px,1fr) minmax(135px,1fr) minmax(125px,1fr) minmax(200px,1.5fr) 90px auto; gap:10px; align-items:end; padding:16px 18px; border-bottom:1px solid #e7edf4; }
.admin-ssh-filters label { display:flex; flex-direction:column; gap:6px; min-width:0; }
.admin-ssh-filters label>span { color:#475467; font-size:11px; font-weight:700; }
.admin-ssh-filters .is-muted { opacity:.55; }
.admin-ssh-filter-actions { display:flex; gap:8px; }
.admin-ssh-history-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 18px; background:#fbfcfe; border-bottom:1px solid #e7edf4; color:#667085; font-size:12px; }
.admin-ssh-pagination { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 18px; border-top:1px solid #e7edf4; color:#667085; font-size:12px; }
.admin-ssh-pagination-actions { display:flex; align-items:center; gap:10px; }
.admin-ssh-pagination button:disabled { opacity:.45; cursor:default; }

@media (max-width:1400px) {
  .admin-ssh-rules-grid,.admin-ssh-allowlist { grid-template-columns:1fr; }
  .admin-ssh-filters { grid-template-columns:repeat(3,minmax(135px,1fr)); }
}
@media (max-width:1200px) { .admin-ssh-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) {
  .admin-ssh-summary,.admin-ssh-filters { grid-template-columns:1fr; }
  .admin-ssh-rule-fields { grid-template-columns:1fr; }
  .admin-ssh-allow-add { flex-direction:column; }
  .admin-ssh-pagination { align-items:flex-start; flex-direction:column; }
}

/* PABX PRIME SSH INSTANT LOAD CSS V1.3.3 20260905 */
.admin-ssh-inline-loading{display:flex;align-items:center;justify-content:center;min-height:76px;padding:18px;color:#667085;font-size:12px}
.admin-ssh-skeleton-card{min-height:98px}
.admin-ssh-skeleton-card .admin-settings-main-value{opacity:.55}

/* PABX PRIME SSH COMPACT RULES CSS V1.3.4 20260905 */
.admin-ssh-rules-compact{overflow:hidden}
.admin-ssh-rules-compact .admin-ssh-rules-grid,.admin-ssh-rules-compact .admin-ssh-allowlist,.admin-ssh-rules-compact .admin-ssh-rule-actions{display:none!important}
.admin-ssh-compact-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 9px;border-bottom:1px solid #e8edf3}
.admin-ssh-compact-head h3{margin:0 0 2px;font-size:14px}
.admin-ssh-compact-head p{margin:0;color:#667085;font-size:11px}
.admin-ssh-compact-policy{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(390px,1.45fr) minmax(300px,1.05fr);gap:10px;padding:10px 16px;align-items:stretch}
.admin-ssh-policy-block,.admin-ssh-permanent-legend{border:1px solid #e3e9f1;border-radius:10px;background:#fbfcfe;padding:9px 11px;min-width:0}
.admin-ssh-policy-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12px}
.admin-ssh-policy-users .admin-ssh-user-chips{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.admin-ssh-policy-users .admin-ssh-user-chips span{min-height:24px;padding:3px 9px;font-size:10px}
.admin-ssh-rule-fields-compact{display:grid;grid-template-columns:90px 1fr 1fr;gap:7px}
.admin-ssh-rule-fields-compact label{gap:3px}
.admin-ssh-rule-fields-compact label>span{font-size:9px}
.admin-ssh-rule-fields-compact input{min-height:31px;padding:4px 8px;border-radius:7px;font-size:11px}
.admin-ssh-input-unit{display:flex;align-items:center;gap:5px}
.admin-ssh-input-unit input{min-width:0}
.admin-ssh-input-unit small{color:#667085;font-size:9px}
.admin-ssh-permanent-legend{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:7px;border-color:#f2d1d1;background:#fffafa;font-size:11px}
.admin-ssh-permanent-legend strong{font-size:12px}
.admin-ssh-permanent-legend b{color:#b42318}
.admin-ssh-allowbar{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1fr) minmax(260px,1.6fr) auto;gap:10px;align-items:center;padding:10px 16px 12px;border-top:1px solid #e8edf3}
.admin-ssh-allowbar-title{display:flex;flex-direction:column;gap:2px}
.admin-ssh-allowbar-title strong{font-size:12px}
.admin-ssh-allowbar-title small{color:#667085;font-size:9px;line-height:1.3}
.admin-ssh-allow-add-compact{display:grid;grid-template-columns:1fr auto;gap:6px}
.admin-ssh-allow-add-compact input{min-height:32px;padding:5px 9px;border-radius:7px;font-size:11px}
.admin-ssh-allow-add-compact .btn,.admin-ssh-save-compact{min-height:32px;padding:5px 11px;font-size:11px}
.admin-ssh-allow-items-compact{min-height:28px;display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.admin-ssh-allow-items-compact .admin-ssh-allow-chip{min-height:24px;padding:3px 8px;font-size:10px}
@media (max-width:1250px){.admin-ssh-compact-policy{grid-template-columns:1fr}.admin-ssh-allowbar{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.admin-ssh-rule-fields-compact{grid-template-columns:1fr}.admin-ssh-permanent-legend{grid-template-columns:auto 1fr}.admin-ssh-allowbar{grid-template-columns:1fr}}

/* PABX PRIME SSH HISTORY 24H CSS V1.3.5 20260905 */
.admin-ssh-filters-24h {
  grid-template-columns:
    minmax(145px, .8fr)
    minmax(140px, .8fr)
    minmax(260px, 1.6fr)
    90px
    auto !important;
}

.admin-ssh-retention-badge {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.admin-ssh-retention-badge > span {
  color: #475467;
  font-size: 11px;
  font-weight: 700;
}

.admin-ssh-retention-badge > strong {
  display: flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid #d0d8e3;
  border-radius: 9px;
  background: #f8fafc;
  color: #344054;
  font-size: 12px;
}

@media (max-width: 980px) {
  .admin-ssh-filters-24h {
    grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
  }
}

@media (max-width: 650px) {
  .admin-ssh-filters-24h {
    grid-template-columns: 1fr !important;
  }
}

/* PABX PRIME SSH HISTORY 24H CSS V1.3.5 20260905 */
.admin-ssh-filters-24h {
  grid-template-columns:
    minmax(145px, .8fr)
    minmax(140px, .8fr)
    minmax(260px, 1.6fr)
    90px
    auto !important;
}

.admin-ssh-retention-badge {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.admin-ssh-retention-badge > span {
  color: #475467;
  font-size: 11px;
  font-weight: 700;
}

.admin-ssh-retention-badge > strong {
  display: flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid #d0d8e3;
  border-radius: 9px;
  background: #f8fafc;
  color: #344054;
  font-size: 12px;
}

@media (max-width: 980px) {
  .admin-ssh-filters-24h {
    grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
  }
}

@media (max-width: 650px) {
  .admin-ssh-filters-24h {
    grid-template-columns: 1fr !important;
  }
}

/* PABX PRIME SSH PAGINATION DOM CSS V1.3.5.7.1 20260905 */
.admin-ssh-active-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  border-top: 1px solid #e8edf3;
  color: #667085;
  font-size: 11px;
}

.admin-ssh-active-pagination .admin-ssh-pagination-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-ssh-active-pagination .btn.small {
  min-height: 30px;
  padding: 4px 10px;
}

.admin-ssh-active-pagination button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

@media (max-width: 700px) {
  .admin-ssh-active-pagination {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* PABX PRIME SSH ACTIVE FILTER CSS V1.3.5.8 20260905 */
.admin-ssh-active-filter {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
  gap: 10px;
  padding: 10px 12px;
  border-top: 1px solid #e8edf3;
  border-bottom: 1px solid #e8edf3;
  background: #fbfcfe;
}

.admin-ssh-active-filter-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.admin-ssh-active-filter-field label {
  font-size: 11px;
  font-weight: 700;
  color: #344054;
}

.admin-ssh-active-filter-field input {
  width: 100%;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #d7dee8;
  border-radius: 8px;
  background: #fff;
  color: #101828;
  outline: none;
}

.admin-ssh-active-filter-field input:focus {
  border-color: #8fb9ee;
  box-shadow: 0 0 0 2px rgba(30, 117, 230, .08);
}

.admin-ssh-active-filter-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-ssh-active-filter-actions .btn {
  min-height: 34px;
  padding: 6px 12px;
}

.admin-ssh-active-filter-empty {
  padding: 12px;
  color: #667085;
  font-size: 12px;
  text-align: center;
  border-bottom: 1px solid #e8edf3;
}

@media (max-width: 700px) {
  .admin-ssh-active-filter {
    grid-template-columns: 1fr;
  }

  .admin-ssh-active-filter-actions {
    justify-content: flex-end;
  }
}
