:root {
  --primary: #274b3d;
  --accent: #d5f36b;
  --surface: #ffffff;
  --background: #f3f1e9;
  --ink: #16221d;
  --muted: #66716c;
  --border: #d9ddd8;
  --radius: 14px;
  --danger: #a63f35;
  --shadow: 0 18px 60px rgba(26, 42, 34, .08);
  font-family: Aptos, "Segoe UI", sans-serif;
  color: var(--ink);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { color-scheme: light; }
body { margin: 0; background: var(--background); color: var(--ink); }
button, input, select, textarea { font: inherit; }
a { color: var(--primary); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Cambria, Georgia, serif; letter-spacing: -.035em; }
h1 { margin-bottom: .5rem; font-size: clamp(2rem, 4vw, 3.7rem); line-height: .98; }
h2 { margin-bottom: .8rem; font-size: 1.4rem; }
h3 { margin-bottom: .3rem; }
small { color: var(--muted); }
.eyebrow { margin: 0 0 .45rem; color: var(--primary); font: 800 .7rem/1 Aptos, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 9px 9px 9px 3px; background: var(--accent); color: #173126; font: 700 1.25rem Cambria, Georgia, serif; }
.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--primary); border-radius: 9px; padding: 10px 15px; background: var(--primary); color: #fff; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform .16s ease, filter .16s ease; }
.button:hover { filter: brightness(.94); transform: translateY(-1px); }
.button.ghost { border-color: var(--border); background: #fff; color: var(--ink); }
.action { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 7px; padding: 6px 9px; background: #fff; color: var(--ink); font-size: .78rem; font-weight: 700; text-decoration: none; white-space: nowrap; cursor: pointer; }
.muted-action { color: var(--muted); }
.danger-link { color: var(--danger); }
.icon-button { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--border); border-radius: 9px; background: #fff; color: var(--ink); font-size: 1.15rem; text-decoration: none; }
label { display: block; margin-bottom: 17px; color: #35423c; font-size: .82rem; font-weight: 720; }
label em, .optional { color: var(--muted); font-style: normal; font-weight: 400; }
input, select, textarea { display: block; width: 100%; min-height: 44px; margin-top: 7px; border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; background: #fff; color: var(--ink); outline: none; }
input[type="checkbox"], input[type="radio"] { display: inline-block; width: auto; min-height: 0; padding: 0; accent-color: var(--primary); }
textarea { min-height: 80px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.check-row, .check-grid { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-bottom: 15px; }
.check-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.check { display: flex; min-height: 32px; align-items: flex-start; gap: 9px; margin: 0; font-weight: 500; line-height: 1.4; }
.check input { width: auto; min-height: 0; margin: 3px 0 0; accent-color: var(--primary); }
.field-note { min-height: 18px; margin: -7px 0 17px; color: var(--muted); font-size: .8rem; font-weight: 400; line-height: 1.45; }
.staff-only { border-radius: 4px; padding: 2px 6px; background: #fff0ce; color: #76520e; font-size: .68rem; text-transform: uppercase; }
.alert { border-radius: 9px; padding: 13px 15px; margin-bottom: 18px; font-size: .88rem; }
.alert.error { display: grid; gap: 4px; border: 1px solid #e8c2bd; background: #fff0ed; color: #87372f; }
.badge { display: inline-flex; align-items: center; justify-content: center; width: max-content; border: 0; border-radius: 99px; padding: 5px 9px; font-size: .67rem; font-weight: 800; text-transform: capitalize; }
.badge.confirmed { background: #dff1e6; color: #1c663f; }
.badge.pending { background: #fff0bd; color: #76520e; }
.badge.seated { background: #d9ebf6; color: #1d5778; }
.badge.completed { background: #e9ecea; color: #4e5953; }
.badge.cancelled, .badge.rejected, .badge.no_show { background: #f7dfdc; color: #963c33; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Public booking experience */
.booking-body { min-height: 100vh; background: radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 28%), linear-gradient(90deg, transparent 49.9%, color-mix(in srgb, var(--border) 55%, transparent) 50%, transparent 50.1%), var(--background); }
.booking-shell { width: min(100% - 32px, 760px); margin: 0 auto; padding: 28px 0 45px; }
.booking-brand { display: flex; align-items: center; gap: 11px; }
.booking-brand div { display: grid; }
.booking-brand strong { font-family: Cambria, Georgia, serif; font-size: 1.08rem; }
.booking-brand span:last-child { color: var(--muted); font-size: .72rem; }
.booking-intro { max-width: 600px; margin: 62px 0 28px; }
.booking-intro p:last-child { max-width: 520px; color: var(--muted); font-size: 1.04rem; line-height: 1.55; }
.booking-card { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); padding: clamp(20px, 5vw, 40px); background: color-mix(in srgb, var(--surface) 96%, transparent); box-shadow: var(--shadow); }
.booking-step { display: grid; grid-template-columns: 34px 1fr; gap: 15px; border-top: 1px solid var(--border); padding: 27px 0 10px; }
.booking-step:first-of-type { border-top: 0; padding-top: 3px; }
.booking-step > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--ink); color: #fff; font-size: .68rem; font-weight: 800; }
.booking-step > div { min-width: 0; }
.booking-submit { width: 100%; min-height: 52px; margin-top: 10px; justify-content: space-between; padding-inline: 19px; }
.privacy-check { margin: 15px 0; color: var(--muted); font-size: .78rem; }
.alternative-times { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 7px; }
.alternative-times button, .next-dates button { border: 1px solid currentColor; border-radius: 6px; padding: 5px 8px; background: transparent; color: inherit; cursor: pointer; }
.next-dates { display: flex; flex-wrap: wrap; gap: 7px; margin: -8px 0 17px; }
.public-waitlist { border-top: 1px solid var(--border); margin-top: 28px; padding-top: 28px; }
.booking-shell > footer { display: flex; justify-content: space-between; gap: 12px; padding: 20px 5px; color: var(--muted); font-size: .75rem; }
.embed-mode { background: transparent; }
.embed-mode .booking-shell { width: min(100% - 12px, 760px); padding: 6px 0; }
.embed-mode .booking-brand, .embed-mode .booking-intro, .embed-mode .booking-shell > footer { display: none; }
.embed-mode .booking-card { box-shadow: none; }

/* Admin shell */
.admin-body { min-height: 100vh; display: grid; grid-template-columns: 246px minmax(0, 1fr); background: #f4f4ef; }
.sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; overflow: auto; padding: 24px 15px 18px; background: #17251f; color: #cfd9d3; }
.admin-brand { display: flex; align-items: center; gap: 10px; padding: 0 9px 31px; color: #fff; font: 700 1.06rem Cambria, Georgia, serif; text-decoration: none; }
.admin-brand > span:last-child { display: grid; }
.admin-brand small { color: #91a39a; font: 500 .61rem Aptos, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.sidebar nav { display: grid; gap: 22px; }
.sidebar nav section { display: grid; gap: 3px; }
.sidebar nav p { margin: 0 10px 5px; color: #71867b; font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar nav a { border-radius: 7px; padding: 9px 10px; color: #cbd5cf; font-size: .84rem; text-decoration: none; }
.sidebar nav a:hover { background: #22372e; color: #fff; }
.sidebar nav a.active { background: var(--accent); color: #173126; font-weight: 800; }
.sidebar nav .nav-disabled { display: block; border-radius: 7px; padding: 9px 10px; color: #82958a; font-size: .84rem; cursor: not-allowed; }
.sidebar-foot { display: grid; grid-template-columns: 10px 1fr; align-items: center; gap: 8px; margin-top: auto; border-top: 1px solid #2b3d35; padding: 17px 10px 0; color: #80958a; font-size: .7rem; }
.live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #72cf91; box-shadow: 0 0 0 3px rgba(114, 207, 145, .13); }
.logout { grid-column: 2; border: 0; padding: 7px 0 0; background: transparent; color: #aab9b1; text-align: left; font-size: .72rem; cursor: pointer; }
.admin-main { width: 100%; max-width: 1660px; padding: 28px 32px 60px; }
.admin-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 23px; }
.admin-header h1 { margin: 0; font-size: clamp(2rem, 3vw, 3.15rem); }
.page-subtitle { margin: 7px 0 0; color: var(--muted); font-size: .88rem; }
.header-actions { display: flex; align-items: center; gap: 8px; }
.user-name { margin-left: 8px; color: var(--muted); font-size: .8rem; }
.admin-panel { border: 1px solid var(--border); border-radius: 12px; padding: 22px; margin-bottom: 18px; background: #fff; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.panel-heading h2 { margin-bottom: 0; }
.panel-heading > a { font-size: .8rem; font-weight: 700; text-decoration: none; }
.metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.metrics article { position: relative; overflow: hidden; min-height: 100px; border: 1px solid var(--border); border-radius: 11px; padding: 16px; background: #fff; }
.metrics span { display: block; margin-bottom: 6px; color: var(--muted); font-size: .75rem; }
.metrics strong { font: 700 2rem Cambria, Georgia, serif; letter-spacing: -.04em; }
.metrics .accent-metric { background: #203c31; color: #fff; }
.metrics .accent-metric span { color: #b9c7c0; }
.metrics .accent-metric::after { position: absolute; right: -10px; bottom: -30px; width: 90px; height: 90px; border-radius: 50%; background: var(--accent); content: ""; opacity: .18; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .7fr); gap: 18px; }
.service-list { display: grid; }
.service-card { display: grid; grid-template-columns: 75px minmax(170px, 1fr) auto auto; align-items: center; gap: 13px; border-top: 1px solid var(--border); padding: 13px 0; }
.service-card time { font: 700 1.05rem Cambria, Georgia, serif; font-variant-numeric: tabular-nums; }
.service-card time small { display: block; font: 500 .7rem Aptos, sans-serif; }
.service-guest { min-width: 0; display: grid; gap: 3px; }
.service-guest strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.service-guest span { color: var(--muted); font-size: .78rem; }
.readiness-card { background: #eff2eb; }
.readiness-card > a { display: grid; gap: 3px; border-top: 1px solid var(--border); padding: 13px 0; color: var(--ink); text-decoration: none; }
.readiness-card > a span { color: var(--muted); font-size: .75rem; }
.view-switcher { display: flex; width: max-content; max-width: 100%; overflow: auto; border: 1px solid var(--border); border-radius: 9px; padding: 3px; margin-bottom: 16px; background: #ebece7; }
.view-switcher a { border-radius: 6px; padding: 7px 16px; color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.view-switcher a.active { background: #fff; color: var(--ink); box-shadow: 0 1px 4px rgba(0, 0, 0, .08); }
.date-toolbar { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.date-toolbar > div { display: flex; gap: 7px; }
.date-toolbar h2 { margin: 0; }
.date-toolbar input { width: auto; margin: 0; }
.compact-metrics article { min-height: 76px; padding: 12px 15px; }
.compact-metrics strong { font-size: 1.55rem; }
.service-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; }
.refresh-note { color: var(--muted); font-size: .7rem; }
.refresh-note .live-dot { margin-right: 6px; }
.day-timeline { position: relative; }
.day-timeline::before { position: absolute; top: 0; bottom: 0; left: 69px; width: 1px; background: var(--border); content: ""; }
.timeline-row { position: relative; display: grid; grid-template-columns: 62px 65px minmax(190px, 1fr) auto minmax(160px, auto); align-items: center; gap: 11px; min-height: 78px; border-top: 1px solid #edf0ed; }
.timeline-row.is-muted { opacity: .52; }
.hour-marker { align-self: start; margin-top: 11px; color: var(--muted); font-size: .65rem; }
.timeline-row time { position: relative; z-index: 1; border: 1px solid var(--border); border-radius: 7px; padding: 7px 5px; background: #fff; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.timeline-row time small { display: block; margin-top: 2px; font-size: .62rem; font-weight: 500; }
.indicators, .indicator-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.indicators span, .indicator-row span { border-radius: 4px; padding: 2px 5px; background: #edf1e9; color: #4c5d54; font-size: .63rem; }
.quick-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.quick-actions form { margin: 0; }
.waitlist-rail { align-self: start; }
.waitlist-mini { display: grid; gap: 3px; border-top: 1px solid var(--border); padding: 12px 0; color: var(--ink); text-decoration: none; }
.waitlist-mini span { color: var(--muted); font-size: .75rem; }
.empty-state { display: grid; min-height: 150px; place-items: center; align-content: center; color: var(--muted); text-align: center; }
.empty-state > span { font: 400 2rem Cambria, serif; }
.empty-state p, .empty { margin: 7px 0; color: var(--muted); }
.filter-bar { margin-bottom: 14px; }
.filter-bar form { display: flex; flex-wrap: wrap; gap: 7px; }
.filter-bar input, .filter-bar select { width: auto; min-width: 135px; margin: 0; }
.filter-bar .search-field { position: relative; flex: 1; min-width: 260px; margin: 0; }
.search-field span { position: absolute; z-index: 1; left: 12px; top: 12px; }
.search-field input { width: 100%; padding-left: 33px; }
.table-wrap { overflow: auto; padding: 0; }
table { width: 100%; border-collapse: collapse; font-size: .82rem; }
th { padding: 13px 16px; background: #f6f7f3; color: var(--muted); font-size: .66rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
td { border-top: 1px solid var(--border); padding: 13px 16px; vertical-align: middle; }
td small { display: block; margin-top: 3px; }
.guest-link { color: var(--ink); font-weight: 800; text-decoration: none; }
.inline { display: flex; align-items: center; gap: 5px; }
.inline input, .inline select { width: auto; margin: 0; }
.form-panel { max-width: 760px; }
.wide-form { max-width: 1050px; }
.form-section { border-top: 1px solid var(--border); padding: 20px 0 7px; }
.form-section:first-of-type { border-top: 0; }
.form-section h3 { margin-bottom: 15px; font: 700 1rem Cambria, Georgia, serif; }
.settings-stack { max-width: 1050px; }
.sticky-save { position: sticky; right: 20px; bottom: 20px; float: right; box-shadow: 0 8px 24px rgba(18, 40, 30, .2); }
.detail-hero, .guest-hero { display: grid; grid-template-columns: minmax(190px, .7fr) 1.5fr auto; align-items: center; gap: 25px; border-radius: 13px; padding: 24px; margin-bottom: 18px; background: #1e392e; color: #fff; }
.detail-hero h2, .guest-hero h2 { margin: 8px 0 3px; font-size: 2rem; }
.detail-hero p, .guest-hero p { margin: 0; color: #bdcbc4; }
.hero-facts, .guest-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.hero-facts div, .guest-stats div { border-left: 1px solid #456052; padding-left: 14px; }
.hero-facts span, .guest-stats span { display: block; color: #9eb0a7; font-size: .68rem; }
.hero-facts strong, .guest-stats strong { display: block; margin-top: 5px; font-family: Cambria, Georgia, serif; }
.detail-actions { display: grid; gap: 7px; }
.detail-actions .action { border-color: #526a5e; background: transparent; color: #fff; }
.detail-actions .button.ghost { background: transparent; color: #fff; }
.detail-grid, .two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.detail-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 15px 0 0; }
.detail-list div { border-top: 1px solid var(--border); padding: 11px 0; }
.detail-list dt { color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.detail-list dd { margin: 4px 0 0; font-weight: 700; }
.notes-panel { display: grid; gap: 18px; }
.internal-note { border: 1px solid #ead7a8; border-radius: 9px; padding: 14px; background: #fff8e7; }
.internal-note p:last-child, .notes-panel p:last-child { margin-bottom: 0; line-height: 1.5; }
.activity-list article { display: grid; grid-template-columns: 12px 1fr; gap: 10px; padding: 10px 0; }
.activity-dot { width: 8px; height: 8px; margin-top: 5px; border: 2px solid var(--primary); border-radius: 50%; }
.activity-list article > div { display: grid; gap: 3px; }
.activity-list details { margin-top: 5px; font-size: .75rem; }
.activity-list pre { overflow: auto; padding: 9px; background: #f5f6f2; }
.walkin-shell { display: grid; grid-template-columns: .75fr 1.25fr; gap: 35px; max-width: 980px; align-items: start; }
.walkin-intro { padding-top: 35px; }
.walkin-intro h2 { font-size: 2rem; }
.walkin-intro p:last-child { color: var(--muted); line-height: 1.6; }
.party-input input { height: 75px; font: 700 2rem Cambria, serif; text-align: center; }
.large-button { width: 100%; min-height: 52px; }
.area-list { display: grid; gap: 7px; }
.area-row { display: grid; grid-template-columns: minmax(170px, 1fr) 90px 100px auto auto; align-items: center; gap: 8px; margin: 0; }
.area-row input { margin: 0; }
.toggle { display: flex; align-items: center; gap: 7px; margin: 0; }
.toggle input { width: auto; min-height: 0; margin: 0; }
.field-toggle { min-height: 44px; margin-top: 19px; }
.table-config-list { display: grid; gap: 8px; }
.config-card, .creation-drawer { border: 1px solid var(--border); border-radius: 9px; background: #fff; }
.config-card summary, .creation-drawer summary { cursor: pointer; list-style: none; }
.config-card summary { display: grid; grid-template-columns: 160px 1fr 130px auto; align-items: center; gap: 10px; padding: 12px; font-size: .8rem; }
.config-card > form, .creation-drawer > form { border-top: 1px solid var(--border); padding: 17px; }
.creation-drawer { margin-top: 14px; background: #f8f9f6; }
.creation-drawer summary { padding: 13px 15px; color: var(--primary); font-size: .82rem; font-weight: 800; }
.table-symbol { font-weight: 800; }
.combination-list article, .block-list article, .hours-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--border); padding: 12px 0; }
.combination-list article > div, .block-list article > div, .hours-list article > div { display: grid; gap: 3px; }
.combination-list span, .block-list span, .hours-list span { color: var(--muted); font-size: .76rem; }
.state-legend { flex-wrap: wrap; align-items: center; }
.state-legend span { position: relative; padding-left: 13px; color: var(--muted); font-size: .68rem; }
.state-legend span::before { position: absolute; top: 3px; left: 0; width: 8px; height: 8px; border-radius: 2px; background: #dfe7e2; content: ""; }
.state-legend .reserved-soon::before { background: #f3d77d; }.state-legend .reserved::before { background: #d49a80; }.state-legend .seated::before { background: #72b594; }.state-legend .blocked::before { background: #727b76; }
.floor-area { margin-bottom: 28px; }
.area-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 10px; }
.area-heading h2 { margin: 0; }
.area-heading > span { color: var(--muted); font-size: .72rem; }
.floor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 11px; }
.table-tile { display: grid; min-height: 205px; grid-template-rows: auto auto 1fr auto; border: 1px solid var(--border); border-top: 5px solid #cbd7d0; border-radius: 11px; padding: 15px; background: #fff; }
.table-tile.reserved-soon { border-top-color: #e3bd45; }.table-tile.reserved { border-top-color: #c87555; }.table-tile.seated { border-top-color: #3c9268; }.table-tile.blocked { border-top-color: #59635e; background: #eceeeb; }
.table-tile header { display: flex; align-items: center; justify-content: space-between; }
.table-tile header strong { font: 700 1.2rem Cambria, serif; }
.table-tile header span, .table-state { color: var(--muted); font-size: .65rem; }
.table-state { margin: 11px 0; font-weight: 800; letter-spacing: .08em; }
.table-tile > a { display: grid; align-content: center; gap: 3px; color: var(--ink); text-decoration: none; }
.table-tile > a span { color: var(--muted); font-size: .72rem; }
.table-empty { align-self: center; color: var(--muted); font-size: .78rem; }
.table-tile footer { display: flex; gap: 7px; border-top: 1px solid var(--border); padding-top: 10px; }
.table-tile footer a { font-size: .72rem; font-weight: 700; text-decoration: none; }
.waitlist-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(290px, .7fr); gap: 18px; }
.waitlist-list > article { display: grid; grid-template-columns: 70px minmax(150px, 1fr) minmax(230px, auto); align-items: center; gap: 13px; border-top: 1px solid var(--border); padding: 14px 0; }
.wait-time { display: grid; text-align: center; }
.wait-time strong { font: 700 1.35rem Cambria, serif; }
.wait-time span { color: var(--muted); font-size: .67rem; }
.waitlist-list h3, .waitlist-list p { margin: 0 0 4px; }
.waitlist-list p, .waitlist-list small { display: block; color: var(--muted); font-size: .72rem; }
.wait-actions { display: grid; gap: 5px; }
.wait-actions form:first-child { display: flex; gap: 5px; }
.wait-actions select { min-height: 36px; margin: 0; padding: 5px; }
.guest-hero { grid-template-columns: .8fr 1.7fr; }
.guest-stats { grid-template-columns: repeat(5, 1fr); }
.guest-stats strong { font-size: 1.4rem; }
.tag-list { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.tag-list form { margin: 0; }
.guest-tag { border: 1px solid var(--tag); border-radius: 99px; padding: 6px 10px; background: transparent; color: var(--tag); font-size: .74rem; font-weight: 800; cursor: pointer; }
.guest-tag.selected { background: var(--tag); color: #fff; }
.tag-create input[type=color] { width: 45px; padding: 4px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(100px, 1fr)); overflow: auto; border: 1px solid var(--border); border-radius: 11px; background: var(--border); gap: 1px; }
.calendar-head { padding: 9px 11px; background: #eef0eb; color: var(--muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.calendar-day { display: grid; min-height: 120px; align-content: start; gap: 8px; padding: 11px; background: #fff; color: var(--ink); text-decoration: none; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--primary); }

/* Online ordering — editorial menu meets a compact kitchen docket. */
.ordering-body { min-height: 100vh; background: radial-gradient(circle at 10% 0, color-mix(in srgb, var(--accent) 22%, transparent), transparent 26rem), var(--background); font-family: "Avenir Next", Avenir, "Trebuchet MS", sans-serif; }
.order-shell { width: min(1480px, calc(100% - 36px)); margin: 0 auto; padding: 28px 0 90px; }
.order-hero { display: grid; min-height: 340px; grid-template-columns: minmax(220px,.7fr) minmax(360px,1.3fr); align-items: start; border-bottom: 1px solid var(--border); padding: 12px 0 45px; }
.order-hero-copy { align-self: end; }
.order-hero-copy h1 { max-width: 760px; margin: 9px 0 18px; font: 500 clamp(3.3rem,8vw,7.7rem)/.82 Georgia,serif; letter-spacing: -.075em; }
.order-hero-copy h1 em { color: var(--primary); font-weight: 400; }
.order-hero-copy > p:last-child { max-width: 570px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.order-alert { margin: 22px 0; }
.order-layout { display: grid; grid-template-columns: minmax(0,1fr) 370px; gap: 48px; align-items: start; padding-top: 25px; }
.category-rail { position: sticky; z-index: 4; top: 0; display: flex; gap: 8px; overflow-x: auto; border-bottom: 1px solid var(--border); padding: 12px 0; background: color-mix(in srgb,var(--background) 91%,transparent); backdrop-filter: blur(14px); }
.category-rail a { border: 1px solid var(--border); border-radius: 99px; padding: 9px 15px; background: var(--surface); color: var(--ink); font-size: .76rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.menu-section { scroll-margin-top: 70px; padding: 60px 0 10px; }
.menu-section > header { display: grid; grid-template-columns: 1fr minmax(200px,380px); gap: 28px; align-items: end; margin-bottom: 22px; }
.menu-section > header h2 { margin: 0; font: 500 clamp(2.1rem,4vw,3.8rem)/1 Georgia,serif; letter-spacing: -.045em; }
.menu-section > header > p { margin: 0; color: var(--muted); line-height: 1.55; }
.product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.product-card { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: 0 12px 40px rgba(18,38,29,.05); }
.product-card.unavailable { opacity: .62; }
.product-copy,.product-options { padding: 22px; }
.product-options { border-top: 1px solid var(--border); background: color-mix(in srgb,var(--background) 50%,var(--surface)); }
.product-title { display: flex; justify-content: space-between; gap: 18px; align-items: baseline; }
.product-title h3 { margin: 0; font: 600 1.26rem/1.15 Georgia,serif; }
.product-title > strong { color: var(--primary); font-size: .82rem; white-space: nowrap; }
.product-copy > p { min-height: 42px; margin: 12px 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.dietary-labels { display: flex; flex-wrap: wrap; gap: 6px; }
.dietary-labels span { border-radius: 99px; padding: 5px 9px; background: color-mix(in srgb,var(--accent) 38%,transparent); color: var(--primary); font-size: .66rem; font-weight: 800; }
.food-info { margin-top: 13px; color: var(--muted); font-size: .72rem; }
.food-info p { line-height: 1.5; }
.modifier-group { border: 0; border-top: 1px dashed var(--border); padding: 15px 0 4px; margin: 15px 0 0; }
.modifier-group legend { width: 100%; font-size: .76rem; font-weight: 850; }
.modifier-group legend small { float: right; color: var(--muted); font-weight: 500; }
.modifier-option { display: grid; grid-template-columns: 18px 1fr auto; align-items: center; gap: 9px; padding: 6px 0; color: var(--ink); font-size: .78rem; font-weight: 500; }
.modifier-option input { width: 16px; min-height: 16px; margin: 0; accent-color: var(--primary); }
.modifier-option strong { font-size: .7rem; }
.add-row { display: grid; grid-template-columns: 70px 1fr; gap: 10px; align-items: end; margin-top: 16px; }
.add-row label { margin: 0; }
.sold-out-label { margin: 0 22px 22px; border-radius: 8px; padding: 12px; background: #f3e4df; color: var(--danger); font-size: .75rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.cart-panel { position: sticky; top: 18px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.cart-heading { display: flex; justify-content: space-between; align-items: center; padding: 22px; background: var(--primary); color: #fff; }
.cart-heading .eyebrow { color: var(--accent); }
.cart-heading h2 { margin: 0; font: 500 1.8rem Georgia,serif; }
.cart-heading .text-button { color: #fff; }
.empty-cart { display: grid; min-height: 310px; place-items: center; align-content: center; padding: 28px; color: var(--muted); text-align: center; }
.empty-cart > span { color: var(--accent); font-size: 3rem; }
.empty-cart p { max-width: 220px; font-size: .8rem; }
.cart-lines { padding: 0 20px; }
.cart-lines > article,.checkout-summary > article,.confirmation-items > article { display: grid; grid-template-columns: 1fr auto; gap: 10px; border-bottom: 1px solid var(--border); padding: 17px 0; }
.cart-lines article div:first-child,.checkout-summary article div:first-child,.confirmation-items article div:first-child { display: grid; gap: 4px; }
.cart-lines article span,.cart-lines article small,.checkout-summary article span,.checkout-summary article small,.confirmation-items article span,.confirmation-items article small { color: var(--muted); font-size: .72rem; }
.cart-line-actions { grid-column: 1/-1; display: flex!important; flex-direction: row!important; gap: 11px!important; align-items: center; }
.cart-line-actions form { display: flex; gap: 6px; align-items: center; }
.cart-line-actions input { width: 55px; min-height: 32px; margin: 0; padding: 5px; }
.cart-line-actions a,.text-button { border: 0; padding: 0; background: none; color: var(--primary); font: 750 .7rem/1 inherit; text-decoration: underline; cursor: pointer; }
.cart-total { margin: 0; padding: 15px 20px; }
.cart-total > div { display: flex; justify-content: space-between; gap: 18px; padding: 5px 0; }
.cart-total dt { color: var(--muted); }
.cart-total dd { margin: 0; font-weight: 800; }
.cart-total .grand-total { border-top: 1px solid var(--border); margin-top: 10px; padding-top: 14px; font-size: 1.08rem; }
.vat-note { padding: 0 20px; color: var(--muted); font-size: .67rem; line-height: 1.5; }
.checkout-button { margin: 8px 20px 20px; }
.order-footer { display: flex; justify-content: space-between; border-top: 1px solid var(--border); padding: 28px 0; margin-top: 70px; color: var(--muted); font-size: .72rem; }
.mobile-cart-bar { display: none; }

.checkout-shell { width: min(1120px,calc(100% - 32px)); margin: 0 auto; padding: 22px 0 70px; }
.checkout-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); padding: 10px 0 28px; }
.checkout-header > a { font-size: .78rem; font-weight: 800; text-decoration: none; }
.checkout-grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 44px; align-items: start; padding-top: 45px; }
.checkout-form-card h1 { margin: 8px 0 24px; font: 500 clamp(2.7rem,6vw,5rem)/.95 Georgia,serif; letter-spacing: -.055em; }
.order-type-switch { display: grid; grid-template-columns: repeat(2,1fr); border-radius: 10px; padding: 4px; margin: 18px 0; background: color-mix(in srgb,var(--border) 62%,transparent); }
.order-type-switch a { border-radius: 7px; padding: 12px; color: var(--muted); font-size: .78rem; font-weight: 850; text-align: center; text-decoration: none; }
.order-type-switch a.active { background: var(--surface); color: var(--ink); box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.checkout-section { border: 0; border-top: 1px solid var(--border); padding: 25px 0 8px; margin: 0; }
.checkout-section legend { padding-right: 15px; color: var(--primary); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.choice-card { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 12px; border: 1px solid var(--border); border-radius: 10px; padding: 14px; margin: 10px 0; background: var(--surface); }
.choice-card input { width: 17px; min-height: 17px; margin: 2px 0 0; accent-color: var(--primary); }
.choice-card span { display: grid; gap: 3px; }
.choice-card small { color: var(--muted); font-size: .72rem; }
.checkout-summary { position: sticky; top: 20px; border: 1px solid var(--border); border-radius: var(--radius); padding: 22px; background: var(--surface); box-shadow: var(--shadow); }
.checkout-summary h2 { margin-top: 3px; font: 500 1.8rem Georgia,serif; }
.checkout-summary .cart-total { padding-inline: 0; }
.checkout-summary .vat-note { padding: 0; }
.confirmation-items { border-top: 1px solid var(--border); margin-top: 15px; }
.confirmation-total { display: flex; justify-content: space-between; border-top: 2px solid var(--ink); padding-top: 15px; font-size: 1.15rem; }

/* Ordering administration */
.live-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.live-toolbar > div { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .73rem; }
.live-order-board { display: grid; grid-template-columns: repeat(3,minmax(250px,1fr)); gap: 14px; overflow-x: auto; }
.order-lane { min-width: 270px; border: 1px solid var(--border); border-radius: 12px; padding: 12px; background: #e9ece6; }
.order-lane > header { display: flex; justify-content: space-between; align-items: center; padding: 5px 5px 13px; }
.order-lane h2 { margin: 0; font: 500 2rem Georgia,serif; }
.lane-dot { width: 12px; height: 12px; border-radius: 50%; background: #8e9b94; }
.lane-dot.new { background: #d65f45; box-shadow: 0 0 0 6px rgba(214,95,69,.12); }
.lane-dot.kitchen { background: #d7a82b; }.lane-dot.ready { background: #3d8060; }
.order-lane-list { display: grid; gap: 10px; }
.live-order-card { overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: #fff; box-shadow: 0 6px 16px rgba(20,30,25,.05); }
.live-order-card > a { display: block; padding: 16px; color: var(--ink); text-decoration: none; }
.live-order-card > form { padding: 0 16px 16px; }
.live-order-card > form .button { width: 100%; }
.order-card-top { display: flex; justify-content: space-between; align-items: center; }
.order-card-top > strong { font: 600 1.15rem Georgia,serif; letter-spacing: .03em; }
.live-order-card time { display: block; margin: 12px 0 5px; color: var(--primary); font-size: 1.05rem; font-weight: 900; }
.live-order-card h3 { margin: 0 0 11px; font-size: .9rem; }
.live-order-card ul { margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .77rem; line-height: 1.7; }
.order-card-total { border-top: 1px solid var(--border); padding-top: 11px; margin-top: 11px; font-weight: 900; text-align: right; }
.lane-empty { display: grid; min-height: 120px; place-items: center; color: var(--muted); font-size: .75rem; }
.badge.new { background: #f5ddd6; color: #883923; }.badge.accepted,.badge.preparing { background: #f6edcf; color: #72560e; }.badge.ready,.badge.out_for_delivery { background: #d9eee2; color: #27583e; }.badge.completed { background: #dce7e1; color: #315643; }.badge.rejected { background: #eee4e2; color: #78443d; }
.order-detail-grid { grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); }
.kitchen-ticket > article { position: relative; border-top: 2px solid var(--ink); padding: 19px 0; }
.kitchen-ticket h3 { margin: 0 100px 7px 0; font-size: 1.18rem; letter-spacing: .025em; }
.kitchen-ticket article p { margin: 6px 0; color: var(--primary); font-weight: 750; }
.kitchen-ticket article > span { position: absolute; top: 20px; right: 0; }
.customer-order-note { border-left: 5px solid var(--accent); padding: 15px 18px; background: color-mix(in srgb,var(--accent) 18%,transparent); }
.status-actions { display: grid; gap: 8px; }.status-actions .button { width: 100%; }
.config-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 20px; align-items: start; }
.sticky-config { position: sticky; top: 18px; }
.config-list { display: grid; gap: 10px; }
.config-card summary { display: flex; justify-content: space-between; padding: 15px; cursor: pointer; }
.config-card summary > span:first-child { display: grid; gap: 3px; }.config-card summary small { color: var(--muted); }
.heading-input { margin: 4px 0 0; border: 0; padding: 0; font: 600 1.45rem Georgia,serif; }
.modifier-admin-card { margin-bottom: 15px; }
.modifier-options-admin > div,.inline-config { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--border); padding: 10px 0; }
.modifier-options-admin span { display: grid; }.modifier-options-admin small { color: var(--muted); }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.product-admin-card { padding: 0; }
.product-admin-card > summary { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; cursor: pointer; }
.product-admin-card > summary h2 { display: inline-block; margin: 7px 0 3px 8px; font-size: 1.15rem; }
.product-admin-card > summary p { margin: 0; color: var(--muted); font-size: .76rem; }
.product-admin-card > form,.product-subconfig { border-top: 1px solid var(--border); padding: 20px; }
.product-subconfig { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; background: #f8f8f5; }
.product-subconfig > section:last-child { grid-column: 1/-1; }
.inline-create { display: grid; grid-template-columns: 1fr 90px 60px auto; gap: 7px; margin-top: 10px; }
.inline-create input { min-height: 36px; margin: 0; padding: 7px; }
.availability-create { grid-template-columns: 90px 1fr 1fr auto; }
.settings-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.publish-check { border: 1px solid var(--primary); border-radius: 10px; padding: 14px; margin: 18px 0; }.publish-check span { display: grid; }.publish-check small { color: var(--muted); }
.form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.module-readiness { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.module-readiness article > p { color: var(--muted); line-height: 1.55; }
.order-confirmation { width: min(100% - 28px,680px); margin: 0 auto; padding: 65px 0; text-align: center; }
.order-confirmation > p { color: var(--muted); }
.order-confirmation .confirmation-card { text-align: left; }

@media (max-width: 1050px) {
  .order-layout { grid-template-columns: minmax(0,1fr) 320px; gap: 22px; }
  .product-grid { grid-template-columns: 1fr; }
  .live-order-board { grid-template-columns: repeat(3,300px); }
}
@media (max-width: 820px) {
  .order-shell { width: min(100% - 24px,720px); padding-top: 16px; }
  .order-hero { min-height: 290px; grid-template-columns: 1fr; gap: 55px; }
  .order-hero-copy h1 { font-size: clamp(3.3rem,14vw,6rem); }
  .order-layout,.checkout-grid,.config-layout,.settings-columns,.order-detail-grid,.module-readiness { grid-template-columns: 1fr; }
  .cart-panel,.checkout-summary,.sticky-config { position: static; }
  .cart-panel { margin-top: 45px; }
  .mobile-cart-bar { position: fixed; z-index: 20; right: 12px; bottom: 12px; left: 12px; display: flex; justify-content: space-between; border-radius: 12px; padding: 16px 18px; background: var(--primary); color: #fff; box-shadow: 0 12px 40px rgba(0,0,0,.25); text-decoration: none; }
  .product-subconfig { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .order-hero { min-height: 250px; padding-bottom: 28px; }
  .order-hero-copy h1 { font-size: 3.35rem; }
  .menu-section { padding-top: 42px; }.menu-section > header { grid-template-columns: 1fr; gap: 8px; }
  .product-copy,.product-options { padding: 17px; }
  .checkout-header .booking-brand { display: none; }
  .checkout-grid { padding-top: 28px; }
  .inline-create { grid-template-columns: 1fr 1fr; }
  .order-footer { padding-bottom: 70px; }
}
.calendar-day.outside { background: #f5f6f2; }
.calendar-day > span { margin-top: auto; font: 700 .82rem Cambria, serif; }
.calendar-day small { font-size: .66rem; }

/* Floor plan — a warm, tactile maître d' board with stable service geometry. */
.floor-empty { display: grid; grid-template-columns: 120px minmax(0,760px); gap: 35px; min-height: 520px; align-content: center; padding: clamp(30px,6vw,80px); background: radial-gradient(circle at 94% 8%,rgba(213,243,107,.26),transparent 19rem),#fff; }
.floor-empty__number { color: var(--accent); font: 500 7rem/.8 Cambria,serif; letter-spacing: -.09em; text-shadow: -1px 0 #9ead65; }
.floor-empty h2 { max-width: 560px; font-size: clamp(2.3rem,5vw,4.5rem); line-height: .95; }
.floor-empty > div > p { max-width: 620px; color: var(--muted); line-height: 1.6; }
.floor-create-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; margin: 30px 0; }
.floor-create-form label { margin: 0; }.floor-create-form .button { margin-bottom: 0; }
.floor-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; padding: 22px 0 0; margin: 0; border-top: 1px solid var(--border); list-style: none; color: var(--muted); font-size: .72rem; }
.floor-steps li { display: grid; gap: 8px; }.floor-steps span { color: var(--primary); font-weight: 900; }
.floor-topbar,.floor-live-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.floor-topbar { margin-bottom: 13px; }.floor-tabs { display: flex; min-width: 0; gap: 7px; overflow-x: auto; }
.floor-tabs a { display: grid; min-width: 120px; border: 1px solid var(--border); border-radius: 9px; padding: 10px 13px; background: #fff; color: var(--ink); font-size: .75rem; font-weight: 800; text-decoration: none; }
.floor-tabs a small { margin-top: 3px; font-size: .61rem; }.floor-tabs a.active { border-color: var(--primary); background: var(--primary); color: #fff; }.floor-tabs a.active small { color: #bdcac4; }
.floor-live-toolbar { border: 1px solid var(--border); border-radius: 11px 11px 0 0; padding: 10px 12px; background: #fff; }
.floor-time-nav,.floor-zoom { display: flex; align-items: center; gap: 6px; }
.floor-time-nav button,.floor-zoom button,.editor-history button,.editor-stage-controls button,.inspector-actions button,.layout-order-actions button { min-height: 36px; border: 1px solid var(--border); border-radius: 7px; padding: 7px 11px; background: #fff; color: var(--ink); font-size: .71rem; font-weight: 800; cursor: pointer; }
.floor-time-nav button.active { border-color: var(--primary); background: var(--primary); color: #fff; }.floor-time-nav label { display: flex; align-items: center; gap: 7px; margin: 0 0 0 7px; color: var(--muted); font-size: .68rem; }.floor-time-nav input { width: 155px; min-height: 36px; margin: 0; padding: 6px; font-size: .68rem; }
.floor-zoom > span { margin-right: 6px; color: var(--primary); font-size: .69rem; font-weight: 850; }.floor-zoom button:first-of-type,.floor-zoom button:last-of-type { width: 36px; padding: 0; font-size: 1rem; }
.floor-live-shell { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 300px; border: 1px solid var(--border); border-top: 0; border-radius: 0 0 12px 12px; background: #fff; box-shadow: 0 16px 45px rgba(20,40,31,.06); }
.floor-stage-panel { min-width: 0; padding: 14px; }.floor-state-legend { display: flex; flex-wrap: wrap; gap: 13px; padding: 3px 5px 12px; color: var(--muted); font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.floor-state-legend span::before { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; background: var(--state); content: ""; }.floor-state-legend [data-state=free]{--state:#4f8c69}.floor-state-legend [data-state=reserved_soon]{--state:#d3982f}.floor-state-legend [data-state=reserved]{--state:#a95f37}.floor-state-legend [data-state=seated]{--state:#34658a}.floor-state-legend [data-state=blocked]{--state:#784945}.floor-state-legend [data-state=inactive]{--state:#9da5a0}
.floor-viewport,.floor-editor-viewport { position: relative; overflow: auto; min-height: 640px; border: 1px solid #cfd5ce; border-radius: 9px; background: #e8e8e0; touch-action: pan-x pan-y; }
.floor-canvas { position: relative; flex: 0 0 auto; transform-origin: top left; transition: transform .18s ease; background-color: #f8f6ef; background-image: linear-gradient(rgba(48,70,59,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(48,70,59,.055) 1px,transparent 1px),radial-gradient(circle at 80% 15%,rgba(213,243,107,.08),transparent 22rem); background-size: 20px 20px,20px 20px,auto; box-shadow: 0 18px 50px rgba(20,35,28,.12); }
.floor-table,.floor-object { position: absolute; display: grid; place-content: center; overflow: hidden; border: 2px solid #5a665f; padding: 7px; text-align: center; transform-origin: center; }
.floor-table { --table-state:#4f8c69; --table-tint:#eef8f1; grid-auto-flow: row; gap: 2px; min-width: 52px; min-height: 44px; border-color: var(--table-state); background: var(--table-tint); color: #1b2a22; box-shadow: 0 5px 12px rgba(20,37,28,.09); cursor: pointer; transition: box-shadow .15s ease,filter .15s ease; }
.floor-table:hover,.floor-table.highlight { z-index: 1000!important; box-shadow: 0 0 0 5px rgba(213,243,107,.65),0 12px 24px rgba(20,37,28,.18); }.floor-table.drop-ready { box-shadow: 0 0 0 8px rgba(213,243,107,.82); }
.floor-table strong { font: 800 clamp(.72rem,1.2vw,1rem)/1 Cambria,serif; }.floor-table small { color: currentColor; font-size: .55rem; opacity: .66; }.floor-table__state { margin-top: 3px; font-size: .54rem; font-weight: 950; letter-spacing: .08em; }.floor-table__reservation { min-height: .6rem; font-size: .53rem; font-weight: 700; line-height: 1.1; }
.floor-table.state-reserved_soon { --table-state:#c98b20;--table-tint:#fff5d8 }.floor-table.state-reserved { --table-state:#a95f37;--table-tint:#fbe9df }.floor-table.state-seated { --table-state:#34658a;--table-tint:#e4f0f6 }.floor-table.state-blocked { --table-state:#784945;--table-tint:#efe3e2 }.floor-table.state-inactive { --table-state:#8e9691;--table-tint:#eceeec;color:#6c746f;filter:saturate(.2) }.floor-table.combined::after { position:absolute; top:4px; right:4px; width:8px; height:8px; border:2px solid currentColor; border-radius:50%; content:""; }
.shape-square { border-radius: 7px }.shape-circle { border-radius: 50% }.shape-oval { border-radius: 50% }.floor-object { border-color:#819087;background:rgba(255,255,255,.68);color:#4e5e55;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;pointer-events:none }.floor-object--wall { border:0;background:#2d3832;color:transparent }.floor-object--divider { border:0;background:#89968f;color:transparent }.floor-object--window { border:3px double #6b99a8;background:#eaf5f6 }.floor-object--door { border:2px dashed #9b774f;background:#f7efe3 }.floor-object--bar,.floor-object--kitchen { border-color:#9a7850;background:#e9ddc7 }.floor-object--entrance { border-style:dashed;background:#eef3df }.floor-object--label { border:0;background:transparent;font:800 .75rem Cambria,serif }.floor-object--decoration { border-color:#72906d;background:#e8f1e4 }
.floor-service-rail { border-left:1px solid var(--border);background:#f5f5f0 }.floor-service-rail > section { border-bottom:1px solid var(--border);padding:18px }.floor-service-rail header { display:flex;justify-content:space-between;gap:10px }.floor-service-rail h2 { margin:0;font-size:1.12rem }.floor-service-rail header>span { display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-size:.66rem;font-weight:900 }.rail-hint { color:var(--muted);font-size:.67rem;line-height:1.45 }.floor-reservation-list { display:grid;gap:7px }.floor-reservation-list article { display:grid;grid-template-columns:48px 1fr;gap:9px;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff;cursor:pointer }.floor-reservation-list article[draggable=true] { cursor:grab }.floor-reservation-list article.dragging { opacity:.45 }.floor-reservation-list time { font:800 .83rem Cambria,serif }.floor-reservation-list article div { display:grid;gap:2px }.floor-reservation-list strong { font-size:.72rem }.floor-reservation-list span,.floor-reservation-list small { color:var(--muted);font-size:.62rem }.rail-empty { color:var(--muted);font-size:.7rem }
.floor-context { position:fixed;z-index:80;right:24px;bottom:24px;width:min(370px,calc(100vw - 32px));border:1px solid #385044;border-radius:13px;padding:25px;background:#fff;box-shadow:0 24px 70px rgba(11,25,18,.3) }.floor-context__close { position:absolute;top:9px;right:10px;border:0;background:transparent;font-size:1.5rem;cursor:pointer }.floor-context h2 { font-size:2rem }.floor-context__meta { color:var(--muted);font-size:.75rem }.floor-context__booking { border-left:4px solid var(--accent);padding:13px;background:#f5f6ed;font-weight:800 }.floor-context__actions { display:grid;gap:8px;margin-top:18px }.floor-context__actions .button { width:100% }.floor-context__actions form { margin:0 }.floor-context__actions form .button { width:100% }.floor-toast { position:fixed;z-index:100;left:50%;bottom:24px;translate:-50% 0;border-radius:9px;padding:12px 17px;background:#18382b;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.25);font-size:.75rem;font-weight:800 }.floor-toast.error { background:#8d3c34 }.floor-mobile-list { display:none }.floor-plan-empty-note { padding:20px;text-align:center }.floor-plan-empty-note a { margin-left:8px }

/* Editor */
.editor-mobile-advice { display:none;border:1px solid #e5c474;border-radius:8px;padding:11px;margin-bottom:12px;background:#fff5d5;color:#73580e;font-size:.78rem }.floor-editor-app { margin-inline:-10px }.floor-editor-toolbar { display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--border);border-radius:11px 11px 0 0;padding:10px 13px;background:#fff }.floor-editor-toolbar>div { display:flex;align-items:center;gap:13px }.text-link { font-size:.72rem;font-weight:800;text-decoration:none }.editor-save-state { color:var(--muted);font-size:.68rem }.editor-history .button { border-color:var(--primary);background:var(--primary);color:#fff }.editor-history button:disabled { opacity:.45;cursor:not-allowed }
.floor-editor-grid { display:grid;grid-template-columns:215px minmax(500px,1fr) 260px;min-height:720px;border:1px solid var(--border);border-top:0;border-radius:0 0 11px 11px;background:#fff }.floor-palette,.floor-inspector { overflow:auto;max-height:calc(100vh - 185px);padding:18px;background:#f6f5ef }.floor-palette { border-right:1px solid var(--border) }.floor-inspector { border-left:1px solid var(--border) }.floor-palette>section+section { border-top:1px solid var(--border);padding-top:18px;margin-top:22px }.floor-palette h2,.floor-inspector h2 { font-size:1.2rem }.floor-palette p:not(.eyebrow),.floor-inspector p { color:var(--muted);font-size:.68rem;line-height:1.45 }.table-palette-list,.object-palette { display:grid;gap:7px }.table-palette-list button,.object-palette button { display:grid;width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff;color:var(--ink);text-align:left;cursor:grab }.table-palette-list button:hover,.object-palette button:hover,.object-palette button.active { border-color:var(--primary);box-shadow:0 0 0 2px rgba(39,75,61,.1) }.table-palette-list span,.table-palette-list small { font-size:.62rem }.object-palette { grid-template-columns:1fr 1fr }.object-palette button { min-height:52px;place-content:center;cursor:pointer;font-size:.68rem;font-weight:800;text-align:center }.object-palette small { font-size:.55rem }.palette-empty { color:var(--muted);font-size:.68rem;line-height:1.5 }
.floor-editor-stage { min-width:0;background:#dedfd8 }.editor-stage-controls { display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:49px;border-bottom:1px solid #c9cdc7;padding:6px 10px;background:#efefe9 }.editor-stage-controls>span { margin-right:auto;color:var(--muted);font-size:.64rem }.snap-toggle { display:flex;align-items:center;gap:7px;margin:0 10px 0 0;font-size:.67rem }.snap-toggle input { width:auto;min-height:0;margin:0;accent-color:var(--primary) }.floor-editor-viewport { min-height:670px;border:0;border-radius:0 }.floor-canvas--editor { background-size:var(--grid) var(--grid),var(--grid) var(--grid),auto;touch-action:none }
.editor-element { position:absolute;display:grid;place-content:center;min-width:20px;min-height:20px;border:2px solid #66766d;padding:6px;background:#fff;color:#24352c;text-align:center;user-select:none;cursor:move;transform-origin:center;box-shadow:0 4px 10px rgba(20,35,28,.09) }.editor-element strong { overflow:hidden;font-size:.7rem;text-overflow:ellipsis }.editor-element small { font-size:.55rem }.editor-element--table { border-color:#365b49;background:#edf4ef }.editor-element--wall { border:0;background:#2d3832;color:transparent }.editor-element--divider { border:0;background:#89968f;color:transparent }.editor-element--window { border:3px double #6b99a8;background:#eaf5f6 }.editor-element--door { border-style:dashed;border-color:#9b774f;background:#f7efe3 }.editor-element--bar,.editor-element--kitchen { border-color:#9a7850;background:#e9ddc7 }.editor-element--entrance { border-style:dashed;background:#eef3df }.editor-element--label { border-style:dashed;background:transparent }.editor-element--decoration { border-color:#72906d;background:#e8f1e4 }.editor-element.selected { z-index:1000!important;box-shadow:0 0 0 4px var(--accent),0 10px 25px rgba(20,35,28,.22) }.editor-resize { position:absolute;right:-6px;bottom:-6px;width:15px;height:15px;border:2px solid #fff;border-radius:3px;background:var(--primary);cursor:nwse-resize }
.floor-inspector label { margin-bottom:12px;font-size:.7rem }.floor-inspector input,.floor-inspector select { min-height:36px;padding:7px;font-size:.72rem }.floor-inspector .form-grid { gap:7px }.floor-inspector .form-grid label { min-width:0 }.inspector-actions { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:13px }.inspector-actions .danger-link { border-color:#e4c0bc;background:#fff }.layout-settings { border-top:1px solid var(--border);padding-top:18px;margin-top:22px }.layout-settings summary { margin-bottom:14px;font-size:.72rem;font-weight:900;cursor:pointer }.layout-settings .toggle { display:flex;align-items:center;gap:7px }.layout-settings .toggle input { width:auto;min-height:0;margin:0 }.layout-order-actions { display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:10px 0 }.layout-order-actions form,.layout-order-actions button { width:100% }.layout-switcher { border-top:1px solid var(--border);padding-top:18px;margin-top:20px }.layout-switcher>a { display:flex;justify-content:space-between;border-radius:6px;padding:7px;color:var(--ink);font-size:.69rem;text-decoration:none }.layout-switcher>a.active { background:#e6eadf;font-weight:850 }.layout-switcher form { border-top:1px solid var(--border);padding-top:12px;margin-top:10px }.layout-switcher input,.layout-switcher select { margin-bottom:6px }.layout-switcher .button { width:100% }

@media (max-width: 1180px) { .floor-editor-grid { grid-template-columns:190px minmax(470px,1fr) 225px }.floor-live-shell { grid-template-columns:minmax(0,1fr) 260px }.floor-time-nav label { display:none } }
@media (max-width: 900px) { .floor-live-toolbar { align-items:flex-start;flex-direction:column }.floor-live-shell { grid-template-columns:1fr }.floor-service-rail { display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-left:0 }.floor-viewport { min-height:540px }.floor-editor-grid { grid-template-columns:175px minmax(500px,1fr) }.floor-inspector { grid-column:1/-1;max-height:none;border-top:1px solid var(--border);border-left:0 }.editor-mobile-advice { display:block } }
@media (max-width: 680px) { .floor-empty { grid-template-columns:1fr;padding:28px }.floor-empty__number { font-size:4rem }.floor-create-form,.floor-steps { grid-template-columns:1fr }.floor-topbar { align-items:flex-start;flex-direction:column }.floor-live-toolbar { margin-inline:-14px;border-radius:0 }.floor-live-shell { margin-inline:-14px;border-radius:0 }.floor-time-nav { width:100%;overflow-x:auto }.floor-zoom { width:100%;justify-content:flex-end }.floor-viewport { display:none }.floor-state-legend { display:none }.floor-mobile-list { display:grid;gap:7px }.floor-mobile-list button { display:grid;grid-template-columns:70px 100px 1fr;align-items:center;border:1px solid var(--border);border-left:7px solid var(--state,#8e9691);border-radius:8px;padding:12px;background:#fff;text-align:left }.floor-mobile-list .state-free{--state:#4f8c69}.floor-mobile-list .state-reserved_soon{--state:#c98b20}.floor-mobile-list .state-reserved{--state:#a95f37}.floor-mobile-list .state-seated{--state:#34658a}.floor-mobile-list .state-blocked{--state:#784945}.floor-mobile-list span { font-size:.6rem;font-weight:900 }.floor-mobile-list small { font-size:.62rem }.floor-service-rail { grid-template-columns:1fr }.floor-tabs { width:100% }.floor-editor-app { display:none } }

@media (max-width: 1050px) {
  .admin-body { grid-template-columns: 210px minmax(0, 1fr); }
  .admin-main { padding-inline: 22px; }
  .form-grid.four { grid-template-columns: repeat(2, 1fr); }
  .service-layout, .waitlist-layout { grid-template-columns: 1fr; }
  .timeline-row { grid-template-columns: 52px 64px minmax(150px, 1fr) auto; }
  .timeline-row .quick-actions { grid-column: 3 / -1; padding-bottom: 8px; }
  .day-timeline::before { left: 59px; }
  .dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
  .admin-body { display: block; }
  .sidebar { position: sticky; z-index: 10; width: 100%; height: auto; min-height: 0; flex-direction: row; align-items: center; gap: 15px; padding: 10px 12px; }
  .admin-brand { padding: 0; }
  .admin-brand > span:last-child { display: none; }
  .sidebar nav { display: flex; flex: 1; gap: 4px; overflow: auto; }
  .sidebar nav { scrollbar-width: none; }
  .sidebar nav::-webkit-scrollbar { display: none; }
  .sidebar nav section { display: flex; white-space: nowrap; }
  .sidebar nav p, .sidebar-foot { display: none; }
  .sidebar nav a { padding: 8px 9px; }
  .sidebar nav .nav-disabled { padding: 8px 9px; }
  .admin-main { padding: 20px 14px 50px; }
  .admin-header { align-items: center; }
  .header-actions .user-name { display: none; }
  .metrics { grid-template-columns: repeat(3, 1fr); }
  .detail-hero, .guest-hero { grid-template-columns: 1fr; }
  .detail-actions { display: flex; }
  .walkin-shell { grid-template-columns: 1fr; gap: 5px; }
  .walkin-intro { padding-top: 0; }
  .config-card summary { grid-template-columns: 1fr 1fr; }
  .area-row { grid-template-columns: minmax(140px, 1fr) 70px auto auto; }
  .area-row .toggle { display: none; }
  .table-wrap { margin-inline: -14px; border-radius: 0; }
}
@media (max-width: 560px) {
  .booking-shell { width: min(100% - 20px, 760px); padding-top: 18px; }
  .booking-intro { margin: 40px 5px 22px; }
  .booking-card { padding: 19px 16px; }
  .booking-step { grid-template-columns: 27px 1fr; gap: 9px; }
  .form-grid, .form-grid.four, .detail-grid, .two-column { grid-template-columns: 1fr; }
  .check-grid { grid-template-columns: 1fr 1fr; }
  .booking-shell > footer { display: grid; text-align: center; }
  .admin-header { display: grid; }
  .header-actions { flex-wrap: wrap; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .metrics article { min-height: 82px; }
  .timeline-row { grid-template-columns: 40px 58px 1fr; gap: 7px; padding: 8px 0; }
  .timeline-row > .badge { grid-column: 3; }
  .timeline-row .quick-actions { grid-column: 3; }
  .day-timeline::before { left: 46px; }
  .waitlist-list > article { grid-template-columns: 55px 1fr; }
  .wait-actions { grid-column: 2; }
  .guest-stats { grid-template-columns: repeat(3, 1fr); }
  .area-row { grid-template-columns: 1fr 60px auto; }
  .area-row .danger-link { display: none; }
  .state-legend { display: none !important; }
}

/* Phase 14 — a practical kitchen ledger: warm paper, dark ink, citrus status cues. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.alert.success{border-color:#b8d4b5;background:#edf8eb;color:#28552f}.workspace-tabs{display:flex;gap:4px;overflow-x:auto;margin:-8px 0 18px;border-bottom:1px solid var(--border)}.workspace-tabs a{padding:11px 14px;color:var(--muted);font-size:.72rem;font-weight:850;text-decoration:none;white-space:nowrap}.workspace-tabs a.active{border-bottom:3px solid var(--accent);color:var(--ink)}
.menu-builder-toolbar,.availability-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;margin-bottom:18px}.menu-builder-toolbar>div,.search-form{display:flex;align-items:center;gap:8px}.search-form label{margin:0}.search-form input{width:min(410px,42vw);margin:0}.menu-builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.menu-category-stack,.category-admin-stack,.modifier-library{display:grid;gap:22px}.menu-builder-category>header{display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:2px solid var(--ink);padding:0 2px 10px}.menu-builder-category>header h2{font-size:1.65rem;letter-spacing:.02em}.menu-builder-category>header p{margin:4px 0 0;color:var(--muted);font-size:.72rem}.menu-builder-category>header>span{font:700 .75rem Cambria,serif}.menu-product-list{display:grid}.menu-product-row{display:grid;grid-template-columns:66px minmax(210px,1fr) 130px 260px;gap:15px;align-items:center;border-bottom:1px solid var(--border);padding:13px 5px;background:var(--surface)}.menu-product-row.is-inactive{opacity:.64}.menu-product-row.is-sold-out{background:linear-gradient(90deg,rgba(181,68,61,.055),transparent 60%)}.menu-product-image{display:grid;width:58px;height:58px;place-items:center;overflow:hidden;border-radius:10px;background:#e9ecdf;color:var(--primary);font:800 1.6rem Cambria,serif}.menu-product-image img,.image-preview img,.category-editor-head img,.public-product-image{width:100%;height:100%;object-fit:cover}.menu-product-summary>div{display:flex;align-items:center;gap:8px}.menu-product-summary h3{margin:0;font-size:1rem}.menu-product-summary p{overflow:hidden;margin:4px 0;color:var(--muted);font-size:.68rem;white-space:nowrap;text-overflow:ellipsis}.menu-product-summary>strong{font-size:.76rem}.special-product-label{border-radius:999px;padding:3px 7px;background:#1e382d;color:#d9f26e;font-size:.56rem;font-weight:900;text-transform:uppercase}.menu-product-state{display:grid;justify-items:start;gap:5px}.menu-product-state small{color:var(--muted);font-size:.59rem}.menu-quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.menu-quick-actions form{margin:0}.menu-product-editor{grid-column:1/-1;border-top:1px dashed var(--border);margin-top:2px;padding-top:8px}.menu-product-editor>summary{display:flex;justify-content:space-between;padding:7px;color:var(--primary);font-size:.72rem;font-weight:900;cursor:pointer}.product-editor-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:12px;padding:12px 0 5px}.editor-card{border:1px solid var(--border);border-radius:10px;padding:17px;background:#fbfbf7}.editor-card.editor-span{grid-column:1/-1}.form-section{margin:12px 0}.form-section>summary{font-size:.7rem;font-weight:850;cursor:pointer}.form-section[open]>summary{margin-bottom:12px}.image-preview{display:grid;height:190px;place-items:center;overflow:hidden;border:1px dashed var(--border);border-radius:9px;margin:9px 0 12px;background:#f0f1eb;color:var(--muted);font-size:.7rem}.image-preview.compact{height:105px}.inline-editor{display:grid;grid-template-columns:1.5fr 100px 76px auto auto auto auto;gap:7px;align-items:center;border-top:1px solid var(--border);padding:8px 0}.inline-editor input,.inline-editor select{min-height:34px;margin:0;padding:6px;font-size:.68rem}.compact-check{display:flex!important;align-items:center;gap:5px;margin:0!important;font-size:.64rem!important;white-space:nowrap}.compact-check input{width:auto;min-height:0}.variant-create{border:1px dashed var(--border);border-radius:8px;padding:9px;margin-top:7px}.modifier-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.modifier-assignment{display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff}.modifier-assignment.attached{border-left:5px solid var(--accent);background:#f8faef}.modifier-assignment span{color:var(--muted);font-size:.6rem}.modifier-assignment select{grid-column:1;margin:4px 0 0;min-height:33px;font-size:.65rem}.modifier-assignment button{grid-column:2}.schedule-pills{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.schedule-pills form{display:flex;align-items:center;border-radius:999px;padding:4px 4px 4px 10px;background:#e9eee9;font-size:.63rem}.schedule-pills button{border:0;background:transparent;cursor:pointer}.schedule-create{grid-template-columns:90px 130px 130px auto;justify-content:start}.menu-category-empty{padding:18px;color:var(--muted);font-size:.7rem;text-align:center}
.category-editor-head{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--border);padding-bottom:14px}.category-editor-head>img,.category-editor-head>span{display:grid;width:58px;height:58px;place-items:center;border-radius:9px;background:#243d31;color:#d9f26e;font:800 1.7rem Cambria,serif;object-fit:cover}.category-editor-head h2{font-size:1.5rem}.category-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;padding:18px 0}.category-schedule{border-top:1px solid var(--border);padding-top:14px}.category-schedule p{margin:3px 0;color:var(--muted);font-size:.68rem}.modifier-option-editor{margin:18px 0}.modifier-option-head,.modifier-option-row{display:grid;grid-template-columns:1.5fr 120px 75px 90px 70px;gap:7px;align-items:center}.modifier-option-head{padding:6px;color:var(--muted);font-size:.58rem;font-weight:900;text-transform:uppercase}.modifier-option-row{border-top:1px solid var(--border);padding:7px 0}.modifier-option-row input{min-height:35px;margin:0;padding:6px;font-size:.68rem}
.bulk-action-bar{position:sticky;z-index:6;top:10px;display:flex;align-items:center;justify-content:flex-end;gap:10px;border:1px solid #31493e;border-radius:10px;padding:10px 13px;margin-bottom:10px;background:#20382d;color:#fff;box-shadow:0 8px 25px rgba(24,49,37,.14)}.bulk-action-bar strong{margin-right:auto}.bulk-action-bar select{width:220px;min-height:38px;margin:0}.availability-list{border:1px solid var(--border);border-radius:11px;overflow:hidden;background:#fff}.availability-row{display:grid;grid-template-columns:32px minmax(180px,1fr) 90px minmax(420px,auto);gap:12px;align-items:center;border-bottom:1px solid var(--border);padding:12px 14px}.availability-row:last-child{border:0}.availability-row.is-sold-out{background:#fff7f4}.availability-row.is-inactive{opacity:.65}.availability-select{margin:0}.availability-select input{width:20px;min-height:20px;margin:0}.availability-product h2{font-size:1rem}.availability-state{border-radius:999px;padding:5px 8px;background:#e2f0e4;color:#26603a;font-size:.58rem;font-weight:950;text-transform:uppercase;text-align:center}.availability-state.off{background:#f3dfdc;color:#8c3935}.availability-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.availability-actions label{display:flex;align-items:center;gap:5px;margin:0;font-size:.62rem}.availability-actions input{width:75px;min-height:35px;margin:0;padding:6px}
.setup-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;border-radius:15px;padding:30px;margin-bottom:20px;background:radial-gradient(circle at 84% 10%,rgba(217,242,110,.3),transparent 16rem),#20382d;color:#fff}.setup-hero h2{font-size:clamp(2rem,4vw,3.8rem)}.setup-hero p{color:#c5d0ca}.setup-progress{display:grid;width:110px;height:110px;place-items:center;border-radius:50%;background:conic-gradient(#d9f26e var(--progress),rgba(255,255,255,.14) 0);box-shadow:inset 0 0 0 9px #20382d}.setup-progress span{grid-area:1/1;width:75px;height:75px;border-radius:50%;background:#20382d}.setup-progress strong{z-index:1;grid-area:1/1;color:#d9f26e;font:800 1.35rem Cambria,serif}.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.setup-steps{display:grid;gap:8px;padding:0;margin:0;list-style:none}.setup-steps li{display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:center;padding:14px 16px}.setup-steps li>span{display:grid;width:35px;height:35px;place-items:center;border-radius:50%;background:#eceee7;color:var(--muted);font-weight:900}.setup-steps li.complete>span{background:#d9f26e;color:#20382d}.setup-steps p,.setup-steps h2,.setup-steps small{margin:0}.setup-steps p{color:var(--muted);font-size:.55rem;font-weight:900;text-transform:uppercase}.setup-steps h2{font-size:1rem}.setup-steps small{color:var(--muted);font-size:.65rem}.setup-steps a{font-size:.7rem;font-weight:900;text-decoration:none}.setup-readiness{position:sticky;top:16px;display:grid;gap:12px}.readiness-module h2{font-size:2rem}.readiness-module ul{padding-left:18px;color:var(--muted);font-size:.7rem}.setup-profile,.test-publish-panel{margin-top:22px}.test-publish-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f0f2e5}.test-publish-panel>div:last-child{display:flex;gap:8px}
.setup-branding{display:grid;grid-template-columns:minmax(0,1fr) 150px 260px;gap:22px;align-items:center;margin-top:18px}.setup-branding p{color:var(--muted);line-height:1.5}.setup-logo-preview{display:grid;width:140px;height:105px;place-items:center;overflow:hidden;border:1px dashed var(--border);border-radius:10px;background:#f0f1eb;color:var(--muted);font-size:.68rem}.setup-logo-preview img{width:100%;height:100%;object-fit:contain}.design-live-preview{border-color:var(--preview-primary);border-radius:var(--preview-radius);background:var(--preview-background);color:var(--preview-text)}.design-live-preview button{border:2px solid var(--preview-primary);border-radius:var(--preview-radius);padding:11px 17px;margin-top:14px;background:var(--preview-primary);color:#fff;font-weight:850}.design-live-preview .eyebrow{color:var(--preview-accent)}
.notification-center{position:relative}.notification-center>summary{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--border);border-radius:50%;color:var(--accent);cursor:pointer;list-style:none}.notification-center>summary span{position:absolute;top:-4px;right:-4px;display:grid;min-width:18px;height:18px;place-items:center;border-radius:10px;padding:0 4px;background:#b5443d;color:#fff;font-size:.55rem}.notification-center>div{position:absolute;z-index:40;top:46px;right:0;width:min(370px,calc(100vw - 30px));border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff;box-shadow:0 18px 55px rgba(15,32,24,.2)}.notification-center header{display:flex;align-items:center;justify-content:space-between;padding:7px}.notification-item{display:grid;gap:3px;border-top:1px solid var(--border);padding:10px;color:var(--ink);text-decoration:none}.notification-item.unread{border-left:4px solid var(--accent);background:#fafce9}.notification-item span,.notification-item small{color:var(--muted);font-size:.62rem}.ordering-status-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #d7b0aa;border-radius:14px;padding:23px;margin-bottom:18px;background:#fff5f2}.ordering-status-card.is-live{border-color:#9bc4a4;background:#eff9f0}.ordering-status-card p{color:var(--muted)}.publish-switch{display:flex;align-items:center;gap:8px}.publish-switch input{position:absolute;opacity:0}.publish-switch span{width:50px;height:28px;border-radius:20px;background:#a7aea9;box-shadow:inset 0 0 0 2px rgba(0,0,0,.08)}.publish-switch span::after{display:block;width:22px;height:22px;border-radius:50%;margin:3px;background:#fff;content:"";transition:.2s}.publish-switch input:checked+span{background:var(--primary)}.publish-switch input:checked+span::after{translate:22px}.ordering-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.delivery-zone-list{display:grid}.delivery-zone-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding:10px 0}.delivery-zone-list article div{display:grid}.delivery-zone-list span{color:var(--muted);font-size:.62rem}.test-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d9bb49;border-radius:8px;padding:10px 13px;margin-bottom:14px;background:#fff5c9;color:#5e4b0f;font-size:.7rem}.public-product-image{height:180px;border-radius:10px 10px 0 0}.pizza-builder-intro{display:grid;gap:2px;border-left:4px solid var(--accent);padding:8px 10px;margin-top:12px;background:#f6f6ea;font-size:.68rem}.pizza-builder-intro span{color:var(--muted)}.pizza-step{counter-increment:pizza-step}.live-order-card.new-arrival{animation:new-order-pulse 1.2s ease 3;box-shadow:0 0 0 5px rgba(217,242,110,.75)}@keyframes new-order-pulse{50%{transform:translateY(-4px);box-shadow:0 0 0 9px rgba(217,242,110,.32),0 18px 38px rgba(18,40,29,.2)}}
@media(max-width:1180px){.menu-builder-layout{grid-template-columns:1fr}.menu-builder-layout>.sticky-config{position:static}.menu-product-row{grid-template-columns:58px minmax(180px,1fr) 115px}.menu-quick-actions{grid-column:2/-1;justify-content:flex-start}.setup-layout{grid-template-columns:1fr}.setup-readiness{position:static;grid-template-columns:1fr 1fr}.availability-row{grid-template-columns:32px minmax(160px,1fr) 90px}.availability-actions{grid-column:2/-1;justify-content:flex-start}}
@media(max-width:820px){.menu-builder-toolbar,.availability-toolbar,.setup-hero,.test-publish-panel{align-items:flex-start;flex-direction:column}.menu-builder-toolbar>div{width:100%;justify-content:flex-end}.search-form{width:100%}.search-form label,.search-form input{width:100%}.product-editor-grid,.category-editor-grid,.ordering-settings-grid{grid-template-columns:1fr}.modifier-assignment-grid{grid-template-columns:1fr}.inline-editor{grid-template-columns:1fr 90px 68px}.inline-editor .compact-check,.inline-editor button{grid-row:auto}.modifier-option-head{display:none}.modifier-option-row{grid-template-columns:1fr 95px 65px auto}.modifier-option-row button{grid-column:4}.availability-actions{flex-wrap:wrap}.setup-readiness{grid-template-columns:1fr}.setup-branding{grid-template-columns:1fr 150px}.setup-branding>div:last-child{grid-column:1/-1}.notification-center>div{position:fixed;top:75px;right:12px}.form-grid.three{grid-template-columns:1fr 1fr}.schedule-create{grid-template-columns:80px 1fr 1fr auto}}
@media(max-width:560px){.menu-builder-toolbar>div{justify-content:flex-start;flex-wrap:wrap}.menu-product-row{grid-template-columns:52px 1fr;padding-block:12px}.menu-product-state{grid-column:2}.menu-quick-actions{grid-column:1/-1}.product-editor-grid{margin-inline:-4px}.inline-editor,.modifier-option-row,.schedule-create{grid-template-columns:1fr 1fr}.inline-editor input:first-of-type,.modifier-option-row input:first-of-type{grid-column:1/-1}.modifier-assignment{grid-template-columns:1fr}.modifier-assignment button,.modifier-assignment select{grid-column:1}.category-editor-grid{padding-inline:0}.availability-row{grid-template-columns:26px 1fr}.availability-state{grid-column:2;justify-self:start}.availability-actions{grid-column:1/-1}.bulk-action-bar{align-items:stretch;flex-direction:column}.bulk-action-bar select{width:100%}.setup-hero{padding:22px}.setup-progress{width:85px;height:85px}.setup-progress span{width:57px;height:57px}.setup-steps li{grid-template-columns:35px 1fr}.setup-steps li>a{grid-column:2}.test-publish-panel>div:last-child{flex-direction:column}.header-actions>.button{display:none}.public-product-image{height:150px}}

/* Phase 14.5 — calm onboarding surfaces with explicit publication boundaries. */
.alert.warning{border:1px solid #e5c778;background:#fff7d8;color:#705510}.button.disabled{pointer-events:none;opacity:.48}.menu-publish-status{display:grid;grid-template-columns:minmax(260px,1fr) 160px auto;gap:24px;align-items:center;margin-bottom:20px;border-left:7px solid var(--accent);background:linear-gradient(100deg,#fff 55%,#f3f6e7)}.menu-publish-status h2,.menu-publish-status p{margin-bottom:4px}.menu-publish-status p{color:var(--muted);font-size:.72rem}.publish-count{display:grid;border-left:1px solid var(--border);padding-left:25px}.publish-count strong{font:800 2.5rem/.9 Cambria,serif}.publish-count span{margin-top:5px;color:var(--muted);font-size:.67rem}.status-actions{display:flex;gap:7px;justify-content:flex-end}
.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.menu-change-list{display:grid;border-top:2px solid var(--ink)}.menu-change-list article{display:grid;grid-template-columns:170px 1fr;gap:20px;border-bottom:1px solid var(--border);padding:15px 4px}.menu-change-list article>span{color:var(--primary);font-size:.62rem;font-weight:950;letter-spacing:.08em}.menu-change-list p{margin:4px 0;color:var(--muted);font-size:.72rem}.publish-confirm{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-radius:10px;padding:18px;margin-top:22px;background:#20382d;color:#fff}.publish-confirm p{margin:0 auto 0 0;color:#cbd6d0;font-size:.74rem}.revision-history{display:grid}.revision-history article{display:grid;grid-template-columns:45px 1fr;gap:10px;border-top:1px solid var(--border);padding:12px 0}.revision-history article>strong{font:800 1.2rem Cambria,serif}.revision-history article div{display:grid;gap:2px}.revision-history span{font-size:.72rem}.muted-note{margin-top:18px;color:var(--muted);font-size:.68rem;line-height:1.5}
.import-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:0;margin:0 0 18px;list-style:none}.import-steps li{display:flex;align-items:center;gap:7px;border-bottom:3px solid var(--border);padding:8px 3px;color:var(--muted);font-size:.61rem;font-weight:800}.import-steps span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#e5e7e1}.import-steps li.current{border-color:var(--accent);color:var(--ink)}.import-steps li.current span{background:var(--accent);color:#183128}.import-steps li.done{border-color:#6e8b7c}.import-steps li.done span{background:#dce9df;color:#28573c}.onboarding-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.onboarding-grid>aside{display:grid;gap:18px}.import-workspace{min-height:480px}.dropzone{display:grid;gap:14px}.dropzone label{display:grid;min-height:260px;place-content:center;justify-items:center;border:2px dashed #9aaa9f;border-radius:14px;margin:15px 0 0;background:radial-gradient(circle at 50% 35%,rgba(213,243,107,.22),transparent 9rem),#f8f9f3;cursor:pointer}.dropzone label strong{font:800 1.6rem Cambria,serif}.dropzone label span{margin-top:8px;color:var(--muted)}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.mapping-table{display:grid;margin:18px 0}.mapping-table>header,.mapping-table>div{display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,1fr) minmax(180px,1.2fr);gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:9px}.mapping-table>header{background:#233a30;color:#fff;font-size:.61rem;font-weight:900;text-transform:uppercase}.mapping-table>div span{overflow:hidden;color:var(--muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.mapping-table select{min-height:36px;margin:0;padding:6px;font-size:.7rem}.validation-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.validation-summary article{display:grid;border:1px solid var(--border);border-top:4px solid #89958f;border-radius:8px;padding:13px;background:#fff}.validation-summary article.ready{border-top-color:#4c8963}.validation-summary article.warning{border-top-color:#d39b32}.validation-summary article.error{border-top-color:#ad4e43}.validation-summary strong{font:800 1.7rem Cambria,serif}.validation-summary span{color:var(--muted);font-size:.62rem;text-transform:uppercase}.issue-resolver{border:1px solid #e4c97e;border-radius:10px;padding:15px;margin:17px 0;background:#fff9e5}.issue-resolver label{display:grid;grid-template-columns:1fr minmax(220px,1fr);align-items:center;gap:15px;margin:8px 0}.issue-resolver select{margin:0}.import-preview-table{display:grid;border-top:2px solid var(--ink)}.import-preview-table>header,.import-preview-table>article{display:grid;grid-template-columns:48px minmax(160px,1.3fr) minmax(120px,.8fr) minmax(180px,1fr);gap:12px;padding:11px;border-bottom:1px solid var(--border)}.import-preview-table>header{color:var(--muted);font-size:.59rem;font-weight:900;text-transform:uppercase}.import-preview-table>article.warning{background:#fffaf0}.import-preview-table>article.error{background:#fff4f1}.import-preview-table article>div{display:grid;align-content:start;gap:4px}.import-preview-table small{font-size:.61rem}.import-preview-table select{min-height:32px;margin:4px 0 0;padding:5px;font-size:.64rem}.skip-errors{border:1px solid #e5b3ab;border-radius:8px;padding:12px;margin-top:14px;background:#fff3f0}.import-confirm{display:flex;align-items:center;gap:20px;border-radius:11px;padding:18px;margin-top:16px;background:#20382d;color:#fff}.import-confirm div{margin-right:auto}.import-confirm p{margin:3px 0;color:#bdcbc4;font-size:.7rem}.restart-import{margin-top:17px}.export-center>div{display:grid;grid-template-columns:1fr auto auto;gap:5px;align-items:center;border-top:1px solid var(--border);padding:11px 0}.import-history article{display:grid;grid-template-columns:1fr auto;gap:5px;border-top:1px solid var(--border);padding:10px 0}.import-history article div{display:grid}.import-history article span,.import-history article small{font-size:.6rem}.import-history article>small{grid-column:1/-1}.form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.integration-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;background:radial-gradient(circle at 80% 20%,rgba(213,243,107,.22),transparent 13rem),#fff}.integration-hero h2{font-size:1.8rem}.integration-hero p{max-width:720px;margin:0;color:var(--muted);font-size:.72rem}.integration-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.integration-module{display:grid;gap:14px}.integration-module.unpublished{background:#f2f2ed}.integration-module>header{display:flex;align-items:start;justify-content:space-between;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:11px}.integration-module>section+section{border-top:1px solid var(--border);padding-top:13px}.copy-field{display:flex;gap:6px}.copy-field input{min-width:0;margin:0}.integration-module textarea{font:500 .65rem/1.45 Consolas,monospace}.qr-block{display:grid;grid-template-columns:1fr 125px;gap:10px;align-items:center}.qr-block p{margin:0;color:var(--muted);font-size:.66rem;line-height:1.5}.qr-block img,.qr-placeholder{grid-column:2;grid-row:1/3;width:125px;height:125px;border:1px solid var(--border);border-radius:8px;background:#fff}.qr-placeholder{display:grid;place-content:center;text-align:center;color:var(--muted);font-size:.68rem}.qr-placeholder small{font-size:.56rem}.qr-actions{display:flex;grid-column:1/-1;flex-wrap:wrap;gap:6px}.button-generator{margin-top:18px}.button-builder{display:grid;grid-template-columns:1.1fr .9fr;gap:25px}.button-output{border-left:1px solid var(--border);padding-left:25px}.generated-button{margin:12px 0 20px}.integration-future-note{color:var(--muted);font-size:.68rem;text-align:center}.draft-preview-bar{position:sticky;z-index:30;top:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 20px;background:#17251f;color:#fff;box-shadow:0 8px 25px rgba(15,30,22,.2)}.draft-preview-bar div{display:grid}.draft-preview-bar span{color:#aebfb6;font-size:.65rem}.draft-preview-bar nav{display:flex;flex-wrap:wrap;gap:6px}.draft-preview-bar a{border:1px solid #597065;border-radius:6px;padding:6px 9px;color:#fff;font-size:.65rem;text-decoration:none}.draft-preview .order-shell{transition:max-width .25s ease}.draft-preview.preview-mobile .order-shell{max-width:430px}.draft-preview.preview-tablet .order-shell{max-width:820px}.menu-only .order-layout{grid-template-columns:1fr}.menu-only .menu-column{max-width:1100px;margin-inline:auto}
@media(max-width:1180px){.onboarding-grid,.review-layout{grid-template-columns:1fr}.integration-module-grid{grid-template-columns:1fr 1fr}.menu-publish-status{grid-template-columns:1fr 140px}.status-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:820px){.import-steps{grid-template-columns:repeat(3,1fr)}.integration-module-grid,.button-builder{grid-template-columns:1fr}.button-output{border:0;border-top:1px solid var(--border);padding:20px 0 0}.menu-publish-status{grid-template-columns:1fr}.publish-count{border:0;padding:0}.draft-preview-bar{align-items:flex-start;flex-direction:column}.import-preview-table>header{display:none}.import-preview-table>article{grid-template-columns:38px 1fr}.import-preview-table>article>div:nth-of-type(2),.import-preview-table>article>div:nth-of-type(3){grid-column:2}.issue-resolver label{grid-template-columns:1fr}.review-layout .publish-confirm{align-items:stretch;flex-direction:column}.validation-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.import-steps{grid-template-columns:1fr 1fr}.mapping-table>header{display:none}.mapping-table>div{grid-template-columns:1fr}.integration-module-grid{grid-template-columns:1fr}.copy-field{align-items:stretch;flex-direction:column}.qr-block{grid-template-columns:1fr 105px}.qr-block img,.qr-placeholder{width:105px;height:105px}.menu-change-list article{grid-template-columns:1fr}.status-actions{align-items:stretch;flex-direction:column}}

@media(min-width:821px){.import-steps{grid-template-columns:repeat(7,1fr)}}
.dropzone label.dragging{border-color:var(--primary);background:radial-gradient(circle at 50% 35%,rgba(213,243,107,.4),transparent 11rem),#f3f8e7;box-shadow:inset 0 0 0 2px rgba(32,56,45,.08)}

/* Phase 14.75 — security, privacy and compliance operations. */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #b9dc37;outline-offset:3px;box-shadow:0 0 0 2px #17392b}.skip-link{position:fixed;z-index:1000;top:8px;left:8px;translate:0 -160%;border-radius:6px;padding:10px 14px;background:#fff;color:#17392b;font-weight:900;box-shadow:0 5px 24px rgba(0,0,0,.25)}.skip-link:focus{translate:0 0}.compliance-banner,.security-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:7px solid var(--accent);border-radius:14px;padding:27px 30px;margin-bottom:20px;background:radial-gradient(circle at 88% 8%,rgba(213,243,107,.23),transparent 16rem),#20382d;color:#fff}.compliance-banner.warning{border-left-color:#e6bd4c;background:#55451c}.compliance-banner.danger{border-left-color:#e58b7f;background:#512f2b}.compliance-banner h2,.security-hero h2{font-size:clamp(1.7rem,3vw,2.8rem)}.compliance-banner p,.security-hero p{max-width:760px;margin:4px 0;color:#c7d3cc}.security-hero-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.security-hero .action{color:#fff}.readiness-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.readiness-card{min-height:145px;border:1px solid var(--border);border-top:6px solid #6f8e7c;border-radius:11px;padding:17px;background:#fff}.readiness-card.warning{border-top-color:#d19b30}.readiness-card.blocker{border-top-color:#a84c43}.readiness-card>span,.review-state{font-size:.56rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.readiness-card h3{margin-top:14px;font-size:1rem}.readiness-card p{color:var(--muted);font-size:.68rem;line-height:1.5}.compliance-layout,.review-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:18px;align-items:start;margin-bottom:18px}.data-inventory{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:18px}.data-inventory article{border:1px solid var(--border);border-radius:10px;padding:16px;background:#fff}.data-inventory article>span{color:var(--accent);font:900 1.5rem Cambria,serif}.data-inventory h3{margin:10px 0 4px}.data-inventory p{color:var(--muted);font-size:.66rem;line-height:1.5}.evidence-panel dl,.legal-provider dl{display:grid;gap:8px}.evidence-panel dl div,.legal-provider dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding:9px 0}.retention-action{border-top:1px solid var(--border);padding-top:15px;margin-top:20px}.request-list,.document-history,.incident-list,.review-list{display:grid}.request-list>article,.document-history>article{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding:12px 0}.request-list>article>div,.document-history>article>div{display:grid;margin-right:auto}.request-list span,.document-history span{color:var(--muted);font-size:.62rem}.request-workflow{display:flex;align-items:center;gap:5px;margin:0}.request-workflow select,.request-workflow input{width:auto;min-height:34px;margin:0;padding:5px;font-size:.62rem}.request-workflow input{max-width:180px}.incident-card{display:grid;gap:8px;border-top:1px solid var(--border);padding:16px 2px}.incident-card header{display:flex;align-items:center;justify-content:space-between}.incident-card p{margin:0;color:var(--muted);line-height:1.55}.incident-card.urgent{border-left:5px solid #b44c43;padding-left:14px;background:#fff7f5}.urgent-note{color:#842f29!important;font-weight:850}.review-list article{display:grid;grid-template-columns:70px 1fr;gap:12px;border-top:1px solid var(--border);padding:13px 0}.review-list p{margin:3px 0;color:var(--muted);font-size:.68rem}.review-state{align-self:start;border-radius:999px;padding:5px 7px;text-align:center;background:#dcebdd;color:#285a39}.review-state.warning{background:#fff0c5;color:#785715}.review-state.blocker{background:#f7d9d5;color:#853b35}.review-note ol{padding-left:22px}.review-note li{margin:9px 0;color:var(--muted);line-height:1.55}.recovery-panel{border-top:7px solid var(--accent)}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:8px;margin-top:15px}.recovery-codes code{border:1px solid var(--border);border-radius:6px;padding:9px;background:#f6f7f1;font-size:.9rem}.mfa-enroll{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}.mfa-enroll img{display:block;border:1px solid var(--border);border-radius:12px;margin:18px 0;background:#fff}.mfa-enroll details code{display:block;padding:10px;margin-top:8px;word-break:break-all}.session-list{display:grid}.session-list article{display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid var(--border);padding:14px 0}.session-list article div{display:grid}.session-list span,.session-list small{color:var(--muted);font-size:.65rem}.legal-shell{width:min(100% - 32px,850px);padding:38px 0 60px;margin:auto}.legal-brand{color:var(--ink);font-weight:950;text-decoration:none}.legal-document{border-top:7px solid var(--primary);padding:clamp(24px,6vw,62px);margin-top:30px;background:#fff;box-shadow:0 20px 65px rgba(19,40,30,.09)}.legal-document header{border-bottom:1px solid var(--border);padding-bottom:24px;margin-bottom:28px}.legal-document header p{color:var(--muted)}.legal-copy{font-size:.98rem;line-height:1.8;white-space:normal}.legal-provider{border-top:1px solid var(--border);padding-top:24px;margin-top:40px}.legal-provider dd{text-align:right}.legal-footer{display:flex;flex-wrap:wrap;gap:13px;margin-top:25px;font-size:.68rem;font-weight:800}.legal-footer a,.order-footer a,.booking-shell>footer a{color:inherit}.contract-notice{border-left:5px solid var(--primary);padding:13px 15px;margin:18px 0;background:#f3f5ed}.contract-notice p{margin:4px 0;color:var(--muted);font-size:.7rem}.contract-notice nav{display:flex;flex-wrap:wrap;gap:11px;margin-top:8px;font-size:.68rem;font-weight:850}.line-food-info,.combined-food-info{display:block;color:#654f1d!important;line-height:1.45}.combined-food-info{border-left:4px solid #d4a342;padding:8px 10px;margin:8px 0;background:#fff9e6;font-size:.66rem}.sensitive-request{border:1px solid #dfc982;border-radius:9px;padding:14px;margin-top:12px;background:#fffaf0}.modifier-option-head,.modifier-option-row{grid-template-columns:minmax(125px,1fr) minmax(105px,.8fr) minmax(105px,.8fr) 85px 55px 75px auto}.confirmation-actions{display:flex;justify-content:center;gap:9px}.snapshot-reference{border-top:1px solid var(--border);padding-top:12px;color:var(--muted);font-size:.63rem}.field-separator{text-align:center;color:var(--muted);font-size:.64rem;text-transform:uppercase}.order-footer nav,.booking-shell>footer nav{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:1100px){.readiness-grid,.data-inventory{grid-template-columns:1fr 1fr}.compliance-layout,.review-columns{grid-template-columns:1fr}.request-list>article{align-items:flex-start;flex-wrap:wrap}.request-workflow{order:3;width:100%;flex-wrap:wrap}}
@media(max-width:760px){.compliance-banner,.security-hero{align-items:flex-start;flex-direction:column;padding:22px}.security-hero-actions{flex-wrap:wrap;white-space:normal}.readiness-grid,.data-inventory,.mfa-enroll{grid-template-columns:1fr}.request-workflow select,.request-workflow input{width:100%;max-width:none}.recovery-codes{grid-template-columns:1fr}.modifier-option-row{grid-template-columns:1fr 1fr}.modifier-option-row input:first-of-type{grid-column:1/-1}.legal-document{padding:24px 18px}}
@media print{.skip-link,.confirmation-actions,.legal-footer{display:none!important}.ordering-body,.booking-body{background:#fff}.confirmation-shell,.legal-shell{width:100%;padding:0}.confirmation-card,.legal-document{box-shadow:none}.order-confirmation{margin:0}}

/* Authentication and operator control */
.auth-page { min-height: 100vh; background: #e8ebe5; }
.auth-shell { display: grid; width: min(1180px, calc(100% - 40px)); min-height: min(760px, calc(100vh - 56px)); grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); margin: 28px auto; overflow: hidden; border: 1px solid #cfd6d0; border-radius: 22px; background: #fff; box-shadow: 0 30px 90px rgba(19, 35, 28, .14); }
.auth-story { position: relative; display: flex; min-height: 700px; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(34px, 5vw, 68px); background: #183429; color: #fff; }
.auth-story::before { position: absolute; top: -15%; right: -18%; width: 520px; height: 520px; border: 1px solid rgba(213,243,107,.22); border-radius: 50%; box-shadow: 0 0 0 90px rgba(213,243,107,.035),0 0 0 180px rgba(213,243,107,.02); content: ""; }
.auth-story::after { position: absolute; right: 8%; bottom: 5%; width: 180px; height: 260px; border-radius: 90px 90px 16px 16px; background: linear-gradient(155deg,rgba(213,243,107,.16),rgba(213,243,107,.025)); content: ""; transform: rotate(23deg); }
.auth-brand { position: relative; z-index: 1; display: flex; width: max-content; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.auth-brand > span:last-child { display: grid; }
.auth-brand strong { font: 700 1.15rem Cambria,Georgia,serif; }
.auth-brand small { color: #9fb2a9; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.auth-story > div { position: relative; z-index: 1; max-width: 560px; }
.auth-story .eyebrow { color: var(--accent); }
.auth-story h1 { max-width: 520px; margin: 15px 0 24px; font-size: clamp(3rem, 5.7vw, 5.6rem); line-height: .91; }
.auth-story > div > p:last-child { max-width: 480px; color: #c6d2cc; font-size: 1.03rem; line-height: 1.65; }
.auth-story footer { position: relative; z-index: 1; display: flex; align-items: center; gap: 10px; color: #9fb2a9; font-size: .72rem; font-weight: 750; }
.auth-panel { display: grid; place-items: center; padding: clamp(28px, 5vw, 72px); background: #fff; }
.auth-panel__inner { width: min(100%, 420px); }
.auth-panel h2 { margin: 8px 0 12px; font-size: clamp(2.35rem, 4vw, 3.7rem); line-height: .96; }
.auth-intro { margin-bottom: 34px; color: var(--muted); line-height: 1.55; }
.auth-form label { margin-bottom: 20px; }
.auth-form input { min-height: 50px; border-color: #cbd2cd; border-radius: 10px; background: #fbfcfa; }
.auth-submit { width: 100%; min-height: 51px; margin-top: 4px; }
.auth-help { margin: 16px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; text-align: center; }
.auth-legal { display: flex; justify-content: center; gap: 18px; border-top: 1px solid var(--border); padding-top: 22px; margin-top: 34px; font-size: .72rem; font-weight: 700; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 68px; }
.password-toggle { position: absolute; top: 50%; right: 9px; border: 0; padding: 6px 8px; background: transparent; color: var(--primary); font-size: .72rem; font-weight: 850; cursor: pointer; transform: translateY(-50%); }

.platform-body { min-height: 100vh; background: #edf0ee; }
.platform-topbar { position: sticky; z-index: 30; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #304d42; padding: 13px clamp(18px,4vw,52px); background: #142f25; color: #fff; box-shadow: 0 8px 24px rgba(18,38,30,.12); }
.platform-brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.platform-brand > span:last-child { display: grid; }
.platform-brand strong { font: 700 1.04rem Cambria,Georgia,serif; }
.platform-brand small { color: #9db0a7; font-size: .58rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.platform-account { display: flex; align-items: center; gap: 12px; color: #b9c8c1; font-size: .75rem; }
.platform-account form { margin: 0; }
.platform-account button { border: 1px solid #49645a; border-radius: 7px; padding: 7px 10px; background: transparent; color: #fff; cursor: pointer; }
.platform-main { width: min(1540px, 100%); margin: 0 auto; padding: 38px clamp(18px,4vw,52px) 70px; }
.platform-main > h1 { margin-bottom: 8px; }
.platform-main > p:first-of-type { color: var(--muted); }
.platform-main .admin-panel { overflow-x: auto; box-shadow: 0 6px 24px rgba(20,43,34,.045); }
.platform-main .admin-panel > form { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); align-items: end; gap: 10px 14px; border-top: 1px solid var(--border); padding-top: 20px; margin-top: 20px; }
.platform-main .admin-panel > form h3,.platform-main .admin-panel > form > p { grid-column: 1 / -1; }
.platform-main .admin-panel > form label { margin: 0; }
.platform-main .admin-panel > form button { min-height: 44px; }
.platform-main .admin-panel > ul { display: flex; flex-wrap: wrap; gap: 9px; padding: 0; list-style: none; }
.platform-main .admin-panel > ul li { border: 1px solid var(--border); border-radius: 8px; padding: 9px 12px; background: #f8f9f6; font-size: .78rem; }
.platform-main table form { display: flex; min-width: 360px; align-items: center; gap: 6px; margin: 0; }
.platform-main table form input,.platform-main table form select { min-width: 105px; min-height: 34px; margin: 0; padding: 6px 8px; font-size: .73rem; }
.platform-main table form button { min-height: 34px; border: 0; border-radius: 6px; padding: 6px 10px; background: var(--primary); color: #fff; font-weight: 800; cursor: pointer; }
.platform-filter { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0; }
.platform-filter a { border: 1px solid var(--border); border-radius: 999px; padding: 7px 11px; background: #fff; font-size: .72rem; font-weight: 800; text-decoration: none; }
.badge.active,.badge.ready,.badge.setup { background: #dceee3; color: #245b3b; }
.badge.pending_approval,.badge.invited,.badge.email_verified { background: #fff0bd; color: #76520e; }
.badge.suspended,.badge.closed { background: #f4dddd; color: #86382f; }

button:disabled,.button[aria-disabled="true"] { cursor: not-allowed; filter: grayscale(.45); opacity: .55; transform: none; }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto!important; transition-duration: .01ms!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; } }
@media (max-width: 820px) {
  .auth-shell { width: min(100% - 24px, 580px); min-height: auto; grid-template-columns: 1fr; margin: 12px auto; border-radius: 16px; }
  .auth-story { min-height: 250px; padding: 28px; }
  .auth-story h1 { max-width: 430px; margin-bottom: 12px; font-size: clamp(2.5rem, 10vw, 4rem); }
  .auth-story > div > p:last-child,.auth-story footer { display: none; }
  .auth-panel { padding: 34px 28px 40px; }
  .platform-topbar { align-items: flex-start; }
  .platform-account { align-items: flex-end; flex-direction: column; gap: 6px; }
  .platform-main table form { min-width: 300px; flex-wrap: wrap; }
}
@media (max-width: 430px) {
  .auth-shell { width: 100%; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
  .auth-story { min-height: 218px; padding: 24px 20px; }
  .auth-story h1 { font-size: 2.65rem; }
  .auth-panel { padding: 32px 20px 38px; }
  .auth-panel h2 { font-size: 2.45rem; }
  .platform-topbar { padding: 10px 12px; }
  .platform-account > span { display: none; }
  .platform-main { padding: 26px 12px 55px; }
  .platform-main .table-wrap { margin-inline: 0; }
}
.delivery-evidence{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:7px 12px;background:#fff;color:var(--muted);font-size:.68rem}

/* Production-readiness: safe errors, submit feedback and narrow-screen guards. */
.error-page{min-height:100vh;margin:0;background:radial-gradient(circle at 80% 10%,rgba(213,243,107,.16),transparent 28rem),#e9ede8;color:#17392b}.error-shell{display:grid;width:min(100% - 32px,760px);min-height:100vh;align-content:center;gap:24px;margin:auto;padding:32px 0}.error-brand{display:flex;width:max-content;align-items:center;gap:10px;color:inherit;font-weight:900;text-decoration:none}.error-card{border:1px solid #cbd5ce;border-top:7px solid #d5f36b;border-radius:16px;padding:clamp(28px,7vw,64px);background:#fff;box-shadow:0 24px 70px rgba(20,43,34,.12)}.error-code{margin:0 0 10px;color:#64736b;font-size:.72rem;font-weight:950;letter-spacing:.14em}.error-card h1{max-width:620px;margin:0 0 14px;font-size:clamp(2.2rem,7vw,4.5rem);line-height:.96}.error-card>p:not(.error-code){max-width:580px;color:#64736b;line-height:1.65}.error-reference{font-size:.75rem}.error-reference code{display:inline-block;border-radius:5px;padding:3px 6px;background:#edf1ed;color:#17392b}.error-card .button{margin-top:16px}form[aria-busy="true"]{cursor:progress}form[aria-busy="true"] [data-submit-active="true"]{pointer-events:none}
@media(max-width:560px){.error-shell{width:min(100% - 20px,760px);padding:18px 0}.error-card{padding:28px 20px}.button,button,input,select,textarea{max-width:100%}.form-actions>.button,.form-actions>button{min-height:44px}.confirmation-actions{align-items:stretch;flex-direction:column}.confirmation-actions .button{width:100%;text-align:center}}
