/* Fitness Vault's shared operational theme, loaded after each task's styles. */
@font-face { font-family: 'Plus Jakarta Sans'; src: url('./assets/fonts/plus-jakarta-sans-400.woff2') format('woff2'); font-weight: 400 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Space Grotesk'; src: url('./assets/fonts/space-grotesk-600.woff2') format('woff2'); font-weight: 500 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('./assets/fonts/jetbrains-mono-500.woff2') format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; }
body { min-width: 0; }
body, button, input, select, textarea { font-family: var(--font-sans); }
h1, h2, h3, h4 { font-family: var(--font-sans); letter-spacing: -.025em; }
input, select, textarea { accent-color: var(--accent); caret-color: var(--accent); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input:focus, textarea:focus, select:focus { border-color: var(--accent-hover) !important; box-shadow: 0 0 0 3px #c8ff2e30; }
:where(button, a, summary, [tabindex]):focus-visible { outline: 3px solid var(--accent-hover); outline-offset: 4px; }
.app-shell .sidebar { background: var(--bg-elevated); }
.app-shell .topbar { background: var(--bg-elevated); backdrop-filter: none; }
.app-shell .cloud-bar > strong { color: var(--ink); }
.app-shell .progress-track { background: var(--line); }
.app-shell .progress-track > span { background: var(--accent); }
.app-shell .nav-item.active { background: var(--accent); color: var(--bg); }
.app-shell .nav-item.active:hover { background: var(--accent-hover); color: var(--bg); }
.app-shell .nav-item.active :where(svg, small, span) { color: inherit; }
.app-shell .page-heading h1, .operator-main .page-heading h1 { font-size: 2rem; line-height: 1.2; }
.app-shell .small-overline, .operator-shell .small-overline { display: none; }
.app-shell .frontdesk-primary { background: var(--surface); }
.app-shell .frontdesk-primary h2 { font-size: 1.625rem; }
.app-shell .frontdesk-task:hover { border-color: var(--accent); background: var(--accent-surface); }
.app-shell .stat-card > strong, .operator-stats strong, .closing-stat h2, .finance-stats strong { font-variant-numeric: tabular-nums; }
.btn-primary, .btn-lime { background: var(--accent); border-color: var(--accent); color: var(--bg); }
.btn-primary:hover:not(:disabled), .btn-lime:hover:not(:disabled) { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--bg); }
.pill-success { background: var(--success-surface); color: var(--success); border-color: #235941; }
.pill-warning { background: var(--warning-surface); color: var(--warning); border-color: #665021; }
.pill-danger, .toast-error { background: var(--danger-surface); color: var(--danger); border-color: #7f4145; }
.operator-shell { min-width: 0; font-size: 14px; line-height: 1.5; }
.operator-header { background: var(--bg-elevated); }
.operator-client.selected { background: var(--accent-surface); outline: 1px solid var(--accent-line); box-shadow: none; }
.operator-client[aria-current='true'] { color: var(--ink); }
.operator-shell .operator-client :where(strong, small), .operator-shell .operator-facts dd { overflow-wrap: anywhere; }
.operator-shell .operator-client small { font-size: 12px; }
.operator-shell .operator-tabs .btn { min-height: 44px; }
.operator-shell .operator-tabs [aria-pressed='true'] { background: var(--accent); color: var(--bg); border-color: var(--accent); }
.operator-shell :where(.operator-search, .operator-search label, .operator-header > div, .partner-heading-actions) { min-width: 0; }
.operator-shell .operator-main :where(button, input, select, textarea, a) { scroll-margin-block: 24px; }
.operator-shell .operator-error, .cloud-error { overflow-wrap: anywhere; }
.modal input, .modal select, .modal textarea { min-height: 44px; }
.modal .form-row > *, .modal-form label, .operator-profile-form label { min-width: 0; }
.data-table { font-variant-numeric: tabular-nums; }
.modal :where(button, input, select, textarea) { scroll-margin-block: 18px; }
@media (max-width: 620px) {
  .app-shell .topbar { min-height: 64px; padding: 10px 16px; flex-wrap: nowrap; gap: 8px; }
  .app-shell .topbar-left { width: auto; min-width: 0; flex: 1; gap: 8px; }
  .app-shell .topbar-left strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell .topbar-right { flex: none; gap: 4px; }
  .app-shell .dashboard-content { padding-top: 16px; }
  .app-shell .connected-status { padding: 12px 14px; gap: 10px; margin-bottom: 12px; }
  .app-shell .connected-status > div:first-child p { display: none; }
  .app-shell .connected-status .workspace-status-access { gap: 8px; }
  .app-shell .cloud-bar { padding: 12px 14px; margin-bottom: 22px; justify-content: space-between; }
  .app-shell .cloud-bar > strong { display: none; }
  .app-shell .cloud-save-state { flex-basis: auto; font-size: 11px; }
  .app-shell .page-heading h1, .operator-main .page-heading h1 { font-size: 1.625rem; }
  .operator-header > div { width: 100%; }
  .operator-header > div > .btn { flex: 1; justify-content: center; white-space: normal; }
  .operator-shell .operator-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operator-shell .operator-tabs .btn { min-width: 0; padding: 10px; white-space: normal; }
  .operator-shell .operator-search label { max-width: 100%; }
  .operator-shell .operator-client { align-items: flex-start; flex-wrap: wrap; }
  .operator-shell .operator-client-state { max-width: 100%; text-align: left; }
  .operator-shell .operator-facts { grid-template-columns: minmax(0, 1fr); }
  .operator-shell .operator-status-action { align-items: flex-start; flex-direction: column; }
  .operator-shell .partner-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modal .form-row { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
@media print {
  :root { --accent: #253900; --accent-hover: #253900; --accent-surface: #fff; }
  .operator-shell .operator-header, .operator-shell .operator-tabs { display: none; }
}
