/* Resto One - Material Design 3 components as plain CSS classes (md-*).
   Styled only through the --md- variables of md-tokens.css; icons are Material Symbols
   Rounded ligatures in <span class="md-icon">name</span>. No JavaScript. */
.md-icon{font-family:var(--md-font-icons);font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;
  display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}
.md-icon--fill{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
.md-demo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--md-space-3);padding:var(--md-space-6);background:var(--md-surface);color:var(--md-on-surface);font-family:var(--md-font-sans)}
.md-demo--col{flex-direction:column;align-items:stretch}

/* State layer shared by every interactive element */
.md-state{position:relative;overflow:hidden;isolation:isolate}
.md-state::before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity .15s;z-index:-1;border-radius:inherit}
.md-state:hover::before{opacity:var(--md-state-hover)}
.md-state:focus-visible::before{opacity:var(--md-state-focus)}
.md-state:active::before{opacity:var(--md-state-pressed)}
.md-state:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.md-state::before{transition:none}}

/* Buttons */
.md-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 24px;border-radius:var(--md-shape-full);border:0;
  font:500 14px/20px var(--md-font-sans);letter-spacing:.1px;cursor:pointer;background:transparent;color:var(--md-primary)}
.md-btn .md-icon{font-size:18px;margin-left:-8px}
.md-btn--filled{background:var(--md-primary);color:var(--md-on-primary)}
.md-btn--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.md-btn--outlined{border:1px solid var(--md-outline)}
.md-btn--elevated{background:var(--md-surface-container-low);box-shadow:var(--md-elevation-1)}
.md-btn--text{padding:0 12px}
.md-btn--error{background:var(--md-error);color:var(--md-on-error)}
.md-btn:disabled{background:rgba(128,128,128,0.12);color:var(--md-on-surface);opacity:.38;box-shadow:none;cursor:not-allowed}
.md-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:var(--md-shape-full);background:transparent;color:var(--md-on-surface-variant);cursor:pointer}
.md-icon-btn--filled{background:var(--md-primary);color:var(--md-on-primary)}
.md-icon-btn--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.md-fab{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;min-width:56px;padding:0 16px;border:0;border-radius:var(--md-shape-lg);
  background:var(--md-primary-container);color:var(--md-on-primary-container);box-shadow:var(--md-elevation-3);font:500 14px/20px var(--md-font-sans);letter-spacing:.1px;cursor:pointer}
.md-fab:hover{box-shadow:var(--md-elevation-4)}
.md-fab--extended{padding:0 20px 0 16px}

/* Segmented button */
.md-seg{display:inline-flex}
.md-seg button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;min-width:108px;padding:0 16px;border:1px solid var(--md-outline);
  background:transparent;color:var(--md-on-surface);font:500 14px/20px var(--md-font-sans);letter-spacing:.1px;cursor:pointer}
.md-seg button+button{border-left:0}
.md-seg button:first-child{border-radius:var(--md-shape-full) 0 0 var(--md-shape-full)}
.md-seg button:last-child{border-radius:0 var(--md-shape-full) var(--md-shape-full) 0}
.md-seg button[aria-pressed="true"]{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.md-seg button .md-icon{font-size:18px;display:none}
.md-seg button[aria-pressed="true"] .md-icon{display:inline-block}

/* Chips */
.md-chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 16px;border-radius:var(--md-shape-sm);border:1px solid var(--md-outline);
  background:transparent;color:var(--md-on-surface-variant);font:500 14px/20px var(--md-font-sans);letter-spacing:.1px;cursor:pointer}
.md-chip .md-icon{font-size:18px;margin-left:-8px;color:var(--md-primary)}
.md-chip[aria-pressed="true"]{border-color:transparent;background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.md-chip[aria-pressed="true"] .md-icon{color:var(--md-on-secondary-container)}

/* Table state pill (custom colours) */
.md-status{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px 0 8px;border-radius:var(--md-shape-sm);
  background:var(--md-st-container);color:var(--md-on-st-container);font:500 14px/20px var(--md-font-sans)}
.md-status::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--md-st)}
.is-free{--md-st:var(--md-free);--md-st-container:var(--md-free-container);--md-on-st-container:var(--md-on-free-container)}
.is-reserved{--md-st:var(--md-reserved);--md-st-container:var(--md-reserved-container);--md-on-st-container:var(--md-on-reserved-container)}
.is-arrived{--md-st:var(--md-arrived);--md-st-container:var(--md-arrived-container);--md-on-st-container:var(--md-on-arrived-container)}
.is-seated{--md-st:var(--md-seated);--md-st-container:var(--md-seated-container);--md-on-st-container:var(--md-on-seated-container)}
.is-blocked{--md-st:var(--md-blocked);--md-st-container:var(--md-blocked-container);--md-on-st-container:var(--md-on-blocked-container)}
.md-kbd{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;border:1px solid var(--md-outline);font:500 12px/1 var(--md-font-sans);color:var(--md-on-surface)}

