[data-reservations-page]{--reservation-blue:#315f70;--reservation-blue-soft:#e9f3f5;--reservation-warm:#fff7df;--reservation-line:#e8dfca}
[data-reservations-page] button,[data-reservations-page] input,[data-reservations-page] select,[data-reservations-page] textarea{touch-action:manipulation}
.reservation-page-head{align-items:flex-end}.reservation-page-head>.button{margin-left:auto;white-space:nowrap}
.reservation-source-note{display:flex;align-items:center;gap:10px;margin:-7px 0 16px;padding:10px 13px;border:1px solid #dfc77e;border-radius:13px;background:#fff8e4;color:#68541e}.reservation-source-note>span{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:var(--gold);color:#3d3217;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.reservation-source-note>p{margin:0;font-size:10px;line-height:1.45}

.reservation-date-panel{overflow:hidden;margin-bottom:16px;border:1px solid var(--line);border-radius:19px;background:var(--paper);box-shadow:var(--shadow-sm)}
.reservation-date-toolbar{display:flex;align-items:center;gap:16px;padding:15px 17px;border-bottom:1px solid var(--reservation-line);background:linear-gradient(120deg,var(--green-050),var(--paper))}
.reservation-date-toolbar>div:first-child{min-width:0}.reservation-date-toolbar>div:first-child span,.reservation-date-toolbar>div:first-child strong{display:block}.reservation-date-toolbar>div:first-child span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.reservation-date-toolbar>div:first-child strong{margin-top:3px;color:var(--green-800);font-size:13px}
.reservation-date-actions{display:flex;align-items:center;gap:7px;margin-left:auto}.reservation-date-actions .mini-action{min-width:48px;min-height:48px;font-size:11px}.reservation-date-actions .reservation-today-action{min-width:92px}
.reservation-date-input{display:grid;grid-template-columns:auto minmax(132px,1fr);align-items:center;gap:8px;min-height:48px;padding:5px 6px 5px 11px;border:1px solid var(--line);border-radius:12px;background:white}.reservation-date-input>span{color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.reservation-date-input>input{min-height:36px;border:0;background:transparent;color:var(--green-800);font-size:12px;font-weight:800;outline:0}
.reservation-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;padding:9px}
.reservation-day{display:grid;min-width:0;min-height:88px;align-content:center;justify-items:center;padding:9px 6px;border:1px solid transparent;border-radius:13px;background:transparent;color:var(--muted);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent}.reservation-day:hover{border-color:var(--line);background:var(--cream)}.reservation-day.active{border-color:var(--green-700);background:var(--green-800);color:white;box-shadow:0 5px 16px rgba(16,90,60,.18)}.reservation-day span,.reservation-day b,.reservation-day small{display:block}.reservation-day span{font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.reservation-day b{margin-top:2px;color:var(--green-800);font:700 24px/1 'Cormorant Garamond',serif}.reservation-day.active b{color:white}.reservation-day small{overflow:hidden;width:100%;margin-top:5px;font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.reservation-day.active small{color:rgba(255,255,255,.75)}

.reservation-kpis .reservation-kpi{min-height:122px}.reservation-kpi>b{position:relative;z-index:1;display:block;margin-top:7px;color:var(--green-800);font:700 34px/1 'Cormorant Garamond',serif;font-variant-numeric:tabular-nums}.reservation-kpi.awaited{border-color:#dec880;background:linear-gradient(145deg,#fffdf7,var(--reservation-warm))}.reservation-kpi.in-room{border-color:#b9d4c4;background:linear-gradient(145deg,var(--paper),var(--green-050))}.reservation-kpi.awaited::after{background:#f3dfaa}.reservation-kpi.in-room::after{background:#cfe5d7}

.reservation-forecast-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:14px;align-items:start;margin-bottom:24px}.reservation-forecast-card,.reservation-tables-card{overflow:hidden}.reservation-card-head{align-items:center}.reservation-card-head>div span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.reservation-card-head>em{margin-left:auto;padding:6px 9px;border-radius:999px;background:var(--gold-100);color:#6d5419;font-size:9px;font-style:normal;font-weight:900;white-space:nowrap}.reservation-peak{border:1px solid #dfc477}
.reservation-truth-note{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;margin:13px 15px 0;padding:11px 12px;border:1px solid #c8dce1;border-radius:12px;background:var(--reservation-blue-soft);color:#294e5c}.reservation-truth-note>span{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:var(--reservation-blue);color:white;font-family:Georgia,serif;font-weight:700}.reservation-truth-note p{margin:0;font-size:10px;line-height:1.5}.reservation-truth-note b{font-weight:900}
.reservation-hourly-list{display:grid;gap:11px;padding:16px}.reservation-hour-row{display:grid;grid-template-columns:55px minmax(120px,1fr) 74px 42px;gap:10px;align-items:center}.reservation-hour-row time{color:var(--green-800);font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.reservation-hour-track{height:13px;overflow:hidden;border-radius:999px;background:#ece7db}.reservation-hour-track>i{display:block;width:var(--reservation-relative);height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,var(--green-700),var(--gold));transform-origin:left center}.reservation-hour-row>strong{color:var(--green-800);font-size:14px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.reservation-hour-row>strong small{font-size:8px;font-weight:700}.reservation-hour-row>span{color:var(--muted);font-size:8px;font-weight:800;text-align:right;white-space:nowrap}
.reservation-empty-compact{min-height:180px;padding:22px}.reservation-empty-compact>span,.reservation-access-empty>span{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:var(--green-100);color:var(--green-800);font-size:18px}.reservation-empty-compact>b,.reservation-access-empty>b{color:var(--green-800);font:700 20px/1.1 'Cormorant Garamond',serif}.reservation-empty-compact>p,.reservation-access-empty>p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}

.reservation-table-list{display:grid;gap:8px;padding:13px}.reservation-table-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;padding:11px 12px;border:1px solid var(--reservation-line);border-radius:12px;background:var(--cream)}.reservation-table-list b{color:var(--green-800);font-size:12px}.reservation-table-list span{color:var(--green-800);font-size:10px;font-weight:800}.reservation-table-list small{grid-column:1/-1;color:var(--muted);font-size:9px}.reservation-unassigned{margin:0;padding:11px 14px;border-top:1px solid #ead9a9;background:var(--reservation-warm);color:#675525;font-size:9px;line-height:1.45}

.reservation-list-section>header{display:flex;align-items:flex-end;gap:14px;margin-bottom:11px}.reservation-list-section>header>div span{display:block;color:#7d473f;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.reservation-list-section>header h3{margin:2px 0 0;color:var(--green-800);font:700 29px/1 'Cormorant Garamond',serif}.reservation-list-section>header>em{margin-left:auto;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-size:9px;font-style:normal;font-weight:800}.reservation-list{display:grid;gap:10px}
.reservation-entry{display:grid;grid-template-columns:105px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:16px;background:var(--paper);box-shadow:var(--shadow-sm)}.reservation-entry.has-actions{grid-template-columns:105px minmax(0,1fr) minmax(170px,auto)}.reservation-entry-arrived{border-left-color:var(--reservation-blue)}.reservation-entry-seated{border-left-color:var(--green-700)}.reservation-entry-completed{border-left-color:#799988}.reservation-entry-cancelled,.reservation-entry-no_show{border-left-color:#9b9486;background:#faf8f2}.reservation-entry-cancelled .reservation-entry-main,.reservation-entry-no_show .reservation-entry-main{opacity:.78}
.reservation-entry-time{display:grid;align-content:start;justify-items:center;gap:4px;padding:16px 10px;border-right:1px solid var(--reservation-line);background:var(--cream);text-align:center}.reservation-entry-time time{color:var(--green-800);font:700 26px/1 'Cormorant Garamond',serif;font-variant-numeric:tabular-nums}.reservation-entry-time small{color:var(--muted);font-size:8px;line-height:1.35}
.reservation-entry-main{min-width:0;padding:14px 15px}.reservation-entry-heading{display:flex;align-items:flex-start;gap:12px}.reservation-entry-heading>div{min-width:0}.reservation-entry-heading h4{margin:0;color:var(--green-800);font:700 22px/1.05 'Cormorant Garamond',serif;overflow-wrap:anywhere}.reservation-entry-heading p{margin:4px 0 0;color:var(--muted);font-size:10px}.reservation-entry-heading p b{color:var(--ink);font-size:12px}
.reservation-status{display:inline-flex;flex:0 0 auto;min-height:29px;align-items:center;margin-left:auto;padding:5px 9px;border-radius:999px;background:var(--gold-100);color:#6b5317;font-size:8px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.reservation-status-arrived{background:var(--reservation-blue-soft);color:#285361}.reservation-status-seated{background:var(--green-100);color:var(--green-800)}.reservation-status-completed{background:#e8eee9;color:#4f6d5b}.reservation-status-cancelled,.reservation-status-no_show{background:#ece8df;color:#69635a}
.reservation-entry-facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:11px}.reservation-entry-facts>span{display:flex;min-height:30px;align-items:center;gap:5px;padding:5px 7px;border-radius:9px;background:var(--cream);color:var(--muted);font-size:9px}.reservation-entry-facts>span>b{color:var(--green-800);font-size:8px;text-transform:uppercase}.reservation-entry-facts em{padding:3px 6px;border-radius:999px;background:white;color:var(--green-800);font-size:8px;font-style:normal;font-weight:900}.reservation-entry-facts small{font-size:9px}
.reservation-operational-note{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px;margin:10px 0 0;padding:9px 10px;border-left:3px solid var(--gold);border-radius:0 9px 9px 0;background:var(--reservation-warm);font-size:9px;line-height:1.45}.reservation-operational-note>b{color:#6b551d;text-transform:uppercase}.reservation-operational-note>span{overflow-wrap:anywhere;color:var(--ink)}
.reservation-private{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 10px;margin-top:10px;padding:10px;border:1px solid #c5d9cd;border-radius:11px;background:var(--green-050)}.reservation-private>span{grid-column:1/-1;width:max-content;padding:3px 6px;border-radius:999px;background:var(--green-800);color:white;font-size:7px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.reservation-private p{display:contents}.reservation-private p>b{color:var(--green-800);font-size:8px;text-transform:uppercase}.reservation-private p>a,.reservation-private p>span{color:var(--ink);font-size:10px;overflow-wrap:anywhere}.reservation-private a{font-weight:800;text-decoration-thickness:1px;text-underline-offset:2px}
.reservation-audit{display:block;margin-top:9px;color:var(--muted);font-size:8px;line-height:1.4}
.reservation-entry>footer{display:grid;align-content:center;gap:8px;min-width:180px;padding:12px;border-left:1px solid var(--reservation-line);background:#fcfaf4}.reservation-entry>footer>.button{width:100%;min-height:48px}.reservation-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.reservation-quick-actions .mini-action{min-width:0;min-height:48px;padding:8px;font-size:9px}.reservation-quick-actions .mini-action:first-child:nth-last-child(3){grid-column:1/-1}

.reservation-dialog{width:min(780px,calc(100% - 24px))}.reservation-form-grid{grid-template-columns:1fr 1fr;max-height:min(68vh,720px);overflow:auto}.reservation-form-grid label.wide{grid-column:1/-1}.reservation-form-grid label>small{color:var(--muted);font-size:9px;line-height:1.4}.reservation-input-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:white}.reservation-input-suffix:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(194,161,77,.14)}.reservation-input-suffix>input{border:0!important;box-shadow:none!important}.reservation-input-suffix>span{padding:0 12px;color:var(--muted);font-size:10px;font-weight:800}.reservation-private-field{padding:12px;border:1px solid #c5d9cd;border-radius:13px;background:var(--green-050)}.reservation-form-error{margin:0 20px 12px;padding:10px 12px;border-radius:11px;background:var(--rose-100);color:var(--danger);font-size:10px;font-weight:800}.reservation-access-empty{min-height:340px}

@media(max-width:1100px){
  .reservation-forecast-layout{grid-template-columns:1fr 1fr}
  .reservation-entry,.reservation-entry.has-actions{grid-template-columns:94px minmax(0,1fr)}
  .reservation-entry>footer{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(150px,auto);border-top:1px solid var(--reservation-line);border-left:0}
  .reservation-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.reservation-quick-actions .mini-action:first-child:nth-last-child(3){grid-column:auto}
}

@media(max-width:820px){
  .reservation-date-toolbar{align-items:flex-start;flex-direction:column}.reservation-date-actions{width:100%;margin-left:0}.reservation-date-input{flex:1}
  .reservation-week{display:grid;grid-auto-columns:minmax(118px,25vw);grid-auto-flow:column;grid-template-columns:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.reservation-day{min-height:94px;scroll-snap-align:start}
  .reservation-forecast-layout{grid-template-columns:1fr}.reservation-hour-row{grid-template-columns:54px minmax(90px,1fr) 68px 38px}
  .reservation-entry-heading h4{font-size:21px}
  .reservation-dialog{max-height:calc(100dvh - 12px)}.reservation-dialog .native-dialog-actions{padding-bottom:max(14px,env(safe-area-inset-bottom))}
}

@media(max-width:620px){
  .reservation-page-head>.button{width:100%;margin-left:0}.reservation-source-note{align-items:flex-start;flex-direction:column}.reservation-date-panel{margin-inline:-3px}
  .reservation-date-actions{display:grid;grid-template-columns:48px 1fr 48px}.reservation-date-actions .reservation-today-action{grid-column:1/-1;grid-row:2;width:100%}.reservation-date-input{grid-template-columns:1fr;gap:1px}.reservation-date-input>span{font-size:7px}.reservation-date-input>input{width:100%}
  .reservation-kpis{grid-template-columns:1fr 1fr}.reservation-kpis .reservation-kpi{min-height:112px}.reservation-kpi>b{font-size:30px}
  .reservation-truth-note{margin-inline:10px}.reservation-hourly-list{padding:13px 10px}.reservation-hour-row{grid-template-columns:48px minmax(62px,1fr) 62px}.reservation-hour-row>span{display:none}
  .reservation-list-section>header{align-items:flex-start}.reservation-list-section>header h3{font-size:25px}.reservation-list-section>header>em{font-size:8px}
  .reservation-entry,.reservation-entry.has-actions{grid-template-columns:1fr;border-left-width:4px}.reservation-entry-time{display:flex;align-items:center;justify-content:flex-start;padding:11px 13px;border-right:0;border-bottom:1px solid var(--reservation-line);text-align:left}.reservation-entry-time time{font-size:23px}.reservation-entry-time small{margin-left:auto;text-align:right}.reservation-entry-main{padding:13px}.reservation-entry-heading{align-items:flex-start}.reservation-entry-heading p{font-size:11px}.reservation-entry-facts>span{min-height:36px}
  .reservation-operational-note,.reservation-private{grid-template-columns:1fr}.reservation-private>span{grid-column:auto}.reservation-entry>footer{grid-template-columns:1fr;padding:10px}.reservation-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-quick-actions .mini-action:first-child:nth-last-child(3){grid-column:1/-1}
  .reservation-form-grid{grid-template-columns:1fr;padding:14px}.reservation-form-grid label.wide{grid-column:auto}.reservation-dialog .native-dialog-actions{grid-template-columns:1fr}.reservation-dialog .native-dialog-actions .button{width:100%;min-height:52px}.reservation-dialog .native-dialog-actions .button.danger{grid-column:auto}.reservation-form-error{margin-inline:14px}
}

@media(max-width:410px){
  .reservation-kpis{grid-template-columns:1fr}.reservation-kpis .reservation-kpi{min-height:105px}
  .reservation-day{min-width:112px}.reservation-card-head{align-items:flex-start;flex-direction:column}.reservation-card-head>em{margin-left:0}
  .reservation-entry-heading{display:grid}.reservation-status{margin-left:0;width:max-content}.reservation-list-section>header{display:grid}.reservation-list-section>header>em{margin-left:0;width:max-content}
}

@media(prefers-reduced-motion:reduce){
  .reservation-day,.reservation-hour-track>i,.reservation-dialog{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
