/* Operator panel (/community/{slug}/admin/*): the condensed operate-page density, layered on the public
   surface's look. Every selector starts with `.is-public-surface .op-admin`, the wrapper each operator
   page puts inside its TenantBrandedLayout, so nothing here reaches another public page. Classes
   introduced here use the `opa-` prefix (`op-` belongs to the operator pitch page). Control heights
   apply from 769px up; under 768px the public surface's 44px touch floor holds. */

/* Header and tabs */
.is-public-surface .op-admin .operator-admin-header { margin: 16px 0 10px; align-items: center; }
.is-public-surface .op-admin .operator-admin-logo { width: 30px; height: 30px; }
.is-public-surface .op-admin .operator-admin-titles { gap: 2px; }
.is-public-surface .op-admin .operator-admin-name { font-size: 18px; line-height: 1.15; }
.is-public-surface .op-admin .operator-subnav { gap: 0; margin: 0 0 14px; }
.is-public-surface .op-admin .operator-subnav .subnav-tab { padding: 6px 12px 7px; font-size: 13px; line-height: 1.3; }
.is-public-surface .op-admin .operator-subnav .subnav-tab:first-child { padding-left: 2px; }

/* Page head: the title and its one-line summary share a baseline; actions sit at the right. */
.is-public-surface .op-admin .opa-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 0 0 12px; }
.is-public-surface .op-admin .opa-title { margin: 0; font-family: var(--font-display); font-size: 20px; font-weight: 600; line-height: 1.2; color: var(--ink-1); }
.is-public-surface .op-admin .opa-desc { flex: 1 1 280px; margin: 0; max-width: 90ch; font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.is-public-surface .op-admin .opa-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }

/* Panels: one bordered panel per block, half the old padding and spacing. */
.is-public-surface .op-admin .form-panel { gap: 8px; margin: 0 0 12px; padding: 12px 14px; }
.is-public-surface .op-admin .form-panel h3 { font-size: 15px; }
.is-public-surface .op-admin .form-panel h4 { margin: 4px 0 0; font-size: 13.5px; }
.is-public-surface .op-admin .form-panel p { margin: 0; font-size: 13.5px; line-height: 1.5; }
.is-public-surface .op-admin .opa-panel-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.is-public-surface .op-admin .opa-panel-head h3 { margin: 0; }
.is-public-surface .op-admin .opa-count { margin-left: 6px; font-family: var(--font-body); font-size: 13px; font-weight: 400; color: var(--ink-3); }
.is-public-surface .op-admin .opa-panel-head .opa-head-actions { margin-left: auto; }
.is-public-surface .op-admin .opa-panel-desc { margin: -4px 0 0; font-size: 12.5px; color: var(--ink-3); }

