/*
 * Producer workspace refresh
 * A quiet, field-notes inspired workspace: neutral paper, a restrained green
 * for progress, and amber reserved for attention. It deliberately replaces the
 * previous black interface while retaining every operational template.
 */

:root {
  --canvas: #f5f6f2;
  --surface: #ffffff;
  --surface-soft: #edf2ed;
  --ink: #183129;
  --muted: #607269;
  --line: #d7e1da;
  --brand: #197a59;
  --brand-dark: #105c42;
  --brand-soft: #dff3e8;
  --warn: #9b581e;
  --warn-soft: #fff3df;
  --radius: 16px;
  --shadow: 0 10px 28px rgba(25, 52, 41, .07);
  --display: "Trebuchet MS", "Aptos Display", system-ui, sans-serif;
  --body: "Aptos", "Segoe UI", system-ui, sans-serif;
}

.site-header__actions { display: flex; align-items: center; gap: 13px; }
.header-link--muted { color: var(--muted); }
.header-link--action { min-height: 38px; display: inline-flex; align-items: center; padding: 0 13px; border-radius: 10px; background: var(--brand-soft); color: var(--brand-dark); }

/* Signup and access explain the two roles without making a dense form page. */
.auth-layout { display: grid; gap: 22px; max-width: 980px; margin: 0 auto; padding: 10px 0 30px; }
.auth-layout__intro { padding: 9px 2px; }
.auth-layout__intro h1 { max-width: 13ch; font-size: clamp(2.25rem, 9vw, 4.25rem); }
.auth-layout__intro > p:not(.eyebrow) { max-width: 38rem; font-size: 1.04rem; }
.auth-steps { display: grid; gap: 10px; margin: 25px 0 0; padding: 0; list-style: none; color: var(--ink); font-size: .9rem; font-weight: 700; }
.auth-steps li { display: flex; align-items: center; gap: 10px; }
.auth-steps span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dark); font-size: .75rem; }
.auth-card { max-width: none; margin: 0; padding: 22px; border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.auth-card__heading { padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.auth-card__heading h2 { margin: 0 0 5px; font-size: 1.18rem; }
.auth-card__heading p { margin: 0; font-size: .88rem; }
.field-group label { margin-top: 17px; }
.auth-card button { width: 100%; margin-top: 24px; }
.auth-card__footnote { margin: 17px 0 0; text-align: center; font-size: .86rem; }
.auth-card__footnote a { font-weight: 800; }

.auth-flow { max-width: 580px; margin: 8px auto 0; padding: 24px; border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.auth-flow__context { margin-bottom: 17px; }
.auth-flow__lead { font-size: 1rem; }
.auth-flow form { max-width: none; margin-top: 23px; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.auth-flow .auth-flow__resend { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
.auth-flow .auth-flow__resend p { margin: 0; font-size: .84rem; }
.auth-flow .auth-flow__resend .button { width: auto; min-height: 40px; margin: 0; padding: 0 13px; }
.auth-flow__switch { border-left-color: var(--brand); background: var(--surface-soft); }

/* The operational views are intentionally light, readable and low-noise. */
.app-shell--producer {
  --canvas: #f5f6f2;
  --surface: #fff;
  --surface-soft: #edf2ed;
  --ink: #183129;
  --muted: #607269;
  --line: #d7e1da;
  --brand: #197a59;
  --brand-dark: #105c42;
  --brand-soft: #dff3e8;
  --warn: #9b581e;
  --warn-soft: #fff3df;
  min-height: 100dvh;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--body);
  font-size: 15px;
}
.producer-shell { min-height: 100dvh; background: var(--canvas); }
.app-shell--producer .container { width: min(100% - 32px, 1080px); margin: 0 auto; padding: 18px 0 104px; }
.app-shell--producer h1, .app-shell--producer h2, .app-shell--producer h3 { color: var(--ink); font-family: var(--display); }
.app-shell--producer p { color: var(--muted); }
.app-shell--producer a { color: var(--brand-dark); }
.app-shell--producer .button, .app-shell--producer button { min-height: 46px; border-color: var(--brand); border-radius: 11px; background: var(--brand); color: #fff; font-size: .9rem; font-weight: 750; box-shadow: none; }
.app-shell--producer .button:hover, .app-shell--producer button:hover { background: var(--brand-dark); }
.app-shell--producer .button--light, .app-shell--producer .button--quiet { border-color: var(--line); background: var(--surface); color: var(--ink); }
.app-shell--producer .button--light:hover, .app-shell--producer .button--quiet:hover { background: var(--surface-soft); color: var(--ink); }
.app-shell--producer .button--danger { border-color: #b54d42; background: #b54d42; color: #fff; }
.app-shell--producer .button--danger:hover { background: #8f382e; }
.app-shell--producer .message { border-color: #ead2a8; border-left-color: var(--warn); background: var(--warn-soft); color: #663914; }
.app-shell--producer .message.error { border-color: #e2b6b0; border-left-color: #ae493e; background: #fff0ee; color: #772f29; }

.workspace-header { min-height: 66px; padding: 8px max(16px, calc((100vw - 1080px) / 2)); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--canvas) 90%, transparent); }
.workspace-back { min-height: 44px; color: var(--ink); font-weight: 750; }
.workspace-back .icon { color: var(--brand); }
.producer-menu>summary { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); }
.producer-menu>summary:hover { background: var(--surface-soft); }
.producer-menu__panel { top: 48px; width: 238px; padding: 8px; border-color: var(--line); border-radius: 13px; background: var(--surface); box-shadow: 0 16px 38px rgba(22, 48, 38, .16); }
.producer-menu__panel>a { min-height: 42px; border-radius: 8px; color: var(--ink); }
.producer-menu__panel>a:hover { background: var(--surface-soft); }
.app-shell--producer .producer-menu__panel form { border-top-color: var(--line); }
.app-shell--producer .producer-menu__panel button { min-height: 42px; color: var(--ink); background: transparent; }

.app-shell--producer .dashboard-heading { display: flex; align-items: flex-start; min-height: auto; margin: 3px 0 18px; }
.app-shell--producer .dashboard-heading__kicker { margin-bottom: 5px; color: var(--brand); font-size: .66rem; font-weight: 900; letter-spacing: .12em; }
.app-shell--producer .dashboard-heading h1 { max-width: 17ch; font-size: clamp(1.75rem, 7vw, 2.45rem); line-height: 1.04; }
.dashboard-heading__subline { margin: 7px 0 0; font-size: .9rem; }
.app-shell--producer .subscription-panel { min-height: auto; margin: 0 0 18px; padding: 17px; border: 1px solid #cde5d7; border-radius: 15px; background: #edf8f1; }
.app-shell--producer .subscription-panel--blocked { border-color: #ecd4ad; background: #fff5e7; }
.app-shell--producer .subscription-panel h2 { color: var(--ink); font-family: var(--body); font-size: .84rem; }
.app-shell--producer .subscription-panel strong { margin: 13px 0 5px; color: var(--ink); font-size: 1.03rem; }
.app-shell--producer .subscription-panel p { color: #466256; font-size: .84rem; }
.subscription-panel__coverage { display: flex; gap: 6px; margin: 12px 0 0 !important; padding-top: 11px; border-top: 1px solid rgba(76, 122, 94, .18); color: #315c46 !important; font-size: .76rem !important; font-weight: 750; }
.subscription-panel__coverage span { color: #597264; font-weight: 650; }
.app-shell--producer .status { padding: 4px 9px; background: #e7ece8; color: #385047; font-size: .71rem; font-weight: 800; }
.app-shell--producer .status--positive { background: #ccefd9; color: #0b6644; }
.app-shell--producer .status--warning { background: #f9e5c6; color: #86501d; }

.app-shell--producer .metric-grid { gap: 10px; margin: 0 0 16px; background: transparent; }
.app-shell--producer .metric-grid a { min-height: 126px; padding: 14px; border: 1px solid var(--line); border-radius: 14px !important; background: var(--surface); color: var(--ink); box-shadow: none; }
.app-shell--producer .metric-grid a:hover { border-color: #a2c8b2; background: #fbfdfb; }
.metric-grid__top .icon { color: var(--brand); }
.app-shell--producer .metric-grid strong { margin: 17px 0 5px; color: var(--ink); font-size: 1.75rem; }
.app-shell--producer .metric-grid small { color: var(--muted); font-size: .74rem; }
.app-shell--producer .metric-grid em { display: block; margin-top: 7px; color: #567064; font-size: .69rem; font-style: normal; line-height: 1.3; }
.dashboard-primary-action { display: grid; gap: 14px; margin: 0 0 25px; padding: 18px; border-radius: 16px; background: #183d31; }
.dashboard-primary-action .eyebrow { margin-bottom: 5px; color: #8dddb4; }
.dashboard-primary-action strong { display: block; color: #fff; font-family: var(--display); font-size: 1.15rem; }
.dashboard-primary-action span { display: block; margin-top: 5px; color: #c4d9ce; font-size: .82rem; line-height: 1.45; }
.app-shell--producer .dashboard-create { width: 100%; border-color: #e5f6ec; background: #e5f6ec; color: #143529; }
.app-shell--producer .dashboard-create:hover { background: #fff; }
.dashboard-attention { margin-top: 2px; padding-top: 22px; border-top: 1px solid var(--line); }
.app-shell--producer .section-title h2 { font-family: var(--body); font-size: 1rem; }
.app-shell--producer .section-title>span { color: var(--muted); }
.attention-row { min-height: 70px; padding: 11px 7px; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); }
a.attention-row:hover { background: transparent; color: var(--brand-dark); }
.attention-row__icon--amber { background: var(--warn-soft); color: var(--warn); }
.attention-row__icon--green { background: var(--brand-soft); color: var(--brand); }
.attention-row__icon--mint { background: #e7f6ef; color: #23785a; }
.attention-row__icon--blue { background: #eaf2f4; color: #396d78; }
.attention-row--urgent { border-left: 3px solid #d97732; background: #fffaf4; }
.attention-row--clear { background: #f7fbf8; }
.attention-row__copy strong { color: var(--ink); }
.attention-row__copy small { color: var(--muted); }
.attention-row>.icon { color: var(--muted); }
.dashboard-shortcuts { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.dashboard-shortcuts__grid { display: grid; gap: 9px; }
.dashboard-shortcuts__grid a { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 11px; min-height: 66px; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--ink); text-decoration: none; }
.dashboard-shortcuts__grid a:hover { border-color: #9fcbb1; background: #fbfdfb; }
.dashboard-shortcuts__grid>.icon { color: var(--brand); }
.dashboard-shortcuts__grid a>.icon { display: grid; place-items: center; width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: var(--brand-soft); color: var(--brand-dark); }
.dashboard-shortcuts__grid strong, .dashboard-shortcuts__grid small { display: block; }
.dashboard-shortcuts__grid strong { font-size: .87rem; }
.dashboard-shortcuts__grid small { margin-top: 2px; color: var(--muted); font-size: .73rem; line-height: 1.35; }
.dashboard-guide { display: grid; gap: 7px; margin-top: 14px; padding: 14px 15px; border-left: 3px solid #87bca0; border-radius: 0 12px 12px 0; background: #f3f8f4; }
.dashboard-guide__mark { color: var(--brand-dark); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.dashboard-guide p { margin: 0; color: #446153; font-size: .78rem; line-height: 1.5; }
.dashboard-guide strong { color: var(--ink); }

.app-shell--producer .page-header { align-items: flex-end; margin: 5px 0 22px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.app-shell--producer .page-header h1, .app-shell--producer .form-page h1 { font-size: clamp(1.75rem, 7vw, 2.3rem); }
.app-shell--producer .page-header .button { flex: 0 0 auto; }
.app-shell--producer .list-stack { gap: 12px; }
.app-shell--producer .list-card { border-color: var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); }
.app-shell--producer .list-card:hover { border-color: #a2c8b2; background: #fbfdfb; }
.app-shell--producer .list-card__meta { color: var(--muted); }
.app-shell--producer .empty-state { border-color: #b9d4c2; background: #f4faf5; }
.app-shell--producer .detail-metrics div { background: var(--surface-soft); }
.app-shell--producer .reservation-card details, .app-shell--producer .offer-controls details { border-color: var(--line); background: #f8faf8; }
.app-shell--producer .offer-controls summary { color: var(--ink); }
.app-shell--producer .filter-tabs a { border-color: var(--line); background: var(--surface); color: var(--muted); }
.app-shell--producer .filter-tabs a[aria-current=page] { border-color: #9fcbb1; background: var(--brand-soft); color: var(--brand-dark); }
.app-shell--producer form { border-color: var(--line); background: var(--surface); }
.app-shell--producer label { color: var(--ink); }
.app-shell--producer input, .app-shell--producer select, .app-shell--producer textarea { border-color: #bdcec4; background: #fff; color: var(--ink); }
.app-shell--producer .offer-field__help { border-left-color: #83b79a; background: #f0f7f2; color: #426353; }
.app-shell--producer .offer-form__guide { border-color: #b7d6c1; background: #f3faf5; color: #284d3b; }
.app-shell--producer .offer-form__guide summary, .app-shell--producer .offer-field--choices>legend, .app-shell--producer .offer-form__section>legend { color: var(--ink); }
.app-shell--producer .offer-form__note { border-left-color: #8db69d; background: #f3f8f4; color: #466454; }
.app-shell--producer .offer-share { border-color: #b7d6c1; background: #f3faf5; }
.app-shell--producer .offer-share h2, .app-shell--producer .offer-share label { color: var(--ink); }
.app-shell--producer .offer-share p { color: #466454; }
.app-shell--producer .offer-share input { border-color: #b7d6c1; background: #fff; color: var(--ink); }

/* Offer detail: availability and the public link come before the lower-frequency
   management controls, so the page supports the daily producer routine. */
.offer-detail { display: grid; gap: 17px; max-width: 960px; }
.offer-detail__header { display: grid; gap: 12px; padding: 4px 0 17px; border-bottom: 1px solid var(--line); }
.offer-detail__header .eyebrow { margin: 0 0 6px; }
.offer-detail__title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.offer-detail__title-row h1 { margin: 0; font-size: clamp(2rem, 7vw, 3rem); line-height: 1; }
.offer-detail__intro { max-width: 49rem; margin: 9px 0 0; font-size: .94rem; line-height: 1.5; }
.offer-detail__updated { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.55; }

.offer-balance { display: grid; overflow: hidden; border: 1px solid #b8d9c5; border-radius: 17px; background: var(--surface); box-shadow: var(--shadow); }
.offer-balance__available { padding: 18px; background: #153f31; }
.offer-balance__available .eyebrow { margin: 0 0 8px; color: #9ee1bc; }
.offer-balance__available strong { display: block; color: #fff; font-family: var(--display); font-size: clamp(2rem, 9vw, 3.15rem); line-height: .95; letter-spacing: -.04em; }
.offer-balance__available strong small { color: #d5ede0; font-family: var(--body); font-size: .42em; letter-spacing: 0; }
.offer-balance__available > span { display: block; margin-top: 8px; color: #c4dbce; font-size: .83rem; }
.offer-balance__metrics { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; }
.offer-balance__metrics div { min-width: 0; padding: 15px 10px; border-right: 1px solid var(--line); }
.offer-balance__metrics div:last-child { border-right: 0; }
.offer-balance__metrics dt { color: var(--muted); font-size: .68rem; font-weight: 800; line-height: 1.2; }
.offer-balance__metrics dd { margin: 7px 0 0; color: var(--ink); font-size: .88rem; font-weight: 850; line-height: 1.25; }

.offer-detail__grid { display: grid; gap: 13px; }
.offer-info-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.offer-info-card .eyebrow { margin: 0 0 6px; }
.offer-info-card h2 { margin: 0; font-family: var(--body); font-size: 1.03rem; }
.offer-info-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 15px 0 0; }
.offer-info-list div { padding: 11px 9px 10px 0; border-top: 1px solid var(--line); }
.offer-info-list div:nth-child(odd) { padding-right: 10px; }
.offer-info-list dt { color: var(--muted); font-size: .72rem; }
.offer-info-list dd { margin: 3px 0 0; color: var(--ink); font-size: .88rem; font-weight: 800; line-height: 1.35; }
.offer-info-list dd span { display: block; color: var(--muted); font-size: .76rem; font-weight: 500; }
.offer-deadline { margin-top: 15px; padding: 12px; border-left: 3px solid var(--brand); border-radius: 0 9px 9px 0; background: #f0f8f3; }
.offer-deadline--overdue { border-left-color: var(--warn); background: var(--warn-soft); }
.offer-deadline span { display: block; color: var(--muted); font-size: .72rem; }
.offer-deadline strong { display: block; margin-top: 4px; color: var(--ink); font-size: .92rem; }
.offer-deadline p { margin: 7px 0 0; font-size: .77rem; line-height: 1.45; }
.offer-fulfillment-list { display: grid; gap: 11px; margin: 15px 0 0; padding: 0; list-style: none; }
.offer-fulfillment-list li { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 9px; align-items: start; }
.offer-fulfillment-list__mark { display: grid; width: 28px; height: 28px; border-radius: 8px; background: var(--brand-soft); color: var(--brand-dark); font-size: .72rem; font-weight: 900; place-items: center; }
.offer-fulfillment-list strong, .offer-fulfillment-list small { display: block; }
.offer-fulfillment-list strong { color: var(--ink); font-size: .85rem; }
.offer-fulfillment-list small { margin-top: 2px; color: var(--muted); font-size: .76rem; line-height: 1.4; white-space: pre-line; }

.offer-next-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; padding: 17px; border-radius: 15px; background: #e8f5ec; }
.offer-next-step__number { display: grid; width: 31px; height: 31px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 1.1rem; font-weight: 850; place-items: center; }
.offer-next-step .eyebrow { margin: 1px 0 5px; color: var(--brand-dark); }
.offer-next-step h2 { margin: 0; font-family: var(--body); font-size: 1rem; }
.offer-next-step p:last-child { margin: 5px 0 0; font-size: .84rem; line-height: 1.48; }

.offer-operation-card { display: grid; gap: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.offer-operation-card .eyebrow { margin: 0 0 5px; }
.offer-operation-card h2 { margin: 0; font-family: var(--body); font-size: 1rem; }
.offer-controls { display: grid; gap: 9px; }
.offer-controls > form { padding: 0; border: 0; background: transparent; }
.offer-controls > form button { width: 100%; }
.offer-controls details { margin: 0; border: 1px solid var(--line); border-radius: 11px; background: #f8faf8; }
.offer-controls summary { min-height: 47px; padding: 13px 14px; font-size: .88rem; font-weight: 800; cursor: pointer; }
.offer-controls details[open] summary { border-bottom: 1px solid var(--line); }
.offer-controls details form { display: grid; gap: 10px; margin: 0; padding: 14px; border: 0; background: transparent; }
.offer-controls details form label { margin: 0; font-size: .82rem; }
.offer-controls details form input, .offer-controls details form textarea { margin: 0; }
.offer-control-help { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.offer-controls .danger-zone { border-color: #e5c3bd; background: #fff8f7; }
.offer-controls .danger-zone summary { color: #8e3d34; }
.offer-controls__schedule { border-color: #c4d9cb !important; background: #f2f8f4 !important; }
.offer-controls__schedule summary { color: var(--brand-dark) !important; }
.offer-control-current { margin: 0; color: var(--brand-dark); font-size: .78rem; font-weight: 750; }
.offer-control-error { margin: 0; color: #9a392f; font-size: .78rem; font-weight: 750; }

.offer-share { display: grid; gap: 13px; padding: 18px; border: 1px solid #b7d6c1; border-radius: 16px; background: #f3faf5; }
.offer-share__heading .eyebrow { margin: 0 0 5px; }
.offer-share h2 { margin: 0; font-family: var(--body); font-size: 1.07rem; }
.offer-share__heading p:last-child { max-width: 46rem; margin: 6px 0 0; font-size: .84rem; line-height: 1.48; }
.offer-share__link-field { display: grid; gap: 6px; }
.offer-share__link-field label { margin: 0; font-size: .81rem; font-weight: 850; }
.offer-share__input-wrap { display: grid; gap: 7px; }
.offer-share__input-wrap input { width: 100%; min-width: 0; margin: 0; padding: 11px 12px; font-size: .8rem; }
.offer-share__copy { width: 100%; white-space: nowrap; }
.offer-share__copy.is-copied { border-color: #8ec9a5; background: var(--brand-soft); color: var(--brand-dark); }
.offer-share__copy-status { min-height: 1.25em; margin: 0; color: #496958; font-size: .76rem; }
.offer-share__actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.offer-share__actions .button { display: inline-flex; width: 100%; justify-content: center; align-items: center; text-align: center; }

@media (min-width: 640px) {
  .offer-detail__header { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .offer-detail__updated { text-align: right; }
  .offer-balance { grid-template-columns: minmax(240px, .9fr) minmax(0, 1.35fr); }
  .offer-balance__metrics { align-items: stretch; }
  .offer-balance__metrics div { display: flex; flex-direction: column; justify-content: center; padding: 16px; }
  .offer-operation-card { grid-template-columns: minmax(155px, .43fr) minmax(0, 1fr); align-items: start; }
  .offer-share__input-wrap { grid-template-columns: minmax(0, 1fr) auto; }
  .offer-share__copy { width: auto; }
  .offer-share__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 820px) {
  .offer-detail { gap: 20px; }
  .offer-detail__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-info-list { grid-template-columns: 1fr; }
  .offer-info-list div, .offer-info-list div:nth-child(odd) { padding-right: 0; }
}

/* Searchable select: search belongs to the opened options panel, never as a
   separate field. The native select stays only as the submitted form value. */
.select-combobox { position: relative; margin: 0 0 2px; font-family: var(--body); }
.select-combobox__current { display: block; width: 100%; min-height: 48px; margin: 0 !important; padding: 11px 48px 11px 13px !important; overflow: hidden; border: 1px solid #9eb9a9 !important; border-radius: 10px !important; background: #fff !important; color: var(--ink) !important; font: inherit !important; font-size: .94rem !important; line-height: 1.3; text-align: left; text-overflow: ellipsis; white-space: nowrap; box-shadow: 0 1px 0 rgba(20,70,45,.03); cursor: pointer; }
.select-combobox__current.is-placeholder { color: #77877d !important; }
.select-combobox__trigger { position: absolute; z-index: 2; top: 1px; right: 1px; display: grid; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 0 9px 9px 0; background: transparent; color: var(--brand-dark); cursor: pointer; place-items: center; }
.select-combobox__trigger span { width: 9px; height: 9px; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .16s ease; }
.select-combobox.is-open .select-combobox__current { border-color: var(--brand) !important; border-radius: 10px 10px 0 0 !important; outline: 3px solid rgba(25,122,89,.16); outline-offset: 0; }
.select-combobox.is-open .select-combobox__trigger span { transform: translateY(2px) rotate(225deg); }
.select-combobox__current:focus-visible, .select-combobox__trigger:focus-visible, .select-combobox__search input:focus-visible, .select-combobox__option button:focus-visible { outline: 3px solid rgba(25,122,89,.26); outline-offset: 2px; }
.select-combobox__panel { position: absolute; z-index: 30; top: calc(100% + 4px); right: 0; left: 0; overflow: hidden; border: 1px solid #c9d9cf; border-radius: 11px; background: #fff; box-shadow: 0 14px 28px rgba(12,43,30,.16); }
.select-combobox__search { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; margin: 8px; padding: 0 9px 0 35px; border: 1px solid #bfd4c7; border-radius: 8px; background: #fbfdfb; }
.select-combobox__search::before { position: absolute; top: 50%; left: 12px; width: 11px; height: 11px; border: 1.8px solid var(--brand-dark); border-radius: 50%; content: ""; transform: translateY(-58%); }
.select-combobox__search::after { position: absolute; left: 23px; bottom: 10px; width: 6px; height: 1.8px; border-radius: 2px; background: var(--brand-dark); content: ""; transform: rotate(45deg); }
.select-combobox__search input { min-width: 0; min-height: 38px !important; margin: 0 !important; padding: 8px 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--ink) !important; font: inherit !important; font-size: .9rem !important; box-shadow: none !important; }
.select-combobox__search input:focus { outline: 0 !important; }
.select-combobox__count { color: var(--muted); font-size: .74rem; white-space: nowrap; }
.select-combobox__list { max-height: min(280px, 42vh); margin: 0 !important; padding: 0 7px 7px !important; overflow-y: auto; list-style: none; }
.select-combobox__option { margin: 0; padding: 0; }
.select-combobox__option button { display: flex; width: 100%; min-height: 40px; padding: 9px 32px 9px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); font: inherit; font-size: .9rem; text-align: left; cursor: pointer; }
.select-combobox__option button:hover, .select-combobox__option.is-highlighted button { background: #edf7f0; }
.select-combobox__option.is-selected button { position: relative; background: #e0f3e7; color: #075f43; font-weight: 800; }
.select-combobox__option.is-selected button::after { position: absolute; top: 50%; right: 12px; width: 8px; height: 4px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; content: ""; transform: translateY(-70%) rotate(-45deg); }
.select-combobox__empty { padding: 14px 10px; color: var(--muted); font-size: .88rem; text-align: center; }
.select-combobox__native { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; border: 0 !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; opacity: 0 !important; pointer-events: none !important; white-space: nowrap !important; }

/* Coverage is configured by city so a producer can paste a complete local
   neighborhood list, then make the operational choices without retyping it. */
.coverage-page { max-width: 840px; }
.coverage-page__header { margin-bottom: 20px; }
.coverage-register { display: grid; gap: 18px; max-width: none; padding: 22px; border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: 17px; background: var(--surface); box-shadow: var(--shadow); }
.coverage-register__heading { display: flex; align-items: flex-start; gap: 12px; }
.coverage-register__heading h2, .coverage-list h2 { margin: 0 0 5px; font-size: 1.2rem; }
.coverage-register__heading p, .coverage-list__header>p { margin: 0; font-size: .88rem; }
.coverage-step { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dark); font-size: .78rem; font-weight: 900; }
.coverage-register__grid { display: grid; gap: 14px; }
.coverage-register label { display: block; margin: 0 0 7px; font-weight: 800; }
.coverage-register input, .coverage-register select, .coverage-register textarea { width: 100%; margin: 0; }
.coverage-register textarea { min-height: 154px; resize: vertical; }
.coverage-register .field-help, .coverage-register .location-assist__status { margin: 7px 0 0; color: var(--muted); font-size: .81rem; line-height: 1.4; }
.coverage-register .location-assist__status--error { color: #9d3e31; }
.coverage-register button { justify-self: start; }
.coverage-list { max-width: 1120px; margin: 34px 0 0; }
.coverage-list__header { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 16px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.coverage-list__header>p { max-width: 410px; }
.coverage-list__tools { display: flex; align-items: end; gap: 14px; margin: 0 0 20px; }
.coverage-filter { display: grid; gap: 6px; width: min(100%, 340px); color: var(--ink); font-size: .78rem; font-weight: 800; }
.coverage-filter input { width: 100%; min-height: 42px; margin: 0; }
.coverage-filter__status, .coverage-action-status { margin: 0; color: var(--muted); font-size: .8rem; }
.coverage-action-status { min-height: 1.3em; margin-bottom: 12px; color: var(--brand-dark); font-weight: 700; }
.coverage-action-status--error { color: #9d3e31; }
.coverage-state { margin: 25px 0 0; }
.coverage-state>h3 { margin: 0 0 11px; color: var(--brand-dark); font-family: var(--body); font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.coverage-cities { display: grid; gap: 14px; }
.coverage-city { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.coverage-city__header { padding: 15px 17px; border-bottom: 1px solid var(--line); background: #f7faf7; }
.coverage-city__header h4 { margin: 0; font-family: var(--display); font-size: 1.1rem; }
.coverage-city__header p { margin: 3px 0 0; font-size: .8rem; }
.coverage-neighborhoods { margin: 0; padding: 0; list-style: none; }
.coverage-neighborhood { display: grid; gap: 11px; padding: 15px 17px; border-top: 1px solid var(--line); }
.coverage-neighborhood:first-child { border-top: 0; }
.coverage-neighborhood--inactive { background: #fbfcfa; }
.coverage-neighborhood--busy { opacity: .62; pointer-events: none; }
.coverage-neighborhood__identity { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.coverage-neighborhood__identity strong { margin-right: 4px; color: var(--ink); }
.coverage-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 99px; background: #eef1ef; color: #5f7067; font-size: .69rem; font-weight: 800; }
.coverage-badge--attended { background: var(--brand-soft); color: var(--brand-dark); }
.coverage-badge--delivery { background: #e5f2fa; color: #21617b; }
.coverage-neighborhood__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.coverage-neighborhood__actions form { margin: 0; padding: 0; border: 0; background: transparent; }
.coverage-neighborhood__actions .button { width: 100%; min-height: 40px; padding: 0 9px; font-size: .78rem; }
.coverage-neighborhood__actions button:disabled { border-color: #e0e6e1; background: #f3f5f3; color: #98a39d; cursor: not-allowed; }
.coverage-neighborhood__delete { color: var(--muted); font-size: .78rem; }
.coverage-neighborhood__delete summary { cursor: pointer; }
.coverage-neighborhood__delete p { margin: 7px 0; font-size: .78rem; }
.coverage-neighborhood__delete form { margin: 0; padding: 0; border: 0; background: transparent; }
.coverage-neighborhood__delete .button { min-height: 38px; font-size: .78rem; }

/* Queue management explains the human hand-off: allocation, manual notice,
   then the buyer's private decision. The next action is always explicit. */
.queue-page__header { margin-bottom: 18px; }
.queue-explainer { display: grid; gap: 18px; margin: 0 0 24px; padding: 20px; border: 1px solid #c9dfd1; border-radius: 17px; background: #eff8f2; }
.queue-explainer__intro h2 { margin: 0 0 7px; font-size: 1.25rem; }
.queue-explainer__intro p:last-child { margin: 0; font-size: .88rem; }
.queue-steps { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.queue-steps li { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 10px; }
.queue-steps span { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: var(--brand); color: #fff; font-size: .75rem; font-weight: 900; }
.queue-steps strong { color: var(--ink); font-size: .86rem; }
.queue-steps p { margin: 3px 0 0; font-size: .79rem; line-height: 1.42; }
.queue-filters { margin: 0 0 17px; }
.queue-filters a { gap: 7px; }
.queue-filters span { display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: #e8eeea; color: inherit; font-size: .67rem; font-variant-numeric: tabular-nums; }
.queue-filters a[aria-current=page] span { background: #bee7ce; }
.queue-results { display: grid; gap: 14px; }
.priority-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
.priority-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.priority-card__header h2 { margin: 2px 0 0; font-size: 1.16rem; }
.priority-card__header .eyebrow { margin: 0; }
.priority-card__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; }
.priority-card__details div { min-width: 0; padding: 14px 17px; border-bottom: 1px solid var(--line); }
.priority-card__details div:nth-child(odd) { border-right: 1px solid var(--line); }
.priority-card__details dt { color: var(--muted); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.priority-card__details dd { margin: 5px 0 2px; color: var(--ink); font-weight: 800; overflow-wrap: anywhere; }
.priority-card__details small { color: var(--muted); font-size: .73rem; line-height: 1.32; overflow-wrap: anywhere; }
.priority-card__next { display: grid; gap: 14px; padding: 17px; background: #153e31; }
.priority-card__next strong { display: block; color: #fff; font-size: .94rem; }
.priority-card__next p { margin: 5px 0 0; color: #c5ddd1; font-size: .8rem; line-height: 1.42; }
.priority-card__next .eyebrow { margin: 0 0 4px; color: #99dfbc; }
.priority-card__next button { width: 100%; border-color: #e5f6ec; background: #e5f6ec; color: #143529; }
.priority-card__next--waiting { background: #edf7f0; }
.priority-card__next--waiting strong { color: var(--brand-dark); }
.priority-card__next--waiting p { color: #466454; }
.priority-card__next--paused { background: #fff3e0; }
.priority-card__next--paused strong { color: #86501d; }
.priority-card__next--paused p { color: #765a37; }
.priority-card__next--resolved { background: #f4f6f4; }
.priority-card__next--resolved strong { color: var(--ink); }
.priority-card__next--resolved p { color: var(--muted); }

.app-shell--producer .producer-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 5; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 7px max(10px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)); border: 0; border-top: 1px solid var(--line); border-radius: 0; background: rgba(255,255,255,.96); box-shadow: 0 -8px 24px rgba(27, 56, 43, .08); backdrop-filter: blur(10px); }
.app-shell--producer .producer-nav a { min-height: 48px; border-radius: 9px; background: transparent; color: var(--muted); font-size: .68rem; font-weight: 750; }
.app-shell--producer .producer-nav a[aria-current=page] { background: var(--brand-soft); color: var(--brand-dark); }
.app-shell--producer .producer-nav a:hover { background: var(--surface-soft); }
.app-shell--producer .producer-nav a[aria-current=page]:hover { background: #cdeed9; }

@media (min-width: 680px) {
  .auth-layout { grid-template-columns: minmax(0, .9fr) minmax(390px, 1.1fr); align-items: start; padding-top: 45px; }
  .auth-layout__intro { padding: 28px 25px 28px 0; }
  .auth-card { padding: 28px; }
  /* Every producer route becomes a workspace on larger screens.  The old
     dashboard-only 352px frame is intentionally overridden here; phone
     proportions remain below this breakpoint. */
  .app-shell--producer .producer-shell {
    width: min(calc(100% - 48px), 1200px);
    max-width: 1200px;
    min-height: calc(100dvh - 48px);
    margin: 24px auto;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--canvas);
  }
  .app-shell--producer .producer-shell--dashboard {
    width: min(calc(100% - 48px), 1200px);
    min-height: calc(100dvh - 48px);
  }
  .app-shell--producer .producer-shell .container,
  .app-shell--producer .producer-shell:not(.producer-shell--dashboard) .container {
    width: min(calc(100% - 72px), 1120px);
    margin: 0 auto;
    padding: 34px 0 112px;
  }
  .app-shell--producer .workspace-header { padding-right: 36px; padding-left: 36px; }
  .coverage-register__grid { grid-template-columns: minmax(190px, .38fr) minmax(0, .62fr); }
  .coverage-cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .queue-explainer { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; padding: 23px; }
  .priority-card__next { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .priority-card__next button { width: auto; min-width: 224px; }
  .app-shell--producer .metric-grid { grid-template-columns: repeat(4, 1fr); }
  .dashboard-shortcuts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-primary-action { grid-template-columns: 1fr auto; align-items: center; }
  .app-shell--producer .dashboard-create { width: auto; min-width: 160px; }
  .app-shell--producer .producer-nav { left: 50%; width: min(530px, calc(100% - 32px)); right: auto; transform: translateX(-50%); border: 1px solid var(--line); border-bottom: 0; border-radius: 14px 14px 0 0; }
}

@media (min-width: 1000px) {
  /* The overview uses the additional room for operational priority, while
     lists, details and forms keep their own readable max-widths. */
  .app-shell--producer .producer-shell--dashboard .container {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
    grid-template-areas:
      "heading heading"
      "subscription metrics"
      "action attention"
      "shortcuts shortcuts"
      "guide guide";
    align-items: start;
    gap: 22px 26px;
  }
  .app-shell--producer .dashboard-heading { grid-area: heading; margin: 0; }
  .app-shell--producer .subscription-panel { grid-area: subscription; margin: 0; }
  .app-shell--producer .metric-grid { grid-area: metrics; margin: 0; }
  .app-shell--producer .dashboard-primary-action { grid-area: action; margin: 0; min-height: 180px; }
  .app-shell--producer .dashboard-attention { grid-area: attention; margin: 0; padding-top: 0; border-top: 0; }
  .app-shell--producer .dashboard-shortcuts { grid-area: shortcuts; margin: 0; }
  .app-shell--producer .dashboard-guide { grid-area: guide; margin: 0; }
  .app-shell--producer .list-stack { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .app-shell--producer .list-stack .list-card:first-child:last-child { grid-column: auto; }
  .coverage-cities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .coverage-neighborhood__actions { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .site-header__inner, .container { width: min(100% - 24px, 1120px); }
  .header-link--muted { display: none; }
  .auth-card, .auth-flow { padding: 18px; }
  .app-shell--producer .page-header { align-items: flex-start; flex-direction: column; }
  .app-shell--producer .page-header .button { width: 100%; }
  .coverage-list__header { align-items: flex-start; flex-direction: column; gap: 7px; }
  .coverage-list__tools { align-items: stretch; flex-direction: column; }
}

/* Catalog management: product identity stays separate from offer conditions. */
.catalog-editor { display: grid; gap: 18px; }
.catalog-editor__form, .catalog-editor__aside, .catalog-product-card {
  border: 1px solid var(--line); border-radius: 16px; background: var(--canvas);
}
.catalog-editor__form { overflow: hidden; }
.catalog-editor__section { display: grid; gap: 16px; padding: 22px; border-bottom: 1px solid var(--line); }
.catalog-editor__section h2, .catalog-editor__aside h2 { margin: 0; color: var(--ink); font-size: 1.25rem; }
.catalog-editor__section .eyebrow, .catalog-editor__aside .eyebrow { margin-bottom: 5px; }
.field-note, .field-help { margin: 5px 0 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.field-group { display: grid; gap: 7px; }
.field-group label, .catalog-checkbox label { color: var(--ink); font-weight: 750; }
.field-optional { color: var(--muted); font-weight: 500; font-size: .85rem; }
.catalog-editor input[type="text"], .catalog-editor textarea, .catalog-editor select { width: 100%; }
.catalog-category-divider { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.catalog-category-divider::before, .catalog-category-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.catalog-editor__section--category { background: #f7fbf8; }
.catalog-editor__section--status { background: #fbfcfb; }
.catalog-checkbox { display: flex; align-items: flex-start; gap: 11px; }
.catalog-checkbox input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--brand); }
.catalog-editor__actions { display: grid; gap: 10px; padding: 18px 22px; }
.catalog-editor__actions .button, .catalog-editor__actions button { width: 100%; justify-content: center; }
.catalog-editor__aside { padding: 22px; align-self: start; background: var(--brand-dark); color: #f4fcf7; }
.catalog-editor__aside h2 { color: #fff; }
.catalog-editor__aside p:not(.eyebrow) { color: #d7eee0; line-height: 1.55; }
.catalog-aside-list { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; color: #e3f5e9; font-size: .9rem; }
.catalog-aside-list li { display: flex; gap: 8px; align-items: baseline; }
.catalog-aside-list li::before { content: "✓"; color: #8be2ae; font-weight: 800; }
.catalog-list { display: grid; gap: 13px; }
.catalog-product-card { display: grid; gap: 12px; padding: 18px; }
.catalog-product-card__topline, .catalog-product-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.catalog-product-card h2 { margin: 0; color: var(--ink); font-size: 1.18rem; }
.catalog-product-card__description { min-height: 2.8em; margin: -3px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.catalog-product-card__description--empty { font-style: italic; }
.catalog-product-card__edit { color: var(--brand-dark); font-size: .88rem; font-weight: 800; text-decoration: none; }
.catalog-product-card__edit:hover { text-decoration: underline; }
.catalog-product-card__meta { padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.catalog-category-tag { max-width: 65%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 999px; padding: 5px 9px; background: var(--brand-soft); color: var(--brand-dark); font-weight: 750; }

@media (min-width: 680px) {
  .catalog-editor { grid-template-columns: minmax(0, 1fr) minmax(250px, .42fr); align-items: start; }
  .catalog-editor__section--category { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .catalog-editor__section--category > :first-child { grid-column: 1 / -1; }
  .catalog-category-divider { display: none; }
  .catalog-editor__actions { grid-template-columns: auto 1fr; justify-content: end; }
  .catalog-editor__actions .button { width: auto; }
  .catalog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  .catalog-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Business profile: identity and habitual service setup stay together without
   turning the daily menu into a settings directory. */
.business-profile { display: grid; gap: 24px; max-width: 1040px; }
.business-profile__header { margin-bottom: 0; }
.business-profile__layout { display: grid; gap: 14px; }
.business-profile__form { margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.business-profile__identity { padding: 19px; }
.business-profile__identity-heading { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: start; gap: 13px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.business-profile__identity-heading .eyebrow { margin: 1px 0 5px; }
.business-profile__identity-heading h2 { margin: 0; font-size: 1.2rem; }
.business-profile__identity-heading p:not(.eyebrow) { margin: 5px 0 0; font-size: .86rem; line-height: 1.45; }
.business-profile__logo-preview, .business-profile__logo-placeholder { display: grid; place-items: center; width: 54px; height: 54px; overflow: hidden; border: 1px solid #b8d8c4; border-radius: 15px; background: var(--brand-soft); color: var(--brand-dark); font-family: var(--display); font-size: 1.35rem; font-weight: 900; object-fit: cover; }
.business-profile__fields { display: grid; gap: 16px; margin-top: 19px; }
.business-profile__field { display: grid; gap: 6px; }
.business-profile__field label { color: var(--ink); font-weight: 800; font-size: .88rem; }
.business-profile__field label span { color: var(--muted); font-size: .78rem; font-weight: 500; }
.business-profile__field input, .business-profile__field select, .business-profile__field textarea { width: 100%; margin: 0; }
.business-profile__field textarea { min-height: 105px; resize: vertical; }
.business-profile__field > p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.business-profile__field ul.errorlist { margin: 0; color: #a3372c; font-size: .8rem; }
.business-profile__field--invalid input, .business-profile__field--invalid textarea, .business-profile__field--invalid select { border-color: #bf554a; }
.business-profile__logo-control { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 10px; padding: 11px; border: 1px solid #c9dfd1; border-radius: 12px; background: #f5faf6; }
.business-profile__logo-control > img, .business-profile__logo-control > .business-profile__logo-placeholder { width: 48px; height: 48px; border-radius: 12px; }
.business-profile__logo-control strong, .business-profile__logo-control span { display: block; }
.business-profile__logo-control strong { color: var(--ink); font-size: .88rem; }
.business-profile__logo-control > div span { margin-top: 3px; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.business-profile__remove-logo { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; width: fit-content; margin-top: 1px; color: var(--warn) !important; font-size: .78rem !important; font-weight: 700 !important; cursor: pointer; }
.business-profile__remove-logo input { width: 17px !important; height: 17px; margin: 0; accent-color: var(--warn); }
.business-profile__logo-upload-wrap { position: relative; }
.business-profile__logo-upload-wrap > input[type=file] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.business-profile__logo-upload { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 54px; padding: 10px 13px; border: 1px dashed #82ae92; border-radius: 11px; background: #fbfdfb; color: var(--brand-dark) !important; cursor: pointer; }
.business-profile__logo-upload:hover { border-style: solid; background: var(--brand-soft); }
.business-profile__logo-upload strong { font-size: .84rem; }
.business-profile__logo-upload span { overflow: hidden; color: var(--muted); font-size: .76rem; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.business-profile__logo-upload-wrap > input[type=file]:focus + .business-profile__logo-upload { outline: 3px solid rgba(25, 122, 89, .27); outline-offset: 2px; }
.business-profile__save { display: grid; gap: 9px; padding: 16px 19px; border-top: 1px solid var(--line); background: #f7faf7; }
.business-profile__save button { width: 100%; }
.business-profile__save p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.business-profile__guide { display: grid; align-content: start; gap: 9px; padding: 20px; border-radius: 17px; background: #183f32; }
.business-profile__guide .eyebrow { margin: 0; color: #91deb2; }
.business-profile__guide h2 { margin: 0; color: #fff; font-size: 1.35rem; line-height: 1.12; }
.business-profile__guide p:not(.eyebrow) { margin: 0; color: #d1e6da; font-size: .88rem; line-height: 1.55; }
.business-profile__guide a { width: fit-content; margin-top: 7px; color: #fff; font-size: .87rem; font-weight: 800; }
.business-profile__operations { display: grid; gap: 15px; padding-top: 3px; }
.business-profile__operations > header { max-width: 620px; }
.business-profile__operations > header .eyebrow { margin: 0 0 5px; }
.business-profile__operations > header h2 { margin: 0; font-size: 1.45rem; }
.business-profile__operations > header p:not(.eyebrow) { margin: 6px 0 0; font-size: .9rem; line-height: 1.5; }
.business-profile__operation-grid { display: grid; gap: 12px; }
.business-operation-card { position: relative; display: grid; align-content: start; gap: 9px; min-height: 278px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.business-operation-card__marker { position: absolute; top: 15px; right: 16px; color: #9ab5a5; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.business-operation-card .eyebrow { margin: 0; color: var(--brand); }
.business-operation-card h3 { max-width: 18ch; margin: 0; font-size: 1.12rem; line-height: 1.13; }
.business-operation-card > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.business-operation-card dl { display: flex; gap: 20px; margin: auto 0 0; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.business-operation-card dl div { display: grid; gap: 1px; }
.business-operation-card dt { color: var(--ink); font-family: var(--display); font-size: 1.38rem; font-weight: 900; }
.business-operation-card dd { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.25; }
.business-operation-card .button { width: 100%; justify-content: center; }
.business-operation-card--route { background: #f0f8f3; border-color: #b9d8c4; }
.business-operation-card__note { padding-left: 9px; border-left: 2px solid #7ead91; }

.business-public-header__inner a { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 9px; align-items: center; }
.business-public-header__logo { grid-row: 1 / span 2; width: 34px; height: 34px; border-radius: 9px; object-fit: cover; }
.storefront-heading--business { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 13px; }
.storefront-heading--business > div { min-width: 0; }
.storefront-heading__logo { width: 54px; height: 54px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); object-fit: cover; }
.storefront-heading__location, .storefront-heading__contact { margin-top: 7px !important; color: var(--muted); font-size: .85rem; }
.storefront-heading__contact { color: var(--ink); font-weight: 700; }

@media (min-width: 680px) {
  .business-profile__layout { grid-template-columns: minmax(0, 1fr) minmax(235px, .34fr); align-items: start; }
  .business-profile__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-profile__field--wide { grid-column: 1 / -1; }
  .business-profile__field--logo { grid-column: 1 / -1; }
  .business-profile__save { grid-template-columns: auto 1fr; align-items: center; }
  .business-profile__save button { width: auto; padding-inline: 22px; }
  .business-profile__operation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* The profile is intentionally closer to a public business card than a settings
   screen: identity first, configuration only when the producer asks to edit. */
.business-profile { width: min(100%, 780px); gap: 20px; }
.business-profile__page-heading .eyebrow { margin: 0 0 4px; }
.business-profile__page-heading h1 { margin: 0; font-size: clamp(2rem, 7vw, 2.7rem); }
.business-profile__form { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.business-profile__card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow); }
.business-profile__cover { height: 116px; background: linear-gradient(125deg, #174b38 0%, #197a59 55%, #82c89c 140%); }
.business-profile__identity { position: relative; padding: 0 20px 20px; }
.business-profile__avatar-wrap { position: relative; width: 92px; height: 92px; margin-top: -46px; border: 4px solid var(--surface); border-radius: 26px; background: var(--surface); box-shadow: 0 7px 16px rgba(17, 56, 38, .14); }
.business-profile__avatar { display: grid; place-items: center; width: 100%; height: 100%; overflow: hidden; border-radius: 22px; background: var(--brand-soft); color: var(--brand-dark); font-family: var(--display); font-size: 2.25rem; font-weight: 900; object-fit: cover; }
.business-profile__summary { display: grid; gap: 13px; margin-top: 15px; }
.business-profile__summary .eyebrow { margin: 0 0 4px; color: var(--brand); }
.business-profile__summary h2 { margin: 0; font-size: 1.55rem; line-height: 1.05; }
.business-profile__location { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }
.business-profile__summary .button { width: 100%; justify-content: center; }
.business-profile__bio { max-width: 580px; margin: 17px 0 0; color: var(--ink) !important; font-size: .92rem; line-height: 1.55; }
.business-profile__contact { margin: 10px 0 0; color: var(--muted) !important; font-size: .84rem; }
.business-profile__contact strong { color: var(--ink); }
.business-profile__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 20px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.business-profile__stats div { min-width: 0; padding: 13px 8px; border-right: 1px solid var(--line); text-align: center; }
.business-profile__stats div:last-child { border-right: 0; }
.business-profile__stats dt { color: var(--ink); font-family: var(--display); font-size: 1.35rem; font-weight: 900; }
.business-profile__stats dd { margin: 3px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.25; }
.business-profile__editor { margin: 0; border-top: 1px solid var(--line); background: #f8fbf9; }
.business-profile__editor[open] { background: var(--surface); }
.business-profile__editor summary { display: flex; align-items: center; min-height: 58px; padding: 0 20px; color: var(--brand-dark); font-size: .9rem; font-weight: 850; cursor: pointer; }
.business-profile__editor summary::after { content: "+"; margin-left: auto; color: var(--brand); font-size: 1.3rem; font-weight: 500; }
.business-profile__editor[open] summary::after { content: "−"; }
.business-profile__editor-intro { margin: 0; padding: 0 20px 17px; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.business-profile__editor .business-profile__fields { margin: 0; padding: 0 20px 20px; }
.business-profile__editor .business-profile__logo-control { grid-template-columns: minmax(0, 1fr); padding: 0; border: 0; border-radius: 0; background: transparent; }
.business-profile__editor .business-profile__remove-logo { grid-column: auto; margin: 0; }
.business-profile__editor .business-profile__save { padding: 16px 20px; }
.business-profile__color-input { display: flex; align-items: center; gap: 11px; min-height: 46px; padding: 7px 10px; border: 1px solid #bdcec4; border-radius: 9px; background: #fff; }
.business-profile__color-input input[type=color] { flex: 0 0 34px; width: 34px; min-height: 30px; height: 30px; margin: 0; padding: 0; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.business-profile__color-input span { color: var(--muted); font-size: .76rem; line-height: 1.35; }
.business-profile__operations { gap: 13px; padding-top: 2px; }
.business-profile__operations > header h2 { font-size: 1.36rem; }
.business-profile__operation-grid { gap: 10px; }
.business-operation-card { min-height: 0; padding: 16px; border-radius: 15px; }
.business-operation-card h3 { max-width: none; }
.business-operation-card dl { margin-top: 8px; }
.business-operation-card--route { background: #f0f8f3; }

@media (min-width: 600px) {
  .business-profile__summary { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .business-profile__summary .button { width: auto; padding-inline: 17px; }
  .business-profile__editor .business-profile__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-profile__editor .business-profile__field--wide, .business-profile__editor .business-profile__field--logo { grid-column: 1 / -1; }
  .business-profile__operation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.dashboard-storefront-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; margin: -8px 0 22px; padding: 13px 2px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.dashboard-storefront-link span { color: var(--brand); font-size: .7rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.dashboard-storefront-link strong { font-size: .9rem; }
.dashboard-storefront-link .icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--brand); }

/* Delivery planner: an operational route, based only on details manually agreed with clients. */
.delivery-page-header { margin-bottom: 18px; }
.delivery-day-picker, .delivery-route, .delivery-unplanned, .delivery-conflicts {
  border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); padding: 18px; margin-bottom: 16px;
}
.delivery-day-picker form { display: grid; gap: 9px; }
.delivery-day-picker label, .delivery-stop__schedule label, .delivery-unplanned-card label { color: var(--ink); font-weight: 750; }
.delivery-day-picker__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.delivery-day-picker__controls input { min-width: 0; }
.delivery-day-picker p, .delivery-unplanned__intro { margin: 10px 0 0; color: var(--muted); font-size: .85rem; line-height: 1.45; }
.delivery-conflicts { display: grid; gap: 14px; border-color: #e7bf6b; background: #fff9ec; }
.delivery-conflicts h2, .delivery-route h2, .delivery-unplanned h2 { margin: 2px 0 0; color: var(--ink); font-size: 1.18rem; }
.delivery-conflicts p { margin: 8px 0 0; color: #72501a; line-height: 1.45; }
.delivery-conflicts ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.delivery-conflicts li { border-radius: 9px; background: #fff; padding: 9px 11px; color: #72501a; font-size: .88rem; }
.delivery-route__heading, .delivery-unplanned__heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.delivery-route__count { flex: 0 0 auto; border-radius: 999px; background: var(--brand-soft); padding: 6px 9px; color: var(--brand-dark); font-size: .76rem; font-weight: 800; }
.delivery-stop-list { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; counter-reset: none; }
.delivery-stop { position: relative; }
.delivery-stop article { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 11px; border-top: 1px solid var(--line); padding-top: 14px; }
.delivery-stop:first-child article { border-top: 0; padding-top: 0; }
.delivery-stop__sequence { display: grid; place-items: center; align-self: start; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-dark); color: #fff; font-size: .8rem; font-weight: 800; }
.delivery-stop__content { min-width: 0; }
.delivery-stop__topline, .delivery-stop__actions { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.delivery-stop__content h3 { margin: 11px 0 3px; color: var(--ink); font-size: 1rem; }
.delivery-stop__time { color: var(--brand-dark); font-size: .95rem; }
.delivery-stop__time--missing { color: #955f10; font-size: .78rem; }
.delivery-stop__customer, .delivery-stop__address, .delivery-stop__notes { margin: 4px 0; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.delivery-stop__address { color: var(--ink); font-weight: 650; }
.delivery-stop__notes { padding-left: 9px; border-left: 2px solid var(--brand-soft); }
.delivery-stop__actions { justify-content: flex-start; margin-top: 12px; }
.delivery-stop__actions .button { min-height: 36px; padding: 8px 11px; font-size: .82rem; }
.delivery-stop__schedule, .delivery-unplanned-card details { margin-top: 12px; border-radius: 10px; background: var(--surface-soft); padding: 0 11px; }
.delivery-stop__schedule[open], .delivery-unplanned-card details[open] { padding-bottom: 12px; }
.delivery-stop__schedule summary, .delivery-unplanned-card summary { cursor: pointer; padding: 11px 0; color: var(--brand-dark); font-size: .85rem; font-weight: 800; }
.delivery-stop__schedule form, .delivery-unplanned-card form { display: grid; gap: 10px; }
.delivery-stop__schedule label, .delivery-unplanned-card label { display: grid; gap: 5px; font-size: .8rem; }
.delivery-stop__schedule textarea, .delivery-unplanned-card textarea { min-height: 58px; }
.delivery-stop__schedule button, .delivery-unplanned-card button { width: 100%; }
.delivery-unplanned { background: #fbfcfb; }
.delivery-unplanned__heading > span { color: var(--muted); font-size: .8rem; white-space: nowrap; }
.delivery-unplanned__list { display: grid; gap: 9px; margin-top: 15px; }
.delivery-unplanned-card { border: 1px solid var(--line); border-radius: 11px; background: var(--canvas); padding: 12px; }
.delivery-unplanned-card strong { color: var(--ink); font-size: .9rem; }
.delivery-unplanned-card p { margin: 4px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.4; }
.delivery-unplanned__empty { margin: 14px 0 0; color: var(--muted); }

@media (min-width: 680px) {
  .delivery-day-picker { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 22px; }
  .delivery-day-picker p { margin: 0; padding-bottom: 8px; }
  .delivery-conflicts { grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr); align-items: center; }
  .delivery-stop__schedule form, .delivery-unplanned-card form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-stop__schedule label:last-of-type, .delivery-unplanned-card label:last-of-type, .delivery-stop__schedule button, .delivery-unplanned-card button { grid-column: 1 / -1; }
  .delivery-unplanned__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Reservation management mirrors the queue: state, context and next action stay together. */
.reservation-page__header { margin-bottom: 18px; }
.reservation-explainer { display: grid; gap: 18px; margin: 0 0 24px; padding: 20px; border: 1px solid #c9dfd1; border-radius: 17px; background: #eff8f2; }
.reservation-explainer__intro h2 { margin: 0 0 7px; font-size: 1.25rem; }
.reservation-explainer__intro p:last-child { margin: 0; font-size: .88rem; line-height: 1.46; }
.reservation-steps { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.reservation-steps li { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 10px; }
.reservation-steps span { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: var(--brand); color: #fff; font-size: .75rem; font-weight: 900; }
.reservation-steps strong { color: var(--ink); font-size: .86rem; }
.reservation-steps p { margin: 3px 0 0; font-size: .79rem; line-height: 1.42; }
.reservation-filters { margin: 0 0 17px; }
.reservation-filters a { gap: 7px; }
.reservation-filters span { display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: #e8eeea; color: inherit; font-size: .67rem; font-variant-numeric: tabular-nums; }
.reservation-filters a[aria-current=page] span { background: #bee7ce; }
.reservation-results { display: grid; gap: 14px; }
.reservation-operation-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
.reservation-operation-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.reservation-operation-card__header h2 { margin: 2px 0 0; font-size: 1.16rem; }
.reservation-operation-card__header .eyebrow { margin: 0; }
.reservation-operation-card__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; }
.reservation-operation-card__details div { min-width: 0; padding: 14px 17px; border-bottom: 1px solid var(--line); }
.reservation-operation-card__details div:nth-child(odd) { border-right: 1px solid var(--line); }
.reservation-operation-card__details dt { color: var(--muted); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.reservation-operation-card__details dd { margin: 5px 0 2px; color: var(--ink); font-weight: 800; overflow-wrap: anywhere; }
.reservation-operation-card__details small { color: var(--muted); font-size: .73rem; line-height: 1.32; overflow-wrap: anywhere; }
.reservation-operation-card__next { display: grid; gap: 14px; padding: 17px; background: #153e31; }
.reservation-operation-card__next strong { display: block; color: #fff; font-size: .94rem; }
.reservation-operation-card__next p { margin: 5px 0 0; color: #c5ddd1; font-size: .8rem; line-height: 1.42; }
.reservation-operation-card__next .eyebrow { margin: 0 0 4px; color: #99dfbc; }
.reservation-operation-card__next .button { width: 100%; border-color: #e5f6ec; background: #e5f6ec; color: #143529; }
.reservation-operation-card__next--waiting { background: #edf7f0; }
.reservation-operation-card__next--waiting strong { color: var(--brand-dark); }
.reservation-operation-card__next--waiting p { color: #466454; }
.reservation-operation-card__next--waiting .button { border-color: var(--brand); background: var(--brand); color: #fff; }
.reservation-operation-card__next--overdue { background: #fff3e0; }
.reservation-operation-card__next--overdue strong { color: #86501d; }
.reservation-operation-card__next--overdue p { color: #765a37; }
.reservation-operation-card__next--overdue .eyebrow { color: #a6661f; }
.reservation-operation-card__next--overdue .button { border-color: #8c561a; background: #8c561a; color: #fff; }
.reservation-operation-card__next--resolved { background: #f4f6f4; }
.reservation-operation-card__next--resolved strong { color: var(--ink); }
.reservation-operation-card__next--resolved p { color: var(--muted); }
.reservation-operation-card__next--resolved .button { width: fit-content; border-color: var(--line); background: var(--surface); color: var(--brand-dark); }
.reservation-operation-card__resolved-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.reservation-operation-card__resolved-actions .button:last-child { border-color: var(--brand); background: var(--brand); color: #fff; }
.reservation-operation-card__actions { display: grid; gap: 9px; padding: 15px 17px 17px; }
.reservation-operation-card__actions > .button, .reservation-operation-card__actions > form > button { width: 100%; justify-content: center; }
.reservation-operation-card__actions details { border: 1px solid var(--line); border-radius: 10px; background: #f8faf8; padding: 0 11px; }
.reservation-operation-card__actions details[open] { padding-bottom: 12px; }
.reservation-operation-card__actions summary { cursor: pointer; padding: 11px 0; color: var(--brand-dark); font-size: .85rem; font-weight: 800; }
.reservation-operation-card__actions details form { display: grid; gap: 10px; }
.reservation-operation-card__actions details label { display: grid; gap: 5px; color: var(--ink); font-size: .8rem; font-weight: 750; }
.reservation-operation-card__actions details button { width: 100%; }

@media (min-width: 680px) {
  .reservation-explainer { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; padding: 23px; }
  .reservation-operation-card__next { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .reservation-operation-card__next .button { width: auto; min-width: 184px; }
  .reservation-operation-card__actions { grid-template-columns: auto auto 1fr 1fr; align-items: start; }
  .reservation-operation-card__actions > .button, .reservation-operation-card__actions > form > button { width: auto; min-width: 130px; }
  .reservation-operation-card__actions details form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-operation-card__actions details label:last-of-type, .reservation-operation-card__actions details button { grid-column: 1 / -1; }
}

/* Offer editor groups decisions in their commercial order instead of one long generic form. */
.offer-editor { display: grid; gap: 18px; }
.offer-editor__form, .offer-editor__aside { border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); }
.offer-editor__form { overflow: hidden; }
.offer-editor__section { display: grid; gap: 17px; min-width: 0; margin: 0; padding: 22px; border: 0; border-bottom: 1px solid var(--line); }
.offer-editor__section--commercial { background: #f7fbf8; }
.offer-editor__section--fulfillment { background: #fbfcfb; }
.offer-editor__heading .eyebrow { margin: 0 0 5px; }
.offer-editor__heading h2 { margin: 0; color: var(--ink); font-size: 1.25rem; }
.offer-editor__heading p:last-child { margin: 6px 0 0; color: var(--muted); font-size: .87rem; line-height: 1.5; }
.offer-editor__grid, .offer-editor__fulfillment-grid { display: grid; gap: 14px; }
.offer-editor .offer-field { margin: 0; }
.offer-editor .offer-field > label { margin: 0; color: var(--ink); font-size: .86rem; font-weight: 800; }
.offer-editor .offer-field > input, .offer-editor .offer-field > select, .offer-editor .offer-field > textarea { width: 100%; margin: 7px 0 0; }
.offer-editor .offer-field__help { margin: 6px 0 0; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: .78rem; line-height: 1.42; }
.offer-editor .offer-field--toggle .offer-field__toggle { min-height: auto; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); font-size: .88rem; font-weight: 800; }
.offer-editor .offer-field--toggle .offer-field__help { margin: 7px 0 0; padding-left: 0; }
.offer-editor .offer-field--choices { margin: 0; padding: 0; border: 0; }
.offer-editor .offer-field--choices > legend { margin: 0 0 8px; color: var(--ink); font-size: .86rem; font-weight: 800; }
.offer-editor .offer-field--choices label { min-height: 38px; color: var(--ink); font-size: .86rem; }
.offer-editor__guide { margin: 0; padding: 0 13px 12px; border: 1px solid #b7d6c1; border-radius: 11px; background: #eef8f1; }
.offer-editor__guide summary { cursor: pointer; padding: 12px 0; color: var(--brand-dark); font-size: .86rem; font-weight: 800; }
.offer-editor__guide p { margin: 0; color: #466454; font-size: .82rem; line-height: 1.48; }
.offer-editor__fulfillment-grid { gap: 13px; }
.offer-editor__fulfillment-card { display: grid; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.offer-editor__fulfillment-card h3 { margin: 0; color: var(--ink); font-family: var(--body); font-size: 1rem; }
.offer-editor__location-link { margin: -4px 0 0; color: var(--muted); font-size: .79rem; line-height: 1.4; }
.offer-editor__location-link a { color: var(--brand-dark); font-weight: 800; }
.offer-editor__footer { display: grid; gap: 14px; padding: 19px 22px; background: #153e31; }
.offer-editor__footer .eyebrow { margin: 0 0 4px; color: #9de0bd; }
.offer-editor__footer p:last-child { margin: 0; color: #c5ddd1; font-size: .82rem; line-height: 1.45; }
.offer-editor__actions { display: grid; gap: 9px; }
.offer-editor__actions .button, .offer-editor__actions button { width: 100%; justify-content: center; }
.offer-editor__actions .button--secondary { border-color: #85ab95; background: transparent; color: #f1fbf4; }
.offer-editor__aside { align-self: start; padding: 22px; background: var(--brand-dark); color: #f2fbf5; }
.offer-editor__aside .eyebrow { margin: 0 0 5px; color: #95dfb8; }
.offer-editor__aside h2 { margin: 0; color: #fff; font-size: 1.25rem; }
.offer-editor__aside > p:not(.eyebrow) { margin: 9px 0 0; color: #d8ede1; font-size: .88rem; line-height: 1.5; }
.offer-editor__aside ul { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; color: #e5f6eb; font-size: .84rem; }
.offer-editor__aside li { display: flex; gap: 8px; }
.offer-editor__aside li::before { content: "✓"; color: #8be2ae; font-weight: 900; }
.offer-editor__errors { margin: 15px 15px 0; padding: 12px; border: 1px solid #dfb8b2; border-radius: 10px; background: #fff1ef; color: #8a342c; }

/* Reusable pickup locations belong to the producer's single business. */
.pickup-page { max-width: 960px; }
.pickup-page__header { margin-bottom: 20px; }
.pickup-page__grid { display: grid; gap: 16px; }
.pickup-register, .pickup-list { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); }
.pickup-register { display: grid; gap: 15px; padding: 20px; }
.pickup-register__heading { display: flex; gap: 11px; align-items: flex-start; }
.pickup-register__heading > span { display: grid; width: 29px; height: 29px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dark); font-size: 1.18rem; font-weight: 700; place-items: center; }
.pickup-register h2, .pickup-list h2 { margin: 0; color: var(--ink); font-size: 1.12rem; }
.pickup-register__heading p { margin: 3px 0 0; color: var(--muted); font-size: .84rem; }
.pickup-field { display: grid; gap: 6px; }
.pickup-field label { color: var(--ink); font-size: .86rem; font-weight: 800; }
.pickup-field input, .pickup-field textarea { width: 100%; margin: 0; }
.pickup-field--invalid input, .pickup-field--invalid textarea { border-color: #bb5148; }
.pickup-field .errorlist { margin: 0; color: #9d3028; font-size: .8rem; }
.pickup-register__maps { display: grid; gap: 12px; padding: 14px; border: 1px solid #cce0d3; border-radius: 11px; background: #f5faf6; }
.pickup-register__maps > p { margin: 0; color: var(--ink); font-size: .88rem; }
.pickup-register__maps > p span { color: var(--muted); font-weight: 400; }
.pickup-register__maps > small { margin-top: -7px; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.pickup-register > button { justify-self: start; }
.pickup-list { overflow: hidden; }
.pickup-list > header { padding: 20px 20px 12px; border-bottom: 1px solid var(--line); }
.pickup-list > header .eyebrow { margin: 0 0 5px; }
.pickup-list__items { display: grid; }
.pickup-location { display: grid; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.pickup-location:last-child { border-bottom: 0; }
.pickup-location--inactive { background: #fafafa; opacity: .72; }
.pickup-location__title { display: flex; align-items: center; gap: 8px; }
.pickup-location h3 { margin: 0; color: var(--ink); font-size: .98rem; }
.pickup-location__title span { padding: 3px 7px; border-radius: 99px; background: var(--brand-soft); color: var(--brand-dark); font-size: .7rem; font-weight: 800; }
.pickup-location--inactive .pickup-location__title span { background: #f1ede7; color: #6c665e; }
.pickup-location__body p { margin: 6px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.pickup-location__maps, .pickup-map-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pickup-location__maps a { color: var(--brand-dark); font-size: .79rem; font-weight: 800; text-decoration: underline; }
.pickup-location__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pickup-location__actions form { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }

@media (min-width: 680px) {
  .offer-editor { grid-template-columns: minmax(0, 1fr) minmax(245px, .38fr); align-items: start; }
  .offer-editor__grid--identity, .offer-editor__grid--commercial, .offer-editor__fulfillment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-editor__limit, .offer-editor__single { max-width: calc(50% - 7px); }
  .offer-editor__footer { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .offer-editor__actions { grid-template-columns: auto auto; }
  .offer-editor__actions .button, .offer-editor__actions button { width: auto; min-width: 138px; }
  .pickup-page__grid { grid-template-columns: minmax(280px, .62fr) minmax(0, 1fr); align-items: start; }
  .pickup-location { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .pickup-location__actions { justify-content: flex-end; }
}
