: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:880px}@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}.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 .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{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.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}.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)}.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,.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{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 8px 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-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}.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-summary,.mobile-nav-shortcuts,.mobile-menu-mask{display:none}.sidebar-navigation .account-password-menu-button{margin-top:auto}.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:#d5e9fa}.restaurant-status-card.available.private-room,.resources article.available.private-room{border-color:#cf935f;background:#f7dfc9}.restaurant-status-card.booked,.resources article.booked{background:#d4eedc}.restaurant-status-card.in-use,.resources article.in-use{background:#f5cdd2}.restaurant-status-card.pending-resource,.resources article.pending-resource{background:#ead8f2}.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:#f2f2f7;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:#d5e9fa}.resources article.private-room{border-width:2px;border-color:#cf935f;background:#f7dfc9}.resources article.takeout{border-width:2px;border-color:#8e8e93;background:#f2f2f7}.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-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:1121px){.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:1280px){.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:900px){.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-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);gap:8px;min-height:0}.reservations-main .compact-header>.eyebrow,.reservations-main .compact-header>.page-context-actions:not(:empty),.reservations-main .compact-header>.header-actions{grid-column:1;grid-row:auto;min-width:0}.reservations-main .page-context-controls,.reservations-main .compact-header>.header-actions{display:flex;width:100%;flex-wrap:wrap;white-space:normal}.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:1280px)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:1281px)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-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-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:grid;grid-template-columns:150px 150px minmax(190px,1fr) 140px 150px auto;gap:10px;align-items:end;margin-bottom:0;padding:12px 14px;border-bottom:1px solid #e7dfda;background:#fff}.reservation-ledger-filters label{display:grid;gap:5px;min-width:0;color:#6f6764;font-size:13px}.reservation-ledger-filters input,.reservation-ledger-filters select{width:100%;min-width:0;height:38px;padding:0 10px;border:1px solid #d8cfca;border-radius:7px;background:#fff;color:#2d2928;font-size:14px}.reservation-ledger-filter-actions{display:flex;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:1120px){.shell>aside{display:block;position:sticky;z-index:30;top:0;height:56px;min-height:56px;padding:0 12px;overflow:visible}.mobile-nav-summary{display:flex;height:56px;align-items:center;justify-content:space-between;gap:8px}.mobile-nav-summary>strong{min-width:0;overflow:hidden;color:#fffdfb;font-size:18px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.mobile-nav-title{display:none}.mobile-nav-shortcuts{display:flex;min-width:0;flex:1;align-items:center;gap:6px;overflow:hidden}.mobile-nav-shortcut{display:inline-flex;min-width:0;min-height:44px;align-items:center;justify-content:center;padding:0 12px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:#f1e8e5;font-size:15px;font-weight:500;line-height:1;white-space:nowrap}.mobile-nav-shortcut:hover,.mobile-nav-shortcut.active{background:#ffffff1a;color:#fffdfb}.mobile-nav-shortcut:focus-visible{outline:2px solid #d7b271;outline-offset:1px}.mobile-nav-label-full{display:none}.mobile-nav-label-compact{display:inline}.mobile-nav-toggle{display:inline-flex;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:#fffdfb;line-height:1}.mobile-nav-toggle:hover,.mobile-nav-toggle[aria-expanded=true]{background:#ffffff1a}.mobile-nav-toggle:active{background:#ffffff29;transform:scale(.96)}.mobile-nav-toggle:focus-visible{outline:2px solid #d7b271;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:absolute;z-index:32;top:56px;right:12px;left:auto;width:clamp(240px,46vw,280px);max-height:calc(100dvh - 56px);grid-template-columns:minmax(0,1fr);gap:6px;padding:10px;overflow-y:auto;border:1px solid rgba(215,178,113,.52);border-radius:0 0 14px 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:56px;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:1120px){.shell{grid-template-columns:minmax(0,1fr)}.shell>aside{grid-column:1;grid-row:1}.shell>main{width:100%;min-width:0;grid-column:1;grid-row:2}.overview-main,.reservations-main:not(:has(.reservation-form)),.resources-main:not(:has(.form-grid)){height:calc(100dvh - 56px)}}@media(max-width:1280px){.reservation-ledger-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.reservation-ledger-filter-actions{align-self:end}.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{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-ledger-keyword,.reservation-ledger-filter-actions{grid-column:1 / -1}.reservation-ledger-filter-actions button{flex:1}.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:900px){.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{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-ledger-keyword,.reservation-ledger-filter-actions{grid-column:1 / -1}.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;flex:1}.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:1120px){.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(4,minmax(0,1fr))}.customer-form>.form-back-row{grid-column:1 / span 2}.customer-form>h3{grid-column:3 / -1;align-self:center;margin:0}.customer-form>.customer-tag-field,.customer-form>label.wide:has(textarea),.customer-form>.customer-save-actions{grid-column:span 2}.customer-form>.customer-save-actions{display:flex;grid-column:3 / -1;align-items:center;justify-content:flex-end}.customer-form>.customer-save-actions>button{min-width:120px}@media(min-width:1181px){.customer-form>label.wide:has(textarea){display:grid;align-self:stretch;grid-template-rows:auto minmax(0,1fr)}.customer-form>label.wide:has(textarea)>textarea{height:100%;min-height:0;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}.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-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}@media(min-width:1121px){.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}}.customer-share-page{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-content>picture,.customer-environment 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:24px}.customer-share-state p{margin:14px 0 0;color:#6f6663;font-size:17px;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-description,.customer-address p{color:#3f3937;font-size:18px;line-height:1.75}.customer-reservation-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.customer-reservation-topline>div{display:grid;gap:6px}.customer-reservation-topline span,.customer-reservation-summary dt{color:#766c69;font-size:15px}.customer-reservation-topline b,.customer-reservation-summary dd{font-size:20px;font-weight:700}.customer-reservation-status{padding:8px 13px;border-radius:999px;background:#f3e7e7;color:#5a2630;font-size:15px}.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:22px;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:22px;letter-spacing:2px}.customer-package-head span{color:#5a2630;font-size:21px;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:#aa8247;font-size:18px;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:22px;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:#aa8247;font-size:18px;letter-spacing:1px}.customer-notice p{margin:0;color:#3f3937;font-size:17px;line-height:1.8;white-space:pre-line}.customer-notice strong{display:block;margin-top:22px;color:#5a2630;font-size:17px;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:18px}.customer-hours b{font-size:19px}.customer-section-kicker{margin:0 0 16px;color:#aa8247;font-size:16px;letter-spacing:.1em}.customer-contact-line b{font-size:19px}.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%;border:1px solid #5a2630;background:#5a2630;color:#fffdfb;cursor:pointer}.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-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:#aa8247;font-size:16px;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-reservation-topline b,.customer-reservation-summary dd{font-size:18px}.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-sms-actions{grid-template-columns:1fr}}
