/* AUREA · the working restaurant experience */
:root{--ex-paper:#f6f1e7;--ex-white:#fffcf6;--ex-ink:#30392f;--ex-muted:#5e6455;--ex-line:#d4d6c8;--ex-control:#7b826e;--ex-olive:#606449;--ex-orange:#a0472c;--ex-radius:20px;--ex-serif:'Cormorant Garamond',Georgia,serif;--ex-sans:'Manrope','Inter',Arial,sans-serif}
.ex-root{font-family:var(--ex-sans);color:var(--ex-ink);min-height:65vh;background:var(--ex-paper);padding:130px clamp(20px,5vw,88px) 80px}.ex-root *,.ex-chat *,.ex-dialog *,.ex-toast *{box-sizing:border-box}:where(.ex-root,.ex-dialog,.ex-chat) :where(button,input,select,textarea){font:inherit}.ex-root button,.ex-dialog button,.ex-chat button{cursor:pointer}.ex-root button:disabled,.ex-dialog button:disabled,.ex-chat button:disabled{cursor:not-allowed;opacity:.48}.ex-root a{color:inherit}.ex-root button:focus-visible,.ex-root a:focus-visible,.ex-dialog button:focus-visible,.ex-chat button:focus-visible{outline:3px solid var(--ex-orange);outline-offset:4px}.ex-root h1,.ex-root h2,.ex-root h3,.ex-dialog h2,.ex-chat h3{font-family:var(--ex-serif);font-weight:400;line-height:1.02;letter-spacing:-.035em;margin:0}.ex-root h1{font-size:clamp(52px,6vw,94px)}.ex-root h2{font-size:clamp(34px,3vw,48px)}.ex-root h3{font-size:1.875rem}.ex-root p{line-height:1.7}.ex-eyebrow{font-family:var(--ex-sans);font-size:0.875rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;display:block;margin-bottom:18px;color:var(--ex-olive)}.ex-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.ex-heading>p{max-width:340px;font-size:1rem;color:var(--ex-muted);margin-bottom:8px}.ex-heading em{color:var(--ex-orange);font-weight:400}.ex-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border:1px solid var(--ex-ink);background:var(--ex-ink);color:#fffcf6!important;border-radius:99px;line-height:1.3;font-size:1rem;font-weight:600;text-decoration:none;min-height:46px;transition:background .2s,transform .2s,border-color .2s}.ex-btn:hover:not(:disabled){background:var(--ex-orange);border-color:var(--ex-orange);transform:translateY(-2px)}.ex-btn--light{background:transparent;color:var(--ex-ink)!important;border-color:#c9cbbb}.ex-btn--light:hover:not(:disabled){background:#e9e8dc;border-color:#a7aa95}.ex-btn--white{background:var(--ex-white);color:var(--ex-ink)!important;border-color:var(--ex-white)}.ex-btn--small{padding:10px 16px;min-height:38px;font-size:1rem}.ex-btn--danger{border-color:var(--ex-orange);color:#a74427!important;background:transparent}.ex-icon-btn{border:1px solid var(--ex-line);background:transparent;width:38px;height:38px;display:inline-grid;place-items:center;border-radius:50%;padding:8px;color:inherit;flex-shrink:0}.ex-icon-btn:hover{background:#e8e6da}.ex-icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0}.ex-muted{color:var(--ex-muted);font-size:1rem;line-height:1.65}.ex-small{font-size:1rem!important}.ex-row{display:flex;align-items:center;gap:12px}.ex-between{justify-content:space-between}.ex-wrap{flex-wrap:wrap}.ex-stack{display:grid;gap:16px}.ex-rule{border:0;border-top:1px solid var(--ex-line);margin:24px 0}.ex-demo-note{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--ex-line);padding-top:22px;margin-top:50px;font-size:0.875rem;letter-spacing:.025em;color:var(--ex-muted)}.ex-demo-note a{text-underline-offset:4px}.ex-pill{display:inline-flex;align-items:center;gap:7px;font-size:0.875rem;font-weight:600;padding:6px 10px;border-radius:99px;background:#e8e9dc;color:#556044;white-space:nowrap}.ex-pill--orange{background:#f4e1d1;color:#914023}.ex-pill--gray{background:#eeece5;color:#5b604f}.ex-pill--red{background:#fae3db;color:#9b442e}.ex-pill--blue{background:#e2eceb;color:#476c6a}.ex-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ex-error{padding:16px 20px;background:#f8e5dc;color:#993b24;border:1px solid #edc5b4;border-radius:12px;font-size:1rem;line-height:1.6}.ex-empty{padding:50px 25px;text-align:center;border:1px dashed #c7ccb9;border-radius:var(--ex-radius);color:var(--ex-muted);display:grid;justify-items:center;gap:15px}.ex-empty h3{color:var(--ex-ink)}.ex-empty p{margin:0;max-width:370px}.ex-skeleton{min-height:360px;display:grid;place-items:center;text-align:center;gap:12px}.ex-spinner{display:inline-block;width:25px;height:25px;border:1px solid var(--ex-line);border-top:1px solid var(--ex-orange);border-radius:50%;animation:ex-spin .8s linear infinite}@keyframes ex-spin{to{transform:rotate(360deg)}}
/* The menu */
.ex-menu-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--ex-line);border-bottom:1px solid var(--ex-line);padding:16px 0;margin-bottom:30px}.ex-tabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.ex-tab{border:0;background:transparent;border-radius:99px;padding:11px 17px;font-size:1rem;color:var(--ex-muted);white-space:nowrap}.ex-tab[aria-selected=true],.ex-tab.is-active{background:var(--ex-ink);color:var(--ex-white)}.ex-tab:hover:not([aria-selected=true]){background:#eae9dd}.ex-menu-search{border:0;border-bottom:1px solid #bfc3b1;background:transparent;padding:10px 3px 10px 25px;max-width:180px;font-size:1rem;color:var(--ex-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23777b6c'%3E%3Ccircle cx='6' cy='6' r='4'/%3E%3Cpath d='m9 9 5 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:1px center}.ex-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.ex-dish{min-width:0;animation:ex-reveal .5s both}.ex-dish:nth-child(3n+2){animation-delay:.06s}.ex-dish:nth-child(3n+3){animation-delay:.12s}.ex-dish-media{position:relative;overflow:hidden;background:#dedbc8;border-radius:14px;aspect-ratio:1.24}.ex-dish-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.ex-dish:hover .ex-dish-media img{transform:scale(1.065)}.ex-dish-tag{position:absolute;left:16px;top:16px;background:#fffcf2e8;border-radius:99px;font-size:0.875rem;padding:8px 11px;letter-spacing:.07em;text-transform:uppercase}.ex-dish-add{position:absolute;right:16px;bottom:16px;width:43px;height:43px;background:#fffcf2;border:0;color:var(--ex-ink);box-shadow:0 3px 14px #262b1814;transition:transform .2s}.ex-dish-add:hover{background:var(--ex-orange);color:white;transform:rotate(90deg)}.ex-dish-body{padding:19px 2px 0}.ex-dish-name{font-family:var(--ex-serif);font-size:1.8125rem;line-height:1.05;letter-spacing:-.025em;border:0;padding:0;background:transparent;text-align:left;color:var(--ex-ink)}.ex-price{font-size:1rem;font-weight:600;white-space:nowrap;margin-left:12px}.ex-dish-body p{font-size:1rem;line-height:1.7;color:var(--ex-muted);margin:10px 0}.ex-dish-allergens{font-size:0.875rem;color:var(--ex-muted);letter-spacing:.02em}.ex-menu-intro{display:flex;align-items:center;gap:16px;padding:18px 22px;background:#e9ebdd;border-radius:12px;margin-bottom:24px;font-size:1rem;line-height:1.65}.ex-menu-intro svg{width:26px;height:26px;color:var(--ex-olive)}.ex-menu-intro>div{flex:1}.ex-menu-intro .ex-btn{flex-shrink:0}.ex-cart-launch{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:45;border:0;border-radius:99px;background:var(--ex-ink);color:var(--ex-white);padding:15px 24px;box-shadow:0 9px 40px #25301e30;display:flex;align-items:center;gap:24px;min-width:280px;justify-content:space-between;font:1rem var(--ex-sans);cursor:pointer}.ex-cart-launch b{display:inline-grid;place-items:center;width:24px;height:24px;background:#faf7eb20;border-radius:50%;font-size:0.875rem;margin-right:8px}.ex-cart-launch:hover{background:var(--ex-orange)}.ex-filter-select{border:1px solid var(--ex-line);background:transparent;font-size:1rem;border-radius:99px;padding:10px 14px;max-width:190px;color:var(--ex-ink)}
/* Dialogs & forms */
.ex-dialog{padding:0;border:0;background:var(--ex-white);color:var(--ex-ink);border-radius:22px;width:min(620px,calc(100vw - 32px));max-height:90dvh;box-shadow:0 20px 100px #20281944;font-family:var(--ex-sans);overflow:auto}.ex-dialog::backdrop{background:#20281970;backdrop-filter:blur(6px)}.ex-dialog-head{padding:28px 30px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.ex-dialog h2{font-size:2.375rem}.ex-dialog-body{padding:0 30px 30px}.ex-dialog-media{width:100%;height:210px;object-fit:cover;display:block}.ex-dialog .ex-eyebrow{margin-bottom:12px}.ex-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ex-field{display:grid;gap:8px;font-size:1rem;color:var(--ex-muted);line-height:1.5}.ex-field>span,.ex-field>label{font-weight:600;color:var(--ex-ink)}.ex-field input,.ex-field select,.ex-field textarea,.ex-chat-input{width:100%;background:#f8f6ed;border:1px solid #deded1;border-radius:8px;padding:13px 14px;color:var(--ex-ink);min-height:45px;font-size:1rem;outline:none}.ex-field input:focus,.ex-field select:focus,.ex-field textarea:focus,.ex-chat-input:focus{border-color:var(--ex-olive);box-shadow:0 0 0 3px #6e715714}.ex-field textarea{resize:vertical;min-height:80px}.ex-field--full{grid-column:1/-1}.ex-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:26px;flex-wrap:wrap}.ex-quantity{display:flex;align-items:center;gap:16px;border:1px solid var(--ex-line);border-radius:99px;padding:4px;flex-shrink:0}.ex-quantity button{border:0;background:transparent;width:32px;height:32px;display:grid;place-items:center;font-size:1.125rem;border-radius:50%;color:inherit}.ex-quantity button:hover{background:#e8e9dc}.ex-quantity output{min-width:18px;text-align:center;font-size:1rem;font-weight:600}.ex-check{display:flex;align-items:flex-start;gap:10px;font-size:1rem;line-height:1.6;cursor:pointer}.ex-check input{accent-color:var(--ex-olive);margin-top:2px;min-width:16px;min-height:16px}.ex-lineitem{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid var(--ex-line)}.ex-lineitem>div:first-child{flex:1}.ex-lineitem strong{display:block;font-size:1rem;line-height:1.5}.ex-lineitem small{font-size:0.875rem;color:var(--ex-muted);display:block;margin-top:4px;line-height:1.6}.ex-lineitem .ex-quantity{gap:4px;padding:0}.ex-lineitem .ex-quantity button{width:29px;height:29px}.ex-lineitem .ex-quantity output{font-size:0.875rem}.ex-total-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 0;font-size:1rem}.ex-total-row strong{font-family:var(--ex-serif);font-size:2.25rem;font-weight:400;line-height:1}.ex-qr{display:block;width:180px;height:180px;max-width:100%;margin:20px auto;border:10px solid white;border-radius:10px;background:white}.ex-qr-caption{text-align:center;font-size:1rem;color:var(--ex-muted);line-height:1.7}.ex-code{font-size:1.1875rem;letter-spacing:.18em;font-weight:600;display:block;color:var(--ex-ink);margin:8px 0}.ex-share-url{width:100%;border:1px solid var(--ex-line);border-radius:8px;background:white;font:1rem var(--ex-sans);padding:12px;color:var(--ex-muted)}
/* Booking */
.ex-booking{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,120px);align-items:start}.ex-booking-copy{position:sticky;top:120px}.ex-booking-copy h1{font-size:clamp(58px,6vw,92px)}.ex-booking-copy>p{font-size:1rem;max-width:350px;color:var(--ex-muted)}.ex-booking-visual{height:280px;border-radius:160px 160px 8px 8px;overflow:hidden;margin:35px 0 20px;max-width:380px;position:relative}.ex-booking-visual img{width:100%;height:100%;object-fit:cover}.ex-booking-visual::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 60px #77614b10}.ex-booking-card{border:1px solid var(--ex-line);border-radius:22px;padding:35px;background:#fffcf680}.ex-steps{display:flex;gap:6px;margin-bottom:32px}.ex-step{height:3px;background:#deded1;flex:1;border-radius:3px}.ex-step.is-active{background:var(--ex-olive)}.ex-booking-card h2{font-size:2.25rem;margin-bottom:10px}.ex-booking-card>p{font-size:1rem;color:var(--ex-muted);margin:0 0 25px}.ex-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.ex-slot{border:1px solid var(--ex-line);border-radius:8px;background:transparent;min-height:44px;font-size:1rem;color:var(--ex-ink)}.ex-slot.is-active{background:var(--ex-olive);color:white;border-color:var(--ex-olive)}.ex-slot:hover:not(:disabled){border-color:var(--ex-olive)}.ex-slot:disabled{text-decoration:line-through;background:#ececdf}.ex-booking-summary{display:flex;align-items:center;gap:16px;background:#e9ebdd;border-radius:12px;padding:18px;margin:23px 0}.ex-booking-summary p{margin:0;font-size:1rem}.ex-confirm-icon{width:66px;height:66px;border:1px solid var(--ex-olive);border-radius:50%;display:grid;place-items:center;color:var(--ex-olive);margin-bottom:24px}.ex-confirm-icon svg{width:27px;height:27px}.ex-confirm-number{font-family:var(--ex-serif);font-size:1.5rem;display:block;margin-top:16px}.ex-reservation-list{display:grid;gap:14px;margin-top:22px}.ex-reservation-small{padding:18px;border:1px solid var(--ex-line);border-radius:12px;font-size:1rem}.ex-reservation-small p{margin:5px 0}.ex-booking-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
/* At the table */
.ex-table-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px}.ex-surface{background:#fffcf680;border:1px solid var(--ex-line);border-radius:20px;padding:26px}.ex-surface h2{font-size:2.25rem}.ex-guests{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.ex-guest-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#e9ebdd;border-radius:99px;font-size:1rem}.ex-avatar{width:24px;height:24px;background:var(--ex-olive);border-radius:50%;color:white;display:grid;place-items:center;font-size:0.875rem}.ex-table-aside{position:sticky;top:115px;align-self:start}.ex-join-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0}.ex-join-table{padding:24px 14px;border:1px solid var(--ex-line);border-radius:14px;background:transparent;text-align:center;color:var(--ex-ink);display:grid;gap:8px;justify-items:center}.ex-join-table strong{font-family:var(--ex-serif);font-size:2.0625rem;font-weight:400}.ex-join-table span{font-size:0.875rem;color:var(--ex-muted)}.ex-join-table:hover{border-color:var(--ex-olive);background:#e9ebdd}.ex-course{margin:26px 0 5px;font-size:0.875rem;text-transform:uppercase;letter-spacing:.18em;color:var(--ex-olive)}.ex-table-status{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ex-line);border:1px solid var(--ex-line);border-radius:14px;overflow:hidden;margin:25px 0}.ex-table-status>div{background:var(--ex-white);padding:18px}.ex-table-status small{font-size:0.875rem;color:var(--ex-muted)}.ex-table-status strong{display:block;font-family:var(--ex-serif);font-weight:400;font-size:1.75rem;margin-top:8px}
/* Management desk */
.ex-root.ex-management{padding-top:118px}.ex-management .ex-heading{margin-bottom:24px}.ex-management h1{font-size:clamp(44px,4.4vw,64px)}.ex-management .ex-heading>p{max-width:none}.ex-console-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ex-line);padding-bottom:18px;margin-bottom:25px;flex-wrap:wrap}.ex-console-nav .ex-tabs{gap:4px}.ex-console-nav .ex-tab{display:flex;gap:8px;align-items:center;font-size:1rem;padding:11px 18px}.ex-live{font-size:0.875rem;color:var(--ex-olive);display:flex;align-items:center;gap:8px}.ex-live:before{content:'';width:6px;height:6px;border-radius:50%;background:#738661;box-shadow:0 0 0 4px #73866115}.ex-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ex-line);border-radius:16px;margin-bottom:25px;overflow:hidden}.ex-kpi{padding:22px;border-right:1px solid var(--ex-line);background:#fffcf660}.ex-kpi:last-child{border:0}.ex-kpi span{display:block;font-size:0.875rem;color:var(--ex-muted);margin-bottom:12px}.ex-kpi strong{font-family:var(--ex-serif);font-size:2.1875rem;font-weight:400;line-height:1}.ex-kpi small{font:0.875rem var(--ex-sans);margin-left:8px;color:var(--ex-muted)}.ex-floor-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:22px}.ex-floor{min-width:0;border:1px solid var(--ex-line);border-radius:18px;background:#fffcf650;overflow:hidden}.ex-floor-head{padding:20px 23px;border-bottom:1px solid var(--ex-line);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.ex-floor-head .ex-tabs{gap:2px}.ex-floor-head .ex-tab{padding:8px 13px}.ex-floor-tools{display:flex;gap:6px}.ex-floor-map{height:470px;position:relative;overflow:hidden;background-image:radial-gradient(#c2c7b760 .85px,transparent .85px);background-size:20px 20px;margin:24px;border:1px solid #d0d4c4;border-radius:100px 100px 10px 10px;background-color:#f1f0e6;touch-action:pan-y}.ex-floor-wall{position:absolute;top:16px;left:50%;transform:translateX(-50%);letter-spacing:.22em;text-transform:uppercase;font-size:0.875rem;color:#616b51;white-space:nowrap}.ex-floor-plant{position:absolute;right:16px;top:35px;width:44px;height:44px;opacity:.45;pointer-events:none}.ex-floor-plant svg{width:100%;height:100%}.ex-floor-door{position:absolute;bottom:-1px;left:42%;width:65px;height:8px;background:var(--ex-paper);border-top:2px dashed #a8b096}.ex-map-table{position:absolute;width:78px;height:68px;transform:translate(-50%,-50%);border:1px solid #adb89b;background:#e7ecd9;color:#536147;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;box-shadow:0 5px 0 #b8c4a425;cursor:grab!important;touch-action:none;user-select:none;border-radius:12px;transition:box-shadow .2s,background .2s}.ex-map-table:before,.ex-map-table:after{content:'';position:absolute;width:24px;height:7px;border-radius:3px;background:#c8d1b9;left:50%;transform:translateX(-50%)}.ex-map-table:before{top:-12px}.ex-map-table:after{bottom:-12px}.ex-map-table[data-shape=round]{border-radius:50%;width:74px;height:74px}.ex-map-table[data-shape=rect]{width:96px;height:62px}.ex-map-table[data-status=occupied],.ex-map-table[data-status=ordered],.ex-map-table[data-status=bill_requested]{background:#f4e1c9;border-color:#c7a16f;color:#84602f;box-shadow:0 5px 0 #b9935c20}.ex-map-table[data-status=occupied]:before,.ex-map-table[data-status=occupied]:after,.ex-map-table[data-status=ordered]:before,.ex-map-table[data-status=ordered]:after,.ex-map-table[data-status=bill_requested]:before,.ex-map-table[data-status=bill_requested]:after{background:#dfc5a3}.ex-map-table[data-status=paid],.ex-map-table[data-status=cleaning]{background:#e5e5e0;border-color:#b5b6aa;color:#5c614f}.ex-map-table[data-status=reserved]{background:#e3e9e4;border-color:#a1b6a7;color:#577362}.ex-map-table.is-selected{outline:2px solid var(--ex-orange);outline-offset:6px}.ex-map-table.is-dragging{cursor:grabbing!important;z-index:3;box-shadow:0 12px 20px #44503230;transition:none}.ex-map-table strong{font:1.6875rem var(--ex-serif);line-height:1}.ex-map-table small{font-size:0.875rem;letter-spacing:.03em}.ex-floor-legend{display:flex;gap:17px;flex-wrap:wrap;padding:0 25px 24px;color:var(--ex-muted);font-size:0.875rem}.ex-floor-legend span{display:flex;align-items:center;gap:6px}.ex-legend-dot{width:7px;height:7px;border-radius:50%;background:#a4b68b}.ex-legend-dot.is-occupied{background:#cbab7f}.ex-legend-dot.is-paid{background:#b4b7a9}.ex-sidepanel{border:1px solid var(--ex-line);border-radius:18px;background:var(--ex-white);padding:24px;align-self:start;min-width:0}.ex-sidepanel h2{font-size:2.25rem}.ex-sidepanel .ex-muted{font-size:1rem}.ex-sidepanel .ex-lineitem{gap:8px}.ex-sidepanel .ex-lineitem strong{font-size:1rem}.ex-sidepanel .ex-lineitem small{font-size:0.875rem}.ex-sidepanel .ex-total-row strong{font-size:1.875rem}.ex-panel-actions{display:grid;gap:9px;margin-top:20px}.ex-panel-actions .ex-btn{width:100%;font-size:1rem}.ex-panel-empty{min-height:340px;display:grid;align-content:center;justify-items:center;text-align:center;gap:20px}.ex-panel-empty>svg{width:42px;height:42px;color:#9aa08b}.ex-panel-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.ex-panel-mini>div{padding:14px;background:#f3f2e9;border-radius:9px;font-size:0.875rem;color:var(--ex-muted)}.ex-panel-mini strong{display:block;margin-top:7px;font-size:1.0625rem;color:var(--ex-ink);font-weight:500}.ex-console-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px;flex-wrap:wrap}.ex-console-toolbar .ex-field{max-width:180px}.ex-order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ex-order-card{border:1px solid var(--ex-line);border-radius:16px;background:var(--ex-white);overflow:hidden}.ex-order-card-head{padding:20px;border-bottom:1px solid var(--ex-line);display:flex;justify-content:space-between;align-items:center;gap:12px}.ex-order-card-head h3{font-size:1.75rem}.ex-order-card-body{padding:5px 20px 20px}.ex-order-card .ex-lineitem strong{font-size:1rem}.ex-order-card .ex-lineitem small{font-size:0.875rem}.ex-order-card-foot{padding:16px 20px;background:#f1f1e6;display:flex;justify-content:space-between;align-items:center;gap:12px}.ex-order-card-foot .ex-btn{padding:9px 13px;min-height:36px;font-size:0.875rem}.ex-data-wrap{overflow:auto;border:1px solid var(--ex-line);border-radius:14px}.ex-data{width:100%;border-collapse:collapse;font-size:1rem;text-align:left;background:#fffcf670;white-space:nowrap}.ex-data th{font-size:0.875rem;letter-spacing:.1em;font-weight:600;text-transform:uppercase;color:var(--ex-muted);padding:17px 20px;border-bottom:1px solid var(--ex-line);background:#eceee1}.ex-data td{padding:19px 20px;border-bottom:1px solid var(--ex-line);line-height:1.5}.ex-data tr:last-child td{border:0}.ex-data td small{display:block;font-size:0.875rem;color:var(--ex-muted)}.ex-data td .ex-btn{padding:8px 12px;min-height:34px;font-size:0.875rem}.ex-data td .ex-row{gap:7px}.ex-admin-dishes{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.ex-admin-dish{display:flex;align-items:center;gap:17px;padding:14px;border:1px solid var(--ex-line);border-radius:14px;background:#fffcf680}.ex-admin-dish img{width:78px;height:78px;object-fit:cover;border-radius:8px}.ex-admin-dish>div{flex:1;min-width:0}.ex-admin-dish strong{font-size:1rem;line-height:1.5}.ex-admin-dish p{font-size:0.875rem;color:var(--ex-muted);margin:5px 0}.ex-admin-dish .ex-price{margin:0;font-size:1rem}.ex-admin-dish.is-unavailable{opacity:.6}.ex-admin-dish .ex-row{gap:5px}.ex-join-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ex-join-checks label{padding:14px;border:1px solid var(--ex-line);border-radius:8px}.ex-payment-history{display:grid;gap:8px;font-size:0.875rem;color:var(--ex-muted);margin:15px 0}.ex-notification{padding:13px 15px;border-radius:8px;background:#f4e1d1;font-size:1rem;line-height:1.6;margin:14px 0;color:#83492b}.ex-notification button{padding:0;background:none;border:0;text-decoration:underline;color:inherit;font-size:inherit}
/* Concierge */
.ex-chat-launch{position:fixed;right:25px;bottom:25px;z-index:70;border:1px solid #ffffff30;background:var(--ex-olive);color:var(--ex-white);border-radius:99px;padding:14px 18px;display:flex;align-items:center;gap:10px;box-shadow:0 6px 25px #30392f24;font:1rem var(--ex-sans);cursor:pointer;transition:transform .2s}.ex-chat-launch:hover{transform:translateY(-3px)}.ex-chat-launch svg{width:22px;height:22px}.ex-chat{position:fixed;bottom:85px;right:25px;width:370px;max-width:calc(100vw - 30px);height:540px;max-height:calc(100dvh - 115px);background:var(--ex-white);color:var(--ex-ink);border:1px solid var(--ex-line);border-radius:20px;box-shadow:0 15px 65px #30392f30;z-index:75;display:flex;flex-direction:column;font-family:var(--ex-sans);overflow:hidden;animation:ex-reveal .25s both}.ex-chat[hidden]{display:none}.ex-chat-head{padding:22px;background:var(--ex-olive);color:var(--ex-white);display:flex;align-items:center;justify-content:space-between}.ex-chat-head h3{font-size:1.625rem;letter-spacing:-.02em;margin:0;font-weight:400}.ex-chat-head p{font-size:0.875rem;margin:5px 0 0;opacity:.75;letter-spacing:.045em}.ex-chat-head .ex-icon-btn{border-color:#ffffff30;color:white}.ex-chat-log{padding:20px;flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:13px;scroll-behavior:smooth}.ex-chat-msg{padding:13px 15px;border-radius:13px 13px 13px 2px;background:#eeeede;max-width:95%;font-size:1rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.ex-chat-msg.is-user{background:var(--ex-olive);color:white;align-self:flex-end;border-radius:13px 13px 2px 13px}.ex-chat-suggestions{display:flex;gap:7px;flex-wrap:wrap}.ex-chat-suggestions button{border:1px solid #d6dac6;background:transparent;border-radius:99px;padding:9px 12px;font-size:0.875rem;color:var(--ex-olive);text-align:left}.ex-chat-suggestions button:hover{background:#eeeede}.ex-chat-action{background:#f7eddd;border:1px solid #e4d4b9;padding:14px;border-radius:10px;font-size:1rem;line-height:1.7}.ex-chat-action .ex-btn{margin-top:10px;font-size:0.875rem;padding:9px 13px;min-height:34px}.ex-chat-form{display:flex;gap:9px;padding:14px;border-top:1px solid var(--ex-line)}.ex-chat-input{font-size:1rem;min-width:0;padding:12px}.ex-chat-form button{border:0;border-radius:50%;background:var(--ex-olive);color:white;width:41px;height:41px;display:grid;place-items:center;flex-shrink:0}.ex-chat-foot{font-size:0.875rem;text-align:center;color:var(--ex-muted);padding:0 12px 12px;letter-spacing:.03em}.ex-toast{position:fixed;top:100px;left:50%;transform:translateX(-50%);z-index:150;background:var(--ex-ink);color:var(--ex-white);padding:14px 23px;border-radius:99px;box-shadow:0 7px 30px #30392f20;font:1rem var(--ex-sans);max-width:calc(100vw - 32px);text-align:center;line-height:1.5;animation:ex-reveal .3s both}.ex-toast.is-error{background:#9e462c}@keyframes ex-reveal{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(min-width:1500px){.ex-root{max-width:1720px;margin:auto}.ex-floor-map{height:540px}}
@media(max-width:1100px){.ex-root{padding-left:30px;padding-right:30px}.ex-menu-grid{gap:28px 20px}.ex-dish-name{font-size:1.5625rem}.ex-floor-layout{grid-template-columns:minmax(0,1fr) 280px}.ex-sidepanel{padding:20px}.ex-floor-map{margin:18px;height:440px}.ex-table-layout{grid-template-columns:minmax(0,1fr) 300px}.ex-order-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-booking{gap:40px}.ex-booking-card{padding:28px}.ex-menu-toolbar{flex-wrap:wrap}.ex-menu-toolbar>.ex-row{margin-left:auto}}
@media(max-width:800px){.ex-root{padding-top:115px}.ex-heading{align-items:flex-start;flex-direction:column;gap:15px}.ex-heading>p{max-width:450px;margin:0}.ex-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-menu-toolbar{gap:12px}.ex-menu-toolbar>.ex-row{margin-left:0;width:100%;justify-content:space-between}.ex-booking{grid-template-columns:1fr;gap:28px}.ex-booking-copy{position:static;display:grid;grid-template-columns:1.1fr .9fr;gap:0 22px;align-items:start}.ex-booking-copy .ex-eyebrow{grid-column:1}.ex-booking-copy h1{grid-column:1;font-size:4rem}.ex-booking-copy>p{grid-column:1}.ex-booking-visual{grid-column:2;grid-row:1/5;margin:0;height:260px}.ex-booking-copy>.ex-row{grid-column:1;font-size:0.875rem}.ex-table-layout{grid-template-columns:1fr}.ex-table-aside{position:static}.ex-floor-layout{grid-template-columns:1fr}.ex-sidepanel{display:block}.ex-floor-map{height:440px}.ex-panel-empty{min-height:170px}.ex-kpis{grid-template-columns:repeat(4,1fr)}.ex-kpi{padding:18px 14px}.ex-kpi strong{font-size:1.8125rem}.ex-kpi small{display:block;margin:7px 0 0}.ex-join-grid{grid-template-columns:repeat(3,1fr)}.ex-console-nav{gap:12px}.ex-admin-dishes{grid-template-columns:1fr}.ex-floor-head{padding:15px}.ex-floor-head .ex-btn{font-size:0.875rem;padding:9px 12px;min-height:36px}.ex-chat-launch span{display:none}.ex-chat-launch{width:51px;height:51px;padding:0;justify-content:center;bottom:21px;right:18px}.ex-chat{right:15px;bottom:83px}.ex-cart-launch{bottom:21px;min-width:240px;left:20px;transform:none;font-size:1rem;gap:13px;padding:14px 19px}}
@media(max-width:520px){.ex-root{padding:100px 18px 70px}.ex-root h1{font-size:3.3125rem}.ex-heading{margin-bottom:25px}.ex-heading>p{font-size:1rem}.ex-menu-grid{gap:26px 14px}.ex-dish-media{aspect-ratio:.91;border-radius:10px}.ex-dish-name{font-size:1.4375rem}.ex-dish-body{padding:13px 0 0}.ex-dish-body>.ex-row{display:block}.ex-price{display:block;font-size:1rem;margin:8px 0 0}.ex-dish-body p{font-size:0.875rem;line-height:1.65}.ex-dish-tag{left:9px;top:9px;padding:6px 8px;font-size:0.875rem}.ex-dish-add{width:35px;height:35px;right:10px;bottom:10px}.ex-dish-allergens{font-size:0.875rem}.ex-tabs{gap:3px}.ex-tab{font-size:0.875rem;padding:9px 12px}.ex-menu-toolbar>.ex-tabs{flex-wrap:nowrap;overflow:auto;width:100%;padding-bottom:3px}.ex-menu-search{max-width:155px;font-size:1rem}.ex-filter-select{max-width:145px;font-size:0.875rem;padding:9px 10px}.ex-menu-intro{padding:15px;gap:12px;flex-wrap:wrap;font-size:1rem}.ex-menu-intro>.ex-btn{width:100%}.ex-menu-intro>svg{display:none}.ex-dialog-head{padding:23px 22px 18px}.ex-dialog-body{padding:0 22px 24px}.ex-dialog h2{font-size:2.0625rem}.ex-dialog-media{height:180px}.ex-form-grid{gap:15px;grid-template-columns:1fr}.ex-field--full{grid-column:auto}.ex-form-actions{justify-content:stretch}.ex-form-actions>.ex-btn{flex:1}.ex-booking-copy{display:block}.ex-booking-copy h1{font-size:4.0625rem}.ex-booking-visual{height:180px;max-width:100%;border-radius:100px 100px 8px 8px;margin:25px 0 18px}.ex-booking-card{padding:24px 20px}.ex-booking-card .ex-form-grid{grid-template-columns:1fr 1fr}.ex-booking-card .ex-field--full{grid-column:1/-1}.ex-slots{gap:7px}.ex-slot{font-size:1rem;min-height:43px}.ex-booking-summary{padding:15px;gap:12px}.ex-surface{padding:22px 18px}.ex-table-status>div{padding:14px 12px}.ex-table-status strong{font-size:1.5625rem}.ex-table-status small{font-size:0.875rem}.ex-table-layout{gap:20px}.ex-lineitem{gap:10px}.ex-lineitem strong{font-size:1rem}.ex-lineitem small{font-size:0.875rem}.ex-lineitem>.ex-price{margin:0;min-width:38px;text-align:right}.ex-join-grid{grid-template-columns:repeat(2,1fr);gap:10px}.ex-join-table{padding:20px 12px}.ex-root.ex-management{padding-top:100px}.ex-management h1{font-size:3.0625rem}.ex-kpis{grid-template-columns:repeat(2,1fr)}.ex-kpi{padding:18px}.ex-kpi:nth-child(2){border-right:0}.ex-kpi:nth-child(-n+2){border-bottom:1px solid var(--ex-line)}.ex-kpi strong{font-size:1.9375rem}.ex-kpi small{display:inline-block;margin:0 0 0 6px}.ex-console-nav .ex-tabs{overflow:auto;flex-wrap:nowrap;width:100%}.ex-console-nav .ex-tab{padding:10px 13px;font-size:0.875rem}.ex-console-nav .ex-tab svg{width:14px;height:14px}.ex-console-nav .ex-live{font-size:0.875rem}.ex-floor-map{height:380px;margin:16px 12px}.ex-map-table{width:57px;height:53px}.ex-map-table[data-shape=round]{width:57px;height:57px}.ex-map-table[data-shape=rect]{width:72px;height:52px}.ex-map-table strong{font-size:1.5rem}.ex-map-table small{font-size:0.875rem}.ex-map-table:before,.ex-map-table:after{width:18px;height:5px}.ex-map-table:before{top:-9px}.ex-map-table:after{bottom:-9px}.ex-floor-tools{width:100%;justify-content:flex-start}.ex-floor-legend{padding:0 18px 19px;gap:12px;font-size:0.875rem}.ex-order-grid{grid-template-columns:1fr}.ex-data td,.ex-data th{padding:15px}.ex-admin-dish{padding:11px;gap:12px}.ex-admin-dish img{width:59px;height:66px}.ex-admin-dish strong{font-size:1rem}.ex-admin-dish .ex-icon-btn{width:31px;height:31px;padding:7px}.ex-admin-dish p{font-size:0.875rem}.ex-join-checks{grid-template-columns:1fr 1fr}.ex-toast{top:80px;font-size:1rem;border-radius:14px;min-width:230px}.ex-demo-note{font-size:0.875rem;margin-top:35px}.ex-cart-launch{min-width:220px;max-width:calc(100vw - 95px);padding:14px 17px;left:15px;gap:9px}.ex-cart-launch b{width:20px;height:20px;margin-right:5px}.ex-chat{height:520px}}
@media(prefers-reduced-motion:reduce){.ex-root *,.ex-dialog *,.ex-chat *,.ex-toast{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ex-spinner{animation:ex-spin 1.5s linear infinite!important}}

/* The shared site header occupies its own document row. */
.ex-root{padding-top:65px}.ex-root.ex-management{padding-top:48px}@media(max-width:800px){.ex-root{padding-top:48px}}@media(max-width:520px){.ex-root,.ex-root.ex-management{padding-top:38px}}

.ex-dish-art{width:100%;height:100%;min-height:140px;background:#e9e7d8;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#697359}.ex-dish-art[data-category=Dolci]{background:#ece3cf;color:#715435}.ex-dish-art[data-category=Bevande]{background:#e0e6db;color:#4e654c}.ex-dish-art[data-category=Secondi]{background:#e5ddd0;color:#755738}.ex-art-orbit{position:absolute;width:65%;aspect-ratio:1;border:1px solid #ffffff95;border-radius:50%;box-shadow:0 0 0 17px #ffffff18,0 0 0 19px #ffffff20;transform:rotate(-15deg)}.ex-dish-art>.ex-icon{width:45px;height:45px;opacity:.65;z-index:1}.ex-art-label{font-size:0.875rem;text-transform:uppercase;letter-spacing:.3em;z-index:1}.ex-art-word{font-family:var(--ex-serif);font-size:3.0625rem;letter-spacing:.13em;color:#ffffff60;position:absolute;bottom:15px;left:20px}.ex-dish-art.is-compact{width:78px;height:78px;min-height:0;border-radius:8px;flex-shrink:0;gap:0}.ex-dish-art.is-compact .ex-art-word,.ex-dish-art.is-compact .ex-art-label{display:none}.ex-dish-art.is-compact .ex-icon{width:27px;height:27px}.ex-dialog-media>img{width:100%;height:100%;object-fit:cover}.ex-admin-dish>img{flex-shrink:0}@media(max-width:520px){.ex-art-word{font-size:1.875rem;left:12px;bottom:12px}.ex-art-label{font-size:0.875rem;letter-spacing:.16em}.ex-dish-art>.ex-icon{width:33px;height:33px}.ex-dish-art.is-compact{width:59px;height:66px}.ex-console-nav>.ex-row{width:100%;justify-content:space-between}.ex-console-nav>.ex-row>.ex-btn{font-size:0.875rem;padding:8px 10px}}

.ex-code{overflow-wrap:anywhere;font-size:1.0625rem;letter-spacing:.13em}

/* WCAG 2.1 AA: comfortable type, reflow and an identifiable keyboard focus. */
.ex-root,.ex-dialog,.ex-chat{font-size:1rem;line-height:1.6}
.ex-root{padding-bottom:8rem;overflow-wrap:anywhere}
.ex-root :where(h1,h2,h3),.ex-dialog h2{overflow-wrap:normal;hyphens:auto;line-height:1.08}
.ex-root :where(button,a,input,select,textarea),.ex-dialog :where(button,a,input,select,textarea),.ex-chat :where(button,a,input,select,textarea){scroll-margin-block:7rem 3rem}
.ex-root :where(button,a,input,select,textarea):focus-visible,.ex-dialog :where(button,a,input,select,textarea):focus-visible,.ex-chat :where(button,a,input,select,textarea):focus-visible,.ex-chat-launch:focus-visible,.ex-cart-launch:focus-visible,.ex-floor-map-scroll:focus-visible,.ex-data-wrap:focus-visible{outline:3px solid #a0472c;outline-offset:4px}
.ex-chat-head :focus-visible{outline-color:#fff}
.ex-field :where(input,select,textarea):focus,.ex-chat-input:focus{border-color:var(--ex-ink);box-shadow:0 0 0 2px var(--ex-ink)}
.ex-root :where(input,textarea)::placeholder,.ex-dialog :where(input,textarea)::placeholder,.ex-chat-input::placeholder{color:#626957;opacity:1}
.ex-root :where(button,input,select,textarea),.ex-dialog :where(button,input,select,textarea),.ex-chat :where(button,input,select,textarea){max-width:100%}
.ex-root :where(a,button),.ex-dialog :where(a,button),.ex-chat :where(a,button){white-space:normal;overflow-wrap:anywhere}
.ex-root :where(.ex-heading,.ex-row,.ex-form-grid,.ex-booking,.ex-table-layout,.ex-floor-layout,.ex-panel-mini)>*,.ex-dialog :where(.ex-row,.ex-form-grid)>*{min-width:0}
.ex-root :where(.ex-heading>p,.ex-muted,.ex-dish-body p,.ex-price,.ex-menu-search,.ex-filter-select,.ex-menu-intro,.ex-booking-copy>p,.ex-booking-card>p,.ex-booking-summary p,.ex-reservation-small,.ex-guest-chip,.ex-lineitem strong,.ex-total-row,.ex-panel-actions .ex-btn,.ex-order-card .ex-lineitem strong,.ex-admin-dish strong,.ex-admin-dish .ex-price,.ex-notification,.ex-data),.ex-dialog :where(.ex-muted,.ex-price,.ex-lineitem strong,.ex-total-row,.ex-check,.ex-share-url),.ex-chat :where(.ex-chat-msg,.ex-chat-action,.ex-chat-input,.ex-chat-suggestions button){font-size:1rem}
.ex-root :where(.ex-eyebrow,.ex-small,.ex-demo-note,.ex-pill,.ex-dish-tag,.ex-dish-allergens,.ex-field,.ex-lineitem small,.ex-qr-caption,.ex-join-table span,.ex-course,.ex-table-status small,.ex-live,.ex-kpi span,.ex-kpi small,.ex-floor-wall,.ex-floor-legend,.ex-sidepanel .ex-lineitem small,.ex-panel-mini>div,.ex-data th,.ex-data td small,.ex-admin-dish p,.ex-payment-history,.ex-art-label),.ex-dialog :where(.ex-eyebrow,.ex-field,.ex-lineitem small,.ex-qr-caption,.ex-table-status small),.ex-chat :where(.ex-chat-head p,.ex-chat-foot){font-size:.875rem;line-height:1.6}
.ex-small{font-size:.875rem!important}
.ex-eyebrow,.ex-course,.ex-data th{letter-spacing:.12em}
.ex-btn,.ex-root .ex-btn,.ex-dialog .ex-btn,.ex-chat .ex-btn,.ex-tab,.ex-root .ex-tab,.ex-slot,.ex-root .ex-slot,.ex-field input,.ex-field select,.ex-field textarea{font-size:1rem;line-height:1.5;min-height:2.75rem}
.ex-btn{padding:.75rem 1.375rem}
.ex-root .ex-btn--small,.ex-dialog .ex-btn--small,.ex-chat .ex-btn{padding:.6rem 1rem}
.ex-icon-btn,.ex-root .ex-icon-btn,.ex-dialog .ex-icon-btn,.ex-chat .ex-icon-btn{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;border-color:var(--ex-control)}
.ex-root :where(.ex-btn--light,.ex-filter-select,.ex-slot,.ex-join-table,.ex-join-checks label),.ex-dialog :where(.ex-btn--light,.ex-share-url,.ex-join-checks label),.ex-field input,.ex-field select,.ex-field textarea,.ex-chat-input,.ex-chat-suggestions button{border-color:var(--ex-control)}
.ex-menu-search{border-color:var(--ex-control);min-height:2.75rem;max-width:100%;width:13rem}
.ex-filter-select{max-width:100%;width:13rem;min-height:2.75rem}
.ex-btn--danger:hover:not(:disabled){background:#f4ded2;color:#71341f!important}
.ex-quantity{gap:.5rem;border-color:var(--ex-control);padding:.125rem}
.ex-quantity button,.ex-lineitem .ex-quantity button{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem}
.ex-quantity output,.ex-lineitem .ex-quantity output{font-size:1rem;min-width:1.25rem}
.ex-check{font-size:1rem;min-height:2.75rem;align-items:center}
.ex-check input{width:1.125rem;height:1.125rem;flex-shrink:0;margin-top:0}
.ex-pill{white-space:normal;line-height:1.5;text-align:left}
.ex-dish-name{font-size:1.875rem;line-height:1.12;min-height:2.75rem}
.ex-dish-body>.ex-row{align-items:flex-start;flex-wrap:wrap;gap:.5rem}
.ex-dish-body>.ex-row .ex-price{margin:0}
.ex-dish-tag{max-width:calc(100% - 2rem);line-height:1.4;letter-spacing:.025em}
.ex-dish-add{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem}
.ex-menu-toolbar>.ex-row,.ex-floor-tools,.ex-table-aside .ex-row,.ex-sidepanel .ex-row,.ex-order-card-head,.ex-order-card-foot,.ex-total-row{flex-wrap:wrap}
.ex-menu-toolbar>.ex-tabs,.ex-console-nav .ex-tabs{flex-wrap:wrap;overflow:visible;width:auto}
.ex-menu-intro>div{min-width:10rem}
.ex-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ex-field{min-width:0}
.ex-field input,.ex-field select,.ex-field textarea{min-width:0}
.ex-lineitem{flex-wrap:wrap;column-gap:.75rem;row-gap:.625rem}
.ex-lineitem>div:first-child{min-width:min(100%,10rem);flex:1 1 10rem}
.ex-lineitem>.ex-price{margin:0;text-align:right}
.ex-total-row{line-height:1.5}
.ex-total-row strong{line-height:1.2}
.ex-table-status{grid-template-columns:repeat(3,minmax(0,1fr))}
.ex-table-status strong{font-size:1.875rem;line-height:1.3;overflow-wrap:anywhere}
.ex-booking{grid-template-columns:repeat(2,minmax(0,1fr))}
.ex-booking-card .ex-slots{grid-template-columns:repeat(auto-fit,minmax(4.5rem,1fr))}
.ex-booking-copy h1{font-size:clamp(3.25rem,6vw,5.75rem)}
.ex-dialog{width:min(42.5rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);line-height:1.6}
.ex-dialog-head{align-items:flex-start}
.ex-dialog-head h2{min-width:0;font-size:2.375rem}
.ex-dialog-media{height:auto;aspect-ratio:2.8;min-height:8rem}
.ex-dialog-media>img{display:block}
.ex-qr{height:auto;aspect-ratio:1}
.ex-booking-summary{align-items:flex-start}
.ex-booking-summary>div{min-width:0}
.ex-heading .ex-row{flex-wrap:wrap}
.ex-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.ex-kpi strong{line-height:1.15;overflow-wrap:anywhere}
.ex-kpi small{display:block;margin:.4rem 0 0}
.ex-floor-layout{grid-template-columns:minmax(0,1fr) minmax(20rem,.47fr)}
.ex-floor-map-scroll{overflow:auto;max-width:100%;padding:.5rem;overscroll-behavior-inline:contain}
.ex-floor-map{min-width:36rem;width:calc(100% - 3rem);height:32rem;margin:1.5rem;border-color:var(--ex-control);overflow:visible}
.ex-floor-wall{font-size:.875rem;white-space:normal;width:70%;text-align:center;line-height:1.5;letter-spacing:.12em}
.ex-map-table,.ex-map-table[data-shape=round],.ex-map-table[data-shape=rect]{width:5.75rem;height:5.25rem;min-width:5.75rem;min-height:5.25rem;padding:.25rem;gap:.25rem;border-color:#6c785e}
.ex-map-table[data-shape=round]{width:5.75rem;height:5.75rem}
.ex-map-table[data-shape=rect]{width:6.75rem}
.ex-map-table strong{font-size:1.75rem;line-height:1.1}
.ex-map-table small{font-size:.875rem;line-height:1.3;letter-spacing:0;overflow-wrap:anywhere}
.ex-map-table[data-status=occupied],.ex-map-table[data-status=ordered],.ex-map-table[data-status=bill_requested]{border-color:#937044;color:#715024}
.ex-map-table[data-status=paid],.ex-map-table[data-status=cleaning]{border-color:#7a7f6e;color:#555c48}
.ex-map-table[data-status=reserved]{border-color:#667e6e;color:#496251}
.ex-map-table.is-selected{outline:3px solid var(--ex-orange)}
.ex-floor-legend span{align-items:flex-start;line-height:1.6}
.ex-legend-dot{width:.625rem;height:.625rem;flex-shrink:0;margin-top:.35rem;background:#64784d}
.ex-legend-dot.is-occupied{background:#916b37}
.ex-legend-dot.is-paid{background:#737a64}
.ex-admin-dishes{grid-template-columns:repeat(2,minmax(0,1fr))}
.ex-admin-dish{flex-wrap:wrap}
.ex-admin-dish>div{min-width:min(100%,10rem)}
.ex-admin-dish>.ex-icon-btn{margin-left:auto}
.ex-admin-dish.is-unavailable{opacity:1}
.ex-admin-dish.is-unavailable>img,.ex-admin-dish.is-unavailable>.ex-dish-art{filter:grayscale(1)}
.ex-order-card-head h3{line-height:1.2}
.ex-data{white-space:normal;min-width:36rem}
.ex-data th{line-height:1.5}
.ex-data td .ex-row{flex-wrap:wrap}
.ex-data-wrap{max-width:100%;overscroll-behavior-inline:contain}
.ex-notification button{min-height:2.75rem;line-height:1.5;text-underline-offset:.2em}
.ex-art-label{color:var(--ex-ink);letter-spacing:.13em}
.ex-art-word{color:var(--ex-ink);opacity:.78}
.ex-chat-launch{font-size:1rem;min-height:2.75rem;line-height:1.5;background:var(--ex-olive);border-color:var(--ex-olive)}
.ex-chat{width:27rem;height:38rem;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 7rem);bottom:5.5rem;right:1.5rem}
.ex-chat-head{padding:1.25rem;gap:1rem;flex-shrink:0;align-items:flex-start}
.ex-chat-head>div{min-width:0}
.ex-chat-head h3{font-size:1.75rem;line-height:1.15}
.ex-chat-head p{opacity:1;letter-spacing:0;line-height:1.5}
.ex-chat-head .ex-icon-btn{border-color:#e7e9db}
.ex-chat-head .ex-icon-btn:hover{background:#464a34}
.ex-chat-log{padding:1.25rem;gap:1rem;overscroll-behavior:contain}
.ex-chat-msg{font-size:1rem;line-height:1.7;flex-shrink:0}
.ex-chat-action{font-size:1rem;flex-shrink:0;border-color:#a38d6a}
.ex-chat-suggestions{flex-shrink:0}
.ex-chat-suggestions button{font-size:1rem;line-height:1.5;min-height:2.75rem;color:var(--ex-ink)}
.ex-chat-action .ex-btn{font-size:1rem;min-height:2.75rem}
.ex-chat-form{flex-shrink:0;align-items:center;padding:1rem .875rem}
.ex-chat-input{font-size:1rem;line-height:1.5;padding:.75rem;min-height:2.75rem}
.ex-chat-form button{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem}
.ex-chat-foot{font-size:.875rem;line-height:1.5;letter-spacing:0;flex-shrink:0}
.ex-cart-launch{font-size:1rem;line-height:1.5;min-height:3.5rem;min-width:0;max-width:calc(100vw - 23rem);gap:1rem;padding:.875rem 1.25rem;white-space:normal}
.ex-cart-launch>span{min-width:0;overflow-wrap:anywhere}
.ex-cart-launch b{font-size:.875rem;min-width:1.75rem;min-height:1.75rem;width:auto;height:auto;padding:.125rem}
.ex-toast{font-size:1rem;line-height:1.6;border-radius:1rem;max-height:calc(100dvh - 8rem);overflow:auto}
@media(max-width:1200px){
  .ex-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ex-floor-layout{grid-template-columns:1fr}
  .ex-booking{gap:2.5rem}
  .ex-booking-card{padding:1.5rem}
  .ex-table-layout{grid-template-columns:minmax(0,1fr) minmax(18rem,.7fr)}
}
@media(max-width:900px){
  .ex-booking,.ex-table-layout{grid-template-columns:1fr}
  .ex-booking-copy,.ex-table-aside{position:static}
  .ex-booking-copy{display:block}
  .ex-booking-visual{height:15rem;max-width:100%;margin:1.5rem 0}
  .ex-admin-dishes{grid-template-columns:1fr}
  .ex-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ex-kpi:nth-child(2){border-right:0}
  .ex-kpi:nth-child(-n+2){border-bottom:1px solid var(--ex-line)}
}
@media(max-width:800px){
  .ex-chat-launch{width:3.25rem;height:3.25rem;right:1rem;bottom:1rem}
  .ex-cart-launch{left:1rem;bottom:1rem;max-width:calc(100vw - 5.5rem);transform:none;gap:.5rem}
  .ex-chat{right:1rem;bottom:5.25rem;max-height:calc(100dvh - 6.25rem)}
}
@media(max-width:600px){
  .ex-root{padding-left:1rem;padding-right:1rem;padding-bottom:10rem}
  .ex-root h1{font-size:clamp(3rem,12vw,4.0625rem)}
  .ex-heading{gap:1.25rem}
  .ex-heading>p{font-size:1rem}
  .ex-menu-grid{grid-template-columns:1fr;gap:2.25rem}
  .ex-dish-media{aspect-ratio:1.24;border-radius:.875rem}
  .ex-dish-tag{font-size:.875rem;left:1rem;top:1rem;padding:.5rem .75rem}
  .ex-dish-add{right:1rem;bottom:1rem}
  .ex-dish-body{padding-top:1rem}
  .ex-dish-body>.ex-row{display:flex}
  .ex-dish-name{font-size:2rem}
  .ex-dish-body p{font-size:1rem;line-height:1.7}
  .ex-dish-allergens{font-size:.875rem}
  .ex-menu-toolbar>.ex-tabs,.ex-console-nav .ex-tabs{flex-wrap:wrap;overflow:visible;width:100%}
  .ex-menu-toolbar>.ex-row{flex-wrap:wrap;gap:.75rem}
  .ex-menu-search,.ex-filter-select{max-width:100%;width:100%;flex:1 1 11rem}
  .ex-menu-intro{font-size:1rem;padding:1rem}
  .ex-root .ex-tab{font-size:1rem;padding:.625rem .875rem}
  .ex-booking-card .ex-form-grid,.ex-form-grid{grid-template-columns:1fr}
  .ex-booking-card .ex-field--full{grid-column:auto}
  .ex-booking-card,.ex-surface,.ex-sidepanel{padding:1.25rem}
  .ex-dialog-head{padding:1.25rem 1.125rem;gap:.75rem}
  .ex-dialog-body{padding:0 1.125rem 1.5rem}
  .ex-dialog h2{font-size:2.0625rem}
  .ex-form-actions>.ex-btn{flex:1 1 12rem}
  .ex-dialog-media{height:auto;aspect-ratio:1.9}
  .ex-booking-summary{flex-wrap:wrap;padding:1rem}
  .ex-table-status{grid-template-columns:1fr}
  .ex-table-status>div{padding:.875rem 1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}
  .ex-table-status strong{margin:0;font-size:1.875rem}
  .ex-table-status small{font-size:.875rem}
  .ex-panel-mini{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}
  .ex-join-grid,.ex-join-checks{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}
  .ex-console-nav>.ex-row{flex-wrap:wrap;gap:.875rem}
  .ex-console-nav>.ex-row>.ex-btn{font-size:1rem;padding:.625rem .875rem}
  .ex-console-nav .ex-live{font-size:.875rem}
  .ex-floor-head{padding:1rem}
  .ex-floor-tools{width:100%;flex-wrap:wrap;gap:.5rem}
  .ex-floor-head .ex-btn{font-size:1rem;min-height:2.75rem;padding:.625rem .875rem}
  .ex-floor-map{margin:1.5rem;min-width:36rem;width:36rem;height:32rem}
  .ex-floor-legend{padding:0 1rem 1rem;gap:.75rem;font-size:.875rem}
  .ex-map-table strong{font-size:1.75rem}
  .ex-map-table small{font-size:.875rem}
  .ex-order-grid{grid-template-columns:1fr}
  .ex-admin-dish{padding:1rem;gap:1rem}
  .ex-admin-dish strong{font-size:1rem}
  .ex-admin-dish p{font-size:.875rem}
  .ex-admin-dish .ex-price{font-size:1rem}
  .ex-demo-note{font-size:.875rem;line-height:1.7}
  .ex-chat{inset:1rem;width:auto;max-width:none;height:auto;max-height:none;border-radius:1rem}
  .ex-chat-head{padding:1rem;gap:.75rem}
  .ex-chat-log{padding:1rem}
  .ex-chat-msg{max-width:100%;padding:.75rem}
  .ex-chat-form{padding:.75rem;gap:.5rem}
  .ex-chat-foot{padding:0 .75rem .75rem}
  .ex-cart-launch{border-radius:1.25rem;flex-wrap:wrap;justify-content:center;gap:.25rem .75rem;padding:.75rem 1rem;max-width:calc(100vw - 5.5rem);font-size:1rem}
  .ex-cart-launch b{width:auto;height:auto;font-size:.875rem}
  .ex-toast{font-size:1rem;top:1rem;min-width:0;width:max-content;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem)}
}
@media(prefers-reduced-motion:reduce){
  .ex-root *,.ex-dialog *,.ex-chat *,.ex-toast,.ex-chat-launch,.ex-cart-launch{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .ex-spinner{animation:none!important;border:3px dotted var(--ex-olive)}
}
.ex-root h1{font-size:clamp(3.25rem,6vw,5.875rem)}
.ex-management h1{font-size:clamp(2.75rem,4.4vw,4rem)}
.ex-root h2{font-size:clamp(2.125rem,3vw,3rem)}
.ex-tab[aria-pressed=true]{background:var(--ex-ink);color:var(--ex-white)}
.ex-tab:hover:not([aria-selected=true]):not([aria-pressed=true]){background:#eae9dd}
.ex-tab[aria-pressed=true]:hover{background:var(--ex-ink);color:var(--ex-white)}
.ex-toast{display:flex;align-items:flex-start;gap:1rem;border-radius:1rem;text-align:left}
.ex-toast-text{min-width:0;align-self:center;overflow-wrap:anywhere}
.ex-toast-close{display:inline-grid;place-items:center;flex-shrink:0;width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:.5rem;border:1px solid #d7ddcb;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.ex-toast-close:hover{background:#ffffff20}
.ex-toast-close:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:600px){.ex-root h1{font-size:clamp(3rem,12vw,4.0625rem)}.ex-management h1{font-size:3rem}}
/* Keep intrinsic flex widths from clipping larger user-selected text. */
.ex-menu-intro{flex-wrap:wrap}
.ex-menu-intro>div{min-width:min(100%,10rem)}
.ex-field>span{min-width:0;overflow-wrap:anywhere}
.ex-quantity{max-width:100%;gap:.25rem}
.ex-quantity button,.ex-lineitem .ex-quantity button{width:2.25rem;height:2.25rem;min-width:44px;min-height:44px}
@media(max-width:600px){
  .ex-dialog-head{flex-direction:column-reverse;align-items:stretch;gap:.5rem}
  .ex-dialog-head>.ex-icon-btn{align-self:flex-end}
  .ex-dialog h2{font-size:1.75rem}
}
/* Each table also names its status; colour is only a supporting cue. */
.ex-floor-map{min-width:40rem;height:36rem}
.ex-map-table,.ex-map-table[data-shape=round],.ex-map-table[data-shape=rect]{width:7.5rem;min-width:7.5rem;height:auto;min-height:7.5rem;padding:.5rem;gap:.125rem}
.ex-map-table[data-shape=rect]{width:9rem;min-width:9rem;min-height:7rem}
.ex-map-status{font-size:.875rem;line-height:1.3;letter-spacing:0;max-width:100%;overflow-wrap:anywhere}
/* The whole concierge remains scrollable when enlarged text exceeds its viewport. */
.ex-chat{overflow:auto;overscroll-behavior:contain}
.ex-chat-log{flex:1 0 10rem;min-height:10rem}
.ex-chat-form{flex-wrap:wrap}
.ex-chat-input{flex:1 1 12rem;width:auto}
.ex-chat-form button{margin-left:auto}
@media(max-width:600px){
  .ex-floor-map{width:40rem;height:36rem}
  .ex-chat-head{flex-direction:column-reverse;align-items:stretch;gap:.5rem}
  .ex-chat-head>.ex-icon-btn{align-self:flex-end}
  .ex-chat-head>div{width:100%}
}
.ex-floor-map-scroll:focus-visible{outline-offset:-4px}
.ex-chat-controls{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;flex:0 0 auto;padding:.625rem 1rem;background:var(--ex-olive)}
.ex-chat-controls .ex-icon-btn{border-color:#e7e9db;color:var(--ex-white)}
.ex-chat-controls .ex-icon-btn:hover{background:#464a34}
.ex-chat-controls :focus-visible{outline-color:#fff;outline-offset:3px}
.ex-chat-controls+.ex-chat-head{padding-top:0;display:block}
.ex-dialog{max-width:calc(100vw - 2rem)}
@media(max-width:600px){
  .ex-panel-mini,.ex-join-grid,.ex-join-checks{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}
}
/* Strong enough even where the floor-plan stipple meets its caption. */
.ex-floor-wall{color:#535d46}
/* Booking contact help must not stretch adjacent inputs in the two-column form. */
.ex-booking-card .ex-field{align-content:start}
.ex-booking-card .ex-field .ex-error{margin:0}
.ex-field input[aria-invalid=true]{border-color:#993b24}

/* Dietary information remains readable, keyboard accessible and usable at 200% text size. */
.ex-dietary-panel{margin:0 0 2rem;padding:1.5rem;border:1px solid var(--ex-control);border-radius:1rem;background:#edf0e4}
.ex-dietary-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.ex-dietary-panel-head>div{flex:1 1 23rem;min-width:0}
.ex-dietary-panel-head>.ex-btn{flex:0 1 auto}
.ex-root .ex-dietary-panel h2{font-size:2rem;line-height:1.2;margin:0 0 .75rem}
.ex-dietary-panel p{font-size:1rem;line-height:1.7;max-width:66rem;margin:.5rem 0 0}
.ex-dietary-panel>.ex-small{font-size:.875rem;margin-top:1rem}
.ex-dietary-panel .ex-eyebrow{margin-bottom:.625rem}
.ex-dietary-chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 .5rem;padding:0}
.ex-dietary-chips li{max-width:100%;overflow-wrap:anywhere;background:#fffdf6;border:1px solid #8a927c;border-radius:2rem;color:#37422d;padding:.375rem .875rem;font-size:.875rem;line-height:1.6}
.ex-dietary-reset{display:inline-block;min-height:2.75rem;padding:.5rem 0;border:0;background:transparent;color:#733d25;font:inherit;font-size:1rem;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;text-align:left}
.ex-dietary-fieldset{min-width:0;margin:1.5rem 0;padding:1rem 0;border:0;border-top:1px solid var(--ex-control)}
.ex-dietary-fieldset legend{max-width:100%;overflow-wrap:anywhere;padding:0 .75rem 0 0;font-size:1.0625rem;font-weight:600;line-height:1.6;color:var(--ex-ink)}
.ex-dietary-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem;row-gap:.5rem}
.ex-dietary-checks .ex-check{margin:0;align-items:flex-start;padding:.5rem 0;min-width:0;line-height:1.6;text-transform:none}
.ex-dietary-checks .ex-check input{margin-top:.25rem;flex-shrink:0}
.ex-dietary-checks .ex-check span{min-width:0;overflow-wrap:anywhere}
.ex-dietary-fieldset>.ex-check{margin:.5rem 0;line-height:1.7;align-items:flex-start}
.ex-dietary-fieldset>.ex-check input{margin-top:.25rem}
.ex-dietary-fieldset>.ex-small{margin:.75rem 0}
.ex-dietary-plan{margin:1rem 0;padding:1rem;border:1px solid var(--ex-control);border-radius:.75rem;min-width:0}
.ex-dietary-plan summary{min-height:2.75rem;padding:.5rem 0;font-size:1rem;font-weight:600;line-height:1.6;cursor:pointer;overflow-wrap:anywhere;color:var(--ex-ink)}
.ex-dietary-plan summary:focus-visible{outline:3px solid #a0472c;outline-offset:4px}
.ex-dietary-plan .ex-field{margin-top:1.25rem}
.ex-dietary-plan textarea{min-height:6rem}
.ex-dietary-warning{margin:1.25rem 0;padding:1.25rem;border:1px solid #986647;border-radius:.75rem;background:#f8e8d8;color:#65391f;font-size:1rem;line-height:1.7;overflow-wrap:anywhere}
.ex-dietary-warning p{margin:.5rem 0}
.ex-dietary-warning ul{padding-left:1.25rem;margin:.75rem 0}
.ex-dietary-warning li+li{margin-top:.625rem}
.ex-dish-facts{margin:1rem 0 0;padding-top:.875rem;border-top:1px solid var(--ex-line)}
.ex-root .ex-dish-facts p{font-size:.875rem;line-height:1.7;margin:.25rem 0;color:#535d46}
.ex-dish-review{display:block;font-size:.875rem;line-height:1.6;color:#535d46;margin-top:.625rem}
.ex-dish-match{display:inline-block;margin-top:.875rem;background:#e8eedf;color:#35442b;padding:.5rem .75rem;border-radius:.5rem;font-size:.875rem;line-height:1.6}
.ex-dietary-facts{display:grid;gap:1rem;margin:1.5rem 0}
.ex-dietary-facts>div{padding-bottom:.875rem;border-bottom:1px solid var(--ex-line)}
.ex-dietary-facts dt{font-size:1rem;font-weight:600;line-height:1.6;margin-bottom:.375rem;color:var(--ex-ink)}
.ex-dietary-facts dd{font-size:1rem;line-height:1.7;margin:0;color:#535d46;overflow-wrap:anywhere}
.ex-menu-count{font-size:1rem;line-height:1.7;margin:0 0 1.5rem;color:#535d46}
.ex-line-dietary{font-size:.875rem;line-height:1.7;color:#65391f;background:#f8e8d8;border-left:3px solid #986647;padding:.75rem;margin-top:.75rem;overflow-wrap:anywhere}
.ex-line-dietary strong{font-size:.875rem!important}
.ex-line-dietary ul{margin:.5rem 0 0;padding-left:1.125rem}
@media(max-width:650px){
  .ex-dietary-panel{padding:1.125rem;margin-bottom:1.5rem}
  .ex-dietary-panel-head{gap:1rem}
  .ex-dietary-panel-head>.ex-btn{width:100%}
  .ex-root .ex-dietary-panel h2{font-size:1.875rem}
  .ex-dietary-checks{grid-template-columns:1fr;gap:.125rem}
  .ex-dietary-plan{padding:.875rem}
  .ex-dietary-warning{padding:1rem}
}
