/* Shared by the Laravel-served admin and member applications and Quasar builds. */
:root {
  --q-primary: #a8440b;
  --q-secondary: #f5a623;
  --q-accent: #b45309;
  --q-dark-page: #191715;
  --q-dark: #25211e;
  --q-bg-main: #fcf8f3;
  --q-bg-active-menu: #fff0d9;
  --q-separator: #e5dace;
}
body.gymos-portal {
  --gymos-paper: #fcf8f3;
  --gymos-surface: #fff;
  --gymos-ink: #241f1b;
  --gymos-muted: #685c51;
  --gymos-line: #e5dace;
  --gymos-soft: #f8eddf;
  --gymos-shadow: 0 4px 16px rgba(36,31,27,.04);
  background: var(--gymos-paper);
  color: var(--gymos-ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body.gymos-portal.body--dark {
  --gymos-paper: #191715;
  --gymos-surface: #25211e;
  --gymos-ink: #fff8ef;
  --gymos-muted: #d5c4b2;
  --gymos-line: #5f4c3d;
  --gymos-soft: #3d2d21;
  /* Quasar writes the saved brand color inline on body; dark surfaces need a lighter tone. */
  --q-primary: #ffb454 !important;
  --gymos-shadow: none;
}
.gymos-portal .bg-main { background: var(--gymos-paper); }
.gymos-portal .app-title { font-family: inherit; font-weight: 700; letter-spacing: -.04em; }
.gymos-portal :is(.text-h4,.text-h5,.text-h6) { color: var(--gymos-ink); font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.gymos-portal :is(.text-subtitle1,.text-subtitle2) { font-weight: 600; }
.gymos-portal :is(.text-label,.q-field__label,.q-item__label--caption) { color: var(--gymos-muted); }
.gymos-portal .text-label { font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.gymos-portal .base-header { border-color: var(--gymos-line); background: var(--gymos-surface) !important; color: var(--gymos-ink) !important; box-shadow: none; }
.gymos-portal .base-header .q-toolbar { min-height: 80px; padding: 16px 24px; }
.gymos-portal .base-header .user-info { background: var(--gymos-soft); color: var(--gymos-ink); border-radius: 12px; }
.gymos-portal .admin-side-links { background: var(--gymos-surface) !important; border-color: var(--gymos-line); }
.gymos-portal .admin-side-links :is(.q-list,.sidebar-footer) { background: var(--gymos-surface) !important; }
.gymos-portal .admin-side-links .q-list { padding: 24px 16px; }
.gymos-portal .admin-side-links :is(.link-item.q-item,.sublinks .q-item) { color: var(--gymos-muted); min-height: 44px; border-radius: 12px; margin-bottom: 4px; }
.gymos-portal .admin-side-links :is(.link-item.active,.sublinks .active) { background: #f5a623 !important; color: #241f1b !important; font-weight: 700; }
.gymos-portal .admin-side-links .q-item__section--avatar { min-width: 32px; }
.gymos-portal .sidebar-footer { border-top: 1px solid var(--gymos-line); }
.gymos-portal .q-page.q-layout-padding { padding: 32px; }
.gymos-portal :is(.base-section,.q-card--bordered,.rounded-border) { border: 1px solid var(--gymos-line); border-radius: 16px; background: var(--gymos-surface); box-shadow: var(--gymos-shadow); }
.gymos-portal .base-section .text-caption { color: var(--gymos-muted); max-width: 65ch; }
.gymos-portal.body--dark .base-section:not(.plans-card) { background: var(--gymos-surface) !important; }
.gymos-portal .q-btn { font-weight: 600; letter-spacing: 0; border-radius: 10px; }
.gymos-portal .q-btn--round { border-radius: 50%; }
.gymos-portal .q-btn.bg-primary { color: #fff !important; }
.gymos-portal.body--dark .q-btn.bg-primary { color: #191715 !important; }
.gymos-portal .q-btn.bg-secondary { color: #241f1b !important; }
.gymos-portal .q-btn--outline:before { border-color: var(--gymos-line); }
.gymos-portal :is(button,a,[tabindex]):focus-visible { outline: 3px solid var(--q-primary); outline-offset: 3px; }
.gymos-portal .q-field--outlined .q-field__control { border-radius: 10px; background: var(--gymos-surface); }
.gymos-portal .q-field--outlined:not(.q-field--error) .q-field__control:before { border-color: var(--gymos-line); }
.gymos-portal .q-field__native, .gymos-portal .q-field__input { color: var(--gymos-ink); font-size: 14px; }
.gymos-portal .q-field--dense .q-field__control { min-height: 40px; }
.gymos-portal .q-field--dense .q-field__marginal { height: 40px; }
.gymos-portal .q-table--dense :is(td,th) { padding: 8px 16px; }
.gymos-portal :is(.plan-card,.current-plan) .features { font-size: 14px; line-height: 1.5; }
.gymos-portal :is(.plan-card,.current-plan) .features ul { margin: 16px 0; padding-left: 24px; }
.gymos-portal :is(.plan-card,.current-plan) .features li + li { margin-top: 8px; }
.gymos-portal :is(.q-menu,.q-dialog__inner>.q-card) { border: 1px solid var(--gymos-line); border-radius: 16px; background: var(--gymos-surface); box-shadow: 0 16px 48px rgba(36,31,27,.16); }
.gymos-portal .main-table .q-table__middle { border: 1px solid var(--gymos-line); border-radius: 12px; }
.gymos-portal .main-table :is(thead,th), .gymos-portal .main-table thead tr:first-child th:first-child { background: var(--gymos-soft) !important; color: var(--gymos-muted); font-size: 12px; font-weight: 600; }
.gymos-portal .main-table :is(tbody,td:first-child,td:last-child) { background-color: var(--gymos-surface); color: var(--gymos-ink); }
.gymos-portal .q-table :is(td,th) { border-color: var(--gymos-line); }
.gymos-portal .pagination { background: var(--gymos-surface); box-shadow: none; border: 1px solid var(--gymos-line); }
.gymos-portal .modules { background: var(--gymos-soft); }
.gymos-portal .modules .q-btn--outline { background: var(--gymos-surface) !important; color: var(--gymos-ink); border-radius: 12px; min-height: 104px; }
.gymos-portal .modules .q-btn--outline .q-icon { color: var(--q-primary); font-size: 28px; margin-bottom: 12px; }
.gymos-portal :is(.plan,.current-plan,.plan-card.current) { background: #fff0d9; color: #241f1b; border-color: #dfb47e; }
.gymos-portal .plan-card { border-radius: 12px; box-shadow: none; }
.gymos-portal .plan-card.selected { background: #fff0d9 !important; border: 2px solid #b45309 !important; color: #241f1b; }
.gymos-portal .plan-card .price { color: var(--gymos-muted) !important; }
.gymos-portal .plan-card.selected .price { color: #685c51 !important; }
.gymos-portal .base-page-header > .text-grey-8 { max-width: 65ch; color: var(--gymos-muted) !important; line-height: 1.5; margin-top: 8px; }
.gymos-portal .member-card { background: #fff0d9; color: #241f1b; border-radius: 16px; }
.gymos-portal .member-card .title { color: #241f1b; font-size: 14px; }
.gymos-portal .member-card .logo { padding: 16px 0; }
.gymos-portal .fc { --fc-border-color: var(--gymos-line); --fc-today-bg-color: var(--gymos-soft); --fc-neutral-bg-color: var(--gymos-soft); --fc-button-bg-color: #a8440b; --fc-button-border-color: #a8440b; --fc-button-hover-bg-color: #813207; --fc-button-hover-border-color: #813207; --fc-button-active-bg-color: #813207; --fc-button-active-border-color: #813207; }
.gymos-portal .section-header > .q-item__label { color: var(--gymos-muted); max-width: 65ch; line-height: 1.5 !important; margin-top: 8px; }
.gymos-portal .kpi-widget, .gymos-portal .kpi-widget .results { text-align: left; }
.gymos-portal .kpi-widget .flex-center { justify-content: flex-start; }
.gymos-portal .kpi-widget .text-h6 { font-size: 14px; color: var(--gymos-muted); font-weight: 600; letter-spacing: 0; }
.gymos-portal .kpi-widget .current-month { font-size: 36px; font-weight: 600; line-height: 1.2; }
.gymos-portal .fc .fc-toolbar-title { font-size: 20px; font-weight: 700; }
.gymos-portal .login-container { width: 960px; max-width: 100%; background: var(--gymos-surface); border: 1px solid var(--gymos-line); border-radius: 24px; overflow: hidden; box-shadow: 0 16px 48px rgba(36,31,27,.07); }
.gymos-portal .login-container::after { content: ''; display: block; width: 46%; background: url('/images/gymos-training.png') center top / cover no-repeat; }
.gymos-portal .login-left { min-width: 0; padding: 48px; }
.gymos-portal .login-left > .row { justify-content: flex-start; margin-bottom: 32px; }
.gymos-portal .login-page > .text-h6 { text-align: left; font-size: 30px; margin-bottom: 32px; }
.gymos-portal .login-page .q-btn[type=submit] { min-height: 48px; margin-top: 16px; }
.gymos-portal .login-page .text-grey { color: var(--gymos-muted) !important; }
.gymos-portal .signup-container { background: var(--gymos-surface); border: 1px solid var(--gymos-line); box-shadow: var(--gymos-shadow); }
@media(max-width:1023px) { .gymos-portal .q-page.q-layout-padding { padding: 24px; } }
@media(max-width:599px) {
  .gymos-portal .q-page.q-layout-padding { padding: 16px; }
  .gymos-portal .base-header .q-toolbar { min-height: 64px; padding: 8px 16px; }
  .gymos-portal .login-container { max-width: 440px; border-radius: 20px; }
  .gymos-portal .login-container::after { display: none; }
  .gymos-portal .login-left { padding: 32px 24px; }
  .gymos-portal .login-page > .text-h6 { font-size: 24px; }
}
@media(prefers-reduced-motion:reduce) { .gymos-portal *, .gymos-portal *::before, .gymos-portal *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
.gymos-portal .base-header .brand-crest { width: 64px; height: 64px; }
@media(max-width:599px) { .gymos-portal .base-header .brand-crest { width: 48px; height: 48px; } }
