/* Shared admin workspace layout. Product styling remains in styles.css. */
.admin-control-panel { max-width: 850px; }
.admin-control-effect { padding: 16px 0; border-block: 1px solid #dce5ef; margin: 16px 0; }
.admin-control-effect p { margin-bottom: 0; }
.admin-control-actions, .admin-record-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.admin-record-actions { margin-top: 12px; font-size: 12.5px; }
.admin-control-form { max-width: 640px; }
.admin-control-form textarea { resize: vertical; }
.admin-control-form .checkbox-row { align-items: flex-start; }
@media (max-width: 600px) {
  .admin-record-actions a { display: inline-flex; min-height: 44px; align-items: center; }
  .admin-control-actions > * { width: 100%; text-align: center; }
}
.has-admin-shell .admin-page {
  width: 100%;
  max-width: 1480px;
  margin: 0 auto;
  padding: 22px 28px 40px;
  font-size: 0.875rem;
}

.admin-shell {
  grid-template-columns: 220px minmax(0, 1fr);
}

.admin-sidebar {
  padding: 18px 12px;
  box-shadow: none;
}

.admin-sidebar-nav { gap: 14px; }
.admin-sidebar-link { min-height: 36px; padding: 7px 10px; font-size: 0.82rem; font-weight: 600; }
.admin-nav-group > p { font-size: 0.63rem; font-weight: 700; }
.admin-sidebar-account { font-size: 0.75rem; }
.admin-environment { padding: 4px 8px; margin-block: 16px 8px; font-weight: 650; }

.admin-page-header {
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.admin-page-header > div { min-width: 0; }
.admin-page-header h1 { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.55rem); line-height: 1.3; letter-spacing: -0.025em; font-weight: 750; }
.admin-page-header p,
.admin-page-header p:last-child { margin: 5px 0 0; font-size: 0.81rem; line-height: 1.5; }
.admin-page-header .eyebrow { margin: 0 0 5px; font-size: 0.64rem; }
.back-link { display: inline-block; margin-bottom: 7px; font-size: 0.77rem; font-weight: 600; }
.admin-header-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 16px; }
.admin-customer-header { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.admin-customer-owner { color: var(--stone); overflow-wrap: anywhere; }
.admin-customer-header .admin-header-tools { max-width: 420px; }
.support-copy { gap: 7px; margin: 0; color: var(--stone); font-size: 0.72rem; }
.admin-reference-label { max-width: 300px; overflow-wrap: anywhere; }
.admin-mobile-record-id { display: none; }
.support-copy .button { min-height: 30px; padding: 5px 9px; font-size: 0.72rem; font-weight: 600; }
.admin-header-tools .support-copy .button { width: auto; flex: 0 0 auto; }
.admin-utility-link { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; color: #0f766e; font-size: 0.8rem; font-weight: 650; }
.admin-utility-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.admin-card-footer { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line); }

.admin-record-layout { display: grid; grid-template-columns: 156px minmax(0, 1fr); align-items: start; gap: 22px; }
.admin-record-sections { position: sticky; top: 20px; min-width: 0; }
.admin-record-nav { border-right: 1px solid var(--line); padding-right: 12px; }
.admin-section-group { display: grid; gap: 3px; }
.admin-record-nav .admin-section-group + .admin-section-group { margin-top: 19px; }
.admin-section-group > p { margin: 0 9px 5px; color: var(--stone); font-size: 0.65rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.admin-section-link { display: flex; align-items: center; min-width: 0; min-height: 36px; border-radius: 7px; padding: 8px 9px; color: var(--stone); font-size: 0.79rem; font-weight: 550; line-height: 1.4; }
.admin-section-link:hover { color: var(--ink); background: #f1f5f4; }
.admin-section-link.is-active { color: #0f766e; background: #e8f8f4; font-weight: 700; }
.admin-record-main { min-width: 0; container-type: inline-size; }
.admin-tab-panel { display: grid; gap: 16px; min-width: 0; }
.admin-section-picker { display: none; }
.admin-section-tabs { margin-bottom: 16px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.admin-section-tabs .admin-section-group { display: flex; flex-wrap: wrap; gap: 5px; }
.admin-section-tabs .admin-section-link { padding-inline: 12px; }
.admin-section-tabs + .admin-section-picker { display: none; }

.admin-panel { min-width: 0; padding: 18px; border-radius: 10px; box-shadow: 0 1px 3px rgba(15,23,42,0.035); }
.admin-page > .admin-panel + .admin-panel { margin-top: 16px; }
.admin-panel > h2 { margin: 0 0 12px; font-size: 1rem; line-height: 1.4; font-weight: 700; }
.admin-panel h3 { font-size: 0.88rem; font-weight: 650; }
.panel-heading { align-items: center; gap: 12px; margin-bottom: 14px; padding-bottom: 12px; }
.panel-heading h2 { font-size: 1rem; font-weight: 700; }
.panel-heading p { font-size: 0.78rem; line-height: 1.5; }
.panel-heading > div { min-width: 0; }
.status { padding: 4px 8px; font-size: 0.7rem; font-weight: 650; }
.field-note { font-size: 0.78rem; line-height: 1.55; }
.admin-results-summary { margin: 10px 0; font-size: 0.76rem; }
.admin-record-count { padding: 5px 9px; font-size: 0.72rem; font-weight: 650; white-space: nowrap; }
.notice { font-size: 0.85rem; line-height: 1.5; }
.empty-state { padding: 24px 16px; font-size: 0.85rem; }
.empty-state.compact { padding: 20px 14px; }

.support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
.admin-detail-grid { gap: 14px; }
.admin-booking-detail-grid { gap: 14px; }
.admin-booking-stack { gap: 14px; }
.status-list > div { gap: 12px; padding-block: 8px; font-size: 0.82rem; line-height: 1.5; }
.support-record .support-fields { margin-top: 8px; }
.support-fields dt { color: var(--stone); }
.support-fields dd { color: var(--ink); }
.support-links { gap: 7px; margin: 12px 0; }
.support-links .button { min-height: 34px; padding: 6px 11px; font-size: 0.77rem; font-weight: 600; }
.account-summary { margin: 0; box-shadow: none; border: 1px solid var(--line); border-radius: 9px; }
.account-summary > div { padding: 12px 15px; }
.account-summary strong { font-size: 1rem; }
.account-summary span { font-size: 0.72rem; }

.admin-filter-panel { min-width: 0; margin: 0 0 14px; border: 1px solid var(--line); border-radius: 9px; padding: 12px 14px; background: #f8faf9; }
.admin-filter-panel > summary { display: none; cursor: pointer; color: var(--ink); font-size: 0.82rem; font-weight: 650; }
.admin-tab-panel > .admin-filter-panel { margin-bottom: 0; }
.admin-filterbar { min-width: 0; }
.admin-filter-primary { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; }
.admin-filter-field { display: grid; flex: 1 1 110px; min-width: 0; max-width: 190px; gap: 5px; margin: 0; color: var(--stone); font-size: 0.72rem; font-weight: 550; }
.admin-filter-field.is-search { flex: 2 1 190px; max-width: none; }
.admin-filter-field input,
.admin-filter-field select { min-width: 0; width: 100%; min-height: 36px; height: 36px; border-color: #d5dfe2; border-radius: 6px; padding: 6px 8px; background: #fff; color: var(--ink); font-size: 0.8rem; font-weight: 500; }
.admin-filter-field input::placeholder { color: var(--stone); font-weight: 400; }
.admin-filter-dates { display: flex; flex: 0 1 275px; min-width: 250px; gap: 8px; }
.admin-filter-dates .admin-filter-field { flex: 1 1 0; }
.admin-filter-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.admin-filter-actions button { min-height: 36px; padding: 7px 12px; font-size: 0.77rem; font-weight: 600; }
.admin-filter-reset { display: inline-flex; align-items: center; min-height: 36px; padding-inline: 3px; color: var(--stone); font-size: 0.76rem; }
.admin-filter-reset:hover { color: var(--ink); text-decoration: underline; }
.admin-filter-more { margin-top: 8px; }
.admin-filter-more > summary { width: fit-content; min-height: 28px; padding-block: 5px; color: #0f766e; cursor: pointer; font-size: 0.75rem; font-weight: 600; }
.admin-filter-count { display: inline-flex; margin-left: 7px; border-radius: 999px; padding: 1px 6px; background: #e2f4ee; color: #0f766e; font-size: 0.67rem; font-weight: 650; }
.admin-filter-caption { margin-left: auto; color: var(--stone); font-size: 0.71rem; font-weight: 400; white-space: nowrap; }
.admin-filter-secondary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 7px; border-top: 1px solid var(--line); padding-top: 10px; }
.admin-filter-secondary .admin-filter-field { max-width: none; }
.admin-filter-panel :focus-visible,
.admin-section-link:focus-visible,
.admin-section-picker :focus-visible,
.admin-record-details > summary:focus-visible { outline: 2px solid #0f766e; outline-offset: 3px; }

.admin-payment-summary { width: 100%; margin: 16px 0 12px; border-block: 1px solid #d8e8e3; background: #f4faf7; }
.admin-payment-total-group { padding: 15px 16px 10px; }
.admin-payment-total-group + .admin-payment-total-group { border-top: 1px solid #d8e8e3; }
.admin-payment-summary-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 13px; }
.admin-payment-summary-heading h3 { margin: 0; font-size: 0.78rem; font-weight: 650; }
.admin-payment-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; }
.admin-payment-totals > div { display: grid; min-width: 0; gap: 5px; }
.admin-payment-totals dt { color: var(--stone); font-size: 0.75rem; }
.admin-payment-totals dd { margin: 0; color: var(--ink); font-size: clamp(1.05rem, 1.6vw, 1.4rem); font-weight: 700; overflow-wrap: anywhere; }
.admin-payment-totals > div:last-child dd { color: #0f766e; }
.admin-payment-fees { margin-top: 10px; }
.admin-payment-fees > summary { min-height: 30px; padding: 6px 0; color: var(--stone); font-size: 0.74rem; cursor: pointer; }
.admin-payment-fees .support-fields { max-width: 700px; }

.support-records { display: block; margin: 0; }
.support-records > .support-record { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 6px 18px; border: 0; border-radius: 0; padding: 16px 0; background: transparent; }
.support-records > .support-record + .support-record { border-top: 1px solid var(--line); }
.support-records > .support-record:first-child { padding-top: 12px; }
.support-records .admin-record-heading { grid-column: 1; min-width: 0; }
.support-records .admin-record-heading strong { font-size: 0.86rem; font-weight: 650; line-height: 1.5; }
.support-records .admin-inline-link { color: var(--ink); }
.support-records .admin-inline-link:hover { color: #0f766e; }
.admin-record-time { grid-column: 2; grid-row: 1; margin: 2px 0 0; color: var(--stone); font-size: 0.74rem; line-height: 1.5; white-space: nowrap; }
.admin-record-facts { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 18px; margin: 7px 0 0; }
.admin-record-facts > div { min-width: 0; }
.admin-record-facts dt { margin-bottom: 4px; color: var(--stone); font-size: 0.72rem; line-height: 1.4; }
.admin-record-facts dd { margin: 0; font-size: 0.82rem; line-height: 1.45; overflow-wrap: anywhere; }
.admin-record-details { grid-column: 1 / -1; min-width: 0; }
.admin-record-details > summary { width: fit-content; min-height: 28px; padding-block: 5px; color: #0f766e; font-size: 0.74rem; cursor: pointer; }
.admin-record-details .support-fields { margin: 7px 0 0; padding: 5px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fafcfb; }
.admin-record-error { grid-column: 1 / -1; margin: 5px 0; color: #b13d3d; font-size: 0.8rem; }
.admin-view-notes { margin: 9px 0 12px; }
.admin-view-notes > summary { min-height: 28px; padding: 5px 0; color: var(--stone); font-size: 0.75rem; cursor: pointer; }
.admin-view-notes .field-note { margin: 5px 0 0; }

.admin-booking-list { gap: 0; }
.admin-booking-row { border: 0; border-radius: 0; padding: 16px 0; gap: 16px; font-size: 0.8rem; }
.admin-booking-row + .admin-booking-row { border-top: 1px solid var(--line); }
.admin-booking-row:hover { background: #f6fbf8; }
.admin-booking-row > div { gap: 4px; }
.admin-booking-money > strong { font-size: 0.88rem; }
.admin-booking-money small { font-size: 0.71rem; }
.admin-booking-payment { padding: 14px; }
.admin-booking-payments { margin-top: 16px; }
.admin-booking-payment-details { gap: 12px 20px; font-size: 0.8rem; }
.admin-booking-timetable { gap: 12px; }
.admin-booking-timetable li { padding-bottom: 10px; font-size: 0.84rem; }
.admin-booking-help { font-size: 0.78rem; }
.admin-booking-line { font-size: 0.85rem; }

.support-metrics { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-block: 14px; }
.support-metric { gap: 7px; border-radius: 9px; padding: 14px; }
.support-metric > strong { font-size: 1.4rem; font-weight: 700; }
.support-metric > span { font-size: 0.81rem; line-height: 1.5; font-weight: 600; }
.support-metric > small { font-size: 0.73rem; }
.support-metric-group { margin-top: 12px; padding-top: 7px; }
.support-metric-group > summary { min-height: 38px; font-size: 0.84rem; }
.support-slots { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.support-slots .support-record { padding: 12px; font-size: 0.8rem; }
.support-slots .support-record p { margin-bottom: 0; color: var(--stone); line-height: 1.5; }
.support-selection { padding: 14px; }
.support-selection legend { font-size: 0.84rem; }
.support-filters { gap: 10px; margin-block: 12px; }
.support-filters input,
.support-filters select { min-height: 38px; font-size: 0.84rem; }

.admin-search { margin-bottom: 16px; padding: 14px 16px; box-shadow: 0 1px 3px rgba(15,23,42,0.035); }
.admin-search label { font-size: 0.78rem; }
.admin-search > small { font-size: 0.74rem; }
.admin-search input,
.admin-search select { min-height: 36px; font-size: 0.81rem; }
.admin-search button { min-height: 36px; padding-block: 7px; font-size: 0.78rem; }
.admin-search > .support-filters { gap: 10px; }
.customer-row { font-size: 0.82rem; }
.customer-row strong { font-weight: 650; }
.customer-list-heading { font-size: 0.7rem; }
.business-user-list-heading { font-size: 0.66rem; }
.business-user-row { font-size: 0.8rem; gap: 12px; }
.business-user-signup { gap: 9px 16px; }
.business-user-signup dt { font-size: 0.66rem; }
.business-user-signup dd { font-size: 0.77rem; }
.business-user-signup-details { grid-column: 1 / -1; }
.business-user-signup-details > summary { min-height: 28px; padding-block: 5px; color: #0f766e; font-size: 0.74rem; cursor: pointer; }
.business-user-signup-details .business-user-signup { margin-top: 8px; }
.admin-service-row,
.admin-addon-row { padding-block: 15px; }
.admin-record-meta { gap: 5px 14px; font-size: 0.74rem; }
.admin-service-commercials { font-size: 0.76rem; }
.admin-addon-option-row { padding: 10px 12px; }
.admin-addon-option-meta { font-size: 0.76rem; }
.admin-control-stack { gap: 14px; }
.admin-control-card { padding: 16px; border-radius: 9px; }
.stack { gap: 12px; }
.stack label { font-size: 0.81rem; }
.stack input,
.stack select,
.stack textarea { min-width: 0; min-height: 38px; font-size: 0.84rem; }
.stack button { min-height: 38px; font-size: 0.81rem; }
.admin-pagination { gap: 10px; margin-top: 16px; }
.admin-pagination .button { min-height: 34px; padding: 6px 11px; font-size: 0.76rem; }
.admin-pagination > span { font-size: 0.75rem; }

@container (max-width: 920px) {
  .business-user-list-heading { display: none; }
  .business-user-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-user-identity { grid-column: 1 / -1; }
  .business-user-field-label { display: block; }
  .business-user-signup { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container (max-width: 760px) {
  .support-grid { grid-template-columns: minmax(0, 1fr); }
  .admin-addon-option-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .admin-addon-option-meta { justify-content: flex-start; flex-wrap: wrap; text-align: left; }
  .admin-booking-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-booking-money { text-align: left; }
  .admin-detail-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1199px) {
  .admin-record-layout { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .admin-record-sections { position: static; }
  .admin-record-nav { display: none; }
  .admin-section-picker { display: flex; align-items: end; gap: 8px; margin: 0; }
  .admin-section-picker label { display: grid; flex: 1; gap: 5px; color: var(--stone); font-size: 0.72rem; }
  .admin-section-picker select { min-width: 0; min-height: 40px; border-radius: 7px; font-size: 0.85rem; background: #fff; color: var(--ink); }
  .admin-section-picker.is-enhanced button { display: none; }
}

@media (max-width: 920px) {
  .admin-shell { display: block; }
  .has-admin-shell .admin-page { padding: 18px 20px 30px; }
  .admin-sidebar-link { min-height: 44px; font-size: 0.87rem; }
  .admin-mobile-header { min-height: 56px; }
  .admin-header-tools { justify-content: flex-start; }
  .admin-section-tabs { display: none; }
  .admin-section-tabs + .admin-section-picker { display: flex; margin-bottom: 14px; }
  .admin-record-time { white-space: normal; }
}

@media (max-width: 600px) {
  .has-admin-shell .admin-page { padding: 15px 14px 28px; }
  .admin-page-header { flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 14px; }
  .admin-page-header h1 { font-size: 1.3rem; }
  .admin-page-header p,
  .admin-page-header p:last-child { font-size: 0.78rem; }
  .admin-customer-header { gap: 8px; padding-bottom: 12px; }
  .admin-customer-header .admin-header-tools { gap: 4px 12px; max-width: none; }
  .admin-mobile-record-id { display: inline; margin-left: 7px; color: var(--stone); font-size: 0.75rem; font-weight: 500; letter-spacing: 0; }
  .admin-customer-header .support-copy { flex: 0 0 auto; }
  .admin-customer-header .admin-reference-label { display: none; }
  .admin-header-tools .status { font-size: 0.66rem; }
  .support-copy .button,
  .admin-utility-link { min-height: 44px; }
  .support-grid { grid-template-columns: minmax(0, 1fr); }
  .admin-panel { padding: 16px; }
  .admin-filter-panel { padding: 0 12px; }
  .admin-filter-panel > summary { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 9px 0; list-style: none; }
  .admin-filter-panel > summary::after { content: '+'; margin-left: 12px; font-size: 1.1rem; font-weight: 500; }
  .admin-filter-panel[open] > summary::after { content: '−'; }
  .admin-filter-panel[open] > summary { border-bottom: 1px solid var(--line); }
  .admin-filter-panel > summary .admin-filter-count { margin-right: 12px; }
  .admin-filterbar { padding: 12px 0; }
  .admin-filter-primary { gap: 10px; }
  .admin-filter-field,
  .admin-filter-field.is-search { flex: 1 1 130px; max-width: none; }
  .admin-filter-field.is-search { flex-basis: 100%; }
  .admin-filter-field input,
  .admin-filter-field select,
  .admin-filter-actions button { min-height: 44px; height: auto; font-size: 0.85rem; }
  .admin-filter-dates { flex: 1 0 100%; min-width: 0; }
  .admin-filter-actions { width: 100%; }
  .admin-filter-actions button { flex: 1; }
  .admin-filter-reset { min-height: 44px; padding-inline: 10px; }
  .admin-filter-more > summary,
  .admin-record-details > summary,
  .admin-view-notes > summary { min-height: 44px; padding-block: 12px; }
  .admin-filter-secondary { grid-template-columns: minmax(0, 1fr); }
  .support-fields.status-list > div { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 10px; }
  .support-fields.status-list dd { text-align: right; }
  .support-fields.status-list > .is-long { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .support-fields.status-list > .is-long dd { text-align: left; }
  .support-records > .support-record { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .support-records .admin-record-heading { grid-column: 1; }
  .admin-record-time { grid-column: 1; grid-row: auto; font-size: 0.73rem; }
  .admin-record-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .admin-record-facts dd { font-size: 0.81rem; }
  .admin-record-details .support-fields { padding-inline: 10px; }
  .admin-payment-total-group { padding: 13px 12px 8px; }
  .admin-payment-summary-heading { align-items: flex-start; }
  .admin-payment-totals { gap: 10px; }
  .admin-payment-totals dt { font-size: 0.69rem; line-height: 1.4; }
  .admin-payment-totals dd { font-size: 1.05rem; }
  .admin-payment-fees > summary { min-height: 36px; }
  .account-summary > div { padding: 10px 12px; }
  .support-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .support-metric { padding: 12px; }
  .support-metric > strong { font-size: 1.25rem; }
  .support-metric > span { font-size: 0.77rem; }
  .support-metric > small { font-size: 0.7rem; }
  .support-links .button,
  .admin-section-picker select,
  .admin-section-picker button,
  .admin-pagination .button,
  .stack input,
  .stack select,
  .stack button,
  .support-filters input,
  .support-filters select { min-height: 44px; }
  .business-user-signup-details > summary { min-height: 44px; padding-block: 12px; }
  .admin-search { padding: 14px; }
  .admin-search input,
  .admin-search select,
  .admin-search button { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-section-link,
  .admin-record-details,
  .admin-filter-panel { scroll-behavior: auto; transition: none; }
}
