/* FitCoach — Dark neon gym theme */

:root {
  --bg-0: #0B0D0E;
  --bg-1: #14171A;
  --bg-2: #1C2024;
  --stroke: #2A2F35;
  --ink-0: #F5F7F8;
  --ink-1: #A5ADB4;
  --ink-2: #6B7278;
  --accent: #C6FF3D;
  --accent-ink: #0B0D0E;
  --info: #4DE0FF;
  --warn: #FFB020;
  --danger: #FF5470;
  --ok: #34D399;
}

* { box-sizing: border-box; }

body {
  background: var(--bg-0);
  color: var(--ink-0);
  font-family: 'Inter', -apple-system, sans-serif;
  font-weight: 400;
  min-height: 100vh;
}

h1, h2, h3, .display-num, .stat-num {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-weight: 700;
}

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent); opacity: .85; }

/* ============ Layout shells ============ */
.fc-topbar {
  background: var(--bg-1);
  border-bottom: 1px solid var(--stroke);
  padding: .75rem 1.25rem;
}

.fc-sidebar {
  background: var(--bg-1);
  border-right: 1px solid var(--stroke);
  min-height: 100vh;
}

.fc-sidebar .nav-link {
  color: var(--ink-1);
  border-radius: 10px;
  padding: .6rem .9rem;
  margin-bottom: .25rem;
  font-weight: 500;
}
.fc-sidebar .nav-link.active,
.fc-sidebar .nav-link:hover {
  background: var(--bg-2);
  color: var(--ink-0);
}
.fc-sidebar .nav-link.active { border-left: 3px solid var(--accent); }

.fc-main { background: var(--bg-0); min-height: 100vh; padding: 1.5rem; }

/* ============ Cards ============ */
.card, .fc-card {
  background: var(--bg-1);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  color: var(--ink-0);
}
.card-header { background: var(--bg-2); border-bottom: 1px solid var(--stroke); border-radius: 14px 14px 0 0 !important; }

.stat-tile {
  background: var(--bg-1);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  padding: 1.25rem;
}
.stat-tile .stat-num { font-size: 2.1rem; color: var(--accent); line-height: 1; }
.stat-tile .stat-label { color: var(--ink-1); font-size: .85rem; margin-top: .35rem; }

/* ============ Buttons ============ */
.btn-primary, .btn-fc-primary {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink) !important;
  border-radius: 10px;
  font-weight: 600;
}
.btn-primary:hover, .btn-fc-primary:hover {
  background: #b3ea2e;
  border-color: #b3ea2e;
  color: var(--accent-ink) !important;
}
.btn-outline-secondary, .btn-fc-secondary {
  background: transparent;
  border: 1px solid var(--stroke);
  color: var(--ink-0);
  border-radius: 10px;
}
.btn-outline-secondary:hover, .btn-fc-secondary:hover {
  background: var(--bg-2);
  color: var(--ink-0);
  border-color: var(--ink-1);
}
.btn-fc-danger {
  background: transparent;
  border: 1px solid rgba(255, 84, 112, .7);
  color: var(--danger);
  border-radius: 10px;
}
.btn-fc-danger:hover { background: rgba(255, 84, 112, .1); color: var(--danger); }

.btn { border-radius: 10px; }

/* ============ Forms ============ */
.form-control, .form-select {
  background: var(--bg-2);
  border: 1px solid var(--stroke);
  color: var(--ink-0);
  border-radius: 10px;
}
.form-control:focus, .form-select:focus {
  background: var(--bg-2);
  border-color: var(--accent);
  color: var(--ink-0);
  box-shadow: 0 0 0 .2rem rgba(198, 255, 61, .15);
}
.form-control::placeholder { color: var(--ink-2); }
.form-label { color: var(--ink-1); font-size: .85rem; font-weight: 500; }
.form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }

/* ============ Chips / Badges ============ */
.chip {
  display: inline-block;
  border-radius: 999px;
  padding: .25rem .75rem;
  font-size: .78rem;
  font-weight: 600;
  border: 1px solid var(--stroke);
}
.badge-info { background: rgba(77, 224, 255, .12); color: var(--info); border: 1px solid rgba(77,224,255,.35); border-radius: 999px; }
.badge-warn { background: rgba(255, 176, 32, .12); color: var(--warn); border: 1px solid rgba(255,176,32,.35); border-radius: 999px; }
.badge-danger { background: rgba(255, 84, 112, .12); color: var(--danger); border: 1px solid rgba(255,84,112,.35); border-radius: 999px; }
.badge-ok { background: rgba(52, 211, 153, .12); color: var(--ok); border: 1px solid rgba(52,211,153,.35); border-radius: 999px; }
.badge-muted { background: var(--bg-2); color: var(--ink-1); border: 1px solid var(--stroke); border-radius: 999px; }

/* ============ Tables ============ */
.table { color: var(--ink-0); margin-bottom: 0; }
.table > :not(caption) > * > * { background: transparent; border-bottom-color: var(--stroke); }
.fc-table tbody tr:nth-child(odd) { background: var(--bg-1); }
.fc-table tbody tr:nth-child(even) { background: var(--bg-2); }
.fc-table tbody tr { border-left: 3px solid transparent; transition: border-color .1s; }
.fc-table tbody tr:hover { border-left: 3px solid var(--accent); cursor: pointer; }
.fc-table th { color: var(--ink-1); font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; border-bottom: 1px solid var(--stroke); }

/* ============ Tabs (weekday pickers etc.) ============ */
.nav-tabs { border-bottom: 1px solid var(--stroke); }
.nav-tabs .nav-link {
  color: var(--ink-1);
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-weight: 500;
}
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover {
  color: var(--ink-0);
  background: transparent;
  border-bottom: 2px solid var(--accent);
}

.day-pill {
  border-radius: 999px;
  border: 1px solid var(--stroke);
  padding: .4rem 1rem;
  color: var(--ink-1);
  font-weight: 600;
  background: var(--bg-2);
}
.day-pill.active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

/* ============ Misc ============ */
.text-ink-1 { color: var(--ink-1) !important; }
.text-ink-2 { color: var(--ink-2) !important; }
.border-fc { border-color: var(--stroke) !important; }
.bg-fc-0 { background: var(--bg-0) !important; }
.bg-fc-1 { background: var(--bg-1) !important; }
.bg-fc-2 { background: var(--bg-2) !important; }

.exercise-thumb {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 10px 10px 0 0;
  background: var(--bg-2);
}
.exercise-thumb-fallback {
  width: 100%;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-2);
  border-radius: 10px 10px 0 0;
  color: var(--ink-1);
  font-weight: 600;
  text-align: center;
  padding: .5rem;
  font-size: .85rem;
}

/* Bottom tab bar — client app mobile */
.fc-bottom-tabs {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--bg-1);
  border-top: 1px solid var(--stroke);
  z-index: 1000;
}
.fc-bottom-tabs a {
  flex: 1;
  text-align: center;
  padding: .6rem 0;
  color: var(--ink-1);
  font-size: .72rem;
  font-weight: 600;
}
.fc-bottom-tabs a i { display: block; font-size: 1.2rem; margin-bottom: 2px; }
.fc-bottom-tabs a.active { color: var(--accent); }

@media (max-width: 767px) {
  .fc-bottom-tabs { display: flex; }
  .fc-app-content { padding-bottom: 4.5rem; }
  .fc-topbar-desktop { display: none; }
}
@media (min-width: 768px) {
  .fc-bottom-tabs-mobile-only { display: none; }
}

.login-card {
  background: var(--bg-1);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  max-width: 420px;
  width: 100%;
}

.exercise-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  color: var(--accent);
}