/* A table panel: the table runs to the panel's edges, the head sits on the panel's own band. */
.is-public-surface .op-admin .form-panel.opa-table-panel { gap: 0; padding: 0; overflow: hidden; }
.is-public-surface .op-admin .opa-table-panel > .opa-panel-head { padding: 10px 14px; border-bottom: 1px solid var(--hair); }
.is-public-surface .op-admin .opa-table-panel > .opa-panel-desc { margin: 0; padding: 8px 14px 0; }
.is-public-surface .op-admin .opa-table-panel > .opa-panel-body { padding: 10px 14px; }
.is-public-surface .op-admin .opa-table-panel .table-responsive,
.is-public-surface .op-admin .opa-table-panel .table-wrap { margin: 0; }
.is-public-surface .op-admin .opa-table { margin: 0; font-size: 13px; }
.is-public-surface .op-admin .opa-table th { padding: 8px 12px; font-size: 10.5px; background: #05070a; border-bottom: 1px solid var(--hair); white-space: nowrap; }
.is-public-surface .op-admin .opa-table td { padding: 7px 12px; line-height: 1.35; vertical-align: middle; border-bottom: 1px solid var(--hair); }
.is-public-surface .op-admin .opa-table th:first-child,
.is-public-surface .op-admin .opa-table td:first-child { padding-left: 14px; }
.is-public-surface .op-admin .opa-table th:last-child,
.is-public-surface .op-admin .opa-table td:last-child { padding-right: 14px; }
.is-public-surface .op-admin .opa-table tbody tr:last-child td { border-bottom: 0; }
.is-public-surface .op-admin .opa-table .right,
.is-public-surface .op-admin .opa-table .opa-end { text-align: right; white-space: nowrap; }
.is-public-surface .op-admin .opa-table .opa-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.is-public-surface .op-admin .opa-table td a { font-weight: 500; color: var(--ink-1); }
.is-public-surface .op-admin .opa-table td a:hover { color: var(--accent); }
.is-public-surface .op-admin .opa-sub { display: block; margin-top: 2px; font-size: 12px; line-height: 1.35; color: var(--ink-3); }
.is-public-surface .op-admin .opa-sub code { font-size: 11.5px; }
.is-public-surface .op-admin .opa-end > * + * { margin-left: 6px; }
.is-public-surface .op-admin .opa-end form { display: inline; margin: 0; }
.is-public-surface .op-admin .opa-table-panel > .empty-state,
.is-public-surface .op-admin .opa-table-panel > .opa-empty { margin: 12px 14px; }
.is-public-surface .op-admin .opa-empty { margin: 0; padding: 10px 0; font-size: 13px; color: var(--ink-3); }

/* A row's inline editor opens as a ruled band under the table, inside the same panel. */
.is-public-surface .op-admin .opa-inline-edit { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 12px 14px; border: 0; border-top: 1px solid var(--hair); border-radius: 0; background: rgba(255, 255, 255, 0.015); }
.is-public-surface .op-admin .opa-inline-edit h3 { font-size: 14px; }
.is-public-surface .op-admin .opa-saved { margin: 0; padding: 8px 14px; border-top: 1px solid var(--hair); font-size: 13px; color: var(--ok-ink); }

/* Notes and banners: one line where they fit. */
.is-public-surface .op-admin .op-license-banner,
.is-public-surface .op-admin .op-tenant-banner { margin: 0 0 12px; padding: 8px 12px; font-size: 13.5px; line-height: 1.45; }
.is-public-surface .op-admin .op-tenant-banner strong { display: inline; margin: 0 6px 0 0; font-size: 13.5px; }
.is-public-surface .op-admin .form-panel.danger-left-thin,
.is-public-surface .op-admin .form-panel.success-left-thin { padding: 8px 12px; gap: 4px; font-size: 13.5px; }
.is-public-surface .op-admin .form-panel.danger-left-thin ul { margin: 0; padding-left: 18px; }

/* Facts: a micro-label over a value, wrapping as one strip. */
.is-public-surface .op-admin .opa-facts { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0; }
.is-public-surface .op-admin .opa-facts dt { margin: 0 0 2px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ink-3); }
.is-public-surface .op-admin .opa-facts dd { margin: 0; font-size: 13.5px; line-height: 1.35; color: var(--ink-1); overflow-wrap: anywhere; }
.is-public-surface .op-admin .opa-facts dd .help-text { font-size: 12px; }


/* Two panels side by side on a wide screen. */
.is-public-surface .op-admin .opa-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 0 12px; align-items: start; }

