:root { --sans: "Segoe UI", Arial, Helvetica, sans-serif; }

/* The client app stays premium, but removes all editorial/serif styling. */
.welcome-row h1,
.page-head h1,
.profile-top h1,
.focus-card h2,
.training-card h3,
.checkin-card h3,
.exercise b,
.next-milestone h3 {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: -.055em;
}

.welcome-row h1,
.page-head h1,
.profile-top h1 { font-size: 43px; line-height: .92; }
.focus-card h2 { font-size: 29px; line-height: 1.05; }
.training-card h3,.checkin-card h3 { font-size: 18px; }
.booking-card h3 { font-size: 18px; }
.exercise b { font-size: 17px; }
.next-milestone h3 { font-size: 19px; }

.avatar,
.card-line span,
.metrics-grid strong,
.time,
.exercise > span,
.score-card strong,
.score-buttons button,
.progress-hero strong,
.progress-stats strong,
.training-icon,
.workout-note span {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: -.055em;
}

.card-line span { font-size: 20px; }
.metrics-grid strong { font-size: 29px; }
.time { font-size: 26px; }
.exercise > span { font-size: 13px; }
.score-card strong { font-size: 47px; }
.score-buttons button { font-size: 15px; }
.progress-hero strong { font-size: 38px; }
.progress-stats strong { font-size: 23px; }

