/* OPS — pages outil (hors dashboard signage). */

.ops-ui-badge-down { background: #FCEBEA; color: #8C1D18; }
.ops-ui-banner { display:flex; gap:.75rem; flex-wrap:wrap; margin:0 0 1.25rem; }
.ops-ui-banner span { font-size:.8125rem; }
.ops-nav-label {
  font-size:.65rem; text-transform:uppercase; letter-spacing:.08em;
  color: var(--ui-color-ink-faint); padding:.85rem .75rem .2rem; font-weight:600;
}
.ops-nav a.ops-nav-sub { padding-left: 2.15rem; font-size:.8125rem; }
.ops-ui-hosts { display:grid; gap:1rem; grid-template-columns:1fr; margin-bottom:1.5rem; }
@media (min-width: 1100px) { .ops-ui-hosts { grid-template-columns:1fr 1fr; } }
.ops-ui-host { padding:0; overflow:hidden; }
.ops-ui-host h2 { font-size:1.05rem; margin:0; }
.ops-ui-host h3 { font-size:.8125rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ui-color-ink-faint); margin:1.1rem 0 .4rem; }
.ops-ui-host__sum {
  list-style:none; cursor:pointer; padding:1rem 1.1rem .85rem;
  display:grid; gap:.65rem;
}
.ops-ui-host__sum::-webkit-details-marker { display:none; }
.ops-ui-host__head { display:flex; justify-content:space-between; gap:.75rem; align-items:flex-start; }
.ops-ui-host__head p { margin:.2rem 0 0; font-size:.8125rem; color:var(--ui-color-ink-faint); }
.ops-ui-host__chev { color:var(--ui-color-ink-faint); transition: transform .15s ease; }
.ops-ui-host[open] .ops-ui-host__chev { transform: rotate(180deg); }
.ops-ui-host__body { padding:0 1.1rem 1.1rem; border-top:1px solid var(--ui-color-line); }
.ops-ui-facts { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.4rem .75rem; margin:.85rem 0 .75rem; font-size:.8125rem; }
.ops-ui-facts dt { color:var(--ui-color-ink-faint); font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; }
.ops-ui-facts dd { margin:0; font-weight:500; overflow-wrap:anywhere; }
.ops-ui-metric { margin-bottom:.55rem; }
.ops-ui-metric__row { display:flex; justify-content:space-between; font-size:.8125rem; margin-bottom:.2rem; }
.ops-ui-svcs, .ops-ui-pkgs, .ops-ui-upd { list-style:none; padding:0; margin:0; font-size:.8125rem; }
.ops-ui-svcs li, .ops-ui-pkgs li, .ops-ui-upd li { display:flex; gap:.4rem; align-items:baseline; flex-wrap:wrap; padding:.2rem 0; border-top:1px solid var(--ui-color-line); }
.ops-ui-svcs em, .ops-ui-pkgs em { color:var(--ui-color-ink-faint); font-style:normal; font-size:.75rem; }
.ops-ui-dot { width:.55rem; height:.55rem; border-radius:99px; background:#B3261E; flex-shrink:0; }
.ops-ui-dot.is-on { background: var(--ui-color-mesh-600, #2f6f5e); }
.ops-ui-warn { background:#FCEBEA; color:#8C1D18; border:1px solid #F3B9B5; border-radius:.75rem; padding:.6rem .75rem; font-size:.8125rem; display:flex; gap:.4rem; align-items:flex-start; }
.ops-ui-meta { font-size:.7rem; color:var(--ui-color-ink-faint); margin:.75rem 0 0; }
.ops-ui-table { width:100%; border-collapse:collapse; font-size:.8125rem; }
.ops-ui-table th { text-align:left; padding:.65rem .85rem; background:var(--ui-color-paper2); font-weight:600; }
.ops-ui-table td { padding:.65rem .85rem; border-top:1px solid var(--ui-color-line); vertical-align:top; }
.ops-ui-table a { color:inherit; }
.ops-ui-logs { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size:.72rem; line-height:1.45;
  background:#12151c; color:#d7deea; border-radius:.75rem; padding:.85rem 1rem; min-height:22rem; max-height:70dvh;
  overflow:auto; white-space:pre-wrap; word-break:break-word; }
.ops-ui-logs__empty { color:#8b93a7; }
.ops-ui-logs__src { color:#9ec5ff; margin: .6rem 0 .2rem; }
.ops-ui-logs__src:first-child { margin-top:0; }
.ops-ui-toolbar { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin:0 0 .65rem; }
.ops-ui-actions { display:flex; gap:.5rem; flex-wrap:wrap; margin:.85rem 0 .4rem; }
.ops-ui-chart { width:100%; height:9.5rem; display:block; }
.ops-ui-legend { display:flex; gap:1rem; font-size:.72rem; color:var(--ui-color-ink-faint); margin:.35rem 0 0; }
.ops-ui-legend i { display:inline-block; width:.7rem; height:.25rem; border-radius:99px; margin-right:.3rem; vertical-align:middle; }
.ops-ui-advice { margin:.75rem 0 0; padding:.65rem .75rem; border-radius:.65rem; font-size:.8125rem; }
.ops-ui-advice.is-ok { background: var(--ui-color-mesh-50, #e8f5ef); color: var(--ui-color-mesh-700, #16835f); }
.ops-ui-advice.is-info { background: var(--ui-color-paper2); color: var(--ui-color-ink-soft); }
.ops-ui-advice.is-warn { background:#FCEBEA; color:#8C1D18; }
.ops-ui-statgrid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.5rem; margin:.75rem 0 0; font-size:.75rem; }
.ops-ui-statgrid strong { display:block; font-size:.95rem; }
.ops-ui-range { display:flex; gap:.35rem; }
.ops-ui-spark { width:100%; height:2.1rem; display:block; }
.ops-ui-svcgrid { display:grid; gap:.55rem; }
.ops-ui-svc {
  display:grid; grid-template-columns: .55rem minmax(0,1fr) auto auto;
  gap:.75rem; align-items:center; padding:.7rem .9rem;
}
.ops-ui-svc__rail { width:.45rem; height:2.2rem; border-radius:99px; background: var(--ui-color-mesh-600, #2f6f5e); }
.ops-ui-svc.is-down .ops-ui-svc__rail { background:#B3261E; }
.ops-ui-svc strong { display:block; }
.ops-ui-svc em { font-style:normal; color:var(--ui-color-ink-faint); font-size:.75rem; font-family: 'JetBrains Mono', ui-monospace, monospace; }
.ops-ui-svc__meta { text-align:right; font-size:.75rem; color:var(--ui-color-ink-faint); }

/* Sécurité — antivirus / quarantaine */
.ops-ui-lead {
  margin: -0.5rem 0 1.25rem;
  font-size: .875rem;
  color: var(--ui-color-ink-faint);
  max-width: 42rem;
  line-height: 1.5;
}
.ops-ui-section { margin-bottom: 1rem; }
.ops-ui-section-title {
  font-size: .8125rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ui-color-ink-faint);
  margin: 0 0 1rem;
  font-weight: 600;
}
.ops-ui-security-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin-bottom: 1rem;
}
@media (min-width: 900px) {
  .ops-ui-security-grid { grid-template-columns: 1.4fr 1fr; }
}
.ops-ui-kpi-card { display: flex; flex-direction: column; gap: .35rem; }
.ops-ui-kpi-value {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  margin: 0;
  color: var(--ui-color-ink);
}
.ops-ui-field-inline { min-width: 14rem; margin: 0; }
.ops-ui-form-grid {
  display: grid;
  gap: .85rem 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .ops-ui-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ops-ui-form-grid__full { grid-column: 1 / -1; }
.ops-ui-form-actions { display: flex; gap: .5rem; flex-wrap: wrap; padding-top: .25rem; }
.ops-ui-facts--compact { margin: .75rem 0 0; }
.ops-ui-table-wrap { overflow-x: auto; margin: 0 -0.25rem; }
.ops-ui-logs--compact {
  min-height: auto;
  max-height: 16rem;
  margin: 0;
}
.ops-ui-actions .ui-btn { display: inline-flex; align-items: center; gap: .35rem; }
.ops-ui-actions form { margin: 0; }

.ops-ui-task { padding: 1.1rem 1.15rem 1rem; }
.ops-ui-task__head {
  display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start;
  flex-wrap: wrap; margin-bottom: .35rem;
}
.ops-ui-task__title { font-size: 1.05rem; margin: 0; }
.ops-ui-task__badges { display: flex; gap: .35rem; flex-wrap: wrap; }
.ops-ui-task__edit { margin-top: .85rem; border-top: 1px solid var(--ui-color-line); padding-top: .65rem; }
.ops-ui-task__edit > summary {
  cursor: pointer; font-size: .8125rem; font-weight: 600; color: var(--ui-color-ink-soft);
}
.ops-ui-task__delete { margin-top: .75rem; }
