/* Extracted from ecosystem.css: Platform SLO + audit operations. */

/* Extracted from ecosystem.css — platform modal + cabinet-list density. */
/* Platform modals density (split from market/platform modal polish, ).
 Desktop-only min-width — must not force overflow on narrow viewports. */
@media (min-width:761px) {
    body.pro #pf-members-modal .modal,
    body.pro #pf-billing-modal .modal,
    body.pro #pf-quotas-modal .modal {
        max-width:780px; min-width:560px;
    }
}
    body.pro #pf-quotas-modal .frow { margin-bottom:5px; }
    body.pro #pf-quotas-modal .frow > label {
        flex:0 0 145px; min-width:0; font-size:11px; line-height:1.2;
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis; opacity:.86;
    }
    body.pro #pf-quotas-modal .frow > input {
        flex:1 1 auto; width:100%; max-width:none;
    }
    body.pro #pf-members-modal .fin.tight,
    body.pro #pf-billing-modal .fin.tight { margin:0 0 4px; font-size:12px; }
    body.pro #pf-billing-modal .card-h { margin-top:8px; }
    body.pro #pf-quotas-modal .frow > input { flex:0 1 120px; max-width:140px; }
    body.pro #pf-quotas-modal .fbtns { margin-top:8px; }
    body.pro #pf-quotas-modal .fbtns button { min-width:118px; }
 #pf-billing-modal .card-h { margin-bottom:4px; }
    .pf-section-state .pf-section-retry { margin-top:8px; }
    .pf-freshness { margin-left:auto; white-space:nowrap; }
    .pf-price-drift { margin:7px 0; border-color:rgba(230,162,60,.48);
        background:rgba(230,162,60,.08); }
 #platform-bar .pf-domain { margin:12px 0 16px; }
 #platform-bar .pf-domain-head {
        display:flex; align-items:baseline; justify-content:space-between; gap:10px;
        margin:0 2px 7px; color:var(--tg-theme-text-color,#20242a);
    }
 #platform-bar .pf-domain-head b { font-size:13px; letter-spacing:.01em; }
 #platform-bar .pf-domain-head span {
        color:var(--tg-theme-hint-color,#747d88); font-size:10.5px; text-align:right;
    }
 #platform-bar .pf-domain-overview { margin-top:4px; }
    body.pro #platform-bar .rcard { padding:7px 9px; }
    body.pro #platform-bar .card-h {
        font-size:13px; line-height:1.25; margin-bottom:3px;
    }
    body.pro #platform-bar .fin { font-size:12px; line-height:1.24; }
    body.pro #platform-bar .fin.tight.lead { margin:0 0 6px; }
    body.pro #platform-bar .fbtns button { min-height:26px; padding:4px 9px; font-size:12px; }
    body.pro #platform-bar .collap { padding:10px 12px; }
    body.pro #platform-bar .collap-h { font-size:14px; }
    body.pro #platform-bar #pf-cab-list {
        display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 380px), 1fr));
        gap:8px; align-items:stretch;
    }
    body.pro #platform-bar #pf-cab-list .rcard:has(.pf-more:not(.hidden)) {
        grid-column:1 / -1;
    }
    body.pro #platform-bar #pf-cab-list .hint-pad,
    body.pro #platform-bar #pf-cab-list .more-row { grid-column:1 / -1; }
    body.pro #platform-bar #pf-cab-list .fbtns { margin-top:5px; }
    body.pro #platform-bar #pf-cab-list .fbtns button {
        min-height:24px; padding:3px 8px; font-size:11.5px; min-width:0;
    }
    body.pro #platform-bar #pf-newcab .frow { margin-bottom:4px; }
    body.pro #platform-bar #pf-newcab .frow > label { flex:0 0 160px; }
    body.pro #platform-bar #pf-newcab .frow > input { flex:1 1 auto; max-width:none; }
    body.pro #platform-bar #pf-cabs .fbtns button { min-width:102px; }
    body.pro #platform-bar #pf-modprices .frow { margin-bottom:4px; }
    body.pro #platform-bar #pf-modprices .frow > label { flex:0 0 180px; }
    body.pro #platform-bar #pf-modprices .frow > input.cm { flex:0 1 128px; max-width:128px; }
    body.pro #platform-bar #pf-analysts .frow > input { flex:0 1 170px; max-width:170px; }
    body.pro #platform-bar #pf-bundles-list .pf-bundle { margin-top:5px; padding-top:5px; }

.pf-ops-grid {
  display: grid;
  gap: 8px;
}

.pf-ops-grid-priority {
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  margin-bottom: 10px;
}

.pf-ops-grid-detail {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pf-ops-details > summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  padding: 0 10px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-muted);
  color: var(--tg-theme-link-color, #3390ec);
  font-weight: 650;
  cursor: pointer;
}

.pf-ops-section {
  padding: 10px;
  min-width: 0;
}

