/* ════════════════════════════════════════════════════════════════════════
   ops.css — brush for the Ops panel (zViews/zAccount/zRM/zUI.Ops.zolo).
   Opt in with zMeta.zBrush: [ops]. Same surface recipe as subscriptions.css/
   appsregistry.css; the vitals grid is wider (8 stats) and the error stat
   wears the danger tint so a non-zero count is impossible to miss.
   ════════════════════════════════════════════════════════════════════════ */

.zc-ops {
    position:      relative;
    width:         100%;
    margin:        0 0 2.5rem;
    padding:       2rem 2.25rem 2.5rem;
    background:    var(--zc-surface);
    border:        1px solid rgba(255, 255, 255, 0.10);
    border-radius: calc(var(--zc-radius) + 6px);
    box-shadow:    var(--zc-shadow-hover, 0 24px 56px rgba(0, 0, 0, 0.4));
    overflow:      hidden;
    isolation:     isolate;
}
.zc-ops::before {
    content:        '';
    position:       absolute;
    inset:          -40% -10% auto -10%;
    height:         420px;
    z-index:        0;
    pointer-events: none;
    background:
        radial-gradient(50% 60% at 28% 25%, rgba(124, 58, 237, 0.22), transparent 68%),
        radial-gradient(45% 55% at 78% 10%, rgba(79, 70, 229, 0.14), transparent 70%);
}
.zc-ops > * { position: relative; z-index: 1; }

.zc-ops-header h2 {
    margin:          0;
    font-size:       clamp(1.4rem, 2.6vw, 1.8rem);
    font-weight:     800;
    letter-spacing:  -0.02em;
    background:      var(--zc-text-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color:           transparent;
}
.zc-ops-sub {
    margin:    0.35rem 0 0;
    color:     var(--text-gray);
    font-size: 0.9rem;
}

/* ── Vitals — 4-up grid, 2 rows of money/pool/queue/ledger counts ── */
.zc-ops-stats {
    display:               grid;
    grid-template-columns: repeat(4, 1fr);
    gap:                   0.75rem;
    margin-top:            1.5rem;
}
.zc-ops-stat {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            0.15rem;
    padding:        0.85rem 0.5rem;
    background:     rgba(255, 255, 255, 0.035);
    border:         1px solid rgba(255, 255, 255, 0.07);
    border-radius:  14px;
}
.zc-ops-stat-value {
    margin:      0;
    font-size:   1.3rem;
    font-weight: 800;
    color:       var(--text-light);
}
.zc-ops-stat-label {
    margin:         0;
    color:          var(--text-gray);
    font-size:      0.68rem;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-align:     center;
}
.zc-ops-stat-error {
    border-color: rgba(239, 68, 68, 0.35);
}
.zc-ops-stat-error .zc-ops-stat-value {
    color: #fca5a5;
}

/* ── Toolbar / Filters / Results — the Subscriptions recipe shapes ── */
.zc-ops-toolbar {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         0.6rem;
    margin-top:  1.5rem;
}
.zc-ops-filters {
    display:       flex;
    flex-wrap:     wrap;
    align-items:   flex-end;
    gap:           0.75rem;
    margin-top:    1rem;
    padding:       0.75rem 1rem;
    background:    rgba(255, 255, 255, 0.03);
    border:        1px solid rgba(255, 255, 255, 0.07);
    border-radius: 12px;
}
.zc-ops-searchbar { flex: 1 1 320px; }
.zc-ops-searchbar .zDialog-live { max-width: 480px; }
.zc-ops-searchbar input[type="search"] { width: 100%; }
.zc-ops-filterstate {
    margin-top: 0.75rem;
}
.zc-ops-filterstate p {
    margin:    0;
    color:     var(--text-gray);
    font-size: 0.78rem;
}
.zc-ops-results {
    margin-top: 0.75rem;
}

@media (max-width: 900px) {
    .zc-ops-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .zc-ops { padding: 1.5rem 1.25rem 2rem; }
}
