.app-shell{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;width:100%;padding:calc(2rem + var(--lang-switcher-offset) + var(--safe-top)) var(--page-gutter) calc(2.5rem + var(--safe-bottom));max-width:44rem;margin:0 auto}.app-shell>*{width:100%}.app-shell--wide{max-width:56rem}.app-shell--booking{padding-top:calc(2rem + var(--safe-top))}.app-top{width:100%;text-align:center;margin-bottom:2.5rem}.app-top-jp{font-family:var(--font-jp);font-size:1rem;letter-spacing:.3em;color:var(--color-muted);margin-bottom:.5rem}.app-top-title{font-family:var(--font-serif);font-size:clamp(2rem,6vw,2.75rem);font-weight:400;letter-spacing:.08em;text-transform:uppercase}.app-top-sub{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-top:.75rem}.app-back{display:inline-flex;align-items:center;justify-content:center;margin-top:1.25rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--color-muted);transition:color .2s ease;min-height:2.75rem;padding:.25rem .5rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app-back:hover,.app-back:focus-visible{color:var(--color-text)}.app-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;margin-bottom:1.5rem}.app-topbar-back{margin:0;min-height:auto;padding:.45rem 0;font-size:.7rem;justify-content:flex-start;flex:1;min-width:0}.app-topbar .lang-switcher--topbar{position:static;top:auto;right:auto;flex-shrink:0}.spots-board{width:100%;text-align:center;border-top:1px solid var(--color-line);padding-top:2.5rem}.spots-date{font-size:.8rem;letter-spacing:.08em;text-transform:capitalize;color:var(--color-muted);margin-bottom:.75rem}.spots-period{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.5rem}.spots-count{font-family:var(--font-serif);font-size:clamp(4.5rem,22vw,7.5rem);font-weight:400;line-height:.95;letter-spacing:.02em}.spots-count--low{color:#8a5a2b}.spots-count--full{color:var(--color-muted)}.spots-label{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-top:1rem}.spots-breakdown{margin-top:.65rem;font-size:.78rem;letter-spacing:.06em;color:var(--color-muted)}.spots-note{max-width:24rem;margin:1.25rem auto 0;font-size:.85rem;line-height:1.55;color:var(--color-muted)}.spots-book-link{display:inline-flex;margin-top:2rem;width:auto;min-width:12rem;text-decoration:none}.app-panel{width:100%;border-top:1px solid var(--color-line);padding-top:2rem;scroll-margin-top:calc(var(--lang-switcher-offset) + var(--safe-top) + .75rem)}#booking-flow{width:100%}.app-panel+.app-panel{margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--color-line)}.app-panel-title{font-family:var(--font-sans);font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.25rem}.app-note{font-size:.85rem;line-height:1.55;color:var(--color-muted);margin-bottom:1.5rem}.app-badge{display:inline-block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem .65rem;border:1px solid var(--color-line);color:var(--color-muted);margin-bottom:1.5rem}.day-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;width:100%;margin-bottom:1.5rem}.day-btn{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.06em;padding:.85rem .5rem;border:1px solid var(--color-line);background:#fff;color:var(--color-text);cursor:pointer;transition:border-color .2s ease,background .2s ease;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.day-btn:hover:not(.is-blocked){border-color:var(--color-text)}.day-btn.is-selected{border-color:var(--color-text);background:var(--color-text);color:#fff}.day-btn.is-blocked{opacity:.35;cursor:not-allowed}.day-btn:disabled{opacity:.35;cursor:not-allowed}.day-btn-date{display:block;font-family:var(--font-serif);font-size:1.1rem;margin-top:.2rem}.day-btn,.period-btn,.guest-btn,.slot-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.period-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem}.period-btn{font-family:var(--font-serif);font-size:1.05rem;padding:1rem;border:1px solid var(--color-line);background:#fff;color:var(--color-text);cursor:pointer;text-align:left;transition:border-color .2s ease;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.period-btn:hover:not(.is-blocked){border-color:var(--color-text)}.period-btn.is-selected{border-color:var(--color-text)}.period-btn.is-blocked{opacity:.4;cursor:not-allowed}.period-btn:disabled{opacity:.4;cursor:not-allowed}.period-btn-meta{display:block;font-family:var(--font-sans);font-size:.7rem;letter-spacing:.06em;color:var(--color-muted);margin-top:.35rem}.guest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem;margin-bottom:1.5rem}.guest-btn{font-family:var(--font-sans);font-size:.85rem;padding:.85rem .5rem;border:1px solid var(--color-line);background:#fff;color:var(--color-text);cursor:pointer;transition:border-color .2s ease,background .2s ease;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.guest-btn:hover:not(.is-blocked){border-color:var(--color-text)}.guest-btn.is-selected{border-color:var(--color-text);background:var(--color-text);color:#fff}.guest-btn.is-blocked{opacity:.35;cursor:not-allowed}.guest-btn:disabled{opacity:.35;cursor:not-allowed}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5rem,1fr));gap:.5rem;margin-bottom:1.5rem}.slot-btn{font-family:var(--font-sans);font-size:.85rem;padding:.65rem .5rem;border:1px solid var(--color-line);background:#fff;color:var(--color-text);cursor:pointer;transition:border-color .2s ease}.slot-btn:hover:not(:disabled){border-color:var(--color-text)}.slot-btn.is-selected{border-color:var(--color-text);background:var(--color-text);color:#fff}.slot-btn:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}.booking-modes-wrap{margin-bottom:1.25rem}.booking-modes{display:flex;min-width:0;gap:0;margin:0;border:1px solid var(--color-line)}.booking-mode-btn{flex:1;font-family:var(--font-sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:.75rem .5rem;border:none;background:transparent;color:var(--color-muted);cursor:pointer;transition:color .2s ease,background-color .2s ease}.booking-mode-btn+.booking-mode-btn{border-left:1px solid var(--color-line)}.booking-mode-btn.is-active{color:var(--color-text);background:#f7f7f7}.booking-mode-btn:hover:not(.is-active){color:var(--color-text)}.booking-intro{margin-top:1.5rem;max-width:28rem;margin-left:auto;margin-right:auto;text-align:left}.booking-intro p{font-size:.88rem;line-height:1.55;color:var(--color-muted);margin:0}.booking-intro p+p{margin-top:.65rem}.booking-edit-banner{font-size:.8rem;letter-spacing:.06em;text-align:center;padding:.65rem 1rem;margin-bottom:1rem;background:#f5f5f5;color:var(--color-muted)}.booking-availability-alert{font-size:.85rem;line-height:1.55;padding:.85rem 1rem;margin-bottom:1.25rem;border:1px solid #e8d4d4;background:snow;color:#8b3a3a}#booking-flow>.booking-availability-alert{width:100%}.booking-card-notes{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:.35rem}.booking-manage-form{margin-top:.5rem}.booking-manage-result{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-line);scroll-margin-top:calc(var(--lang-switcher-offset) + var(--safe-top) + .75rem)}.booking-manage-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.booking-manage-actions .btn-primary,.booking-manage-actions .btn-ghost{flex:1 1 10rem}.booking-manage-status{margin-top:1rem;text-align:center}.booking-manage-note{margin-top:.85rem;font-size:.8rem;line-height:1.55;text-align:center;color:var(--color-muted)}.booking-form{display:flex;flex-direction:column;gap:1.25rem}.field label{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.4rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn-primary{font-family:var(--font-sans);font-size:.75rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;padding:1rem 1.5rem;border:1px solid var(--color-text);background:var(--color-text);color:#fff;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem;width:100%;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-primary:hover:not(:disabled){opacity:.85}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-ghost{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.5rem .75rem;border:1px solid var(--color-line);background:transparent;color:var(--color-muted);cursor:pointer}.btn-ghost:hover{border-color:var(--color-text);color:var(--color-text)}.booking-summary{font-family:var(--font-serif);font-size:1rem;line-height:1.7;padding:1.25rem;border:1px solid var(--color-line);margin-bottom:1.5rem}.dinner-arrival{margin:0 0 1.5rem}.dinner-arrival-title{margin-bottom:.5rem}.dinner-arrival-note{margin-bottom:.85rem}.dinner-arrival-windows{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem}.dinner-arrival-btn{font-family:var(--font-serif);font-size:1rem;padding:.85rem .5rem;border:1px solid var(--color-line);background:#fff;color:var(--color-text);cursor:pointer;transition:border-color .2s ease,background .2s ease;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.dinner-arrival-btn:hover:not(.is-blocked){border-color:var(--color-text)}.dinner-arrival-btn.is-selected{border-color:var(--color-text);background:var(--color-text);color:#fff}.dinner-arrival-btn.is-blocked{opacity:.35;cursor:not-allowed}.booking-success{text-align:center;padding:2rem 0;scroll-margin-top:calc(var(--lang-switcher-offset) + var(--safe-top) + .75rem)}.booking-success h2{font-family:var(--font-serif);font-size:1.75rem;font-weight:400;margin-bottom:.75rem}.booking-success p{color:var(--color-muted);margin-bottom:1.5rem}.booking-code{width:100%;max-width:18rem;margin:0 auto 1.75rem;padding:1.25rem 1rem;border:1px solid var(--color-line);text-align:center}.booking-code-label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.65rem}.booking-code-value{font-family:var(--font-serif);font-size:clamp(1.5rem,6vw,1.85rem);font-weight:400;letter-spacing:.18em;color:var(--color-text);margin-bottom:0}.booking-code-row{display:flex;flex-direction:column;align-items:center;gap:.65rem;margin-bottom:.75rem}.booking-code-copy{min-height:2.25rem;padding:.4rem .9rem;font-size:.65rem;letter-spacing:.14em}.booking-code-copy.is-done{border-color:var(--color-text);color:var(--color-text)}.booking-code-note{font-size:.8rem;line-height:1.55;color:var(--color-muted);margin-bottom:0!important}.app-shell--admin{align-items:stretch;padding-top:calc(1rem + var(--safe-top))}.admin-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;width:100%;padding-bottom:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--color-line)}.admin-bar-main{min-width:0}.admin-bar-title{font-family:var(--font-sans);font-size:.75rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text)}.admin-bar-range{font-size:.8rem;color:var(--color-muted);margin-top:.35rem}.admin-nav{display:flex;gap:0;width:100%;margin-bottom:1.5rem;border:1px solid var(--color-line);overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-nav-link{flex:1 1 0;min-width:0;text-align:center;font-family:var(--font-sans);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:.75rem .5rem;color:var(--color-muted);background:transparent;border-right:1px solid var(--color-line);white-space:nowrap;transition:color .2s ease,background-color .2s ease}.admin-nav-link:last-child{border-right:none}.admin-nav-link:hover{color:var(--color-text)}.admin-nav-link.is-active{color:var(--color-text);background:#f7f7f7}.admin-page{width:100%}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:2rem;width:100%}.admin-panel{width:100%;min-width:0}.admin-week-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;margin-bottom:1.25rem;border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.admin-week-banner[hidden]{display:none}.admin-week-banner-title{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem}.admin-week-banner-desc{font-size:.85rem;color:var(--color-muted);margin:0}.admin-panel-title{font-family:var(--font-sans);font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.75rem}.admin-panel-note{margin-bottom:1.25rem}.admin-panel-subtitle{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.75rem}.admin-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.25rem}.staff-create-form{margin:1.25rem 0 1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-line)}.staff-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.staff-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.9rem 1rem;border:1px solid var(--color-line)}.staff-card--disabled{opacity:.72;background:color-mix(in srgb,var(--color-line) 35%,transparent)}.staff-card-email{margin:0;font-family:var(--font-serif);font-size:1rem}.staff-card-meta{margin:.25rem 0 0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.staff-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.staff-role-select{min-width:7.5rem}.admin-toast{font-size:.8rem;color:var(--color-muted);margin:0}.admin-filter-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.admin-capacity-summary{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-line)}.admin-capacity-line{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;line-height:1.5;color:var(--color-muted);padding:.35rem 0}.admin-capacity-line span{color:var(--color-text);flex-shrink:0}.admin-capacity-line--closed span{color:var(--color-muted)}.settings-day-date{display:block;font-family:var(--font-sans);font-size:.7rem;color:var(--color-muted);margin-top:.15rem}.btn-ghost--sm{font-size:.65rem;padding:.4rem .65rem;flex-shrink:0}.admin-login{max-width:22rem;margin:0 auto}.admin-auth-boot{text-align:center;padding-top:1rem}.admin-auth-boot-text{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-top:2rem}.admin-body{position:relative;width:100%;min-height:12rem}.admin-loading{display:flex;align-items:center;justify-content:center;min-height:12rem;padding:2.5rem 1rem}.admin-loading[hidden]{display:none}.admin-loading-text{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.admin-content.is-loading{display:none}.admin-tabs{display:flex;gap:1.5rem;margin-bottom:2rem;border-bottom:1px solid var(--color-line);padding-bottom:.75rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{flex:0 0 auto;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--color-muted);background:none;border:none;cursor:pointer;padding:0;white-space:nowrap}.admin-tab.is-active{color:var(--color-text)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1.5rem}.admin-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.admin-bookings-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem .85rem;margin-bottom:1rem}.history-list-toolbar .ui-select{min-width:10.5rem;width:auto}.admin-pending-filter{margin-left:auto;font-size:.78rem;letter-spacing:.04em;color:var(--color-muted)}.admin-search-input{flex:1;min-width:min(100%,14rem);max-width:22rem}.week-schedule{margin-bottom:2rem}.week-schedule-grid{border:1px solid var(--color-line)}.week-schedule-row{display:grid;grid-template-columns:minmax(7rem,1.1fr) 1fr 1fr;width:100%;margin:0;padding:0;border:none;border-top:1px solid var(--color-line);background:transparent;text-align:inherit;font:inherit;color:inherit;cursor:pointer;transition:background-color .2s ease}.week-schedule-row--head{border-top:none;cursor:default}.week-schedule-row:not(.week-schedule-row--head):hover{background:#fafafa}.week-schedule-row.is-selected{background:#f5f5f5}.week-schedule-row--closed{cursor:default;opacity:.55}.week-schedule-cell{padding:.7rem .75rem;font-size:.72rem;letter-spacing:.06em;text-align:center;color:var(--color-muted)}.week-schedule-row--head .week-schedule-cell{font-family:var(--font-sans);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;padding-top:.85rem;padding-bottom:.85rem}.week-schedule-cell--day{text-align:left;font-family:var(--font-serif);font-size:.9rem;letter-spacing:.02em;color:var(--color-text);text-transform:none}.week-schedule-cell--closed .week-schedule-occupancy,.week-schedule-cell--closed .week-schedule-meta{color:var(--color-line)}.week-schedule-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.week-schedule-occupancy{font-family:var(--font-serif);font-size:1rem;color:var(--color-text)}.week-schedule-slot.is-high .week-schedule-occupancy{color:var(--color-text)}.week-schedule-slot.is-full .week-schedule-occupancy{font-weight:500}.week-schedule-meta{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.admin-subtabs{display:flex;width:100%;margin:1.5rem 0 1.25rem;border:1px solid var(--color-line)}.admin-subtab{flex:1;font-family:var(--font-sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:.75rem .5rem;border:none;background:transparent;color:var(--color-muted);cursor:pointer;transition:color .2s ease,background-color .2s ease}.admin-subtab+.admin-subtab{border-left:1px solid var(--color-line)}.admin-subtab.is-active{color:var(--color-text);background:#f7f7f7}.admin-subtab:hover:not(.is-active){color:var(--color-text)}.admin-subtab-panel{width:100%}.period-flow-panel{margin:0;padding-top:0;border-top:none}.period-flow-header{margin-bottom:1rem}.period-flow-note{margin-top:.35rem}.period-flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.period-flow-card{border:1px solid var(--color-line);padding:1rem 1.15rem}.period-flow-card-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;margin-bottom:.85rem}.period-flow-metrics{display:flex;flex-direction:column;gap:.55rem}.period-flow-metric{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem}.period-flow-metric-label{color:var(--color-muted)}.period-flow-metric-value{font-variant-numeric:tabular-nums;text-align:right}.period-flow-total{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.35rem}.period-flow-total .ui-input{width:100%}.period-flow-metric--walkin .period-flow-walkin-controls{display:flex;align-items:center;gap:.35rem}.period-flow-metric--walkin .period-flow-metric-value{min-width:1.5rem;text-align:center}.booking-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.booking-period-section{list-style:none}.booking-period-section+.booking-period-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-line)}.booking-period-details{width:100%}.booking-period-heading{display:flex;align-items:center;gap:.5rem;font-family:var(--font-serif);font-size:1.1rem;font-weight:400;margin-bottom:0;letter-spacing:.02em;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.booking-period-details[open]>.booking-period-heading{margin-bottom:.75rem}.booking-period-heading::-webkit-details-marker{display:none}.booking-period-heading::marker{content:""}.booking-period-heading:before{content:"";width:.45rem;height:.45rem;border-right:1.5px solid var(--color-muted);border-bottom:1.5px solid var(--color-muted);transform:rotate(-45deg);transition:transform .15s ease;flex-shrink:0}.booking-period-details[open]>.booking-period-heading:before{transform:rotate(45deg)}.booking-period-count{font-family:var(--font-sans);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-line);padding:.15rem .4rem}.booking-period-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.history-list{margin-top:1rem}.history-dashboard{margin-bottom:2rem}.history-week-toolbar{margin-bottom:1.25rem}.history-stats-sections{display:flex;flex-direction:column;gap:1.35rem;margin-bottom:1rem}.history-stats-section-title{margin-bottom:.55rem}.history-stats-grid{display:grid;grid-template-columns:repeat(var(--stats-cols, 4),minmax(0,1fr));gap:.75rem;margin-bottom:0}.history-stat-card{padding:.9rem .65rem;border:1px solid var(--color-line);text-align:center;min-width:0}.history-stat-value{font-family:var(--font-serif);font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.1}.history-stat-label{font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-top:.35rem;line-height:1.3}.history-stat-note{margin:.35rem 0 0;font-size:.58rem;line-height:1.35;color:var(--color-muted)}.history-attendance-note{margin:.35rem 0 0}@media(max-width:900px){.history-stats-grid{grid-template-columns:repeat(min(var(--stats-cols, 4),3),minmax(0,1fr))}}@media(max-width:640px){.history-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.history-stats-grid{grid-template-columns:1fr 1fr}}.history-interest-panel{padding-top:.25rem;margin-bottom:.5rem}.history-returning-note{margin:1rem 0 0}.history-interest-note{margin:.35rem 0 1rem}.history-interest-subtitle{margin-top:1.75rem}.history-arrival-minute-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1.25rem;margin-top:1.75rem}.history-arrival-minute-head .history-interest-subtitle{margin-top:0}.history-arrival-minute-mode-label{display:flex;flex-direction:column;gap:.35rem;min-width:min(14rem,100%);margin:0}.history-exit-panel{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid var(--color-line)}.history-exit-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.history-exit-file-label{display:inline-flex;align-items:center;cursor:pointer;margin:0}.history-exit-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.history-velocity-panel{margin:0;padding-top:0;border-top:none}.history-velocity-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:1rem}.history-velocity-compare-label{display:flex;flex-direction:column;gap:.35rem;min-width:min(16rem,100%)}.history-velocity-meter{margin-bottom:1rem}.history-velocity-meter-empty{margin:0}.history-velocity-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem 1.5rem;align-items:center}.history-velocity-thermo{display:grid;gap:.45rem}.history-velocity-thermo-track{position:relative;height:.85rem;background:color-mix(in srgb,var(--color-line) 70%,transparent);border:1px solid var(--color-line);overflow:hidden}.history-velocity-thermo-fill{height:100%;background:var(--color-text);transition:width .35s ease}.history-velocity-thermo-fill.is-slower{opacity:.45}.history-velocity-thermo-label{margin:0;font-family:var(--font-serif);font-size:1.35rem;line-height:1.15}.history-velocity-thermo-note{margin:0;font-size:.8rem;color:var(--color-muted)}.history-velocity-side-stats{display:grid;gap:.55rem}.history-velocity-side-stat{margin:0;font-size:.82rem;line-height:1.35;color:var(--color-muted)}.history-velocity-side-stat strong{color:var(--color-text);font-weight:600}.history-velocity-chart{border:1px solid var(--color-line);padding:.75rem;overflow-x:auto}.history-velocity-svg{display:block;height:auto}.history-velocity-grid{stroke:var(--color-line);stroke-width:1;stroke-dasharray:2 3;opacity:.7}.history-velocity-axis{fill:var(--color-muted);font-size:9px;font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase}.history-velocity-line{fill:none;stroke-width:2.25}.history-velocity-line--selected{stroke:var(--color-text)}.history-velocity-line--compare{stroke:var(--color-muted);stroke-dasharray:5 4;opacity:.9}.history-velocity-legend{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;margin:.75rem 0 0;padding:0;list-style:none;font-size:.78rem;color:var(--color-muted)}.history-velocity-legend-swatch{display:inline-block;width:1.1rem;height:2px;margin-right:.4rem;vertical-align:middle;background:var(--color-text)}.history-velocity-legend-swatch--compare{background:var(--color-muted);background:repeating-linear-gradient(90deg,var(--color-muted) 0 4px,transparent 4px 7px)}@media(max-width:720px){.history-velocity-summary{grid-template-columns:1fr}}.history-interest-chart{border:1px solid var(--color-line);padding:1rem .75rem .85rem;overflow-x:auto}.history-interest-scatter{border:1px solid var(--color-line);padding:.75rem;overflow-x:auto}.history-scatter-svg{display:block;height:auto}.history-scatter-plot{fill:transparent;stroke:var(--color-line);stroke-width:1}.history-scatter-grid{stroke:var(--color-line);stroke-width:1;stroke-dasharray:2 3;opacity:.7}.history-scatter-axis{fill:var(--color-muted);font-size:9px;font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase}.history-scatter-point{fill:var(--color-text);opacity:.72}.history-scatter-point--visit{fill:color-mix(in srgb,var(--color-text) 45%,#fff);stroke:var(--color-text);stroke-width:.8;opacity:.9}.history-scatter-point:hover{opacity:1}.history-arrival-heatmap{min-width:max-content}.history-arrival-heat-grid{display:grid;grid-template-columns:3.25rem repeat(var(--heat-days, 7),minmax(3.25rem,1fr));gap:.2rem;align-items:stretch}.history-arrival-heat-corner{min-height:2.25rem}.history-arrival-heat-day{display:flex;align-items:flex-end;justify-content:center;padding:0 .15rem .35rem;font-size:.58rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);text-align:center;line-height:1.25}.history-arrival-heat-time{display:flex;align-items:center;justify-content:flex-end;padding-right:.35rem;font-size:.58rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);white-space:nowrap}.history-arrival-heat-cell{display:flex;align-items:center;justify-content:center;min-height:1.85rem;border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-text) calc(var(--heat, 0) * 100%),#fff);color:var(--color-muted);font-family:var(--font-serif);font-size:.85rem;line-height:1}.history-arrival-heat-cell.has-guests{color:var(--color-text);border-color:color-mix(in srgb,var(--color-text) 35%,var(--color-line))}.history-arrival-heat-cell.is-strong{color:#fff;border-color:color-mix(in srgb,var(--color-text) 55%,var(--color-line))}.history-arrival-heat-gap{height:.65rem;margin:.15rem 0;border-top:1px dashed var(--color-line)}.history-arrival-heat-legend{margin:.75rem 0 0}.history-interest-bars{display:flex;align-items:flex-end;gap:.45rem;min-height:10rem;min-width:max-content;padding:0 .15rem}.history-interest-bar{display:flex;flex-direction:column;align-items:center;width:2.75rem;flex:0 0 auto}.history-interest-bar-track{display:flex;align-items:flex-end;width:100%;height:7.5rem;border-bottom:1px solid var(--color-line)}.history-interest-bar-fill{width:100%;background:var(--color-text);opacity:.78;transition:height .25s ease}.history-interest-bar-fill--visit{opacity:.45}.history-interest-bar-value{margin:.35rem 0 0;font-family:var(--font-serif);font-size:.85rem;line-height:1}.history-interest-bar-label{margin:.3rem 0 0;font-size:.58rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);text-align:center;line-height:1.25}.history-arrival-minute-bars{gap:.2rem}.history-arrival-minute-bar{width:1.85rem}.history-arrival-minute-bar .history-interest-bar-value{font-size:.7rem;min-height:.7rem}.history-arrival-minute-bar .history-interest-bar-label{font-size:.5rem;letter-spacing:.02em;writing-mode:horizontal-tb}.history-arrival-period-gap{flex:0 0 .85rem;align-self:stretch;margin:0 .15rem;border-left:1px dashed var(--color-line)}.history-day-section{list-style:none}.history-day-section+.history-day-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-line)}.history-day-heading{font-family:var(--font-serif);font-size:1.2rem;font-weight:400;margin-bottom:1rem;text-transform:capitalize}.history-period-block+.history-period-block{margin-top:1.25rem;padding-top:1.25rem;border-top:1px dashed var(--color-line)}.booking-period-heading--sub{font-size:.95rem;margin-bottom:.65rem}.booking-card{border:1px solid var(--color-line);padding:1.25rem}.booking-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.booking-card-head>div:first-child{min-width:0;flex:1}.booking-card-name{font-family:var(--font-serif);font-size:1.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.booking-card-meta{font-size:.85rem;color:var(--color-muted);line-height:1.5}.booking-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.status-pill{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .5rem;border:1px solid var(--color-line);white-space:nowrap}.status-pill--confirmed{border-color:var(--color-text)}.status-pill--arrived{background:var(--color-text);color:#fff;border-color:var(--color-text)}.status-pill--cancelled,.status-pill--no-show{opacity:.5}.settings-grid{display:flex;flex-direction:column;gap:1rem}.settings-day{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;align-items:start;padding:1rem 0;border-bottom:1px solid var(--color-line)}.settings-day-body{display:flex;flex-direction:column;gap:.85rem;min-width:0}.settings-day-capacity{display:grid;grid-template-columns:1fr;gap:1rem}.settings-capacity-group{border:1px solid var(--color-line);padding:.85rem;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.settings-capacity-group legend{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);padding:0 .25rem}.menu-admin-form{display:flex;flex-direction:column;gap:1.5rem}.menu-admin-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem}.menu-admin-section{display:flex;flex-direction:column;gap:.75rem}.menu-admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.menu-ingredients-list{display:flex;flex-direction:column;gap:1rem}.menu-ingredient-row{border:1px solid var(--color-line);padding:1rem}.menu-ingredient-row-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.menu-ingredient-row-title{font-size:.85rem;color:var(--color-muted)}.menu-ingredient-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.menu-ingredient-grid--wide{grid-column:1 / -1}.menu-weekly-note{min-height:5.5rem;resize:vertical}.field--compact span{display:block;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.35rem}.btn-ghost--danger{color:#8b3a3a;border-color:#e8d4d4}.btn-ghost--danger:hover{color:#8b3a3a;border-color:#8b3a3a}.btn-danger{font-family:var(--font-sans);font-size:.75rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;padding:.65rem 1rem;border:1px solid #8b3a3a;background:#8b3a3a;color:#fff;cursor:pointer;transition:opacity .2s ease,background-color .2s ease;min-height:2.75rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-danger--sm{font-size:.68rem;padding:.45rem .75rem;min-height:2.25rem}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.booking-card--spam{border-color:#e8d4d4;background:snow}.booking-card-spam-badge{display:inline-block;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#8b3a3a;border:1px solid #e8d4d4;padding:.2rem .45rem;margin-bottom:.35rem}.booking-card-returning-badge{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .4rem;padding:.2rem .45rem;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);border:1px solid var(--color-line);background:#f7f7f7}.booking-card-reliability{display:flex;flex-direction:column;gap:.12rem;margin:0 0 .4rem;padding:.3rem .45rem;border:1px solid var(--color-line);max-width:100%}.booking-card-reliability-score{margin:0;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text)}.booking-card-reliability-detail{margin:0;font-size:.68rem;line-height:1.35;color:var(--color-muted);text-transform:none;letter-spacing:0}.booking-card-reliability--good{border-color:color-mix(in srgb,#3f8f6b 35%,var(--color-line));background:color-mix(in srgb,#3f8f6b 8%,#fff)}.booking-card-reliability--ok{border-color:var(--color-line);background:#fafafa}.booking-card-reliability--risk{border-color:color-mix(in srgb,#b8860b 40%,var(--color-line));background:color-mix(in srgb,#b8860b 10%,#fff)}.booking-card-reliability--bad{border-color:color-mix(in srgb,#c45c5c 40%,var(--color-line));background:color-mix(in srgb,#c45c5c 10%,#fff)}.booking-card--reliability-risk{border-color:color-mix(in srgb,#c45c5c 28%,var(--color-line))}.booking-card-admin-badge{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 .4rem;padding:.2rem .45rem;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-text) 6%,#fff)}.booking-card-admin-icon,.booking-card-returning-icon{display:inline-flex;flex-shrink:0;color:var(--color-muted)}.booking-card--returning{border-color:color-mix(in srgb,var(--color-text) 28%,var(--color-line))}.booking-card--admin{border-color:color-mix(in srgb,var(--color-text) 40%,var(--color-line))}.admin-booking-dialog-panel .field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}#admin-booking-dialog.confirm-dialog{width:min(28rem,calc(100vw - 2rem - var(--safe-left) - var(--safe-right)))}.settings-day:last-child{border-bottom:none}.settings-day-name{font-family:var(--font-serif);font-size:1rem}.settings-toggles{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}.prototype-banner{width:100%;font-size:.7rem;letter-spacing:.08em;text-align:center;padding:calc(.65rem + var(--safe-top)) calc(3.5rem + var(--safe-right)) .65rem calc(1rem + var(--safe-left));background:#f5f5f5;color:var(--color-muted);margin-bottom:0;line-height:1.45}.app-back+.app-back{margin-left:1.5rem}.form-error{font-size:.8rem;line-height:1.5;color:#8b3a3a;margin-bottom:.5rem}.admin-placeholder{text-align:center;padding-top:1rem}.hidden{display:none!important}.confirm-dialog{border:1px solid var(--color-line);padding:0;margin:auto;max-width:calc(100vw - 2rem - var(--safe-left) - var(--safe-right));width:min(24rem,100%);max-height:calc(100dvh - 2rem - var(--safe-top) - var(--safe-bottom));background:var(--color-bg);color:var(--color-text);overflow:hidden}.confirm-dialog[open]{display:flex;flex-direction:column}.confirm-dialog::backdrop{background:#00000073}.confirm-dialog-panel{margin:0;padding:1.35rem;padding-bottom:calc(1.35rem + var(--safe-bottom));border:none;background:transparent;width:100%;min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1rem;flex:1 1 auto}.confirm-dialog-panel>.field,.confirm-dialog-panel>.field-row,.confirm-dialog-panel>.form-error{min-width:0}.confirm-dialog-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:400;margin:0;line-height:1.25}.confirm-dialog-message{font-size:.9rem;line-height:1.55;color:var(--color-muted);margin:0;white-space:pre-line}.confirm-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:auto 0 0;width:100%;min-width:0;position:sticky;bottom:0;padding-top:.35rem;background:var(--color-bg)}.confirm-dialog-actions .btn-ghost,.confirm-dialog-actions .btn-primary,.confirm-dialog-actions .btn-danger{width:100%;margin-top:0;min-width:0;min-height:2.75rem;padding-left:.65rem;padding-right:.65rem;letter-spacing:.08em;white-space:nowrap}body:has(.prototype-banner) .app-shell{padding-top:calc(1.5rem + var(--safe-top))}@media(max-width:639px){.app-shell{padding-top:calc(1.5rem + var(--lang-switcher-offset) + var(--safe-top));padding-bottom:calc(2rem + var(--safe-bottom))}body:has(.prototype-banner) .app-shell{padding-top:calc(1.25rem + var(--safe-top))}.app-top{margin-bottom:2rem}.app-top-jp{letter-spacing:.2em}.app-top-title{font-size:clamp(1.75rem,8vw,2.25rem)}.app-panel+.app-panel{margin-top:2rem;padding-top:2rem}.day-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.day-btn{font-size:.68rem;padding:.7rem .35rem}.day-btn-date{font-size:1rem}.period-grid,.field-row,.capacity-fields{grid-template-columns:1fr}.period-btn{font-size:1rem;padding:.9rem .85rem;color:var(--color-text)}.period-btn-meta{font-size:.68rem;line-height:1.4}.guest-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.guest-btn{font-size:.78rem;padding:.75rem .35rem;color:var(--color-text)}.booking-summary{font-size:.95rem;padding:1rem}.booking-success h2{font-size:1.5rem}.prototype-banner{font-size:.65rem;letter-spacing:.04em}.settings-day{grid-template-columns:1fr;gap:.5rem}.admin-grid{grid-template-columns:1fr;gap:2.5rem}.admin-nav-link{flex:0 0 auto;min-width:max-content;padding:.8rem .95rem;font-size:.68rem;letter-spacing:.08em}.admin-tabs{gap:1.1rem}.admin-tab{font-size:.68rem;letter-spacing:.1em}.admin-subtabs{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-subtabs::-webkit-scrollbar{display:none}.admin-subtab{flex:0 0 auto;min-width:max-content;padding:.8rem .95rem;font-size:.68rem;letter-spacing:.08em;white-space:nowrap}.admin-capacity-line{flex-direction:column;gap:.15rem}}@media(min-width:640px){.app-shell{padding-left:max(1.5rem,var(--safe-left));padding-right:max(1.5rem,var(--safe-right))}.btn-primary{width:auto}body:has(.prototype-banner) .app-shell{padding-top:calc(2rem + var(--lang-switcher-offset) + var(--safe-top))}.prototype-banner{margin-bottom:0}}@media(max-width:480px){.period-grid,.field-row,.capacity-fields,.admin-booking-dialog-panel .field-row{grid-template-columns:1fr}.settings-day{grid-template-columns:1fr;gap:.5rem}.confirm-dialog{width:min(100%,calc(100vw - 1.25rem - var(--safe-left) - var(--safe-right)))}.confirm-dialog-panel{padding:1.15rem;padding-bottom:calc(1.15rem + var(--safe-bottom));gap:.9rem}.confirm-dialog-title{font-size:1.25rem}.confirm-dialog-actions .btn-ghost,.confirm-dialog-actions .btn-primary,.confirm-dialog-actions .btn-danger{letter-spacing:.06em;font-size:.68rem;padding-left:.5rem;padding-right:.5rem}}@media(max-width:360px){.confirm-dialog-actions{grid-template-columns:1fr}}@media print{.app-shell,.prototype-banner{display:none!important}}
