:root {
  --wine: #86182b;
  --wine-dark: #61101e;
  --wine-soft: #f8e8eb;
  --cream: #f7f3ee;
  --paper: #ffffff;
  --ink: #292321;
  --muted: #8a7b75;
  --line: #e9dfd9;
  --gold: #c98a36;
  --green: #24845b;
  --blue: #3978a8;
  --danger: #b72c3f;
  --shadow: 0 12px 32px rgba(78, 42, 29, .07);
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; }
body { color: var(--ink); background: var(--cream); font: 14px/1.55 "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { transition: .18s ease; }

.portal-shell { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: 100vh; }
.portal-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; display: flex; width: 252px; flex-direction: column; color: #f8ece8; background: linear-gradient(180deg, #721322 0%, #54101b 100%); box-shadow: 8px 0 30px rgba(76, 16, 28, .14); }
.portal-brand { display: flex; align-items: center; gap: 12px; height: 84px; padding: 0 24px; border-bottom: 1px solid rgba(255,255,255,.1); }
.portal-brand__mark { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 14px; color: var(--wine); background: #fff5e9; font-size: 21px; font-weight: 900; }
.portal-brand strong, .portal-brand small { display: block; }
.portal-brand strong { color: white; font-size: 17px; letter-spacing: .03em; }
.portal-brand small { color: #d8b9b5; font-size: 11px; }
.portal-nav { flex: 1; overflow-y: auto; padding: 18px 13px; }
.portal-nav__label { margin: 18px 12px 7px; color: #b98f8d; font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.portal-nav__label:first-child { margin-top: 0; }
.portal-nav a { position: relative; display: flex; align-items: center; gap: 11px; min-height: 43px; margin: 3px 0; padding: 0 12px; border-radius: 11px; color: #e5ceca; }
.portal-nav a:hover { color: white; background: rgba(255,255,255,.08); }
.portal-nav a.active { color: #6d1322; background: #fff7ed; box-shadow: 0 8px 20px rgba(39, 3, 10, .18); font-weight: 750; }
.portal-nav a b { display: grid; min-width: 21px; height: 21px; margin-left: auto; place-items: center; padding: 0 6px; border-radius: 999px; color: white; background: #d45a5e; font-size: 11px; }
.nav-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: rgba(255,255,255,.09); font-size: 12px; font-weight: 800; }
.active .nav-icon { color: white; background: var(--wine); }
.portal-sidebar__foot { display: flex; align-items: center; gap: 10px; margin: 14px; padding: 14px; border-radius: 13px; background: rgba(255,255,255,.07); }
.portal-sidebar__foot strong, .portal-sidebar__foot small { display: block; }
.portal-sidebar__foot small { color: #caa7a4; font-size: 11px; }
.open-dot { width: 9px; height: 9px; border-radius: 50%; background: #69da99; box-shadow: 0 0 0 5px rgba(105,218,153,.12); }
.open-dot.closed { background: #aaa; box-shadow: none; }

.portal-main { grid-column: 2; min-width: 0; }
.portal-topbar { position: sticky; top: 0; z-index: 10; display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 30px; padding: 14px 34px; border-bottom: 1px solid rgba(128,93,78,.12); background: rgba(247,243,238,.94); backdrop-filter: blur(16px); }
.portal-topbar p, .portal-topbar h1 { margin: 0; }
.portal-topbar p { color: var(--muted); font-size: 11px; }
.portal-topbar h1 { margin-top: 2px; font-size: 22px; line-height: 1.25; }
.portal-account { display: flex; align-items: center; gap: 10px; }
.portal-account strong, .portal-account small { display: block; }
.portal-account small { color: var(--muted); font-size: 11px; }
.portal-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; color: white; background: linear-gradient(145deg, #a2293e, #6d1121); font-weight: 800; }
.text-button { margin-left: 8px; padding: 7px 10px; border: 0; color: #8a6f68; background: transparent; cursor: pointer; }
.text-button:hover { color: var(--wine); }
.portal-content { width: 100%; max-width: 1680px; margin: 0 auto; padding: 28px 34px 48px; }

.message-stack { position: fixed; z-index: 30; top: 95px; right: 28px; display: grid; gap: 8px; }
.message { min-width: 280px; padding: 13px 16px; border: 1px solid #cfe8da; border-radius: 11px; color: #1f6947; background: #edf9f2; box-shadow: var(--shadow); transition: opacity .24s ease, transform .24s ease; }
.message.is-leaving { opacity: 0; transform: translateY(-8px); }
.message.error { border-color: #f1cbd0; color: #9e2637; background: #fff0f2; }

.welcome-card { display: flex; min-height: 170px; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden; padding: 32px 38px; border-radius: 22px; color: white; background: radial-gradient(circle at 78% 15%, rgba(255,207,158,.18), transparent 22%), linear-gradient(118deg, #751426, #a92b3d 62%, #cc604e); box-shadow: 0 18px 45px rgba(111, 20, 37, .2); }
.welcome-card h2, .welcome-card p { margin: 0; }
.welcome-card h2 { margin: 6px 0; font-size: 30px; }
.welcome-card p:last-child { color: #f5dcd6; }
.eyebrow { color: #f7cda8 !important; font-size: 11px !important; font-weight: 800; letter-spacing: .16em; }
.light-button { flex: 0 0 auto; padding: 11px 16px; border: 1px solid rgba(255,255,255,.25); border-radius: 11px; color: white; background: rgba(255,255,255,.1); font-weight: 700; }
.light-button:hover { background: rgba(255,255,255,.18); transform: translateY(-1px); }

.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 19px 0; }
.stat-card { display: flex; min-height: 126px; align-items: center; gap: 15px; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); }
a.stat-card:hover { border-color: #d9c7bd; transform: translateY(-2px); }
.stat-card small, .stat-card strong, .stat-card p { display: block; margin: 0; }
.stat-card small { color: var(--muted); }
.stat-card strong { margin: 3px 0; font-size: 25px; line-height: 1.2; }
.stat-card p { color: #a2938d; font-size: 11px; }
.stat-icon { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 14px; font-weight: 900; }
.stat-icon.red { color: #9f2538; background: #fae9ec; }.stat-icon.gold { color: #a96a19; background: #fff1d8; }.stat-icon.green { color: #24724f; background: #e5f5ec; }.stat-icon.blue { color: #356d97; background: #e5f1f8; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }
.side-stack { display: grid; align-content: start; gap: 18px; }
.panel { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); }
.panel-head { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 20px; border-bottom: 1px solid #eee5e0; }
.panel-head h3, .panel-head p { margin: 0; }.panel-head h3 { font-size: 16px; }.panel-head p { color: var(--muted); font-size: 11px; }.panel-head > a { color: var(--wine); font-size: 12px; font-weight: 700; }
.quick-card > a { display: flex; align-items: center; gap: 10px; margin: 0 17px; padding: 12px 2px; border-bottom: 1px solid #f0e7e2; font-weight: 650; }
.quick-card > a:last-child { border: 0; }.quick-card > a:hover { color: var(--wine); padding-left: 5px; }.quick-card > a span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; color: var(--wine); background: var(--wine-soft); font-size: 11px; }
.delivery-card { padding-bottom: 18px; }.delivery-card > strong, .delivery-card > p, .delivery-card > a { display: block; margin: 12px 20px 0; }.delivery-card > strong { color: var(--wine); font-size: 24px; }.delivery-card > p { color: var(--muted); }.delivery-card > a { color: var(--wine); font-weight: 700; }
.delivery-task-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.delivery-task { padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); }
.delivery-task__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.delivery-task__head small { color: var(--muted); }.delivery-task h3 { margin: 15px 0; font-size: 16px; }.delivery-task dl { display: grid; gap: 10px; margin: 0 0 18px; }.delivery-task dl div { padding: 11px 12px; border-radius: 10px; background: #faf7f4; }.delivery-task dt { color: var(--muted); font-size: 11px; }.delivery-task dd { margin: 3px 0 0; font-weight: 650; word-break: break-word; }.delivery-task form, .delivery-task button { width: 100%; }

.page-actions { display: flex; min-height: 50px; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.page-actions p { margin: 4px 0 0; color: var(--muted); }
.primary-button, .secondary-button, .danger-button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; padding: 0 18px; border: 0; border-radius: 11px; cursor: pointer; font-weight: 750; }
.primary-button { color: white; background: linear-gradient(135deg, #981f35, #731324); box-shadow: 0 8px 18px rgba(126,23,40,.18); }.primary-button:hover { transform: translateY(-1px); box-shadow: 0 11px 24px rgba(126,23,40,.25); }
.secondary-button { border: 1px solid #dbcac1; color: #674d45; background: #fff; }.secondary-button:hover { border-color: #ae8579; color: var(--wine); }
.danger-button { border: 1px solid #edcbd0; color: #a52135; background: #fff0f2; }
.filter-bar { display: grid; grid-template-columns: minmax(240px, 1fr) 190px 170px auto; gap: 10px; margin-bottom: 15px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.7); }
.filter-bar.compact { grid-template-columns: 220px auto; justify-content: start; }
input, select, textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #ddcfc7; border-radius: 9px; outline: none; color: var(--ink); background: white; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: #b45968; box-shadow: 0 0 0 3px rgba(150,32,52,.08); }
input[type="checkbox"] { width: 17px; min-height: 17px; padding: 0; accent-color: var(--wine); }
input[type="file"] { padding: 8px; }

.table-panel { overflow: visible; }.table-wrap { width: 100%; overflow-x: auto; }.table-wrap table, .detail-panel table { width: 100%; border-collapse: collapse; }
th { color: #8c7972; background: #fcfaf8; font-size: 11px; text-align: left; white-space: nowrap; }
th, td { padding: 14px 16px; border-bottom: 1px solid #eee6e1; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }tbody tr:hover td { background: #fffdfb; }
td small.block { display: block; color: var(--muted); }.strong-link, .row-action { color: var(--wine); font-weight: 750; }.row-action { padding: 6px 9px; border-radius: 8px; }.row-action:hover { background: var(--wine-soft); }
.price { color: #a51f35; }.empty-row, .empty-state { padding: 45px !important; color: var(--muted); text-align: center; }
.product-cell, .staff-cell { display: flex; align-items: center; gap: 11px; min-width: 220px; }.product-cell img, .product-cell > span { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 11px; object-fit: cover; }.product-cell > span { display: grid; place-items: center; color: white; background: linear-gradient(145deg, #e7a09a, #b53e47); font-weight: 900; }.product-cell strong, .product-cell small, .staff-cell strong, .staff-cell small { display: block; }.product-cell small, .staff-cell small { color: var(--muted); font-size: 11px; }
.staff-cell > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; color: white; background: var(--wine); font-weight: 800; }
.badge { display: inline-flex; align-items: center; margin: 2px 3px 2px 0; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 750; white-space: nowrap; }.badge.large { padding: 7px 13px; font-size: 13px; }.badge.success { color: #1f764e; background: #e6f6ed; }.badge.warning { color: #9a6119; background: #fff0d8; }.badge.info { color: #356c96; background: #e7f1f8; }.badge.danger { color: #a72538; background: #fce9ec; }.badge.muted { color: #716b68; background: #efedeb; }
.pagination { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-top: 1px solid var(--line); color: var(--muted); }.pagination div { display: flex; align-items: center; gap: 12px; }.pagination a { color: var(--wine); font-weight: 700; }

.category-grid, .promotion-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }.category-card { display: flex; align-items: center; gap: 14px; min-height: 130px; padding: 19px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: var(--shadow); }.category-card > span { display: grid; width: 50px; height: 50px; flex: 0 0 auto; place-items: center; border-radius: 15px; color: var(--wine); background: var(--wine-soft); font-size: 18px; font-weight: 900; }.category-card h3, .category-card p { margin: 0; }.category-card p, .category-card small { color: var(--muted); font-size: 11px; }.category-card a { margin-left: auto; color: var(--wine); font-weight: 750; }
.promotion-card { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow); }.promotion-visual { position: relative; display: grid; height: 180px; min-height: 180px; max-height: 180px; overflow: hidden; place-items: center; color: white; background: linear-gradient(130deg, #8b192e, #cf6a52); }.promotion-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }.promotion-visual > span { font-size: 42px; font-weight: 900; }.promotion-visual b { position: absolute; z-index: 1; top: 12px; right: 12px; padding: 5px 9px; border-radius: 999px; background: rgba(0,0,0,.42); font-size: 10px; }.promotion-edit-float { position: absolute; z-index: 1; right: 12px; bottom: 12px; padding: 7px 10px; border-radius: 999px; color: var(--wine) !important; background: rgba(255,255,255,.94); box-shadow: 0 4px 12px rgba(0,0,0,.16); font-size: 12px; font-weight: 800; }.promotion-copy { display: flex; min-height: 120px; flex-direction: column; justify-content: space-between; gap: 14px; padding: 17px; }.promotion-copy h3, .promotion-copy p { margin: 0; }.promotion-copy p { color: var(--muted); }.promotion-copy__footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.promotion-copy a { color: var(--wine); font-weight: 750; }

.editor-layout, .detail-grid, .settings-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; align-items: start; gap: 18px; }.editor-side, .detail-side { display: grid; gap: 15px; }.form-panel { padding-bottom: 20px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; padding: 20px; }.form-grid.single { grid-template-columns: 1fr; }.form-grid label, .compact-form label { display: block; }.form-grid label > span, .compact-form label > span, .spec-row label { display: block; margin-bottom: 6px; color: #5e4d47; font-size: 12px; font-weight: 700; }.form-grid em { margin-left: 3px; color: var(--danger); font-style: normal; }.form-grid label > small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }.form-grid input[type="date"] { min-height: 48px; font-size: 16px; }.plain-language-tip { display: grid; gap: 5px; margin: 20px 20px 0; padding: 14px 16px; border: 1px solid #f0d6aa; border-radius: 12px; color: #714916; background: #fff8e9; }.plain-language-tip strong { font-size: 14px; }.plain-language-tip span { font-size: 12px; line-height: 1.55; }.quick-date-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }.quick-date-actions button { min-height: 35px; padding: 6px 11px; border: 1px solid #d8b1a1; border-radius: 9px; color: var(--wine); background: #fffaf7; cursor: pointer; font-size: 12px; font-weight: 750; }.quick-date-actions button:hover, .quick-date-actions button:focus { color: white; border-color: var(--wine); outline: none; background: var(--wine); }.span-2 { grid-column: 1 / -1; }.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 0 20px; }.narrow-form { max-width: 760px; margin: 0 auto; }.save-button { width: 100%; }.editor-actions { display: grid; gap: 10px; }.editor-actions .secondary-button { width: 100%; }
.spec-row { display: grid; gap: 9px; margin: 15px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fcfaf8; }.check-line { display: flex !important; align-items: center; gap: 7px; }.check-line input { order: -1; }.delete-check { color: var(--danger) !important; }
.form-error, .field-error { color: #a9273a !important; }.form-error { margin: 15px 20px 0; padding: 11px; border-radius: 9px; background: #fff0f2; }.field-error { display: block; margin-top: 4px; font-size: 11px; }
.errorlist { margin: 0; padding: 0; list-style: none; }

.detail-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }.detail-heading a { color: var(--wine); }.detail-heading h2, .detail-heading p { margin: 3px 0; }.detail-heading p { color: var(--muted); }.detail-panel { margin-bottom: 17px; }.amount-summary { display: flex; justify-content: flex-end; gap: 25px; padding: 16px 20px; border-top: 1px solid var(--line); }.amount-summary strong { color: var(--wine); }.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; padding: 20px; }.info-grid div { padding: 12px; border-radius: 10px; background: #faf7f4; }.info-grid .wide { grid-column: 1 / -1; }.info-grid dt { color: var(--muted); font-size: 11px; }.info-grid dd { margin: 4px 0 0; font-weight: 650; }.order-actions { display: grid; gap: 9px; padding: 16px; }.order-actions button { width: 100%; }.compact-form { padding-bottom: 15px; }.compact-form > label { margin: 15px; }.compact-form > button { margin: 0 15px; width: calc(100% - 30px); }.action-panel { padding-bottom: 4px; }.inline-actions { display: flex; gap: 6px; }.mini-button { padding: 5px 8px; border: 0; border-radius: 7px; cursor: pointer; font-size: 11px; font-weight: 750; }.mini-button.success { color: #1e704a; background: #e4f5eb; }.mini-button.danger { color: #a52436; background: #fbe8eb; }

.settings-preview { position: sticky; top: 105px; }.settings-preview > span { display: block; margin-bottom: 9px; color: var(--muted); font-size: 11px; }.phone-card { min-height: 250px; padding: 28px 24px; border-radius: 22px; color: white; background: radial-gradient(circle at 82% 20%, rgba(255,222,169,.28), transparent 23%), linear-gradient(145deg, #7b1728, #c04a49); box-shadow: 0 18px 40px rgba(111,20,37,.2); }.phone-card small { color: #f4cbbf; }.phone-card h3 { margin: 12px 0 7px; font-size: 25px; }.phone-card p { min-height: 54px; color: #f8e1da; }.phone-card div { margin-top: 18px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.2); }.role-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 17px; }.role-grid article { display: flex; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: white; }.role-grid article > span { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 11px; color: var(--wine); background: var(--wine-soft); font-weight: 800; }.role-grid h3, .role-grid p { margin: 0; }.role-grid p { color: var(--muted); font-size: 11px; }

.login-body { overflow: hidden; background: #f5efe9; }.login-shell { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr); min-height: 100vh; }.login-story { position: relative; display: flex; overflow: hidden; flex-direction: column; justify-content: space-between; padding: 50px 58px; color: white; background: radial-gradient(circle at 72% 18%, rgba(255,207,158,.22), transparent 20%), linear-gradient(145deg, #6c1020 0%, #991d34 58%, #c8584d 100%); }.login-brand { display: flex; align-items: center; gap: 13px; font-size: 19px; }.login-brand span, .mobile-mark { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; color: var(--wine); background: #fff3e4; font-size: 21px; font-weight: 900; }.login-copy { position: relative; z-index: 2; max-width: 620px; }.login-copy h1 { margin: 12px 0 18px; font-size: clamp(38px, 4vw, 66px); line-height: 1.18; letter-spacing: -.04em; }.login-copy > p:last-child { max-width: 520px; color: #f1d7d2; font-size: 16px; }.login-promise { position: relative; z-index: 2; display: flex; gap: 9px; }.login-promise span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #f5dfda; background: rgba(255,255,255,.07); font-size: 11px; }.meat-pattern { position: absolute; border: 1px solid rgba(255,255,255,.12); border-radius: 48% 52% 57% 43%; }.pattern-one { right: -100px; bottom: 80px; width: 360px; height: 280px; transform: rotate(-18deg); }.pattern-two { right: 150px; bottom: -130px; width: 300px; height: 250px; transform: rotate(25deg); }
.login-panel { display: grid; padding: 45px; place-items: center; }.login-card { width: min(420px, 100%); }.login-card__head { display: flex; align-items: center; gap: 13px; margin-bottom: 34px; }.login-card__head p, .login-card__head h2 { margin: 0; }.login-card__head p { color: var(--muted); font-size: 12px; }.login-card__head h2 { font-size: 27px; }.mobile-mark { display: none; }.login-card > label { display: block; margin: 18px 0; color: #5e4d47; font-size: 12px; font-weight: 700; }.login-card > label input { height: 50px; margin-top: 7px; padding: 0 14px; border-radius: 12px; }.login-button { width: 100%; height: 50px; justify-content: space-between; margin-top: 9px; padding: 0 18px; }.login-button span { font-size: 19px; }.login-help { margin-top: 18px; color: var(--muted); font-size: 11px; text-align: center; }

@media (max-width: 1180px) {
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-task-grid { grid-template-columns: 1fr; }
  .content-grid { grid-template-columns: 1fr; }.side-stack { grid-template-columns: 1fr 1fr; }
  .category-grid, .promotion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .portal-shell { grid-template-columns: 82px minmax(0,1fr); }.portal-sidebar { width: 82px; }.portal-brand { justify-content: center; padding: 0; }.portal-brand > span + span, .portal-nav__label, .portal-nav a:not(.active) b, .portal-sidebar__foot div { display: none; }.portal-nav a { justify-content: center; padding: 0; font-size: 0; }.portal-nav a.active { background: rgba(255,255,255,.12); }.portal-nav a.active .nav-icon { color: var(--wine); background: white; }.portal-sidebar__foot { justify-content: center; }.portal-main { grid-column: 2; }
  .editor-layout, .detail-grid, .settings-layout { grid-template-columns: 1fr; }.settings-preview { position: static; }.login-shell { grid-template-columns: 1fr; }.login-story { display: none; }.login-panel { padding: 25px; }.mobile-mark { display: grid; }
}
@media (max-width: 640px) {
  .portal-shell { display: block; }.portal-sidebar { position: static; width: 100%; height: auto; }.portal-brand { height: 64px; }.portal-nav { display: flex; overflow-x: auto; padding: 7px; }.portal-nav__label, .portal-sidebar__foot { display: none; }.portal-nav a { min-width: 52px; margin: 0 2px; }.portal-main { width: 100%; }.portal-topbar { min-height: 70px; padding: 11px 16px; }.portal-topbar p, .portal-account > span + span { display: none; }.portal-topbar h1 { font-size: 18px; }.portal-content { padding: 17px 14px 35px; }.welcome-card { min-height: 190px; align-items: flex-start; flex-direction: column; padding: 24px; }.welcome-card h2 { font-size: 25px; }.stat-grid, .category-grid, .promotion-grid, .role-grid, .form-grid { grid-template-columns: 1fr; }.span-2 { grid-column: auto; }.side-stack { grid-template-columns: 1fr; }.filter-bar, .filter-bar.compact { grid-template-columns: 1fr; }.page-actions { align-items: stretch; flex-direction: column; }.page-actions .primary-button { width: 100%; }.info-grid { grid-template-columns: 1fr; }.info-grid .wide { grid-column: auto; }.message-stack { right: 14px; left: 14px; }.message { min-width: 0; }
}

.form-grid label[hidden]{display:none}.discount-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.discount-buttons button{padding:14px 24px;border:1px solid #ae2a20;border-radius:10px;background:#fff5ee;color:#ae2a20;font-size:18px;cursor:pointer}

/* Phase 9.1A: shared, readable controls for the daily operating pages. */
.portal-topbar { backdrop-filter: none; background: #f7f3ee; }.portal-sidebar { background: #721b2b; }
.portal-topbar h1 { font-size: 24px; }.form-grid label > span { font-size: 14px; }.form-grid label > small { font-size: 12px; }
.panel-head h3 { font-size: 18px; }.panel-head p { font-size: 13px; }.narrow-form { max-width: 1120px; }
.radio-row > div { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; }
:root { --wine: #a71930; --wine-dark: #831023; --cream: #f7f3ee; --ink: #2f241f; --muted: #8a7468; --line: #eadfd7; --shadow: 0 6px 24px rgba(80,45,25,.06); }
.portal-content { max-width: 1400px; padding: 30px 30px 54px; }
.admin-page { display: grid; gap: 22px; min-width: 0; }
.admin-intro { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 1px 2px 5px; }
.admin-intro h2, .admin-intro p { margin: 0; }
.admin-intro h2 { font-size: 25px; line-height: 1.3; font-weight: 700; }
.admin-intro p:not(.eyebrow-red) { margin-top: 7px; color: var(--muted); font-size: 14px; }
.eyebrow-red { margin-bottom: 5px !important; color: var(--wine); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.admin-card { min-width: 0; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: var(--shadow); }
.admin-section { padding: 24px; }.admin-form .admin-section + .admin-section { border-top: 1px solid #f0e8e2; }
.admin-section-title { display: flex; align-items: center; justify-content: space-between; gap: 13px; margin-bottom: 21px; }
.admin-section-title:has(.step-number) { justify-content: flex-start; }
.admin-section-title h3, .admin-section-title p { margin: 0; }
.admin-section-title h3 { color: #30241f; font-size: 18px; font-weight: 700; }
.admin-section-title p { margin-top: 3px; color: var(--muted); font-size: 13px; }
.step-number { display: grid; width: 33px; height: 33px; flex: none; place-items: center; border-radius: 10px; color: var(--wine); background: #f8e9e7; font-size: 16px; font-weight: 800; }
.admin-fields { padding: 0; gap: 18px 20px; }.admin-fields label > span, .form-field > span { display: block; margin-bottom: 7px; color: #3d302a; font-size: 14px; font-weight: 650; }
.form-field { display: block; }.form-field[hidden], .product-choice[hidden], .empty-state-admin[hidden] { display: none !important; }
.form-field input:not([type=checkbox]), .form-field select, .form-field textarea, .selection-tools input, .inline-form input { min-height: 45px; border: 1px solid #dccfc7; border-radius: 8px; font-size: 15px; }
.form-field textarea { min-height: 105px; }.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(167,25,48,.08); }
.form-field > small, .help-text { display: block; margin-top: 6px; color: #8b7a70; font-size: 12px; }.field-error { display: block; margin-top: 6px; color: #a71930 !important; font-size: 12px; }
.form-error { margin: 20px 24px 0; line-height: 1.8; }.form-error strong { display: block; margin-bottom: 3px; }
.primary-button, .secondary-button, .danger-button { min-height: 44px; border-radius: 8px; font-size: 14px; font-weight: 700; }
.primary-button { background: var(--wine); box-shadow: none; }.primary-button:hover { background: var(--wine-dark); transform: none; box-shadow: none; }
.secondary-button:hover { border-color: #bca99e; background: #faf4ed; }.danger-button { color: #9b2133; background: #fff0f2; }.danger-button:hover { background: #fce3e7; }
.action-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px; padding: 22px 24px; border-top: 1px solid var(--line); background: #fdfbf9; border-radius: 0 0 15px 15px; }
.action-bar p { margin: 0; color: var(--muted); font-size: 13px; }
.discount-buttons { margin: 0 0 19px; gap: 10px; }.discount-buttons button, .template-shortcuts button { min-width: 70px; min-height: 46px; padding: 9px 16px; border: 1px solid #dcc8be; border-radius: 9px; color: #6c3938; background: #fff9f5; font-size: 16px; font-weight: 700; cursor: pointer; }
.discount-buttons button:hover, .discount-buttons button.is-selected, .template-shortcuts button:hover, .template-shortcuts button.is-selected { border-color: var(--wine); color: white; background: var(--wine); }
.template-shortcuts { display: flex; flex-wrap: wrap; gap: 9px; }.template-shortcuts button { font-size: 14px; }
.compact-field { max-width: 280px; }.selection-tools { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 15px; }.selection-tools input { flex: 1 1 270px; max-width: 390px; }.selection-tools button { flex: none; }
.product-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; max-height: 330px; overflow-y: auto; }
.product-choice { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fffdfa; cursor: pointer; }
.product-choice:has(input:checked) { border-color: var(--wine); background: #fff6f4; }.product-choice input { flex: none; margin-top: 2px; }.product-choice strong, .product-choice small { display: block; }.product-choice strong { font-size: 14px; }.product-choice small { margin-top: 5px; color: var(--muted); font-size: 12px; }
.selected-products { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }.selected-product-card { padding: 17px; border: 1px solid var(--line); border-radius: 11px; background: #fffdfa; }.selected-product-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 16px; }.text-danger { padding: 6px; border: 0; color: #a3273c; background: transparent; cursor: pointer; font-size: 13px; }
.selected-product-facts { display: grid; gap: 3px; margin: 10px 0 15px; color: var(--muted); }.selected-product-price { color: var(--wine); font-size: 20px; font-weight: 800; }.selected-product-card input { max-width: 185px; }
.radio-row ul { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 15px; padding: 0; list-style: none; }.radio-row label { display: flex; align-items: center; gap: 6px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.radio-row input { width: 17px; min-height: 17px; margin: 0; accent-color: var(--wine); }
.check-line > span { display: flex; align-items: center; gap: 9px; }.check-line input { order: 0; }
.price-preview { padding: 19px; border: 1px solid #f2d3ce; border-radius: 11px; color: var(--wine); background: #fff6f3; font-size: 19px; font-weight: 700; }
.list-card > .admin-section-title { margin: 0; padding: 22px 24px; border-bottom: 1px solid var(--line); }.count-pill { padding: 5px 10px; border-radius: 999px; color: var(--wine); background: #f9e9e8; font-weight: 700; }
.data-table { width: 100%; border-collapse: collapse; }.data-table th { color: #6b5b54; font-size: 12px; }.data-table th, .data-table td { padding: 15px; white-space: nowrap; }.data-table td { font-size: 13px; }.data-table .price { display: block; font-size: 16px; }.original-price { margin-right: 8px; color: var(--muted); text-decoration: line-through; }.row-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }.row-actions .secondary-button, .row-actions .danger-button { min-height: 34px; padding: 0 11px; font-size: 12px; }
.status-badge { display: inline-block; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }.status-live { color: #216f4d; background: #e8f6ed; }.status-wait { color: #326988; background: #e7f2f8; }.status-preparing { color: #9b5a14; background: #fff0d8; }.status-off { color: #9c2438; background: #fae8eb; }.status-ended { color: #706b67; background: #efedeb; }.status-method { color: #774d2b; background: #f8eee2; }
.empty-state-admin { display: grid; justify-items: center; gap: 5px; padding: 33px 20px; color: var(--muted); text-align: center; }.empty-state-admin > span { color: #caa99c; font-size: 29px; }.empty-state-admin strong { color: #4a3c35; font-size: 16px; }.empty-state-admin p { max-width: 450px; margin: 0; font-size: 13px; }
.unit-chip-list { display: flex; flex-wrap: wrap; gap: 9px; }.unit-chip { padding: 8px 15px; border: 1px solid #ead7ce; border-radius: 999px; color: #7b2835; background: #fff8f4; font-weight: 700; }.inline-form { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }.inline-form .form-field { flex: 1 1 260px; max-width: 350px; }.help-banner { display: grid; gap: 5px; padding: 18px 22px; border: 1px solid #ead8b9; border-radius: 12px; color: #6d4b25; background: #fff8e9; }.help-banner strong { font-size: 15px; }
.summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }.summary-card { display: grid; gap: 3px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); }.summary-card span, .summary-card small { color: var(--muted); }.summary-card strong { color: var(--wine); font-size: 29px; }.date-shortcuts, .status-filters { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 16px; }.date-shortcuts a, .status-filters a { padding: 7px 12px; border: 1px solid var(--line); border-radius: 8px; color: #624c42; background: #fff; }.date-shortcuts a:hover, .status-filters a.selected { border-color: var(--wine); color: var(--wine); background: #fff4f2; }.status-filters { padding: 18px 24px 0; }
.reservation-card { padding: 20px 24px; border-top: 1px solid var(--line); }.reservation-card-head, .reservation-card-body { display: flex; align-items: start; gap: 10px 15px; flex-wrap: wrap; }.reservation-card-head { justify-content: space-between; }.reservation-card-head strong { margin-right: 10px; }.reservation-card-head small { color: var(--muted); }.reservation-card-body { margin: 15px 0; }.reservation-card-body > div { display: grid; gap: 3px; min-width: 185px; flex: 1; }.reservation-card-body span, .reservation-card-body small { color: var(--muted); font-size: 12px; }.reservation-card-body strong { font-size: 13px; }
.spec-list { display: grid; gap: 12px; margin-bottom: 17px; }.spec-card { padding: 17px; border: 1px solid var(--line); border-radius: 11px; background: #fffdfa; }.spec-card-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }.spec-card-title strong { font-size: 15px; }.spec-card .form-grid { margin: 0; }.image-upload { display: flex; align-items: center; flex-wrap: wrap; gap: 13px; padding: 13px; border: 1px dashed #d8c6ba; border-radius: 10px; color: var(--muted); background: #fdfaf7; }.image-upload img { width: 78px; height: 78px; object-fit: cover; border-radius: 8px; }.image-upload input[type=file] { position: absolute; width: 1px; height: 1px; padding: 0; opacity: 0; }.image-upload .secondary-button { cursor: pointer; }
@media (max-width: 1100px) { .product-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 900px) { .portal-content { padding: 22px; }.admin-fields, .selected-products { grid-template-columns: 1fr; }.summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .portal-content { padding: 17px 14px 35px; }.admin-section { padding: 18px; }.product-choice-grid, .summary-grid { grid-template-columns: 1fr; }.list-card > .admin-section-title { padding: 18px; }.action-bar { padding: 18px; }.selection-tools input { flex-basis: 100%; }.discount-buttons button { min-width: 60px; }.admin-intro h2 { font-size: 22px; } }

/* Phase 9.1B: staff roles, protected location and storefront-style preview. */
.staff-role-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.staff-role-card { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fffdfa; cursor: pointer; }
.staff-role-card:has(input:checked) { border-color: var(--wine); background: #fff4f2; box-shadow: 0 0 0 2px rgba(167,25,48,.06); }
.staff-role-card input { width: 18px; min-height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--wine); }
.staff-role-card strong, .staff-role-card small { display: block; }.staff-role-card strong { color: #342620; font-size: 15px; }.staff-role-card small { margin-top: 5px; color: var(--muted); line-height: 1.55; }
.role-error { margin: 10px 24px 0; }.badge.role-super { color: #7f241e; background: #f8e0b7; }.badge.role-admin { color: #9b2133; background: #fbe7ea; }.protected-account { color: var(--muted); }
.settings-layout--wide { grid-template-columns: minmax(0,1.85fr) minmax(330px,.85fr); gap: 24px; }.settings-column { display: grid; gap: 22px; }.check-card { padding: 13px 14px; border: 1px solid #eee3dc; border-radius: 10px; background: #fdfaf7; }.check-card .check-line { display: flex; align-items: center; gap: 9px; margin: 0; color: #55443c; font-weight: 600; }.check-card .check-line input { width: 18px; min-height: 18px; }
.location-warning, .location-readonly { margin-bottom: 18px; padding: 16px 18px; border-radius: 11px; }.location-warning { display: grid; gap: 4px; color: #754613; border: 1px solid #edd2a7; background: #fff8e8; }.location-warning span { font-size: 13px; }
.location-readonly { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border: 1px solid #eadfd7; background: #fbf8f5; }.location-readonly div { padding: 12px; border-radius: 9px; background: white; }.location-readonly span, .location-readonly strong { display: block; }.location-readonly span { color: var(--muted); font-size: 12px; }.location-readonly strong { margin-top: 5px; font-size: 16px; }.location-readonly p { grid-column: 1/-1; margin: 0; color: #7b5544; font-size: 13px; }
.restore-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; }.restore-card h3, .restore-card p { margin: 0; }.restore-card h3 { font-size: 17px; }.restore-card p { margin-top: 5px; color: var(--muted); font-size: 13px; }.restore-card .danger-button { flex: none; }
.restore-dialog { width: min(520px,calc(100vw - 32px)); padding: 0; border: 0; border-radius: 16px; color: var(--ink); box-shadow: 0 25px 80px rgba(46,24,17,.26); }.restore-dialog::backdrop { background: rgba(35,21,17,.48); }.restore-dialog form { padding: 26px; }.restore-dialog h3 { margin: 0 0 10px; font-size: 21px; }.restore-dialog ul { margin: 8px 0 18px; padding-left: 22px; line-height: 1.7; }.restore-safe { padding: 14px; border-radius: 10px; background: #f4f8f2; color: #315d3f; }.restore-safe p { margin: 4px 0 0; font-size: 13px; }.restore-dialog .row-actions { justify-content: flex-end; margin-top: 20px; }
.settings-preview { min-width: 0; }.settings-preview > span { font-size: 13px; font-weight: 700; }.mini-phone { width: min(100%,370px); overflow: hidden; margin: 0 auto; border: 8px solid #2f2623; border-radius: 30px; background: #fffcf7; box-shadow: 0 18px 44px rgba(68,37,28,.2); }.mini-brand { padding: 22px 18px 14px; color: #fff7e8; background: linear-gradient(110deg,#9f1d12,#ac2016); }.mini-brand strong, .mini-brand small { display: block; font-family: "STKaiti","KaiTi",serif; }.mini-brand strong { overflow: hidden; font-size: 21px; text-overflow: ellipsis; white-space: nowrap; }.mini-brand small { margin-top: 4px; font-size: 12px; letter-spacing: 1px; }
.mini-hero { display: flex; height: 150px; flex-direction: column; justify-content: center; padding: 18px 22px; color: #fffbed; background-position: center; background-size: cover; }.mini-hero b { font-family: "STKaiti","KaiTi",serif; font-size: 31px; line-height: 1.05; text-shadow: 0 2px 4px #281909; }.mini-hero span { width: max-content; max-width: 100%; margin-top: 12px; padding: 5px 8px; background: #b51d13; font-size: 10px; font-weight: 700; }
.mini-body { padding: 8px; }.mini-benefits { display: grid; grid-template-columns: repeat(3,1fr); padding: 11px 4px; border-radius: 12px; background: #fff7ec; text-align: center; }.mini-benefits span { color: #3b302b; font-size: 11px; font-weight: 700; }.mini-benefits small { display: block; margin-top: 2px; color: #777069; font-size: 9px; font-weight: 400; }
.mini-schedule { margin-top: 8px; padding: 11px; border-radius: 12px; background: linear-gradient(110deg,#ffede4,#fff3ed); }.mini-schedule header, .mini-section header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.mini-schedule header strong, .mini-section header strong { font-size: 13px; }.mini-schedule header small, .mini-section header small { color: #7c736e; font-size: 9px; }.mini-schedule > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }.mini-schedule > div span { padding: 7px; border-radius: 8px; background: rgba(255,255,255,.86); font-size: 9px; }.mini-schedule b { display: block; margin-top: 3px; color: #b91611; font-size: 12px; }.mini-schedule p { margin: 8px 0 0; color: #775d50; font-size: 9px; }.mini-schedule p[hidden] { display: none; }
.mini-section { margin: 14px 4px 0; }.mini-categories { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin-top: 8px; }.mini-categories span { padding: 12px 2px; border-radius: 8px; color: #8c241c; background: linear-gradient(145deg,#f8d8cd,#fff2e9); font-size: 10px; font-weight: 700; text-align: center; }
.mini-products { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin-top: 8px; }.mini-products article { overflow: hidden; border-radius: 8px; background: white; box-shadow: 0 2px 8px rgba(79,46,29,.08); }.mini-products i { display: block; height: 48px; background: linear-gradient(145deg,#b9372e,#f0a08a); }.mini-products article:nth-child(2) i { background: linear-gradient(145deg,#e0a07e,#9f231a); }.mini-products article:nth-child(3) i { background: linear-gradient(145deg,#ab281f,#f0b293); }.mini-products b, .mini-products small { display: block; padding: 0 6px; }.mini-products b { margin-top: 5px; font-size: 10px; }.mini-products small { padding-bottom: 6px; color: #8a817b; font-size: 8px; }
.mini-fee { display: flex; justify-content: space-between; gap: 8px; margin: 10px 4px 3px; padding: 9px 10px; border-radius: 9px; color: #9e281f; background: #fff2e9; font-size: 10px; }.mini-tabs { display: grid; grid-template-columns: repeat(4,1fr); padding: 8px 4px 10px; border-top: 1px solid #eee4dd; background: white; text-align: center; }.mini-tabs span { color: #777; font-size: 15px; }.mini-tabs small { display: block; margin-top: 2px; font-size: 9px; }.mini-tabs .active { color: #b51913; }.preview-note { max-width: 370px; margin: 10px auto 0; color: var(--muted); font-size: 11px; text-align: center; }
@media (max-width: 1180px) { .settings-layout--wide { grid-template-columns: minmax(0,1fr) 340px; } }
@media (max-width: 900px) { .settings-layout--wide { grid-template-columns: 1fr; }.settings-preview { position: static; }.staff-role-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .restore-card { align-items: stretch; flex-direction: column; }.restore-card .danger-button { width: 100%; }.location-readonly { grid-template-columns: 1fr; }.location-readonly p { grid-column: auto; } }
.portal-content{max-width:1500px;padding-left:40px;padding-right:40px}.list-page,.dashboard{max-width:1500px}.form-page,.narrow-form{max-width:1280px}.primary-tabs,.segment-tabs{display:flex;gap:8px;align-items:center;margin:0 0 16px;overflow-x:auto}.primary-tabs a,.segment-tabs a,.segment-tabs button,.status-filters button{flex:none;padding:9px 15px;border:1px solid var(--line);border-radius:999px;color:#674f44;background:#fff;cursor:pointer}.primary-tabs a.selected,.segment-tabs a.selected,.segment-tabs button.selected,.status-filters button.selected{border-color:var(--wine);color:#fff;background:var(--wine)}.scroll-tabs{padding-bottom:5px}.admin-filter-stack{display:grid;gap:12px;padding:18px 24px}.admin-filter-stack>input{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:9px}.capacity-input{width:120px;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px}@media(max-width:900px){.portal-content{padding-left:22px;padding-right:22px}}
.category-tabs{display:flex;gap:8px;margin:0 0 16px;padding:5px 1px;overflow-x:auto}.category-tabs a{flex:none;padding:9px 16px;border:1px solid var(--line);border-radius:999px;color:#674f44;background:#fff}.category-tabs a.selected{border-color:var(--wine);color:#fff;background:var(--wine)}.admin-filter-stack .status-filters{padding:0}.compact-stats{margin:0 0 18px}

/* Phase 9.1F: reservation operations polish */
.status-filters{display:flex;flex-wrap:wrap;gap:8px}.status-filters a{flex:none;padding:9px 15px;border:1px solid var(--line);border-radius:999px;color:#674f44;background:#fff}.status-filters a.selected{border-color:var(--wine);color:#fff;background:var(--wine)}.filter-sections{display:grid;gap:12px;padding:0 24px 20px}.filter-caption{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:750}.clear-filter-button{white-space:nowrap}.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card--accent{border-color:#ead2ca;background:linear-gradient(145deg,#fff,#fff4f0)}.stat-card--accent strong,.preparation-quantity{color:var(--wine)!important}.preparation-quantity{font-size:18px}.order-count-badge,.category-badge,.unit-badge{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:750}.order-count-badge{color:#71491a;background:#fff0d5}.category-badge{margin-top:6px;color:#8f241c;background:#fae6df}.unit-badge{color:#5d554f;background:#f1eeeb}.capacity-table td{vertical-align:middle}.capacity-product-cell{display:flex;align-items:center;gap:12px;min-width:210px}.capacity-product-cell img,.capacity-product-placeholder{width:48px;height:48px;flex:0 0 48px;border-radius:11px;object-fit:cover}.capacity-product-placeholder{display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#a52216,#d86752);font-size:19px;font-weight:800}.capacity-product-cell>div{display:grid}.capacity-input-wrap{display:flex;align-items:center;gap:7px}.capacity-input-wrap span{color:var(--muted);font-size:12px}.reserved-quantity{font-weight:700}.capacity-remaining{display:inline-flex;padding:7px 10px;border-radius:9px;font-size:12px}.capacity-remaining--available{color:#287448;background:#e7f6ed}.capacity-remaining--empty{color:#8b756d;background:#f1ebe8}.promotion-choice-field{margin:0;padding:0;border:0}.promotion-choice-field legend{margin-bottom:9px;color:#5e4d47;font-size:12px;font-weight:700}.promotion-choice-field>p{margin:-2px 0 10px;color:var(--muted);font-size:11px}.jump-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.jump-target-card{display:flex!important;align-items:center;gap:10px;min-height:70px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.jump-target-card:has(input:checked){border-color:var(--wine);box-shadow:0 0 0 1px var(--wine);background:#fff7f3}.jump-target-card input,.jump-category-grid input{accent-color:var(--wine)}.jump-target-card>span{margin:0!important}.jump-target-card strong{color:#392c27;font-size:13px}.jump-target-card small{margin-top:4px;color:var(--muted);font-size:11px}.jump-category-field{padding:15px;border:1px solid #ead9d0;border-radius:12px;background:#fffaf7}.jump-category-field[hidden]{display:none}.jump-category-grid{display:flex;flex-wrap:wrap;gap:8px}.jump-category-grid label{display:flex!important;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer}.jump-category-grid label:has(input:checked){border-color:var(--wine);color:var(--wine);background:#fff0eb}.jump-category-grid label span{margin:0!important;color:inherit!important;font-size:12px!important}.future-method-tabs{margin-top:4px}@media(max-width:720px){.compact-stats,.jump-target-grid{grid-template-columns:1fr}.capacity-product-cell{min-width:170px}}

/* Phase 9.1G: operations filters, compact promotion targets and order alerts. */
.reservation-filter-row{display:grid;grid-template-columns:minmax(280px,1fr) 190px auto auto;gap:10px;align-items:center}.reservation-filter-row input,.reservation-filter-row .primary-button,.reservation-filter-row .secondary-button{height:44px;min-height:44px;box-sizing:border-box;border-radius:10px}.reservation-filter-row input{padding:0 13px;border:1px solid var(--line);background:#fff}.reservation-filter-row .secondary-button,.reservation-filter-row .primary-button{display:inline-flex;align-items:center;justify-content:center;padding:0 17px}.future-filter-group{padding-top:15px;border-top:1px solid #f0e6e0}.future-filter-group:first-of-type{padding-top:0;border-top:0}.future-filter-group .segment-tabs,.future-filter-group .status-filters,.future-filter-group .date-shortcuts{margin-bottom:0}.future-date-form{margin-top:10px}.future-date-form .form-field{flex:0 0 190px}.future-date-form input,.future-date-form button{height:42px;min-height:42px;box-sizing:border-box}
.jump-target-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.jump-target-card{position:relative;display:grid!important;grid-template-columns:38px minmax(0,1fr);gap:10px;min-height:92px;padding:15px 36px 14px 14px;align-items:center;border-radius:13px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.jump-target-card input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.jump-target-card:has(input:checked){border-color:#b92b35;background:#fff3f0;box-shadow:0 0 0 1px rgba(166,31,47,.08)}.jump-target-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;color:#8f2631;background:#f8e5e1;font-size:15px;font-weight:850}.jump-target-copy{display:grid!important;min-width:0;margin:0!important}.jump-target-copy strong{font-size:14px}.jump-target-copy small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.4}.jump-target-check{position:absolute;top:10px;right:11px;display:none;color:#fff;width:20px;height:20px;border-radius:50%;background:var(--wine);font-size:12px;font-weight:900;align-items:center;justify-content:center}.jump-target-card:has(input:checked) .jump-target-check{display:flex}.jump-category-field{overflow:hidden;transition:opacity .16s ease}.jump-category-grid input{position:absolute;width:1px;height:1px;opacity:0}.jump-category-grid label:has(input:checked){color:#fff;background:var(--wine)}
.special-category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.special-category-tabs button{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;color:#674f44;background:#fff;cursor:pointer}.special-category-tabs button.selected{border-color:var(--wine);color:#fff;background:var(--wine)}.product-choice{align-items:center}.product-choice>img,.product-choice-placeholder{width:42px;height:42px;flex:0 0 42px;border-radius:9px;object-fit:cover}.product-choice-placeholder{display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#a52216,#d86752);font-weight:800}.product-choice>span:last-child{min-width:0}.product-choice em{display:inline-flex;margin-top:6px;padding:3px 7px;border-radius:999px;color:#8f241c;background:#fae6df;font-size:10px;font-style:normal;font-weight:700}
.notification-bell{position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #ead9d1;border-radius:12px;color:var(--wine);background:#fff}.notification-bell>span{font-size:22px}.notification-bell b{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border:2px solid #fff;border-radius:999px;color:#fff;background:#c52231;font-size:10px;line-height:16px;text-align:center}.sound-toggle{min-height:36px;padding:0 11px;border:1px solid #ead9d1;border-radius:9px;color:#744c3c;background:#fff;cursor:pointer;font-size:12px}.notification-panel{position:fixed;z-index:50;top:82px;right:24px;width:min(410px,calc(100vw - 32px));padding:19px;border:1px solid #e9c9c3;border-radius:16px;background:#fffaf7;box-shadow:0 18px 50px rgba(75,31,25,.22)}.notification-panel__head{display:flex;align-items:center;gap:12px}.notification-panel__icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:#fff;background:var(--wine);font-weight:800}.notification-panel__head div{display:grid}.notification-panel__head strong{font-size:17px}.notification-panel__head small{margin-top:3px;color:var(--muted)}.notification-panel__summary{margin:14px 0;padding:12px;border-radius:10px;color:#604b42;background:#fff}.notification-panel__actions{display:flex;justify-content:flex-end;gap:9px}.notification-connection{display:block;margin-top:10px;color:#a15c1b}.notification-list{overflow:hidden}.notification-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:13px;align-items:center;padding:18px 22px;border-top:1px solid var(--line)}.notification-row:first-child{border-top:0}.notification-row.is-unread{background:#fff8f4}.notification-kind{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:#fff;background:var(--wine);font-weight:800}.notification-row p,.notification-row small{margin:4px 0 0;color:var(--muted)}
@media(max-width:900px){.reservation-filter-row{grid-template-columns:1fr 180px}.jump-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sound-toggle{display:none}}@media(max-width:640px){.reservation-filter-row{grid-template-columns:1fr}.jump-target-grid{grid-template-columns:1fr}.notification-panel{top:70px;right:16px}.notification-row{grid-template-columns:38px 1fr}.notification-row .secondary-button{grid-column:2}}

.notification-connection[hidden]{display:none}.notification-connection{max-width:180px;color:#a15c1b;font-size:11px;line-height:1.3}

/* Phase 9.1H: explicit dimensions and selected-only marks. */
.reservation-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.reservation-filter-row>input[name=q]{flex:1;min-width:240px;width:auto}
.reservation-filter-row>input[type=date]{flex:0 0 200px;width:200px}
.reservation-filter-row>input,.reservation-filter-row>.primary-button,.reservation-filter-row>.secondary-button{height:44px;min-height:44px;max-height:44px;margin:0;box-sizing:border-box;border-radius:10px;line-height:normal;align-self:center}
.reservation-filter-row>.primary-button,.reservation-filter-row>.secondary-button{display:flex;align-items:center;justify-content:center;padding:0 22px;flex-shrink:0}
.jump-target-card>.jump-target-check{display:none!important}
.jump-target-card:has(input:checked)>.jump-target-check{display:flex!important}
.jump-target-card:has(input:checked) strong{font-weight:750}
.notification-row:not(.is-unread){background:#fff}.notification-row:not(.is-unread) strong{font-weight:400}
.notification-row.is-unread{background:#fff2ed}.notification-row.is-unread strong{font-weight:700}
.notification-read-badge{display:inline-flex;margin-left:8px;padding:3px 8px;border-radius:20px;font-size:11px;color:#766c67;background:#eee9e6}
.is-unread .notification-read-badge{color:var(--wine);background:#f8dcd5}
.notification-unread-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--wine)}
.reservation-customer-group{margin:16px 0;border:1px solid #ead5cc;border-radius:14px;overflow:hidden}
.reservation-customer-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#fff4ee;cursor:pointer}
.reservation-customer-group>summary div{display:grid;gap:6px}.reservation-customer-group>summary small{color:var(--muted)}
.reservation-customer-group .reservation-card{margin:0;border-radius:0;border-width:1px 0 0}
body:has(.notification-list) .notification-panel{top:auto;bottom:24px}
/* Shared reservation filter component: no inherited list margins. */
.reservation-filter-panel{padding:24px;display:grid;gap:24px}
.reservation-filter-heading h3{margin:0;font-size:18px;line-height:26px}
.reservation-filter-heading p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:20px}
.reservation-filter-section{display:grid;gap:10px;margin:0;padding:0}
.reservation-filter-section .filter-caption{margin:0;line-height:18px}
.reservation-filter-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.reservation-filter-buttons a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#674f44;font-size:13px;margin:0}
.reservation-filter-buttons a.selected{color:#fff;background:var(--wine);border-color:var(--wine)}
.reservation-filter-panel .reservation-filter-row{display:flex;gap:12px;align-items:center;margin:0;padding:0;width:100%}
.reservation-filter-panel .reservation-filter-row>input:not([type=hidden]),.reservation-filter-panel .reservation-filter-row>.primary-button,.reservation-filter-panel .reservation-filter-row>.secondary-button{height:44px;box-sizing:border-box;margin:0;border-radius:10px}
.reservation-filter-panel input[name=q]{flex:1;min-width:140px}
.reservation-filter-panel input[type=date]{flex:0 0 200px;width:200px}
.reservation-filter-panel .reservation-filter-row>button,.reservation-filter-panel .reservation-filter-row>a{display:inline-flex;align-items:center;justify-content:center;padding:0 22px;line-height:normal;white-space:nowrap}
.customer-group-toggle{padding:10px 16px;border:1px solid #e5b6ae;border-radius:10px;color:var(--wine);background:#fff;white-space:nowrap}
.customer-group-toggle b{font-size:13px}.reservation-customer-group .when-open{display:none}.reservation-customer-group[open] .when-open{display:block}.reservation-customer-group[open] .when-closed{display:none}
.jump-category-field{grid-column:1/-1;padding:20px!important;background:#fff9f7;border-radius:14px}
.jump-category-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.jump-category-grid label{box-sizing:border-box;min-width:104px;height:44px;justify-content:center;padding:0 20px!important;border-radius:10px!important;margin:0!important}
.jump-category-grid label:has(input:checked){background:#fff0eb!important;color:var(--wine)!important;border:1px solid var(--wine);box-shadow:0 0 0 1px #f1d3cb}
.jump-category-grid label:focus-within{outline:2px solid var(--wine);outline-offset:3px}
.category-selected-note{display:block;margin-top:14px;color:var(--wine);font-size:13px}
@media(max-width:640px){.reservation-filter-panel{padding:18px;gap:24px}.reservation-filter-panel .reservation-filter-row{flex-wrap:wrap}.reservation-filter-panel input[name=q]{flex-basis:100%}.reservation-customer-group summary{align-items:flex-start;gap:12px;flex-wrap:wrap}}
/* Phase 9.1J: shared operations presentation. */
.operations-orders{min-width:1080px}.order-number{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-goods{min-width:230px;max-width:340px}.order-goods summary{cursor:pointer;display:grid;gap:8px;list-style:none}.order-goods summary::-webkit-details-marker{display:none}.order-goods summary b{color:var(--wine);font-size:12px}.order-goods .when-open{display:none}.order-goods[open] .when-open{display:block}.order-goods[open] .when-closed{display:none}.order-goods-lines{display:grid;gap:12px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff9f6}.order-goods-lines>div{display:grid;gap:5px}.order-goods-lines small,.order-goods-lines span{color:var(--muted);font-size:12px}.dashboard-goods{min-width:180px;max-width:260px;white-space:normal}.todo-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:12px 18px;border-top:1px solid var(--line);color:var(--wine)}.todo-row strong{font-size:18px}.todo-row:hover{background:#fff2ec}.todo-row.is-zero{color:var(--muted)}.todo-row.is-zero strong{font-size:15px;font-weight:400}.business-todos{overflow:hidden}

/* Phase10A.1: one full-label menu; mobile drawer below the existing 900px boundary. */
.portal-menu-toggle,.portal-menu-close,.portal-menu-logout,.portal-menu-backdrop{display:none}
.portal-menu-backdrop[hidden]{display:none!important}
@media(max-width:900px){
 body.portal-menu-open{overflow:hidden}
 .portal-shell{display:block}.portal-main{width:100%;min-width:0}
 .portal-topbar{gap:12px;padding:12px 16px;min-height:70px}
 .portal-topbar>div:first-of-type{flex:1;min-width:0}.portal-topbar p{display:none}
 .portal-topbar h1{font-size:20px;overflow-wrap:anywhere}
 .portal-menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:52px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--wine);font-weight:700}
 .portal-account{gap:0;flex:none}.portal-account>span,.portal-account>form,.portal-account .sound-toggle{display:none}
 .portal-account .notification-connection{position:absolute;top:100%;right:12px;max-width:250px;background:#fff;padding:8px}
 .portal-sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(320px,90vw);height:100dvh;visibility:hidden;transform:translateX(-100%);transition:transform .18s ease,visibility .18s;box-shadow:8px 0 30px rgba(0,0,0,.18)}
 .portal-menu-open .portal-sidebar{visibility:visible;transform:translateX(0)}
 .portal-menu-close{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin:12px 14px 0;padding:0 14px;border:1px solid #b57a84;border-radius:10px;background:transparent;color:white;flex:none}
 .portal-brand{height:auto;min-height:76px;padding:14px 20px;justify-content:flex-start;flex:none}
 .portal-brand>span+span{display:block}.portal-brand strong{font-size:16px}.portal-brand__mark{flex:none}
 .portal-nav{display:block;overflow-x:hidden;overflow-y:auto;min-height:0;flex:1;padding:16px 14px;overscroll-behavior:contain}
 .portal-nav__label{display:block;margin:18px 12px 7px}
 .portal-nav a{justify-content:flex-start;min-width:0;min-height:46px;margin:4px 0;padding:10px 12px;font-size:14px;line-height:1.5}
 .portal-nav .nav-icon{display:none}.portal-nav a:not(.active) b{display:grid}
 .portal-nav a.active{color:#6d1322;background:#fff7ed}
 .portal-menu-logout{display:block;margin:10px 14px 14px;flex:none}.portal-menu-logout button{width:100%;min-height:44px;border:1px solid #b57a84;border-radius:10px;background:transparent;color:white}
 .portal-sidebar__foot{display:none}
 .portal-menu-backdrop{display:block;position:fixed;inset:0;z-index:40;border:0;background:rgba(29,13,15,.48);touch-action:none}
}
@media print{.portal-menu-toggle,.portal-menu-close,.portal-menu-logout,.portal-menu-backdrop{display:none!important}body.portal-menu-open{overflow:visible}}
#late-delivery-fields[hidden], #hours-adjustment-notice[hidden] { display: none !important; }
#hours-adjustment-notice { padding: 12px; border-radius: 8px; background: #fff4e8; color: #7a3e10; }

/* Phase10C: shared stock remains Product.stock_jin; these are presentation rules. */
.c10-return { display:inline-flex; align-items:center; min-height:44px; margin-bottom:12px; color:var(--wine); font-weight:700; }
.c10-summary { padding:20px; margin-bottom:16px; min-width:0; }.c10-summary h2 { overflow-wrap:anywhere; }
.c10-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; }.c10-summary-grid dt { color:var(--muted); font-size:12px; }.c10-summary-grid dd { margin:5px 0; font-weight:700; }.c10-payment { color:var(--muted); font-size:12px; margin-bottom:0; }
.c10-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:start; }
.c10-main-column,.c10-side-column { display:flex; flex-direction:column; gap:16px; min-width:0; }
.c10-actions,.c10-notes { display:flex; flex-direction:column; gap:16px; }
.c10-actions:not(:has(.panel)),.c10-notes:not(:has(.panel)) { display:none; }
.c10-side-column input,.c10-side-column select,.c10-side-column textarea,.c10-side-column button,.c10-side-column .row-actions a,.c10-side-column .order-actions form { width:100%; max-width:100%; box-sizing:border-box; min-width:0; }
.c10-side-column .row-actions,.c10-side-column .order-actions { display:flex; flex-direction:column; gap:8px; }
.c10-order .panel-head { padding:16px 20px; margin:0; }
.c10-order .panel-head h3 { margin:0; }
.c10-order .compact-form > label { margin:16px 20px; }
.c10-save { padding:0 20px; }
.c10-save button { margin:0; }
.c10-order .c10-print-body,.c10-order .order-actions { padding:20px; }
.c10-detail-grid > * { min-width:0; }.c10-remark > p { padding:0 20px 20px; overflow-wrap:anywhere; }
.c10-item,.c10-item-head { display:grid; grid-template-columns:minmax(0,1fr) 90px 130px; gap:12px; padding:14px 20px; border-bottom:1px solid var(--line); }.c10-item-head { font-size:12px; color:var(--muted); }.c10-item small,.c10-item strong { display:block; }.c10-item small { color:var(--muted); margin-top:4px; }.c10-item > :last-child { text-align:right; }.c10-order .amount-summary { flex-wrap:wrap; gap:12px; }
.c10-print-body { padding:16px; }.c10-print .row-actions { display:flex; flex-wrap:wrap; gap:8px; }.c10-print a { max-width:100%; white-space:normal; }.c10-print dl > div { display:flex; justify-content:space-between; margin:8px 0; }.c10-print dd { margin:0; }.c10-print p { color:var(--muted); font-size:12px; }
.c10-inventory-links { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }.c10-stock-row,.c10-stock-head { display:grid; grid-template-columns:minmax(0,2fr) 1fr 1fr minmax(220px,1.5fr); gap:12px; align-items:center; padding:12px 18px; border-top:1px solid var(--line); }.c10-stock-head { color:var(--muted); font-size:12px; }.c10-stock-row small { display:block; color:var(--muted); margin-top:4px; }.c10-stock-row .badge { justify-self:start; }.c10-stock-control { display:flex; gap:8px; align-items:center; }.c10-stock-control label { display:flex; align-items:center; gap:6px; }.c10-stock-control input { width:100px; min-height:44px; }.c10-inventory .admin-section-title { padding:18px; flex-wrap:wrap; gap:12px; }.c10-inventory .row-actions { display:flex; flex-wrap:wrap; gap:8px; }
@media(max-width:900px) {
.c10-detail-grid { display:flex; flex-direction:column; gap:16px; }.c10-main-column,.c10-side-column { display:contents; }.c10-detail-grid > *, .c10-main-column > *, .c10-side-column > * { width:100%; }.c10-actions { order:0; }.c10-goods { order:1; }.c10-customer { order:2; }.c10-remark { order:3; }.c10-print { order:4; }.c10-notes { order:5; }.c10-actions:empty,.c10-notes:empty { display:none; }.c10-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.c10-stock-head { display:none; }.c10-stock-row { grid-template-columns:minmax(0,1fr) auto; gap:10px; }.c10-stock-row > :first-child { grid-row:span 2; }.c10-stock-control { grid-column:1/-1; justify-content:flex-end; }.c10-stock-row > span { justify-self:end!important; }
}
@media(max-width:480px) { .c10-summary { padding:15px; }.c10-summary-grid { gap:12px; }.c10-item { grid-template-columns:minmax(0,1fr) 65px 90px; gap:6px; padding:12px; font-size:12px; }.c10-item-head { display:none; }.c10-order .info-grid { padding:12px; gap:8px; }.c10-summary .detail-heading { align-items:flex-start; gap:8px; }.c10-summary h2 { font-size:16px; }.c10-inventory .category-tabs { flex-wrap:wrap; }.capacity-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:14px; border-bottom:1px solid var(--line); }.capacity-table thead { display:none; }.capacity-table td { border:0; padding:0; }.capacity-table td:first-child { grid-column:1/-1; }.capacity-table .capacity-input-wrap { max-width:170px; }.capacity-table { min-width:0!important; width:100%; }.capacity-category-tabs { flex-wrap:wrap; } }

.c10-confirm { margin:14px; padding:14px; background:#fff4e5; border:1px solid #eed4b0; border-radius:12px; }.c10-confirm[hidden] { display:none!important; }

.c10-capacity-hint { display:block; max-width:240px; margin-top:6px; color:var(--wine); font-size:12px; }.capacity-table td { white-space:normal; }
.c10-stock-control .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; }
@media(max-width:480px) { #capacity-form .admin-section-title { flex-wrap:wrap; gap:12px; } #capacity-form .admin-section-title > div { width:100%; } #capacity-form .row-actions { display:flex; flex-wrap:wrap; gap:8px; } #capacity-form .row-actions button { flex:1; min-width:120px; white-space:normal; } .capacity-table td:nth-child(4)::before { content:"允许预订"; display:block; color:var(--muted); font-size:12px; margin-bottom:5px; } .capacity-table td:nth-child(5)::before { content:"已被预订"; display:block; color:var(--muted); font-size:12px; margin-bottom:5px; } }

/* Phase 10D: message surfaces remain independent of order handling. */
.d10-tabs {display:flex;gap:8px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line,#eee);}
.d10-tabs a {padding:8px 14px;border-radius:20px;color:inherit;background:#f8f4ef;}
.d10-tabs a.active {background:#a61932;color:white;}
.d10-conversation {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid #eee;color:inherit;min-width:0;}
.d10-conversation>div {min-width:0;}.d10-conversation p {overflow-wrap:anywhere;margin:8px 0;}
.d10-badge {background:#a61932;color:white;padding:4px 8px;border-radius:20px;}
.d10-thread {max-width:1000px;margin:16px auto;min-width:0;overflow:hidden;}
.d10-thread .panel-head {flex-wrap:wrap;gap:12px;}.d10-thread .panel-head p {overflow-wrap:anywhere;margin:8px 0 0;}
.d10-history-tools {padding:12px 20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.d10-history {height:50vh;min-height:240px;max-height:600px;overflow-y:auto;overscroll-behavior:contain;padding:20px;display:flex;flex-direction:column;gap:16px;background:#fbf8f4;}
.d10-message {max-width:80%;align-self:flex-start;min-width:0;}.d10-message.is-staff {align-self:flex-end;}
.d10-message small {display:block;color:#84766c;margin-bottom:6px;}.d10-message p {white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px;background:white;border:1px solid #eee;padding:12px 16px;margin:0;}.d10-message.is-staff p {background:#fff0ed;border-color:#efd5cd;}
.d10-compose {padding:16px 20px;}.d10-compose textarea {width:100%;box-sizing:border-box;margin:8px 0;resize:vertical;}.d10-compose>div {display:flex;justify-content:space-between;align-items:center;}.d10-error,.d10-readonly {padding:0 20px;color:#a61932;}.d10-new {display:block;margin:8px auto;}.d10-new[hidden] {display:none;}
.d10-contact-body {padding:20px;}.d10-contact a {display:block;width:100%;box-sizing:border-box;text-align:center;}
@media(max-width:900px) {.d10-contact {order:3;}.d10-history {height:46vh;padding:12px;}.d10-message {max-width:90%;}.d10-conversation {padding:16px;}.d10-thread .panel-head {padding:16px;}}

.d10-thread .panel-head h2{font-size:18px;margin:0;}.d10-conversations+.pagination{padding:16px;}

#customer-message-badge[hidden]{display:none;}
.d11-back { margin:0 0 16px; font-weight:700; }.d11-type { display:inline-block; padding:4px 8px; border-radius:6px; font-size:12px; background:#f7e7de; color:#8c3821; }.d11-RESERVATION { background:#e7efe8; color:#3a6350; }.d10-conversation>div { min-width:0; }.d10-conversation small { display:block; margin-top:8px; }.d11-list-meta { flex-shrink:0; text-align:right; display:grid; gap:10px; }.d11-thread-tools,.d11-quick-items { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }.d11-quick { margin:12px 0; }.d11-quick summary { cursor:pointer; font-weight:600; }.d11-quick-items button { white-space:normal; text-align:left; max-width:100%; overflow-wrap:anywhere; }.d11-quick-management { padding:20px; }.d11-quick-form { display:flex; gap:12px; flex-wrap:wrap; align-items:end; padding:16px 0; border-top:1px solid var(--line); }.d11-quick-form label { display:grid; gap:6px; }.d11-quick-form label:first-of-type { flex:1; min-width:180px; }.d11-quick-form textarea { width:100%; box-sizing:border-box; }.d11-quick-form input[type=number] { width:90px; }.reservation-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }.reservation-actions form { display:contents; }.reservation-actions .primary-button { order:1; }.reservation-actions .reservation-message-link { order:2; }.reservation-actions .danger-button { order:3; background:#fff; color:#9d382f; }.reservation-actions button,.reservation-actions a { min-height:40px; height:40px; box-sizing:border-box; margin:0; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }.reservation-card-head small { font-size:13px; color:#6b5b54; white-space:nowrap; }
@media(max-width:480px) { .d10-conversation { flex-wrap:wrap; gap:12px; }.d11-list-meta { text-align:left; display:flex; align-items:center; }.d11-quick-form>label { max-width:100%; }.reservation-actions { gap:8px; } }
.d11-thread-tools [hidden] { display:none !important; }
/* Phase10D.2: conversation toolbar and independent, consistent content sections. */
.d12-thread-wrap,.d12-quick-wrap{max-width:1000px;margin:0 auto;min-width:0}
.d12-thread-nav{position:sticky;top:84px;z-index:9;display:flex;justify-content:space-between;gap:12px;padding:12px 0;background:#f7f3ee}
.d12-thread-nav a{min-height:44px;box-sizing:border-box}
.d12-thread-wrap .d10-thread{margin:4px 0 16px;max-width:none}
.d12-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted)}
.d12-compose-area{padding:16px 20px;border-top:1px solid var(--line);background:#fff}
.d12-compose-area .d11-quick{margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbf8f4}
.d12-compose-area .d11-quick a{display:inline-flex;min-height:44px;align-items:center;color:#a61932;font-weight:600}
.d12-compose-area .d10-compose{padding:0}.d12-compose-area .d10-compose label{font-weight:600}
.d12-conversation-management{padding:12px 20px;border-top:1px solid var(--line);background:#fbf8f4}
.d12-conversation-management .d11-thread-tools{margin:0}.d12-conversation-management p{font-size:12px;margin:10px 0 0}
.d12-quick-create{padding:16px;background:#fbf8f4;border-radius:12px;margin-bottom:20px}
.d12-quick-create h3{margin:0 0 12px}.d12-quick-create .d11-quick-form{border:0;padding:0 0 12px}
.d12-quick-card{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.d12-quick-card-head{display:flex;justify-content:space-between;gap:12px}.d12-quick-card-head strong{color:#a61932}
.d12-quick-card .d11-quick-form{border:0}.d11-quick-form .d12-active{display:flex;align-items:center;min-height:44px}
.d12-sort-tools,.d12-sort-tools form,.d12-sort-tools label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.d12-sort-tools{justify-content:space-between;border-top:1px solid var(--line);padding-top:12px}
.d12-sort-tools select{max-width:100%;min-height:44px}.d12-sort-tools button{min-height:44px}
@media(max-width:900px){.d12-thread-nav{top:70px}.d12-compose-area,.d12-conversation-management{padding:16px}.d12-thread-nav a{padding:0 12px;display:inline-flex;align-items:center}.d12-quick-card{padding:14px}.d12-sort-tools{justify-content:flex-start}}
/* Align labelled position selector and actions along the same control baseline. */
.d12-sort-tools{align-items:flex-end}
.d12-sort-tools form{align-items:flex-end}
.d12-sort-tools label{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.d12-sort-tools button,.d12-sort-tools select{height:44px;min-height:44px;box-sizing:border-box;margin:0}
.d12-sort-tools button{display:inline-flex;align-items:center;justify-content:center;line-height:1.2}
.d12-conversation-row{border-bottom:1px solid var(--line)}.d12-conversation-row .d10-conversation{border:0}.d12-list-actions{padding:0 20px 16px;display:flex;justify-content:flex-end}.d12-list-actions button{min-height:44px}.d12-list-actions button:disabled{opacity:.5;cursor:not-allowed}.d12-sync-note{padding:0 20px;font-size:12px}
.operations-orders tr.d12-pending-order{background:#fff5e5}.operations-orders tr.d12-pending-order td:first-child{box-shadow:inset 4px 0 #c67916}.d12-pending-label{display:block;margin-top:7px;color:#9a4d0d;font-weight:700;font-size:12px}.d12-pending-summary{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:16px 20px;background:#fff3dc;border:1px solid #edd5b0;border-radius:12px;margin:16px 0}.d12-pending-summary a{font-weight:700;color:#a61932}.d12-pending-order{scroll-margin-top:100px}

.e10-trace{max-width:1200px;margin:auto}.e10-filters{padding:20px;display:flex;flex-wrap:wrap;gap:16px;align-items:end}.e10-filters label{flex:1 1 150px;min-width:0}.e10-filters input,.e10-filters select{width:100%;min-height:44px;box-sizing:border-box}.e10-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.e10-record{padding:24px;min-width:0;overflow-wrap:anywhere}.e10-record-title{display:flex;justify-content:space-between;gap:16px;align-items:center}.e10-record-title time,.e10-record small{color:#8e8076;font-size:13px}.e10-flow{display:flex;align-items:center;gap:16px;background:#faf5ef;padding:16px;border-radius:12px;margin:12px 0;font-size:20px}.e10-delta{float:right;font-weight:700}.e10-plus{color:#167b56}.e10-minus{color:#b51c36}.e10-changes p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0e6df}.e10-record .secondary-button{min-height:44px;box-sizing:border-box}.e10-trace>section{margin-top:16px}@media(max-width:900px){.e10-records{grid-template-columns:1fr}.e10-record{padding:18px}.e10-filters{padding:16px}.e10-record-title{align-items:start}.e10-record-title strong{max-width:65%}}
.e10-filters button{min-height:44px;padding:0 24px;border:0;border-radius:10px;background:var(--primary,#ad1832);color:white;font:inherit;font-weight:600;cursor:pointer}.e10-filters label{display:grid;gap:8px}

/* Phase10E.1: compact audit rows; complete facts stay on the detail page. */
.e10-audit-compact{display:block}.e10-audit-compact .e10-record{display:grid;grid-template-columns:190px 150px 75px minmax(100px,1fr) minmax(100px,1.4fr) 90px;align-items:center;gap:12px;padding:12px 16px;margin:0;border-radius:0;box-shadow:none;border-bottom:1px solid var(--border,#eaded7)}
.e10-audit-compact .e10-record-title{display:flex;flex-direction:column;gap:4px}.e10-audit-compact .e10-record-title time{font-size:12px}.e10-brief{font-size:13px;overflow-wrap:anywhere}.e10-object{overflow-wrap:anywhere}.e10-audit-compact .secondary-button{padding:7px 10px;white-space:nowrap}.c10-stock-control{flex-wrap:wrap}
@media(max-width:900px){.e10-audit-compact .e10-record{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;border-radius:12px;margin-bottom:8px;padding:12px}.e10-audit-compact .e10-record-title{grid-column:1}.e10-actor{grid-column:2;grid-row:1;font-size:12px}.e10-module{display:none}.e10-object,.e10-brief{grid-column:1}.e10-audit-compact .secondary-button{grid-column:2;grid-row:3}.e10-audit-compact .e10-record-title time{font-size:11px}}

.badge.inactive{background:#f0ebe6;color:#756a62}
/* Phase10E.1 frequent stock operations. */
.c10-inventory-links .secondary-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;margin:0;box-sizing:border-box}
.stock-sale-action{min-height:44px;padding:10px 16px;border:0;border-radius:10px;color:#fff;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.stock-publish{background:#217647}.stock-unpublish{background:#b21d36}
.c10-stock-control .secondary-button{min-height:44px;background:#fff;color:#55473e;border:1px solid #d8c7bd}
.c10-stock-row.is-unpublished{background:#faf8f5}.c10-stock-row.is-unpublished strong{color:#332b27}
#stock-unpublish-dialog{border:1px solid #eaded7;border-radius:16px;padding:24px;max-width:min(430px,calc(100vw - 32px));box-sizing:border-box}
#stock-unpublish-dialog::backdrop{background:rgba(25,15,10,.4)}
#stock-unpublish-dialog .row-actions{display:flex;justify-content:flex-end;gap:12px}#stock-unpublish-dialog .secondary-button{min-height:44px}
@media(max-width:900px){.c10-stock-control{justify-content:flex-start;gap:8px}.c10-stock-control label{max-width:100%}.c10-inventory-links .secondary-button{flex:1 1 auto}.c10-inventory .filter-bar input[name=search]{min-width:0;width:100%;box-sizing:border-box}}

/* Phase10F: compact stock operations and read-only export tools. */
@media(min-width:901px){.c10-stock-row,.c10-stock-head{grid-template-columns:minmax(140px,1.4fr) minmax(95px,.6fr) minmax(78px,.5fr) minmax(380px,2.5fr)}.c10-stock-control{justify-content:flex-start}.c10-stock-control input{width:88px}.c10-stock-control [data-stock-zero]{margin-left:6px}}
.f10-export-card{padding:20px;margin:16px 0}.f10-export-card form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.f10-export-card label{display:flex;flex-direction:column;gap:6px;min-width:140px}.f10-export-card input,.f10-export-card select{min-height:44px;max-width:100%;box-sizing:border-box}.f10-pending{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.f10-pending a{display:flex;gap:12px;align-items:center;padding:12px;background:#faf7f3;border:1px solid var(--line);border-radius:10px}.f10-pending a strong{margin-left:auto}
@media(max-width:600px){.f10-export-card form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.f10-export-card label{min-width:0}.f10-export-card button{grid-column:1/-1;min-height:44px}.f10-exports .segment-tabs{flex-wrap:wrap}.f10-pending{grid-template-columns:1fr}.c10-stock-control{gap:7px}.c10-stock-control input{width:80px}}
/* Phase10F.1 scoped toolbar and dense-list refinements. */
.f11-stock-search.filter-bar.compact{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px;margin-bottom:16px}.f11-stock-search input[name=search]{width:280px;flex:0 1 280px;min-width:0;height:44px}.f11-stock-search button,.f11-stock-search a{height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.f11-quantity-group,.f11-sale-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.c10-stock-control{justify-content:space-between;gap:14px}.c10-stock-control [data-stock-zero]{margin-left:0}.f11-date-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.f11-date-toolbar .date-shortcuts{margin:0;gap:8px}.f11-date-toolbar .date-shortcuts a{display:inline-flex;align-items:center;justify-content:center;height:44px;border-radius:10px;padding:0 16px}.f11-date-toolbar .date-shortcuts a.selected{background:var(--wine);color:white;border-color:var(--wine)}.reservation-filter-panel .f11-date-toolbar .reservation-filter-row{width:auto;gap:8px}.f11-date-section{display:grid;gap:10px}
.f11-conversations .d12-conversation-row{display:flex;align-items:center;gap:14px;padding:12px 18px;min-height:86px}.f11-conversations .d10-conversation{flex:1;min-width:0;padding:0;gap:12px;flex-wrap:nowrap}.f11-message-heading{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.f11-message-main{flex:1;min-width:0}.f11-message-preview{display:flex;gap:12px;align-items:center;min-width:0;margin-top:8px}.f11-conversations .f11-message-preview small{margin:0;flex-shrink:0;font-size:12px}.f11-conversations .f11-message-preview p{margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:13px;min-width:0;color:var(--muted)}.f11-conversations .d11-list-meta{gap:6px;font-size:12px}.f11-conversations .d11-list-meta small{margin:0}.f11-conversations .d12-list-actions{padding:0;gap:8px;flex-shrink:0}.f11-conversations .d12-list-actions a,.f11-conversations .d12-list-actions button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;padding:0 12px}
.f11-delivery .reservation-filter-row{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:16px}.f11-delivery .reservation-filter-row label{display:grid;gap:6px}.f11-delivery input,.f11-delivery select{width:200px;height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:white}.f11-delivery-list{display:grid;gap:10px}.f11-delivery-row{padding:16px 18px;display:flex;align-items:center;gap:20px;margin:0}.f11-delivery-main{flex:1;min-width:0}.f11-delivery-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.f11-delivery-address{margin:8px 0 4px;overflow-wrap:anywhere}.f11-delivery-items{margin:4px 0;color:var(--muted);font-size:13px}.f11-amount{color:var(--wine);margin-left:auto}.f11-delivery-actions{display:flex;gap:8px;flex-shrink:0}.f11-delivery-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media(min-width:901px){.c10-stock-row,.c10-stock-head{grid-template-columns:minmax(0,1.6fr) minmax(90px,.72fr) minmax(75px,.62fr) minmax(390px,2.06fr)}}
@media(max-width:900px){.c10-stock-control{justify-content:flex-start}.f11-conversations .d12-conversation-row{flex-wrap:wrap}.f11-message-preview{display:block}.f11-conversations .f11-message-preview p{margin-top:5px}.f11-conversations .d12-list-actions{width:100%;justify-content:flex-end}.f11-delivery-row{flex-wrap:wrap}.f11-delivery-actions{width:100%;justify-content:flex-end}.f11-date-toolbar{gap:10px}.reservation-filter-panel .f11-date-toolbar .reservation-filter-row{width:100%;flex-wrap:nowrap}.reservation-filter-panel .f11-date-toolbar input[type=date]{width:0;min-width:0;flex:1}.f11-stock-search input[name=search]{width:100%;flex-basis:100%}.f11-delivery input,.f11-delivery select{width:100%}.f11-delivery .reservation-filter-row label{flex:1;min-width:125px}}

/* Phase11A.1-U: scoped service workspace and delivery toolbar. */
.u11-back-nav{margin-bottom:16px}.u11-back-nav a{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
.u11-delivery-toolbar{padding:20px;margin-bottom:20px}.u11-delivery-toolbar .admin-intro{align-items:center;gap:16px;padding:0}.u11-delivery-toolbar .admin-intro>div{flex:1 1 320px;min-width:0}.u11-delivery-toolbar a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box}
.u11-delivery-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:18px}.u11-delivery-filters label{display:flex;flex-direction:column;gap:6px;flex:0 1 210px;min-width:0}.u11-delivery-filters input,.u11-delivery-filters select,.u11-delivery-filters button{height:44px;min-height:44px;box-sizing:border-box;margin:0;width:100%}.u11-delivery-filters button{width:auto;align-self:flex-end;display:inline-flex;align-items:center;justify-content:center}
.u11-workspace.d12-thread-wrap{max-width:1440px}.u11-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:20px;align-items:start}.u11-workspace-grid>.d10-thread{min-width:0;margin:0}.u11-order-preview{min-width:0;padding:20px;overflow-wrap:anywhere}.u11-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.u11-preview-heading h2{font-size:17px;margin:0}.u11-preview-subtitle,.u11-preview-number{color:var(--muted);font-size:12px}.u11-contact{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:16px 0;font-size:15px}.u11-contact span{font-variant-numeric:tabular-nums}.u11-preview-address{font-size:14px;line-height:1.65;margin:12px 0}.u11-order-preview small{display:block;color:var(--muted);font-size:12px}.u11-preview-facts{display:grid;gap:8px;font-size:12px;margin:16px 0}.u11-preview-facts div{display:flex;gap:12px}.u11-preview-facts dt{color:var(--muted);flex:0 0 60px}.u11-preview-facts dd{margin:0;min-width:0}.u11-preview-items{list-style:none;padding:0;margin:16px 0;border-top:1px solid var(--line)}.u11-preview-items li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.u11-preview-items li>div{min-width:0}.u11-preview-items li>span{white-space:nowrap}.u11-preview-remark{background:#faf5ef;padding:12px;border-radius:10px;margin:14px 0}.u11-preview-remark p{margin:5px 0 0;font-size:14px;line-height:1.6}.u11-preview-amount{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:14px;margin-top:16px}.u11-preview-amount small{flex-basis:100%;text-align:right}.u11-preview-number{margin:16px 0 0}
@media(max-width:1100px){.u11-workspace-grid{grid-template-columns:minmax(0,1fr)}.u11-order-preview{grid-row:1}.u11-preview-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}}
@media(max-width:600px){.u11-delivery-toolbar,.u11-order-preview{padding:16px}.u11-delivery-filters label{flex:1 1 100%}.u11-delivery-filters button{width:100%}.u11-delivery-toolbar .admin-intro>a{width:100%}.u11-preview-items{grid-template-columns:1fr}.u11-workspace-grid{gap:14px}}
