/* ============================================================
   KAYO'S FITNESS — 予約管理システム  styles.css
   採用デザイン："Ivory"（白基調・黒文字 / ゴールドアクセント）
   ・本文 / 見出しとも Meirio（メイリオ・システムフォント）
   ・ロゴ画像（KAYO'S FITNESS）を .brand に data-URI で埋め込み済み
   ・public/assets/css/styles.css をこのファイルで丸ごと差し替え
   ・クラス名 / HTML構造の変更は不要
   ・PC / スマホ両対応（@media max-width:600px を維持）
   ・カレンダーは各日に空き状況ドット（.few=残少 / .full=満席 / .closed=定休）
   ============================================================ */
/* ============================================================
   KAYO'S FITNESS — Reservation System
   components.css  ·  token-driven component styles
   All selectors match the handoff class inventory 1:1.
   Visual variation lives entirely in the :root token block,
   so a theme swap = new values, identical markup.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

:root {
  /* ===== KAYO'S FITNESS — Theme "Ivory" (白基調 / 黒文字) ===== */
  --bg:        #ffffff;
  --surface:   #ffffff;
  --surface-2: #f5f3ef;
  --border:    #e5e1d8;
  --text:      #1b1a18;
  --text-dim:  #6f6b63;
  --gold:      #a9802f;
  --gold-dim:  #8c6824;
  --accent:    #a9802f;
  --danger:    #c0473d;
  --ok:        #2f7d54;
  --radius:    12px;
  --shadow:    0 14px 40px rgba(40,30,10,.10);
  --maxw:      960px;
  --font-head: "Meirio","メイリオ","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  --font-body: "Meirio","メイリオ","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  --tint:      color-mix(in srgb, var(--gold) 12%, transparent);
  --tint-2:    color-mix(in srgb, var(--gold) 18%, transparent);
  --ink-soft:  color-mix(in srgb, var(--text) 70%, transparent);
  --ink-on-gold: #ffffff;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  letter-spacing: .01em;
}

/* ---------- Header ---------- */
.site-header {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
.site-header .inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.brand {
  font-family: var(--font-head);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.15;
  display: flex;
  flex-direction: column;
}
.brand .gold { color: var(--gold); }
.brand small {
  display: block;
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-top: 4px;
  font-weight: 400;
}
.nav-links {
  display: flex;
  gap: 22px;
  font-size: 13px;
  letter-spacing: .04em;
}
.nav-links a {
  color: var(--text-dim);
  text-decoration: none;
  position: relative;
  padding-bottom: 2px;
  transition: color .18s ease;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width .22s ease;
}
.nav-links a:hover { color: var(--text); }
.nav-links a:hover::after { width: 100%; }

/* ---------- Main / headings ---------- */
main {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 30px 22px 64px;
}
h1 {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 27px;
  line-height: 1.3;
  letter-spacing: .02em;
  margin: 0 0 6px;
}
h2 {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 19px;
  letter-spacing: .03em;
  margin: 0 0 14px;
}
.subtitle {
  color: var(--text-dim);
  font-size: 13.5px;
  margin: 0 0 26px;
  letter-spacing: .02em;
}

/* ---------- Steps ---------- */
.steps {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  flex-wrap: wrap;
}
.step {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  letter-spacing: .04em;
  color: var(--text-dim);
}
.step::before {
  content: counter(stepc, decimal);
  counter-increment: stepc;
  width: 26px; height: 26px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-family: var(--font-head);
  font-size: 12px;
  color: var(--text-dim);
  background: var(--surface);
}
.steps { counter-reset: stepc; }
.step:not(:last-child)::after {
  content: "";
  width: 22px; height: 1px;
  background: var(--border);
  margin-left: 2px;
}
.step.active { color: var(--text); }
.step.active::before {
  border-color: var(--gold);
  color: #fff;
  background: var(--gold);
}
.step.done { color: var(--ink-soft); }
.step.done::before {
  content: "✓";
  border-color: var(--gold);
  color: var(--gold);
  background: var(--tint);
}

/* ---------- Card / grid ---------- */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow);
}
.card + .card { margin-top: 18px; }
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* ---------- Menu cards ---------- */
.menu-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .25s ease, transform .25s ease;
}
.menu-card:hover {
  border-color: var(--gold);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.menu-card .name {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .02em;
  padding-right: 0;
}
.menu-card:has(> .badge) .name { padding-right: 72px; }
.menu-card .meta {
  font-size: 12.5px;
  color: var(--text-dim);
  letter-spacing: .04em;
}
.menu-card .price {
  margin-top: 8px;
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 600;
  color: var(--gold);
  letter-spacing: .01em;
}
.menu-card .price small {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--text-dim);
  margin-left: 3px;
  letter-spacing: .04em;
}

