/* E1 "Paper" for the ops views: services, deploys, stack, gateway, money, growth, docs, and the shared siteTile. */
.ops .gap { height: 16px; }
.ops .inl { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.chk { color: var(--ink3); font-weight: 500; font-size: 14px; }
.ops .emeta { margin: -14px 0 20px; }

/* tables: 12px uppercase grey header, 13.5px rows, 1px rules */
.ops table.t th { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink3); background: var(--surface); padding: 9px 12px; }
.ops table.t th[aria-sort] button { color: var(--ink1); }
.ops table.t td { font-size: 13.5px; padding: 9px 12px; border-bottom: 1px solid var(--rule); }
.ops table.t .ttl { font-weight: 600; color: var(--ink1); text-decoration: none; }
.ops table.t a.ttl:hover { color: var(--blu); }
.ops table.t .sub { font-size: 12px; color: var(--ink3); margin-top: 1px; overflow-wrap: anywhere; }

/* filter bar: 8px radius, no pills */
.ops .tbar input[type=search], .ops .tbar select { border-radius: 8px; border: 1px solid var(--rule2); background: var(--sunk); padding: 7px 10px; }
.ops .tbar input[type=search] { max-width: 340px; }

/* site tiles -> compact rows with a status dot (no green boxes) */
.site { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 4px; border: 0; border-radius: 6px; background: none; color: var(--ink1); font-size: 13.5px; text-decoration: none; min-width: 0; }
.site:hover { background: var(--sunk); }
.site.bad, .site.warn { background: none; border: 0; }
.site .n { display: block; font-weight: 500; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site .m { font-family: var(--sans); font-size: 12px; color: var(--ink3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.site.bad .m { color: var(--red); font-weight: 600; }
.site.warn .m { color: var(--amb); }
.estate { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 24px; }
.dot { width: 8px; height: 8px; }
.dot.ok { background: var(--ok); } .dot.warn { background: var(--amb-edge); } .dot.bad { background: var(--red); }

/* stack: dense rows inside the program-index columns */
.srow { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: start; gap: 8px; padding: 6px 4px; border-radius: 6px; color: var(--ink1); text-decoration: none; font-size: 13.5px; }
.srow .dot { margin-top: 6px; }
a.srow:hover { background: var(--sunk); }
.srow .nm { min-width: 0; overflow-wrap: anywhere; }
.srow .nm small { color: var(--ink3); font-size: 12px; margin-left: 6px; }
.srow .nm em { display: block; font-style: normal; font-size: 12px; color: var(--ink3); line-height: 1.4; }
.srow .ct { font-size: 12px; color: var(--blu); white-space: nowrap; padding-top: 2px; }

/* gateway / money */
.chips2 { display: flex; flex-wrap: wrap; gap: 6px; }
.chips2 code.chip { font-family: var(--mono); font-weight: 500; background: var(--gry-bg); color: var(--ink2); }
.ops .kv { margin: 0; }
.hbar .track { height: 6px; border-radius: 3px; } .hbar .track i { border-radius: 3px; background: var(--blu); }
.spark i { border-radius: 2px 2px 0 0; background: var(--blu); }

@media (max-width: 900px) {
  .estate { grid-template-columns: 1fr; }
  .ops .tbar input[type=search] { max-width: none; width: 100%; }
  .ops .grid.g2 { grid-template-columns: 1fr; }
}