/* Outlined text field */
.md-field{position:relative;display:flex;flex-direction:column;padding-top:8px;min-width:0}
.md-field>span{position:absolute;left:12px;top:0;padding:0 4px;background:var(--md-field-bg,var(--md-surface));font:400 12px/16px var(--md-font-sans);letter-spacing:.4px;color:var(--md-on-surface-variant)}
.md-field>div{display:flex;align-items:center;gap:4px;height:56px;padding:0 16px;border:1px solid var(--md-outline);border-radius:var(--md-shape-xs)}
.md-field input{width:100%;min-width:0;border:0;background:transparent;color:var(--md-on-surface);font:400 16px/24px var(--md-font-sans);letter-spacing:.5px;outline:none}
.md-field em{font:400 16px/24px var(--md-font-sans);font-style:normal;color:var(--md-on-surface-variant)}
.md-field:focus-within>div{border:2px solid var(--md-primary);padding:0 15px}
.md-field:focus-within>span{color:var(--md-primary)}
.md-field small{padding:4px 16px 0;font:400 12px/16px var(--md-font-sans);letter-spacing:.4px;color:var(--md-on-surface-variant)}
.md-field--error>div{border-color:var(--md-error)}
.md-field--error>span,.md-field--error small{color:var(--md-error)}

/* Switch: a native checkbox */
.md-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;font:400 16px/24px var(--md-font-sans);letter-spacing:.5px;color:var(--md-on-surface);cursor:pointer}
.md-switch input{appearance:none;flex:none;position:relative;width:52px;height:32px;margin:0;border-radius:var(--md-shape-full);border:2px solid var(--md-outline);background:var(--md-surface-container-highest);cursor:pointer}
.md-switch input::after{content:"";position:absolute;left:4px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--md-outline);transition:all .15s}
.md-switch input:checked{border-color:var(--md-primary);background:var(--md-primary)}
.md-switch input:checked::after{left:22px;width:24px;height:24px;margin-top:-12px;background:var(--md-on-primary)}
.md-switch input:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.md-switch input::after{transition:none}}

/* Cards and lists */
.md-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--md-shape-md);background:var(--md-surface-container-highest);color:var(--md-on-surface)}
.md-card--outlined{background:var(--md-surface);border:1px solid var(--md-outline-variant)}
.md-card--elevated{background:var(--md-surface-container-low);box-shadow:var(--md-elevation-1)}
.md-list-item{display:flex;align-items:center;gap:16px;min-height:56px;padding:8px 0}
.md-list-item>.md-icon{color:var(--md-on-surface-variant)}
.md-list-item b{display:block;font:400 16px/24px var(--md-font-sans);letter-spacing:.5px;color:var(--md-on-surface)}
.md-list-item small{display:block;font:400 14px/20px var(--md-font-sans);letter-spacing:.25px;color:var(--md-on-surface-variant)}
.md-avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--md-shape-full);
  background:var(--md-st-container,var(--md-primary-container));color:var(--md-on-st-container,var(--md-on-primary-container));font:500 14px/20px var(--md-font-sans)}

/* Snackbar */
.md-snackbar{display:flex;align-items:center;gap:8px;min-height:48px;max-width:560px;padding:0 8px 0 16px;border-radius:var(--md-shape-xs);
  background:var(--md-inverse-surface);color:var(--md-inverse-on-surface);box-shadow:var(--md-elevation-3);font:400 14px/20px var(--md-font-sans);letter-spacing:.25px}
.md-snackbar p{flex:1;margin:14px 0}
.md-snackbar button{height:40px;padding:0 12px;border:0;border-radius:var(--md-shape-full);background:transparent;color:var(--md-inverse-primary);font:500 14px/20px var(--md-font-sans);cursor:pointer}