/* ---------- Badges ---------- */
.badge {
  display: inline-flex;
  align-items: center;
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--text-dim);
  background: var(--surface-2);
  white-space: nowrap;
}
.menu-card > .badge {
  position: absolute;
  top: 16px; right: 16px;
}
.badge.women {
  color: #a8567a;
  border-color: color-mix(in srgb, #a8567a 35%, transparent);
  background: color-mix(in srgb, #a8567a 12%, transparent);
}
.badge.ticket {
  color: var(--gold);
  border-color: color-mix(in srgb, var(--gold) 40%, transparent);
  background: var(--tint);
}

/* ---------- Buttons ---------- */
.btn {
  appearance: none;
  font-family: var(--font-body);
  font-size: 14px;
  letter-spacing: .06em;
  font-weight: 500;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: #fff;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease, box-shadow .2s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn:hover {
  background: var(--gold-dim);
  border-color: var(--gold-dim);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--gold) 30%, transparent);
}
.btn:active { transform: translateY(1px); }
.btn.ghost {
  background: transparent;
  color: var(--text);
  border-color: var(--border);
}
.btn.ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: var(--tint);
  box-shadow: none;
}
.btn.danger {
  background: transparent;
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 45%, transparent);
}
.btn.danger:hover {
  background: color-mix(in srgb, var(--danger) 10%, transparent);
  border-color: var(--danger);
  box-shadow: none;
}
.btn.block { width: 100%; }
.btn:disabled, .btn[disabled] {
  opacity: .42;
  cursor: not-allowed;
  background: var(--surface-2);
  color: var(--text-dim);
  border-color: var(--border);
  box-shadow: none;
}
.btn-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

/* ---------- Forms ---------- */
label.field {
  display: block;
  margin-bottom: 16px;
}
label.field span.lbl {
  display: block;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 7px;
}
input[type=email],
input[type=text],
input[type=password],
input[type=tel],
select,
textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--text-dim) 80%, transparent); }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--gold);
  background: var(--surface);
  box-shadow: 0 0 0 3px var(--tint);
}
select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-dim) 50%),
                    linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 38px;
}
.check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  color: var(--text);
  cursor: pointer;
  line-height: 1.6;
}
.check input[type=checkbox] {
  appearance: none;
  width: 19px; height: 19px;
  margin-top: 1px;
  flex: 0 0 auto;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: var(--surface);
  cursor: pointer;
  position: relative;
  transition: border-color .15s ease, background .15s ease;
}
.check input[type=checkbox]:checked {
  background: var(--gold);
  border-color: var(--gold);
}
.check input[type=checkbox]:checked::after {
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 12px;
}
.hint {
  font-size: 12px;
  color: var(--text-dim);
  margin-top: -8px;
  margin-bottom: 14px;
  letter-spacing: .02em;
}

/* ---------- Calendar ---------- */
.cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.cal-head .cal-title {
  font-family: var(--font-head);
  font-size: 17px;
  letter-spacing: .04em;
  white-space: nowrap;
}
.cal-head button {
  appearance: none;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  width: 34px; height: 34px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 14px;
  transition: border-color .15s ease, color .15s ease;
}
.cal-head button:hover { border-color: var(--gold); color: var(--gold); }
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 5px;
}
.cal-dow {
  text-align: center;
  font-size: 10.5px;
  letter-spacing: .1em;
  color: var(--text-dim);
  padding: 4px 0 8px;
  text-transform: uppercase;
}
.cal-day {
  aspect-ratio: 1 / 1;
  max-height: 92px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 14px;
  font-family: var(--font-head);
  border-radius: 10px;
  border: 1px solid transparent;
  background: var(--surface-2);
  color: var(--text);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease, transform .12s ease;
}
/* availability dot — readable at a glance across the month grid.
   default cell = 空き(open). Add .few / .full / .closed to change state. */
