/* Object editors use a dedicated workspace rather than sitting below a list. */
.editor-page { width: min(1180px, 100%); margin: 0 auto; box-shadow: 0 12px 28px rgba(23, 45, 37, .07); }
.editor-page-bar { display: flex; align-items: center; justify-content: space-between; margin: -26px -26px 22px; padding: 13px 26px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.editor-page-bar span { color: #8a9790; font-size: 12px; }
.back-link { padding: 5px 0; background: transparent; color: var(--brand); font-weight: 800; }
.batch-selector { display: flex; align-items: end; gap: 14px; margin: 2px 0 20px; padding: 14px 16px; border: 1px solid #dce8df; border-radius: 10px; background: #f7fbf8; }
.batch-selector label { display: grid; min-width: min(360px, 100%); gap: 7px; color: #516259; font-size: 12px; font-weight: 700; }
.batch-selector select { min-height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: #25382d; }
.batch-selector small { color: var(--muted); line-height: 1.5; }
.image-upload-field input[type="file"] { width: 100%; min-height: 40px; padding: 7px 10px; border: 1px dashed #9cc8ad; border-radius: 7px; background: #f8fcf9; color: #37624a; cursor: pointer; }
.image-upload-field input[type="file"]::file-selector-button { margin-right: 10px; padding: 4px 9px; border: 0; border-radius: 5px; background: #dff1e5; color: #176d47; font-weight: 750; cursor: pointer; }
.image-upload-field small { min-height: 17px; color: #688176; }
.managed-image-preview { display: grid; place-items: center; width: min(220px, 100%); min-height: 132px; padding: 0; overflow: hidden; border: 1px solid #d8e2da; border-radius: 10px; background: #f4f7f4; color: #718078; cursor: default; }
.managed-image-preview img { display: block; width: 100%; max-height: 260px; object-fit: contain; background: #eef2ee; }
.managed-image-preview span { padding: 18px; font-size: 12px; }
.managed-image-preview.is-empty { min-height: 76px; border-style: dashed; }
.image-crop-picker { display: grid; gap: 9px; width: min(420px, 100%); margin-top: 4px; padding: 12px; border: 1px solid #d8e5d9; border-radius: 10px; background: #f8fbf8; }
.image-crop-picker-head { display: grid; gap: 3px; }
.image-crop-picker-head b { color: #314b3b; font-size: 13px; }
.image-crop-picker-head small { color: #718078; font-size: 12px; line-height: 1.45; }
.image-crop-frame { position: relative; display: grid; width: 100%; min-height: 180px; padding: 0; overflow: hidden; border: 1px solid #bbcfbf; border-radius: 7px; background: #e7eee8; touch-action: none; }
.image-crop-frame.managed-image-preview img, .image-crop-frame img { position: relative; display: block; width: 100%; max-width: 100%; max-height: none; height: auto; background: transparent; object-fit: contain; user-select: none; pointer-events: none; }
.image-crop-frame span { position: absolute; inset: 0; display: grid; place-items: center; padding: 16px; color: #718078; font-size: 12px; text-align: center; }
.image-crop-frame .image-crop-selection { position: absolute; box-sizing: border-box; display: grid; place-items: end end; padding: 5px 7px; border: 2px solid #5c8f65; border-radius: 5px; background: rgba(92, 143, 101, 0.12); box-shadow: 0 0 0 999px rgba(26, 45, 32, 0.28); color: #fff; cursor: grab; font-size: 10px; font-style: normal; pointer-events: auto; touch-action: none; }
.image-crop-frame .image-crop-selection:active { cursor: grabbing; }
.image-crop-picker-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.image-crop-picker-actions .quiet { min-height: 30px; padding: 4px 9px; font-size: 12px; }
.image-crop-picker-actions small { color: #688176; font-variant-numeric: tabular-nums; }
.product-main-image-card, .product-detail-image-card { padding-top: 22px; }
.time-slot-picker { display: grid; gap: 10px; margin-top: 16px; padding: 14px; border: 1px solid #dce8df; border-radius: 9px; background: #f8fbf9; }
.time-slot-picker > span { color: #314b3b; font-weight: 800; font-size: 13px; }
.time-slot-picker > small { color: var(--muted); font-size: 12px; }
.time-slot-options { display: flex; flex-wrap: wrap; gap: 9px; }
.time-slot-options label { display: inline-flex; align-items: center; gap: 6px; min-width: 128px; padding: 9px 11px; border: 1px solid #cfe0d4; border-radius: 7px; background: #fff; color: #314b3b; cursor: pointer; }
.time-slot-options input { accent-color: var(--brand); }
.time-slot-options b { font-size: 13px; }
.time-slot-options small { color: #74857a; font-size: 11px; }
.custom-time-range { margin-top: 2px; }
.delivery-schedule-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #dce8df; border-radius: 10px; background: #fbfdfb; }
.schedule-group-head { display: grid; gap: 4px; padding-right: 25px; }
.schedule-group-head b { color: #314b3b; font-size: 14px; }
.schedule-group-head small { color: var(--muted); font-size: 12px; }
.multi-date-picker { position: relative; width: min(440px, 100%); }
.multi-date-picker-trigger { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 12px; border: 1px solid #d7e4da; border-radius: 9px; background: #fff; }
.multi-date-picker-trigger > div { display: grid; gap: 2px; }
.multi-date-picker-trigger b { color: #314b3b; font-size: 13px; }
.multi-date-picker-trigger small { color: var(--muted); font-size: 11px; }
.multi-date-picker-trigger .quiet { min-height: 34px; padding: 0 12px; white-space: nowrap; }
.multi-date-calendar { position: absolute; z-index: 12; top: calc(100% + 7px); left: 0; width: min(390px, calc(100vw - 80px)); padding: 14px; border: 1px solid #cfded1; border-radius: 12px; background: #fffefb; box-shadow: 0 16px 38px rgba(35, 62, 45, .18); }
.multi-date-calendar[hidden] { display: none; }
.multi-date-calendar header { display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; margin-bottom: 10px; }
.multi-date-calendar header strong { color: #294535; font-size: 14px; text-align: center; }
.multi-date-calendar header button { width: 32px; height: 32px; padding: 0; border: 1px solid #dce7dd; border-radius: 7px; background: #f6faf5; color: #44604e; }
.multi-date-weekdays, .multi-date-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.multi-date-weekdays { margin-bottom: 4px; color: #87938b; font-size: 10px; text-align: center; }
.multi-date-grid button { position: relative; display: grid; min-width: 0; height: 44px; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #31453a; font-size: 12px; }
.multi-date-grid button:hover:not(:disabled):not(.selected) { border-color: #b9d3be; background: #edf6ef; }
.multi-date-grid button.outside { color: #a8b0aa; }
.multi-date-grid button.today { border-color: #91b79a; }
.multi-date-grid button.selected { border-color: #397d52; background: #397d52; color: #fff; font-weight: 800; }
.multi-date-grid button.occupied { background: #f1f3ef; color: #8f9991; cursor: not-allowed; }
.multi-date-grid button.occupied span { transform: translateY(-6px); }
#app .workspace .multi-date-grid button small { position: absolute; right: 0; bottom: 3px; left: 0; color: #829087; font-size: 8px !important; font-weight: 700; line-height: 10px !important; text-align: center; }
.multi-date-selection { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 38px; margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: #f3f8f2; }
.multi-date-selection span { color: #53665a; font-size: 10px; line-height: 1.4; }
.multi-date-selection button { flex: 0 0 auto; padding: 0; border: 0; background: transparent; color: #7a6a56; font-size: 11px; }
.multi-date-calendar footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #e3e9e3; }
.multi-date-calendar footer button { min-height: 34px; padding: 0 13px; font-size: 11px; }
.schedule-date-list { display: flex; flex-wrap: wrap; gap: 8px; min-height: 22px; }
.schedule-date-list > small { color: var(--muted); font-size: 12px; }
.schedule-date-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 99px; background: #e3f2e7; color: #236442; font-size: 12px; font-weight: 700; }
.schedule-date-chip:has([data-schedule-date-open]:not(:checked)) { background: #f2f2ee; color: #6f766f; }
.schedule-date-chip button { width: 16px; height: 16px; padding: 0; border-radius: 50%; background: #b8d9c1; color: #24593c; line-height: 16px; }
.schedule-toggle { display: inline-flex; align-items: center; gap: 3px; color: #516259; font-size: 12px; font-weight: 700; white-space: nowrap; }
.schedule-toggle input { width: 14px; height: 14px; min-height: 0; margin: 0; accent-color: #3d8b5a; }
.schedule-time-list { display: grid; gap: 9px; }
.schedule-time-list > span { color: #314b3b; font-size: 13px; font-weight: 800; }
.schedule-time-row { display: flex; align-items: center; gap: 8px; width: fit-content; padding: 8px; border: 1px solid #dbe7de; border-radius: 8px; background: #fff; }
.schedule-time-row input { min-height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; color: #25382d; }
.schedule-time-row.invalid { border-color: #d46262; background: #fff8f7; }
.schedule-time-row.invalid input { border-color: #d46262; }
.schedule-time-row span { color: var(--muted); font-size: 12px; }
.schedule-quota-field { display: inline-flex; align-items: center; gap: 4px; color: #516259; font-size: 12px; font-weight: 700; white-space: nowrap; }
.schedule-quota-field.hidden { display: none; }
.schedule-quota-field input { width: 54px; }
.schedule-time-row .remove-line { position: static; width: 26px; height: 26px; border: 0; background: #f5eeee; color: #9a4a4a; }
.schedule-template-toolbar, .product-info-template-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; padding: 10px 11px; border: 1px solid #dbe7d7; border-radius: 8px; background: #f3f8f0; }
.schedule-template-toolbar label, .product-info-template-toolbar label { display: grid; min-width: 190px; flex: 1 1 190px; gap: 5px; color: #52654e; font-size: 11px; font-weight: 700; }
.schedule-template-toolbar select, .product-info-template-toolbar select { min-height: 34px; padding: 0 8px; border: 1px solid #cbdcc4; border-radius: 6px; background: #fff; color: #3b5838; }
.schedule-template-toolbar .quiet, .product-info-template-toolbar .quiet { min-height: 34px; padding: 0 10px; font-size: 12px; }
.schedule-template-manager, .product-info-template-manager { position: relative; min-height: 34px; }
.schedule-template-manager summary, .product-info-template-manager summary { display: flex; min-height: 34px; align-items: center; padding: 0 7px; color: #5f7558; font-size: 12px; font-weight: 700; cursor: pointer; list-style: none; }
.schedule-template-manager summary::-webkit-details-marker, .product-info-template-manager summary::-webkit-details-marker { display: none; }
.product-info-template-toolbar { display: grid; align-items: start; }
.product-info-template-actions { display: flex; align-items: end; flex-wrap: nowrap; gap: 8px; }
.product-info-template-actions label { display: block; width: 300px; min-width: 0; flex: 0 1 300px; }
.product-info-template-actions select { width: 100%; }
.product-info-template-actions .quiet { flex: 0 0 auto; white-space: nowrap; }
.product-info-template-toolbar .product-info-template-manager { justify-self: start; }
.option-price-row { gap: 0; }
.option-price-row .option-price-field { display: inline-flex; align-items: center; gap: 3px; height: 32px; padding: 0 6px; border: 1px solid #ded7ca; border-left: 0; background: #fffdf9; color: #6c795f; font-size: 11px; white-space: nowrap; }
.option-price-row .option-price-field input { width: 58px; min-height: 28px; padding: 0 3px; border: 0 !important; border-radius: 0; background: transparent; }
.option-price-row .option-price-field input:focus { box-shadow: none; }
.form-field.is-variant-priced input:disabled { border-color: #d8ded3; background: #eef2eb; color: #7a8675; cursor: not-allowed; opacity: 1; }
.form-field.is-variant-priced > span::after { display: inline-flex; align-items: center; min-height: 18px; margin-left: 7px; padding: 0 6px; border-radius: 9px; background: #e5eee0; color: #527047; content: "按规格定价"; font-size: 10px; font-style: normal; font-weight: 700; }
.schedule-template-manager summary::after, .product-info-template-manager summary::after { margin-left: 5px; content: "⌄"; font-size: 15px; }
.schedule-template-manager[open] summary::after, .product-info-template-manager[open] summary::after { transform: rotate(180deg); }
.schedule-template-manager ul, .product-info-template-manager ul { position: absolute; z-index: 4; top: calc(100% + 5px); right: 0; display: grid; min-width: 245px; max-width: min(370px, calc(100vw - 70px)); gap: 0; margin: 0; padding: 5px 0; border: 1px solid #d7e1d1; border-radius: 8px; background: #fffefb; box-shadow: 0 9px 22px rgba(46, 67, 42, .14); list-style: none; }
.schedule-template-manager li, .product-info-template-manager li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; color: #50604b; font-size: 12px; }
.schedule-template-manager li > span:first-child, .product-info-template-manager li > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-template-manager li > span:last-child, .product-info-template-manager li > span:last-child { display: flex; gap: 5px; flex: 0 0 auto; }
.schedule-template-manager li button, .product-info-template-manager li button { min-height: 26px; padding: 0 7px; border: 1px solid #d8dfd2; border-radius: 5px; background: #fff; color: #61765a; font-size: 11px; cursor: pointer; }
.schedule-template-manager li button[data-delete-time-template], .product-info-template-manager li button[data-delete-product-info-template] { border-color: #ead4cc; color: #a25c4c; }
.product-category-manager { width: min(680px, 100%); }
.product-category-manager header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.product-category-manager header h2 { margin: 3px 0; color: #334a30; font-family: "Noto Serif SC", serif; font-size: 21px; }
.product-category-manager header p { margin: 0; color: #778275; font-size: 12px; line-height: 1.6; }
.product-category-manager ul { display: grid; gap: 7px; max-height: min(420px, 50vh); margin: 17px 0; padding: 0; overflow: auto; list-style: none; }
.product-category-manager li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 12px; border: 1px solid #e2e7dc; border-radius: 8px; background: #fbfdf9; }
.product-category-manager li > div { display: grid; gap: 3px; min-width: 0; }
.product-category-manager li b { color: #3d5738; font-family: "Noto Serif SC", serif; font-size: 14px; }
.product-category-manager li small { color: #8a9285; font-size: 11px; }
.product-category-manager li > span { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.product-category-manager li button { min-height: 28px; padding: 0 8px; border: 1px solid #d7dfd1; border-radius: 5px; background: #fff; color: #5d7357; font-size: 11px; cursor: pointer; }
.product-category-manager li button[data-delete-product-category] { border-color: #ead5cd; color: #a25d4d; }
.product-category-manager li button:disabled { border-color: #e7e6e0; background: #f3f2ee; color: #aaa79d; cursor: not-allowed; }
@media (max-width: 760px) { .product-category-manager li { align-items: flex-start; flex-direction: column; } .product-category-manager li > span { justify-content: flex-start; } }
@media (max-width: 760px) { .schedule-template-toolbar, .product-info-template-toolbar { align-items: stretch; } .schedule-template-toolbar label, .product-info-template-toolbar label { flex-basis: 100%; } .schedule-template-toolbar .quiet, .product-info-template-toolbar .quiet { flex: 1; } .product-info-template-actions { flex-wrap: wrap; } .product-info-template-actions label { width: auto; flex: 1 1 100%; } .product-info-template-actions .quiet { flex: 1 1 0; } .schedule-template-manager, .product-info-template-manager { width: 100%; } .schedule-template-manager summary, .product-info-template-manager summary { justify-content: center; } .schedule-template-manager ul, .product-info-template-manager ul { right: auto; left: 0; width: min(100%, 370px); } }
.method-schedule-section { display: grid; gap: 12px; margin-bottom: 18px; padding: 16px; border: 1px solid #dce8df; border-radius: 11px; background: #f9fcf9; }
.method-schedule-section.hidden { display: none; }
.method-schedule-title { display: grid; gap: 4px; }
.method-schedule-title b { color: #274434; font-size: 15px; }
.method-schedule-title small { color: var(--muted); font-size: 12px; }
.youzan-order-list { display: grid; gap: 12px; }
.youzan-order-card { overflow: hidden; border: 1px solid #e1e8e3; border-radius: 12px; background: #fff; box-shadow: 0 4px 12px rgba(22, 51, 38, .035); }
.youzan-order-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; border-bottom: 1px solid #edf1ee; background: #fbfcfb; }
.youzan-order-head > div { display: flex; align-items: center; min-width: 0; gap: 9px; }
.youzan-order-head b { overflow: hidden; color: #33443a; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.youzan-order-head small { color: #929e96; font-size: 11px; white-space: nowrap; }
.order-channel { padding: 3px 6px; border-radius: 4px; background: #e8f3ec; color: #347451; font-size: 10px; font-weight: 800; white-space: nowrap; }
.order-card-buyer { display: flex; align-items: center; gap: 10px; padding: 13px 16px; }
.buyer-avatar { display: grid; flex: 0 0 auto; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #eef3ef; color: #557161; font-size: 13px; font-weight: 850; }
.order-card-buyer > div { display: grid; min-width: 0; gap: 1px; }
.order-card-buyer b { color: #283e30; font-size: 13px; }
.order-card-buyer small { overflow: hidden; color: #839087; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.order-card-buyer .text-button { margin-left: auto; white-space: nowrap; }
.order-card-products { display: grid; gap: 9px; padding: 12px 16px; border-top: 1px solid #f0f3f1; border-bottom: 1px solid #f0f3f1; background: #fdfefd; }
.order-card-product { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto 84px; align-items: center; gap: 10px; }
.order-product-thumb { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 7px; background: #f0f3ef; color: #698072; font-size: 13px; font-weight: 850; }
.order-card-product > div:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.order-card-product b { overflow: hidden; color: #2e4034; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.order-card-product small { overflow: hidden; color: #929e96; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.order-card-product > span { color: #7f8d84; font-size: 12px; }
.order-card-product > strong { color: #3c4c43; font-size: 13px; text-align: right; }
.more-products { color: #86938a; font-size: 11px; }
.order-card-fulfillment { display: grid; grid-template-columns: minmax(0, 1fr) 126px; gap: 16px; padding: 13px 16px; }
.order-card-fulfillment > div { display: grid; gap: 3px; min-width: 0; }
.order-card-fulfillment span { color: #8b978f; font-size: 11px; }
.order-card-fulfillment b { overflow: hidden; color: #3a4a41; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.order-card-fulfillment small { overflow: hidden; color: #87948b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.youzan-order-foot { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px; border-top: 1px solid #edf1ee; background: #fbfcfb; }
.order-amount { display: flex; align-items: baseline; gap: 7px; }
.order-amount span { color: #86938a; font-size: 11px; }
.order-amount strong { color: #263c2e; font-size: 17px; }
.order-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.order-card-empty { padding: 44px 20px; color: var(--muted); text-align: center; }
.order-card-empty b { display: block; margin-top: 8px; color: #4b5c52; }
.order-card-empty p { margin: 5px 0 0; font-size: 12px; }
@media (max-width: 760px) { .youzan-order-head > div { flex-wrap: wrap; gap: 5px; } .youzan-order-head small { width: 100%; } .order-card-fulfillment { grid-template-columns: 1fr; gap: 10px; } .order-card-product { grid-template-columns: 36px minmax(0, 1fr) auto; } .order-card-product > strong { grid-column: 2 / -1; text-align: left; } .youzan-order-foot { align-items: flex-start; flex-direction: column; } .order-card-actions { justify-content: flex-start; } }
.editor-sticky { position: sticky; z-index: 12; bottom: 0; isolation: isolate; margin: 0 -26px -26px; padding: 15px 26px; border-top: 1px solid var(--line); background: #fffdf8; box-shadow: 0 -8px 20px rgba(23, 45, 37, .08); }
.editor-card .editor-sticky { background: #fffdf8; }
.welfare-editor .form-section { padding: 25px 0; }
.welfare-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 18px; }
.welfare-form-grid .form-field.wide { grid-column: 1 / -1; }
.welfare-basic-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.welfare-rule-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.welfare-rule-panel { padding: 18px; border: 1px solid #dce8df; border-radius: 11px; background: linear-gradient(145deg, #fbfdfb, #f5faf6); }
.welfare-rule-panel header { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #e2ebe4; }
.welfare-rule-panel h4 { margin: 0; color: #284434; font-size: 14px; }
.welfare-rule-panel p { margin: 4px 0 0; color: #7d8c82; font-size: 11px; line-height: 1.55; }
.welfare-rule-panel .welfare-form-grid { gap: 13px; }
.welfare-schedule-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px) { .welfare-rule-panels { grid-template-columns: 1fr; } .welfare-schedule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .welfare-form-grid, .welfare-basic-grid, .welfare-schedule-grid { grid-template-columns: 1fr; } .welfare-rule-panel { padding: 15px; } }
@media (max-width: 760px) { .editor-page-bar { margin: -17px -17px 17px; padding: 11px 17px; } .editor-sticky { margin: 0 -17px -17px; padding: 13px 17px; } .batch-selector { display: grid; align-items: start; } .batch-selector label { min-width: 0; } .multi-date-picker-trigger { align-items: stretch; flex-direction: column; } .multi-date-calendar { position: fixed; top: 50%; left: 50%; width: min(390px, calc(100vw - 30px)); transform: translate(-50%, -50%); } .schedule-time-row { width: 100%; } .schedule-time-row input { flex: 1; min-width: 0; } }

.operation-overlay { position: fixed; inset: 0; z-index: 25; display: grid; place-items: center; padding: 24px; background: rgba(19, 39, 30, .34); backdrop-filter: blur(2px); }
.operation-panel { width: min(560px, 100%); max-height: min(660px, calc(100vh - 48px)); overflow: auto; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: 0 24px 62px rgba(15, 33, 25, .2); }
.operation-head { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.operation-head h2 { margin: 0; font-size: 17px; }
.operation-head p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.operation-actions { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.action-dialog-overlay { z-index: 80; }
.action-dialog-panel { width: min(420px, 100%); padding: 28px; text-align: center; border: 0; border-radius: 16px; box-shadow: 0 26px 70px rgba(15, 33, 25, .28); }
.action-dialog-mark { display: grid; width: 42px; height: 42px; place-items: center; margin: 0 auto 13px; border-radius: 50%; background: #f7ece6; color: #a35d41; font-size: 21px; font-weight: 850; }
.action-dialog-mark.normal { background: #e7f4ea; color: #2f7b4c; }
.action-dialog-copy h2 { margin: 0; color: #22392b; font-size: 18px; }
.action-dialog-copy p { margin: 8px 0 0; color: #6b796f; font-size: 13px; line-height: 1.65; }
.action-dialog-form { margin-top: 21px; }
.action-dialog-field { display: grid; gap: 7px; text-align: left; color: #516259; font-size: 12px; font-weight: 750; }
.action-dialog-field input { min-height: 42px; padding: 0 11px; border: 1px solid #d4e0d6; border-radius: 8px; color: #25382d; font: inherit; }
.action-dialog-field input:focus { outline: 0; border-color: #56a270; box-shadow: 0 0 0 3px rgba(86, 162, 112, .14); }
.action-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.action-dialog-actions button { min-width: 82px; min-height: 38px; }
.action-dialog-actions .primary.danger { background: #a96143; }
.action-dialog-actions .primary.normal { background: var(--brand); }
.variant-price-editor-overlay { z-index: 90; }
.variant-price-editor-panel { width: min(520px, 100%); padding: 25px; border-radius: 15px; }
.variant-price-editor-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #e8e2d7; }
.variant-price-editor-panel h2 { margin: 0; color: #2e4732; font-family: "Noto Serif SC", serif; font-size: 20px; }
.variant-price-editor-panel header p { margin: 4px 0 0; color: #7d877a; font-size: 12px; }
.variant-price-editor-panel header button { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 7px; background: #f1eee7; color: #71806b; font-size: 22px; }
.variant-price-editor-list { display: grid; gap: 9px; margin-top: 18px; }
.variant-price-editor-row { display: grid; grid-template-columns: minmax(100px, 1fr) 16px 150px; align-items: center; gap: 8px; padding: 9px 11px; border: 1px solid #e5dfd3; border-radius: 8px; background: #fffdf9; }
.variant-price-editor-row > span { color: #40543e; font-family: "Noto Serif SC", serif; font-size: 13px; }
.variant-price-editor-row > b { color: #71806c; text-align: right; }
.variant-price-editor-row input { min-height: 36px; }
.variant-price-editor-note { display: block; margin-top: 12px; color: #899186; font-size: 11px; line-height: 1.6; }
.variant-price-editor-panel footer { display: flex; justify-content: flex-end; gap: 9px; margin-top: 20px; }
.schedule-manager-panel { display: flex; flex-direction: column; width: min(680px, 100%); height: min(86vh, 760px); max-height: calc(100vh - 48px); padding: 0; overflow: hidden; border: 0; border-radius: 16px; box-shadow: 0 24px 62px rgba(15, 33, 25, .24); }
.schedule-manager-panel .operation-head { align-items: flex-start; padding: 24px 26px 20px; border: 0; background: linear-gradient(135deg, #f5faf5, #fff); }
.schedule-kicker { display: block; margin-bottom: 6px; color: #77877b; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.schedule-manager-panel .operation-head h2 { color: #1d3427; font-size: 21px; }
.schedule-manager-panel .operation-head p { max-width: 430px; line-height: 1.55; }
.overlay-close { display: grid; width: 32px; height: 32px; place-items: center; padding: 0; border: 1px solid #dce8df; border-radius: 50%; background: #fff; color: #607065; font-size: 22px; line-height: 1; }
.schedule-manage-list { display: grid; flex: 1 1 auto; min-height: 0; gap: 10px; padding: 0 26px 18px; overflow-y: auto; overscroll-behavior: contain; }
.schedule-manage-date { padding: 15px; border: 1px solid #dce8df; border-radius: 12px; background: #fff; transition: border-color .16s ease, background .16s ease; }
.schedule-manage-date.is-paused { border-color: #d9c9bd; background: #fffdfb; }
.schedule-manage-date-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.schedule-date-summary { display: flex; align-items: center; gap: 9px; }
.schedule-date-summary strong { color: #20382a; font-size: 15px; }
.schedule-state { padding: 3px 7px; border-radius: 99px; font-size: 11px; font-weight: 800; }
.schedule-state.available { background: #e7f5eb; color: #217044; }
.schedule-state.paused { background: #f4ece6; color: #936047; }
.schedule-action { min-height: 32px; padding: 0 11px; border: 1px solid #cfe0d4; border-radius: 7px; background: #fff; color: #2c6643; font-size: 12px; font-weight: 800; white-space: nowrap; }
.schedule-action:hover { border-color: #6baf81; background: #f3faf4; }
.date-action { color: #8f573f; border-color: #e7d0c3; background: #fffaf7; }
.schedule-manage-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.schedule-slot-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 65px; padding: 10px 11px; border: 1px solid #e4ece5; border-radius: 9px; background: #f9fcf9; }
.schedule-slot-card.is-paused { border-color: #e8ddd5; background: #fcf9f7; }
.schedule-slot-card > div { display: grid; gap: 4px; }
.schedule-slot-card small { color: #849187; font-size: 11px; }
.schedule-slot-card strong { color: #294333; font-size: 14px; }
.slot-action { min-width: 48px; }
.schedule-manage-empty { display: block; padding-top: 10px; color: var(--muted); font-size: 12px; }
.schedule-manage-whole { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 26px 20px; border-top: 1px solid #edf1ed; background: #fafcf9; }
.schedule-manage-whole div { display: grid; gap: 2px; }
.schedule-manage-whole b { color: #657168; font-size: 12px; font-weight: 650; }
.whole-action { color: #92513d; border-color: #e4c9bd; background: #fffaf7; }
.whole-action.restore { color: #237045; border-color: #cce2d2; background: #f2faf3; }
@media (max-width: 760px) { .schedule-manager-panel .operation-head, .schedule-manage-list { padding-left: 18px; padding-right: 18px; } .schedule-manage-whole { padding-left: 18px; padding-right: 18px; } .schedule-manage-slots { grid-template-columns: 1fr; } }
.order-drawer-overlay { justify-items: end; padding: 0; }
.order-drawer { width: min(660px, 100%); height: 100vh; max-height: none; overflow: auto; padding: 26px; border: 0; border-radius: 0; background: var(--paper); box-shadow: -20px 0 48px rgba(15, 33, 25, .18); }
@media (max-width: 760px) { .operation-overlay { align-items: end; padding: 0; } .operation-panel { width: 100%; max-height: 82vh; padding: 20px 17px; border-radius: 14px 14px 0 0; } }
@media (max-width: 760px) { .order-drawer { width: 100%; height: auto; max-height: 88vh; padding: 20px 17px; border-radius: 14px 14px 0 0; } }

/* Order detail follows the commerce layout: action, progress, purchase data, items, settlement. */
.order-detail-overlay { align-items: start; overflow: auto; padding: 28px; }
.order-detail-panel { width: min(1180px, 100%); max-height: none; margin: 0 auto; overflow: visible; border-radius: 12px; background: #fff; box-shadow: 0 24px 62px rgba(15, 33, 25, .22); }
.order-detail-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-bottom: 1px solid #edf1ee; color: #758179; font-size: 12px; }
.order-detail-meta > div { display: flex; flex-wrap: wrap; gap: 14px; }
.order-status-layout { display: grid; grid-template-columns: minmax(300px, .74fr) minmax(500px, 1.55fr); min-height: 166px; border-bottom: 1px solid #e4ebe6; }
.order-action-zone { display: grid; align-content: start; gap: 7px; padding: 23px 24px; border-right: 1px solid #e4ebe6; background: #fbfcfb; }
.order-action-zone .status-badge { width: fit-content; }
.order-action-zone h2 { margin: 2px 0 0; color: #243c2d; font-size: 20px; line-height: 1.35; }
.order-action-zone p { max-width: 340px; margin: 0; color: #728077; font-size: 12px; line-height: 1.6; }
.order-detail-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 7px; }
.order-detail-actions .small-action { margin: 0; }
.order-status-zone { display: grid; align-items: center; padding: 26px 30px 21px; }
.order-progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.order-progress li { position: relative; display: grid; justify-items: start; gap: 5px; min-width: 0; color: #a5ada8; }
.order-progress li:not(:last-child)::after { position: absolute; top: 11px; left: 22px; width: calc(100% - 22px); height: 2px; background: #d9e0db; content: ""; }
.order-progress li.is-done:not(:last-child)::after { background: #62a97a; }
.order-progress i { z-index: 1; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #e3e8e4; color: #7c8981; font-size: 11px; font-style: normal; font-weight: 850; }
.order-progress .is-done i, .order-progress .is-current i { background: #3c9660; color: #fff; }
.order-progress .is-current { color: #2b5f3e; }
.order-progress b { overflow: hidden; width: 100%; color: inherit; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.order-progress small { overflow: hidden; width: 100%; color: #9aa59e; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.order-detail-notice { display: flex; gap: 12px; margin: 16px 20px 0; padding: 12px 14px; border: 1px solid #f0dfc0; border-radius: 8px; background: #fffbf3; color: #806b4b; }
.order-detail-notice b { flex: 0 0 auto; font-size: 12px; }
.order-detail-notice p { margin: 0; font-size: 12px; line-height: 1.55; }
.order-purchase-info { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 16px 20px; border: 1px solid #e4ebe6; border-radius: 9px; background: #fcfdfc; }
.order-purchase-info > div { min-width: 0; padding: 17px 18px; border-right: 1px solid #e7ece8; }
.order-purchase-info > div:last-child { border-right: 0; }
.order-purchase-info h3 { margin: 0 0 10px; color: #34483a; font-size: 13px; }
.order-purchase-info p { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 8px; margin: 6px 0; color: #86928a; font-size: 12px; }
.order-purchase-info p span { white-space: nowrap; }
.order-purchase-info p b { overflow: hidden; color: #445248; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.order-goods-section { padding: 4px 20px 24px; }
.order-section-title { display: flex; align-items: center; justify-content: space-between; margin: 12px 0 10px; }
.order-section-title h3 { margin: 0; color: #33463a; font-size: 14px; }
.order-section-title span { color: #8a968f; font-size: 12px; }
.order-goods-table-wrap { overflow: auto; border: 1px solid #e4ebe6; border-radius: 9px; }
.order-goods-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.order-goods-table th { padding: 10px 12px; background: #f7f9f7; border-bottom: 1px solid #e4ebe6; color: #7f8d84; font-size: 11px; font-weight: 700; text-align: left; }
.order-goods-table td { padding: 13px 12px; border-bottom: 1px solid #edf1ee; color: #526058; font-size: 12px; }
.order-goods-table tbody tr:last-child td { border: 0; }
.detail-product { display: flex; align-items: center; gap: 9px; min-width: 180px; }
.detail-product-mark { display: grid; flex: 0 0 auto; width: 34px; height: 34px; place-items: center; border-radius: 7px; background: #edf3ee; color: #66806e; font-size: 12px; font-weight: 850; }
.detail-product > div:last-child { display: grid; min-width: 0; gap: 2px; }
.detail-product b, .detail-product small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-product b { color: #33463a; font-size: 12px; }
.detail-product small { color: #909c94; font-size: 11px; }
.order-settlement { width: min(285px, 100%); margin: 13px 0 0 auto; padding: 13px 15px; border: 1px solid #e0e8e2; border-radius: 9px; background: #fbfdfb; }
.order-settlement p { display: flex; justify-content: space-between; gap: 16px; margin: 6px 0; color: #7f8c84; font-size: 12px; }
.order-settlement p b { color: #526158; font-weight: 650; }
.order-settlement-total { align-items: baseline; margin: 10px 0 0 !important; padding-top: 10px; border-top: 1px solid #e6ece7; }
.order-settlement-total strong { color: #1d6e44; font-size: 20px; }
@media (max-width: 850px) { .order-detail-overlay { padding: 12px; } .order-status-layout { grid-template-columns: 1fr; } .order-action-zone { border-right: 0; border-bottom: 1px solid #e4ebe6; } .order-purchase-info { grid-template-columns: repeat(2, minmax(0, 1fr)); } .order-purchase-info > div:nth-child(2) { border-right: 0; } .order-purchase-info > div:nth-child(-n + 2) { border-bottom: 1px solid #e7ece8; } }
@media (max-width: 560px) { .order-detail-overlay { align-items: end; padding: 0; } .order-detail-panel { max-height: 91vh; overflow: auto; border-radius: 14px 14px 0 0; } .order-detail-meta { align-items: flex-start; padding: 13px 15px; } .order-detail-meta > div { display: grid; gap: 3px; } .order-status-zone { padding: 20px 15px 17px; overflow: auto; } .order-progress { min-width: 500px; } .order-detail-notice, .order-purchase-info { margin-left: 15px; margin-right: 15px; } .order-purchase-info { grid-template-columns: 1fr; } .order-purchase-info > div { border-right: 0; border-bottom: 1px solid #e7ece8; } .order-purchase-info > div:last-child { border-bottom: 0; } .order-goods-section { padding-left: 15px; padding-right: 15px; } }

/* Restaurant order workbench: keep the list dense, action-first, and easy to scan during service. */
.restaurant-orders-page { padding-bottom: 26px; }
.restaurant-order-workbench { display: grid; grid-template-columns: repeat(3, minmax(0, 152px)) minmax(220px, 1fr); gap: 0; margin: 2px 0 18px; overflow: hidden; border: 1px solid #dce8df; border-radius: 10px; background: #fbfdfb; }
.restaurant-order-workbench > div { display: grid; align-content: center; gap: 2px; min-height: 78px; padding: 12px 16px; border-right: 1px solid #e3ebe5; }
.restaurant-order-workbench span, .restaurant-order-workbench small { color: #849188; font-size: 11px; }
.restaurant-order-workbench strong { color: #226d45; font-size: 23px; line-height: 1.1; }
.restaurant-order-workbench p { align-self: center; margin: 0; padding: 0 18px; color: #607269; font-size: 12px; line-height: 1.6; }
.restaurant-order-toolbar { margin-bottom: 12px; }
.filter-tab { display: inline-flex; align-items: center; gap: 6px; }
.filter-tab b { display: grid; min-width: 16px; height: 16px; place-items: center; border-radius: 99px; background: rgba(84, 117, 97, .12); color: inherit; font-size: 10px; }
.filter-tab.active b { background: rgba(22, 121, 79, .14); }
.restaurant-order-list { overflow: hidden; border: 1px solid #dfe7e1; border-radius: 10px; background: #fff; }
.restaurant-order-row { display: grid; grid-template-columns: 138px minmax(195px, 1.18fr) minmax(200px, 1.26fr) minmax(190px, 1.08fr) 96px minmax(124px, .78fr); min-height: 102px; border-bottom: 1px solid #e8eeea; background: #fff; transition: background .16s ease; }
.restaurant-order-row:last-child { border-bottom: 0; }
.restaurant-order-row:hover { background: #fbfefc; }
.restaurant-order-row > section { display: grid; align-content: center; min-width: 0; gap: 5px; padding: 13px 14px; border-right: 1px solid #edf1ee; }
.restaurant-order-row > section:last-child { border-right: 0; }
.restaurant-order-state { background: #fafcfb; }
.restaurant-order-state .status-badge { width: fit-content; }
.restaurant-order-state > b { overflow: hidden; color: #3b4d42; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.restaurant-order-state > small { color: #96a29b; font-size: 11px; }
.restaurant-order-number { display: flex; align-items: center; gap: 7px; min-width: 0; }
.restaurant-order-number b { overflow: hidden; color: #2b4133; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.restaurant-order-number span { flex: 0 0 auto; padding: 2px 5px; border-radius: 4px; background: #e8f3ec; color: #397552; font-size: 10px; font-weight: 750; }
.restaurant-order-buyer { display: flex; align-items: center; gap: 8px; min-width: 0; }
.restaurant-order-buyer > div:last-child { display: grid; min-width: 0; gap: 1px; }
.restaurant-order-buyer b, .restaurant-order-buyer small, .restaurant-order-products b, .restaurant-order-products small, .restaurant-order-fulfilment b, .restaurant-order-fulfilment small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.restaurant-order-buyer b { color: #32463a; font-size: 12px; }
.restaurant-order-buyer small, .restaurant-order-products small, .restaurant-order-fulfilment small, .restaurant-order-amount small { color: #89968e; font-size: 11px; }
.compact-label { color: #99a49e; font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.restaurant-order-products b, .restaurant-order-fulfilment b { color: #3c4d43; font-size: 12px; }
.restaurant-order-amount strong { color: #1f4932; font-size: 17px; }
.restaurant-order-actions { justify-items: end; text-align: right; }
.restaurant-order-actions .text-button { padding: 0; }
.restaurant-order-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.restaurant-order-actions .small-action { margin: 0; padding: 5px 7px; }
.restaurant-order-actions .table-muted { text-align: right; }
@media (max-width: 1160px) { .restaurant-order-row { grid-template-columns: 132px minmax(220px, 1fr) minmax(210px, 1fr) 118px; } .restaurant-order-products { display: none !important; } .restaurant-order-actions { grid-column: 4; grid-row: 1; } .restaurant-order-amount { grid-column: 4; grid-row: 1; align-self: end; padding-bottom: 13px !important; border-right: 0 !important; } }
@media (max-width: 850px) { .restaurant-order-workbench { grid-template-columns: repeat(3, 1fr); } .restaurant-order-workbench p { grid-column: 1 / -1; padding: 11px 15px; border-top: 1px solid #e3ebe5; } .restaurant-order-row { grid-template-columns: 122px minmax(0, 1fr) 115px; } .restaurant-order-fulfilment { display: none !important; } .restaurant-order-actions { grid-column: 3; grid-row: 1; } .restaurant-order-amount { grid-column: 3; grid-row: 1; } }
@media (max-width: 620px) { .restaurant-order-workbench { grid-template-columns: 1fr 1fr; } .restaurant-order-workbench > div { min-height: 70px; } .restaurant-order-workbench > div:nth-child(2) { border-right: 0; } .restaurant-order-workbench > div:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid #e3ebe5; border-right: 0; } .restaurant-order-row { grid-template-columns: 102px minmax(0, 1fr); min-height: 118px; } .restaurant-order-main { border-right: 0 !important; } .restaurant-order-state { grid-row: span 2; } .restaurant-order-amount { display: none !important; } .restaurant-order-actions { grid-column: 2; grid-row: 2; display: flex !important; align-items: center; justify-items: stretch; padding-top: 0 !important; text-align: left; } .restaurant-order-actions > div { justify-content: flex-start; } }

/* Customer operations keep identity, contact, membership and contribution visible in one row. */
.customer-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 2px 0 17px; overflow: hidden; border: 1px solid #dfe8e1; border-radius: 10px; background: #fbfdfb; }
.customer-summary > div { display: grid; gap: 3px; min-height: 78px; padding: 13px 17px; border-right: 1px solid #e7eee8; }
.customer-summary > div:last-child { border-right: 0; }
.customer-summary span, .customer-summary small { color: #87948b; font-size: 11px; }
.customer-summary strong { color: #226d45; font-size: 23px; line-height: 1.1; }
.customer-toolbar { margin-bottom: 12px; }
.customer-toolbar p { margin: 0; color: #718078; font-size: 12px; }
.customer-table { min-width: 900px; }
.customer-table td { padding-top: 12px; padding-bottom: 12px; }
.customer-name { display: flex; align-items: center; gap: 9px; min-width: 175px; }
.customer-avatar { display: grid; flex: 0 0 auto; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #eaf2ec; color: #47745a; font-size: 13px; font-weight: 850; }
.customer-avatar-image { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #eaf2ec; object-fit: cover; }
.customer-name > div:last-child { display: grid; min-width: 0; gap: 2px; }
.customer-name strong { overflow: hidden; color: #304439; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.customer-name small, .customer-table td > small, .customer-assets small, .customer-trade small, .customer-last-order small { display: block; overflow: hidden; max-width: 190px; color: #8a978f; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.customer-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.customer-tag { display: inline-flex; width: fit-content; padding: 2px 5px; border-radius: 4px; font-size: 10px; font-weight: 750; }
.customer-tag.rabbit { background: #f7efe0; color: #94703a; }
.customer-tag.wallet { background: #e5f4ea; color: #257148; }
.customer-tag.loyal { background: #f4edda; color: #7d672e; box-shadow: inset 0 0 0 1px rgba(178, 148, 69, .22); }
.customer-tag.normal { background: #f1f3f2; color: #77847c; }
.customer-assets, .customer-trade, .customer-last-order { display: grid; gap: 2px; min-width: 116px; }
.customer-assets b, .customer-trade b, .customer-last-order b { color: #415248; font-size: 12px; }
.customer-assets b { color: #206643; font-size: 14px; }
.customer-profile-overlay { padding: 24px; overflow: auto; }
.customer-profile-panel { width: min(760px, 100%); margin: auto; padding: 0; overflow: hidden; }
.customer-profile-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 23px 25px 19px; border-bottom: 1px solid #e6ece8; }
.customer-profile-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.customer-profile-identity .customer-avatar, .customer-profile-identity .customer-avatar-image { width: 52px; height: 52px; font-size: 19px; }
.customer-profile-identity span { color: #8a978f; font-size: 11px; }
.customer-profile-identity h2 { margin: 1px 0 2px; color: #2e4236; font-size: 20px; }
.customer-profile-identity p { margin: 0; color: #748279; font-size: 12px; }
.customer-profile-membership { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid #e6ece8; background: #fbfdfb; }
.customer-profile-membership > div { display: grid; gap: 3px; min-height: 90px; padding: 16px 20px; border-right: 1px solid #e7ede9; }
.customer-profile-membership > div:last-child { border-right: 0; }
.customer-profile-membership span, .customer-profile-membership small { color: #87948b; font-size: 11px; }
.customer-profile-membership b { color: #3f5147; font-size: 14px; }
.customer-profile-membership b.is-active { color: #207248; }
.customer-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.customer-profile-grid section { padding: 20px 25px; border-right: 1px solid #e9eeeb; border-bottom: 1px solid #e9eeeb; }
.customer-profile-grid section:nth-child(2) { border-right: 0; }
.customer-profile-grid section.wide { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
.customer-profile-grid h3 { margin: 0 0 12px; color: #43564a; font-size: 13px; }
.customer-profile-grid p { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; margin: 8px 0; color: #819087; font-size: 12px; }
.customer-profile-grid p span { color: #929d96; }
.customer-profile-grid p b { overflow: hidden; color: #43564a; text-overflow: ellipsis; white-space: nowrap; }
.customer-profile-actions { display: flex; align-items: center; gap: 9px; padding: 16px 25px; border-top: 1px solid #e9eeeb; background: #fbfcfb; }
.customer-profile-actions span { flex: 1; }
@media (max-width: 620px) { .customer-profile-overlay { padding: 12px; } .customer-profile-membership { grid-template-columns: 1fr; } .customer-profile-membership > div { min-height: 0; border-right: 0; border-bottom: 1px solid #e7ede9; } .customer-profile-grid { grid-template-columns: 1fr; } .customer-profile-grid section, .customer-profile-grid section:nth-child(2) { border-right: 0; } .customer-profile-grid section.wide { grid-column: auto; } .customer-profile-head, .customer-profile-grid section, .customer-profile-actions { padding-right: 17px; padding-left: 17px; } }
@media (max-width: 760px) { .customer-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .customer-summary > div:nth-child(2) { border-right: 0; } .customer-summary > div:nth-child(-n + 2) { border-bottom: 1px solid #e7eee8; } .customer-toolbar { align-items: stretch; } .customer-toolbar p { display: none; } .customer-toolbar .table-tools { width: 100%; } .customer-toolbar input { width: 100%; } }

/* Order list refresh: a compact desktop workbench with clear filters and table-like scan lines. */
.restaurant-orders-page { padding-bottom: 24px; }
.restaurant-order-workbench { grid-template-columns: repeat(3, minmax(0, 154px)) minmax(240px, 1fr); margin: 4px 0 14px; border-color: #d8e5dc; border-radius: 9px; background: #fbfdfb; }
.restaurant-order-workbench > div { min-height: 76px; padding: 12px 15px; }
.restaurant-order-workbench strong { color: var(--brand); }
.order-filter-panel { display: grid; grid-template-columns: minmax(260px, 1.45fr) minmax(130px, .7fr) minmax(130px, .7fr) minmax(200px, 1.05fr); gap: 11px; padding: 13px; margin-bottom: 14px; border: 1px solid #e1e9e3; border-radius: 9px; background: #fafcfb; }
.order-filter-field { display: grid; gap: 6px; min-width: 0; color: #66766d; font-size: 11px; font-weight: 750; }
.order-filter-field > span { color: #89968e; }
.order-filter-field input, .order-filter-field select { width: 100%; height: 36px; border-color: #dce6df; background: #fff; color: #3a4d41; font-size: 12px; }
.order-filter-date > div { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr); align-items: center; gap: 5px; }
.order-filter-date em { color: #a0aca5; font-size: 11px; font-style: normal; text-align: center; }
.order-filter-search { position: relative; }
.order-filter-search input { padding-right: 32px; }
.order-filter-search::after { position: absolute; right: 12px; bottom: 8px; color: #95a29a; content: "⌕"; font-size: 17px; font-weight: 400; }
.restaurant-order-toolbar { align-items: center; min-height: 36px; margin-bottom: 10px; }
.restaurant-order-toolbar .filter-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 1px; }
.restaurant-order-toolbar .filter-tab { position: relative; padding: 7px 10px 8px; border-radius: 0; background: transparent; color: #6c7b72; white-space: nowrap; }
.restaurant-order-toolbar .filter-tab:hover { color: var(--brand); background: #f3f8f4; }
.restaurant-order-toolbar .filter-tab.active { color: var(--brand); background: transparent; font-weight: 800; }
.restaurant-order-toolbar .filter-tab.active::after { position: absolute; right: 9px; bottom: 0; left: 9px; height: 2px; border-radius: 2px; background: var(--brand); content: ""; }
.restaurant-order-toolbar .filter-tab b { background: #eef2ef; color: #839087; }
.restaurant-order-toolbar .filter-tab.active b { background: #e3f3e8; color: var(--brand); }
.order-results-count { flex: 0 0 auto; color: #95a19a; font-size: 11px; }
.restaurant-order-list { overflow-x: auto; overflow-y: hidden; border-color: #dfe7e1; border-radius: 9px; }
.restaurant-order-columns, .restaurant-order-row { min-width: 890px; grid-template-columns: minmax(170px, 1.12fr) minmax(170px, 1.24fr) minmax(170px, 1.14fr) minmax(85px, .67fr) minmax(112px, .78fr) minmax(118px, .85fr); }
.restaurant-order-columns { display: grid; border-bottom: 1px solid #e3eae5; background: #f6f8f7; }
.restaurant-order-columns > span { padding: 10px 14px; border-right: 1px solid #e7ede9; color: #85928a; font-size: 11px; font-weight: 750; }
.restaurant-order-columns > span:last-child { border-right: 0; text-align: right; }
.restaurant-order-row { min-height: 106px; }
.restaurant-order-row > section { gap: 5px; padding: 14px; }
.restaurant-order-main { background: #fff; }
.restaurant-order-number { gap: 6px; }
.restaurant-order-number b { color: #2d4035; font-size: 12px; }
.restaurant-order-number span { background: #edf5ef; color: #31734d; }
.restaurant-order-buyer { margin-top: 2px; }
.restaurant-order-products b, .restaurant-order-fulfilment b { color: #34483b; }
.restaurant-order-state { background: #fdfefd; }
.restaurant-order-state > b { color: #4c5d53; }
.restaurant-order-actions { justify-items: end; }
.restaurant-order-actions > div { align-items: flex-end; flex-direction: column; }
.restaurant-order-actions .small-action { min-width: 68px; padding: 6px 8px; }
@media (max-width: 980px) { .restaurant-order-workbench { grid-template-columns: repeat(3, minmax(0, 1fr)); } .restaurant-order-workbench p { grid-column: 1 / -1; padding: 10px 15px; border-top: 1px solid #e3ebe5; } .order-filter-panel { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .restaurant-order-workbench { grid-template-columns: 1fr 1fr; } .restaurant-order-workbench > div:nth-child(2) { border-right: 0; } .restaurant-order-workbench > div:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid #e3ebe5; border-right: 0; } .order-filter-panel { grid-template-columns: 1fr; gap: 10px; } .restaurant-order-toolbar { align-items: flex-start; flex-direction: column; } .restaurant-order-toolbar .filter-tabs { width: 100%; } .order-results-count { padding-left: 9px; } .restaurant-order-list { overflow: visible; } .restaurant-order-columns { display: none; } .restaurant-order-row { min-width: 0; grid-template-columns: 1fr; border-bottom: 9px solid #f4f7f5; } .restaurant-order-row > section { padding: 12px 14px; border-right: 0; border-bottom: 1px solid #edf1ee; } .restaurant-order-row > section:last-child { border-bottom: 0; } .restaurant-order-main { gap: 9px; } .restaurant-order-products, .restaurant-order-fulfilment, .restaurant-order-amount, .restaurant-order-state { display: grid !important; } .restaurant-order-actions { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; text-align: left; } .restaurant-order-actions > div { justify-content: flex-end; } }

/* Store/content settings are intentionally a hub: every customer-facing page is
   configured in its own focused sub-page instead of one long operations form. */
.settings-hub .module-head { align-items: flex-start; }
.settings-hub-state { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 99px; background: #edf6ef; color: #33734e; font-size: 11px; font-weight: 750; }
.settings-hub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.settings-hub-card { display: grid; grid-template-columns: 38px minmax(0, 1fr) 16px; align-items: center; width: 100%; min-height: 84px; gap: 12px; padding: 15px; border: 1px solid #dfe8e1; border-radius: 10px; background: #fff; color: inherit; text-align: left; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.settings-hub-card:hover { border-color: #b8d4c0; box-shadow: 0 7px 18px rgba(52, 86, 62, .08); transform: translateY(-1px); }
.settings-hub-card i { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #edf5ef; color: #387653; font-size: 17px; font-style: normal; }
.settings-hub-card span { display: grid; min-width: 0; gap: 5px; }
.settings-hub-card strong { color: #35483b; font-size: 14px; }
.settings-hub-card small { overflow: hidden; color: #819087; font-size: 11px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.settings-hub-card b { color: #97a69d; font-size: 23px; font-weight: 400; }
@media (max-width: 720px) { .settings-hub-grid { grid-template-columns: 1fr; } .settings-hub .module-head { gap: 12px; } }

/* Traceability and finance modules share a compact footer with the fulfilment queue. */
.module-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 14px 0 0; color: #87948b; font-size: 12px; }
.module-pagination > span:first-child { margin-right: auto; }
.module-pagination .quiet { min-width: 68px; min-height: 31px; padding: 5px 10px; }
.module-pagination button:disabled { cursor: not-allowed; opacity: .45; }
@media (max-width: 560px) { .module-pagination { flex-wrap: wrap; } .module-pagination > span:first-child { flex-basis: 100%; } }

.option-inventory-fields { display: grid; grid-template-columns: repeat(3, minmax(72px, 1fr)); gap: 6px; width: 100%; padding: 8px 0 2px; }
.option-inventory-fields[hidden] { display: none; }
.option-inventory-fields label { display: flex; align-items: center; gap: 5px; color: #6c795f; font-size: 11px; white-space: nowrap; }
.option-inventory-fields input { width: 70px; min-height: 30px; }
