:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292522;background:#faf8f4}*{box-sizing:border-box}body{margin:0}.wrap{max-width:960px;margin:auto;padding:20px}.card{background:white;border:1px solid #e6e0d8;border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 2px 10px #0000000b}h1{font-size:28px}h2{font-size:21px}label{display:block;font-weight:700;margin-top:12px}input,select,textarea,button{font:inherit;font-size:18px;padding:12px;border-radius:12px;border:1px solid #cfc7bd;width:100%}button{font-weight:800;cursor:pointer;background:#292522;color:white;margin-top:12px}.secondary{background:white;color:#292522}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.muted{color:#716a63}.big{font-size:26px;font-weight:900}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#eee8df;margin-right:6px}.danger{background:#8b1e1e}.ok{background:#1f6f43}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav a{padding:10px 12px;background:white;border:1px solid #ddd;border-radius:10px;text-decoration:none;color:#292522}.item{border-top:1px solid #eee;padding:12px 0}.lang button{width:auto;margin-right:5px}.lang button.active{outline:3px solid #c9b18c}.sticky{position:sticky;bottom:0;background:#faf8f4;padding:8px 0}.price{font-weight:800}.sold{opacity:.45}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.slot{background:white;color:#292522}.slot[disabled]{opacity:.4}.slot.active{background:#292522;color:white}@media(max-width:600px){.wrap{padding:12px}h1{font-size:24px}.row{flex-direction:column;align-items:stretch}}
.buttonlike{display:block;text-align:center;text-decoration:none;background:#292522;color:white;font-weight:800;padding:13px;border-radius:12px;margin-top:12px}.week{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.week label{display:flex;align-items:center;gap:5px}.week input{width:auto}.small{width:auto;padding:8px 12px}
.login-overlay{position:fixed;inset:0;background:#0008;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.login-overlay .card{width:100%;max-width:420px}button:disabled{cursor:default;opacity:.45}.item{overflow-wrap:anywhere}

[hidden]{display:none!important}.new-order{border:4px solid #a64a00;background:#fff7e9}.nav{margin-bottom:20px}input[type=checkbox]{width:24px;height:24px}.big{overflow-wrap:anywhere}button{min-height:48px}

.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:16px 0}.calendar button{white-space:pre-line;padding:12px 3px;font-size:13px}input[type=checkbox]{width:auto}.row{flex-wrap:wrap}button{min-height:44px}@media(max-width:600px){.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.item.row{display:block}}



.customer-card,.customer-auto{border-left:4px solid #527969;background:#f0f6f2;border-radius:8px;padding:12px;margin:12px 0}.customer-auto:empty{display:none}.customer-warning{color:#92251d;font-weight:800}.customer-memo{font-weight:800}.summary-breakdown{font-size:22px;font-weight:700}.calendar button{line-height:1.6;min-height:130px}.customer-auto{overflow-wrap:anywhere}.customer-auto p{white-space:pre-wrap}

.date-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important}.date-grid button{min-height:72px;font-size:12px;padding:5px 1px}.calendar button:disabled{opacity:1;color:#715a51;background:#eee7e1}.calendar b{text-align:center}

#calendar{grid-template-columns:repeat(7,minmax(90px,1fr));overflow-x:auto}

.ledger-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}.ledger-views button{margin:0;font-size:14px;padding:8px 2px}#calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}#calendar button{overflow-wrap:anywhere}@media(max-width:600px){#calendar button{font-size:10px;min-height:110px;padding:6px 1px}.calendar b{font-size:12px}}

#calendar button span,#calendar button strong{display:block;white-space:nowrap}#calendar .calendar-people{font-size:20px;color:#315647}#calendar button{min-height:100px;line-height:1.5}@media(max-width:600px){#calendar .calendar-people{font-size:16px}#calendar button{min-height:98px;font-size:10px}}

.menu-photo{display:block;width:100%;max-width:360px;max-height:260px;object-fit:contain;border-radius:12px;margin:0 0 12px;background:#f7f4ef}
.calendar-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin:18px 0 10px;text-align:center}.calendar-nav strong{font-size:24px;white-space:nowrap}.calendar-nav button{margin:0;padding:4px;font-size:26px;min-height:44px}.calendar.date-grid,#calendar{gap:0;border:1px solid #ddd;border-radius:10px;overflow:hidden;background:white;touch-action:pan-y}.calendar.date-grid button,#calendar button{margin:0;border:0;border-radius:0;border-top:1px solid #e6dfe1;border-right:1px solid #e6dfe1;padding:4px 1px;min-height:66px;font-size:11px;line-height:1.4}.calendar.date-grid b,#calendar>b{padding:8px 0;background:#f7eef1}.calendar.date-grid b:first-child,#calendar>b:first-child{color:#a43352}.calendar.date-grid b:nth-child(7),#calendar>b:nth-child(7){color:#315987}#calendar .calendar-people{font-size:17px}#calendar button span{font-size:10px}.calendar-nav~#calendar{margin-top:0}@media(max-width:600px){.calendar.date-grid button,#calendar button{min-height:62px;font-size:10px}#calendar .calendar-people{font-size:15px}}
.customer-booking{background:#fff8f5;color:#493b3e}.customer-booking h1,.customer-booking h2{color:#82465b}.customer-booking .card{border-color:#eed6dd;box-shadow:0 4px 18px #82465b0a}.customer-booking button{background:#82465b;border-color:#82465b}.customer-booking .secondary,.customer-booking .slot{background:#fff;color:#82465b;border-color:#d9b9c4}.customer-booking .slot.active{background:#82465b;color:#fff}.customer-booking input,.customer-booking select,.customer-booking textarea{border-color:#d9b9c4;background:#fff;color:#493b3e}.customer-booking .customer-auto{background:#f1f6ee;border-color:#71856b}.payment-guide{background:#fbeaf0;border:1px solid #eed6dd;border-radius:18px;padding:16px 20px;margin:20px 0}.payment-guide h2{margin:0 0 10px;font-size:19px}.payment-guide p{margin:8px 0;line-height:1.7}.customer-booking :focus-visible{outline:3px solid #82465b;outline-offset:3px}
/* 日付を主役にした、スマホでも7列を保つカレンダー */
.calendar.date-grid,#calendar{border:0;border-radius:0;gap:4px;background:#fff;padding:0;overflow:visible}.calendar.date-grid button,#calendar button{border:0!important;border-radius:5px;background:#fff;color:#555;min-height:64px;margin:0;padding:8px 0 4px;font-weight:400;line-height:1.2}.calendar.date-grid button>span,#calendar button>span{display:block;font-size:22px;font-weight:400}.calendar.date-grid button small,#calendar .calendar-people{display:block;font-size:11px;font-weight:400;color:#888;min-height:16px;margin-top:4px}.calendar.date-grid b,#calendar>b{background:#eeece5;font-size:13px;font-weight:400;padding:8px 0;margin-bottom:8px}.calendar.date-grid button.sunday,#calendar button.sunday{color:#e42632}.calendar.date-grid button.saturday,#calendar button.saturday{color:#0966df}.calendar.date-grid button:disabled{background:#f0f0f0;opacity:1}.calendar.date-grid button.selected-day,#calendar button.selected-day{background:#5098d5;color:#fff}.calendar.date-grid button.selected-day small,#calendar button.selected-day .calendar-people{color:#fff}.calendar-nav{margin-top:24px}.calendar-nav strong{font-weight:500;color:#555}.calendar-nav button{background:#fff!important;color:#537e9f!important;border:1px solid #ddd}.calendar.date-grid{padding-bottom:12px}#public-calendar{background:#fff;border-radius:12px;padding:10px;margin-top:16px}@media(max-width:360px){.calendar.date-grid button>span,#calendar button>span{font-size:20px}.calendar.date-grid,#calendar{gap:2px}.calendar.date-grid button,#calendar button{min-height:60px}}
.restaurant-welcome{margin:18px auto 24px;text-align:center}.restaurant-welcome img{display:block;width:auto;max-width:100%;height:auto;max-height:420px;margin:auto;border-radius:16px;box-shadow:0 4px 16px #493b3e20}@media(max-width:600px){.restaurant-welcome img{max-height:330px}}
.customer-booking{position:relative;isolation:isolate;background:#38271c}.customer-booking::before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(#24180d26,#24180d26),url('/restaurant-interior.jpg') center center/cover no-repeat;pointer-events:none}.customer-booking>.wrap{background:rgba(255,248,245,.86);min-height:100vh}.customer-booking .card{background:rgba(255,255,255,.94)}@media(min-width:1000px){.customer-booking>.wrap{margin-top:24px;margin-bottom:24px;border-radius:22px;min-height:calc(100vh - 48px)}}

.calendar.date-grid button.holiday,#calendar button.holiday{color:#e42632}.calendar.date-grid button.holiday.selected-day,#calendar button.holiday.selected-day{background:#fce3e5;color:#b81824;outline:2px solid #5098d5;outline-offset:-2px}

.calendar.date-grid button.holiday.selected-day small,#calendar button.holiday.selected-day .calendar-people{color:#666}

.staff-booking .staff-menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0;padding:3px 0}.staff-booking .staff-menu-row input{width:76px;flex:0 0 76px;margin:0}.staff-booking h2{font-size:1.1rem;margin:12px 0 8px}.staff-booking textarea{min-height:48px}.staff-booking p:empty{display:none}
.staff-booking [hidden]{display:none!important}

/* スマホ管理：カレンダーを先頭に、入力は選択式で短く */
.admin-booking .wrap{padding-top:8px}.admin-booking .calendar-nav{margin-top:8px}.admin-booking #calendar .calendar-people{font-size:15px;font-weight:700;color:#315647}.admin-booking #overview-calendar small:first-of-type{font-size:12px;font-weight:700;color:#315647}.staff-essential{display:grid;grid-template-columns:1fr 1fr;gap:8px}.staff-essential>label:first-child{grid-column:1/-1}.staff-essential label{margin:0}.staff-booking .staff-meal-choice{display:grid;grid-template-columns:minmax(0,1fr) 64px 32px;align-items:end;gap:6px;margin:8px 0}.staff-meal-choice label{min-width:0;margin:0}.staff-meal-choice select,.staff-meal-choice input{width:100%;margin:0;padding:10px 6px}.staff-meal-choice button{margin:0;padding:10px 2px}.staff-booking select,.staff-booking input{min-height:44px}.staff-booking input[type=checkbox]{min-height:0}.staff-booking .grid{gap:8px}.staff-booking textarea{height:48px}.staff-booking #sum{font-size:16px}.admin-booking #overview{margin-top:0}.admin-booking #overview>h2{margin:4px 0 8px}

.admin-calendar-header{display:flex;align-items:center;justify-content:space-between;background:#719bbd;color:white;padding:10px 14px;border-radius:8px}.admin-calendar-header h2{margin:0;font-size:20px}.admin-calendar-header button{background:transparent;color:white;border:0;margin:0;font-size:30px;padding:0 10px}.admin-calendar-header small{display:block;font-size:12px}.booking-dialog{padding:0;border:0;border-radius:12px;width:min(560px,100%);max-height:95dvh;box-sizing:border-box}.booking-dialog::backdrop{background:#0006}.booking-dialog>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;background:#719bbd;color:white;padding:10px}.booking-dialog>header button{background:transparent;border:0;font-size:28px;margin:0 20px 0 0}.booking-dialog>div{padding:16px}.booking-dialog .staff-essential{display:flex;flex-direction:column;gap:18px}.booking-dialog .staff-essential select,.booking-dialog .staff-essential input{padding:14px;font-size:17px}.booking-dialog .staff-essential input[type=checkbox]{padding:0}.reservation-detail{border-top:1px solid #ddd;padding:10px 0}.reservation-detail p{margin:6px 0}@media(max-width:600px){.booking-dialog{width:100%;height:100dvh;max-width:100%;max-height:100dvh;margin:0;border-radius:0}}

/* 2026-10-26: スマホでも営業・貸切の表示を読める大きさにする */
.calendar.date-grid button small,#calendar button small{display:block;font-size:14px;font-weight:700;line-height:1.45;color:#444;margin-top:4px;overflow-wrap:anywhere}
.calendar.date-grid button,#calendar button{min-height:88px}
.calendar.date-grid button.selected-day small,#calendar button.selected-day small{color:#fff}
.calendar.date-grid button.holiday.selected-day small,#calendar button.holiday.selected-day small{color:#92202b}
.admin-booking #calendar button.selected-day .calendar-people{color:#fff}
/* 公開カレンダー：受付可否と貸切・休業の色を分離 */
#public-calendar .calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:8px 1px;min-width:0;min-height:94px;background:#fff;color:#343434}
#public-calendar .calendar-day:disabled{background:#fff;opacity:1}
#public-calendar .calendar-day.closed-day,#public-calendar .calendar-day.closed-day:disabled{background:#eceeef;color:#343434}
#public-calendar .calendar-day.private-day,#public-calendar .calendar-day.private-day:disabled{background:#dceefa;color:#143e64}
#public-calendar .calendar-day>span{font-size:22px;font-weight:600;line-height:1.3;color:inherit}
#public-calendar .calendar-day small{min-height:0;margin:0;font-size:10px;line-height:1.4;color:inherit}
#public-calendar .calendar-day .private-pill{display:inline-block;border:1px solid #245d89;border-radius:999px;background:#fff;color:#16466b;padding:3px 2px;white-space:nowrap;font-size:10px;font-weight:600;box-sizing:border-box;max-width:100%}
#public-calendar .calendar-day .period-open{white-space:nowrap;color:#143e64}
#public-calendar .calendar-day.selected-day{outline:2px solid #245d89;outline-offset:-2px;background:#edf6ff;color:#143e64}
#public-calendar .calendar-day.private-day.selected-day{background:#dceefa}
#public-calendar .calendar-day.closed-day.selected-day{background:#eceeef}

.admin-booking #list>.card{padding:12px;margin:8px 0}.admin-booking #list>.card h2{font-size:17px;margin:4px 0}.admin-booking #list>.card p{margin:5px 0;font-size:14px}.admin-booking #list>.card .big{font-size:18px}.admin-booking #overview-day .reservation-detail{padding:10px 0}.admin-booking #overview-day h3{margin:6px 0;font-size:17px}

.admin-booking .calendar button.admin-closed-day{background:#eceeef!important;color:#343434!important}.admin-booking .calendar button.admin-private-day{background:#dceefa!important;color:#143e64!important}.admin-booking .calendar button.admin-private-day>span,.admin-booking .calendar button.admin-closed-day>span{font-weight:600;color:inherit}.admin-booking .calendar .admin-private-pill{display:table!important;margin:3px auto!important;padding:3px 2px;border:1px solid #245d89;border-radius:999px;background:white;color:#16466b!important;white-space:nowrap;font-size:10px!important;line-height:1.3;min-height:0!important}.admin-booking .calendar button.selected-day{outline:2px solid #245d89;outline-offset:-2px}.admin-booking .calendar button.admin-private-day small,.admin-booking .calendar button.admin-closed-day small{color:#143e64!important}

.meal-choice{border:0;padding:0;margin:20px 0}.meal-choice legend{font-weight:700;margin-bottom:10px}.meal-choice label{display:flex;gap:14px;align-items:center;border:1px solid #d9b9c4;background:#fff;border-radius:12px;padding:18px;cursor:pointer}.meal-choice label.selected{border:2px solid #82465b;background:#fcf1f4}.meal-choice input[type=radio]{width:20px;height:20px;flex-shrink:0;margin:0;accent-color:#82465b}.meal-choice small{display:block;font-size:14px;font-weight:400;margin-top:6px}.meal-choice strong{font-size:19px}

.reservation-food-photo{position:relative;overflow:hidden;aspect-ratio:552/508;max-width:560px;margin:20px auto;border-radius:12px}.reservation-food-photo img{position:absolute;top:0;left:0;width:100%;height:auto;display:block;transform:translateY(-26.166667%)}

.customer-booking #booking-root{padding-top:12px}.customer-booking #public-calendar{margin-top:0;padding-top:0}.customer-booking #public-calendar>h2{margin-top:0;margin-bottom:10px}.customer-booking #public-calendar .calendar-nav{margin-top:8px}

.staff-navigation{display:flex;align-items:center;gap:20px;margin:0 0 16px}.staff-navigation button{width:auto;min-height:44px}.staff-navigation a{font-weight:700}.settings-shortcuts{display:grid;gap:12px;margin:16px 0}.settings-shortcuts a{display:flex;justify-content:space-between;text-decoration:none;font-size:20px;font-weight:700;margin:0}.settings-sections>details>summary{font-size:20px;font-weight:700;padding:10px 0}.settings-sections>details{scroll-margin-top:12px}