.cal-day::after {
  content: "";
  width: 7px; height: 7px;
  border-radius: 999px;
  background: var(--ok);
  box-shadow: 0 0 0 0 transparent;
}
.cal-day:hover { border-color: var(--gold); transform: translateY(-1px); }
.cal-day.empty { background: transparent; cursor: default; }
.cal-day.empty::after { display: none; }
.cal-day.few::after  { background: var(--gold); }
.cal-day.few  { background: color-mix(in srgb, var(--gold) 10%, var(--surface-2)); }
.cal-day.full {
  color: color-mix(in srgb, var(--text-dim) 75%, transparent);
  background: color-mix(in srgb, var(--danger) 9%, var(--surface-2));
  cursor: not-allowed;
}
.cal-day.full::after { background: var(--danger); }
.cal-day.full:hover { border-color: transparent; transform: none; }
.cal-day.closed {
  color: color-mix(in srgb, var(--text-dim) 55%, transparent);
  background: transparent;
  cursor: not-allowed;
}
.cal-day.closed::after { background: color-mix(in srgb, var(--text-dim) 45%, transparent); }
.cal-day.closed:hover { border-color: transparent; transform: none; }
.cal-day.sun { color: #bb5d57; }
.cal-day.sat { color: #5c7596; }
.cal-day.selected {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--gold) 30%, transparent);
}
.cal-day.selected::after { background: rgba(255,255,255,.9); }

/* Calendar legend — explains the availability dots */
.cal-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  font-size: 11.5px;
  letter-spacing: .04em;
  color: var(--text-dim);
}
.cal-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.cal-legend span::before {
  content: "";
  width: 7px; height: 7px;
  border-radius: 999px;
  background: var(--ok);
}
.cal-legend span.few::before    { background: var(--gold); }
.cal-legend span.full::before   { background: var(--danger); }
.cal-legend span.closed::before { background: color-mix(in srgb, var(--text-dim) 45%, transparent); }
.cal-legend span.buffer-mark::before { background: color-mix(in srgb, var(--text-dim) 45%, transparent); }

/* ---------- 30分単位：バッファ（準備時間）& 管理カレンダー件数 ---------- */
.slot.buffer {
  color: color-mix(in srgb, var(--text-dim) 70%, transparent);
  background: var(--surface-2);
  border: 1px dashed var(--border);
  cursor: not-allowed;
}
.sched-slot.buffer {
  border-style: dashed;
  background: transparent;
  color: var(--text-dim);
  font-size: 12.5px;
}
.sched-slot.buffer .time { color: color-mix(in srgb, var(--text-dim) 80%, transparent); }
.cal-grid.admin .cal-day::after { display: none; }
.cal-count {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--ink-on-gold, #fff);
  background: var(--gold);
  border-radius: 999px;
  padding: 1px 7px;
  line-height: 1.6;
}
.cal-day.selected .cal-count { background: rgba(255,255,255,.92); color: var(--gold); }