/* Navigation rail */
.md-rail{display:flex;flex-direction:column;align-items:center;gap:12px;width:80px;padding:20px 0;background:var(--md-surface)}
.md-rail a{display:flex;flex-direction:column;align-items:center;gap:4px;width:80px;text-decoration:none;color:var(--md-on-surface-variant);font:500 12px/16px var(--md-font-sans);letter-spacing:.5px}
.md-rail a>span:first-child{display:flex;align-items:center;justify-content:center;width:56px;height:32px;border-radius:var(--md-shape-full)}
.md-rail a[aria-current="page"]{color:var(--md-on-surface);font-weight:700}
.md-rail a[aria-current="page"]>span:first-child{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.md-rail a[aria-current="page"] .md-icon{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}

/* Tabs */
.md-tabs{display:flex;border-bottom:1px solid var(--md-outline-variant)}
.md-tabs button{position:relative;height:48px;padding:0 16px;border:0;background:transparent;color:var(--md-on-surface-variant);font:500 14px/20px var(--md-font-sans);letter-spacing:.1px;cursor:pointer}
.md-tabs button[aria-selected="true"]{color:var(--md-primary)}
.md-tabs button[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:0;width:48px;margin-left:-24px;height:3px;border-radius:3px 3px 0 0;background:var(--md-primary)}

/* Floating toolbar */
.md-toolbar{display:inline-flex;gap:4px;padding:8px;border-radius:var(--md-shape-xl);background:var(--md-surface-container-high);box-shadow:var(--md-elevation-3)}
.md-toolbar .md-icon-btn--error{color:var(--md-error)}

/* Plan */
.md-plan{position:relative;overflow:hidden;background-color:var(--md-plan-floor);
  background-image:linear-gradient(var(--md-plan-grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--md-plan-grid-major) 1px,transparent 1px),
    linear-gradient(var(--md-plan-grid) 1px,transparent 1px),linear-gradient(90deg,var(--md-plan-grid) 1px,transparent 1px);
  background-size:60px 60px,60px 60px,30px 30px,30px 30px}
.md-wall{position:absolute;background:var(--md-plan-wall)}
.md-zone{position:absolute;border-radius:var(--md-shape-lg);border:1.5px dashed var(--md-primary);background:rgba(124,88,0,0.06)}
.md-zone>span{position:absolute;left:12px;top:8px;font:500 11px/16px var(--md-font-sans);letter-spacing:1.2px;color:var(--md-primary)}
.md-zone--lounge{border-color:var(--md-tertiary);background:rgba(77,101,68,0.06)}
.md-zone--lounge>span{color:var(--md-tertiary)}
.md-table{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--md-shape-md);
  background:var(--md-st-container,var(--md-plan-table));box-shadow:var(--md-elevation-1);cursor:grab}
.md-table--round{border-radius:50%}
.md-table b{font:500 13px/16px var(--md-font-sans);letter-spacing:.1px;color:var(--md-on-st-container,var(--md-on-surface))}
.md-table small{font:500 10px/12px var(--md-font-sans);letter-spacing:.2px;color:var(--md-on-st-container,var(--md-on-surface-variant))}
.md-seat{position:absolute;width:26px;height:11px;border-radius:4px;background:var(--md-st,var(--md-plan-chair))}
.md-pad{position:absolute;border-radius:6px;background:var(--md-plan-leather)}
.md-table.is-selected{outline:2px solid var(--md-primary);outline-offset:14px}
.md-table.is-nudge{outline:2px dashed var(--md-tertiary);outline-offset:4px}
.md-table.is-invalid{outline:2px solid var(--md-error);outline-offset:3px;background:var(--md-error-container)}
.md-table.is-invalid b,.md-table.is-invalid small{color:var(--md-on-error-container)}
.md-obj{position:absolute}
.md-obj--column{border-radius:var(--md-shape-xs);background:var(--md-plan-column)}
.md-obj--counter{border-radius:8px;background:var(--md-plan-wood)}
.md-obj--stool{border-radius:50%;background:var(--md-plan-wood)}
.md-obj--plant{border-radius:50%;background:var(--md-plan-plant);box-shadow:inset 0 0 0 7px var(--md-plan-leaf)}
.md-obj--hearth{border-radius:6px;background:var(--md-plan-hearth)}
.md-obj--hearth::after{content:"";position:absolute;inset:25% 20%;border-radius:8px;background:var(--md-plan-ember)}
.md-obj--sofa{border-radius:12px;background:var(--md-plan-sofa)}
.md-guide{position:absolute;border-left:2px dashed var(--md-tertiary)}
.md-guide--h{border-left:0;border-top:2px dashed var(--md-tertiary)}
.md-guide-pill{position:absolute;display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--md-shape-sm);
  background:var(--md-tertiary-container);color:var(--md-on-tertiary-container);font:500 12px/16px var(--md-font-sans);letter-spacing:.5px;white-space:nowrap}
