/* 予約操作を優先し、ブランドカラーは主要操作に限定する。 */
.member-page{background:#f3f4f1;color:#171917;--member-muted:#555c55;--member-line:#d6dad2}
.member-header{background:#101310;color:#fff;border-color:#303730}
.member-hero{background:#171d18;color:white}
.member-hero__grid{min-height:0;padding-block:28px;gap:18px}
.member-hero h1{font-family:var(--member-body);font-size:32px;font-weight:700;line-height:1.4;letter-spacing:0;margin:6px 0}
.member-hero__aside{color:#d4d9d2;font-size:14px;line-height:1.7}
.member-auth-state{margin-top:6px}
.member-booking,.my-bookings{padding-block:28px}
.my-bookings{background:#e9ece5}
.member-kicker{color:#526044}
.member-hero .member-kicker,.member-dialog .member-kicker{color:var(--member-yellow)}
.member-section-head{margin-bottom:18px;gap:12px}
.member-section-head h2,.dialog-heading h2{font-family:var(--member-body);font-size:24px;font-weight:700;line-height:1.4;letter-spacing:0;margin:4px 0}
.schedule-period{font-size:15px;font-weight:700;margin-top:8px}
.member-week-controls{background:#fff;border-radius:8px;overflow:hidden}
.member-week-controls button{color:#171917}
.filter-disclosure{margin-bottom:18px;border:1px solid var(--member-line);border-radius:8px;background:#fff}
.filter-disclosure summary{padding:14px 16px;min-height:48px;cursor:pointer;font-size:14px;font-weight:700}
.member-filters{padding:16px;border-bottom:0}
.member-filters .field{min-width:0}
.field label{font-size:14px;letter-spacing:0}
.member-filters select{background:#fff;color:#171917;border-color:#aab2a5;font-size:16px}
.filter-reset{color:#344c29}
.schedule-grid{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}
.schedule-day__head{background:#e9ece5}
.schedule-day__date{font-size:23px;letter-spacing:0}
.schedule-day__dow{font-size:13px}
.schedule-day.is-today .schedule-day__date{color:#365320}
.session-card{background:white;color:#171917;border:1px solid #d0d6ca;border-radius:10px;margin:8px 0;padding:16px;min-height:138px}
.session-card:hover{background:#f9fce9;border-color:#70824f}
.session-card__time{font-size:21px;color:#283e1c;letter-spacing:0}
.session-card__title{font-family:var(--member-body);font-size:17px;line-height:1.5;letter-spacing:0;margin-top:8px;overflow-wrap:anywhere}
.session-card__meta{font-size:13px;line-height:1.5;flex-wrap:wrap}
.availability{background:#eef1e9;padding:4px 8px;border-radius:5px;color:#38442f}
.availability--available{background:#ffed00;color:#171917}
.availability--reserved{background:#ddebd6;color:#26471c}
.schedule-day>p{padding:24px 16px;color:#596153;font-size:15px}
.account-gate{font-size:15px;line-height:1.7}
.member-dialog{--member-muted:#c5cbc0;--member-line:#485043;border-radius:14px;font-size:16px;overflow-y:auto}
.member-dialog .field input{font-size:16px;border-color:#8d9786;border-radius:6px}
.member-dialog .field small{font-size:13px}
.dialog-heading h2{font-size:24px;padding-right:20px}
.auth-switch{margin-top:18px}
.detail-title{font-family:var(--member-body);font-size:26px;line-height:1.5;overflow-wrap:anywhere;padding-right:12px}
.detail-info{font-size:15px;line-height:1.7}
.detail-time{font-size:16px}
.reservation-item{background:#fff;color:#171917}
.reservation-item button,.logout-button{color:#171917}
.member-page [hidden]{display:none!important}
.member-page:has(dialog[open]){overflow:hidden}
/* 黒とイエローの世界観を維持し、補助文字にも十分な明るさを持たせる。 */
.member-page{background:#080a08;color:#f5f7f2;--member-muted:#bdc5b8;--member-line:#454d40}
.member-hero{background:#111610}
.my-bookings{background:#111510}
.member-kicker{color:var(--member-yellow)}
.member-week-controls,.filter-disclosure{background:#171c15;border-color:#525b4b}
.member-week-controls button{color:#f5f7f2}
.member-filters select{background:#20261d;color:#f5f7f2;border-color:#727e69}
.filter-reset{color:var(--member-yellow)}
.schedule-day__head{background:#1d241a}
.schedule-day.is-today .schedule-day__date{color:var(--member-yellow)}
.session-card{background:#171e14;color:#f5f7f2;border-color:#58624f}
.session-card:hover{background:#252e1e;border-color:var(--member-yellow)}
.session-card__time{color:var(--member-yellow)}
.availability{background:#323b2b;color:#e6ecdf}
.availability--available{background:var(--member-yellow);color:#111}
.availability--reserved{background:#dceacb;color:#203313}
.schedule-day>p{color:#c1c9b9}
.reservation-item{background:#171e14;color:#f5f7f2}
.reservation-item button,.logout-button{color:#f5f7f2}
/* 予約画面の操作ラベルは固定表示し、日本語の上下欠けを防ぐ。 */
.member-page .button{font-size:15px;line-height:1.6;min-height:52px;padding:12px 18px;white-space:normal}
.member-page .button__label{display:block;height:auto;overflow:visible;line-height:1.6}
.member-page .button__label>span:first-child{display:block;transform:none!important}
.member-page .button__label>span[aria-hidden="true"]{display:none}
@media(max-width:767px){
 .member-header{min-height:60px}
 .member-hero__grid{padding-block:20px;gap:8px}
 .member-hero h1{font-size:27px}
 .member-hero__aside{padding:0;border:0;max-width:none;font-size:13px}
 .member-hero__aside>p:first-child{display:none}
 .member-booking,.my-bookings{padding-block:22px}
 .member-section-head h2{font-size:21px}
 .member-week-controls{max-width:100%}
 .member-filters{grid-template-columns:minmax(0,1fr);gap:16px}
 .schedule-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible;border:1px solid #58624f;border-radius:8px;margin-bottom:14px;background:#171c15}
 .schedule-tabs button{width:100%;min-width:0;min-height:62px;padding:6px 0;flex:none;background:transparent;color:#e3eadc;font-size:13px}
 .schedule-tabs button:last-child{border-right:0}
 .schedule-tabs button[aria-selected="true"]{background:#ffed00;box-shadow:inset 0 -3px #172611}
 .schedule-tabs span{font-family:var(--member-body);font-size:19px}
 .schedule-day__head{min-height:48px;padding:12px;border-radius:6px}
 .session-card{min-height:0;padding:18px}
 .member-dialog{width:100%;max-width:none;max-height:90dvh;margin:auto 0 0;padding:48px 20px 24px;padding-bottom:max(24px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
 .member-dialog--detail{padding-top:48px}
 .account-gate{gap:16px}
}
