:root{font-family:Inter,PingFang SC,sans-serif;color:#21201d;background:#f7f5f0}*{box-sizing:border-box}body{margin:0}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{padding:34px 20px;background:#242c2b;color:#fff;display:flex;flex-direction:column;gap:8px}aside h2{font-size:17px;margin:0 0 24px}.eyebrow{font-size:11px;letter-spacing:.12em;color:#8a7866;margin:0 0 8px}.nav,.logout{border:0;background:transparent;text-align:left;color:#d7ddd7;padding:12px;border-radius:8px;font-size:14px;cursor:pointer}.nav.active,.nav:hover{background:#394540;color:#fff}.logout{margin-top:auto;color:#e7c596}main{padding:38px;max-width:1800px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.header-actions,.toolbar,.actions{display:flex;align-items:center;gap:8px}.toolbar{margin-bottom:16px}.toolbar label{display:flex;gap:8px;align-items:center}h1{margin:0;font-size:28px}button,.file-button{background:#2d5a4b;color:#fff;border:0;border-radius:6px;padding:9px 13px;cursor:pointer;font-size:13px}.secondary{background:#ebe8e1;color:#47433e}.danger{background:#f7e8e3;color:#9c4638}.tiny{padding:6px 9px;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.metrics article,.panel,.resources article{background:#fff;border:1px solid #ebe7df;border-radius:10px;padding:20px}.metrics b{font-size:30px;display:block}.metrics span,.resources span{color:#756e66;font-size:13px}.panel{margin-bottom:18px}.panel h3{margin:0 0 16px;grid-column:1/-1}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th,td{padding:13px 8px;border-bottom:1px solid #eee9e2;vertical-align:top}th{color:#766f68;font-weight:500}.pill{background:#edf1ea;color:#44604f;padding:4px 8px;border-radius:12px;font-size:12px;white-space:nowrap}.pill.CANCELLED{background:#f1eeee;color:#837b78}.pill.PENDING{background:#f5eddd;color:#8a6b2d}strong{color:#a36a23;font-size:11px}.cell-sub{display:block;color:#8a837a;margin-top:4px}.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.resources article{display:flex;flex-direction:column;gap:9px;cursor:pointer}.resources em{font-style:normal;font-size:13px;color:#52765a}.resources em.已预约{color:#a57824}.resources em.使用中{color:#a94e3f}.login{display:grid;place-items:center;min-height:100vh}.login section{background:#fff;padding:42px;border-radius:12px;width:390px;box-shadow:0 15px 40px #0001}.login form{display:grid;gap:12px;margin-top:25px}.login small,.error{color:#b74435}.success{color:#326447}.banner{background:#fff;padding:12px 15px;border-radius:8px;border:1px solid #e7e1d7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label{display:grid;gap:7px;color:#6d665e;font-size:13px}.form-grid input,.form-grid select,.form-grid textarea,header select,.toolbar input,.login input{padding:11px;border:1px solid #dcd5ca;border-radius:6px;background:#fff;color:#222;font:inherit}.form-grid textarea{min-height:80px;resize:vertical}.form-grid .wide{grid-column:1/-1}.form-grid .check{display:flex;align-items:center;grid-template-columns:auto 1fr}.customer-match{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:13px 15px;border-radius:8px;background:#f1f5ef;color:#4d5c52;font-size:13px}.customer-match b{color:#24352d}.customer-match strong{margin-left:5px}.file-button input{display:none}.table-wrap{overflow:auto}.empty{color:#81786e}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{display:none}.metrics{grid-template-columns:repeat(2,1fr)}main{padding:22px}.resources,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}header{align-items:flex-start;gap:12px;flex-direction:column}.toolbar{flex-wrap:wrap}}.table-actions,.panel-title-row{display:flex;align-items:center;gap:8px}.panel-title-row{justify-content:space-between;align-items:flex-start}.panel-title-row h3{margin-bottom:6px}.panel-title-row p{margin:0;color:#756e66;font-size:13px}.customer-history{border-left:4px solid #2d5a4b}.table-wrap table{min-width:min(880px,100%)}@media(max-width:900px){.shell{display:block}aside{padding:12px;display:flex;flex-direction:row;align-items:center;overflow-x:auto;position:sticky;top:0;z-index:10}aside .eyebrow,aside h2{display:none}.nav,.logout{white-space:nowrap;padding:9px 12px}.logout{margin:0 0 0 auto}}.reservation-form input[type=date],.reservation-form input[type=time]{min-height:60px;padding:14px 16px;font-size:18px;cursor:pointer}.reservation-form input[type=date]::-webkit-calendar-picker-indicator,.reservation-form input[type=time]::-webkit-calendar-picker-indicator{width:24px;height:24px;cursor:pointer;transform:scale(1.15)}.form-grid:not(.reservation-form) input[type=date],.form-grid:not(.reservation-form) input[type=time]{min-height:60px;padding:14px 16px;font-size:18px;cursor:pointer}.form-grid:not(.reservation-form) input[type=date]::-webkit-calendar-picker-indicator,.form-grid:not(.reservation-form) input[type=time]::-webkit-calendar-picker-indicator{width:24px;height:24px;cursor:pointer;transform:scale(1.15)}.number-stepper{display:grid;grid-template-columns:58px minmax(80px,1fr) 58px;gap:8px}.number-stepper button{min-height:60px;padding:0;font-size:28px;line-height:1}.number-stepper input{min-width:0;min-height:60px;text-align:center;font-size:20px;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.number-stepper input::-webkit-inner-spin-button,.number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}body{font-size:17px}main{margin:0 auto;padding-top:24px;padding-bottom:24px}.eyebrow{font-size:13px}aside h2{font-size:23px}.nav,.logout{min-height:54px;font-size:18px}aside{background:#342b25;color:#f7f0e6}aside .eyebrow{color:#bca17d}.nav,.logout{color:#eee5d9}.nav.active,.nav:hover{background:#5a493c;color:#fffaf1}.logout{color:#d8b77d}button,.file-button{min-height:44px;padding:11px 16px;font-size:15px}.tiny{min-height:38px;padding:8px 11px;font-size:15px}.toolbar label,.form-grid label{gap:10px;font-size:16px}.form-grid input,.form-grid select,.form-grid textarea,header select,.toolbar input,.login input{min-height:52px;padding:13px 15px;font-size:17px}.form-grid textarea{min-height:110px}.resource-form-actions,.staff-form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.customer-search,.staff-search{max-width:620px}.customer-search input,.staff-search input{flex:1;min-width:240px}.password-field{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:8px}.password-field input{min-width:0}.login .password-field,.login .password-field input{width:100%}.password-field .password-toggle{min-height:52px;padding:0;color:#5e5851}.staff-form,.customer-form{align-items:start}.staff-form>label:not(.check)>input,.staff-form>label:not(.check)>select{height:52px}.customer-form>label:not(.check)>input,.customer-form>label:not(.check)>select{height:60px;min-height:60px}.staff-form .password-field,.staff-form .password-field input,.staff-form .password-field .password-toggle{height:52px}.customer-form .check{min-height:52px}.customer-form .check input{width:18px;height:18px;min-height:0;padding:0}.staff-table tbody td,.customer-table tbody td{vertical-align:middle}.customer-table td:nth-child(2) :is(a,[x-apple-data-detectors]),.customer-history .panel-title-row p:first-of-type :is(a,[x-apple-data-detectors]),.staff-table td:nth-child(3) :is(a,[x-apple-data-detectors]){text-decoration:none!important}.employee-code-editor{display:grid;gap:10px;padding:16px;border:1px solid #ded0c5;border-radius:14px;background:#faf5ef}.employee-code-title,.employee-code-mode,.staff-list-filters{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.employee-code-title span,.employee-code-hint,.employee-code-error{margin:0;color:#6d625b}.employee-code-error{color:#9f2f2f}.employee-code-mode label{display:inline-flex;flex-direction:row;gap:8px;align-items:center}.employee-code-mode input{width:18px;height:18px;min-height:0;padding:0}.employee-code-manual{max-width:320px}.staff-list-panel>h3{margin-bottom:14px}.staff-list-filters{margin-bottom:16px}.staff-list-filters label{display:inline-flex;gap:8px;align-items:center}.staff-list-filters select{min-height:44px;padding:8px 34px 8px 12px;font-size:16px}.employee-code-cell{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:650}.password-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.form-back-row{display:flex;grid-column:1 / -1;justify-content:flex-start;margin-bottom:-4px}.form-back{display:inline-flex;width:fit-content;min-height:42px;align-items:center;gap:8px;padding:8px 12px;color:#4f4942}.back-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.history-back-row{display:flex;justify-content:flex-start;margin-bottom:16px}.panel h3{font-size:21px}table{font-size:16px}th,td{padding:16px 10px}.cell-sub{font-size:14px}.pill{padding:6px 10px;font-size:14px}.metrics span,.resources span{font-size:15px}.customer-match{font-size:16px;line-height:1.6}strong,.customer-match strong{font-size:14px}.empty{font-size:16px}.reservation-form{grid-template-columns:repeat(3,minmax(0,1fr))}.reservation-form h3{order:0}.reservation-form>:is(.reservation-phone,.reservation-name,.reservation-company){align-content:start;grid-auto-rows:max-content}.reservation-form>:is(.reservation-phone,.reservation-name,.reservation-company)>input{height:52px;min-height:52px}.reservation-form>:is(.reservation-phone,.reservation-name,.reservation-company)>small{min-width:0;white-space:normal;overflow-wrap:anywhere}.reservation-form>.reservation-phone{grid-column-start:1}.reservation-form .form-back-row{order:-1}.persistent-form-error{order:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #bb6874;border-radius:10px;background:#f8e9eb;color:#6d202e;font-size:16px;font-weight:600;line-height:1.5}.persistent-form-error button{flex:none;border:1px solid #7a2d3a;background:#fff;color:#6d202e}.reservation-flow-dialog-mask{position:fixed;z-index:1400;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#271d1b75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.reservation-flow-dialog{display:grid;width:min(100%,460px);grid-template-columns:52px minmax(0,1fr);gap:16px;padding:24px;border:1px solid #d8cbc7;border-radius:20px;background:#fffdfb;color:#2e2927;box-shadow:0 24px 70px #2b1c193d}.reservation-flow-dialog-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:50%;background:#f0e3df;color:#5a2630}.reservation-flow-dialog.success .reservation-flow-dialog-icon{background:#eef3e8;color:#49643f}.reservation-flow-dialog.danger .reservation-flow-dialog-icon,.reservation-flow-dialog.error .reservation-flow-dialog-icon{background:#f8e4e7;color:#8a3040}.reservation-flow-dialog-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.reservation-flow-dialog-copy h2{margin:1px 0 8px;color:#3c302d;font-size:22px;line-height:1.3}.reservation-flow-dialog-copy p{margin:0;color:#655b57;font-size:16px;line-height:1.65;overflow-wrap:anywhere;white-space:pre-line}.reservation-flow-dialog-actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:10px;padding-top:4px}.reservation-flow-dialog-actions button{min-width:112px}.room-share-dialog{width:min(100%,620px);grid-template-columns:minmax(0,1fr)}.room-share-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border:1px solid #e1d5cf;border-radius:14px;background:#faf6f3}.room-share-options label:not(.check){display:grid;gap:7px;color:#4f4541;font-weight:650}.room-share-options select,.room-share-options input[type=number]{width:100%;min-height:44px;padding:9px 11px;border:1px solid #d8cbc7;border-radius:9px;background:#fff;color:#2e2927;font:inherit}.room-share-options small{color:#756b67;font-size:13px;font-weight:400;line-height:1.5}.room-share-options .check{display:flex;grid-column:1 / -1;align-items:center;gap:9px;color:#4f4541;font-weight:650}.room-share-warning{margin:0;padding:12px 14px;border-left:3px solid #aa8247;background:#fff8e9;color:#6f5129;line-height:1.6}.room-share-actions{flex-wrap:wrap}.reservation-form .has-error input,.reservation-form .has-error select,.reservation-form .has-error textarea{border-color:#b33f51;box-shadow:0 0 0 3px #b33f5121}.reservation-form .field-error{color:#9b2639;font-size:14px;font-weight:600;line-height:1.45}.reservation-phone{order:1}.reservation-name{order:2}.reservation-company,.reservation-date{order:3}.reservation-time{order:4}.reservation-party{order:6}.reservation-period{order:5}.reservation-period small{color:#6e6e73}.reservation-resource{order:7}.reservation-status{order:8}.reservation-booked-by,.reservation-deposit{order:9}.reservation-customer{order:10;grid-column:1 / -1}.reservation-notes{order:11;grid-column:1 / -1}.reservation-actions{order:12;grid-column:1 / -1}@media(max-width:700px){.reservation-form{grid-template-columns:1fr}.reservation-form>*{grid-column:1}}.status-summary{margin:-4px 0 16px;color:#6d665e;font-size:15px}.restaurant-status table{min-width:1160px}.booking-line{min-height:42px;padding:5px 0;border-bottom:1px dashed #e5dfd5}.booking-line:last-child{border-bottom:0}.booking-line small{display:block;margin-top:3px;color:#8a837a;font-size:13px}.status-actions{display:flex;min-height:42px;align-items:flex-start;gap:6px;padding:2px 0;white-space:nowrap}.pill.available{background:#edf4ec;color:#3f6b4a}.pill.booked{background:#f5eddd;color:#8a6b2d}.pill.in-use{background:#f7e8e3;color:#9c4638}.resources{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.resources article{min-height:130px;justify-content:center;padding:18px;cursor:default}.resources article.editable{cursor:pointer}.resources article b{font-size:20px}.resources article span{font-size:16px;line-height:1.5}.resources article em{font-size:16px;font-weight:600}@media(max-width:1300px){.resources{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.resources{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.resources{grid-template-columns:repeat(2,minmax(0,1fr))}}.restaurant-status-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px 10px}.restaurant-status-card{display:flex;min-width:0;height:auto;min-height:180px;flex-direction:column;padding:9px 11px;border:1px solid #e8e2d8;border-top:5px solid #6e9a77;border-radius:10px;background:#fff}.restaurant-status-card.booked{border-top-color:#c89b45;background:#fffdf8}.restaurant-status-card.in-use{border-top-color:#b75c4c;background:#fffaf8}.resource-card-head{display:flex;min-height:38px;align-items:flex-start;justify-content:space-between;gap:8px;margin:0}.resource-card-head>div{min-width:0}.resource-card-head b{display:block;font-size:17px}.resource-card-head>div>span{display:block;margin-top:2px;color:#756e66;font-size:13px;white-space:nowrap}.resource-card-head .pill{flex:0 0 auto}.resource-empty{margin:auto 0;color:#7f8f84;font-size:15px;text-align:center}.resource-bookings{display:flex;flex:1;flex-direction:column;min-height:0;margin-top:4px;padding-right:2px;overflow-y:visible}.resource-booking{display:flex;flex:1;flex-direction:column}.resource-booking+.resource-booking{margin-top:7px;padding-top:7px;border-top:1px dashed #ded7cc}.booking-customer b{display:block;min-height:21px;font-size:15px}.booking-customer small{display:none}.booking-meta{display:grid;min-height:46px;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:3px 7px;margin:2px 0 4px;font-size:15px;font-weight:600}.booking-meta .pill{justify-self:start}.booking-status-row{display:flex;min-width:0;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:6px}.booking-taker{min-width:0;overflow:hidden;color:#6e6e73;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.restaurant-status-card .status-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:auto;min-height:0;padding:0}.restaurant-status-card .tiny{width:100%;min-width:0;min-height:26px;padding:4px 2px;font-size:12px}.restaurant-status-card .pill{padding:4px 8px;font-size:14px}@media(min-width:1900px){.restaurant-status-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media(max-width:1499px){.restaurant-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1099px){.restaurant-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.restaurant-status-card{min-height:200px}}@media(max-width:560px){.restaurant-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.restaurant-status-card{height:auto;min-height:190px}.resource-bookings{overflow-y:visible}}.resources article.hall-table,.restaurant-status-card.hall-table{border-color:#bfd5ea;background:#f0f7ff}.resources article.private-room,.restaurant-status-card.private-room{border-color:#d9c6e8;background:#faf3ff}.restaurant-status-card.available{border-top-color:#6e9a77}.restaurant-status-card.booked{border-top-color:#c89b45}.restaurant-status-card.in-use{border-top-color:#b75c4c}.resources article em{align-self:flex-start;padding:5px 9px;border-radius:999px;background:#edf4ec}.resources article em.已预约{background:#f5eddd}.resources article em.使用中{background:#f7e8e3}.color-legend{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}.color-legend span{padding:6px 11px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:600}.color-legend .hall-table{border-color:#bfd5ea;background:#f0f7ff;color:#365f86}.color-legend .private-room{border-color:#d9c6e8;background:#faf3ff;color:#735286}.color-legend .available{background:#edf4ec;color:#3f6b4a}.color-legend .booked{background:#f5eddd;color:#8a6b2d}.color-legend .in-use{background:#f7e8e3;color:#9c4638}.restaurant-status-card.available,.resources article.available{border-color:#9fc5a7;background:#e6f4e9}.restaurant-status-card.booked,.resources article.booked{border-color:#d8b365;background:#fff0cc}.restaurant-status-card.in-use,.resources article.in-use{border-color:#d58c7d;background:#fde2dc}.restaurant-status-card.hall-table,.resources article.hall-table{border-left:5px solid #6e9fc7}.restaurant-status-card.private-room,.resources article.private-room{border-left:5px solid #9b78b0}.restaurant-status-card.available.hall-table,.resources article.available.hall-table{border-color:#bfd5ea;border-top-color:#6e9fc7;border-left-color:#6e9fc7;background:#f0f7ff}.restaurant-status-card.available.private-room,.resources article.available.private-room{border-color:#d9c6e8;border-top-color:#9b78b0;border-left-color:#9b78b0;background:#faf3ff}.color-legend .available{border-color:#9fc5a7;background:#e6f4e9}.color-legend .booked{border-color:#d8b365;background:#fff0cc}.color-legend .in-use{border-color:#d58c7d;background:#fde2dc}:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,sans-serif;color:#1d1d1f;background:#f2f2f7;--app-canvas: #f2f2f7;--app-surface: #ffffff;--app-text: #1d1d1f;--app-muted: #6e6e73;--app-border: #d8d8dc;--app-sidebar: #1c1c1e;--app-sidebar-active: #3a302a;--app-primary: #146c52;--app-primary-dark: #0f5843;--app-gold: #b08750;--app-danger: #a8463b}body{background:var(--app-canvas);color:var(--app-text);-webkit-font-smoothing:antialiased}aside{background:var(--app-sidebar);color:#f7f3ee}aside .eyebrow{color:#b99a71}.nav,.logout{color:#eee9e3}.nav.active,.nav:hover{background:var(--app-sidebar-active);color:#fff}.nav.active{box-shadow:inset 3px 0 0 var(--app-gold)}.logout{color:#d4ae75}button,.file-button{border-radius:10px;background:var(--app-primary);transition:background-color .18s ease,box-shadow .18s ease}.secondary{background:#efeff4;color:#3a3a3c}.secondary:hover{background:#e5e5ea}.danger{background:#fbecea;color:var(--app-danger)}.danger:hover{background:#f6ded9}.metrics article,.panel,.resources article,.banner{border-color:var(--app-border);border-radius:10px;box-shadow:none}.metrics span,.resources span,.panel-title-row p,.empty,th{color:var(--app-muted)}.form-grid input,.form-grid select,.form-grid textarea,header select,.toolbar input,.login input{border-color:#d2d2d7;border-radius:10px;background:var(--app-surface)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,header select:focus,.toolbar input:focus,.login input:focus{border-color:var(--app-primary);box-shadow:0 0 0 3px #24634f1f;outline:none}.pill{background:#edf4ef;color:#3f6b4f}.pill.PENDING{background:#fbf3df;color:#8a6525}.restaurant-status-card,.resources article{box-shadow:none}.restaurant-status-card.available.hall-table,.resources article.available.hall-table{border-color:#c8d5da;border-top-color:#6f8993;border-left-color:#6f8993;background:#f0f5f7}.restaurant-status-card.available.private-room,.resources article.available.private-room{border-color:#dacbbc;border-top-color:#8a725e;border-left-color:#8a725e;background:#f6f1eb}.restaurant-status-card.booked,.resources article.booked{border-color:#d9b766;background:#fbf3df}.restaurant-status-card.in-use,.resources article.in-use{border-color:#d48a7f;background:#fbe9e6}.restaurant-status-card.hall-table,.resources article.hall-table{border-left-color:#6f8993}.restaurant-status-card.private-room,.resources article.private-room{border-left-color:#8a725e}.color-legend .hall-table{border-color:#c8d5da;background:#f0f5f7;color:#526d77}.color-legend .private-room{border-color:#dacbbc;background:#f6f1eb;color:#705b4b}.color-legend .available{border-color:#aec8b6;background:#edf4ef;color:#3f6b4f}.color-legend .booked{border-color:#d9b766;background:#fbf3df;color:#8a6525}.color-legend .in-use{border-color:#d48a7f;background:#fbe9e6;color:#a8463b}.pill.pending-resource{color:#4d4d52;background:#e9e9ee}.restaurant-status-card.pending-resource,.resources article.pending-resource{border-color:#c7c7cc;background:#f2f2f7}.status-topline{display:flex;min-width:0;align-items:center;gap:14px;margin-bottom:12px}.restaurant-status .status-topline h3,.restaurant-status .status-topline .status-summary{flex:0 0 auto;margin:0;white-space:nowrap}.status-filter-buttons{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:7px;margin-left:auto}.status-filter-button,.period-filter button{min-height:36px;padding:7px 12px;border:1px solid #d2d2d7;border-radius:999px;background:#fff;color:#4d4d52;font-size:14px;font-weight:600;white-space:nowrap}.status-filter-button{flex:0 0 78px;width:78px;text-align:center}.status-filter-button:hover,.period-filter button:hover{background:#f2f2f7}.status-filter-button.hall{border-color:#c8d5da;background:#f0f5f7;color:#526d77}.status-filter-button.room{border-color:#dacbbc;background:#f6f1eb;color:#705b4b}.status-filter-button.booked{border-color:#d9b766;background:#fbf3df;color:#8a6525}.status-filter-button.in-use{border-color:#d48a7f;background:#fbe9e6;color:#a8463b}.status-filter-button.available{border-color:#aec8b6;background:#edf4ef;color:#3f6b4f}.status-filter-button.pending{border-color:#c7c7cc;background:#f2f2f7;color:#4d4d52}.status-filter-button.unassigned{border-color:#c9b38a;background:#f7f1e5;color:#765a2d}.status-filter-button.active,.period-filter button.active{border-color:var(--app-primary);background:var(--app-primary);color:#fff;box-shadow:none}.status-control-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:10px 12px;border:1px solid #e5e5ea;border-radius:12px;background:#fafafa}.period-filter{display:flex;gap:6px}.status-control-row label{display:flex;align-items:center;gap:6px;color:var(--app-muted);font-size:14px;white-space:nowrap}.status-control-row select{min-height:36px;max-width:150px;padding:6px 30px 6px 10px;border:1px solid #d2d2d7;border-radius:9px;background:#fff;color:var(--app-text);font:inherit}.status-control-row select:disabled{cursor:not-allowed;opacity:.58}.filter-result{color:var(--app-muted);font-size:14px;white-space:nowrap}.meal-summary{display:flex;min-width:0;flex:1;justify-content:flex-end;gap:14px;color:var(--app-muted);font-size:13px;white-space:nowrap}.meal-summary b{color:var(--app-text)}.overview-unassigned-list{min-width:0;min-height:0;flex:1 1 auto;overflow:auto;border:1px solid #e5ded9;border-radius:10px;background:#fff}.overview-unassigned-list .reservation-ledger-row:last-child{border-bottom:0}.overview-unassigned-list>.empty{margin:0;padding:28px 16px;text-align:center}.overview-unassigned-footer{min-width:0;min-height:max-content;grid-column:1 / -1;align-self:start;overflow:visible;border:1px solid #e5ded9;border-radius:10px;background:#fff}.overview-unassigned-footer>header{padding:10px 14px;border-bottom:1px solid #eadfc9;background:#fffaf0}.overview-unassigned-footer h3,.overview-unassigned-footer p{margin:0}.overview-unassigned-footer h3{color:#57321f;font-size:16px;font-weight:600}.overview-unassigned-footer h3 span{display:inline-grid;min-width:24px;height:24px;margin-left:4px;place-items:center;border-radius:12px;background:#f3d89a;color:#624117;font-size:13px}.overview-unassigned-footer p{margin-top:2px;color:#806f62;font-size:13px}.overview-unassigned-footer-records{min-width:0;overflow-x:auto}.overview-unassigned-footer-records .reservation-ledger-row:last-child{border-bottom:0}.restaurant-status-card[role=button]{cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.restaurant-status-card[role=button]:hover{z-index:1;border-color:#a89690;box-shadow:none;transform:none}.restaurant-status-card[role=button]:focus-visible{z-index:1;border-color:var(--app-primary);box-shadow:none;outline:2px solid var(--app-primary);outline-offset:2px;transform:none}.restaurant-status-card[role=button]:focus:not(:focus-visible){outline:none}.resource-detail-mask{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-end;background:#1c1c1e57;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.resource-detail-panel{width:min(560px,94vw);height:100%;padding:28px;overflow-y:auto;border-left:1px solid #d8d8dc;background:#f7f7f9;color:var(--app-text);box-shadow:-18px 0 50px #1c1c1e29}.resource-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.resource-detail-head p{margin:0 0 5px;color:var(--app-muted)}.resource-detail-head h3{margin:0;font-size:28px}.resource-period-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.resource-period-overview article{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:16px;border:1px solid #d8d8dc;border-radius:14px;background:#fff}.resource-period-overview article>span{font-weight:700}.resource-period-overview button{grid-column:1 / -1}.resource-detail-bookings>h4{margin:0 0 12px;font-size:18px}.detail-booking{margin-bottom:12px;padding:18px;border:1px solid #d8d8dc;border-radius:14px;background:#fff}.detail-booking-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-booking-title>b{font-size:19px}.detail-booking dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:16px 0}.detail-booking dl>div{min-width:0}.detail-booking dl>div.wide{grid-column:1 / -1}.detail-booking dt{margin-bottom:3px;color:var(--app-muted);font-size:13px}.detail-booking dd{margin:0;overflow-wrap:anywhere}.detail-booking .status-actions{flex-wrap:wrap}.detail-booking .reservation-share-action{border:1px solid rgba(90,38,48,.2);color:#5a2630}@media(max-width:1500px){.status-topline,.status-control-row,.status-filter-buttons{flex-wrap:wrap}.meal-summary{flex-basis:100%;justify-content:flex-start}}@media(max-width:760px){.reservation-flow-dialog-mask{align-items:end;padding:12px}.reservation-flow-dialog{grid-template-columns:44px minmax(0,1fr);gap:13px;padding:20px;border-radius:18px}.reservation-flow-dialog-icon{width:44px;height:44px}.reservation-flow-dialog-copy h2{font-size:20px}.reservation-flow-dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-flow-dialog-actions button:only-child{grid-column:1 / -1}.room-share-options{grid-template-columns:1fr}.room-share-options .check{grid-column:1}.room-share-actions{grid-template-columns:1fr}.status-filter-buttons,.status-control-row,.meal-summary{width:100%;justify-content:flex-start;flex-wrap:wrap;margin-left:0}.resource-period-overview{grid-template-columns:1fr}}@media(max-width:359px){.detail-booking dl{grid-template-columns:1fr}.detail-booking dl>div.wide{grid-column:1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.compact-header{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:12px;min-height:42px;margin-bottom:10px}.training-mode-badge{display:inline-flex;min-height:28px;align-items:center;padding:3px 9px;border:1px solid #cda85b;border-radius:999px;background:#fff6df;color:#6d261f;font-size:13px;font-weight:750;letter-spacing:0;white-space:nowrap}.opening-mode-card{display:grid;gap:14px}.opening-mode-card p{margin:0;color:var(--app-muted);line-height:1.7}.opening-mode-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.opening-mode-heading h3{margin-bottom:6px}.opening-mode-heading>span{padding:6px 11px;border-radius:999px;background:#f3ead5;color:#76531d;font-weight:700}.opening-mode-card.is-production .opening-mode-heading>span{background:#eee3dc;color:#652732}.opening-mode-state{color:var(--app-text)!important;font-size:20px;font-weight:800}.opening-preserved{padding:10px 12px;border-radius:8px;background:#f7f1ea;color:#51483f!important}.opening-confirm{display:flex;align-items:end;gap:12px}.opening-confirm label{display:grid;flex:1;gap:7px;color:var(--app-muted);font-size:13px}.opening-confirm input{width:100%;padding:11px;border:1px solid var(--app-border);border-radius:8px;background:#fff;color:var(--app-text);font:inherit}.opening-confirm button{min-width:150px}.opening-confirm button:disabled{cursor:not-allowed;opacity:.45}.opening-record{display:grid;gap:6px;padding:12px;border:1px solid var(--app-border);border-radius:8px;color:var(--app-muted);font-size:13px}.opening-record b{color:var(--app-text)}@media(max-width:720px){.opening-confirm{align-items:stretch;flex-direction:column}.opening-confirm button{width:100%}}.compact-header>.eyebrow{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap}.page-context-actions{min-width:0}.page-context-controls,.header-search,.reservation-header-controls label{display:flex;min-width:0;align-items:center;gap:8px}.page-context-controls{justify-content:flex-start}.reservation-header-controls label{flex:none;white-space:nowrap}.page-context-controls>button,.page-context-controls>.file-button,.header-search button,.compact-header .header-actions button{min-height:40px;padding:7px 11px;white-space:nowrap}.reservation-header-controls input,.header-search input{min-width:0;min-height:40px;padding:7px 10px;border:1px solid #d8cbc7;border-radius:10px;background:var(--app-surface);color:var(--app-text);font:inherit}.reservation-header-controls input{width:178px;flex:0 0 178px}.header-search input{width:clamp(150px,15vw,260px)}.customer-header-controls,.staff-header-controls{flex:1}.staff-header-controls .header-search{flex-basis:300px}.staff-header-controls .header-search input{width:clamp(260px,22vw,360px)}.header-search{flex:1 1 210px;margin:0}.header-actions{white-space:nowrap}.password-change-page section{width:min(560px,calc(100vw - 32px))}.password-change-page form label{display:grid;gap:7px;text-align:left}.password-change-page .password-field,.password-change-page .password-field input{width:100%}.password-change-page .password-field .password-toggle{width:48px}.password-change-error{color:var(--app-danger)}.password-change-actions{display:flex;gap:10px}.password-change-actions button{flex:1}.login-recovery-link{justify-self:center;padding:4px 8px;background:transparent;color:var(--app-primary);text-decoration:underline;text-underline-offset:3px}.login-recovery-link:hover{background:transparent;color:var(--app-primary-dark)}.password-reset-page section{width:min(560px,calc(100vw - 32px))}.password-reset-page form label{display:grid;gap:7px;color:var(--app-muted);text-align:left}.password-reset-page input[readonly]{background:#f4f1ed;color:var(--app-muted)}.password-reset-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.password-reset-notice,.password-reset-help{color:var(--app-muted)!important;line-height:1.55}.development-code{margin:0;padding:10px 12px;border:1px solid #d7b467;border-radius:8px;background:#fff8e7;color:#76511e}.development-code b{margin-left:4px;letter-spacing:.16em}.header-mobile-store{display:none}.sidebar-store-picker{display:grid;gap:9px;margin:0 0 30px}.sidebar-store-picker>span{padding-left:10px;color:#b99a71;font-size:12px;letter-spacing:.08em}.sidebar-store-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;min-height:54px;padding:11px 28px 11px 14px;border:1px solid rgba(212,174,117,.5);border-radius:10px;background:#2c2c2e;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23d4ae75' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 7.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;color:#d4ae75;font:inherit;font-size:18px;font-weight:700;cursor:pointer}.sidebar-store-picker select:focus{border-color:#b99a71;box-shadow:0 0 0 3px #b99a712e;outline:none}.sidebar-store-name{margin:0 0 30px;color:#d4ae75;font-size:19px;font-weight:700}.share-config-page{min-width:0}.share-config-intro p,.share-section-help{margin:0;color:#756e66;line-height:1.7}.share-card-cover-preview{display:block;width:min(100%,360px);aspect-ratio:5 / 4;object-fit:contain;background:#fff;border:1px solid #e8dfdc;border-radius:10px}.share-cover-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.share-cover-actions button,.share-cover-actions .file-button{min-height:44px}.share-image-field{display:grid;gap:10px}.share-image-preview,.share-image-placeholder{width:100%;border:1px solid #e2dbd0;border-radius:10px;background:#f4f1eb}.share-image-preview{display:block;height:auto}@media(min-width:769px){.share-config-page .share-image-field .share-image-preview{width:clamp(360px,50vw,560px);max-width:100%;height:auto;object-fit:contain;justify-self:start}}@media(min-width:769px)and (max-width:1120px)and (orientation:portrait){.share-config-page .share-image-field .share-image-preview{width:100%}}.share-image-placeholder{display:grid;height:180px;place-items:center;color:#8a837a}.share-image-field .file-button,.share-media-card .file-button{width:fit-content}.image-upload-requirement{display:block;margin:0;color:#b42318;font-size:12px;font-weight:700;line-height:1.55}.share-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:14px}.share-media-card{display:grid;align-content:start;gap:10px;padding:14px;border:1px solid #e7e1d7;border-radius:10px;background:#fcfbf8}.share-media-card h4{margin:0;font-size:17px}.share-media-card .share-image-placeholder{height:145px}.share-room-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px}.share-room-images>:only-child{grid-column:1 / -1}.room-share-presentation{display:grid;gap:11px;padding:13px;border:1px solid #e1d5cf;border-radius:10px;background:#f8f4f1}.room-share-presentation label:not(.check){display:grid;gap:6px;color:#514743;font-size:14px;font-weight:650}.room-share-presentation select,.room-share-presentation input[type=number]{width:100%;min-height:42px;padding:8px 10px;border:1px solid #d8cbc7;border-radius:8px;background:#fff;color:#2e2927;font:inherit}.room-share-presentation .check{display:flex;align-items:center;gap:8px;color:#514743;font-size:14px;font-weight:650}.room-share-presentation>small{color:#756b67;font-size:12px;line-height:1.55}.share-add-row,.share-inline-editor{display:grid;grid-template-columns:minmax(220px,1fr) 100px auto;gap:8px;align-items:center}.share-add-row{margin-bottom:14px}.share-section-title-form{display:flex;align-items:end;gap:10px;margin:14px 0}.share-section-title-form label{display:grid;min-width:260px;gap:6px}.share-section-title-form input,.share-notice-editor input,.share-notice-editor textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid #d8cbc7;border-radius:8px;background:var(--app-surface);color:var(--app-text);font:inherit}.share-notice-editor{display:grid;gap:16px}.share-notice-editor>label:not(.check),.share-notice-sections article label{display:grid;gap:7px}.share-notice-sections{display:grid;gap:12px}.share-notice-sections article{display:grid;gap:12px;padding:14px;border:1px solid #e2d6d1;border-radius:12px;background:#fcf8f5}.share-notice-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.share-notice-editor textarea{min-height:118px;line-height:1.65;resize:vertical}.share-inline-editor{grid-template-columns:minmax(220px,1fr) 90px auto auto auto;padding:9px 0;border-bottom:1px solid #eee9e2}.share-add-row input,.share-inline-editor input{min-width:0;min-height:44px;padding:9px 11px;border:1px solid #dcd5ca;border-radius:6px;background:#fff;color:#222;font:inherit}.share-package-list{display:grid;gap:9px}.share-package-list article{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eee9e2}.share-package-list article>div{display:grid;gap:3px}.share-package-list article span,.share-package-list article small{color:#756e66}@media(max-width:760px){.share-add-row,.share-inline-editor,.share-package-list article{grid-template-columns:1fr}.share-room-images{grid-template-columns:1fr}.share-section-title-form{align-items:stretch;flex-direction:column}.share-section-title-form label{min-width:0}}@media(min-width:901px){.shell>main{width:100%;min-width:0;max-width:none;margin:0;padding:10px}.restaurant-status{display:flex;flex:1;flex-direction:column;margin-bottom:0;padding-bottom:30px}aside{padding-top:42px}.nav{padding-left:20px;padding-right:20px}}@media(min-width:1500px){.overview-main{display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden}.overview-main .restaurant-status-grid{flex:1;min-height:0;grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}.overview-main .restaurant-status-card{height:100%;min-height:0;overflow:hidden}}@media(min-width:1900px){.overview-main .restaurant-status-grid{grid-template-rows:repeat(4,minmax(0,1fr))}}@media(min-width:1500px)and (max-height:1000px){.overview-main .compact-header{min-height:34px;margin-bottom:6px}.overview-main .restaurant-status{min-height:0;padding:12px 14px 30px;overflow:hidden}.overview-main .status-topline{gap:8px;margin-bottom:7px}.overview-main .restaurant-status .status-topline h3{font-size:18px}.overview-main .restaurant-status .status-summary{font-size:12px}.overview-main .status-filter-buttons,.overview-main .period-filter{gap:5px}.overview-main .status-filter-button,.overview-main .period-filter button{min-height:30px;padding:4px 9px;font-size:12px}.overview-main .status-control-row{gap:7px;margin-bottom:8px;padding:6px 8px}.overview-main .status-control-row label,.overview-main .filter-result{font-size:12px}.overview-main .status-control-row select{min-height:30px;max-width:130px;padding:3px 26px 3px 8px}.overview-main .meal-summary{flex:1 1 auto;flex-basis:auto;justify-content:flex-end;gap:10px;font-size:11px}.overview-main .restaurant-status-grid{gap:5px 8px}.overview-main .restaurant-status-card{padding:5px 8px;border-top-width:4px;border-radius:8px}.overview-main .resource-card-head{min-height:27px;gap:5px}.overview-main .resource-card-head b{font-size:14px}.overview-main .resource-card-head>div>span{margin-top:0;font-size:11px}.overview-main .restaurant-status-card .pill{padding:2px 6px;font-size:11px}.overview-main .resource-bookings{margin-top:2px;overflow:hidden}.overview-main .booking-customer b{min-height:15px;font-size:12px;line-height:1.2}.overview-main .booking-meta{min-height:30px;gap:1px 5px;margin:0 0 2px;font-size:12px;line-height:1.15}.overview-main .booking-taker{font-size:10px}.overview-main .restaurant-status-card .status-actions{gap:2px}.overview-main .restaurant-status-card .tiny{min-height:20px;padding:2px 1px;border-radius:6px;font-size:10px}.overview-main .resource-empty{font-size:12px}}@media(max-width:900px){.shell>aside{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px;overflow:visible;padding:12px}.shell>aside .nav,.shell>aside .logout{width:100%;min-width:0;min-height:52px;margin:0;padding:10px 6px;text-align:center;white-space:nowrap}}@media(max-width:560px){.shell>aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.sidebar-store-picker,.sidebar-store-name{display:none}.header-mobile-store{display:block}.compact-header{width:100%;flex-direction:row;align-items:center}}:root{--app-canvas: #f7f3f1;--app-surface: #fffdfb;--app-text: #211e1d;--app-muted: #6f6663;--app-border: #ded4cf;--app-sidebar: #211619;--app-sidebar-active: #4a2028;--app-primary: #5a2630;--app-primary-dark: #461c24;--app-gold: #aa8247;--app-danger: #963c47}body{min-width:320px;background:var(--app-canvas);color:var(--app-text);font-size:17px}aside{background:var(--app-sidebar);color:#fffaf7}.sidebar-navigation{display:flex;min-height:0;flex:1;flex-direction:column;gap:8px}.mobile-nav-toggle,.mobile-menu-mask{display:none}.sidebar-navigation .account-password-menu-button{margin-top:0}.sidebar-navigation .account-password-menu-button+.logout{margin-top:0}aside .eyebrow,.sidebar-store-picker>span{color:#c9a56b}.nav,.logout{color:#f1e8e5}.nav.active,.nav:hover{background:var(--app-sidebar-active);color:#fffdfb}.logout,.sidebar-store-name{color:#d7b271}.sidebar-store-picker select{border-color:#caa3679e;background-color:#2b1b1f;color:#e0bc7d}button,.file-button{background:var(--app-primary);color:#fffdfb;font-size:16px}button:hover,.file-button:hover{background:var(--app-primary-dark)}.secondary{border:1px solid #a6817d;background:#e2d4cf;color:#493634;box-shadow:0 2px 5px #4936341c}.secondary:hover{background:#d5c1ba}.danger{border:1px solid #a85b66;background:#f0d1d5;color:#7e2935;box-shadow:0 2px 5px #7e293517}.danger:hover{background:#e4bcc2}.password-field .password-toggle{border-color:#d8cbc7;background:var(--app-surface);box-shadow:none}.password-field .password-toggle:hover{background:#f3ece9}.success{color:#795725}.success-toast{position:fixed;top:22px;right:22px;z-index:1200;width:max-content;max-width:min(420px,calc(100vw - 32px));margin:0;padding:13px 18px;border:1px solid #d9c9b8;border-radius:14px;background:#fffdfa;box-shadow:0 12px 32px #38262329;font-size:16px;font-weight:600;line-height:1.45;pointer-events:none;animation:success-toast-in .18s ease-out}@keyframes success-toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.metrics article,.panel,.resources article,.login section,.banner,.restaurant-status-card,.resource-detail-panel,.resource-period-overview article,.detail-booking,.share-media-card{border-color:var(--app-border);background:var(--app-surface)}.metrics span,.resources span,.panel-title-row p,.empty,th,.share-config-intro p,.share-section-help,.share-package-list article span,.share-package-list article small{color:var(--app-muted)}.form-grid input,.form-grid select,.form-grid textarea,header select,.toolbar input,.login input,.share-add-row input,.share-inline-editor input,.share-section-title-form input,.share-notice-editor input,.share-notice-editor textarea,.status-control-row select{border-color:#d8cbc7;background:var(--app-surface);color:var(--app-text)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,header select:focus,.toolbar input:focus,.login input:focus,.share-add-row input:focus,.share-inline-editor input:focus,.share-section-title-form input:focus,.share-notice-editor input:focus,.share-notice-editor textarea:focus{border-color:var(--app-primary);box-shadow:0 0 0 3px #5a263021}.pill,.pill.CONFIRMED,.pill.booked{background:#d4eedc;color:#356c4a}.pill.PENDING,.pill.pending-resource{background:#ead8f2;color:#70478a}.pill.ARRIVED,.pill.in-use{background:#f5cdd2;color:#8a3f48}.pill.COMPLETED,.pill.CANCELLED{background:#eee9e8;color:#625a57}.pill.available{background:#d2ece9;color:#356d68}.resource-empty,.booking-taker,.reservation-period small,.password-field .password-toggle,.form-back{color:var(--app-muted)}.customer-match{background:#f5eeec;color:#4a403d}.customer-match b{color:#5a2630}.customer-history{border-left-color:var(--app-primary)}.restaurant-status-card.available.hall-table,.resources article.available.hall-table{border-color:#5e9ed7;background:#daeefe;--reminder-complement: #feebda}.restaurant-status-card.available.private-room,.resources article.available.private-room{border-color:#cf935f;background:#f9e5d4;--reminder-complement: #d4e7f9}.restaurant-status-card.booked,.resources article.booked{background:#ddf1e3;--reminder-complement: #f1ddeb}.restaurant-status-card.in-use,.resources article.in-use{background:#f7d7db;--reminder-complement: #d7f7f3}.restaurant-status-card.pending-resource,.resources article.pending-resource{background:#efdef7;--reminder-complement: #e5f7de}.restaurant-status-card.hall-table,.resources article.hall-table{border-color:#5e9ed7}.restaurant-status-card.private-room,.resources article.private-room{border-color:#cf935f}.restaurant-status-card.takeout{border-color:#8e8e93;background:#f5f5f9;--reminder-complement: #f9f9f5;cursor:default}.restaurant-status-card.takeout .pill.takeout-resource{background:#e5e5ea;color:#48484a}.restaurant-status-card.takeout .takeout-note{color:#636366;text-align:center}.restaurant-status-grid .restaurant-status-card{border-width:2px;border-radius:10px;box-shadow:none}.restaurant-status-grid .restaurant-status-card.available.hall-table{border-color:#5e9ed7}.restaurant-status-grid .restaurant-status-card.available.private-room{border-color:#cf935f}.resources article{min-height:130px;justify-content:space-between;gap:6px;border-width:2px;border-radius:10px;box-shadow:none;transition:border-color .16s ease,background-color .16s ease}.resources article.hall-table{border-width:2px;border-color:#5e9ed7;background:#daeefe;--reminder-complement: #feebda}.resources article.private-room{border-width:2px;border-color:#cf935f;background:#f9e5d4;--reminder-complement: #d4e7f9}.resources article.takeout{border-width:2px;border-color:#8e8e93;background:#f5f5f9;--reminder-complement: #f9f9f5}.resources article.editable:hover{box-shadow:none;transform:none}.restaurant-status-card.hall-table[role=button]:hover,.resources article.hall-table.editable:hover{border-color:#4e92d0}.restaurant-status-card.private-room[role=button]:hover,.resources article.private-room.editable:hover{border-color:#c68958}.resources article.takeout.editable:hover{border-color:#636366}.resource-type-note{margin:0;padding:10px 12px;border:1px solid #d8d8dc;border-radius:8px;background:#f2f2f7;color:#5b5b60;font-size:13px;line-height:1.5}.resource-admin-card-head,.resource-admin-meta{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:10px}.resource-admin-card-head b{min-width:0;overflow:hidden;color:#2b2020;text-overflow:ellipsis;white-space:nowrap}.resources article .resource-admin-area{min-width:0;overflow:hidden;color:#746864;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.resources article .resource-admin-meta>span{color:#4f4542;font-size:15px;font-weight:600}.resources article .resource-admin-meta>em{padding:0;background:transparent;color:#746864;font-size:14px;font-weight:500}.resources-main .resource-list-panel{display:flex;min-height:0;flex:1;flex-direction:column;margin-bottom:10px;overflow:hidden}.resources-main .resource-list-panel>h3{flex:none;margin-bottom:10px}.resources-main .resources.viewport-grid{min-height:0;flex:1;gap:8px;overflow-x:hidden;overflow-y:auto}.resources-main .resource-admin-meta>span{flex:none;white-space:nowrap}.resources-main .resource-admin-meta>em{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.resources-main .resources.viewport-grid article{min-height:0;height:100%;gap:4px;padding:9px 12px;overflow:hidden}.resources-main:has(.form-grid){height:auto;min-height:100dvh;overflow:visible}.resources-main:has(.form-grid) .resource-list-panel{flex:none;overflow:visible}.resources article em{background:#eee9e8;color:#625a57}.resources article em.已预约{background:#d4eedc;color:#356c4a}.resources article em.使用中{background:#f5cdd2;color:#8a3f48}.color-legend .hall-table,.status-filter-button.hall{border-color:#5e9ed7;background:#d5e9fa;color:#365f86}.color-legend .private-room,.status-filter-button.room{border-color:#cf935f;background:#f7dfc9;color:#7a4f2d}.status-filter-button.takeout{border-color:#8e8e93;background:#f2f2f7;color:#48484a}.color-legend .available,.status-filter-button.available{border-color:#5baaa4;background:#d2ece9;color:#356d68}.color-legend .booked,.status-filter-button.booked{border-color:#62ad79;background:#d4eedc;color:#356c4a}.color-legend .in-use,.status-filter-button.in-use{border-color:#d97884;background:#f5cdd2;color:#8a3f48}.status-filter-button.pending{border-color:#a576bd;background:#ead8f2;color:#70478a}.status-filter-button.all:not(.active),.period-filter button:not(.active){border-color:#c7c7cc;background:#f2f2f7;color:#48484a}.status-filter-button.active{box-shadow:inset 0 0 0 1px currentColor;font-weight:750}.status-filter-button.all.active{border-color:#8e8e93;background:#e5e5ea;color:#1d1d1f}.status-filter-button.hall.active{border-color:#5e9ed7;background:#d5e9fa;color:#365f86}.status-filter-button.room.active{border-color:#cf935f;background:#f7dfc9;color:#7a4f2d}.status-filter-button.takeout.active{border-color:#636366;background:#e5e5ea;color:#1d1d1f}.status-filter-button.booked.active{border-color:#62ad79;background:#d4eedc;color:#356c4a}.status-filter-button.in-use.active{border-color:#d97884;background:#f5cdd2;color:#8a3f48}.status-filter-button.available.active{border-color:#5baaa4;background:#d2ece9;color:#356d68}.status-filter-button.pending.active{border-color:#a576bd;background:#ead8f2;color:#70478a}.period-filter button.active{border-color:var(--app-primary);background:var(--app-primary);color:#fff;box-shadow:none}.status-control-row{border-color:#e2d8d4;background:#fbf8f6}.notice-visibility-switch{display:inline-flex;min-height:44px;align-items:center;gap:11px;color:#493634;cursor:pointer}.notice-visibility-switch input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.notice-switch-control{position:relative;width:48px;height:28px;flex:none;border:1px solid #9b8983;border-radius:999px;background:#d8cfcb;transition:background-color .18s ease,border-color .18s ease}.notice-switch-control:after{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fffdfb;box-shadow:0 1px 4px #2d1f1d3d;content:"";transition:transform .18s ease}.notice-visibility-switch input:checked+.notice-switch-control{border-color:var(--app-primary);background:var(--app-primary)}.notice-visibility-switch input:checked+.notice-switch-control:after{transform:translate(20px)}.notice-visibility-switch input:focus-visible+.notice-switch-control{outline:3px solid rgba(90,38,48,.18);outline-offset:2px}.share-image-preview,.share-image-placeholder{border-color:#ded4cf;background:#f3eeeb}.eyebrow,.sidebar-store-picker>span,.cell-sub,.booking-line small,.resource-card-head>div>span,.booking-taker,.detail-booking dt,.status-summary,.meal-summary,.filter-result,.status-control-row label{font-size:15px}strong,.customer-match strong,.pill,.color-legend span,.status-filter-button,.period-filter button{font-size:15px}.restaurant-status-card .tiny,.restaurant-status-card .pill{min-height:34px;padding:6px 8px;font-size:15px}.resource-card-head b,.booking-customer b,.booking-meta,.resource-empty{font-size:16px}@media(min-width:1500px)and (max-height:1000px){.overview-main .restaurant-status .status-topline h3{font-size:20px}.overview-main .restaurant-status .status-summary,.overview-main .status-control-row label,.overview-main .filter-result,.overview-main .meal-summary,.overview-main .resource-card-head>div>span,.overview-main .booking-taker,.overview-main .resource-empty{font-size:14px}.overview-main .status-filter-button,.overview-main .period-filter button,.overview-main .restaurant-status-card .pill,.overview-main .restaurant-status-card .tiny{min-height:32px;padding:5px 7px;font-size:14px}.overview-main .resource-card-head b,.overview-main .booking-customer b,.overview-main .booking-meta{font-size:15px}.overview-main{height:auto;min-height:100dvh;overflow:visible}.overview-main .restaurant-status{overflow:visible}.overview-main .restaurant-status-grid{flex:none;grid-template-rows:none;grid-auto-rows:minmax(190px,auto)}.overview-main .restaurant-status-card{height:auto;min-height:190px;padding:10px 12px;overflow:visible}.overview-main .resource-bookings{overflow:visible}}.restaurant-status-card{min-height:118px;cursor:pointer}.resource-card-head{min-height:32px;align-items:center}.resource-card-head>b{min-width:0;overflow:hidden;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.restaurant-status-card .pill{min-height:30px;padding:5px 8px;font-size:15px;line-height:1.2}.resource-bookings{gap:6px;margin-top:5px}.resource-booking-summary{display:grid;min-width:0;gap:3px}.resource-booking-summary+.resource-booking-summary{margin-top:2px;padding-top:7px;border-top:1px dashed #ded7cc}.booking-summary-line,.booking-summary-customer{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:7px;font-size:15px}.booking-summary-line>b,.booking-summary-customer>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-summary-line .pill{min-height:26px;padding:3px 6px;font-size:14px}.booking-summary-customer>span{flex:none;color:#5f5856;font-weight:600}.booking-summary-customer em{color:#9a681f;font-style:normal}.resource-booking-summary .booking-taker{font-size:14px}.booking-summary-line .booking-taker{overflow:hidden;max-width:50%;flex:0 1 auto;text-overflow:ellipsis;white-space:nowrap}.booking-summary-notes{display:flex;min-width:0;gap:7px;color:#6f2d36;font-size:14px}.booking-summary-notes>span{min-width:0;overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.booking-summary-company{min-width:0;overflow:hidden;color:#5f5856;font-size:clamp(12px,6.5cqw,14px);line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.booking-summary-notes.compact-note{display:block;width:min(9em,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-summary-notes.compact-note>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-summary-line{gap:4px}@media(min-width:1500px)and (max-height:1000px){.overview-main .restaurant-status-grid{grid-auto-rows:minmax(118px,auto)}.overview-main .restaurant-status-card{min-height:118px;padding:7px 9px}.overview-main .resource-card-head>b,.overview-main .booking-summary-line,.overview-main .booking-summary-customer{font-size:15px}.overview-main .resource-booking-summary .booking-taker,.overview-main .booking-summary-line .pill{font-size:14px}}@media(max-width:1099px){.restaurant-status-card{min-height:124px}}@media(max-width:1180px){.compact-header{grid-template-columns:minmax(0,1fr) max-content}.compact-header>.eyebrow{grid-column:1;grid-row:1}.compact-header>.header-actions{grid-column:2;grid-row:1}.compact-header>.page-context-actions:not(:empty){grid-column:1 / -1;grid-row:2}.reservations-main .reservation-header-controls{flex-wrap:wrap}.compact-header:has(.resource-header-controls){grid-template-columns:max-content minmax(0,1fr) max-content}.compact-header:has(.resource-header-controls)>.page-context-actions:not(:empty){grid-column:2;grid-row:1}.compact-header:has(.resource-header-controls)>.header-actions{grid-column:3;grid-row:1}}@media(max-width:560px){.staff-header-controls{flex-wrap:wrap}.staff-header-controls .header-search{flex-basis:100%}.staff-header-controls .header-search input{width:100%}.restaurant-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.restaurant-status-card{min-height:124px;padding:8px}}@media(min-width:1280px),(min-width:1024px)and (max-width:1279px)and (orientation:landscape){.shell{grid-template-columns:170px minmax(0,1fr)}.shell>aside{padding-right:14px;padding-left:14px}.shell>aside .nav,.shell>aside .logout{padding-right:12px;padding-left:12px}}@media(min-width:901px){.restaurant-status-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.overview-main{display:flex;min-height:0;height:100dvh;flex-direction:column;overflow:hidden}.overview-main .restaurant-status{min-height:0;padding-bottom:30px;overflow:hidden}.overview-main .restaurant-status-grid{flex:1;min-height:0;grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}.overview-main .restaurant-status-card{min-height:0;height:100%;padding:6px 8px;overflow:hidden}.overview-main .resource-card-head{min-height:28px}.overview-main .resource-bookings{gap:2px;margin-top:2px}.overview-main .resource-booking-summary{gap:1px}.reservations-main{display:flex;min-height:0;height:100dvh;flex-direction:column;overflow:hidden}.reservations-main .toolbar{flex:none}.reservations-main .restaurant-status{min-height:0;padding-bottom:30px;overflow:hidden}.reservations-main .restaurant-status-grid{flex:1;min-height:0;grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}.reservations-main .restaurant-status-card{min-height:0;height:100%;padding:6px 8px;overflow:hidden}.reservations-main .resource-card-head{min-height:28px}.reservations-main .resource-bookings{gap:2px;margin-top:2px}.reservations-main .resource-booking-summary{gap:1px}.reservations-main:has(.reservation-form){height:auto;min-height:100dvh;overflow:visible}.reservations-main:has(.reservation-form) .restaurant-status{overflow:visible}.reservations-main:has(.reservation-form) .restaurant-status-grid{flex:none;grid-template-rows:none;grid-auto-rows:minmax(118px,auto)}.reservations-main:has(.reservation-form) .restaurant-status-card{height:auto;min-height:118px;overflow:visible}}@media(min-width:901px)and (max-height:800px){.overview-main .compact-header{min-height:36px;margin-bottom:4px}.overview-main .restaurant-status{padding:8px 12px 30px}.overview-main .status-topline{flex-wrap:nowrap;gap:8px;margin-bottom:6px}.overview-main .restaurant-status .status-topline h3{font-size:18px}.overview-main .restaurant-status .status-summary{font-size:14px}.overview-main .status-filter-buttons{gap:5px}.overview-main .status-filter-button{width:70px;min-height:32px;flex-basis:70px;padding:4px 6px}.overview-main .status-control-row{flex-wrap:nowrap;gap:6px;margin-bottom:6px;padding:5px 7px}.overview-main .period-filter{gap:4px}.overview-main .period-filter button{min-height:32px;padding:4px 8px}.overview-main .status-control-row select{min-height:32px;max-width:120px;padding:4px 24px 4px 7px}.overview-main .meal-summary{flex-basis:auto;gap:8px;font-size:14px}.overview-main .restaurant-status-grid{gap:5px 8px}.reservations-main .compact-header{min-height:36px;margin-bottom:4px}.reservations-main .toolbar{gap:8px;margin-bottom:6px}.reservations-main .restaurant-status{padding:8px 12px 30px}.reservations-main .status-topline{flex-wrap:nowrap;gap:8px;margin-bottom:6px}.reservations-main .restaurant-status .status-topline h3{font-size:18px}.reservations-main .restaurant-status .status-summary{font-size:14px}.reservations-main .status-filter-buttons{gap:5px}.reservations-main .status-filter-button{width:70px;min-height:32px;flex-basis:70px;padding:4px 6px}.reservations-main .status-control-row{flex-wrap:nowrap;gap:6px;margin-bottom:6px;padding:5px 7px}.reservations-main .period-filter{gap:4px}.reservations-main .period-filter button{min-height:32px;padding:4px 8px}.reservations-main .status-control-row select{min-height:32px;max-width:120px;padding:4px 24px 4px 7px}.reservations-main .meal-summary{flex-basis:auto;gap:8px;font-size:14px}.reservations-main .restaurant-status-grid{gap:5px 8px}}@media(min-width:901px){.overview-main,.reservations-main{height:100dvh;min-height:0;overflow:hidden}.overview-main .compact-header,.reservations-main .compact-header{min-height:36px;margin-bottom:4px}.overview-main .compact-header .header-actions button,.reservations-main .compact-header .header-actions button{min-height:34px;padding:5px 10px}.reservations-main>.toolbar{min-height:38px;align-items:center;gap:8px;margin-bottom:5px}.reservations-main>.toolbar label{flex-direction:row;align-items:center;gap:7px}.reservations-main>.toolbar input,.reservations-main>.toolbar button{min-height:34px;padding-top:5px;padding-bottom:5px}.overview-main .restaurant-status,.reservations-main .restaurant-status{min-height:0;padding:7px 10px 20px;overflow:hidden}.overview-main .status-topline,.reservations-main .status-topline{flex-wrap:nowrap;gap:8px;margin-bottom:5px}.overview-main .restaurant-status .status-topline h3,.reservations-main .restaurant-status .status-topline h3{font-size:18px}.overview-main .status-filter-buttons,.reservations-main .status-filter-buttons{flex:1;gap:5px}.overview-main .status-filter-button,.reservations-main .status-filter-button{display:flex;width:auto;min-width:0;min-height:32px;flex:1 1 72px;align-items:center;justify-content:center;gap:5px;padding:4px 7px;font-size:14px}.status-filter-button>b{min-width:20px;padding:1px 5px;border-radius:999px;background:#ffffffa3;color:inherit;font-size:12px;line-height:1.35}.status-filter-button.active>b{background:#ffffff2e}.overview-main .status-control-row,.reservations-main .status-control-row{flex-wrap:nowrap;gap:7px;margin-bottom:6px;padding:0;border:0;border-radius:0;background:transparent}.overview-main .period-filter,.reservations-main .period-filter{gap:4px}.overview-main .period-filter button,.reservations-main .period-filter button{min-height:32px;padding:4px 8px;font-size:14px}.overview-main .status-control-row select,.reservations-main .status-control-row select{min-height:32px;max-width:190px;padding:4px 25px 4px 7px}.overview-main .meal-summary,.reservations-main .meal-summary{display:grid;min-width:235px;flex:1 1 360px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;font-size:12px;line-height:1.3;white-space:nowrap}.restaurant-status-grid.viewport-grid{min-height:0;flex:1;gap:8px}.restaurant-status-grid.viewport-grid .restaurant-status-card{min-height:0;height:100%;padding:6px 8px;overflow:hidden}.restaurant-status-grid.viewport-grid .resource-card-head{min-height:27px}.restaurant-status-grid.viewport-grid .resource-bookings{gap:2px;margin-top:2px}.restaurant-status-grid.viewport-grid .resource-booking-summary{gap:1px}.restaurant-status-grid.viewport-grid .booking-summary-notes{line-height:1.2}.reservations-main:has(.reservation-form){height:auto;min-height:100dvh;overflow:visible}.reservations-main:has(.reservation-form) .restaurant-status{overflow:visible}}@media(min-width:901px)and (max-width:1279px){.overview-main .meal-summary,.reservations-main .meal-summary{min-width:210px;grid-template-columns:1fr;font-size:11px}.overview-main .status-filter-button,.reservations-main .status-filter-button{gap:3px;padding-right:5px;padding-left:5px}.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card{padding:4px 6px}.overview-main .restaurant-status-grid.viewport-grid .resource-card-head,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head{min-height:22px}.overview-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-line,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-line,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.overview-main .restaurant-status-grid.viewport-grid .resource-empty,.reservations-main .restaurant-status-grid.viewport-grid .resource-empty{font-size:13px;line-height:1.2}.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill{min-height:22px;padding:2px 5px;font-size:12px}.overview-main .restaurant-status-grid.viewport-grid .resource-bookings,.reservations-main .restaurant-status-grid.viewport-grid .resource-bookings{gap:0;margin-top:0}.overview-main .restaurant-status-grid.viewport-grid .resource-booking-summary,.reservations-main .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:0}.overview-main .restaurant-status-grid.viewport-grid .booking-taker,.reservations-main .restaurant-status-grid.viewport-grid .booking-taker,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-notes{font-size:12px;line-height:1.15}}@media(max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.resource-card-head{flex-direction:row;align-items:center}.shell:has(.resources-main){display:grid;height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.resources-main{display:flex;min-height:0;height:auto;flex-direction:column;overflow:hidden}.resources-main .resources.viewport-grid article{gap:2px;padding:4px 8px}.resources-main .resource-admin-card-head b{font-size:17px;line-height:1.2}.resources-main .resources article .resource-admin-area,.resources-main .resources article .resource-admin-meta>span,.resources-main .resources article .resource-admin-meta>em{font-size:14px;line-height:1.2}.shell:has(.resources-main .form-grid){height:auto;min-height:100dvh;overflow:visible}}@media(min-width:901px){.resources-main{display:flex;min-height:0;height:100dvh;flex-direction:column;overflow:hidden}}.customer-tag-field{display:grid;gap:10px}.customer-tag-field>span{font-weight:650}.customer-form .customer-tag-entry-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start;gap:12px;min-width:0}.customer-form .customer-tag-entry-row>*{min-width:0}.customer-tag-picker{border:1px solid #cbbdb4;border-radius:12px;background:#fffdfa}.customer-tag-picker summary{padding:12px 14px;cursor:pointer;color:#4b302d;font-weight:650}.customer-tag-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;padding:4px 14px 14px;border-top:1px solid #e6ddd7}.customer-tag-options .check{min-height:38px;margin:0}.customer-selected-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:34px}.customer-tag-chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 10px;border:1px solid #a77c70;border-radius:999px;background:#f5e9e5;color:#61252c;box-shadow:none}.customer-tag-chip span{font-size:18px;line-height:1}.customer-manual-tag{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.customer-tag-create{display:grid;grid-template-columns:minmax(220px,1fr) max-content auto;align-items:center;gap:12px;margin:16px 0}.customer-tag-create label,.customer-tag-admin-list label{display:flex;min-width:0;align-items:center;gap:8px;white-space:nowrap}.customer-tag-create input,.customer-tag-admin-list input{min-height:44px;padding:9px 11px;border:1px solid #d2c6c0;border-radius:10px;background:#fff;color:var(--app-text);font:inherit;box-sizing:border-box}.customer-tag-name-field input{width:100%;min-width:0;flex:1 1 auto}.customer-tag-order-field input{width:96px;min-width:96px;flex:0 0 96px}.customer-tag-admin-list{display:grid;gap:8px}.customer-tag-admin-list article{display:grid;grid-template-columns:minmax(180px,1fr) max-content auto auto;align-items:center;gap:10px;padding:12px;border:1px solid #d9cdc5;border-radius:12px;background:#fbf6f2}.customer-tag-admin-list article>div{display:grid;gap:3px}.customer-tag-admin-list article>div span,.recently-deleted-packages article small{color:#756862}.customer-import-panel{display:grid;gap:18px}.customer-import-panel .form-back-row,.customer-import-panel .panel-title-row,.customer-import-panel h3,.customer-import-panel h4,.customer-import-panel p{margin:0}.customer-import-header{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.4fr);align-items:end;gap:16px;padding:16px;border:1px solid #e5e5ea;border-radius:12px;background:#fafafa}.customer-import-header label,.customer-import-mapping label{display:grid;gap:8px;color:var(--app-muted);font-size:14px}.customer-import-header select,.customer-import-mapping select{width:100%;min-height:42px;padding:8px 34px 8px 11px;border:1px solid #d2d2d7;border-radius:10px;background:#fff;color:var(--app-text);font:inherit}.customer-import-header p{color:var(--app-muted);line-height:1.65}.customer-import-mapping{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.customer-import-preview{display:grid;gap:12px;padding:16px;border:1px solid #c7d8ca;border-radius:12px;background:#f5faf6}.customer-import-counts{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.customer-import-counts span{padding:12px;border:1px solid #dbe8dd;border-radius:10px;background:#fff;color:var(--app-muted)}.customer-import-counts b{color:var(--app-text)}.customer-import-preview summary{cursor:pointer;color:var(--app-primary)}.customer-import-preview ul{max-height:180px;margin:10px 0 0;overflow:auto;color:var(--app-muted)}.customer-import-actions{display:flex;justify-content:flex-end;gap:10px}.customer-import-error{padding:12px 14px;border:1px solid #e5b8b8;border-radius:10px;background:#fff5f5;color:#9b2c2c}.recently-deleted-packages article{background:#f5f0ec}@media(max-width:760px){.customer-tag-options{grid-template-columns:1fr 1fr}.customer-manual-tag,.customer-tag-create,.customer-tag-admin-list article{grid-template-columns:1fr}.customer-import-header,.customer-import-counts{grid-template-columns:1fr}.customer-import-actions{align-items:stretch;flex-direction:column}}@media(max-width:560px){.reservations-main .compact-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;min-height:0}.reservations-main .compact-header>.eyebrow{grid-column:1;grid-row:1;min-width:0}.reservations-main .compact-header>.page-context-actions:not(:empty){grid-column:1 / -1;grid-row:2;min-width:0}.reservations-main .compact-header>.header-actions{display:contents}.reservations-main .page-context-controls{display:flex;width:100%;flex-wrap:wrap;white-space:normal}.reservations-main .compact-header>.header-actions .reservation-refresh-button{grid-column:2;grid-row:1;align-self:start;justify-self:end}.reservations-main .compact-header>.header-actions .header-mobile-store{width:100%;min-width:0;grid-column:1 / -1;grid-row:3}.reservations-main .reservation-header-controls label{min-width:0;flex:1 1 180px;white-space:nowrap}.reservations-main .reservation-header-controls input{width:100%;min-width:132px;flex:1 1 132px}.reservations-main .compact-header>.header-actions button{min-width:0;flex:1 1 140px;white-space:normal}}.restaurant-status-grid.viewport-grid .resource-card-head>b{font-weight:600}.restaurant-status-grid.viewport-grid .resource-card-head .pill,.restaurant-status-grid.viewport-grid .booking-summary-line>b,.restaurant-status-grid.viewport-grid .booking-summary-customer>span{font-weight:500}.restaurant-status-grid.viewport-grid .booking-summary-customer>strong{font-weight:600}.restaurant-status-grid.viewport-grid .booking-taker,.restaurant-status-grid.viewport-grid .booking-summary-notes{font-weight:400}.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card{container-name:reservation-status-card;container-type:inline-size}.overview-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head>b{font-size:clamp(13.5px,7.5cqw,16px);letter-spacing:0;line-height:1.15}.overview-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.overview-main .restaurant-status-grid.viewport-grid .booking-taker,.reservations-main .restaurant-status-grid.viewport-grid .booking-taker,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-notes{font-size:clamp(12px,6.5cqw,14px);letter-spacing:0;line-height:1.15}.overview-main .restaurant-status-grid.viewport-grid .booking-summary-line,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-line,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer>strong,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer>strong,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer>span,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer>span,.overview-main .restaurant-status-grid.viewport-grid .resource-empty,.reservations-main .restaurant-status-grid.viewport-grid .resource-empty{font-size:clamp(12.5px,7cqw,15px);letter-spacing:0;line-height:1.15}.overview-main .restaurant-status-grid.viewport-grid .resource-bookings,.reservations-main .restaurant-status-grid.viewport-grid .resource-bookings{justify-content:center}.overview-main .restaurant-status-grid.viewport-grid .resource-booking-summary,.reservations-main .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:4px}@media(min-width:901px)and (max-width:1279px)and (max-height:900px){.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card{padding-top:2px;padding-bottom:2px}.overview-main .restaurant-status-grid.viewport-grid .resource-card-head,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head{min-height:16px}.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill{min-height:16px;padding:0 4px}}@media(min-width:1280px)and (max-height:900px){.overview-main .restaurant-status-grid.viewport-grid .resource-card-head,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head{min-height:20px}.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card .pill{min-height:20px;padding:1px 5px}.overview-main .restaurant-status-grid.viewport-grid .resource-bookings,.reservations-main .restaurant-status-grid.viewport-grid .resource-bookings{gap:0;margin-top:0}}@container reservation-status-card (max-width: 175px){.overview-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.overview-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-line,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-line,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.overview-main .restaurant-status-grid.viewport-grid .booking-taker,.reservations-main .restaurant-status-grid.viewport-grid .booking-taker,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.overview-main .restaurant-status-grid.viewport-grid .resource-empty,.reservations-main .restaurant-status-grid.viewport-grid .resource-empty{letter-spacing:-.01em;line-height:1.1}.overview-main .restaurant-status-grid.viewport-grid .resource-booking-summary,.reservations-main .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:1px}}@container reservation-status-card (min-width: 230px){.overview-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head>b,.overview-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.reservations-main .restaurant-status-grid.viewport-grid .resource-card-head .pill,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-line,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-line,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-customer,.overview-main .restaurant-status-grid.viewport-grid .booking-taker,.reservations-main .restaurant-status-grid.viewport-grid .booking-taker,.overview-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.reservations-main .restaurant-status-grid.viewport-grid .booking-summary-notes,.overview-main .restaurant-status-grid.viewport-grid .resource-empty,.reservations-main .restaurant-status-grid.viewport-grid .resource-empty{letter-spacing:.01em;line-height:1.2}.overview-main .restaurant-status-grid.viewport-grid .resource-booking-summary,.reservations-main .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:8px}}.reservation-view-switch{display:flex;flex:none;gap:6px;white-space:nowrap}.reservation-header-controls{flex-wrap:wrap}.reservations-main>.compact-header{height:auto;flex:0 0 auto}.reservations-main .compact-header>.header-actions button.reservation-refresh-button{display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;flex:0 0 44px;align-items:center;justify-content:center;padding:0;border-radius:50%}.header-refresh-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.reservation-view-switch button{flex:none;border:1px solid transparent;white-space:nowrap}.reservation-view-switch button.active{border-color:#6e9bc3;background:#e8f2fb;box-shadow:none;color:#315a7a;font-weight:700}.reservation-day-picker{margin-left:4px;padding-left:12px;border-left:1px solid #ded5d0}.reservation-day-picker input{width:150px;flex-basis:150px}.reservation-day-board{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:12px;overflow-y:auto}.reservation-day-state{display:grid;min-height:180px;flex:1 1 auto;place-items:center;color:#756d69}.reservation-day-state p{margin:0}.reservation-day-supplement{flex:none;padding:0;overflow:hidden}.reservation-day-supplement>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #e7dfda;background:#fffaf3}.reservation-day-supplement h3,.reservation-day-supplement p{margin:0}.reservation-day-supplement h3{color:#57321f;font-size:16px;font-weight:600}.reservation-day-supplement h3 span{display:inline-grid;min-width:24px;height:24px;margin-left:4px;place-items:center;border-radius:12px;background:#f3d89a;color:#624117;font-size:13px}.reservation-day-supplement header p{margin-top:2px;color:#806f62;font-size:13px}.reservation-day-records{overflow-x:auto}.reservation-day-records .reservation-ledger-row:last-child{border-bottom:0}@media(min-width:901px){.reservation-day-board:has(.reservation-day-supplement)>.restaurant-status{min-height:480px;flex:0 0 calc(100dvh - 88px)}}@media(max-width:760px){.reservation-day-picker{margin-left:0;padding-left:0;border-left:0}}.reservation-ledger-panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;border:1px solid #e5ded9;background:#fffdfb;overflow:hidden}.reservation-ledger-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:0;padding:12px 14px;border-bottom:1px solid #e7dfda;background:#fff}.reservation-ledger-filters label{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;min-width:0;max-width:100%;color:#6f6764;font-size:13px}.reservation-ledger-filters>label:nth-child(-n+2){flex:0 0 150px}.reservation-ledger-filters>.reservation-ledger-keyword{flex:1 1 220px;min-width:min(200px,100%)}.reservation-ledger-filters>label:nth-child(4){flex:0 0 100px}.reservation-ledger-filters>label:nth-child(5){flex:0 0 114px}.reservation-ledger-filters input,.reservation-ledger-filters select{width:auto;min-width:0;max-width:100%;justify-self:stretch;height:38px;padding:0 8px;border:1px solid #d8cfca;border-radius:7px;background:#fff;color:#2d2928;font-size:14px}.reservation-ledger-filter-actions{display:flex;flex:0 0 auto;align-self:end;gap:7px;white-space:nowrap}.reservation-ledger-filter-actions button{min-height:38px;padding:7px 13px}.reservation-waiting-strip{border-bottom:1px solid #e7dfda;background:#fffaf0}.reservation-waiting-strip>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:0;padding:10px 14px;border-bottom:1px solid #eadfc9}.reservation-waiting-filter{min-width:0;min-height:38px;padding:6px 12px;box-shadow:none;white-space:nowrap}.reservation-waiting-strip h3,.reservation-waiting-strip p{margin:0}.reservation-waiting-strip h3{color:#57321f;font-size:16px;font-weight:600}.reservation-waiting-strip h3 span{display:inline-grid;min-width:24px;height:24px;margin-left:4px;place-items:center;border-radius:12px;background:#f3d89a;color:#624117;font-size:13px}.reservation-waiting-strip header p{margin-top:2px;color:#806f62;font-size:13px}.reservation-ledger-summary{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #e7dfda;color:#6d6562;font-size:13px}.reservation-ledger-summary strong{color:#2d2928;font-size:15px;font-weight:600}.reservation-ledger-scroll{flex:1 1 auto;min-height:180px;overflow:auto;background:#fff}.reservation-ledger-head,.reservation-ledger-row{display:grid;grid-template-columns:82px 68px minmax(145px,1.1fr) 116px 54px 108px 78px 86px minmax(110px,1fr) 94px;gap:10px;align-items:center}.reservation-ledger-head{position:sticky;z-index:2;top:0;min-height:36px;padding:0 14px;border-bottom:1px solid #dcd4cf;background:#f7f5f3;color:#756d69;font-size:12px;font-weight:500}.reservation-ledger-row{min-height:56px;padding:7px 14px;border-bottom:1px solid #ebe5e1;background:#fff;color:#312d2b;font-size:14px;line-height:1.25}.reservation-ledger-row:hover{background:#faf8f6}.reservation-ledger-row.unassigned{box-shadow:inset 3px 0 #d39a3d}.reservation-ledger-row>span{min-width:0}.reservation-ledger-row strong{font-weight:600}.reservation-ledger-row small{display:block;margin-top:2px;color:#847c78;font-size:12px}.ledger-date,.ledger-time,.ledger-guest{display:grid}.ledger-phone,.ledger-taker,.ledger-notes{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-party{white-space:nowrap}.ledger-resource.needs-arrangement{color:#9a5b16;font-weight:600}.reservation-ledger-row .pill{justify-self:start;margin:0;white-space:nowrap}.ledger-action{display:grid;gap:4px;text-align:right}.ledger-action button{width:100%;min-height:30px;padding:4px 5px;font-size:14px;white-space:nowrap}.reservation-ledger-empty{margin:0;padding:28px 16px;color:#7e7672;text-align:center}.reservation-ledger-pagination{display:flex;align-items:center;justify-content:center;gap:14px;min-height:48px;padding:6px 12px;border-top:1px solid #e7dfda;background:#fff;color:#6f6764;font-size:13px}.reservation-ledger-pagination button{min-height:34px}@media(min-width:901px){.reservations-main:has(.reservation-ledger-panel){display:flex;flex-direction:column}.reservations-main:has(.reservation-ledger-panel) .compact-header{min-height:48px;margin-bottom:8px}}b.resource-name-cjk{font-size:.9em;font-weight:600}.resources-main .resource-admin-card-head b.resource-name-cjk{font-size:15px;font-weight:600}@media(max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.shell>aside{display:block;position:fixed;z-index:30;top:0;right:0;left:0;width:100%;height:0;min-height:0;padding:0;overflow:visible;background:transparent}.compact-header>.eyebrow{min-width:0;flex-wrap:wrap;white-space:normal}.compact-header>.eyebrow .account-identity{min-width:0;overflow-wrap:anywhere}.mobile-nav-toggle{display:inline-flex;position:relative;z-index:34;flex:0 0 44px;width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:0;border-radius:6px;background:transparent;box-shadow:none;color:var(--app-text);line-height:1}.mobile-nav-toggle:hover,.mobile-nav-toggle[aria-expanded=true]{background:#eee9e8}.mobile-nav-toggle:active{background:#e4dcda;transform:scale(.96)}.mobile-nav-toggle:focus-visible{outline:2px solid var(--app-gold);outline-offset:1px}.mobile-menu-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.shell>aside .sidebar-navigation{display:none;position:fixed;z-index:32;top:56px;right:12px;left:auto;width:clamp(240px,46vw,280px);max-height:calc(100dvh - 68px);grid-template-columns:minmax(0,1fr);gap:6px;padding:10px;overflow-y:auto;border:1px solid rgba(215,178,113,.52);border-radius:14px;background:var(--app-sidebar);box-shadow:0 12px 28px #140c0e3d}.shell>aside.mobile-menu-open .sidebar-navigation{display:grid}.shell>aside .sidebar-navigation .nav,.shell>aside .sidebar-navigation .logout{width:100%;min-width:0;min-height:44px;margin:0;padding:8px 10px;font-size:16px;text-align:left;white-space:nowrap}.mobile-menu-mask{display:block;position:fixed;z-index:25;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.mobile-menu-mask:hover{background:transparent}}@media(min-width:901px)and (max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.shell>main{width:100%;min-width:0;grid-column:1;grid-row:1}.overview-main,.reservations-main:not(:has(.reservation-form)),.resources-main:not(:has(.form-grid)){height:100dvh}}@media(max-width:1279px){.reservation-ledger-head{display:none}.reservation-ledger-row{grid-template-columns:74px 62px minmax(120px,1.4fr) 106px 50px minmax(84px,.8fr) 76px 88px;grid-template-areas:"date time guest phone party resource status action" "date time notes notes notes notes taker action";gap:4px 9px;min-height:68px}.ledger-date{grid-area:date}.ledger-time{grid-area:time}.ledger-guest{grid-area:guest}.ledger-phone{grid-area:phone}.ledger-party{grid-area:party}.ledger-resource{grid-area:resource}.reservation-ledger-row>.pill{grid-area:status}.ledger-taker{grid-area:taker}.ledger-notes{grid-area:notes;color:#776f6b;font-size:12px}.ledger-action{grid-area:action}}@media(max-width:760px){.reservation-ledger-filters>.reservation-ledger-keyword{flex-basis:100%}.reservation-waiting-strip>header{align-items:flex-start}.reservation-waiting-strip header p{display:none}.reservation-ledger-row{grid-template-columns:66px 56px minmax(95px,1fr) 68px 86px;grid-template-areas:"date time guest status action" "resource party phone taker action" "notes notes notes notes action";min-height:84px}}@media(max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.shell>main{padding-top:12px}.compact-header{row-gap:8px;margin-bottom:6px}.compact-header>.page-context-actions:empty{display:none}.compact-header .header-actions .header-refresh-button{min-height:36px;padding-top:5px;padding-bottom:5px}.reservation-ledger-panel{overflow:visible}.reservation-ledger-filters input,.reservation-ledger-filters select,.reservation-ledger-filter-actions button,.reservation-waiting-strip button,.reservation-ledger-pagination button{min-height:44px;height:auto}.reservation-ledger-filter-actions button{min-width:0}.reservation-ledger-scroll{min-height:0;overflow-x:hidden;overflow-y:visible}.reservation-ledger-row{width:100%;min-width:0;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"date time guest status" "phone party resource taker" "notes notes notes notes" "action action action action";gap:10px 12px;align-items:start;padding:12px 14px}.reservation-ledger-row>span:not(.pill){display:grid;min-width:0;gap:2px;align-content:start}.reservation-ledger-row>span:not(.pill):before{content:attr(data-label);color:#847c78;font-size:11px;font-weight:500;line-height:1.2}.reservation-ledger-row>.pill{grid-area:status;align-self:start;justify-self:start}.ledger-date{grid-area:date}.ledger-time{grid-area:time}.ledger-guest{grid-area:guest}.ledger-phone{grid-area:phone}.ledger-party{grid-area:party}.ledger-resource{grid-area:resource}.ledger-taker{grid-area:taker}.ledger-notes{grid-area:notes}.ledger-action{grid-area:action}.ledger-phone,.ledger-taker,.ledger-notes{overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.ledger-action{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;text-align:left}.ledger-action:before{grid-column:1 / -1}.ledger-action button{width:100%;min-width:0;min-height:44px;white-space:normal}.reservation-waiting-strip>header{min-height:56px;align-items:center;flex-direction:row}}@media(max-width:560px){.reservation-ledger-row{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"date time" "guest status" "phone party" "resource taker" "notes notes" "action action"}.reservation-waiting-strip>header{align-items:center;flex-direction:row}.reservation-waiting-strip>header button{width:auto;flex:none;padding-right:12px;padding-left:12px}.reservation-ledger-summary{align-items:flex-start;flex-direction:column;gap:3px}}@media(max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.table-wrap:has(>.customer-table),.table-wrap:has(>.staff-table){overflow:visible}.table-wrap>.customer-table,.table-wrap>.staff-table{display:block;width:100%;min-width:0}.customer-table thead,.staff-table thead{display:none}.customer-table tbody,.staff-table tbody{display:grid;gap:12px}.customer-table tr,.staff-table tr{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:12px 14px;border:1px solid #e2d8d3;border-radius:10px;background:#fff}.customer-table td,.staff-table td{display:grid;min-width:0;grid-template-columns:minmax(74px,auto) minmax(0,1fr);gap:8px;align-items:start;padding:7px 0;border:0;overflow-wrap:anywhere}.customer-table td:before,.staff-table td:before{color:#766f68;font-size:13px;font-weight:500}.customer-table td:nth-child(1):before{content:"客户"}.customer-table td:nth-child(2):before{content:"手机号"}.customer-table td:nth-child(3):before{content:"等级"}.customer-table td:nth-child(4):before{content:"标签"}.customer-table td:nth-child(5):before{content:"服务备注"}.customer-table td:nth-child(6):before{content:"状态"}.customer-table td:nth-child(7):before{content:"操作"}.staff-table td:nth-child(1):before{content:"员工编码"}.staff-table td:nth-child(2):before{content:"姓名"}.staff-table td:nth-child(3):before{content:"手机号"}.staff-table td:nth-child(4):before{content:"邮箱"}.staff-table td:nth-child(5):before{content:"职位"}.staff-table td:nth-child(6):before{content:"微信绑定"}.staff-table td:nth-child(7):before{content:"状态"}.staff-table td:nth-child(8):before{content:"操作"}.customer-table td:nth-child(5),.customer-table td:last-child,.staff-table td:nth-child(4),.staff-table td:last-child{grid-column:1 / -1}.customer-table .table-actions,.staff-table .table-actions{min-width:0;flex-wrap:wrap}.customer-table .table-actions button,.staff-table .table-actions button,.staff-list-filters select{min-height:44px}}@media(min-width:901px)and (max-width:1180px){.reservation-ledger-filters input,.reservation-ledger-filters select,.reservation-ledger-filter-actions button,.reservation-waiting-strip button,.reservation-ledger-pagination button,.ledger-action button,.customer-table .table-actions button,.staff-table .table-actions button,.staff-list-filters select{min-height:44px;height:auto}}@media(max-width:640px){.customer-table tr,.staff-table tr{grid-template-columns:minmax(0,1fr)}.customer-table td:nth-child(5),.customer-table td:last-child,.staff-table td:nth-child(4),.staff-table td:last-child{grid-column:auto}}@media(max-width:480px){.customer-header-controls{width:100%;flex-wrap:wrap}.customer-header-controls>button,.customer-header-controls>.file-button{min-width:0;flex:1 1 calc(50% - 4px);text-align:center}.customer-header-controls .header-search{display:grid;width:100%;flex:1 0 100%;grid-template-columns:repeat(2,minmax(0,1fr))}.customer-header-controls .header-search input{width:100%;grid-column:1 / -1}.customer-header-controls .header-search button{width:100%;min-width:0;min-height:44px}.login{width:100%;min-width:0;padding:14px}.login section{width:100%;max-width:390px;min-width:0;padding:clamp(22px,7vw,34px)}.login .password-field{grid-template-columns:minmax(0,1fr) 48px}.login button,.login input{min-width:0}.resources-main .resources.viewport-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:none!important;grid-auto-rows:minmax(84px,auto)}.resources-main .resources.viewport-grid article{min-width:0;min-height:84px;height:auto;padding:8px}.resources-main .resource-admin-card-head,.resources-main .resource-admin-meta{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:start}.resources-main .resource-admin-card-head b,.resources-main .resource-admin-area,.resources-main .resource-admin-meta>span,.resources-main .resource-admin-meta>em{min-width:0;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}}main>form.form-grid:not(.reservation-form),.share-config-page>form.form-grid{gap:12px;padding:16px}main>form.form-grid:not(.reservation-form)>label:not(.check),.share-config-page>form.form-grid>label:not(.check){gap:6px}main>form.form-grid:not(.reservation-form)>label:not(.check)>input,main>form.form-grid:not(.reservation-form)>label:not(.check)>select,.share-config-page>form.form-grid>label:not(.check)>input,.share-config-page>form.form-grid>label:not(.check)>select{height:48px;min-height:48px;padding-block:9px}main>form.form-grid:not(.reservation-form) textarea,.share-config-page>form.form-grid textarea{min-height:88px}main>form.form-grid:not(.reservation-form){grid-template-columns:repeat(3,minmax(0,1fr))}main>form.form-grid:has(>.settings-section-title){grid-template-columns:repeat(4,minmax(0,1fr))}main>form.form-grid.customer-form{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;align-content:start}.customer-form>.customer-phone-help,.customer-form>.customer-preserved-phone{grid-column:1 / -1;margin:0;line-height:1.5;overflow-wrap:anywhere}.customer-table .customer-phone-number{display:block;white-space:nowrap}.customer-history .panel-title-row p{overflow-wrap:anywhere}.customer-form>.form-back-row{grid-column:1 / span 2;grid-row:1}.customer-form>h3{grid-column:3 / -1;grid-row:1;align-self:center;margin:0}.customer-form>.customer-tag-field,.customer-form>label.wide:has(textarea),.customer-form>.customer-save-actions{grid-column:1 / -1}.customer-form>.customer-save-actions{display:flex;grid-column:1 / -1;align-items:center;justify-content:flex-end}.customer-form>.customer-save-actions>button{min-width:120px}.customer-form>label.wide:has(textarea)>textarea{min-height:88px;resize:vertical}.customer-form>.check{min-height:48px}.staff-form>.form-back-row,.resources-main>form.form-grid>.form-back-row{grid-column:1}.staff-form>h3,.resources-main>form.form-grid>h3{grid-column:2 / -1;align-self:center;margin:0}.share-config-page>form.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.share-config-page>form.package-editor{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:561px)and (max-width:1180px){main>form.form-grid:not(.reservation-form),main>form.form-grid:has(>.settings-section-title),main>form.form-grid.customer-form,.share-config-page>form.form-grid,.share-config-page>form.package-editor{grid-template-columns:repeat(2,minmax(0,1fr))}main>form.form-grid:not(.reservation-form)>.wide,.share-config-page>form.form-grid>.wide{grid-column:1 / -1}main>form.form-grid.customer-form>.form-back-row{grid-column:1}.customer-form>h3{grid-column:2}.customer-form>.customer-tag-field,.customer-form>label.wide:has(textarea){grid-column:1 / -1}.customer-manual-tag{grid-template-columns:minmax(0,1fr) auto}}@media(min-width:561px)and (max-width:700px){.reservation-form{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-form>*{grid-column:auto}.reservation-form>h3,.reservation-form>.form-back-row,.reservation-form>.persistent-form-error,.reservation-form>.reservation-customer,.reservation-form>.reservation-notes,.reservation-form>.reservation-actions{grid-column:1 / -1}}@media(max-width:560px){main>form.form-grid:not(.reservation-form),main>form.form-grid:has(>.settings-section-title),main>form.form-grid.customer-form,.share-config-page>form.form-grid,.share-config-page>form.package-editor{grid-template-columns:minmax(0,1fr)}main>form.form-grid:not(.reservation-form)>*,.customer-form>*,.share-config-page>form.form-grid>*{grid-column:1}.customer-form>h3{margin-bottom:4px}.customer-form>.form-back-row,.customer-form>h3{grid-row:auto}.customer-manual-tag{grid-template-columns:minmax(0,1fr)}.customer-manual-tag button,main>form.form-grid:not(.reservation-form) button,.share-config-page>form.form-grid button{min-height:44px}}.reservation-form>*,.customer-form>*{min-width:0}.reservation-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.customer-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-width:0;max-width:100%;width:100%;box-sizing:border-box}main>form.form-grid.customer-form>label:not(.check){display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;align-self:start}main>form.form-grid.customer-form>label:not(.check)>:is(input,select){height:48px;min-height:48px;max-height:48px;block-size:48px;min-block-size:48px;max-block-size:48px;align-self:start}.customer-form .customer-manual-tag>:is(input,button){height:48px;min-height:48px;box-sizing:border-box}main>form.form-grid.customer-form>label>input[type=date]{width:auto;min-width:0;max-width:100%;box-sizing:border-box;padding:0 10px;line-height:24px;-webkit-appearance:none;-moz-appearance:none;appearance:none;justify-self:stretch}main>form.form-grid.customer-form>label>input[type=date]::-webkit-date-and-time-value{min-height:0;line-height:24px;text-align:left}main>form.form-grid.customer-form>label>input[type=date]::-webkit-datetime-edit{padding:0}.form-grid.reservation-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),220px));column-gap:16px;row-gap:32px;justify-content:start;align-items:start;align-content:start;grid-auto-rows:max-content}.form-grid.reservation-form>label:not(.reservation-notes){grid-column:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:24px 52px;grid-auto-rows:max-content;align-content:start;gap:8px;line-height:24px}.form-grid.reservation-form>.reservation-phone{grid-column-start:1}.form-grid.reservation-form>label:not(.reservation-notes)>:is(input,select,.number-stepper){height:52px;min-height:52px;max-height:52px;align-self:start}.form-grid.reservation-form>label>:is(input,select){padding-left:10px;padding-right:10px}.form-grid.reservation-form>label>input:is([type=date],[type=time]){width:auto;min-width:0;max-width:100%;box-sizing:border-box;height:52px;min-height:52px;max-height:52px;block-size:52px;min-block-size:52px;max-block-size:52px;padding:0 10px;line-height:24px;-webkit-appearance:none;-moz-appearance:none;appearance:none;justify-self:stretch}.form-grid.reservation-form>label>input:is([type=date],[type=time])::-webkit-date-and-time-value{min-height:0;line-height:24px;text-align:left}.form-grid.reservation-form>label>input:is([type=date],[type=time])::-webkit-datetime-edit{padding:0}.form-grid.reservation-form .number-stepper{grid-template-columns:52px minmax(64px,1fr) 52px;gap:8px}.form-grid.reservation-form .number-stepper>:is(button,input){height:52px;min-height:52px}.form-grid.reservation-form label>small{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.45}.form-grid.reservation-form>.reservation-notes{align-content:start}.reservation-notes-help{color:#6e6e73}@media(min-width:1280px),(min-width:1024px)and (max-width:1279px)and (orientation:landscape){.customer-table :is(th,td):is(:nth-child(3),:nth-child(6)){min-width:4em;white-space:nowrap}.customer-table :is(th,td):nth-child(2){white-space:nowrap}.customer-table td:is(:first-child,:nth-child(4),:nth-child(5)){overflow-wrap:anywhere}}@media(max-width:560px){.resources-main .resource-header-controls button{min-height:44px}.resources-main .compact-header:has(.resource-header-controls){grid-template-columns:minmax(0,1fr) max-content}.resources-main .compact-header>.eyebrow{grid-column:1 / -1;grid-row:1;min-width:0;flex-wrap:wrap;white-space:normal}.resources-main .compact-header:has(.resource-header-controls)>.page-context-actions:not(:empty){grid-column:1;grid-row:2}.resources-main .compact-header:has(.resource-header-controls)>.header-actions{grid-column:2;grid-row:2}}@media(min-width:1024px)and (max-width:1279px)and (orientation:landscape){.shell{grid-template-columns:150px minmax(0,1fr)}.shell>aside{padding-right:10px;padding-left:10px}.shell>aside .nav,.shell>aside .logout{padding-right:10px;padding-left:10px}.shell>main{min-width:0;padding-right:10px;padding-left:10px}.customer-table{width:100%;table-layout:fixed}.customer-table :is(th,td){padding-right:6px;padding-left:6px}.customer-table :is(th,td):nth-child(1){width:14%}.customer-table :is(th,td):nth-child(2){width:17%}.customer-table :is(th,td):nth-child(3){width:8%}.customer-table :is(th,td):nth-child(4){width:17%}.customer-table :is(th,td):nth-child(5){width:20%}.customer-table :is(th,td):nth-child(6){width:9%}.customer-table :is(th,td):nth-child(7){width:15%}.customer-table th,.customer-table td:is(:nth-child(1),:nth-child(3),:nth-child(6)){word-break:keep-all}.customer-table th,.customer-table td:nth-child(2){white-space:nowrap}.customer-table .table-actions{flex-wrap:nowrap;gap:4px}.customer-table .table-actions button{min-width:44px;padding-right:6px;padding-left:6px}.staff-table{width:100%;table-layout:fixed}.staff-table :is(th,td){padding-right:6px;padding-left:6px}.staff-table :is(th,td):nth-child(1){width:13%}.staff-table :is(th,td):nth-child(2){width:13%}.staff-table :is(th,td):nth-child(3){width:15%}.staff-table :is(th,td):nth-child(4){width:13%}.staff-table :is(th,td):nth-child(5){width:10%}.staff-table :is(th,td):nth-child(6){width:12%}.staff-table :is(th,td):nth-child(7){width:8%}.staff-table :is(th,td):nth-child(8){width:16%}.staff-table :is(th,td):not(:nth-child(1),:nth-child(2),:nth-child(4),:nth-child(8)){word-break:keep-all;white-space:nowrap}.staff-table td:nth-child(1),.staff-table td:nth-child(2),.staff-table td:nth-child(4){min-width:0;overflow-wrap:anywhere;white-space:normal}.staff-table .table-actions{min-width:0;flex-wrap:wrap;gap:4px}.staff-table .table-actions button{min-width:44px;min-height:44px;padding-right:6px;padding-left:6px}}@media(max-width:1279px){.compact-header:has(>.page-context-actions:not(:empty)){height:auto;min-height:0;flex:0 0 auto;align-content:start}.customer-header-controls>button,.customer-header-controls>.file-button,.customer-header-controls .header-search button,.staff-header-controls>button,.staff-header-controls>.file-button,.staff-header-controls .header-search button{min-height:44px}.detail-booking .status-actions button{min-height:44px}.shell>main .compact-header>.header-actions button{min-height:44px}}@media(max-width:1279px){.shell:not(.overview-desktop-fit) .overview-main .restaurant-status-grid.viewport-grid,.reservations-main .restaurant-status-grid.viewport-grid{grid-template-rows:none!important;grid-auto-rows:minmax(118px,auto);align-content:start;overflow-x:hidden;overflow-y:auto}.shell:not(.overview-desktop-fit) .overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card,.reservations-main .restaurant-status-grid.viewport-grid .restaurant-status-card{height:auto;min-height:118px;overflow:visible}.resources-main .resources.viewport-grid{grid-template-rows:none!important;grid-auto-rows:minmax(84px,auto);align-content:start}.resources-main .resources.viewport-grid article{height:auto;min-height:84px}}@media(max-width:1023px),(min-width:901px)and (max-width:1279px)and (orientation:portrait){.overview-main .status-topline,.reservations-main .status-topline,.overview-main .status-control-row,.reservations-main .status-control-row,.overview-main .status-filter-buttons,.reservations-main .status-filter-buttons{flex-wrap:wrap}.overview-main .meal-summary,.reservations-main .meal-summary{width:100%;min-width:0;flex-basis:100%}.customer-history .table-wrap{overflow:visible}.customer-history .table-wrap>table{display:block;width:100%;min-width:0}.customer-history table thead{display:none}.customer-history table tbody{display:grid;gap:10px}.customer-history table tr{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:12px 14px;border:1px solid #e2d8d3;border-radius:10px;background:#fff}.customer-history table td{display:grid;min-width:0;gap:3px;padding:0;border:0;overflow-wrap:anywhere}.customer-history table td:before{color:#766f68;font-size:13px;font-weight:500}.customer-history table td:nth-child(1):before{content:"日期"}.customer-history table td:nth-child(2):before{content:"时间"}.customer-history table td:nth-child(3):before{content:"人数"}.customer-history table td:nth-child(4):before{content:"桌号 / 包房"}.customer-history table td:nth-child(5):before{content:"状态"}.customer-history table td:nth-child(6):before{content:"备注"}.customer-history table td:nth-child(6){grid-column:1 / -1}}.reservation-view-switch button,.reservation-ledger-filter-actions button,.reservation-waiting-filter,.ledger-action button,.table-actions button,.header-actions button,.page-context-actions button{word-break:keep-all;white-space:nowrap}@media(max-width:560px){.shell:not(.overview-desktop-fit)>.overview-main .meal-summary,.shell:not(.overview-desktop-fit)>.overview-main .meal-summary>span{min-width:0;white-space:normal;overflow-wrap:anywhere}}@media(max-width:360px){.overview-main .meal-summary,.reservations-main .meal-summary,.overview-main .meal-summary>span,.reservations-main .meal-summary>span{min-width:0;white-space:normal;overflow-wrap:anywhere}.compact-header{height:auto;min-height:0;flex:0 0 auto;align-items:start}.compact-header>.eyebrow{min-width:0;flex-wrap:wrap;row-gap:4px;white-space:normal}.compact-header>.header-actions{align-self:start}}.shell:not(.overview-desktop-fit)>.overview-main .restaurant-status-grid.viewport-grid{grid-template-rows:none!important;grid-auto-rows:minmax(126px,auto);align-content:start;overflow-y:auto}.shell:not(.overview-desktop-fit)>.overview-main .restaurant-status-grid.viewport-grid .restaurant-status-card{height:auto;min-height:126px;overflow:visible}.shell:not(.overview-desktop-fit)>.overview-main .restaurant-status-grid.viewport-grid .resource-bookings{min-height:auto;flex:none;justify-content:flex-start;overflow:visible}.shell:not(.overview-desktop-fit)>.overview-main .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:4px}.overview-canvas-viewport,.overview-canvas-size{display:contents}.overview-canvas-viewport[data-horizontal-scroll]{display:block;width:100%;height:100vh;height:100dvh;overflow:auto}.overview-canvas-viewport[data-horizontal-scroll]>.overview-canvas-size{display:block;width:var(--overview-canvas-width);height:var(--overview-canvas-height);overflow:hidden}@media(max-width:1279px)and (orientation:landscape){html:has(.shell.overview-desktop-fit),body:has(.shell.overview-desktop-fit),#root:has(.shell.overview-desktop-fit){min-width:0;overflow-x:hidden}.shell.overview-desktop-fit{display:grid;width:var(--overview-fit-width);max-width:none;height:var(--overview-fit-height);min-height:0;grid-template-columns:170px minmax(0,1fr);grid-template-rows:minmax(0,1fr);margin-right:calc(var(--overview-fit-rendered-width) - var(--overview-fit-width));margin-bottom:calc(var(--overview-fit-rendered-height) - var(--overview-fit-height));overflow:hidden;transform:scale(var(--overview-fit-scale));transform-origin:top left}.shell.overview-desktop-fit>aside{display:flex;position:static;z-index:auto;top:auto;width:auto;height:100%;min-height:0;grid-column:1;grid-row:1;flex-direction:column;align-items:stretch;gap:8px;padding:27px 14px 34px;overflow:visible;background:var(--app-sidebar)}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .mobile-nav-toggle,.shell.overview-desktop-fit>.mobile-menu-mask{display:none}.shell.overview-desktop-fit>aside .sidebar-store-picker{display:grid}.shell.overview-desktop-fit>aside .sidebar-store-name{display:block}.shell.overview-desktop-fit>aside .sidebar-navigation{display:flex;position:static;z-index:auto;inset:auto;width:auto;max-height:none;min-height:0;flex:1;flex-direction:column;gap:8px;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.shell.overview-desktop-fit>aside .sidebar-navigation .nav,.shell.overview-desktop-fit>aside .sidebar-navigation .logout{width:auto;min-width:0;min-height:54px;margin:0;padding:12px;font-size:18px;text-align:left;white-space:normal}.shell.overview-desktop-fit>aside .sidebar-navigation .account-password-menu-button{margin-top:0}.shell.overview-desktop-fit>aside .sidebar-navigation .account-password-menu-button+.logout{margin-top:0}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main){display:flex;width:100%;min-width:0;max-width:none;height:100%;min-height:0;grid-column:2;grid-row:1;flex-direction:column;margin:0;padding:10px;overflow:hidden}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .compact-header{grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:12px;min-height:36px;margin-bottom:4px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .compact-header>.eyebrow{grid-column:1;grid-row:1;align-self:auto;flex-wrap:nowrap;white-space:nowrap}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .compact-header>.page-context-actions{display:block;grid-column:2;grid-row:1}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .compact-header>.header-actions{grid-column:3;grid-row:1;align-self:auto}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .header-mobile-store{display:none}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .compact-header>.header-actions button{min-height:34px;padding:5px 10px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status{display:flex;min-height:0;flex:1;flex-direction:column;margin-bottom:0;padding:7px 10px 20px;overflow:hidden}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-topline{flex-wrap:nowrap;gap:8px;margin-bottom:5px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status .status-topline h3{font-size:18px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-filter-buttons{width:auto;flex:1;flex-wrap:nowrap;justify-content:flex-end;gap:5px;margin-left:auto}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-filter-button{display:flex;width:auto;min-width:0;min-height:32px;flex:1 1 72px;align-items:center;justify-content:center;gap:5px;padding:4px 7px;font-size:14px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-filter-button>b{min-width:20px;padding:1px 5px;border-radius:999px;background:#ffffffa3;color:inherit;font-size:12px;line-height:1.35}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-filter-button.active>b{background:#ffffff2e}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-control-row{width:auto;flex-wrap:nowrap;justify-content:flex-start;gap:7px;margin-bottom:6px;margin-left:0;padding:0;border:0;border-radius:0;background:transparent}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .period-filter{gap:4px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .period-filter button{min-height:32px;padding:4px 8px;font-size:14px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .status-control-row select{min-height:32px;max-width:190px;padding:4px 25px 4px 7px}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .meal-summary{display:grid;width:auto;min-width:235px;flex:1 1 360px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;font-size:12px;line-height:1.3;white-space:nowrap}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .meal-summary>span{min-width:0;white-space:nowrap}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status-grid.viewport-grid{min-height:0;flex:1;gap:8px;grid-template-rows:none!important;grid-auto-rows:minmax(126px,auto);align-content:start;overflow-x:hidden;overflow-y:auto}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status-grid.viewport-grid .restaurant-status-card{height:auto;min-height:126px;padding:6px 8px;overflow:visible}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status-grid.viewport-grid .resource-bookings{min-height:auto;flex:none;justify-content:flex-start;overflow:visible}.shell.overview-desktop-fit>:is(.overview-main,.reservations-main) .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:4px}.shell.overview-desktop-fit[data-overview-fit-density=regular]>:is(.overview-main,.reservations-main) .resource-card-head{min-height:27px}.shell.overview-desktop-fit[data-overview-fit-density=regular]>:is(.overview-main,.reservations-main) .restaurant-status-card .pill{min-height:0;padding:4px 8px}.shell.overview-desktop-fit[data-overview-fit-density=regular]>:is(.overview-main,.reservations-main) .resource-bookings{gap:2px;margin-top:2px}.shell.overview-desktop-fit[data-overview-fit-density=compact]>:is(.overview-main,.reservations-main) .resource-card-head{min-height:20px}.shell.overview-desktop-fit[data-overview-fit-density=compact]>:is(.overview-main,.reservations-main) .restaurant-status-card .pill{min-height:20px;padding:1px 5px}.shell.overview-desktop-fit[data-overview-fit-density=compact]>:is(.overview-main,.reservations-main) .resource-bookings{gap:0;margin-top:0}.shell.overview-desktop-fit .resource-detail-mask{pointer-events:auto}.shell.overview-desktop-fit .resource-detail-panel{max-height:100%}.shell.overview-desktop-fit .resource-period-overview,.shell.overview-desktop-fit .detail-booking dl{grid-template-columns:repeat(2,minmax(0,1fr))}.shell.overview-desktop-fit .detail-booking dl>div.wide{grid-column:1 / -1}.shell.overview-desktop-fit>.reservations-main .compact-header>.header-actions{display:flex}.shell.overview-desktop-fit>.reservations-main .reservation-header-controls{display:flex;width:100%;min-width:0;flex-wrap:wrap;gap:6px}.shell.overview-desktop-fit>.reservations-main .reservation-header-controls label{flex:0 1 auto;min-width:0}.shell.overview-desktop-fit>.reservations-main .reservation-day-picker{margin-left:4px;padding-left:12px}.shell.overview-desktop-fit>.reservations-main .reservation-day-picker input{width:150px;min-width:0;flex:0 0 150px}.shell.overview-desktop-fit>.reservations-main .reservation-day-board{min-height:0;flex:1 1 0;overflow-y:auto}.shell.overview-desktop-fit>.reservations-main .reservation-day-board:has(.reservation-day-supplement)>.restaurant-status{min-height:480px;flex:0 0 100%}}.reservations-main .reservation-day-board .restaurant-status-grid.viewport-grid{grid-template-rows:none!important;grid-auto-rows:minmax(126px,auto);align-content:start;overflow-x:hidden;overflow-y:auto}.reservations-main .reservation-day-board .restaurant-status-grid.viewport-grid .restaurant-status-card{height:auto;min-height:126px;overflow:visible}.reservations-main .reservation-day-board .restaurant-status-grid.viewport-grid .resource-card-head{flex:0 0 auto}.reservations-main .reservation-day-board .restaurant-status-grid.viewport-grid .resource-bookings{min-height:auto;flex:none;justify-content:flex-start;overflow:visible}.reservations-main .reservation-day-board .restaurant-status-grid.viewport-grid .resource-booking-summary{gap:4px}@media(min-width:1280px),(min-width:1024px)and (orientation:landscape){.shell:not(.overview-desktop-fit)>aside{position:sticky;top:0;height:100dvh;min-height:0;max-height:100dvh;align-self:start;padding-top:27px;overflow:hidden}.shell:not(.overview-desktop-fit)>aside .sidebar-store-picker,.shell:not(.overview-desktop-fit)>aside .sidebar-store-name{margin-bottom:20px}.shell:not(.overview-desktop-fit)>aside .sidebar-navigation{overflow-y:auto}.shell:not(.overview-desktop-fit)>aside .sidebar-navigation .nav,.shell:not(.overview-desktop-fit)>aside .sidebar-navigation .logout{flex-shrink:0}}.shell.overview-desktop-fit>aside .sidebar-store-picker,.shell.overview-desktop-fit>aside .sidebar-store-name{margin-bottom:20px}.shell.overview-desktop-fit>aside .sidebar-navigation{overflow-y:auto}.shell.overview-desktop-fit>aside .sidebar-navigation .nav,.shell.overview-desktop-fit>aside .sidebar-navigation .logout{flex-shrink:0}.customers-main:has(>.customer-list-panel.list-scroll-mode),.staff-main:has(>.staff-list-panel.list-scroll-mode){display:flex;height:100dvh;min-height:0;flex-direction:column;overflow:hidden}.customers-main:has(>.customer-list-panel.list-scroll-mode)>.compact-header,.staff-main:has(>.staff-list-panel.list-scroll-mode)>.compact-header{height:auto;min-height:0;flex:0 0 auto}.customers-main>.customer-list-panel.list-scroll-mode,.staff-main>.staff-list-panel.list-scroll-mode{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;margin-bottom:0;overflow:hidden}.customers-main>.customer-list-panel.list-scroll-mode>h3,.customers-main>.customer-list-panel.list-scroll-mode>.empty,.staff-main>.staff-list-panel.list-scroll-mode>h3,.staff-main>.staff-list-panel.list-scroll-mode>.empty,.staff-main>.staff-list-panel.list-scroll-mode>.staff-list-filters{flex:0 0 auto}.customers-main>.customer-list-panel.list-scroll-mode>.table-wrap,.staff-main>.staff-list-panel.list-scroll-mode>.table-wrap{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain}.customers-main>.customer-list-panel.list-scroll-mode .customer-table th,.staff-main>.staff-list-panel.list-scroll-mode .staff-table th{position:sticky;z-index:2;top:0;background:var(--app-surface);box-shadow:inset 0 -1px var(--app-border)}@media(max-width:640px)and (max-height:800px){.customers-main:has(>.customer-list-panel.list-scroll-mode),.staff-main:has(>.staff-list-panel.list-scroll-mode){height:auto;min-height:100dvh;overflow:visible}.customers-main>.customer-list-panel.list-scroll-mode,.staff-main>.staff-list-panel.list-scroll-mode{flex:none;overflow:visible}.customers-main>.customer-list-panel.list-scroll-mode>.table-wrap,.staff-main>.staff-list-panel.list-scroll-mode>.table-wrap{height:max(180px,50dvh);min-height:180px;flex:none;overflow:auto}}:where(.shell,.login,.reservation-flow-dialog){--select-arrow-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236d665e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 6 5 5 5-5'/%3E%3C/svg%3E")}:where(.shell,.login) .sidebar-store-picker{--select-arrow-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23d4ae75' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 6 5 5 5-5'/%3E%3C/svg%3E")}:where(.shell,.login,.reservation-flow-dialog) select:not([multiple]):is(:not([size]),[size="0"],[size="1"]){--select-arrow-inset: max(12px, calc(12px / var(--overview-fit-scale, 1)));-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--select-arrow-image);background-repeat:no-repeat;background-position:right var(--select-arrow-inset) center;background-size:16px 16px;padding-right:calc(var(--select-arrow-inset) + 16px + var(--select-arrow-text-gap, 8px))!important}.sidebar-store-picker select{--select-arrow-text-gap: 2px;padding-left:10px}.reservation-ledger-filters>label:nth-child(4){flex-basis:104px}.reservation-ledger-filters>label:nth-child(5){flex-basis:118px}@media(forced-colors:active){:where(.shell,.login,.reservation-flow-dialog) select:not([multiple]):is(:not([size]),[size="0"],[size="1"]){-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background-image:none}}.status-actions.reservation-detail-actions,.overview-main .status-actions.reservation-detail-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;white-space:normal}.status-actions.reservation-detail-actions>.reservation-detail-action-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.status-actions.reservation-detail-actions>.reservation-detail-action-group:empty{display:none}.status-actions.reservation-detail-actions>.reservation-detail-action-group>button{flex:0 0 auto;width:auto;min-width:max-content;white-space:nowrap;text-align:center}.reservation-reminder.reminder-contact{--reminder-color: #ad5a00;--reminder-soft: #fff0d4;--reminder-fallback: #e5f7de}.reservation-reminder.reminder-arrival{--reminder-color: #b42332;--reminder-soft: #ffe4e6;--reminder-fallback: #d7f7f3}.restaurant-status-card.reservation-reminder{position:relative;isolation:isolate}.restaurant-status-card.reservation-reminder:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:var(--reminder-complement, var(--reminder-fallback));pointer-events:none;opacity:0;animation:reservation-reminder-soft-pulse 3s ease-in-out infinite}.restaurant-status-card.reservation-reminder.reminder-paused:before{animation:none;opacity:0}.reservation-reminder .reminder-badge{color:var(--reminder-color);background:var(--reminder-soft)}.restaurant-status-card .resource-card-head{flex:0 0 auto;height:auto;flex-wrap:wrap;gap:3px 6px}.restaurant-status-card .resource-card-head>.pill{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.restaurant-status-card .resource-card-head>b{min-width:0;overflow-wrap:anywhere}.reservation-ledger-row .reminder-badge,.reservation-ledger-row .pill.PENDING{white-space:normal;overflow-wrap:anywhere}.shell>:is(.overview-main,.reservations-main) .status-filter-button.pending{width:max-content;min-width:max-content;flex:0 0 auto;white-space:nowrap}.shell>:is(.overview-main,.reservations-main) .status-filter-button.pending>:is(span,b){flex-shrink:0;white-space:nowrap}.reminder-settings-help{margin:0;line-height:1.6;overflow-wrap:anywhere}.form-grid .reminder-setting-field{min-width:0}.form-grid .reminder-setting-field input{display:block;min-width:0;width:100%;height:52px;min-height:52px;max-height:52px;box-sizing:border-box}.form-grid .reminder-setting-field input[type=time]::-webkit-datetime-edit{padding:0}.form-grid .reminder-setting-field small{line-height:1.5;overflow-wrap:anywhere}.form-grid .contact-reminder-setting{display:grid;align-content:start;gap:10px;min-width:0}.form-grid .contact-reminder-toggle input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:18px;padding:0}@keyframes reservation-reminder-soft-pulse{0%,to{opacity:0}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.restaurant-status-card.reservation-reminder:before{animation:none;opacity:0}}.shell :is(.overview-main,.reservations-main) .restaurant-status-grid.viewport-grid.readable-card-grid{grid-template-rows:none!important;grid-auto-rows:minmax(126px,auto);justify-content:start;align-content:start;gap:8px;overflow:auto}.shell :is(.overview-main,.reservations-main) .readable-card-grid .restaurant-status-card{min-width:0;min-height:126px;height:auto;overflow:visible}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-card-head>b{font-size:16px}.shell :is(.overview-main,.reservations-main) .readable-card-grid :is(.booking-summary-line,.booking-summary-line>b,.booking-summary-party-size,.booking-summary-customer,.booking-summary-customer>strong,.resource-empty){font-size:15px}.shell :is(.overview-main,.reservations-main) .readable-card-grid :is(.resource-card-head .pill,.booking-summary-company,.booking-summary-notes){font-size:14px}.shell :is(.overview-main,.reservations-main) .readable-card-grid :is(.resource-card-head>b,.resource-card-head .pill,.booking-summary-line,.booking-summary-line>b,.booking-summary-party-size,.booking-summary-customer,.booking-summary-customer>strong,.booking-summary-company){line-height:18px;letter-spacing:0}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-booking-summary{gap:4px}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-bookings{flex:none;min-height:auto;justify-content:flex-start;overflow:visible}.shell :is(.overview-main,.reservations-main) .readable-card-grid :is(.booking-summary-party-size,.resource-card-head .pill,.booking-summary-line>b){flex:0 0 auto;white-space:nowrap}.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer>strong{flex:1 1 0%;min-width:0}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-card-head{flex-wrap:wrap}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-card-head>b{flex:1 1 2em;min-width:2em}.restaurant-status-grid.viewport-grid .booking-summary-party-size{flex:none;color:#5f5856;font-weight:500;white-space:nowrap}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-card-head,.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-line,.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer,.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-company,.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-taker{min-height:22px!important;line-height:22px;padding-top:0!important;padding-bottom:0!important}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-card-head .pill{min-height:22px!important;padding-top:2px!important;padding-bottom:2px!important}.shell :is(.overview-main,.reservations-main) .readable-card-grid .resource-bookings{margin-top:4px}.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer>strong{line-height:22px}.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-taker,.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer>.booking-summary-company{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;color:#5f5856}.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer>.booking-summary-company{flex:1 1 0%}.shell :is(.overview-main,.reservations-main) .readable-card-grid .booking-summary-customer>.booking-summary-vip{display:block;flex:0 0 auto;margin-left:auto;overflow:visible;white-space:nowrap;font-weight:600;line-height:22px}.shell :is(.overview-main,.reservations-main) .restaurant-status .status-topline,.shell :is(.overview-main,.reservations-main) .restaurant-status .status-control-row{min-width:0;flex:0 0 auto;flex-wrap:wrap}.shell :is(.overview-main,.reservations-main) .restaurant-status .status-topline .status-filter-buttons{display:flex;min-width:0;max-width:100%;flex:1 1 auto;flex-wrap:wrap}.shell :is(.overview-main,.reservations-main) .restaurant-status .status-control-row .period-filter{display:flex;min-width:0;max-width:100%;flex:0 1 auto;flex-wrap:wrap}.shell :is(.overview-main,.reservations-main) .restaurant-status .status-topline .status-filter-button,.shell :is(.overview-main,.reservations-main) .restaurant-status .status-control-row .period-filter>button{display:inline-flex;gap:5px;width:auto;min-width:max-content;max-width:none;flex:0 0 auto;align-items:center;justify-content:center;white-space:nowrap;text-align:center;line-height:1.2}.shell :is(.overview-main,.reservations-main) .restaurant-status .status-topline .status-filter-button>:is(span,b){display:inline-flex;min-width:max-content;flex:0 0 auto;align-items:center;justify-content:center;white-space:nowrap;text-align:center}.shell.web-menu-shell,.shell.web-menu-shell.overview-desktop-fit{grid-template-columns:minmax(0,1fr)}.shell.web-menu-shell>main,.shell.web-menu-shell.overview-desktop-fit>:is(.overview-main,.reservations-main){grid-column:1;min-width:0;max-width:none}.shell.web-menu-shell>main>.compact-header{grid-template-columns:max-content minmax(0,1fr) max-content;min-height:calc(44px / var(--overview-fit-scale, 1));height:auto;flex:0 0 auto;align-items:center}.shell.web-menu-shell>main>.compact-header :is(button,input,select,.file-button){height:calc(44px / var(--overview-fit-scale, 1));min-height:calc(44px / var(--overview-fit-scale, 1));padding-block:0}.shell.web-menu-shell>main>.compact-header :is(button,.file-button){display:inline-flex;align-items:center;justify-content:center}.web-navigation-start{display:flex;min-width:0;align-items:center;gap:12px;grid-column:1;grid-row:1}.web-menu-trigger{display:inline-flex;flex:none;height:calc(44px / var(--overview-fit-scale, 1));min-height:calc(44px / var(--overview-fit-scale, 1));align-items:center;justify-content:center;gap:6px;padding:0 12px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface);box-shadow:none;color:var(--app-text);font-size:calc(16px / var(--overview-fit-scale, 1));line-height:24px;white-space:nowrap}.web-menu-trigger:hover,.web-menu-trigger[aria-expanded=true]{border-color:#bca3a2;background:#f0e5e3;color:var(--app-primary)}.web-menu-trigger svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.web-menu-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.web-account-context{display:grid;min-width:0;gap:2px}.web-store-name{color:var(--app-text);font-size:16px;font-weight:600;line-height:22px;overflow-wrap:anywhere}.web-account-meta{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:4px 8px;color:var(--app-muted);font-size:12px;line-height:18px}.web-account-meta .training-mode-badge{min-height:22px;padding:0 7px;font-size:12px;line-height:20px}.web-menu-popover{position:fixed;z-index:1000;overflow-y:auto;overscroll-behavior:contain;padding:8px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-surface);box-shadow:0 8px 28px #39212424;color:var(--app-text)}.web-menu-store-picker{display:grid;gap:6px;margin-bottom:8px;padding:4px 4px 12px;border-bottom:1px solid var(--app-border);color:var(--app-muted);font-size:13px;line-height:20px}.web-menu-store-picker select{width:100%;min-width:0;height:44px;padding:0 40px 0 10px;border:1px solid var(--app-border);border-radius:6px;background:var(--app-surface);color:var(--app-text);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236d665e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 6 5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;font-family:inherit;font-size:16px;line-height:24px}.web-menu-item{display:flex;width:100%;min-height:44px;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:var(--app-text);font-size:16px;font-weight:400;line-height:24px;text-align:left;white-space:nowrap}.web-menu-item:hover,.web-menu-item[aria-current=page]{background:#f2e7e5;color:var(--app-primary)}.web-menu-item svg{flex:0 0 20px;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.web-menu-item .web-menu-current{margin-left:auto}.web-menu-account-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--app-border)}.web-menu-logout,.web-menu-logout:hover{color:var(--app-danger)}.web-menu-trigger:focus-visible,.web-menu-item:focus-visible,.web-menu-store-picker select:focus-visible{outline:2px solid var(--app-gold);outline-offset:1px}@media(max-width:1100px){.shell.web-menu-shell:not(.overview-desktop-fit)>main>.compact-header{grid-template-columns:minmax(0,1fr) max-content}.shell.web-menu-shell:not(.overview-desktop-fit)>main>.compact-header>.header-actions{grid-column:2;grid-row:1;align-self:center}.shell.web-menu-shell:not(.overview-desktop-fit)>main>.compact-header>.page-context-actions:not(:empty){grid-column:1 / -1;grid-row:2}}@media(max-width:480px){.web-navigation-start{gap:8px}.web-menu-trigger{padding:0 10px}.web-store-name{font-size:14px;line-height:20px}.web-account-meta{font-size:11px;line-height:16px}}.shell.web-menu-shell>.overview-main>.compact-header>.page-context-actions,.shell.web-menu-shell>.overview-main .overview-header-filters{min-width:0;max-width:100%}.shell.web-menu-shell>.overview-main .overview-header-filters .status-filter-buttons{display:flex;min-width:0;max-width:100%;flex:1 1 auto;flex-wrap:wrap;justify-content:flex-start;gap:calc(6px / var(--overview-fit-scale, 1));margin:0}.shell.web-menu-shell>.overview-main>.compact-header .status-filter-button{display:inline-flex;width:auto;min-width:max-content;flex:0 0 auto;align-items:center;justify-content:center;gap:calc(5px / var(--overview-fit-scale, 1));padding:0 calc(8px / var(--overview-fit-scale, 1));border-radius:999px;box-shadow:none;font-size:calc(14px / var(--overview-fit-scale, 1));line-height:20px;white-space:nowrap}.shell.web-menu-shell>.overview-main>.compact-header .status-filter-button>:is(span,b){display:inline-flex;min-width:max-content;flex:0 0 auto;align-items:center;justify-content:center;white-space:nowrap}.shell.web-menu-shell>.overview-main>.compact-header .status-filter-button>b{padding:1px 5px;border-radius:999px;background:#ffffffa3;color:inherit;font-size:calc(12px / var(--overview-fit-scale, 1));line-height:18px}.shell.web-menu-shell>.reservations-main .restaurant-status .status-topline .status-filter-buttons{justify-content:center;margin-left:0}.waiting-notice-mask{position:fixed;z-index:1450;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#271d1b75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.waiting-notice-dialog{display:flex;flex-direction:column;width:min(100%,700px);min-height:0;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:hidden;padding:24px;border:1px solid #d8cbc7;border-radius:20px;background:#fffdfb;color:#2e2927;box-shadow:0 24px 70px #2b1c193d;line-height:1.5}.waiting-notice-dialog:focus{outline:none}.waiting-notice-dialog button:focus-visible{outline:3px solid #926333;outline-offset:3px}.waiting-notice-header{display:block;flex:0 0 auto;margin:0 0 16px;padding:0}.waiting-notice-header h2{margin:0 0 12px;color:#3c302d;font-size:22px;line-height:1.3}.waiting-notice-resource{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0;overflow-wrap:anywhere}.waiting-notice-resource b{color:#493634;font-size:19px}.waiting-notice-resource span{font-size:16px}.waiting-notice-period{margin:6px 0 0;color:#655b57;font-size:14px}.waiting-notice-description{margin:8px 0 0;color:#655b57;font-size:14px}.waiting-notice-candidates{display:flex;flex:1 1 auto;flex-direction:column;gap:10px;min-height:80px;margin:0;padding:3px;overflow-y:auto;overscroll-behavior:contain;list-style:none}.waiting-notice-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid #e5dbd5;border-radius:12px;background:#f9f5f1}.waiting-notice-candidate-copy{min-width:0;overflow-wrap:anywhere}.waiting-notice-candidate-name{margin:0;color:#3c302d;font-size:17px;font-weight:600}.waiting-notice-candidate-detail{display:flex;flex-wrap:wrap;gap:4px 16px;margin:3px 0 0;font-size:15px}.waiting-notice-candidate-notes{margin:6px 0 0;color:#655b57;font-size:14px;white-space:pre-wrap}.waiting-notice-candidate button{min-height:44px;min-width:88px;flex-shrink:0;white-space:nowrap}.waiting-notice-dialog button:disabled{cursor:wait;opacity:.55}.waiting-notice-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:12px;padding-top:16px}.waiting-notice-feedback{flex:1 1 auto;min-width:0;color:#655b57;font-size:14px;overflow-wrap:anywhere}.waiting-notice-feedback p{margin:0}.waiting-notice-feedback .waiting-notice-error{color:#a03638}.waiting-notice-footer>button{flex:0 0 auto;min-height:44px;min-width:112px}@media(max-width:520px){.waiting-notice-mask{padding:12px}.waiting-notice-dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:18px 14px;border-radius:16px}.waiting-notice-header h2{font-size:20px}.waiting-notice-candidate{gap:10px;padding:12px}.waiting-notice-candidate button{min-width:80px;padding-inline:10px}.waiting-notice-footer{align-items:stretch;flex-direction:column;gap:8px;padding-top:12px}.waiting-notice-footer>button{align-self:flex-end}}@media(max-height:520px){.waiting-notice-mask{padding:8px}.waiting-notice-dialog{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:14px}.waiting-notice-header{margin-bottom:8px}.waiting-notice-header h2{margin-bottom:6px;font-size:20px}.waiting-notice-description{margin-top:4px}.waiting-notice-footer{padding-top:8px}}.reservation-evidence-layer{position:fixed;z-index:1600;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#271d1b80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reservation-evidence-dialog{display:flex;flex-direction:column;width:min(100%,960px);max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:hidden;border:1px solid #d8cbc7;border-radius:18px;background:#fffdfb;color:#2e2927;box-shadow:0 24px 70px #2b1c1940;line-height:1.55}.reservation-evidence-dialog:focus{outline:none}.reservation-evidence-dialog :is(button,input,textarea):focus-visible{outline:3px solid #926333;outline-offset:2px}.evidence-dialog-heading{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:18px 22px;border-bottom:1px solid #e5dbd5}.evidence-dialog-heading h2{margin:0;font-size:22px}.evidence-dialog-heading>div{display:flex;flex-wrap:wrap;gap:8px}.evidence-dialog-heading button{min-height:44px}.evidence-dialog-content{overflow-y:auto;overscroll-behavior:contain;padding:22px;min-height:0}.evidence-receipt-heading{display:block;margin:0 0 16px}.evidence-receipt-heading h3{margin:0 0 10px;font-size:22px}.evidence-receipt-heading p{margin:10px 0 0;overflow-wrap:anywhere}.evidence-training-badge{display:inline-block;padding:4px 9px;border:1px solid #d8b26b;border-radius:6px;background:#fff4d9;color:#785b26;font-size:14px}.evidence-boundary,.evidence-empty,.evidence-warning,.evidence-review-due{padding:12px;border-radius:8px;background:#f5ede6;color:#655044;font-size:14px}.evidence-retention,.evidence-summary,.evidence-timeline{margin:20px 0}.reservation-evidence-dialog h4{margin:0 0 8px;font-size:17px}.evidence-retention p{margin:6px 0;font-size:14px;overflow-wrap:anywhere}.evidence-retention .evidence-review-due{color:#8e3f22;background:#fff0d9;font-weight:600}.evidence-table-scroll{overflow-x:auto}.evidence-snapshot-table{width:100%;table-layout:fixed;font-size:14px}.evidence-snapshot-table :is(th,td){padding:8px;border-bottom:1px solid #e7dfd9;overflow-wrap:anywhere;white-space:pre-wrap}.evidence-snapshot-table th:first-child{width:30%}.evidence-snapshot-table thead{background:#f5f0eb}.evidence-timeline>ol{margin:0;padding:0;list-style:none}.evidence-event{padding:18px 0;border-top:1px solid #dcd1c9}.evidence-event-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 16px;justify-content:space-between}.evidence-event-heading h4{margin:0}.evidence-event-heading time,.evidence-event-actor,.evidence-muted{color:#6d625b;font-size:14px}.evidence-event-actor{margin:6px 0 10px}.evidence-event-text,.evidence-share-snapshot p{overflow-wrap:anywhere;white-space:pre-wrap}.evidence-share-snapshot{margin-top:12px;padding:14px;background:#f8f4f0;border:1px solid #e7dfd9;border-radius:8px}.evidence-share-snapshot :is(h5,h6){margin:10px 0 5px;font-size:15px}.evidence-share-snapshot h5{margin-top:0}.evidence-share-snapshot p{margin:6px 0;font-size:14px}.evidence-management{margin-top:22px;border-top:2px solid #d8cbc7;padding-top:16px}.evidence-management h3{margin:0 0 10px}.evidence-management form{display:grid;gap:10px;margin:14px 0}.evidence-management label{display:grid;gap:6px;font-size:14px}.evidence-management :is(input,textarea){width:100%;min-width:0;border:1px solid #cdbfb4;border-radius:8px;padding:10px;background:#fff;color:#2e2927;font:inherit}.evidence-management textarea{resize:vertical}.evidence-management input[type=date]{max-width:260px}.evidence-management button{justify-self:start;min-height:44px}.evidence-hold-actions,.evidence-release-confirmation>div{display:flex;flex-wrap:wrap;gap:10px}.evidence-release-confirmation{padding:14px;margin-top:14px;background:#fff0e7;border:1px solid #deb89d;border-radius:8px}.evidence-form-error,.evidence-load-error [role=alert]{color:#a03638}.reservation-evidence-dialog button:disabled{cursor:not-allowed;opacity:.55}.ledger-action:has(.reservation-evidence-button){flex-wrap:wrap;gap:5px}@media(max-width:600px){.reservation-evidence-layer{padding:10px}.reservation-evidence-dialog{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);border-radius:12px}.evidence-dialog-heading,.evidence-dialog-content{padding:14px}.evidence-dialog-heading h2,.evidence-receipt-heading h3{font-size:20px}.evidence-dialog-heading button{font-size:14px}.evidence-snapshot-table{font-size:13px}.evidence-snapshot-table :is(th,td){padding:7px 5px}}@media print{body.reservation-evidence-open>:not(.reservation-evidence-layer){display:none!important}body.reservation-evidence-open{margin:0!important;background:#fff!important}body.reservation-evidence-open .reservation-evidence-layer{display:block!important;position:static!important;padding:0!important;background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}body.reservation-evidence-open .reservation-evidence-dialog{display:block!important;width:100%!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important;border-radius:0!important}body.reservation-evidence-open .evidence-dialog-content{display:block!important;overflow:visible!important;padding:0!important}body.reservation-evidence-open .evidence-no-print{display:none!important}body.reservation-evidence-open .evidence-table-scroll{overflow:visible!important}body.reservation-evidence-open .evidence-event-heading{break-after:avoid}body.reservation-evidence-open .evidence-snapshot-table tr{break-inside:avoid}body.reservation-evidence-open .evidence-print-receipt{color:#111;font-size:11pt}}.customer-share-page{--guest-title: 20px;--guest-value: 18px;--guest-price: 22px;--guest-subtitle: 16px;--guest-notice-title: 18px;--guest-functional-gold: #86612f;min-height:100dvh;padding:22px 14px 42px;background:#fbfaf8;color:#211e1d}.customer-share-content,.customer-share-state,.customer-preview-shell{width:min(100%,720px);margin:0 auto}.customer-share-content{background:#fff}.customer-share-media picture{display:block;min-width:0}.customer-preview-shell{position:sticky;z-index:20;top:10px;margin-bottom:14px}.customer-preview-toolbar{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #d8cbc7;border-radius:16px;background:#fffdfbf5;box-shadow:0 10px 30px #40262724;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.customer-preview-toolbar>div{display:flex;align-items:center;gap:12px}.customer-preview-toolbar>div>span{color:#766c69;font-size:14px;font-weight:700;letter-spacing:.08em}.customer-preview-toolbar button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:11px;font-size:15px;font-weight:700}.customer-preview-toolbar button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.customer-preview-back{border:1px solid #bba9a4;background:#f4ece8;color:#493634}.customer-preview-send{border:1px solid #5a2630;background:#5a2630;color:#fffdfb}.customer-preview-sms{border:1px solid #aa8247;background:#fffaf0;color:#6d4b1f}.customer-preview-toolbar button:disabled{cursor:wait;opacity:.62}.customer-preview-feedback{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:10px;padding:16px;border:1px solid #d2bd94;border-radius:14px;background:#fff9eb;box-shadow:0 10px 30px #4026271f}.customer-preview-feedback.error{border-color:#c9828c;background:#fff1f3}.customer-preview-feedback strong{display:block;color:#5a2630;font-size:17px}.customer-preview-feedback p{margin:5px 0 0;color:#4f4744;font-size:15px;line-height:1.55}.customer-preview-feedback button{flex:none;min-height:42px;padding:8px 14px;border:1px solid #5a2630;border-radius:10px;background:#fffdfb;color:#5a2630;font-size:15px;font-weight:700}.customer-share-state{margin-top:15vh;padding:34px 24px;border:1px solid #ded4cf;border-radius:18px;background:#fffdfb;text-align:center}.customer-share-state h1{margin:0;color:#5a2630;font-size:var(--guest-title)}.customer-share-state p{margin:14px 0 0;color:#6f6663;font-size:16px;line-height:1.7}.customer-share-hero{display:block;width:100%;height:auto;margin:0;border-radius:0}.customer-share-card{margin:0;padding:22px;border:0;border-top:1px solid #e5dfda;border-radius:0;background:#fff;box-shadow:none}.customer-share-special-introduction{white-space:pre-wrap;overflow-wrap:anywhere}.customer-share-description,.customer-address p{color:#3f3937;font-size:18px;line-height:1.75}.customer-reservation-guest{margin-bottom:18px;line-height:1.6;overflow-wrap:anywhere}.customer-reservation-guest span{color:#766c69;font-size:14px}.customer-reservation-guest b{font-size:var(--guest-value);font-weight:700}.customer-reservation-contact{margin-top:18px;padding-top:18px;border-top:1px solid #e7dcda}.customer-reservation-topline{flex-wrap:wrap;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.customer-reservation-topline>div{min-width:0;flex:0 1 auto;display:grid;gap:6px}.customer-reservation-topline span,.customer-reservation-summary dt{color:#766c69;font-size:14px}.customer-reservation-topline b,.customer-reservation-summary dd{font-size:var(--guest-value);font-weight:700}.customer-reservation-status{flex:none;max-width:100%;padding:8px 13px;border-radius:999px;background:#f3e7e7;color:#5a2630;font-size:14px}.customer-reservation-status.status-PENDING{background:#f7eedf;color:#805b28}.customer-reservation-status.status-ARRIVED{background:#f1dfe1;color:#792d38}.customer-reservation-status.status-COMPLETED,.customer-reservation-status.status-CANCELLED{background:#eee9e8;color:#625a57}.customer-reservation-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 0;padding-top:18px;border-top:1px solid #e7dcda}.customer-reservation-summary dl>div{display:grid;min-width:0;gap:6px}.customer-reservation-summary dd,.customer-reservation-summary dt{margin:0;overflow-wrap:anywhere}.customer-pending-note{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:#f8eedf;color:#704d24;font-size:16px;line-height:1.7}.customer-environment h2,.customer-share-centered h2{margin:0 0 16px;font-size:var(--guest-title);text-align:center}.customer-environment>div{display:grid;grid-template-columns:1fr;gap:8px}.customer-environment>div.two{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-environment img{display:block;width:100%;height:auto;border-radius:12px}.customer-title-ornament{display:flex;align-items:center;justify-content:center;gap:9px;margin:-4px auto 18px}.customer-title-ornament i{width:42px;height:1px;background:#aa8247}.customer-title-ornament span{width:5px;height:5px;border-radius:50%;background:#aa8247}.customer-dish-list{display:grid;gap:12px;margin:0;padding:0;list-style:none;font-size:18px;line-height:1.5;text-align:center}.customer-package-section{padding:0}.customer-package-list{display:grid;gap:0}.customer-package-list article{overflow:hidden;border:0;border-top:1px solid #e5dfda;border-radius:0;background:#fff}.customer-package-list article:first-child{border-top:0}.customer-package-head{display:flex;width:100%;align-items:center;flex-direction:column;gap:12px;padding:24px 20px;border-radius:0;background:transparent;color:#211e1d;transition:background-color .16s ease}.customer-package-head:not(.expanded):hover{background:#faf7f5}.customer-package-head b{font-size:var(--guest-title);letter-spacing:2px}.customer-package-head span{color:#5a2630;font-size:var(--guest-price);font-weight:700;letter-spacing:1px}.customer-package-head small{color:#6f6663;font-size:18px;line-height:1.8;letter-spacing:1px}.customer-package-head em{color:#5a2630;font-size:16px;font-style:normal;font-weight:600;letter-spacing:1px}.customer-package-head.expanded{background:#fff}.customer-package-groups{padding:0 20px 20px;border-top:1px solid #e7dcda;text-align:center}.customer-package-groups h3{margin:22px 0 9px;color:var(--guest-functional-gold);font-size:var(--guest-subtitle);letter-spacing:2px}.customer-package-groups p{margin:8px 0;font-size:18px;line-height:1.8;letter-spacing:1px}.customer-notice{text-align:left}.customer-notice>h2{margin:0;color:#5a2630;font-size:var(--guest-notice-title);letter-spacing:2px;text-align:center}.customer-notice article+article{margin-top:20px;padding-top:18px;border-top:1px solid #eadfda}.customer-notice h3{margin:0 0 8px;color:var(--guest-functional-gold);font-size:var(--guest-subtitle);letter-spacing:1px}.customer-notice p{margin:0;color:#3f3937;font-size:16px;line-height:1.8;white-space:pre-line}.customer-notice strong{display:block;margin-top:22px;color:#5a2630;font-size:16px;line-height:1.7;text-align:right}.customer-hours>div,.customer-contact-line{display:flex;align-items:center;justify-content:space-between;gap:14px}.customer-hours>div+div{margin-top:16px}.customer-hours span{color:#514946;font-size:16px}.customer-hours b{font-size:var(--guest-value)}.customer-section-kicker{margin:0 0 16px;color:var(--guest-functional-gold);font-size:14px;letter-spacing:.1em}.customer-contact-line b{font-size:var(--guest-value)}.customer-contact-line a,.customer-navigation-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:9px 16px;border:1px solid #5a2630;border-radius:10px;color:#5a2630;font-size:16px;font-weight:700;text-decoration:none}.customer-address p{margin:0 0 18px}.customer-navigation-button{width:100%;gap:6px;border:1px solid #5a2630;background:#5a2630;color:#fffdfb;cursor:pointer}.customer-navigation-pin{display:block;flex:0 0 18px;width:18px;height:18px}.customer-navigation-unavailable{display:block;color:#786f6b;font-size:15px;line-height:1.6}.customer-navigation-mask{position:fixed;z-index:500;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#1c14158f}.customer-navigation-dialog{width:min(430px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:24px;border:1px solid #e0d5d0;border-radius:20px;background:#fffdfb;box-shadow:0 24px 70px #2d1d1f3d}.customer-navigation-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.customer-navigation-dialog header span{color:#aa8247;font-size:14px;letter-spacing:.1em}.customer-navigation-dialog h2{margin:6px 0 0;color:#211e1d;font-size:24px}.customer-navigation-close{width:42px;height:42px;padding:0;border:1px solid #d8cbc5;border-radius:50%;background:#f8f3f0;color:#5a2630;cursor:pointer;font-size:27px;line-height:1}.customer-navigation-address{margin:18px 0;padding:14px 16px;border-radius:12px;background:#f6f1ee;color:#514946;line-height:1.65}.customer-navigation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-navigation-options a,.customer-navigation-copy{display:flex;min-height:48px;align-items:center;justify-content:center;padding:10px 14px;border:1px solid #cbb9b1;border-radius:12px;background:#fff;color:#5a2630;cursor:pointer;font-size:16px;font-weight:700;text-decoration:none}.customer-navigation-copy{width:100%;margin-top:12px;border-color:#5a2630;background:#5a2630;color:#fffdfb}.customer-navigation-hint,.customer-navigation-feedback{margin:12px 0 0;color:#756c69;font-size:14px;line-height:1.6}.customer-navigation-feedback{color:#5a2630;text-align:center}.customer-map-dialog{box-sizing:border-box;width:min(480px,100%)}.customer-map-dialog header{flex-direction:row;gap:16px;margin-bottom:0}.customer-map-dialog header span{color:var(--guest-functional-gold);font-size:13px;line-height:1.5;letter-spacing:1px}.customer-map-dialog h2{margin-top:4px;font-size:20px;line-height:1.4}.customer-map-dialog .customer-navigation-close{display:flex;flex:0 0 44px;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px}.customer-map-dialog .customer-navigation-address{margin:16px 0 12px;padding:12px 14px;font-size:14px;overflow-wrap:anywhere;word-break:break-word}.customer-map-dialog .customer-navigation-options a,.customer-map-dialog .customer-navigation-copy{box-sizing:border-box;min-height:48px;padding:11px 16px;font-size:16px;font-weight:600;line-height:1.5}.customer-map-dialog .customer-navigation-options a{gap:6px;border-color:#5a2630}.customer-map-option-pin{flex:0 0 18px;width:18px;height:18px}.customer-map-dialog .customer-navigation-copy{border-color:#cbb9b1;background:#fff;color:#5a2630}.customer-map-dialog .customer-navigation-hint,.customer-map-dialog .customer-navigation-feedback{font-size:14px}.customer-sms-warning{margin:12px 0 0;padding:12px 14px;border-left:3px solid #aa8247;background:#fff8e9;color:#6f5129;line-height:1.6}.customer-sms-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-sms-actions .customer-navigation-copy{margin-top:12px}.customer-sms-actions .customer-navigation-copy.secondary{border-color:#cbb9b1;background:#fff;color:#5a2630}.customer-share-empty{margin:0;padding:20px;border-radius:12px;background:#f3eeeb;color:#756c69;font-size:16px;text-align:center}.customer-share-content footer{padding:18px;border-top:1px solid #e5dfda;background:#fff;color:var(--guest-functional-gold);font-size:14px;font-weight:700;letter-spacing:.24em;text-align:center}@media(max-width:520px){.customer-share-page{padding:14px 10px 34px}.customer-preview-shell{top:6px}.customer-preview-toolbar{align-items:stretch;flex-direction:column}.customer-preview-toolbar>div{justify-content:space-between}.customer-preview-toolbar button{flex:1}.customer-preview-feedback{align-items:stretch;flex-direction:column}.customer-preview-feedback button{width:100%}.customer-share-card{padding:18px}.customer-reservation-summary dl{gap:10px}.customer-environment>div.two{grid-template-columns:1fr}.customer-navigation-mask{align-items:flex-end;padding:0}.customer-navigation-dialog{width:100%;max-height:82vh;padding:22px 18px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.customer-map-dialog{max-height:calc(100vh - env(safe-area-inset-top));padding:24px 16px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0}.customer-map-dialog .customer-navigation-options,.customer-sms-actions{grid-template-columns:1fr}}@media(min-width:700px){.customer-share-page{--guest-title: 22px;--guest-value: 20px;--guest-price: 24px;--guest-subtitle: 18px;--guest-notice-title: 20px}}.customer-reservation-topline b{overflow-wrap:anywhere}.customer-contact-line{flex-wrap:wrap}.customer-contact-line b{overflow-wrap:anywhere}.customer-contact-line a,.customer-navigation-button{flex-shrink:0;line-height:24px}.customer-package-head{cursor:pointer}.customer-package-head em{display:inline-flex;align-items:center;gap:8px}.customer-package-chevron{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.customer-package-chevron.up{transform:rotate(180deg)}.customer-share-page button:focus-visible,.customer-share-page a:focus-visible{outline:2px solid #5a2630;outline-offset:3px}.customer-share-retry{min-height:44px;margin-top:18px;padding:10px 16px;border:1px solid #5a2630;border-radius:10px;background:#5a2630;color:#fffdfb;font-size:16px;line-height:22px;cursor:pointer}.customer-share-media{position:relative;min-width:0;overflow:hidden}.customer-environment .customer-share-media{border-radius:12px}.customer-share-media.media-loading,.customer-share-media.media-error{background:#f3eeeb}.customer-share-media.media-loading img,.customer-share-media.media-error img{position:absolute;top:0;left:0;visibility:hidden}.customer-media-feedback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:12px;color:#6f6663;font-size:14px;line-height:1.6;text-align:center}.customer-map-dialog{overscroll-behavior:contain}.customer-share-heading{display:block;text-align:center;margin:0;padding:8px 12px 12px;color:#57232d}.customer-share-heading p{margin:0;font-size:22px;line-height:30px;font-weight:500;overflow-wrap:anywhere}