.pf-ops-wide {
  grid-column: 1 / -1;
}

.pf-ops-wide .pf-ops-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.pf-ops-kpis {
  margin-bottom: 8px;
}

.pf-ops-list {
  display: grid;
  gap: 5px;
}

.pf-ops-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 6px;
}

.pf-ops-empty-note {
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 11px;
}

.pf-event-row {
  padding: 7px 8px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-muted);
}

.pf-event-row.is-ok {
  border-left: 3px solid var(--pos, #1a8d3e);
}

.pf-event-row.is-warn {
  border-left: 3px solid #d98a00;
}

.pf-event-row.is-critical {
  border-left: 3px solid var(--tg-theme-destructive-text-color, #d92d20);
}

.pf-event-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.pf-event-head b {
  font-size: 13px;
  line-height: 1.3;
}

.pf-event-meta {
  margin-top: 3px;
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 12px;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}

.pf-request-id {
  display: inline-block;
  max-width: 100%;
  padding: 3px 6px;
  border-radius: 6px;
  background: var(--tg-theme-bg-color, #fff);
  color: var(--tg-theme-text-color, #111);
  overflow-wrap: anywhere;
  user-select: all;
}

.pf-copy-request-id {
  min-height: 30px;
  padding: 3px 7px;
  font-size: 10px;
}

.pf-event-note {
  margin-top: 4px;
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 10px;
  line-height: 1.35;
}

.pf-alert-row.is-warn {
  border-left: 3px solid #d98a00;
}

.pf-alert-row.is-critical {
  border-left: 3px solid var(--tg-theme-destructive-text-color, #d92d20);
}

@media (max-width: 700px) {
  .pf-ops-grid-priority,
  .pf-ops-grid-detail {
    grid-template-columns: minmax(0, 1fr);
  }

  .pf-ops-wide {
    grid-column: auto;
  }

  .pf-ops-wide .pf-ops-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

.pf-audit-list {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}

.pf-audit-meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.pf-audit-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 24px;
  padding: 2px 8px;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: var(--ui-surface-muted);
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 10px;
}

.pf-audit-details {
  margin-top: 6px;
}

.pf-audit-summary {
  color: var(--tg-theme-link-color, #3390ec);
  font-size: 11px;
  cursor: pointer;
}

.pf-audit-details-body {
  margin-top: 4px;
  padding: 7px 8px;
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-muted);
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 11px;
  line-height: 1.35;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.pf-chip-sm {
  min-height: 32px !important;
  padding: 4px 8px !important;
  font-size: 10px !important;
}

body.pro .pf-ops-kpis.platform-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Extracted from ecosystem.css ( maintainability one-wave) — platform surfaces. */
/* --- from ecosystem.css L1-200 --- */
/* Migrated from legacy app.css (dual-era); keep before ecosystem overrides. */
    .platform-product-card {
        display:flex; flex-direction:column; gap:12px; padding:14px; margin-bottom:12px;
        border:1px solid var(--ui-border,rgba(128,128,128,.2)); border-radius:14px;
    }
    .platform-products-layout { display:grid; gap:12px; min-width:0; }
    .platform-products-tab-rail { position:relative; min-width:0; }
    .platform-products-scroll-cue { display:none; }
    .platform-products-tabs {
        display:flex; flex-wrap:wrap; gap:6px; padding:6px;
        border:1px solid var(--ui-border,rgba(128,128,128,.2)); border-radius:12px;
        background:var(--ui-surface-muted,var(--tg-theme-secondary-bg-color,#f1f1f1));
    }
    .platform-products-tab { min-height:34px; }
    .platform-products-tab.active {
        color:var(--ui-on-accent,#fff);
        background:var(--ui-accent-solid,color-mix(in srgb,var(--tg-theme-button-color,#3390ec) 44%,#041525));
        border-color:transparent;
    }
    .platform-products-panels { min-width:0; }
    .platform-products-panel[hidden] { display:none !important; }
    .platform-products-panel.active { display:block; }
    @media (max-width:700px) {
        .platform-products-tabs {
            flex-wrap:nowrap; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
            scrollbar-width:none;
        }
        .platform-products-tabs::-webkit-scrollbar { display:none; }
        .platform-products-tab { flex:0 0 auto; min-height:42px; white-space:nowrap; }
        .platform-products-scroll-cue {
            display:grid; place-items:center; position:absolute; top:7px; right:7px; bottom:7px;
            width:28px; pointer-events:none; border-radius:9px;
            color:var(--tg-theme-text-color,#111);
            background:linear-gradient(90deg,transparent,
              color-mix(in srgb,var(--tg-theme-secondary-bg-color,#f1f1f1) 96%,transparent) 35%);
        }
        .platform-products-tabs { padding-right:38px; }
    }
    .platform-product-card h3, .platform-product-card p { margin:0 0 4px; }
    .platform-product-card p { color:var(--tg-theme-hint-color,#68717d); }
    .platform-product-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .platform-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
    .platform-personal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .platform-plan-card, .platform-meter-card {
        display:flex; flex-direction:column; gap:8px; min-width:0; padding:12px;
        border:1px solid var(--ui-border,rgba(128,128,128,.2)); border-radius:13px;
        background:var(--tg-theme-bg-color,#fff);
    }
    .platform-plan-name { font-size:16px; font-weight:750; }
    .platform-plan-card label, .platform-meter-card label {
        display:flex; flex-direction:column; gap:4px; min-width:0; font-size:10.5px;
        color:var(--tg-theme-hint-color,#68717d);
    }
    .platform-plan-card input, .platform-meter-card input { width:100%; min-width:0; min-height:38px; }
    .platform-plan-card small { color:var(--tg-theme-hint-color,#68717d); line-height:1.35; }
    .provider-state {
        flex:0 0 auto; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:700;
        background:color-mix(in srgb,var(--pos,#1a8d3e) 12%,transparent); color:var(--pos,#1a8d3e);
    }
    .provider-state[data-state="coming_soon"], .provider-state[data-state="unavailable"] {
        background:color-mix(in srgb,var(--tg-theme-hint-color,#68717d) 13%,transparent);
        color:var(--tg-theme-hint-color,#68717d);
    }
    .platform-meter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .platform-meter-card h4, .platform-meter-card p { margin:0 0 3px; }
    .platform-meter-card p { font-size:11px; line-height:1.35; }
    .platform-meter-economics { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
    .platform-meter-tiers { display:flex; flex-direction:column; gap:5px; }
    .platform-meter-tier {
        display:grid; grid-template-columns:1fr 1fr 32px; align-items:end; gap:5px;
    }
    .platform-meter-tier .act { width:32px; min-height:38px; }
    .platform-limit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
    .platform-limit-grid label { display:flex; flex-direction:column; gap:4px; font-size:11px; }
    .platform-limit-grid input { min-width:0; min-height:40px; }
    .platform-impact-note {
        display:flex; flex-direction:column; gap:3px; padding:11px 13px; margin-bottom:12px;
        border-radius:12px; background:var(--tg-theme-secondary-bg-color,#f1f1f1);
    }
    .platform-impact-note span { color:var(--tg-theme-hint-color,#68717d); font-size:12px; }
    .platform-advanced { margin-top:12px; }
    .platform-advanced > form, .platform-advanced > div { padding:12px; }
 #pf-cabinet-admin-modal .modal { width:min(720px,calc(100vw - 24px)); min-width:0; }
    .cabinet-admin { display:flex; flex-direction:column; gap:10px; padding:10px 12px 12px; }
    .cabinet-admin-toolbar { display:flex; }
    .cabinet-admin-back { min-height:36px; padding-inline:10px; }
    .cabinet-admin-summary {
        display:flex; flex-direction:column; gap:3px; padding:12px 14px;
    }
    .cabinet-admin-summary span, .cabinet-admin-summary small { color:var(--tg-theme-hint-color,#68717d); font-size:11px; }
    .cabinet-admin-summary b { font-size:15px; letter-spacing:-.2px; }
    .cabinet-admin-stats { font-variant-numeric:tabular-nums; }
    .cabinet-admin-tabs { display:flex; gap:4px; overflow-x:auto; padding-bottom:4px; }
    .cabinet-admin-tab {
        flex:0 0 auto; min-height:38px;
        box-shadow:inset 0 0 0 1px rgba(127,127,127,.22);
    }
    .cabinet-admin-tab.active {
        background:var(--tg-theme-button-color,#3390ec);
        color:var(--tg-theme-button-text-color,#fff);
        box-shadow:none;
    }
    .cabinet-admin-tab[data-cabinet-tab="danger"] {
        color:var(--neg,#d11);
        box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--neg,#d11) 35%,transparent);
    }
    .cabinet-admin-tab[data-cabinet-tab="danger"].active {
        background:color-mix(in srgb,var(--neg,#d11) 88%,#000);
        color:#fff;
    }
    html[data-theme="dark"] .cabinet-admin-tab,
    .overlay[data-theme="dark"] .cabinet-admin-tab {
        box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
        background:rgba(255,255,255,.06);
        color:var(--tg-theme-text-color,#f5f5f5);
    }
    html[data-theme="dark"] .cabinet-admin-tab.active,
    .overlay[data-theme="dark"] .cabinet-admin-tab.active {
        background:var(--tg-theme-button-color,#5288c1);
        color:var(--tg-theme-button-text-color,#fff);
        box-shadow:none;
    }
    .cabinet-admin-panels > section { display:none; }
    .cabinet-admin-panels > section.active { display:block; }
    .cabinet-admin-frame {
        display:flex; flex-wrap:wrap; gap:8px; width:100%;
        padding:12px 14px; min-height:64px; box-sizing:border-box;
    }
    .cabinet-admin-action { min-height:42px; flex:1 1 160px; }
 #platform-bar .pf-cab-primary {
        display:flex; align-items:baseline; justify-content:space-between; gap:10px;
        margin:2px 0 4px;
    }
 #platform-bar .pf-cab-primary-price { display:inline-flex; align-items:baseline; gap:4px; }
 #platform-bar .pf-cab-primary-price b { font-size:18px; letter-spacing:-.3px; line-height:1.1; }
 #platform-bar .pf-cab-primary-price small {
        color:var(--tg-theme-hint-color,#68717d); font-size:11px; font-weight:500;
    }
 #platform-bar .pf-cab-primary-plan {
        font-size:12px; font-weight:600; color:var(--tg-theme-text-color,#111);
        white-space:nowrap;
    }
 #platform-bar .pf-cab-secondary {
        display:flex; flex-direction:column; gap:2px; margin:0 0 6px;
        font-size:11px; color:var(--tg-theme-hint-color,#68717d); line-height:1.35;
    }
 #platform-bar .pf-cab-secondary .pf-cab-control b { color:var(--tg-theme-text-color,#111); font-weight:600; }
    html[data-theme="dark"] #platform-bar .pf-cab-secondary {
        color:var(--tg-theme-hint-color,#8fa3b5);
    }
    html[data-theme="dark"] #platform-bar .pf-cab-secondary .pf-cab-control b,
    html[data-theme="dark"] #platform-bar .pf-cab-primary-plan {
        color:var(--tg-theme-text-color,#f5f5f5);
    }
    .pf-plan-overrides { margin-top:10px; display:flex; flex-direction:column; gap:8px; }
    .pf-plan-custom-badge {
        margin:0; padding:6px 8px; border-radius:8px; font-size:11px;
        background:rgba(255,170,0,.12); color:inherit;
    }
    .pf-plan-mod-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:6px; }
    .pf-plan-mod {
        display:flex; align-items:flex-start; gap:6px; padding:7px 8px; border-radius:8px;
        border:1px solid rgba(127,127,127,.14); background:rgba(127,127,127,.04); font-size:12px;
    }
    .pf-plan-mod.is-base { opacity:.72; }
    .pf-plan-mod small { display:block; color:var(--tg-theme-hint-color,#68717d); font-size:10px; }
    .pf-plan-quota-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
    .pf-plan-quota-grid label { display:flex; flex-direction:column; gap:3px; font-size:11px; }
    .pf-plan-quota-grid input { min-height:34px; }
    .pf-user-row { cursor:pointer; }
    .pf-user-row:hover td, .pf-user-row:hover { background:rgba(51,144,236,.06); }
    .pf-user-joined { display:block; color:var(--tg-theme-hint-color,#68717d); font-size:10px; }
    .pf-user-card { display:flex; flex-direction:column; gap:10px; padding:10px 12px; }
    .pf-user-id { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .pf-user-id small { display:block; color:var(--tg-theme-hint-color,#68717d); font-size:10px; }
    .pf-user-meta { display:flex; flex-wrap:wrap; gap:8px 12px; font-size:11px; color:var(--tg-theme-hint-color,#68717d); }
    .pf-user-contexts { margin:0; padding-left:18px; display:grid; gap:4px; font-size:12px; }
    .pf-user-cabs { display:grid; gap:6px; }
    .pf-user-cab {
        display:flex; flex-direction:column; gap:2px; padding:8px 9px; border-radius:9px;
        border:1px solid rgba(127,127,127,.14); background:rgba(127,127,127,.04);
    }
    .pf-user-cab small { color:var(--tg-theme-hint-color,#68717d); }
    @media (max-width:640px) {
        .pf-plan-quota-grid { grid-template-columns:1fr; }
        .pf-user-id { grid-template-columns:1fr; }
    }
    @media (max-width:720px) {
        .platform-limit-grid, .platform-plan-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
        .platform-plan-grid .platform-plan-card:last-child { grid-column:1 / -1; }
    }
    @media (max-width:480px) {
 #pf-cabinet-admin-modal .modal { width:100%; }
        .platform-limit-grid, .platform-plan-grid, .platform-meter-grid { grid-template-columns:1fr; }
        .platform-plan-grid .platform-plan-card:last-child { grid-column:auto; }
        .platform-product-head, .billing-section-head { align-items:stretch; flex-direction:column; }
        .billing-period-switch button { flex:1; }
        .platform-meter-economics { grid-template-columns:1fr; }
    }


/* --- from ecosystem.css L204-460 --- */
/* Migrated from legacy app.css (dual-era): platform helpers + workspace/admin. */
 /* §ui: в конфиге платформы подписи полей выравниваются в колонку (карточное исключение
 с label:auto давало рваную сетку из десятка инпутов). */
    body.pro #platform-bar .rcard .frow > label { flex:0 0 220px; min-width:0; }
    body.pro #platform-bar .rcard .frow > input { flex:0 1 380px; }
    body.pro #platform-bar .frow > label.pf-flex1 { flex:1 1 auto; min-width:0; }
    body.pro #platform-bar .pf-mod-row > .pf-mod-label { flex:1 1 auto; min-width:0; }
    body.pro #platform-bar .pf-mod-row > input.pf-mod-price { flex:0 0 auto; max-width:none; }
    body.pro #platform-bar .pf-tier > input.pf-w8ch,
    body.pro #platform-bar .frow > input.pf-w60,
    body.pro #platform-bar .frow > input.pf-w80,
    body.pro #platform-bar .frow > input.pf-w90,
    body.pro #platform-bar .frow > input.pf-w100,
    body.pro #platform-bar .frow > input.pf-w110 {
        flex:0 0 auto; max-width:none;
    }
    body.pro #platform-bar .pf-anal-add-row > input.pf-anal-input {
        flex:0 0 auto; max-width:none;
    }
 /* липкая кнопка сохранения длинного конфига — не скролить обратно вниз/вверх */
    .pf-sticky-save { position:sticky; bottom:0; z-index:5; padding:8px 0 2px;
        background:var(--tg-theme-bg-color,#fff); }
 /* §ui: владелец платформы держит «Платформа» первоклассным табом на десктопе */
    body.pro.pf-owner #tab-platform { display:inline-flex !important; }
 /* platform dense rhythm helpers */
    .pf-mt4 { margin-top:4px; }
    .pf-mt6 { margin-top:6px; }
    .pf-mt8 { margin-top:8px; }
    .pf-mb6 { margin-bottom:6px; }
    .pf-mb8 { margin-bottom:8px; }
    .pf-gap6 { gap:6px; }
    .pf-wrap { flex-wrap:wrap; }
    .pf-flex1 { flex:1; }
    .pf-w60 { width:60px; }
    .pf-w80 { width:80px; }
    .pf-w90 { width:90px; }
    .pf-w100 { width:100px; }
    .pf-w110 { width:110px; }
    .pf-w8ch { width:8ch; }
    .pf-muted-11 { font-size:11px; }
    .pf-break-all { word-break:break-all; }
    .pf-tight-span { margin:0; }
 #platform-bar .hidden { display:none !important; }
 #platform-bar .pf-ro-banner { border-left:3px solid var(--accent,#1a8); }
 #platform-bar .pf-help-row { justify-content:flex-end; margin-bottom:2px; }
 #platform-bar .pf-badge-neg { color:var(--neg,#d11); }
 #platform-bar .pf-badge-lapsed { color:var(--neg,#d11); }
 #platform-bar .pf-badge-active { color:var(--pos,#1a8d3e); }
 #platform-bar .pf-dim { opacity:.6; }
 #platform-bar .pf-prewrap { white-space:pre-wrap; overflow-wrap:anywhere; }
 #platform-bar .pf-chip-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
 #platform-bar .pf-chip-sm { font-size:12px; }
 #platform-bar .pf-audit-details { display:inline-block; margin-left:6px; }
 #platform-bar .pf-audit-summary { cursor:pointer; font-size:11px; display:inline; }
 #platform-bar .pf-alert-card { border-left:3px solid var(--neg,#d11); }
 #platform-bar .pf-client-filter { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
 #platform-bar .pf-bundle { border-top:1px solid var(--tg-theme-hint-color,#eee); padding-top:8px; margin-top:8px; }
 #platform-bar .pf-bundle-name { font-weight:700; width:100%; margin-bottom:6px; }
 #platform-bar .pf-bundle-opt {
        display:flex; align-items:flex-start; gap:6px; margin:0; padding:6px 8px;
        border:1px solid var(--tg-theme-hint-color,#ddd); border-radius:8px;
        font-size:12px; line-height:1.35; min-width:0;
    }
 #platform-bar .pf-bundle .pf-bundle-grid {
        display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px;
    }
 #platform-bar .pf-cab-section { margin-top:8px; }
 #platform-bar .pf-cab-section:first-child { margin-top:0; }
 #platform-bar .pf-cab-action-grid {
        display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:4px;
    }
 #platform-bar .pf-cab-action-grid .rk {
        min-height:44px; padding:8px 10px; font-size:12px; white-space:normal; line-height:1.25;
        text-align:center;
    }
 #platform-bar .pf-cab-danger { margin-top:8px; }
 #platform-bar .pf-cab-danger .pf-del { width:100%; }
 #platform-bar .pf-billing-kpi { margin-bottom:10px; }
 #platform-bar .pf-billing-search { margin-bottom:8px; }
 #platform-bar .pf-billing-search input { width:100%; max-width:none; }
 #platform-bar .pf-billing-table-wrap { overflow:auto; border:1px solid var(--ws-border); border-radius:12px; }
 #platform-bar .pf-billing-table { width:100%; border-collapse:collapse; font-size:12px; }
 #platform-bar .pf-billing-table th,
 #platform-bar .pf-billing-table td { padding:8px 10px; border-bottom:1px solid var(--ws-border); text-align:left; }
 #platform-bar .pf-billing-table th { font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--ui-muted-strong,#3f4b5a); }
 #platform-bar .pf-billing-table tr:last-child td { border-bottom:0; }
 #platform-bar .pf-bill-num { font-variant-numeric:tabular-nums; white-space:nowrap; }
 #platform-bar .pf-bill-badge {
        display:inline-block; padding:2px 7px; border-radius:999px; font-size:10px; font-weight:700;
    }
 #platform-bar .pf-bill-badge.is-ok { color:#0a5c28; background:color-mix(in srgb,#1a8d3e 16%,var(--tg-theme-bg-color,#fff)); }
 #platform-bar .pf-bill-badge.is-warn { color:#7a4a00; background:color-mix(in srgb,#d98a00 16%,var(--tg-theme-bg-color,#fff)); }
 #platform-bar .pf-bill-badge.is-bad { color:#8f1212; background:color-mix(in srgb,#d11 14%,var(--tg-theme-bg-color,#fff)); }
    @media (max-width: 760px) {
 #platform-bar .pf-bundle .pf-bundle-grid,
 #platform-bar .pf-cab-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #platform-bar .pf-billing-table-wrap { overflow:visible; border:0; }
 #platform-bar .pf-billing-table,
 #platform-bar .pf-billing-table tbody { display:block; }
 #platform-bar .pf-billing-table thead { display:none; }
 #platform-bar .pf-billing-table tr {
            display:block; margin-bottom:8px; padding:6px 10px;
            border:1px solid var(--ws-border); border-radius:12px;
            background:var(--tg-theme-bg-color,#fff);
        }
 #platform-bar .pf-billing-table td {
            display:flex; align-items:center; justify-content:space-between; gap:12px;
            min-height:34px; padding:6px 0; text-align:right;
        }
 #platform-bar .pf-billing-table td::before {
            content:attr(data-label); flex:0 0 42%; color:var(--tg-theme-hint-color,#68717d);
            font-size:10px; font-weight:700; text-align:left; text-transform:uppercase;
            letter-spacing:.04em;
        }
 #platform-bar .pf-billing-table td:last-child { border-bottom:0; }
 #platform-bar .pf-bill-actions .rk { min-height:44px; }
    }
    @media (max-width: 380px) {
 #platform-bar .pf-bundle .pf-bundle-grid,
 #platform-bar .pf-cab-action-grid { grid-template-columns:1fr; }
    }
 #platform-bar .pf-mod-row { gap:6px; align-items:center; margin:3px 0; }
 #platform-bar .pf-mod-label { flex:1; }
 #platform-bar .pf-mod-price { width:8ch; text-align:right; }
 #platform-bar .pf-mod-h { font-weight:700; margin:12px 0 2px; }
 #platform-bar .pf-mod-muted { color:var(--tg-theme-hint-color,#888); }
 #platform-bar .pf-mod-price-total { font-weight:700; margin:8px 0; }
 #platform-bar .pf-remain-num { font-size:15px; }
 #platform-bar .pf-anal-add-row { gap:6px; margin-top:6px; }
 #platform-bar .pf-anal-input { width:160px; }
 #platform-bar .pf-net-line { margin-top:6px; font-size:15px; }
 #platform-bar .pf-cab-top-actions { margin-top:6px; }
 #platform-bar .pf-newcab-toggle { margin-bottom:6px; }
 #platform-bar .pf-cab-search { gap:6px; margin:6px 0; }
 #platform-bar .pf-cab-search #pf-cab-q { flex:1; min-width:0; }
 #platform-bar .pf-cab-chips { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
 /* Platform workspace. */
 #platform-bar {
        width:min(1600px,calc(100% - 20px));
        max-width:none; margin:10px auto 28px; box-sizing:border-box;
    }
    .pf-freshness {
        margin:0; padding:0 4px; color:var(--tg-theme-hint-color,#68717d); font-size:10px; white-space:nowrap;
    }
    .pf-hero-actions .help-q { width:42px; height:42px; padding:0; }
    .platform-panel-head {
        display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin:0 0 9px; padding:4px 2px;
    }
    .platform-panel-head h2 { margin:2px 0 3px; font-size:19px; line-height:1.12; letter-spacing:-.2px; }
    .platform-panel-head p { margin:0; color:var(--tg-theme-hint-color,#68717d); font-size:11.5px; line-height:1.4; }
    .platform-panel-body { min-width:0; }
    .platform-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
    .platform-kpi {
        display:flex; flex-direction:column; min-height:88px; padding:12px; border:1px solid var(--ws-border);
        border-radius:14px; background:var(--tg-theme-bg-color,#fff); box-shadow:0 4px 18px rgba(18,31,53,.035);
    }
    .platform-kpi.is-primary { background:linear-gradient(145deg,var(--ws-accent-soft),var(--tg-theme-bg-color,#fff)); }
    .platform-kpi span { color:var(--tg-theme-hint-color,#68717d); font-size:10px; font-weight:700; }
    .platform-kpi b { margin:9px 0 3px; font-size:18px; letter-spacing:-.25px; }
    .platform-kpi small { color:var(--tg-theme-hint-color,#68717d); font-size:10px; line-height:1.3; }
    .platform-overview-note { margin-top:7px; color:var(--tg-theme-hint-color,#68717d); font-size:10px; }
    .platform-mode-banner {
        display:flex; align-items:center; gap:9px; margin-bottom:8px; padding:10px 12px; border:1px solid var(--ws-border);
        border-left:3px solid var(--tg-theme-button-color,#3390ec); border-radius:12px; background:var(--ws-accent-soft);
    }
    .platform-mode-banner > div { display:flex; flex-direction:column; gap:2px; }
    .platform-mode-banner small {
        color:var(--ui-muted-strong,color-mix(in srgb,var(--tg-theme-text-color,#111) 90%,#1f2937));
        font-size:10px;
    }
 #platform-bar .platform-panel-body > .rcard,
 #platform-bar .platform-panel-body > div > .rcard { border-radius:13px; border-color:var(--ws-border); }
    body.pro #platform-bar #cl-list { display:block; }
    .pf-cab-chips { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
    .pf-cab-chips-row { display:flex; flex-wrap:wrap; gap:6px; }
    .pf-cab-view-toggle { margin-left:auto; }
    .pf-cab-table .num { text-align:right; font-variant-numeric:tabular-nums; }
    .pf-cab-table-acts { white-space:nowrap; }
    body.pro #platform-bar #pf-cab-list.is-table-view {
        display:block; grid-template-columns:none;
    }
    .pf-context-chips { gap:4px; max-width:42ch; }
    .pf-context-chips .pf-chip {
        font-size:10px; padding:2px 7px; min-height:22px; pointer-events:none;
        color:var(--ui-muted-strong,color-mix(in srgb,var(--tg-theme-text-color,#111) 84%,var(--tg-theme-hint-color,#374151)));
        background:rgba(127,127,127,.10);
    }
    .pf-status-badge {
        display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px;
        font-size:11px; font-weight:600;
    }
    .pf-status-badge.is-active {
        color:#1a7f37; background:rgba(26,127,55,.10);
    }
    .pf-status-badge.is-off {
        color:var(--ui-muted-strong,color-mix(in srgb,var(--tg-theme-text-color,#111) 84%,var(--tg-theme-hint-color,#374151)));
        background:rgba(127,127,127,.12);
    }
 #platform-bar .pf-cab-metric {
        min-width:0;
    }
 #platform-bar .pf-cab-metric span {
        display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
        font-size:10px; line-height:1.2;
    }
    .set-more-help {
        margin-top:10px; border-radius:10px; border:1px solid rgba(127,127,127,.14);
        background:rgba(127,127,127,.04); padding:6px 10px;
    }
    .set-more-help > summary {
        cursor:pointer; font-size:12px; font-weight:600; color:var(--tg-theme-link-color,#3390ec);
        list-style:none;
    }
    .set-more-help > summary::-webkit-details-marker { display:none; }
    .set-more-help[open] > summary { margin-bottom:6px; }
    .pf-client-table-wrap {
        overflow:auto; border:1px solid var(--ws-border); border-radius:13px; background:var(--tg-theme-bg-color,#fff);
    }
    .pf-client-table { width:100%; border-collapse:separate; border-spacing:0; font-size:11px; }
    .pf-client-table th {
        padding:8px 9px; border-bottom:1px solid var(--ws-border); color:var(--tg-theme-hint-color,#68717d);
        font-size:9px; letter-spacing:.04em; text-align:left; text-transform:uppercase; white-space:nowrap;
    }
    .pf-client-table td { padding:8px 9px; border-bottom:1px solid var(--ws-border); vertical-align:middle; }
    .pf-client-table tbody tr:last-child td { border-bottom:0; }
    .pf-client-detail { max-width:330px; color:var(--tg-theme-hint-color,#68717d); }
    .pf-client-actions { display:flex; justify-content:flex-end; gap:4px; }
    .pf-client-actions .rk, .pf-client-actions .del { min-height:28px; padding:4px 7px; font-size:10px; white-space:nowrap; }
    .pf-client-stack { display:none; }
 #platform-bar .pf-client-filter {
        position:sticky; top:4px; z-index:3; padding:5px; border:1px solid var(--ws-border);
        border-radius:11px; background:color-mix(in srgb,var(--tg-theme-bg-color,#fff) 94%,transparent);
        backdrop-filter:blur(12px);
    }
 #platform-bar #pf-cab-list .rcard { border-radius:13px; }
 #platform-bar .pf-more { margin-top:7px; padding-top:7px; border-top:1px solid var(--ws-border); }
 #platform-bar [data-workspace-panel="config"] .rcard { padding:12px 14px; }
 /* Single column by default; 2-col only ≥860px (see below). Never force 2-col
 after ecosystem.css mobile override — later sheet would win the cascade. */
    .pf-config-grid { display:grid; gap:7px; align-items:start; }
    .pf-config-card { min-width:0; margin:0 !important; }
    .pf-config-wide, .pf-config-save { grid-column:1 / -1; }
    .pf-config-card .frow { align-items:center; margin:7px 0; }
    body.pro #platform-bar .pf-config-card .frow > label { flex:0 0 170px; }
    body.pro #platform-bar .pf-config-card .frow > input { flex:1 1 auto; max-width:none; min-width:0; }
    .pf-config-save {
        bottom:6px; display:flex; justify-content:flex-end; padding:8px; border:1px solid var(--ws-border);
        border-radius:13px; background:color-mix(in srgb,var(--tg-theme-bg-color,#fff) 92%,transparent);
        backdrop-filter:blur(14px);
    }
    @media (max-width:700px) {
        .pf-config-grid { grid-template-columns:1fr; }
        .pf-config-wide, .pf-config-save { grid-column:auto; }
        .pf-config-save .rk { width:100%; min-height:46px; }
    }
 #platform-bar [data-workspace-panel="slo"] .fin { white-space:normal; line-height:1.45; }
    body.dense .workspace-layout { gap:7px; }
    body.dense .workspace-nav { padding:5px; }
    body.dense .workspace-nav-item { min-height:35px; padding:5px 7px; }
    body.dense .cab-summary-card { min-height:88px; padding:10px; }
    body.dense #settings-bar .cab-panel-stack > .set-section { padding: 8px 10px; }
    body.dense .platform-kpi { min-height:72px; padding:9px; }
    body.dense #platform-bar .rcard { padding:6px 8px; }


/* --- from ecosystem.css L2729-2884 --- */
/* Platform workspace cards */
.pf-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  margin-bottom: 6px;
}

.pf-card-head > b {
  font-size: 14px;
  line-height: 1.3;
}

.pf-card-meta,
.pf-card-body {
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 12px;
  line-height: 1.4;
}

.pf-card-body {
  color: var(--tg-theme-text-color, #18212f);
  font-size: 13px;
  white-space: pre-wrap;
}

.pf-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-left: auto;
}

.pf-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  background: var(--ui-surface-muted);
  color: var(--tg-theme-hint-color, #68717d);
}

.pf-badge.is-ok {
  color: var(--pos, #1a8d3e);
  background: color-mix(in srgb, var(--pos, #1a8d3e) 11%, transparent);
}

.pf-badge.is-warn {
  color: #9a6200;
  background: color-mix(in srgb, #d98a00 12%, transparent);
}

.pf-review-stars {
  letter-spacing: 1px;
  color: #d98a00;
  font-size: 13px;
}

.pf-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.pf-chip.active {
  color: var(--ui-on-accent, #fff);
  background: var(--ui-accent-solid, color-mix(in srgb, var(--tg-theme-button-color, #3390ec) 44%, #041525));
  border-color: transparent;
}

.pf-feedback-dir {
  font-size: 14px;
}

.pf-feedback-status {
  margin-top: 8px;
}

.pf-feedback-reply {
  margin-top: 8px;
}

.pf-card-actions {
  margin-top: 8px;
}

.pf-cab-id {
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 11px;
  font-weight: 700;
}

.pf-cab-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 6px 0 8px;
}

.pf-cab-metric {
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-muted);
}

.pf-cab-metric span {
  display: block;
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 10px;
  font-weight: 700;
}

.pf-cab-metric b {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.pf-cab-stats-line {
  display: block;
  color: var(--tg-theme-hint-color, #68717d);
  font-size: 11px;
}

.pf-section-label {
  margin-bottom: 6px;
  color: var(--ui-muted-strong, #3f4b5a);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pf-review-card.is-muted,
.pf-feedback-card.is-muted {
  opacity: .72;
}

@media (max-width: 700px) {
  .pf-cab-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pf-ops-kpis.platform-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Platform config + monetization → ecosystem_platform_config.css. */

/* platform modal min-width reset on narrow viewports (owning extract). */
@media (max-width:760px) {
    body.pro #pf-members-modal .modal,
    body.pro #pf-billing-modal .modal,
    body.pro #pf-quotas-modal .modal {
        width:100%; max-width:100%; min-width:0;
    }
    .pf-cab-view-toggle { margin-left:0; }
    .pf-cab-view-toggle .rv {
        min-height:40px; min-width:0; padding:4px 8px; gap:5px;
    }
    .pf-cab-view-toggle .rv span { display:inline; }
}