/* A rarely used form, collapsed behind its title. */
.is-public-surface .op-admin .opa-collapse { margin: 0 0 12px; border: 1px solid var(--hair); border-radius: 6px; background: var(--panel); }
.is-public-surface .op-admin .opa-collapse > summary { display: flex; align-items: center; gap: 8px; padding: 10px 14px; cursor: pointer; list-style: none; font-family: var(--font-display); font-size: 15px; font-weight: 500; color: var(--ink-1); }
.is-public-surface .op-admin .opa-collapse > summary::-webkit-details-marker { display: none; }
.is-public-surface .op-admin .opa-collapse > summary::before { content: "+"; width: 12px; color: var(--ink-3); font-family: var(--font-body); }
.is-public-surface .op-admin .opa-collapse[open] > summary::before { content: "\2013"; }
.is-public-surface .op-admin .opa-collapse > summary:hover { color: var(--accent); }
.is-public-surface .op-admin .opa-collapse > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.is-public-surface .op-admin .opa-collapse > summary .opa-collapse-hint { margin-left: 4px; font-family: var(--font-body); font-size: 12.5px; font-weight: 400; color: var(--ink-3); }
.is-public-surface .op-admin .opa-collapse > .opa-collapse-body { display: flex; flex-direction: column; gap: 10px; padding: 2px 14px 14px; }
.is-public-surface .op-admin .opa-collapse > .opa-collapse-body > .form-panel { margin: 0; padding: 0; border: 0; background: none; }
.is-public-surface .op-admin .opa-collapse .form-panel { margin: 0; }
/* A shared form component's own title repeats the summary above it. */
.is-public-surface .op-admin .opa-collapse-body > .form-panel > h3:first-child { display: none; }
.is-public-surface .op-admin .bundle-handoff-chip-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* Forms: tighter fields, sized grids. */
.is-public-surface .op-admin .form-group { gap: 4px; }
.is-public-surface .op-admin .form-grid { gap: 10px 16px; }
.is-public-surface .op-admin .opa-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; max-width: 920px; }
.is-public-surface .op-admin .opa-fields > .opa-full { grid-column: 1 / -1; }
.is-public-surface .op-admin .opa-form-section { margin: 6px 0 0; padding-top: 10px; border-top: 1px solid var(--hair); font-family: var(--font-display); font-size: 14px; font-weight: 500; color: var(--ink-1); }
.is-public-surface .op-admin .form-actions { gap: 8px; margin-top: 2px; }
.is-public-surface .op-admin .opa-inline-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; }
.is-public-surface .op-admin .opa-inline-form .form-group { flex: 1 1 220px; }
.is-public-surface .op-admin .opa-inline-form .form-group.opa-narrow { flex: 0 1 220px; }
.is-public-surface .op-admin fieldset.form-group { margin: 0; padding: 0; border: 0; }
.is-public-surface .op-admin fieldset.form-group legend { margin-bottom: 4px; font-size: var(--fs-meta); color: var(--ink-2); }
.is-public-surface .op-admin .post-places .label-check { display: inline-flex; margin-right: 14px; }

@media (min-width: 769px) {
    .is-public-surface .op-admin .btn { min-height: 30px; padding: 0 12px; font-size: 13px; }
    .is-public-surface .op-admin .btn.small,
    .is-public-surface .op-admin td .btn,
    .is-public-surface .op-admin .opa-head-actions .btn,
    .is-public-surface .op-admin .op-license-banner .btn,
    .is-public-surface .op-admin .opa-btn-sm { min-height: 26px; padding: 0 10px; font-size: 12.5px; }
    .is-public-surface .op-admin .form-panel input,
    .is-public-surface .op-admin .form-panel select,
    .is-public-surface .op-admin .form-panel textarea,
    .is-public-surface .op-admin .input-bare { min-height: 32px; padding: 5px 10px; font-size: 13.5px; }
    .is-public-surface .op-admin .input-bare[type="file"] { padding: 4px 6px; }
}

/* The header's "View public page" stays a quiet link; every other .btn-sm in the panel is a small outlined button. */
.is-public-surface .op-admin .btn.btn-sm:not(.opa-link) {
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid var(--hair-strong);
    border-radius: 4px;
    font-size: 12.5px;
    color: var(--ink-1) !important;
}
.is-public-surface .op-admin .btn.btn-sm:not(.opa-link):hover { border-color: rgba(255, 255, 255, 0.32); }
.is-public-surface .op-admin .btn.btn-sm.danger:not(.opa-link) { color: var(--danger-ink) !important; border-color: rgba(255, 138, 138, 0.35); }

@media (max-width: 768px) {
    .is-public-surface .op-admin .btn.btn-sm:not(.opa-link) { min-height: 44px; padding: 0 14px; }
    .is-public-surface .op-admin .opa-fields { grid-template-columns: minmax(0, 1fr); }
    .is-public-surface .op-admin .opa-head-actions { margin-left: 0; }
    .is-public-surface .op-admin .opa-table .col-hide-sm { display: none; }
}

/* The shared ban form keeps the slot of a field it hides, so the grid does not reflow. */
.is-public-surface .op-admin .field-hidden { visibility: hidden; }
