.rakuza_cb2-booking{--rk-border:#ddd;--rk-bg:#fff;--rk-soft:#f6f7f8;--rk-text:#222;font-family:inherit;color:var(--rk-text)}
.rakuza_cb2-toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.rakuza_cb2-view-tabs{display:inline-flex;border:1px solid var(--rk-border);border-radius:10px;overflow:hidden}.rakuza_cb2-view-tabs a{padding:8px 14px;text-decoration:none;background:#fff;color:#333;border-right:1px solid var(--rk-border)}.rakuza_cb2-view-tabs a:last-child{border-right:0}.rakuza_cb2-view-tabs a.is-active{background:#222;color:#fff}
.rakuza_cb2-month-title{font-size:1.25rem;font-weight:700;margin:12px 0}.rakuza_cb2-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--rk-border);border-top:1px solid var(--rk-border)}.rakuza_cb2-month-grid>div{border-right:1px solid var(--rk-border);border-bottom:1px solid var(--rk-border)}.rakuza_cb2-week-head>div{padding:7px;text-align:center;background:var(--rk-soft);font-weight:600}.rakuza_cb2-day{min-height:105px;padding:5px;background:#fff}.rakuza_cb2-day.is-muted{background:#fafafa;color:#aaa}.rakuza_cb2-daynum{font-size:.85rem;margin-bottom:4px}
.rakuza_cb2-class-chip{display:block;padding:4px 5px;margin:3px 0;border-radius:6px;background:#f1f3f5;text-decoration:none;color:#222;font-size:11px;line-height:1.2;overflow:hidden}.rakuza_cb2-class-chip .rakuza_cb2-class-time{display:block;font-size:10px;line-height:1.2;font-weight:700}.rakuza_cb2-class-chip .rakuza_cb2-class-title{display:block;font-size:11px;line-height:1.25;overflow-wrap:anywhere;word-break:break-all}.rakuza_cb2-class-chip small{display:block;font-size:10px;font-weight:700;margin-top:2px}.rakuza_cb2-class-chip.is-full{opacity:1}.rakuza_cb2-availability.is-alert{color:#d63638!important;font-weight:700}
.rakuza_cb2-list{display:grid;gap:8px}.rakuza_cb2-list-item{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--rk-border);border-radius:8px;text-decoration:none;color:inherit}.rakuza_cb2-list-item em{font-style:normal;font-size:.85rem}
.rakuza_cb2-panel{background:#fff;border:1px solid var(--rk-border);border-radius:10px;padding:18px;margin:20px 0}.rakuza_cb2-panel input,.rakuza_cb2-panel select{max-width:100%;padding:8px}.rakuza_cb2-primary,.rakuza_cb2-secondary{appearance:none;border:0;border-radius:8px;padding:10px 16px;cursor:pointer}.rakuza_cb2-primary{background:#222;color:#fff}.rakuza_cb2-secondary{background:#eee;color:#222}.rakuza_cb2-error{color:#b32d2e}.rakuza_cb2-notice{padding:12px;border-radius:8px;background:#edf7ed;margin-bottom:16px}.rakuza_cb2-reservation{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}.rakuza_cb2-reservation:last-child{border-bottom:0}.rakuza_cb2-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#eee;font-size:.75rem}.rakuza_cb2-muted{color:#777;font-size:.85rem}
.rakuza_cb2-admin .rakuza_cb2-cards{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.rakuza_cb2-admin .rakuza_cb2-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:18px;min-width:150px}.rakuza_cb2-admin .rakuza_cb2-card strong{display:block;font-size:2rem}.rakuza_cb2-admin .rakuza_cb2-card span{color:#666}.rakuza_cb2-admin .rakuza_cb2-panel{max-width:900px}
@media(max-width:720px){.rakuza_cb2-day{min-height:82px;padding:0}.rakuza_cb2-daynum{margin:2px 2px 3px}.rakuza_cb2-class-chip{font-size:9px;padding:2px 0;margin:1px 0;border-radius:5px}.rakuza_cb2-class-chip .rakuza_cb2-class-time{font-size:9px;line-height:1.08;padding:0 1px}.rakuza_cb2-class-chip .rakuza_cb2-class-title{font-size:9px;line-height:1.08;letter-spacing:-.15px;padding:0;overflow-wrap:anywhere;word-break:break-all}.rakuza_cb2-class-chip small{font-size:8.5px;line-height:1.08;margin-top:1px;padding:0 1px}.rakuza_cb2-month-grid{font-size:.78rem}.rakuza_cb2-week-head>div{padding:5px 0}.rakuza_cb2-list-item{grid-template-columns:1fr}.rakuza_cb2-reservation{align-items:flex-start;flex-direction:column}}
.rakuza_cb2-period-nav{display:flex;gap:8px;align-items:center}.rakuza_cb2-period-nav a{display:inline-block;padding:8px 12px;border:1px solid var(--rk-border);border-radius:8px;background:#fff;color:#333;text-decoration:none}.rakuza_cb2-period-nav a:hover{background:var(--rk-soft)}
@media(max-width:720px){.rakuza_cb2-toolbar{align-items:flex-start;gap:10px;flex-direction:column}.rakuza_cb2-view-tabs{align-self:flex-start;width:max-content;max-width:100%}.rakuza_cb2-view-tabs a{flex:0 0 auto;padding:7px 10px;white-space:nowrap}.rakuza_cb2-period-nav{align-self:stretch;justify-content:space-between}.rakuza_cb2-period-nav a{flex:1;text-align:center}}

/* v0.2.2: admin form readability */
.rakuza_cb2-admin .rakuza_cb2-panel select{padding-right:32px;min-height:36px;line-height:1.3}
.rakuza_cb2-admin .rakuza_cb2-inline-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rakuza_cb2-admin .rakuza_cb2-recurrence-box{margin-top:10px;padding:12px;border:1px solid #ddd;border-radius:8px;background:#fafafa}
.rakuza_cb2-admin .rakuza_cb2-choice-row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px}
.rakuza_cb2-admin .rakuza_cb2-week-checks{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0}
.rakuza_cb2-admin .rakuza_cb2-recurrence-options p{margin:8px 0}

/* v0.2.3: admin calendar-first class management */
.rakuza_cb2-admin-calendar-actions{margin:14px 0 16px}
.rakuza_cb2-admin-calendar{margin-top:12px;max-width:1400px}
.rakuza_cb2-admin-calendar .rakuza_cb2-month-grid{background:#fff}
.rakuza_cb2-admin-calendar .rakuza_cb2-day{min-height:118px}
.rakuza_cb2-admin-class-chip{border-left:3px solid #646970;background:#f6f7f7}
.rakuza_cb2-admin-class-chip:hover{background:#eef0f1;color:#135e96}
#rakuza_cb2-class-editor{scroll-margin-top:42px}
@media(max-width:782px){.rakuza_cb2-admin-calendar .rakuza_cb2-day{min-height:86px}.rakuza_cb2-admin-calendar-actions .button{width:100%;text-align:center}}

/* v0.2.8: admin calendar uses larger text than customer calendar */
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-class-chip{font-size:13px;line-height:1.25;padding:5px 6px;margin:3px 0}
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-class-chip .rakuza_cb2-class-time{font-size:13px;line-height:1.2;font-weight:700;padding:0}
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-class-chip .rakuza_cb2-class-title{font-size:13px;line-height:1.3;letter-spacing:0;padding:0}
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-class-chip small{font-size:12px;line-height:1.25;margin-top:2px;padding:0}
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-availability.is-alert{font-size:13px;font-weight:700}

/* v0.3.0: multi-class selection and confirmation */
.rakuza_cb2-selectable-class{font-family:inherit;cursor:pointer}
button.rakuza_cb2-class-chip{width:100%;border:0;text-align:left}
.rakuza_cb2-class-chip.is-selected,.rakuza_cb2-list-item.is-selected{box-shadow:inset 0 0 0 2px #2271b1;background:#eaf4ff}
.rakuza_cb2-list-item.rakuza_cb2-selectable-class{width:100%;border:1px solid var(--rk-border);background:#fff;text-align:left;font:inherit;cursor:pointer}
.rakuza_cb2-list-item.is-full{opacity:.75}
.rakuza_cb2-selection-bar{position:sticky;bottom:10px;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:10px 12px;border:1px solid var(--rk-border);border-radius:10px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.12)}
.rakuza_cb2-selection-bar[hidden]{display:none!important}
.rakuza_cb2-selection-actions{display:flex;gap:8px;align-items:center}
.rakuza_cb2-booking-confirm-list{display:grid;gap:0;margin:12px 0 18px}
.rakuza_cb2-booking-confirm-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid #eee}
.rakuza_cb2-booking-confirm-row:first-child{border-top:1px solid #eee}
.rakuza_cb2-booking-confirm-row select{min-width:64px}
@media(max-width:720px){
  .rakuza_cb2-selection-bar{position:fixed;left:8px;right:8px;bottom:8px;margin:0;z-index:9999}
  .rakuza_cb2-booking{padding-bottom:72px}
  .rakuza_cb2-selection-bar .rakuza_cb2-primary,.rakuza_cb2-selection-bar .rakuza_cb2-secondary{padding:9px 12px}
  .rakuza_cb2-booking-confirm-row{align-items:flex-start;flex-direction:column;gap:8px}
}


/* v0.3.1: clearer selection guidance, booked-class editing, and mobile booking CTA */
.rakuza_cb2-selection-guide{margin:14px 0 8px;text-align:center;font-size:20px;line-height:1.45;font-weight:700;color:#1d2327}
.rakuza_cb2-selection-guide[hidden]{display:none!important}
#rakuza_cb2-confirm-selection{background:#bfe9ff!important;color:#0a3d62!important;border:1px solid #72c6f0!important;font-weight:700}
#rakuza_cb2-confirm-selection:hover{background:#a9e1ff!important}
.rakuza_cb2-booking-note{padding:10px 12px;border-radius:8px;background:#eef8ff}
.rakuza_cb2-booked-status{font-weight:700;color:#2271b1}
.rakuza_cb2-selectable-class.is-booked{outline:1px solid rgba(34,113,177,.22)}
@media(max-width:720px){.rakuza_cb2-selection-guide{font-size:18px;margin:12px 0 8px}}


/* v0.4.0: waitlist */
.rakuza_cb2-waitlist-status{display:block;color:#b26200;font-weight:700;font-size:.85em;margin-top:2px}
.rakuza_cb2-waitlist-badge{display:inline-block;margin-top:4px;padding:2px 7px;border-radius:999px;background:#fff3cd;color:#7a4b00;font-weight:700}
.rakuza_cb2-waitlist-note{padding:10px 12px;border-radius:8px;background:#fff8e5;border:1px solid #f0d98a}
.rakuza_cb2-booking-confirm-row.is-waitlist{background:#fffdf6}
.rakuza_cb2-selectable-class.is-waitlisted{outline:1px solid rgba(178,98,0,.3)}
.rakuza_cb2-list-item .rakuza_cb2-waitlist-status{margin-top:3px}


/* v0.5.0: account/auth foundation */
.rakuza_cb2-admin .rakuza_cb2-admin-calendar .rakuza_cb2-admin-capacity-status.is-full{color:#d63638!important;font-weight:700}
.rakuza_cb2-auth-choice{margin:14px 0 18px;padding:14px;border:1px solid #cfe3f4;border-radius:10px;background:#f6fbff}
.rakuza_cb2-auth-choice h3{margin-top:0}
.rakuza_cb2-auth-choice form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.rakuza_cb2-auth-choice label{display:block;flex:1 1 240px}
.rakuza_cb2-auth-choice input[type=email]{width:100%}
.rakuza_cb2-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:#777;font-size:.9em}
.rakuza_cb2-divider:before,.rakuza_cb2-divider:after{content:"";height:1px;background:#ddd;flex:1}
.rakuza_cb2-account-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 16px}
.rakuza_cb2-status-ok{color:#16803a;font-weight:700}
.rakuza_cb2-status-warn{color:#b26200;font-weight:700}
.rakuza_cb2-account-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* v0.5.3: contextual login feedback; booking notifications do not shift calendar layout */
.rakuza_cb2-inline-feedback{margin:8px 0;padding:8px 10px;border-radius:6px;background:#f0f8ff;color:#1d4059;font-size:.9rem}
.rakuza_cb2-inline-feedback.is-error{background:#fff2f2;color:#a32121}
.rakuza_cb2-result-toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);z-index:10020;padding:10px 16px;border-radius:8px;background:#222;color:white;font-size:14px;box-shadow:0 3px 18px rgba(0,0,0,.2);pointer-events:none}
@media(max-width:720px){.rakuza_cb2-result-toast{bottom:calc(82px + env(safe-area-inset-bottom, 0px))}}

/* v0.6.0: notification settings + customer/admin message thread */
.rakuza_cb2-settings-fieldset{border:0;padding:0;margin:0 0 12px;display:flex;gap:16px;flex-wrap:wrap}.rakuza_cb2-settings-fieldset legend{font-weight:700;margin-bottom:6px}.rakuza_cb2-disabled-option{color:#888}.rakuza_cb2-check-row{display:block;margin:9px 0}.rakuza_cb2-message-panel{scroll-margin-top:24px}.rakuza_cb2-message-thread{display:flex;flex-direction:column;gap:10px;margin:14px 0 18px;padding:12px;background:#f7f7f7;border-radius:10px;max-height:560px;overflow:auto}.rakuza_cb2-message{max-width:min(82%,620px);padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #e2e2e2;align-self:flex-start}.rakuza_cb2-message.is-customer{align-self:flex-end;background:#eaf6ff;border-color:#c6e5f7}.rakuza_cb2-message-meta{display:flex;gap:10px;align-items:baseline;justify-content:space-between;margin-bottom:5px;font-size:.78rem;color:#666}.rakuza_cb2-message-meta strong{color:#333}.rakuza_cb2-message-body{white-space:normal;overflow-wrap:anywhere;line-height:1.55}.rakuza_cb2-message-photo-link{display:block;margin-top:8px}.rakuza_cb2-message-photo{display:block;max-width:100%;max-height:360px;width:auto;height:auto;border-radius:8px}.rakuza_cb2-message-expired{margin-top:7px}.rakuza_cb2-message-form{display:grid;gap:10px}.rakuza_cb2-message-form label{display:grid;gap:5px}.rakuza_cb2-message-form textarea{width:100%;max-width:100%;box-sizing:border-box;padding:9px}.rakuza_cb2-message-form input[type=file]{max-width:100%}.rakuza_cb2-message-form .rakuza_cb2-primary{justify-self:start}.rakuza_cb2-admin-message-thread{max-width:860px}.rakuza_cb2-admin-messages .rakuza_cb2-panel{max-width:920px}.rakuza_cb2-admin-messages .rakuza_cb2-message.is-admin{align-self:flex-end;background:#eaf6ff;border-color:#c6e5f7}.rakuza_cb2-admin-messages .rakuza_cb2-message.is-customer{align-self:flex-start;background:#fff;border-color:#e2e2e2}
@media(max-width:720px){.rakuza_cb2-message{max-width:92%}.rakuza_cb2-message-thread{padding:9px}.rakuza_cb2-settings-fieldset{gap:10px;flex-direction:column}.rakuza_cb2-message-photo{max-height:280px}}


/* v0.6.1: message usability fixes */
.rakuza_cb2-message-panel,.rakuza_cb2-message-form,.rakuza_cb2-message-form label{min-width:0;max-width:100%;box-sizing:border-box}
.rakuza_cb2-message-form{width:100%;overflow:hidden}
.rakuza_cb2-message-form textarea{display:block;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;resize:vertical}
.rakuza_cb2-message-form input[type=file]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}
.rakuza_cb2-admin-messages .widefat td{vertical-align:middle}
@media(max-width:720px){
  .rakuza_cb2-message-panel{overflow-x:hidden;padding-left:12px;padding-right:12px}
  .rakuza_cb2-message-form,.rakuza_cb2-message-form label,.rakuza_cb2-message-form textarea,.rakuza_cb2-message-form input[type=file]{width:100%!important;max-width:100%!important;min-width:0!important}
}

/* v0.6.3: desktop-only two-column my page, compact messenger, and image preview. */
.rakuza_cb2-mypage{container-type:inline-size}
.rakuza_cb2-mypage-layout,.rakuza_cb2-mypage-main,.rakuza_cb2-mypage-side{min-width:0}
.rakuza_cb2-mypage .rakuza_cb2-message-thread{min-width:0}
.rakuza_cb2-message-photo-link{display:inline-block;max-width:100%;border-radius:9px;cursor:zoom-in;line-height:0;overflow:hidden}
.rakuza_cb2-message-photo-link:focus-visible{outline:3px solid #2271b1;outline-offset:3px}
.rakuza_cb2-message-photo{width:112px;height:112px;max-width:100%;max-height:none;object-fit:cover;object-position:center;border-radius:9px}
.rakuza_cb2-image-modal{position:fixed;inset:0;box-sizing:border-box;border:0;border-radius:14px;padding:46px 16px 16px;max-width:min(94vw,980px);max-height:94vh;background:#fff;box-shadow:0 12px 48px rgba(0,0,0,.3);overflow:auto}
.rakuza_cb2-image-modal::backdrop{background:rgba(0,0,0,.78)}
.rakuza_cb2-image-modal img{display:block;max-width:100%;max-height:calc(94vh - 80px);width:auto;height:auto;margin:auto;object-fit:contain;border-radius:6px}
.rakuza_cb2-image-modal-close{position:absolute;top:7px;right:8px;display:flex;align-items:center;justify-content:center;min-width:38px;min-height:36px;border:0;border-radius:8px;background:#f0f0f0;color:#222;font-size:24px;line-height:1;cursor:pointer}
.rakuza_cb2-image-modal-close:focus-visible{outline:3px solid #2271b1}
/* v0.6.4: desktop my page uses equal columns without horizontal overflow. */
.rakuza_cb2-mypage,.rakuza_cb2-mypage-layout{width:100%;max-width:100%;box-sizing:border-box}
@media(min-width:1000px){
  @container (min-width:740px){
    .rakuza_cb2-mypage-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
    .rakuza_cb2-mypage-main,.rakuza_cb2-mypage-side{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
    .rakuza_cb2-mypage-side{position:sticky;top:24px;align-self:start}
    .rakuza_cb2-mypage-side .rakuza_cb2-message-panel{width:100%;max-width:100%;padding:14px;box-sizing:border-box;margin-top:20px;overflow:hidden}
    .rakuza_cb2-mypage-side .rakuza_cb2-message-thread{width:100%;max-width:100%;height:clamp(260px,46vh,500px);max-height:500px;padding:10px;box-sizing:border-box}
    .rakuza_cb2-mypage-side .rakuza_cb2-message{box-sizing:border-box;max-width:82%;width:fit-content;padding:9px 10px}
    .rakuza_cb2-mypage-side .rakuza_cb2-message-meta{font-size:12px;line-height:1.35}
    .rakuza_cb2-mypage-side .rakuza_cb2-message-form{width:100%;max-width:100%;gap:8px;box-sizing:border-box}
    .rakuza_cb2-mypage-side .rakuza_cb2-message-form textarea{min-height:66px;font-size:14px}
  }
}

/* v0.6.5: compact my page typography and two-line reservation/waitlist rows. */
.rakuza_cb2-mypage{font-size:14px;line-height:1.45}
.rakuza_cb2-mypage>h2{font-size:24px;line-height:1.2;margin:0 0 6px}
.rakuza_cb2-mypage .rakuza_cb2-panel{padding:14px;margin:14px 0;border-radius:9px}
.rakuza_cb2-mypage .rakuza_cb2-panel h3{font-size:16px;line-height:1.3;margin:0 0 10px}
.rakuza_cb2-mypage .rakuza_cb2-panel p{margin:7px 0}
.rakuza_cb2-mypage .rakuza_cb2-primary,.rakuza_cb2-mypage .rakuza_cb2-secondary{font-size:13px;line-height:1.2;padding:7px 11px;border-radius:7px}
.rakuza_cb2-mypage input,.rakuza_cb2-mypage select,.rakuza_cb2-mypage textarea{font-size:14px}
.rakuza_cb2-mypage .rakuza_cb2-muted{font-size:12px;line-height:1.45}
.rakuza_cb2-mypage .rakuza_cb2-account-status{margin:6px 0 10px}
.rakuza_cb2-mypage .rakuza_cb2-check-row{margin:6px 0}
.rakuza_cb2-mypage .rakuza_cb2-settings-fieldset{gap:10px;margin-bottom:8px}
.rakuza_cb2-mypage .rakuza_cb2-message-thread{font-size:13px;gap:8px;margin:10px 0 12px}
.rakuza_cb2-mypage .rakuza_cb2-message{padding:7px 9px;border-radius:10px}
.rakuza_cb2-mypage .rakuza_cb2-message-body{line-height:1.4}
.rakuza_cb2-mypage .rakuza_cb2-message-form{gap:7px}
.rakuza_cb2-mypage .rakuza_cb2-message-form textarea{padding:7px;min-height:58px}
.rakuza_cb2-reservation{display:block;padding:9px 0;border-bottom:1px solid #eee}
.rakuza_cb2-reservation-title{line-height:1.3;margin-bottom:4px}
.rakuza_cb2-reservation-title strong{font-size:14px}
.rakuza_cb2-reservation-line{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.rakuza_cb2-reservation-detail{font-size:13px;line-height:1.35;min-width:0}
.rakuza_cb2-reservation-line form{margin:0;flex:0 0 auto}
.rakuza_cb2-reservation .rakuza_cb2-small-action{white-space:nowrap;font-size:12px;padding:5px 9px}
.rakuza_cb2-reservation.is-cancelled .rakuza_cb2-reservation-title{color:#777}
.rakuza_cb2-reservation.is-cancelled .rakuza_cb2-reservation-detail{color:#888;text-decoration:line-through}
.rakuza_cb2-reservation-deadline{white-space:nowrap}

@media(max-width:720px){
  .rakuza_cb2-mypage{font-size:13px;line-height:1.4}
  .rakuza_cb2-mypage>h2{font-size:21px}
  .rakuza_cb2-mypage .rakuza_cb2-panel{padding:11px;margin:11px 0}
  .rakuza_cb2-mypage .rakuza_cb2-panel h3{font-size:15px;margin-bottom:8px}
  .rakuza_cb2-mypage .rakuza_cb2-primary,.rakuza_cb2-mypage .rakuza_cb2-secondary{font-size:12px;padding:6px 9px}
  .rakuza_cb2-mypage input,.rakuza_cb2-mypage select,.rakuza_cb2-mypage textarea{font-size:13px}
  .rakuza_cb2-mypage .rakuza_cb2-muted{font-size:11.5px}
  .rakuza_cb2-mypage .rakuza_cb2-message-thread{font-size:12px;padding:7px}
  .rakuza_cb2-mypage .rakuza_cb2-message{max-width:90%;padding:6px 8px}
  .rakuza_cb2-reservation{padding:8px 0}
  .rakuza_cb2-reservation-title strong{font-size:13px}
  .rakuza_cb2-reservation-detail{font-size:12px}
  .rakuza_cb2-reservation .rakuza_cb2-small-action{font-size:11px;padding:5px 8px}
}

#rakuza_cb2-line{scroll-margin-top:24px}

/* v0.6.14: selected vs booked classes; the action bar stays at the viewport bottom
   only until the calendar's natural end. No scroll-position JavaScript. */
.rakuza_cb2-booking .rakuza_cb2-class-title,
.rakuza_cb2-booking .rakuza_cb2-list-title {font-weight:400!important}
.rakuza_cb2-list-time {font-weight:700}
.rakuza_cb2-booking .rakuza_cb2-selectable-class.is-booked:not(.is-selected) {
  background:#eaf4ff;box-shadow:inset 0 0 0 2px #2271b1;
  border-color:#2271b1;color:#16334b;outline:0;
}
.rakuza_cb2-booking .rakuza_cb2-selectable-class.is-selected,
.rakuza_cb2-booking .rakuza_cb2-list-item.rakuza_cb2-selectable-class.is-selected {
  background:#135e96!important;color:#fff!important;
  box-shadow:inset 0 0 0 2px #083d65!important;border-color:#083d65!important;outline:0;
}
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-class-title,
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-class-time,
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-list-title,
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-list-time,
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-availability,
.rakuza_cb2-selectable-class.is-selected .rakuza_cb2-availability.is-alert {color:#fff!important}
.rakuza_cb2-selection-bar {position:sticky!important;bottom:8px;z-index:50}
@media(max-width:720px) {
  .rakuza_cb2-selection-bar {position:sticky!important;left:auto;right:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));margin:12px 0;z-index:50}
  .rakuza_cb2-booking:not(.rakuza_cb2-mypage){padding-bottom:0}
}
/* Contextual speech bubble beside the exact field that needs attention. */
.rakuza_cb2-inline-feedback.rakuza_cb2-live-result.rakuza_cb2-field-bubble {
  position:relative;display:block;width:fit-content;max-width:100%;
  padding:8px 12px;margin:10px 0 4px;border:1px solid #b9d9ed;
  border-radius:9px;background:#edf8ff;color:#154b70;font-size:13px;
}
.rakuza_cb2-field-bubble::before {content:"";position:absolute;top:-6px;left:18px;width:10px;height:10px;transform:rotate(45deg);background:inherit;border-top:1px solid #b9d9ed;border-left:1px solid #b9d9ed}
.rakuza_cb2-inline-feedback.rakuza_cb2-field-bubble.is-error {background:#fff1f1;border-color:#e6aaaa;color:#9d2424}
.rakuza_cb2-field-bubble.is-error::before{border-color:#e6aaaa}


/* v0.6.15: full-weight titles, except completed/past classes. */
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-class-chip .rakuza_cb2-class-time,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-class-chip .rakuza_cb2-class-title,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-list-item .rakuza_cb2-list-time,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-list-item .rakuza_cb2-list-title {
  font-weight:700!important;
}
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) {
  background:#f3f4f5!important;
  color:#92989e!important;
  box-shadow:none!important;
  border-color:#e4e6e8!important;
  outline:0!important;
}
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) .rakuza_cb2-class-title,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) .rakuza_cb2-class-time,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) .rakuza_cb2-list-title,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) .rakuza_cb2-list-time,
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selectable-class.is-past:not(.is-selected) .rakuza_cb2-availability {
  font-weight:400!important;color:#92989e!important;
}
/* The natural dock remains just below the calendar; the bar is floated only
   while that dock is below the visible screen. Theme overflow won't break it. */
.rakuza_cb2-selection-dock {margin:14px 0;box-sizing:border-box;}
.rakuza_cb2-selection-dock[hidden] {display:none!important;}
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selection-bar {
  position:static!important;bottom:auto;left:auto;right:auto;margin:0;
  box-sizing:border-box;
}
.rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selection-bar.is-floating {
  position:fixed!important;bottom:calc(8px + env(safe-area-inset-bottom, 0px));
  right:auto;z-index:9999;
}
@media(max-width:720px){
  .rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selection-bar {
    position:static!important;left:auto;right:auto;bottom:auto;margin:0;
  }
  .rakuza_cb2-booking:not(.rakuza_cb2-mypage) .rakuza_cb2-selection-bar.is-floating {
    position:fixed!important;right:auto;bottom:calc(8px + env(safe-area-inset-bottom, 0px));margin:0;
  }
}
