:root{--blue:#006cae;--orange:#f58220;--deep:#123d59;--pale:#edf6fb;--ink:#263e4e;--line:#ccd6dd;--muted:#627786;--radius:12px;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:"Yu Gothic",Meiryo,sans-serif;color:var(--ink);font-size:16px;line-height:1.65;background:#fff}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}a{color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;line-height:1.6}h2{font-size:1.5rem;line-height:1.55;margin-bottom:14px}h3{font-size:1rem;margin:24px 0 14px}.eyebrow{font-size:.75rem;letter-spacing:2px;font-weight:700;color:var(--blue);margin:0 0 12px}.muted{color:var(--muted);font-size:.875rem}.small,small{font-size:.75rem}small{color:var(--muted);font-weight:400}.primary,.secondary,.plain{border-radius:var(--radius);padding:12px 18px;min-height:46px;font-weight:600}.primary{background:var(--orange);color:#102438;border:1px solid var(--orange)}.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.plain{background:transparent;border:0;color:var(--blue)}.full{width:100%}.text-link{font-size:.875rem;text-underline-offset:4px}.error{color:#a52231;background:#fff3f4;padding:12px;border-radius:8px;font-size:.875rem}.notice{font-size:.875rem;line-height:1.8}.success-mark{display:grid;place-items:center;width:60px;height:60px;background:var(--pale);color:var(--blue);border-radius:50%;font-size:2rem;margin:0 auto 20px}label{display:block;margin:18px 0;font-size:.875rem;font-weight:600}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:7px;background:#fff;color:var(--ink);font-size:16px;min-height:46px}input[type=checkbox]{width:19px;height:19px;accent-color:var(--blue)}label em{font-size:.75rem;color:#a52231;font-style:normal;margin-left:8px}label small{margin-left:8px}.check{display:flex;align-items:flex-start;gap:10px;font-weight:400}.check input{flex-shrink:0}.brand-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 24px;border-top:4px solid var(--orange)}.brand-header img,.admin-header img{display:block;object-fit:contain;max-width:100%;height:auto}.brand-header>span{font-size:.65rem;letter-spacing:1px;color:var(--muted)}.customer-page{max-width:480px;margin:auto;box-shadow:0 0 60px #123d590d}.booking-hero{background:var(--pale);padding:38px 28px 24px;position:relative;overflow:hidden}.booking-hero:after{content:"";position:absolute;right:-110px;top:25px;width:180px;height:290px;transform:skew(-20deg);background:#f5822019;pointer-events:none}.booking-hero h1{color:var(--deep);font-weight:700;position:relative;z-index:1}.booking-hero>p:not(.eyebrow){font-size:.9375rem}.hero-line{border-top:1px solid var(--line);padding-top:16px;margin-top:28px;font-size:.625rem;letter-spacing:1.5px;color:var(--blue)}.booking-home-body{padding:30px 28px}.booking-home-body .primary{margin:22px 0 12px}.booking-home-body .notice{margin-bottom:14px}.flow-title{display:flex;align-items:center;gap:5px;padding:8px 15px;border-top:1px solid var(--line);font-size:.75rem}.flow-title .plain{padding:10px}.steps{list-style:none;display:flex;gap:8px;margin:0;padding:20px 24px;background:var(--pale);font-size:.75rem}.steps li{flex:1;text-align:center;border-top:3px solid var(--line);padding-top:10px;color:var(--muted)}.steps li.active{border-color:var(--blue);color:var(--blue);font-weight:700}#step-content{padding:28px 24px;min-height:360px}.choice{width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;padding:20px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--ink);min-height:94px}.choice strong{display:block;font-size:1rem}.choice small{display:block;margin-top:5px}.choice>span:last-child{white-space:nowrap}.choice.trainer>span:last-child{white-space:normal}.choice[aria-pressed=true]{border:2px solid var(--blue);padding:19px;background:var(--pale)}.trainer{justify-content:flex-start}.avatar{width:50px;height:50px;flex-shrink:0;object-fit:cover;border-radius:50%;background:var(--deep);color:#fff;display:grid;place-items:center}.booking-bottom{border-top:1px solid var(--line);padding:20px 24px}#selected-summary{display:flex;justify-content:space-between;gap:16px;font-size:.875rem;margin-bottom:16px}#selected-summary small{display:block;text-align:right}.customer-footer{border-top:1px solid var(--line);padding:20px 24px;display:flex;align-items:center;gap:10px;font-size:.875rem}.customer-footer>span{font-size:.6rem;letter-spacing:1px}.customer-footer a{margin-left:auto;font-size:.75rem}.month-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:25px 0 18px}.month-bar button{padding:10px}.calendar-week,.calendar-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-week{font-size:.75rem;color:var(--muted);margin-bottom:12px}.calendar-dates button{background:#fff;border:0;border-radius:8px;padding:10px 0;min-height:44px;color:var(--ink)}.calendar-dates button[aria-pressed=true],.available-times button[aria-pressed=true]{background:var(--blue);color:#fff}.available-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.available-times p{grid-column:1/-1}.available-times button{padding:10px}.booking-details{margin:24px 0}.booking-details>div{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid #e4edf3;font-size:.875rem}.booking-details dt{color:var(--muted);flex-shrink:0}.booking-details dd{margin:0;text-align:right}.success{text-align:center;padding-top:16px}.success p{font-size:.875rem}.booking-flow>.error{margin:0 24px 18px}.admin-page{background:#f5f8fb}.admin-header{display:flex;align-items:center;gap:22px;padding:16px 28px;background:#fff;border-top:4px solid var(--orange);border-bottom:1px solid var(--line)}.admin-header>strong{font-size:.875rem}.account{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:.75rem}.account .secondary{font-size:.75rem;padding:10px}.login{width:min(440px,calc(100% - 32px));margin:60px auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.login h1{font-size:1.75rem}.login button{margin-top:10px}.admin-shell{display:grid;grid-template-columns:200px minmax(0,1fr);min-height:calc(100vh - 91px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:28px 14px;display:flex;flex-direction:column;gap:6px}.sidebar>.eyebrow{margin:0 14px 20px;font-size:.65rem;color:var(--muted)}.sidebar button{background:#fff;color:var(--muted);text-align:left;border:0;border-radius:8px;padding:14px;font-size:.875rem;min-height:48px}.sidebar button.active{background:var(--pale);color:var(--blue);font-weight:700}.sidebar-bottom{margin-top:auto;padding:40px 14px 0;font-size:.7rem;color:var(--muted);letter-spacing:1px}.admin-main{padding:32px;min-width:0;max-width:1500px;width:100%;margin:auto}.view-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-bottom:24px}.view-heading h1{margin:0;font-size:1.75rem}.view-heading p{margin-bottom:8px}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}.toolbar label{margin:0;flex:1;min-width:140px;font-size:.75rem}.toolbar .secondary{font-size:.875rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{background:#fff;border:1px solid #dde5ed;border-radius:var(--radius);padding:22px}.stat p{font-size:.875rem;color:var(--muted);margin-bottom:12px}.stat strong{font-size:2rem;color:var(--deep);font-weight:600}.stat strong small{margin-left:8px}.table-wrap{overflow:auto;background:#fff;border:1px solid #dde5ed;border-radius:var(--radius)}table{border-collapse:collapse;width:100%;font-size:.875rem;min-width:880px}th{text-align:left;background:#f9fbfc;color:var(--muted);font-weight:500;padding:15px 12px;white-space:nowrap}td{padding:18px 12px;border-top:1px solid #e5edf3;vertical-align:middle}td strong{display:block;font-size:.875rem;font-weight:600}td small{display:block;margin-top:4px}.badge{display:inline-block;font-size:.75rem;padding:5px 8px;background:var(--pale);color:var(--blue);border-radius:5px;white-space:nowrap}.badge.attended{background:#ebf0f4;color:#536371}.badge.cancelled,.badge.no_show{background:#f0f1f3;color:#747b83}.badge.failed{background:#fff1e4;color:#9a4d0b}.table-wrap button{font-size:.75rem;padding:8px 10px;min-height:40px}td .ticket-number{font-size:1.1rem;color:var(--blue)}.panel{background:#fff;border:1px solid #dde5ed;padding:24px;border-radius:var(--radius);margin-bottom:20px}.panel h2{font-size:1.2rem}.panel p{font-size:.875rem}.empty{text-align:center;padding:45px 20px;color:var(--muted);font-size:.875rem}.row-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}.hours-row{display:grid;grid-template-columns:100px minmax(0,1fr) 15px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px}.hours-row label{display:flex;gap:8px;align-items:center;margin:0;font-size:.75rem}.hours-row input[type=time]{font-size:.875rem;padding:8px}.hours-row>span{text-align:center}.list-item{padding:18px 0;border-bottom:1px solid #e3ebf1;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.875rem}.list-item strong{display:block}.list-item small{display:block;margin-top:5px}.list-item:last-child{border-bottom:0}dialog{border:1px solid var(--line);border-radius:16px;width:min(640px,calc(100% - 28px));max-height:90vh;padding:28px;color:var(--ink);background:#fff}dialog::backdrop{background:#10243866}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-heading h2{margin:0;font-size:1.35rem}.dialog-heading .plain{font-size:.875rem}.dialog-footer{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.dialog-footer button{min-width:125px}#admin-notice{background:var(--pale);color:var(--deep);padding:15px;border-radius:10px;margin-bottom:20px;font-size:.875rem}.schedule{display:grid;gap:10px}.schedule-item{background:#fff;border:1px solid #dce6ef;border-left:4px solid var(--blue);border-radius:8px;padding:17px;display:flex;align-items:center;gap:18px;font-size:.875rem;flex-wrap:wrap;text-align:left;color:var(--ink)}.schedule-item small{display:block}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-cell{background:#fff;border:1px solid #dde5ed;min-height:135px;padding:10px;border-radius:7px;min-width:0}.calendar-cell>strong{font-size:.875rem}.calendar-cell button{display:block;width:100%;border:0;background:var(--pale);color:var(--blue);padding:7px;text-align:left;font-size:.75rem;margin-top:8px;border-radius:4px;overflow-wrap:anywhere}.calendar-label{text-align:center;font-size:.75rem;color:var(--muted);padding:10px}.calendar-note{font-size:.75rem;color:var(--muted);margin:20px 0}.login-loading{opacity:.5;pointer-events:none}
@media(min-width:800px){.customer-page{margin:24px auto;border:1px solid var(--line);border-radius:16px;overflow-x:hidden;overflow-y:auto}body:has(.customer-page){background:var(--pale)}}
@media(max-width:900px){.admin-shell{grid-template-columns:160px minmax(0,1fr)}.admin-main{padding:24px 18px}.settings-layout{grid-template-columns:1fr}.sidebar{padding:20px 8px}.sidebar button{padding:13px 9px}}
@media(max-width:650px){.admin-header{padding:14px 18px;gap:14px;flex-wrap:wrap}.admin-header img{width:108px}.account{margin-left:auto}.account span{display:none}.admin-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap;padding:10px;gap:2px}.sidebar>.eyebrow,.sidebar-bottom{display:none}.sidebar button{font-size:.75rem;padding:10px}.admin-main{padding:24px 16px}.stats{gap:8px}.stat{padding:15px 10px}.stat p{font-size:.75rem}.stat strong{font-size:1.5rem}.setting-grid{grid-template-columns:1fr}.panel{padding:20px 16px}.calendar-grid{grid-template-columns:1fr}.calendar-label{display:none}.calendar-cell{min-height:75px}.calendar-cell:empty{display:none}.hours-row{grid-template-columns:80px minmax(0,1fr) 12px minmax(0,1fr)}dialog{padding:20px}.brand-header{padding:18px 24px}.view-heading .primary{width:100%}}