/* ---------- 管理：月間カレンダー（各日に予約を一覧表示） ---------- */
.cal-monthwrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cal-grid.month {
  grid-template-columns: repeat(7, minmax(116px, 1fr));
  gap: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  min-width: 812px;
}
.cal-grid.month .cal-dow {
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border);
}
.cal-grid.month .cal-day {
  aspect-ratio: auto;
  max-height: none;
  min-height: 120px;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 3px;
  border-radius: 0;
  border: none;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  padding: 6px 6px 8px;
  cursor: default;
}
.cal-grid.month .cal-day:hover { transform: none; border-color: var(--border); border-right-color: var(--border); border-bottom-color: var(--border); }
.cal-grid.month .cal-day::after { display: none; }
.cal-grid.month .cal-day.empty,
.cal-grid.month .cal-day.closed { background: var(--surface-2); }
.cal-daynum {
  font-family: var(--font-head);
  font-size: 12.5px;
  color: var(--text-dim);
  margin-bottom: 2px;
}
.cal-daynum.sun { color: #bb5d57; }
.cal-daynum.sat { color: #5c7596; }
.cal-rest { font-size: 10px; color: var(--text-dim); }
.cal-event {
  font-size: 10.5px;
  line-height: 1.45;
  padding: 1px 6px;
  border-radius: 5px;
  background: var(--tint);
  color: var(--text);
  border-left: 2px solid var(--gold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-event.t { background: color-mix(in srgb, var(--ok) 14%, transparent);   border-left-color: var(--ok); }
.cal-event.k { background: color-mix(in srgb, #b15784 12%, transparent);     border-left-color: #b15784; }
.cal-event.g { background: var(--surface-2);                                  border-left-color: var(--text-dim); }
.cal-more { font-size: 10px; color: var(--text-dim); padding-left: 2px; }
.cal-legend span.ev-p::before { background: var(--gold); }
.cal-legend span.ev-t::before { background: var(--ok); }
.cal-legend span.ev-k::before { background: #b15784; }
.cal-legend span.ev-g::before { background: var(--text-dim); }

/* ---------- Time slots ---------- */
.slots {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}
.slot {
  appearance: none;
  font-family: var(--font-body);
  font-size: 13.5px;
  letter-spacing: .03em;
  padding: 11px 6px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.slot:hover { border-color: var(--gold); color: var(--gold); }
.slot.full {
  color: color-mix(in srgb, var(--text-dim) 70%, transparent);
  background: var(--surface-2);
  cursor: not-allowed;
  text-decoration: line-through;
  border-color: transparent;
}
.slot.selected {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}

/* ---------- Summary ---------- */
.summary {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 6px 20px;
}
.summary dl {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 18px;
}
.summary dt {
  padding: 13px 0;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-dim);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.summary dd {
  margin: 0;
  padding: 13px 0;
  text-align: right;
  border-bottom: 1px solid var(--border);
  font-size: 14.5px;
}
.summary dl > dt:last-of-type,
.summary dl > dd:last-of-type { border-bottom: none; }
.summary .total dd, .summary dd.total {
  font-family: var(--font-head);
  font-size: 19px;
  color: var(--gold);
}

/* ---------- Lists ---------- */
.list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
}
.list-item + .list-item { border-top: 1px solid var(--border); }
.list-item .when {
  font-family: var(--font-head);
  font-size: 14.5px;
  letter-spacing: .02em;
}
.list-item .what {
  font-size: 12.5px;
  color: var(--text-dim);
  margin-top: 2px;
}
.status-pill {
  font-size: 11px;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 999px;
  white-space: nowrap;
  border: 1px solid var(--border);
  color: var(--text-dim);
  background: var(--surface-2);
}
.status-pill.confirmed {
  color: var(--ok);
  border-color: color-mix(in srgb, var(--ok) 40%, transparent);
  background: color-mix(in srgb, var(--ok) 12%, transparent);
}
.status-pill.cancelled {
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 40%, transparent);
  background: color-mix(in srgb, var(--danger) 10%, transparent);
}
.status-pill.expired {
  color: var(--text-dim);
  text-decoration: line-through;
}

/* ---------- Banners ---------- */
.banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface-2);
  font-size: 13.5px;
  line-height: 1.6;
}
.banner::before {
  font-family: var(--font-head);
  font-size: 15px;
  line-height: 1.4;
  flex: 0 0 auto;
}
.banner strong { font-weight: 600; }
.banner.info {
  color: color-mix(in srgb, #4a6f9c 90%, var(--text));
  border-color: color-mix(in srgb, #4a6f9c 30%, transparent);
  background: color-mix(in srgb, #4a6f9c 9%, transparent);
}
.banner.info::before { content: "ⓘ"; color: #4a6f9c; }
.banner.ok {
  color: color-mix(in srgb, var(--ok) 92%, var(--text));
  border-color: color-mix(in srgb, var(--ok) 35%, transparent);
  background: color-mix(in srgb, var(--ok) 10%, transparent);
}
.banner.ok::before { content: "✓"; color: var(--ok); }
.banner.warn {
  color: color-mix(in srgb, #b07d33 92%, var(--text));
  border-color: color-mix(in srgb, #b07d33 35%, transparent);
  background: color-mix(in srgb, #b07d33 10%, transparent);
}
.banner.warn::before { content: "!"; color: #b07d33; }

/* ---------- Tables ---------- */
.table-wrap {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
.table-wrap th {
  text-align: left;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-dim);
  padding: 13px 16px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
}
.table-wrap td {
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
}
.table-wrap tr:last-child td { border-bottom: none; }
.table-wrap tbody tr { transition: background .14s ease; }
.table-wrap tbody tr:hover { background: var(--tint); }

/* ---------- Day schedule (admin) ---------- */
.day-schedule {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sched-slot {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  font-size: 13.5px;
}
.sched-slot .time {
  font-family: var(--font-head);
  font-size: 13px;
  color: var(--text-dim);
  width: 56px;
  flex: 0 0 auto;
  letter-spacing: .02em;
}
.sched-slot.booked {
  border-color: var(--gold);
  background: var(--tint);
}
.sched-slot.booked .time { color: var(--gold); }

/* ---------- Misc ---------- */
.empty-state {
  text-align: center;
  padding: 44px 20px;
  color: var(--text-dim);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  font-size: 13.5px;
}
.empty-state .ico {
  font-family: var(--font-head);
  font-size: 30px;
  color: color-mix(in srgb, var(--gold) 55%, var(--text-dim));
  display: block;
  margin-bottom: 10px;
}
.footer-note {
  text-align: center;
  color: var(--text-dim);
  font-size: 11.5px;
  letter-spacing: .06em;
  padding: 30px 0 6px;
}
.mock-flag {
  display: inline-block;
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px dashed color-mix(in srgb, var(--gold) 50%, transparent);
  border-radius: 999px;
  padding: 3px 10px;
}
/* 本番（USE_MOCK=false）ではバッジ文言を空にする運用。空のときは枠ごと非表示にする。 */
.mock-flag:empty { display: none; }

/* ---------- Responsive ---------- */
@media (min-width: 600px) {
  .grid { grid-template-columns: 1fr 1fr; }
  .slots { grid-template-columns: repeat(4, 1fr); }
}


/* ============================================================
   Ivory — 白基調のための調整
   ============================================================ */
body {
  background:
    radial-gradient(1100px 520px at 50% -12%, color-mix(in srgb, var(--gold) 5%, transparent), transparent 60%),
    var(--bg);
}
.btn, .btn:hover { color: var(--ink-on-gold); }
.btn.ghost { color: var(--text); }
.btn.ghost:hover { color: var(--gold); }
.btn.danger { color: var(--danger); }
.btn:disabled, .btn[disabled] { color: var(--text-dim); }
.step.active::before { color: var(--ink-on-gold); }
.cal-day.selected, .slot.selected { color: var(--ink-on-gold); }
.cal-day.selected::after { background: rgba(255,255,255,.92); }
.check input[type=checkbox]:checked::after { color: var(--ink-on-gold); }
.banner.info { color: #2f5d92; } .banner.info::before { color: #2f5d92; }
.banner.warn { color: #9a6a1c; } .banner.warn::before { color: #9a6a1c; }
.badge.women {
  color: #b15784;
  border-color: color-mix(in srgb, #b15784 38%, transparent);
  background: color-mix(in srgb, #b15784 12%, transparent);
}
.menu-card:hover {
  box-shadow: 0 14px 34px rgba(40,30,10,.10), 0 0 0 1px color-mix(in srgb, var(--gold) 30%, transparent);
}
.site-header { box-shadow: 0 1px 0 color-mix(in srgb, var(--gold) 14%, transparent); }
h1 { letter-spacing: .04em; }

/* ============================================================
   ブランドロゴ（KAYO'S FITNESS）— .brand に画像を埋め込み
   ============================================================ */
.brand {
  display: block;
  width: 218px;
  height: 50px;
  background-image: url("data:image/png;base64,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");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
  font-size: 0;
  line-height: 0;
  color: transparent;
}
.brand > *, .brand .gold, .brand small { display: none; }
@media (max-width: 600px) {
  .brand { width: 183px; height: 42px; }
}

/* ============================================================
   管理編集フォーム（Phase 2：A-6 メニュー / A-7 営業時間）
   ============================================================ */
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 4px 16px;
  margin-bottom: 14px;
}
.form-grid label.field { margin-bottom: 8px; }
.field.checkbox {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.field.checkbox input { width: auto; }
.field.checkbox span.lbl { margin-bottom: 0; }
.btn.small { padding: 7px 14px; font-size: 13px; }
.field span.lbl small {
  text-transform: none;
  letter-spacing: 0;
  color: var(--text-dim);
  font-weight: 400;
}
.table-wrap td.center { text-align: center; }
.table-wrap td input,
.table-wrap td select {
  padding: 7px 9px;
  font-size: 14px;
  border-radius: 8px;
}
.table-wrap td input[type=text] { min-width: 12em; }
.table-wrap td input[type=checkbox] { width: auto; }