.preview-note {
  margin: 16px 2px 88px;
  color: rgba(223, 231, 241, .58);
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.sync-status {
  margin-left: auto;
  margin-right: 10px;
  color: rgba(207, 169, 81, .88);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
}

.brandline { display: flex; align-items: center; gap: 9px; }
.brandline__logo { width: 53px; height: 25px; object-fit: contain; object-position: center; mix-blend-mode: screen; }
.brandline__divider { width: 1px; height: 22px; background: rgba(244, 239, 229, .88); }
.brandline__name { color: #f4efe5; font-size: 10px; font-weight: 800; letter-spacing: .15em; white-space: nowrap; }
.brandline .sync-status { margin-left: auto; }

/* Compact command strip + floating mobile navigation. */
.app-topline { min-height: 45px; padding: 9px 16px; }
.brandline__logo { width: 46px; height: 22px; }
.brandline__divider { height: 18px; }
.brandline__name { font-size: 9px; letter-spacing: .13em; }
.app-topline button { font-size: 17px; }
.screen { padding-bottom: 100px; }
.tabbar {
  bottom: max(10px, env(safe-area-inset-bottom));
  width: calc(100% - 24px);
  max-width: 496px;
  min-height: 57px;
  padding: 5px 6px calc(5px + env(safe-area-inset-bottom));
  border: 1px solid rgba(207, 169, 81, .22);
  border-radius: 17px;
  background: rgba(5, 20, 37, .94);
  box-shadow: 0 14px 36px rgba(2, 10, 18, .30);
  transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
.tabbar button { gap: 3px; padding: 5px 0; font-size: 7px; }
.tabbar i { font-size: 15px; line-height: 1; }
.tabbar button.active { color: #e2bd68; }
.tabbar button.active i { text-shadow: 0 0 15px rgba(226, 189, 104, .34); }
.tabbar--hidden { opacity: 0; pointer-events: none; transform: translate(-50%, calc(100% + 28px)); }
.toast { bottom: 82px; }

@media (max-width: 430px) {
  .brandline { gap: 7px; }
  .brandline__logo { width: 44px; }
  .brandline__name { font-size: 8px; letter-spacing: .12em; }
  .sync-status { display: none; }
  .tabbar { width: calc(100% - 18px); bottom: max(8px, env(safe-area-inset-bottom)); border-radius: 15px; }
}

body.is-locked { overflow: hidden; }

.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: auto;
  background: radial-gradient(circle at 80% 5%, rgba(207, 169, 81, .17), transparent 32%), #061323;
}

.auth-gate[hidden] { display: none; }

.auth-gate__card {
  width: min(100%, 430px);
  padding: 30px 24px;
  border: 1px solid rgba(207, 169, 81, .28);
  border-radius: 22px;
  background: rgba(12, 33, 57, .92);
  box-shadow: 0 26px 80px rgba(0, 0, 0, .38);
}

.auth-gate__logo { display: block; width: 92px; height: 36px; margin: 0 0 26px; object-fit: contain; object-position: left center; mix-blend-mode: screen; }
.auth-gate h1 { margin: 10px 0 14px; color: #f4efe5; font-size: clamp(34px, 9vw, 47px); line-height: .97; letter-spacing: -.06em; }
.auth-gate h1 em { color: #cfa951; font-style: normal; }
.auth-gate > .auth-gate__card > p { margin: 0 0 24px; color: rgba(234, 238, 241, .72); line-height: 1.55; }
.auth-gate form { display: grid; gap: 14px; }
.auth-gate label { display: grid; gap: 7px; color: #dfe7f1; font-size: 12px; font-weight: 700; }
.auth-gate input { width: 100%; box-sizing: border-box; border: 1px solid rgba(223, 231, 241, .2); border-radius: 10px; padding: 14px; background: rgba(2, 14, 28, .72); color: #f4efe5; font: inherit; outline: none; }
.auth-gate input:focus { border-color: #cfa951; box-shadow: 0 0 0 3px rgba(207, 169, 81, .14); }
.auth-gate .primary-button { width: 100%; justify-content: center; margin-top: 7px; }
.auth-gate .primary-button:disabled { opacity: .66; cursor: wait; }
.auth-message { min-height: 19px; margin: 0; color: #f2c0a8; font-size: 12px; line-height: 1.45; }
.auth-gate small { display: block; margin-top: 22px; color: rgba(223, 231, 241, .55); line-height: 1.5; }

.booking-card { align-items:center; background:#fff; border:1px solid rgba(200,165,94,.32); box-shadow:0 4px 16px rgba(8,21,30,.05); cursor:pointer; display:flex; gap:14px; padding:18px; transition:transform .2s ease, box-shadow .2s ease; }
.booking-card:active { transform:scale(.985); }
.booking-card:hover { box-shadow:0 10px 25px rgba(8,21,30,.09); }
.booking-card__icon { align-items:center; background:#061323; color:#cfa951; display:flex; font-size:20px; height:45px; justify-content:center; width:45px; }
.booking-card .eyebrow { color:#a47f3a; margin-bottom:5px; }
.booking-card h3 { color:#142b3c; margin:0 0 5px; }
.booking-card small { color:#75828a; font-size:11px; }
.booking-form { display:grid; gap:18px; margin-top:28px; }
.booking-form label { display:grid; gap:9px; }
.booking-form input,.booking-form select,.booking-form textarea { appearance:none; width:100%; border:1px solid #d7d6d0; border-radius:0; background:#fff; color:#142b3c; font:inherit; font-size:14px; padding:14px; }
.booking-form select { background-image:linear-gradient(45deg,transparent 50%,#a47f3a 50%),linear-gradient(135deg,#a47f3a 50%,transparent 50%); background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%; background-size:6px 6px,6px 6px; background-repeat:no-repeat; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { outline:2px solid rgba(207,169,81,.35); border-color:#cfa951; }
.booking-form textarea { min-height:96px; resize:vertical; }
.booking-form .primary-button { margin-top:3px; }
.booking-status { margin-top:25px; border-left:3px solid #cfa951; background:#e9e3d8; padding:17px; }
.booking-status strong { display:block; color:#102336; font-size:16px; }
.booking-status small { display:block; color:#687880; font-size:11px; margin-top:7px; }

.action-center { margin:22px 0 4px; }
.action-center__live { color:#d5ad58; font-size:9px; font-weight:800; letter-spacing:1.6px; }
.action-center__list { display:grid; gap:8px; }
.action-center__item { width:100%; display:grid; grid-template-columns:30px 1fr 18px; align-items:center; gap:10px; text-align:left; padding:12px; border:1px solid rgba(212,175,106,.18); border-radius:13px; background:#10243d; color:#f3efe6; }
.action-center__item:active { transform:scale(.985); }
.action-center__item b,.action-center__item small { display:block; }
.action-center__item b { font-size:13px; line-height:1.25; }
.action-center__item small { margin-top:3px; color:#98a6b7; font-size:10px; }
.action-center__icon { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(212,175,106,.34); color:#d5ad58; font-weight:800; }
.action-center__item--good .action-center__icon { color:#84d49b; border-color:rgba(132,212,155,.48); }
.action-center__item i { color:#d5ad58; font-style:normal; }
.history-card { margin-top:17px; padding:18px; border:1px solid #ddd8cc; background:#fff; }
.history-card__head { display:flex; align-items:center; justify-content:space-between; }
.history-card__head .eyebrow { margin:0; }
.history-card__head span { color:#7e8b90; font-size:9px; font-weight:700; letter-spacing:.1em; }
.history-list { margin-top:13px; }
.history-row { display:flex; align-items:center; gap:11px; padding:13px 0; border-top:1px solid #e4e0d7; }
.history-row__mark { display:grid; place-items:center; width:32px; height:32px; background:#e9e2d5; color:#a6813e; font-family:Georgia,serif; font-size:15px; }
.history-row__body { min-width:0; flex:1; }
.history-row b { display:block; color:#162b3b; font-family:Georgia,serif; font-size:16px; font-weight:400; }
.history-row small { display:block; margin-top:3px; color:#75828a; font-size:10px; }
.history-row time { color:#9a7a3d; font-size:9px; text-align:right; }
.history-empty { margin:0; padding:12px 0 2px; color:#75828a; font-size:11px; line-height:1.55; }
