/* Gym Membership — Shared variables and utilities */
:root {
  --gym-primary:       #1a6b3c;
  --gym-primary-dark:  #134d2c;
  --gym-primary-light: #e8f5ee;
  --gym-sidebar-bg:    #134d2c;
  --gym-danger:        #c0392b;
  --gym-danger-bg:     #fdf0ef;
  --gym-warning:       #d68910;
  --gym-warning-bg:    #fef9ec;
  --gym-success:       #27ae60;
  --gym-success-bg:    #eafaf1;
  --gym-bg:            #f2f5f3;
  --gym-surface:       #ffffff;
  --gym-border:        #e0e6e2;
  --gym-text:          #1a1f1b;
  --gym-text-muted:    #6b7c71;
  --gym-sidebar-w:     240px;
  --gym-radius:        12px;
  --gym-radius-sm:     8px;
  --gym-shadow:        0 1px 4px rgba(0,0,0,.07), 0 2px 8px rgba(0,0,0,.05);
  --gym-shadow-md:     0 4px 16px rgba(0,0,0,.10);
  --gym-gap:           0.75rem;
}

/* Badges */
.gym-badge { display:inline-flex; align-items:center; padding:.2em .65em; border-radius:999px; font-size:.72rem; font-weight:700; }
.gym-badge-active      { background:#d4edda; color:#155724; }
.gym-badge-inactive    { background:#e2e3e5; color:#383d41; }
.gym-badge-scheduled   { background:#d1ecf1; color:#0c5460; }
.gym-badge-expired     { background:#f8d7da; color:#721c24; }
.gym-badge-suspended   { background:#fff3cd; color:#856404; }
.gym-badge-qr          { background:#d1ecf1; color:#0c5460; }
.gym-badge-manual      { background:#fff3cd; color:#856404; }
/* WooCommerce order statuses */
.gym-badge-pending        { background:#fff3cd; color:#856404; }
.gym-badge-processing     { background:#d1ecf1; color:#0c5460; }
.gym-badge-on-hold        { background:#e2e3e5; color:#383d41; }
.gym-badge-completed      { background:#d4edda; color:#155724; }
.gym-badge-cancelled      { background:#f8d7da; color:#721c24; }
.gym-badge-refunded       { background:#e2e3e5; color:#383d41; }
.gym-badge-failed         { background:#f8d7da; color:#721c24; }
/* WooCommerce Subscription statuses */
.gym-badge-pending-cancel { background:#fdecea; color:#a93226; }
.gym-badge-trialling      { background:#d1ecf1; color:#0c5460; }
.gym-badge-switched       { background:#e2e3e5; color:#383d41; }

/* Buttons */
.gym-btn { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem; border-radius:var(--gym-radius-sm); font-size:.875rem; font-weight:600; cursor:pointer; text-decoration:none; transition:all .15s; border:none; white-space:nowrap; min-height:2.25rem; box-sizing:border-box; }
.gym-btn-primary   { background:var(--gym-primary); color:#fff; padding:.8rem 1.1rem; }
.gym-btn-primary:hover { background:var(--gym-primary-dark); color:#fff; }
.gym-btn-secondary { background:var(--gym-primary-light); color:var(--gym-primary); }
.gym-btn-secondary:hover { background:#d4ece0; color:var(--gym-primary-dark); }
.gym-btn-danger    { background:var(--gym-danger-bg); color:var(--gym-danger); }
.gym-btn-danger:hover { background:#fce4e4; }
.gym-btn-ghost     { background:transparent; color:rgba(255,255,255,.75); border:1px solid rgba(255,255,255,.3); }
.gym-btn-ghost:hover { color:#fff; border-color:#fff; }
.gym-btn-sm        { padding:.35rem .75rem; font-size:.8rem; }

/* Inputs */
.gym-input { width:100%; padding:.6rem .9rem; border:1.5px solid var(--gym-border); border-radius:var(--gym-radius-sm); font-size:.9rem; color:var(--gym-text); background:var(--gym-surface); transition:border-color .15s, box-shadow .15s; }
.gym-input:focus { outline:none; border-color:var(--gym-primary); box-shadow:0 0 0 3px var(--gym-primary-light); }
.gym-form-row   { display:grid; gap:.75rem; margin-bottom:1rem; }
.gym-form-label { font-size:.78rem; font-weight:600; color:var(--gym-text-muted); margin-bottom:.25rem; display:block; }

/* Text utilities */
.gym-text-success { color:var(--gym-success); }
.gym-text-warning { color:var(--gym-warning); }
.gym-text-danger  { color:var(--gym-danger); }
.gym-text-muted   { color:var(--gym-text-muted); }
.gym-text-primary { color:var(--gym-primary); }
.gym-small        { font-size:.8rem; }

/* Toast */
.gym-toast { position:fixed; bottom:1.5rem; right:1.5rem; z-index:99999; padding:.75rem 1.25rem; border-radius:var(--gym-radius-sm); font-weight:600; font-size:.875rem; box-shadow:var(--gym-shadow-md); animation:gymSlideIn .25s ease; }
@keyframes gymSlideIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.gym-toast-success { background:#155724; color:#fff; }
.gym-toast-error   { background:#721c24; color:#fff; }
