/* Reservation surfaces share the portal's warm palette, without LINE chrome. */
.sheet.booking-view{--booking-gold:#a69769;--booking-line:#e9e8e5;width:min(720px,100%);height:94dvh;max-height:94dvh;padding:0;background:#fff;color:#333;border-radius:15px 15px 0 0;display:flex;flex-direction:column;overflow:hidden}
.booking-view .sheethead{position:relative;flex:none;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin:0;padding:9px 14px;background:#fff;border-bottom:1px solid #eee;min-height:64px}
.booking-view .sheethead h2{grid-column:2;grid-row:1;text-align:center;font-size:19px;font-weight:800;color:#292929}
.booking-view .sheethead .back{grid-column:1;grid-row:1;background:none;color:#333;width:44px;height:44px;font-size:36px}
.booking-view .sheethead .close{grid-column:3;grid-row:1;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #e4cbd0;border-radius:50%;background:#fff;color:#b50927;font-size:34px;font-weight:700;line-height:1;box-shadow:0 2px 5px #45232a12}
.booking-view #panelBody{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;overscroll-behavior:contain;position:relative;padding-bottom:8px}
.booking-view button{touch-action:manipulation}.booking-view button:disabled{cursor:default}.booking-view .sun{color:#dd5e64}.booking-view .sat{color:#5183c5}
.bk-controls{padding:18px 20px 14px}.bk-courses{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.bk-courses button{height:54px;border:1.5px solid #d2d2d2;border-radius:11px;background:white;color:#929292;font-size:22px;font-weight:800}
.booking-view button.active{background:var(--booking-gold);border-color:var(--booking-gold);color:#fff}
.bk-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bk-filters label{font-size:12px;font-weight:500;min-width:0;line-height:1.5}
.bk-filters label>span{display:flex;align-items:center;position:relative;border:1px solid #ccc;border-radius:5px;margin-top:5px;background:#fff;height:43px;overflow:hidden}
.bk-filters svg{flex:none;width:19px;height:21px;margin-left:9px;color:var(--booking-gold);fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.bk-filters select{min-width:0;width:100%;border:0;color:#444;background:white;font:inherit;font-size:14px;padding:8px 4px;outline-offset:-3px}
.bk-months{display:flex;gap:7px;padding:2px 20px 14px;overflow-x:auto;scrollbar-width:thin}.bk-months button{border:1px solid #d1d1d1;border-radius:7px;background:#fff;min-width:48px;flex:1;padding:10px 5px;color:#333;font-size:16px;font-weight:700}
.bk-calendar-title{padding:13px 20px 6px;border-top:1px solid #f0efec;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:8px}.bk-calendar-title small{font-weight:400;font-size:11px;color:#888}
.bk-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:8px 14px 0;gap:2px}.bk-weekday{text-align:center;font-size:15px;padding:8px 0 10px}.bk-day{border:0;background:white;border-radius:7px;min-height:73px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:7px 0;color:#333;font-size:21px;font-weight:600}.bk-day small{display:block;font-size:11px;border-radius:20px;background:#eeece4;color:#555;padding:3px 7px;line-height:1.3;white-space:nowrap}.bk-day:hover:not(:disabled){background:#f6f2e7}.bk-day.chosen:not(:disabled){box-shadow:inset 0 0 0 1px #b4a575}.bk-day:disabled{color:#d1d1d1}.bk-day:disabled .bk-no-slots{visibility:hidden}
.bk-note{font-size:10px;color:#93908a;text-align:center;line-height:1.7;margin:12px 18px 6px}.bk-datebar{display:flex;border-top:1px solid var(--booking-line);border-bottom:1px solid var(--booking-line);height:72px;background:#fff}.bk-calendar-back{flex:0 0 50px;background:#fff;color:#333;border:0;border-right:1px solid var(--booking-line);font-weight:700;font-size:13px}.bk-calendar-back span{display:block;font-size:16px;margin-top:2px}.bk-dates{display:flex;align-items:center;gap:7px;overflow-x:auto;flex:1;min-width:0;padding:6px 8px;scrollbar-width:none;position:relative}.bk-dates::-webkit-scrollbar{display:none}.bk-dates button{flex:none;width:47px;height:56px;line-height:1.25;border:1px solid #ddd;border-radius:7px;background:white;color:#333;font-size:19px;font-weight:700}.bk-dates button small{display:block;font-size:13px}
.bk-times{display:flex;min-width:0}.bk-hours{flex:0 0 50px;display:flex;flex-direction:column;border-right:1px solid var(--booking-line);padding-top:56px}.bk-hours button{width:100%;min-height:54px;border:0;background:#fff;color:#333;font-size:12px;font-weight:700;padding:0 3px}.bk-time-main{flex:1;min-width:0}.bk-slot-toolbar{height:56px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--booking-line);background:#fff}.bk-slot-toolbar label{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.bk-slot-toolbar input{width:19px;height:19px;accent-color:var(--booking-gold);margin:0}.bk-sides{display:flex;border:1px solid var(--booking-gold);border-radius:5px;overflow:hidden;flex-shrink:0}.bk-sides button{border:0;border-radius:0;width:50px;padding:9px 2px;color:var(--booking-gold);background:#fff;font-size:13px;font-weight:800}
.bk-slot-list{height:clamp(245px,43dvh,410px);overflow-y:auto;overscroll-behavior:contain;position:relative;scrollbar-width:thin}.bk-slot{display:flex;align-items:center;min-height:65px;border-bottom:1px solid #efefed;padding:9px 12px;gap:10px}.bk-slot time{flex:0 0 39px;font-size:15px;font-variant-numeric:tabular-nums}.bk-slot-main{display:flex;align-items:center;gap:7px;flex:1;min-width:0}.bk-choices{display:flex;align-items:center;gap:7px;margin-left:auto}.bk-people{width:43px;height:43px;border:1px solid #aaa;border-radius:50%;background:#fff;color:#666;font-size:23px;font-weight:700;padding:0}.bk-people.selected,.bk-seat.selected{background:var(--booking-gold);border-color:var(--booking-gold);color:#fff}.bk-people.selected:after{content:''}.bk-intro{font-size:12px;font-weight:700;color:var(--booking-gold);white-space:nowrap}.bk-occupants{display:flex;align-items:flex-end;flex-shrink:1;min-width:0}.bk-avatar{width:38px;height:42px;background:#f2f4f5;border:1px solid #c4c6c7;border-radius:3px;color:#5183c5;display:grid;place-items:center;padding:6px}.bk-avatar svg,.bk-mini-avatar svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2}.bk-guest{width:24px;height:23px;border:1px solid #ccc;border-left:0;display:grid;place-items:center;font-size:14px;font-weight:600;color:#777}.bk-seat{width:26px;height:29px;background:#fff;border:1px solid #bbb;border-radius:2px;padding:0}.bk-seat.selected:after{content:'✓';color:white;font-size:18px}.bk-full{font-size:10px;color:#aaa;margin-left:auto;white-space:nowrap}.bk-slot.unavailable time{color:#c2c2c2}
.bk-selection{position:sticky;bottom:0;background:#fff;padding:12px 20px 14px;border-top:1px solid #eceae4;box-shadow:0 -4px 16px #00000008;z-index:1}.bk-selection[hidden]{display:none}.bk-selection>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.bk-selection strong{font-size:12px;line-height:1.6}.bk-selection>div>button{flex-shrink:0;background:#fff;border:1px solid #ccc;border-radius:4px;color:#777;padding:5px 7px;font-size:11px}.bk-primary,.bk-secondary{display:block;width:100%;min-height:48px;border:0;border-radius:7px;font-size:17px;font-weight:750;padding:13px 10px;text-align:center}.bk-primary{background:#df6263;color:white}.bk-primary:hover{background:#cd5054}.bk-secondary{background:#f0f0ef;color:#666;margin-top:12px}.bk-empty{text-align:center;font-size:13px;color:#888;padding:32px 8px;line-height:1.8}
.bk-confirm{padding:8px 24px 24px}.bk-confirm h3{text-align:center;font-size:21px;padding:17px 0 24px;border-bottom:1px solid var(--booking-line);margin:0 0 28px}.bk-confirm h4{color:var(--booking-gold);font-size:17px;text-align:center;margin:0 0 23px}.bk-confirm>p:not(.bk-note){font-size:13px;color:#888;text-align:center;line-height:1.8}.bk-confirm-facts{display:grid;grid-template-columns:90px 1fr;margin:22px 0 24px}.bk-confirm-facts dt,.bk-confirm-facts dd{margin:0;padding:19px 0;border-bottom:1px solid #eee;font-size:16px}.bk-confirm-facts dt{color:#888}.bk-confirm-facts dd{text-align:right;font-weight:700}.bk-confirm-facts dd .sun,.bk-confirm-facts dd .sat{white-space:nowrap}.bk-confirm-guests{margin-bottom:20px;font-size:13px;color:#777}.bk-confirm-guests summary{cursor:pointer;padding:5px 0}.bk-confirm-guests p{margin:10px 0}
.bk-guests{padding:0 20px 20px}.bk-summary{background:#f5f2e9;border-radius:5px;padding:12px;font-size:12px;text-align:center}.bk-guests h3{font-size:17px;text-align:center;margin:22px 0 16px}.bk-guest-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #ddd;margin-bottom:12px}.bk-guest-tabs button{background:#fff;border:0;padding:12px 0;font-size:11px;color:#888}.bk-guest-tabs button.active{background:#fff;color:var(--booking-gold);box-shadow:inset 0 -3px 0 var(--booking-gold);font-weight:800}.bk-history-title{background:#f3f1e9;font-size:10px;padding:8px;margin:10px 0 0;color:#8e7c50}.bk-member-choice{display:flex;align-items:center;gap:10px;border-bottom:1px solid #eee;padding:9px 4px;font-weight:500;font-size:13px;cursor:pointer}.bk-member-choice input{width:19px;height:19px;accent-color:var(--booking-gold)}.bk-mini-avatar{width:28px;height:28px;display:block;color:#a5a6a3}.bk-new-member{margin:16px 0;border:1px solid #b6a77b;border-radius:5px;padding:12px;font-size:13px;color:#9b8755}.bk-new-member summary{cursor:pointer;text-align:center}.bk-new-member label{margin-top:12px}.bk-selected-guests{background:#f8f6ef;padding:12px;margin:16px 0;font-size:12px}.bk-selected-guests>strong{display:flex;justify-content:space-between;color:#88774b;margin-bottom:10px}.bk-selected-guests div div{display:flex;justify-content:space-between;align-items:center;min-height:32px}.bk-selected-guests button{border:0;background:none;color:#a2424b;font-size:21px;padding:3px 8px}.bk-search{padding:8px 0;font-size:12px}.bk-guests .field{font-size:15px;width:100%}.bk-profile{text-align:center;padding:24px}.bk-profile-icon{border-radius:50%;background:#f6f3ea;color:#9f9068;width:100px;height:100px;margin:0 auto 20px;padding:24px}.bk-profile-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}.bk-profile h3{font-size:21px}.bk-profile dl{display:grid;grid-template-columns:1fr 1fr;text-align:left;font-size:14px;line-height:2.7;border-top:1px solid #eee;padding-top:16px}.bk-profile dd{margin:0;text-align:right;font-weight:700}.bk-profile dt{color:#888}
@media(min-width:700px){.sheet.booking-view{border-radius:15px;height:90dvh;max-height:90dvh}.bk-controls{padding:20px 30px 18px}.bk-courses button{height:58px;font-size:24px}.bk-filters label{font-size:14px}.bk-filters select{font-size:16px}.bk-filters label>span{height:48px}.bk-months{padding:0 30px 18px;gap:12px}.bk-calendar{padding:6px 25px}.bk-day{min-height:85px;font-size:23px}.bk-day small{font-size:12px}.bk-calendar-title{padding:16px 30px 6px}.bk-hours,.bk-calendar-back{flex-basis:70px}.bk-dates{gap:12px}.bk-dates button{width:70px}.bk-slot{min-height:72px;padding:11px 24px;gap:22px}.bk-slot-toolbar{padding:9px 24px}.bk-slot-toolbar label{font-size:14px}.bk-sides button{width:68px}.bk-slot time{font-size:18px;flex-basis:48px}.bk-choices{gap:15px}.bk-people{width:47px;height:47px}.bk-seat{width:38px;height:36px}.bk-avatar{width:44px;height:46px}.bk-guest{width:38px;height:27px}.bk-selection strong{font-size:16px}.bk-selection{padding:13px 30px 18px}.bk-confirm{max-width:560px;margin:auto}.bk-confirm-facts dt,.bk-confirm-facts dd{font-size:18px;padding:22px 0}.bk-guests{max-width:580px;margin:auto}.bk-guest-tabs button{font-size:14px}.bk-member-choice{font-size:15px}.bk-intro{font-size:16px}.bk-full{font-size:12px}}
@media(max-width:360px){.bk-controls{padding:12px 12px 10px}.bk-filters select{font-size:12px}.bk-months{padding-left:12px;padding-right:12px}.bk-months button{min-width:40px}.bk-slot{padding:9px 7px;gap:5px}.bk-people{width:36px;height:36px;font-size:21px}.bk-choices{gap:4px}.bk-avatar{width:29px;padding:4px}.bk-seat{width:23px}.bk-slot-toolbar{padding:8px 7px;gap:4px}.bk-sides button{width:40px}.bk-slot-toolbar label{font-size:11px}.bk-intro{font-size:11px}.bk-confirm{padding:8px 16px 20px}.bk-confirm-facts dd{font-size:14px}}