.badge.pending,.badge.approval{background:#fff0da;color:#8b4b00}.badge.not_required{background:#eef1f3;color:#52606a}

.member-entry{margin-top:14px}.member-entry>button{font-size:1rem;padding:16px 10px}.member-entry p{margin:10px 0 20px}.booking-bottom #selected-summary strong{font-size:.95rem}.steps li[hidden]{display:none}

.customer-page #start-member-booking{background:var(--blue);border-color:var(--blue);color:#fff}.customer-page #start-member-booking:hover:not(:disabled){background:var(--deep);border-color:var(--deep)}

/* Desktop reservation layout: 20261006-web1 */
@media (min-width: 800px) and (hover: hover) and (pointer: fine) {
  .customer-page {
    width: calc(100% - 64px);
    max-width: 1120px;
    margin: 32px auto;
    background: #fff;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .customer-page .brand-header { padding: 24px 40px; }
  .customer-page .booking-home {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  }
  .customer-page .booking-hero {
    min-height: 540px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px 40px;
  }
  .customer-page .booking-hero h1 { font-size: 2.75rem; }
  .customer-page .booking-hero .hero-line { margin-top: 36px; }
  .customer-page .booking-home-body { padding: 32px 36px; }
  .customer-page .booking-home-body h2 br { display: none; }
  .customer-page .booking-home-body .panel { padding: 20px; }
  .customer-page .booking-home-body .panel h3 { margin: 10px 0; }
  .customer-page .booking-home-body .panel p { margin-bottom: 10px; }
  .customer-page.trial-page .trial-hero { min-height: 540px; }
  .customer-page.trial-page .trial-hero > div { padding: 40px; }
  .customer-page.trial-page .trial-hero h1 { font-size: 2.25rem; }
  .customer-page .flow-title { padding: 14px 30px; font-size: .875rem; }
  .customer-page .steps { padding: 20px 40px; gap: 20px; }
  .customer-page #step-content { padding: 32px 40px; }
  .customer-page #step-content:has([data-course]) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
  }
  .customer-page #step-content:has([data-course]) > :is(.eyebrow, h2, p) {
    grid-column: 1 / -1;
  }
  .customer-page #step-content:has([data-course]) .choice { min-height: 130px; }
  .customer-page #step-content:has(#calendar-dates) {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    column-gap: 40px;
    align-items: start;
  }
  .customer-page #step-content:has(#calendar-dates) > :is(.eyebrow, h2, p) {
    grid-column: 1 / -1;
  }
  .customer-page #step-content:has(#calendar-dates) > .eyebrow { grid-row: 1; }
  .customer-page #step-content:has(#calendar-dates) > h2 { grid-row: 2; }
  .customer-page #step-content:has(#calendar-dates) > p:not(.eyebrow) { grid-row: 3; }
  .customer-page #step-content:has(#calendar-dates) > .month-bar { grid-column: 1; grid-row: 4; }
  .customer-page #step-content:has(#calendar-dates) > .calendar-week { grid-column: 1; grid-row: 5; }
  .customer-page #step-content:has(#calendar-dates) > #calendar-dates { grid-column: 1; grid-row: 6; }
  .customer-page #step-content:has(#calendar-dates) > h3 { grid-column: 2; grid-row: 4; }
  .customer-page #step-content:has(#calendar-dates) > #available-times { grid-column: 2; grid-row: 5 / 7; }
  .customer-page #step-content:has(#calendar-dates) > .line-consult { grid-column: 1 / -1; }
  .customer-page .calendar-dates button { min-height: 48px; }
  .customer-page #customer-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
  }
  .customer-page #customer-form > label { margin: 12px 0; }
  .customer-page #customer-form > :is(div, p),
  .customer-page #customer-form > label:has(textarea),
  .customer-page #customer-form > .check { grid-column: 1 / -1; }
  .customer-page #customer-form .line-contact-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
  }
  .customer-page #customer-form .line-contact-fields > p { grid-column: 1 / -1; }
  .customer-page .booking-details { max-width: 760px; margin: 24px auto; }
  .customer-page .booking-bottom {
    display: flex;
    align-items: center;
    gap: 32px;
    padding: 24px 40px;
  }
  .customer-page #selected-summary { flex: 1; margin-bottom: 0; }
  .customer-page .booking-bottom > button { width: auto; min-width: 240px; }
  .customer-page .booking-flow > .error { margin: 0 40px 20px; }
  .customer-page .customer-footer { padding: 24px 40px; }
}
