/* Shared Takarazuka club palette. The same tokens serve members and delegates. */
:root{--club-ink:#2d3538;--club-burgundy:#7b2033;--club-gold:#99865b;--club-gold-dark:#756440;--club-line:#c8bfa6;--club-paper:#f7f5ef;--club-soft:#eee9dd;--club-rose:#f7eeee;--navy:var(--club-ink);--red:var(--club-burgundy);--gold:var(--club-gold);--paper:var(--club-paper);--action-navy:var(--club-ink);--action-red:var(--club-burgundy)}
body{color:var(--club-ink);background:#eeece6}
main,.proxy-shell,.proxy-body,.member-original,.sheet,.sheethead{color:var(--club-ink)}
.sheet,.sheet .sheethead,.proxy-main{background:var(--club-paper)}
.welcome{background:var(--club-ink);color:white}
.hamb span{background:var(--club-gold)}
.reference-menu-hit:before{background:repeating-linear-gradient(to bottom,var(--club-gold) 0 3px,transparent 3px 9px)!important}
/* Native text and icons retain the existing five-tile arrangement. */
.copied-tile{background-image:none!important;background-color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--club-ink);border:1px solid #ede9df;border-radius:6px;font-family:inherit;line-height:1.35;padding:10px 3px}
.copied-tile strong{font-size:clamp(14px,4.1vw,22px);font-weight:750}
.copied-tile small{font-size:clamp(12px,3.4vw,17px);font-weight:500}
.portal-tile-icon{width:38px;height:38px;flex:none;color:var(--club-gold)}
.tile-checkin,.tile-booking{gap:7px}.tile-checkin strong,.tile-booking strong{font-size:clamp(17px,4.8vw,25px)}
.tile-checkin .portal-tile-icon,.tile-booking .portal-tile-icon{width:45px;height:45px}
.tile-checkin{background:var(--club-burgundy);color:#fff;border-color:var(--club-burgundy)}
.tile-checkin .portal-tile-icon{color:white}
.tile-checkin{position:relative}.tile-checkin:after{content:'›';position:absolute;right:9px;top:47%;font-size:27px;font-weight:400}
.tile-booking small{color:#727777}
@media(min-width:850px){.tile-checkin{display:none}.copied-tile strong{font-size:20px}.copied-tile small{font-size:15px}.portal-tile-icon,.tile-booking .portal-tile-icon{width:43px;height:43px}.copied-tile{gap:9px}}
/* A compact full-row LINE action; retain the desktop QR presentation. */
@media(max-width:849px){
 .linebox{background:#f0ede5;color:var(--club-ink);border:1px solid var(--club-line);padding:9px 12px;gap:11px;position:relative;min-height:52px}
 .line-brand-icon{width:32px;height:33px;border-radius:5px;flex:none}
 .line-copy .line-explanation{display:none}
 .line-copy button{background:transparent;color:var(--club-ink);margin:0;padding:4px 0;justify-content:flex-start;font-size:clamp(13px,3.7vw,18px);min-height:32px;white-space:normal;text-align:left}
 .line-copy button:after{content:'';position:absolute;inset:0;border-radius:6px}
 .line-copy button .icon-external{display:none}.line-copy button b{font-size:25px}
}
@media(min-width:850px){.linebox{border:1px solid var(--club-line);background:#f8f6f0}}
.sectionhead .link,.link,.profile-course-handicap .profile-handicap-details{color:var(--club-burgundy)}
.reservation,.profile-handicap{border-color:var(--club-line)}
.muted,.second-label{color:var(--club-gold-dark)}
.new-booking{background:var(--club-burgundy)}
.magazine-badge{background:var(--club-ink)}
/* Close controls have one clear, consistent treatment, including dialogs. */
body .sheet .sheethead .close,body .menu .menu-close,body .reference-nav .menu-close,body .handicap-dialog-close,body .profile-handicap-dialog .handicap-dialog-close,body .proxy-menu-close{
 background:var(--club-burgundy);color:#fff;border:1px solid var(--club-burgundy);border-radius:50%;box-shadow:0 2px 7px #47232c18;font-weight:800
}
/* The profile is a restrained membership card with the portrait overlapping it. */
.profile-identity:not(.checkin-identity){position:relative;isolation:isolate;padding-bottom:6%;background:transparent}
.profile-identity:not(.checkin-identity):before{content:'';position:absolute;z-index:-1;left:5%;right:5%;top:calc(18cqw + 5%);bottom:0;border:1px solid var(--club-line);border-radius:10px;background:linear-gradient(145deg,#f5f1e5,#eee7d5);box-shadow:0 3px 12px #4b422b0d;pointer-events:none}
.profile-identity .profile-member-name{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;color:var(--club-ink)}
.profile-membership>span{background:var(--club-gold-dark)}
.profile-handicap{box-shadow:0 1px 4px #4b422b06;background:white}
.profile-course-handicap:before{border-color:var(--club-line)}
.profile-barcode{mix-blend-mode:normal;background-color:#fff}
.checkin-reservation,.member-view .checkin-reservation{background:var(--club-paper);border:0}
.checkin-play-date,.checkin-play-date .sun,.checkin-play-date .sat{color:var(--club-burgundy)}
.checkin-identity{position:relative;isolation:isolate}
.checkin-identity:before{content:'';position:absolute;z-index:-1;left:5%;right:5%;top:0;height:24cqw;background:white;border:1px solid var(--club-line);border-radius:9px;box-shadow:0 3px 10px #4b422b10;pointer-events:none}
.checkin-identity .checkin-barcode{margin-top:0;position:relative;top:3cqw}
.checkin-identity .profile-barcode-number{margin-top:6%;position:relative}
/* Booked dates use burgundy, distinct from gold selection and weekend labels. */
.bk-day.has-own-reservation{border-color:var(--club-burgundy);background:var(--club-rose)}
.bk-current-badge{background:var(--club-burgundy)}
.bk-slot.bk-current-reservation{border-color:var(--club-burgundy);background:var(--club-rose)}
.bk-slot.bk-owned-reservation{background:var(--club-rose)}
.bk-courses button.active,.bk-months button.active{background:var(--club-gold-dark);border-color:var(--club-gold-dark);color:white}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--club-gold-dark);outline-offset:3px}
@media(max-width:849px){
 .copied-tile{padding:6px 3px;gap:4px}
 .copied-tile strong{font-size:14px;line-height:1.3}
 .copied-tile small{font-size:11px;line-height:1.3;white-space:nowrap}
 .portal-tile-icon{width:31px;height:31px}
 .tile-checkin,.tile-booking{gap:5px}
 .tile-checkin strong,.tile-booking strong{font-size:18px}
 .tile-checkin .portal-tile-icon,.tile-booking .portal-tile-icon{width:34px;height:34px}
}
@media(max-width:360px){.copied-tile strong{font-size:12px}.tile-checkin strong,.tile-booking strong{font-size:16px}.copied-tile small{font-size:9px}.portal-tile-icon{width:27px;height:27px}.tile-checkin .portal-tile-icon,.tile-booking .portal-tile-icon{width:29px;height:29px}}
.bk-calendar-pair .bk-day.bk-own-day{box-shadow:inset 0 0 0 2px var(--club-burgundy);background:var(--club-rose)!important}
.bk-own-day-badge{background:var(--club-burgundy);color:#fff}
body .bk-calendar-modal-head button{background:var(--club-burgundy);color:#fff;border-color:var(--club-burgundy)}
body .sheethead .close,body .proxy-dialog-close,body .proxy-reserved-dialog button[aria-label="閉じる"],body .proxy-menu button[aria-label="メニューを閉じる"]{background:var(--club-burgundy);color:#fff;border:1px solid var(--club-burgundy);border-radius:50%;box-shadow:0 2px 7px #47232c18}
.icon-new-booking{background:none;width:27px;height:27px;color:white}.icon-new-booking svg{width:100%;height:100%;display:block}

/* Horizontal LINE wordmark keeps the member action compact. */
.linebox .line-brand-icon{background:url('assets/line-wordmark.svg') center/contain no-repeat;width:57px;height:20px;border-radius:0;flex:0 0 57px}
@media(max-width:849px){.linebox{min-height:50px;padding:8px 12px;gap:10px}.line-copy button{font-size:clamp(12px,3.5vw,17px)}}
/* Enlarge the existing sample barcode without changing its encoded artwork. */
.profile-barcode-trigger{display:block;border:0;padding:0;cursor:zoom-in}
.checkin-barcode-hit{position:absolute;z-index:2;top:0;left:5%;width:90%;height:24cqw;background:transparent;border:0;border-radius:9px;cursor:zoom-in}
.checkin-identity .barcode-tap-hint{margin:3cqw 0 0;font-size:clamp(12px,3.1cqw,17px);color:var(--club-burgundy);font-weight:600}
.barcode-zoom-dialog{box-sizing:border-box;width:min(94vw,780px);max-width:94vw;max-height:94dvh;margin:auto;padding:0;border:1px solid var(--club-line);border-radius:14px;background:#fff;color:var(--club-ink);box-shadow:0 15px 70px #0003;overflow:auto}
.barcode-zoom-dialog::backdrop{background:#172024b3}
.barcode-zoom-dialog[open]{animation:barcode-reveal .2s ease-out}
.barcode-zoom-content{container-type:inline-size;padding:20px 12px;text-align:center}
.barcode-zoom-content header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 6px 20px}
.barcode-zoom-content h3{font-size:18px;margin:0}
.barcode-zoom-close{width:44px;height:44px;flex:none;padding:0;border:0;border-radius:50%;background:var(--club-burgundy);color:white;font-size:32px;line-height:1;cursor:pointer}
.barcode-zoom-art{width:88%;height:27cqw;margin:14px auto 0;background:#fff url('assets/member-checkin.png') 50% 36.88%/226.5% 433.4cqw no-repeat}
.barcode-zoom-number{margin:16px 0 0;font-size:clamp(23px,6cqw,38px);letter-spacing:.24em;padding-left:.24em;color:var(--club-ink)}
.barcode-zoom-note{margin:24px 0 16px;font-size:12px;color:#686d6f}
.barcode-zoom-return{min-height:44px;min-width:140px;border:1px solid var(--club-line);border-radius:6px;background:var(--club-paper);color:var(--club-ink);font:inherit;cursor:pointer}
@keyframes barcode-reveal{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.barcode-zoom-dialog[open]{animation:none}}

/* Keep the original check-in symbol at the smaller scale of the refined icon set. */
.tile-checkin .original-tile-icon{width:50px;height:31px;overflow:hidden}
@media(max-width:360px){.tile-checkin .original-tile-icon{width:45px;height:28px}}
