@import url("./admin-workspace.css?v=partner-attention-r420");

.partner-first-work {
  margin: 0 0 28px; padding: clamp(20px, 3vw, 32px);
  border: 1px solid #cde1c1; border-radius: 22px;
  background: linear-gradient(120deg, #f0f8e9, #fff8ed);
  color: var(--ink, #202623); box-shadow: 0 8px 24px #24391e06;
}
.partner-first-work[hidden], .partner-first-work [hidden] { display: none !important; }
.partner-first-work h2 { margin: 6px 0 12px; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; }
.partner-first-work p { max-width: 780px; line-height: 1.6; }
.partner-first-work .partner-first-work-note { font-size: 13px; color: #596451; }
.partner-first-work-confirm { display: flex; align-items: flex-start; gap: 12px; padding: 16px 0; cursor: pointer; }
.partner-first-work-confirm input { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: #40ac1b; }
.partner-first-work-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.partner-first-work-error { padding: 12px 16px; border: 1px solid #e6aba5; border-radius: 12px; color: #942b20; background: #fff6f4; }
#firstWorkBlockers { margin-top: 16px; padding: 12px 16px; border-radius: 12px; background: #fff; }
@media (max-width: 600px) { .partner-first-work-actions > button { width: 100%; } }

@font-face {
  font-family: "Nomi Rubik";
  src: url("./fonts/Rubik-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Language belongs to an existing header/action row, never a viewport-wide strip. */
.nomi-language-control {
  position: relative; display: inline-flex; flex: 0 0 auto;
  align-items: center; gap: 6px; box-sizing: border-box; width: auto;
  min-width: 0; margin: 0; padding: 0; border: 0;
  color: var(--ink, #202623); font: 600 12px/1.3 system-ui, sans-serif;
}
.nomi-language-control > [data-nomi-language-label] {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
body .nomi-language-control select[data-nomi-language] {
  width: 64px; min-width: 0; max-width: 100%; min-height: 36px; margin: 0;
  padding: 7px 22px 7px 9px; border: 1px solid var(--line, #c7d1c6); border-radius: 10px;
  background-color: var(--paper, var(--white, #ffffff)); color: var(--ink, #202623);
  font: inherit; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; opacity: 0;
}
.nomi-language-face {
  position: absolute; inset: 0; display: flex; align-items: center;
  box-sizing: border-box; padding: 0 24px 0 12px; border: 1px solid var(--line, #c7d1c6);
  border-radius: 10px; background: var(--paper, var(--white, #ffffff));
  color: var(--ink, #202623); font: inherit; line-height: 1; pointer-events: none;
}
.nomi-language-face::after {
  position: absolute; right: 11px; top: calc(50% - 4px); width: 5px; height: 5px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); content: "";
}
.nomi-language-control:focus-within { outline: 3px solid #ff5518; outline-offset: 2px; border-radius: 10px; }
.nomi-language-status {
  position: fixed; z-index: 1000; right: max(16px, env(safe-area-inset-right));
  bottom: max(80px, calc(env(safe-area-inset-bottom) + 16px));
  box-sizing: border-box; width: max-content; max-width: min(360px, calc(100vw - 32px));
  padding: 12px 16px; border: 1px solid var(--orange, #c93806); border-radius: 12px;
  color: var(--ink, #202623); background: var(--paper, var(--white, #ffffff));
  box-shadow: 0 8px 28px #0002; font: 500 13px/1.5 system-ui, sans-serif;
  overflow-wrap: anywhere; pointer-events: none;
}
.nomi-language-status[hidden] { display: none; }
dialog .nomi-language-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
dialog .nomi-language-heading > :is(div, h1, h2, h3):first-child { flex: 1 1 140px; min-width: 0; }
dialog .nomi-language-heading > .nomi-language-control { margin-left: auto; }
.auth-header-actions { display: flex; align-items: center; gap: 10px; }
@media (max-width: 740px) {
  body .nomi-language-control select[data-nomi-language] { width: 64px; min-height: 44px; padding-left: 8px; }
  dialog .nomi-language-heading > .nomi-language-control select[data-nomi-language] { width: 64px; }
}

/* Read-only report downloads share the Nomi action and feedback styles. */
.partner-report-builder [data-report-export] { background: var(--partner-accent); color: #fff; min-height: 46px; font-size: 14px; }
.partner-report-builder [data-report-export]:hover:not(:disabled) { background: var(--partner-accent-dark); }
.partner-report-builder [data-report-export]:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }
.partner-report-builder [data-report-export]:disabled { opacity: .55; cursor: wait; }
.partner-report-result { min-height: 24px; margin: 16px 0 0; font-size: 14px; color: var(--partner-ink); overflow-wrap: anywhere; }
.partner-report-result.is-error { color: #a32c13; }

@font-face {
  font-family: "Nomi Rubik";
  src: url("./fonts/Rubik-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
}

:root {
  color-scheme: light;
  --partner-ink: #201a18;
  --partner-muted: #6d625d;
  --partner-line: #eadfd9;
  --partner-soft: #fff5ef;
  --partner-surface: #fffdfa;
  --partner-canvas: #fff8f4;
  --partner-accent: #fd5516;
  --partner-accent-dark: #c93806;
  --partner-accent-soft: #ffede5;
  --partner-success: #40ac1b;
  --partner-success-dark: #287e0d;
  --partner-success-soft: #edf8e9;
  --partner-green: var(--partner-accent);
  --partner-green-dark: var(--partner-accent-dark);
  --partner-green-soft: var(--partner-accent-soft);
  --partner-orange: var(--partner-accent);
  --partner-shadow-sm: 0 10px 30px rgba(88, 51, 34, .07);
  --partner-shadow-md: 0 18px 48px rgba(88, 51, 34, .1);
  --partner-font-sans: "Nomi Rubik", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }

:where(.partner-panel-page fieldset) {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

:where(.partner-panel-page legend) {
  max-width: 100%;
  padding: 0;
}
body.partner-panel-page { min-height: 100vh; margin: 0; background: var(--partner-canvas); color: var(--partner-ink); font-family: var(--partner-font-sans); font-size: 16px; font-weight: 400; line-height: 1.6; font-synthesis: none; font-kerning: normal; font-optical-sizing: auto; font-variant-ligatures: common-ligatures; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; }

.partner-session-check {
  min-height: 100vh;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  background: var(--partner-canvas);
  color: var(--partner-muted);
}

.partner-session-check[hidden] { display: none; }

.partner-session-check__spinner {
  width: 34px;
  height: 34px;
  border: 3px solid var(--partner-line);
  border-top-color: var(--partner-accent);
  border-radius: 50%;
  animation: partner-session-spin 0.7s linear infinite;
}

.partner-session-check.is-error .partner-session-check__spinner { display: none; }
.partner-session-check.is-error strong { max-width: 520px; padding: 0 20px; color: #a8291b; text-align: center; }

@keyframes partner-session-spin {
  to { transform: rotate(360deg); }
}

.partner-login-topbar { min-height: 72px; padding: 0 32px; display: flex; align-items: center; background: #fff; border-bottom: 1px solid var(--partner-line); }
.partner-panel-brand { display: inline-flex; align-items: center; gap: 9px; color: inherit; text-decoration: none; font-size: 20px; }
.partner-panel-brand > span:last-child { color: var(--partner-muted); font-size: 13px; font-weight: 700; }
.partner-panel-wordmark { display: block; width: clamp(150px, 17vw, 205px); height: auto; }
.partner-login { min-height: calc(100vh - 72px); padding: 48px 20px; display: grid; place-items: center; background: #f6f7f4; }
.partner-login-card { width: min(480px, 100%); padding: 38px; border: 1px solid var(--partner-line); border-radius: 24px; background: #fff; box-shadow: 0 20px 50px rgba(23, 26, 31, .08); }
.partner-login-card h1 { margin: 8px 0 12px; font-size: clamp(30px, 5vw, 44px); line-height: 1.05; }
.partner-login-card > p { color: var(--partner-muted); line-height: 1.55; }
.partner-login-card form { display: grid; gap: 16px; margin-top: 28px; }
.partner-login-card .button { min-height: 50px; }
.partner-login-help { margin: 20px 0 0; font-size: 13px; }
.partner-password-fields { display: grid; gap: 16px; min-width: 0; }
.partner-password-fields .field { display: grid; gap: 7px; }
.partner-password-fields input { min-width: 0; width: 100%; box-sizing: border-box; }
.partner-password-link { margin-top: 20px; padding: 10px 0; border: 0; background: transparent; color: var(--partner-ink); text-align: left; text-decoration: underline; cursor: pointer; font: inherit; }
.partner-password-notice { padding: 14px; border: 1px solid #cce1c3; border-radius: 12px; background: #f1f8eb; color: #244321; line-height: 1.5; overflow-wrap: anywhere; }
.partner-password-fields .partner-settings-help, .partner-password-fields .partner-login-help { margin: 0; }

.partner-portal { min-height: 100vh; }
.partner-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; width: 228px; padding: 24px 12px 18px; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; background: #fff; border-right: 1px solid var(--partner-line); }
.partner-sidebar-brand { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 0 6px 24px; color: var(--partner-ink); text-decoration: none; }
.partner-sidebar-wordmark { flex: 0 0 auto; width: 132px; }
.partner-sidebar-wordmark img { display: block; width: 100%; height: auto; }
.partner-sidebar-brand small { min-width: 0; color: var(--partner-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.partner-venue-card { margin: 0 0 17px; padding: 12px; border-radius: 12px; background: var(--partner-soft); }
.partner-venue-card strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-venue-card strong { font-size: 14px; }
.partner-venue-switcher { display: grid; gap: 7px; color: var(--partner-muted); font-size: 11px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.partner-venue-switcher[hidden] { display: none; }
.partner-venue-picker { position: relative; min-width: 0; }
.partner-venue-select { width: 100%; min-width: 0; min-height: 52px; padding: 6px 9px 6px 6px; display: grid; grid-template-columns: 32px minmax(0, 1fr) 14px; gap: 8px; align-items: center; border: 1px solid #e7d4ca; border-radius: 15px; background: #fff; color: var(--partner-ink); font: inherit; text-align: left; cursor: pointer; box-shadow: 0 7px 18px rgba(86, 47, 29, .075); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.partner-venue-select:hover:not([aria-disabled="true"]) { border-color: #f3a17d; box-shadow: 0 10px 24px rgba(86, 47, 29, .12); transform: translateY(-1px); }
.partner-venue-select:focus-visible, .partner-venue-select[aria-expanded="true"] { border-color: var(--partner-accent); box-shadow: 0 0 0 3px rgba(253, 85, 22, .13), 0 11px 26px rgba(86, 47, 29, .13); outline: 0; }
.partner-venue-select[aria-disabled="true"] { cursor: wait; opacity: .62; transform: none; }
.partner-venue-select-initial { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg, #ffede5, #ffe0d1); color: var(--partner-accent-dark); font-size: 14px; font-weight: 800; line-height: 1; box-shadow: inset 0 0 0 1px rgba(253, 85, 22, .12), 0 2px 7px rgba(86, 47, 29, .12); }
.partner-venue-select-value { min-width: 0; overflow: hidden; color: var(--partner-ink); font-size: 14px; font-weight: 650; letter-spacing: 0; text-overflow: ellipsis; text-transform: none; white-space: nowrap; }
.partner-venue-select-chevron { width: 9px; height: 9px; justify-self: center; border-right: 2px solid var(--partner-accent); border-bottom: 2px solid var(--partner-accent); transform: translateY(-2px) rotate(45deg); transition: transform .16s ease; }
.partner-venue-select[aria-expanded="true"] .partner-venue-select-chevron { transform: translateY(2px) rotate(225deg); }
.partner-venue-menu { position: absolute; z-index: 12; top: calc(100% + 8px); right: -6px; left: -6px; max-height: 238px; padding: 6px; overflow-y: auto; border: 1px solid #ead9d1; border-radius: 15px; background: #fff; box-shadow: 0 20px 42px rgba(57, 31, 20, .2); text-transform: none; }
.partner-venue-menu[hidden] { display: none; }
.partner-venue-option { width: 100%; min-height: 44px; padding: 6px 7px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 8px; align-items: center; border: 0; border-radius: 10px; background: transparent; color: var(--partner-ink); font: inherit; text-align: left; cursor: pointer; }
.partner-venue-option:hover, .partner-venue-option:focus-visible { background: #fff3ed; }
.partner-venue-option:focus-visible { outline: 2px solid var(--partner-accent); outline-offset: -2px; }
.partner-venue-option[aria-selected="true"] { background: var(--partner-accent-soft); color: var(--partner-accent-dark); }
.partner-venue-option-initial { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #f6eee9; color: #745e53; font-size: 12px; font-weight: 800; box-shadow: inset 0 0 0 1px rgba(116, 94, 83, .1); }
.partner-venue-option[aria-selected="true"] .partner-venue-option-initial { background: #fff; color: var(--partner-accent-dark); }
.partner-venue-option-name { min-width: 0; overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.partner-venue-option-check { color: var(--partner-accent); font-size: 17px; font-weight: 800; text-align: center; opacity: 0; }
.partner-venue-option[aria-selected="true"] .partner-venue-option-check { opacity: 1; }
.partner-venue-card > small { display: block; margin-top: 9px; padding-inline: 3px; color: var(--partner-muted); font-size: 12px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-venue-card > small[hidden] { display: none; }
.partner-sidebar-nav { display: grid; gap: 4px; }
.partner-sidebar-nav button { width: 100%; min-height: 44px; padding: 10px 11px; display: grid; grid-template-columns: 24px 1fr auto; gap: 8px; align-items: center; border: 0; border-radius: 9px; background: transparent; color: var(--partner-ink); text-align: left; cursor: pointer; }
.partner-sidebar-nav button > span { color: #4f5753; font-size: 18px; text-align: center; }
.partner-sidebar-nav button small { padding: 3px 6px; border-radius: 99px; background: #eef1ee; color: #78807c; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.partner-sidebar-nav button:disabled small { display: none; }
.partner-sidebar-nav button:hover:not(:disabled), .partner-sidebar-nav button.is-active { background: #edf0ee; }
.partner-sidebar-nav button.is-active { box-shadow: inset 3px 0 0 var(--partner-green); font-weight: 800; }
.partner-sidebar-nav button:disabled { cursor: default; opacity: .64; }
.partner-account { margin-top: auto; padding: 18px 8px 0; border-top: 1px solid var(--partner-line); display: grid; gap: 10px; }
.partner-account > span { min-width: 0; display: grid; gap: 2px; }
.partner-account strong { font-size: 12px; }
.partner-account small { color: var(--partner-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-account button { justify-self: start; padding: 0; border: 0; background: transparent; color: #a12d1d; font-size: 12px; font-weight: 800; cursor: pointer; }
.partner-mobile-header, .partner-sidebar-backdrop { display: none; }

.partner-portal-main { min-height: 100vh; margin-left: 228px; padding: 32px clamp(24px, 3vw, 44px) 76px; background: #fff; }
.partner-home-view, .partner-menu-view, .partner-performance-view, .partner-promotions-view, .partner-order-history-view, .partner-ratings-view, .partner-refunds-view, .partner-reports-view, .partner-hours-view, .partner-settings-view { width: min(1180px, 100%); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.partner-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 19px; }
.partner-page-header h1, .partner-menu-heading h1 { margin: 4px 0 6px; font-size: clamp(32px, 4vw, 44px); line-height: 1; letter-spacing: -.04em; }
.partner-page-header p:not(.eyebrow), .partner-menu-heading p:not(.eyebrow) { margin: 0; color: var(--partner-muted); }
.partner-date-picker { position: relative; z-index: 20; width: max-content; margin-bottom: 16px; }
.partner-period-trigger { min-height: 40px; padding: 0 13px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; color: var(--partner-ink); font: inherit; font-size: 13px; font-weight: 750; line-height: 1.2; cursor: pointer; }
.partner-period-trigger:hover, .partner-period-trigger:focus-visible, .partner-period-trigger[aria-expanded="true"] { border-color: var(--partner-green); box-shadow: 0 0 0 3px rgba(44, 166, 107, .1); outline: 0; }
.partner-period-calendar-icon, .partner-period-chevron { display: grid; place-items: center; flex: 0 0 18px; width: 18px; height: 18px; line-height: 1; }
.partner-period-calendar-icon { color: var(--partner-green-dark); }
.partner-period-chevron { margin-left: 2px; color: #59635e; }
.partner-period-calendar-icon svg, .partner-period-chevron svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.partner-period-popover { position: absolute; top: calc(100% + 9px); left: 0; z-index: 60; width: 360px; padding: 18px 17px 15px; border: 1px solid #e1e5e2; border-radius: 14px; background: #fff; box-shadow: 0 14px 36px rgba(22, 31, 26, .18); }
.partner-period-popover[hidden] { display: none; }
.partner-period-calendar-header { min-height: 41px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.partner-period-calendar-header strong { font-size: 18px; letter-spacing: -.015em; }
.partner-period-calendar-navigation { display: flex; align-items: center; gap: 5px; }
.partner-period-calendar-navigation button { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #f1f4f2; color: #5c6560; font-size: 27px; line-height: 1; cursor: pointer; }
.partner-period-calendar-navigation button:hover:not(:disabled), .partner-period-calendar-navigation button:focus-visible { background: var(--partner-green-soft); color: var(--partner-green-dark); outline: 0; }
.partner-period-calendar-navigation button:disabled { opacity: .35; cursor: not-allowed; }
.partner-period-weekdays, .partner-period-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.partner-period-weekdays { margin: 9px 0 4px; }
.partner-period-weekdays span { min-height: 32px; display: grid; place-items: center; color: #2e3732; font-size: 12px; font-weight: 800; }
.partner-period-day-placeholder { min-height: 40px; }
.partner-period-day { position: relative; min-width: 0; height: 40px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #303934; font: inherit; font-size: 12px; cursor: pointer; }
.partner-period-day:hover:not(:disabled), .partner-period-day:focus-visible { z-index: 1; border-radius: 50%; background: #edf5ef; outline: 2px solid rgba(44, 166, 107, .3); outline-offset: -2px; }
.partner-period-day:disabled { color: #b6bcb8; cursor: not-allowed; }
.partner-period-day.is-in-range:not(.is-range-start):not(.is-range-end) { background: #ddf6e7; }
.partner-period-day.is-range-start, .partner-period-day.is-range-end { border-radius: 50%; background: var(--partner-green); color: #fff; font-weight: 850; }
.partner-period-day.is-range-start:not(.is-range-end)::after, .partner-period-day.is-range-end:not(.is-range-start)::before { position: absolute; top: 0; bottom: 0; z-index: -1; width: 50%; background: #ddf6e7; content: ""; }
.partner-period-day.is-range-start::after { right: 0; }
.partner-period-day.is-range-end::before { left: 0; }
.partner-period-day.is-today:not(.is-range-start):not(.is-range-end) { box-shadow: inset 0 0 0 1px var(--partner-green); border-radius: 50%; color: var(--partner-green-dark); font-weight: 800; }
.partner-period-presets { margin-top: 12px; padding: 12px 0; display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid #edf0ee; border-bottom: 1px solid #edf0ee; }
.partner-period-presets button { min-height: 38px; padding: 8px 14px; border: 0; border-radius: 999px; background: #f0f3f1; color: #26302a; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.partner-period-presets button:hover, .partner-period-presets button:focus-visible, .partner-period-presets button.is-active { background: var(--partner-green); color: #fff; outline: 0; }
.partner-period-compare { width: 100%; min-height: 50px; padding: 11px 0 0; display: flex; align-items: center; gap: 11px; border: 0; background: transparent; color: var(--partner-ink); font: inherit; font-size: 12px; font-weight: 800; text-align: left; cursor: pointer; }
.partner-period-switch { position: relative; flex: 0 0 auto; width: 47px; height: 28px; border-radius: 999px; background: #d9dedb; transition: background .18s ease; }
.partner-period-switch::after { position: absolute; top: 4px; left: 4px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); content: ""; transition: transform .18s ease; }
.partner-period-compare[aria-checked="true"] .partner-period-switch { background: var(--partner-green); }
.partner-period-compare[aria-checked="true"] .partner-period-switch::after { transform: translateX(19px); }

.partner-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.partner-kpi { min-height: 112px; padding: 17px; display: flex; flex-direction: column; border: 1px solid #cfd5d0; border-radius: 13px; background: #fff; }
.partner-kpi.is-selected { border: 2px solid #2ca66b; padding: 16px; }
.partner-kpi > span { font-size: 12px; font-weight: 800; }
.partner-kpi strong { margin: 9px 0 3px; font-size: 30px; line-height: 1; }
.partner-kpi small { margin-top: auto; color: var(--partner-muted); font-size: 11px; }
.partner-home-error { margin-top: 16px; padding: 12px 14px; border: 1px solid #efb2a8; border-radius: 10px; background: #fff0ed; color: #8c2518; font-size: 13px; }

.partner-chart-card { margin: 16px 0 26px; padding: 22px; border: 1px solid var(--partner-line); border-radius: 14px; }
.partner-chart-card > div:first-child { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.partner-chart-card h2 { margin: 0; font-size: 18px; }
.partner-chart-card > div:first-child span { color: var(--partner-muted); font-size: 12px; }
.partner-chart-empty { position: relative; height: 250px; margin-top: 18px; display: grid; place-items: center; overflow: hidden; color: var(--partner-muted); }
.partner-chart-empty > span { position: relative; z-index: 2; padding: 10px 14px; border: 1px solid var(--partner-line); border-radius: 999px; background: rgba(255, 255, 255, .94); font-size: 12px; }
.partner-chart-grid { position: absolute; inset: 0; display: grid; grid-template-rows: repeat(4, 1fr); }
.partner-chart-grid i { border-bottom: 1px solid #e8ebe8; }
.partner-chart-grid::after { content: ""; position: absolute; left: -3%; right: -3%; top: 58%; height: 72px; border-top: 3px solid #c8e4d5; background: linear-gradient(180deg, rgba(64, 172, 27, .08), transparent); transform: skewY(-4deg); }

.partner-section-heading { margin: 30px 0 13px; display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.partner-section-heading h2, .partner-readiness-heading h2 { margin: 3px 0 0; font-size: 25px; }
.partner-section-heading .eyebrow, .partner-readiness-heading .eyebrow { margin: 0; }
.partner-coming-soon { padding: 6px 9px; border-radius: 999px; background: #eef1ee; color: var(--partner-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.partner-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.partner-insight-grid article { min-height: 145px; padding: 20px; border: 1px solid #cfd5d0; border-radius: 13px; }
.partner-insight-grid h3 { margin: 0 0 19px; display: flex; gap: 9px; align-items: center; font-size: 15px; }
.partner-insight-grid h3 span { width: 20px; text-align: center; }
.partner-insight-grid article > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.partner-insight-grid article > div span { display: grid; gap: 7px; color: var(--partner-muted); font-size: 12px; }
.partner-insight-grid strong { color: var(--partner-ink); font-size: 26px; }
.partner-insight-note { display: block; margin-top: 16px; color: var(--partner-muted); font-size: 12px; line-height: 1.4; }

.partner-readiness-card { margin-top: 30px; padding: 24px; border: 1px solid #b9dbad; border-radius: 16px; background: linear-gradient(135deg, #fbfef9, var(--partner-green-soft)); }
.partner-readiness-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.partner-readiness-heading p:not(.eyebrow) { margin: 5px 0 0; color: var(--partner-muted); font-size: 13px; }
.partner-readiness-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.partner-readiness-grid > div { min-height: 114px; padding: 16px; display: flex; flex-direction: column; border: 1px solid #d6e8d0; border-radius: 12px; background: rgba(255, 255, 255, .8); }
.partner-readiness-grid span { font-size: 12px; font-weight: 800; }
.partner-readiness-grid strong { margin-top: 9px; font-size: 29px; }
.partner-readiness-grid small { margin-top: auto; color: var(--partner-muted); font-size: 11px; }

.partner-opportunity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.partner-opportunity-grid article { min-height: 170px; padding: 23px; display: grid; grid-template-columns: 55px 1fr; gap: 17px; border: 1px solid #cfd5d0; border-radius: 14px; }
.partner-opportunity-grid h3 { margin: 0 0 7px; font-size: 17px; }
.partner-opportunity-grid p { margin: 0; color: var(--partner-muted); line-height: 1.5; font-size: 13px; }
.partner-opportunity-grid button, .partner-opportunity-grid article > div > span { display: inline-block; margin-top: 18px; padding: 0; border: 0; background: transparent; color: var(--partner-green-dark); font-weight: 800; cursor: pointer; }
.partner-opportunity-grid article.is-muted > div > span { color: var(--partner-muted); cursor: default; }
.partner-opportunity-icon { width: 55px; height: 55px; display: grid; place-items: center; border-radius: 16px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 25px; }

.partner-performance-heading { margin-bottom: 8px; }
.partner-performance-tabs { margin-bottom: 13px; display: flex; gap: 2px; border-bottom: 1px solid var(--partner-line); }
.partner-performance-tabs button { min-width: 118px; padding: 14px 18px 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #505854; font-weight: 800; cursor: pointer; }
.partner-performance-tabs button[aria-selected="true"] { border-bottom-color: var(--partner-green); color: var(--partner-ink); }
.partner-performance-panel .partner-performance-chart { margin-top: 20px; }
.partner-performance-panel .partner-chart-empty { height: 390px; }
.partner-performance-panel .partner-chart-empty.is-flat .partner-chart-grid::after { top: 83%; height: 2px; border-top-color: #a8d9bf; background: transparent; transform: none; }
.partner-operation-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.partner-operation-kpis .partner-kpi { min-width: 0; }
.partner-item-sales { margin-top: 32px; }
.partner-item-sales .partner-section-heading p:not(.eyebrow) { margin: 5px 0 0; color: var(--partner-muted); font-size: 13px; }
.partner-table-scroll { overflow-x: auto; border-top: 1px solid var(--partner-line); }
.partner-item-sales table { width: 100%; min-width: 720px; border-collapse: collapse; }
.partner-item-sales th, .partner-item-sales td { padding: 13px 14px; border-bottom: 1px solid var(--partner-line); text-align: left; }
.partner-item-sales th { color: #4f5753; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.partner-item-sales th:not(:first-child), .partner-item-sales td:not(:first-child) { width: 15%; text-align: right; }
.partner-item-sales td { font-size: 13px; font-weight: 700; }
.partner-sales-item { display: flex; align-items: center; gap: 11px; }
.partner-sales-photo { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(145deg, var(--partner-green-soft), #dbe7d8); color: var(--partner-green-dark); font-size: 18px; font-weight: 900; }
.partner-sales-item > span:last-child { min-width: 0; display: grid; gap: 3px; }
.partner-sales-item strong, .partner-sales-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-sales-item small { color: var(--partner-muted); font-weight: 500; }
.partner-table-empty { padding: 24px; border: 1px dashed #cfd5d0; border-radius: 12px; color: var(--partner-muted); text-align: center; }
.partner-operation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.partner-operation-summary article { padding: 18px 0; display: grid; gap: 6px; }
.partner-operation-summary span { color: var(--partner-muted); font-size: 12px; }
.partner-operation-summary strong { font-size: 28px; }
.partner-operation-summary small { color: var(--partner-muted); }

.partner-promotions-heading { margin-bottom: 8px; }
.partner-promotions-empty { min-height: 124px; padding: 22px; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 17px; align-items: center; border: 1px dashed #c5cec7; border-radius: 14px; background: #fafbf9; }
.partner-promotions-empty-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 15px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 24px; font-weight: 900; }
.partner-promotions-empty h3 { margin: 0 0 6px; font-size: 17px; }
.partner-promotions-empty p { max-width: 760px; margin: 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-smart-promotions { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 15px; }
.partner-smart-card { position: relative; min-height: 224px; padding: 24px; display: grid; grid-template-columns: minmax(0, 1fr) 86px; gap: 18px; overflow: hidden; border-radius: 16px; background: #137a3f; color: #fff; }
.partner-smart-card.is-wide { background: linear-gradient(125deg, #116b38, #168a48); }
.partner-smart-card h3 { margin: 10px 0 13px; font-size: 20px; line-height: 1.2; }
.partner-smart-badge { font-size: 10px; font-weight: 900; letter-spacing: .08em; opacity: .78; }
.partner-smart-card ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 13px; line-height: 1.4; }
.partner-smart-card button { min-height: 40px; margin-top: 20px; padding: 9px 17px; border: 0; border-radius: 999px; background: #edfaef; color: #176d3d; font-weight: 900; }
.partner-smart-card button:disabled { cursor: default; opacity: 1; }
.partner-smart-illustration { align-self: end; width: 82px; height: 82px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; background: rgba(255, 255, 255, .14); font-size: 38px; font-weight: 900; transform: rotate(-8deg); }

.partner-promotion-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.partner-promotion-options article { min-height: 174px; padding: 22px; display: grid; grid-template-columns: minmax(0, 1fr) 58px; gap: 18px; border: 1px solid #cfd5d0; border-radius: 14px; background: #fff; }
.partner-promotion-options article:last-child { grid-column: 1 / 2; }
.partner-promotion-options h3 { margin: 7px 0 8px; font-size: 17px; }
.partner-promotion-options p { margin: 0; color: var(--partner-muted); font-size: 13px; line-height: 1.48; }
.partner-promotion-options article > span { align-self: end; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 17px; background: #fff0ea; color: var(--partner-orange); font-size: 25px; font-weight: 900; }
.partner-option-tag { color: var(--partner-green-dark); font-size: 10px; font-weight: 900; letter-spacing: .07em; }
.partner-promotion-options button { margin-top: 18px; padding: 0; border: 0; background: transparent; color: var(--partner-muted); font-size: 12px; font-weight: 900; }
.partner-promotion-options button:disabled { cursor: default; opacity: 1; }

.partner-promotion-history { margin-top: 34px; }
.partner-promotion-history .partner-section-heading p { margin: 6px 0 0; color: var(--partner-muted); font-size: 13px; }
.partner-promotion-history table { width: 100%; min-width: 850px; border-collapse: collapse; }
.partner-promotion-history th, .partner-promotion-history td { padding: 14px 12px; border-bottom: 1px solid var(--partner-line); text-align: left; }
.partner-promotion-history th { color: #4f5753; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.partner-promotion-history-empty td { height: 132px; text-align: center; }
.partner-promotion-history-empty strong, .partner-promotion-history-empty span { display: block; }
.partner-promotion-history-empty strong { margin-bottom: 6px; color: var(--partner-ink); font-size: 15px; }
.partner-promotion-history-empty span { color: var(--partner-muted); font-size: 12px; }

.partner-order-history-heading { margin-bottom: 14px; }
.partner-order-controls { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: 18px; }
.partner-order-period { margin: 0; }
.partner-order-filters { display: flex; flex-wrap: wrap; gap: 9px; }
.partner-order-filters button { min-height: 40px; padding: 9px 15px; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; color: var(--partner-ink); font-weight: 750; cursor: pointer; }
.partner-order-filters button:hover, .partner-order-filters button:focus-visible { border-color: #98a29b; background: #f7f9f7; }
.partner-order-filters button[aria-pressed="true"] { border-color: var(--partner-green); background: var(--partner-green-soft); color: var(--partner-green-dark); box-shadow: inset 0 0 0 1px var(--partner-green); }
.partner-order-income { margin: 4px 0 18px; display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; align-items: end; }
.partner-order-income > span { grid-column: 1 / -1; color: var(--partner-muted); font-size: 12px; font-weight: 700; }
.partner-order-income strong { font-size: 32px; line-height: 1; letter-spacing: -.03em; }
.partner-order-income small { padding-bottom: 3px; color: var(--partner-muted); font-size: 11px; }
.partner-order-table-shell { overflow: hidden; border: 1px solid var(--partner-line); border-radius: 13px; background: #fff; }
.partner-order-table-shell .partner-table-scroll { border-top: 0; }
.partner-order-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.partner-order-table th, .partner-order-table td { padding: 15px 12px; border-bottom: 1px solid var(--partner-line); text-align: left; vertical-align: middle; }
.partner-order-table th { background: #fafbf9; color: #4f5753; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.partner-order-table th:first-child { padding-left: 20px; }
.partner-order-table th:nth-child(1) { width: 13%; }
.partner-order-table th:nth-child(2) { width: 12%; }
.partner-order-table th:nth-child(3) { width: 12%; }
.partner-order-table th:nth-child(4) { width: 13%; }
.partner-order-table th:nth-child(5) { width: 13%; }
.partner-order-table th:nth-child(6) { width: 15%; }
.partner-order-table th:nth-child(7), .partner-order-table th:nth-child(8) { width: 11%; text-align: right; }
.partner-order-empty-row td { height: 310px; padding: 36px 20px; text-align: center; }
.partner-order-empty-row td > * { display: block; }
.partner-order-empty-icon { width: 54px; height: 54px; margin: 0 auto 14px; display: grid !important; place-items: center; border-radius: 16px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 25px; }
.partner-order-empty-row strong { color: var(--partner-ink); font-size: 17px; }
.partner-order-empty-row td > span:last-child { max-width: 470px; margin: 7px auto 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-ratings-heading { margin-bottom: 14px; }
.partner-ratings-controls { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: 25px; }
.partner-ratings-controls .partner-date-picker { margin: 0; }
.partner-rating-select { min-height: 40px; display: inline-flex; align-items: center; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; }
.partner-rating-select select { min-height: 38px; padding: 0 34px 0 13px; border: 0; outline: 0; border-radius: 9px; background: #fff; color: var(--partner-ink); font-weight: 700; cursor: pointer; }
.partner-rating-summary { margin: 0 0 21px; padding: 20px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 18px; align-items: end; border: 1px solid #f1d5c8; border-radius: 17px; background: linear-gradient(135deg, #fff 0%, #fff7f2 100%); box-shadow: 0 12px 28px rgba(92, 55, 36, .055); }
.partner-rating-summary > span { grid-column: 1 / -1; color: var(--partner-muted); font-size: 12px; font-weight: 700; }
.partner-rating-summary-score { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.partner-rating-summary-score strong { font-size: 38px; line-height: 1; letter-spacing: -.035em; }
.partner-rating-summary-score span { color: #e89800; font-size: 21px; letter-spacing: .08em; }
.partner-rating-summary > small { align-self: center; color: var(--partner-muted); font-size: 13px; font-weight: 700; }
.partner-rating-summary > p { grid-column: 1 / -1; margin: 3px 0 0; color: var(--partner-muted); font-size: 12px; }
.partner-ratings-error { margin-bottom: 14px; }
.partner-ratings-table-shell { overflow: hidden; border: 1px solid var(--partner-line); border-radius: 13px; background: #fff; }
.partner-ratings-table-shell .partner-table-scroll { border-top: 0; }
.partner-ratings-table { width: 100%; min-width: 850px; border-collapse: collapse; }
.partner-ratings-table th, .partner-ratings-table td { padding: 15px 14px; border-bottom: 1px solid var(--partner-line); text-align: left; vertical-align: middle; }
.partner-ratings-table th { background: #fafbf9; color: #4f5753; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.partner-ratings-table th:first-child { width: 18%; padding-left: 20px; }
.partner-ratings-table th:nth-child(2) { width: 20%; }
.partner-ratings-table th:nth-child(3) { width: 48%; }
.partner-ratings-table th:last-child { width: 14%; }
.partner-rating-stars { display: block; color: #e89800; font-size: 17px; line-height: 1; letter-spacing: .045em; white-space: nowrap; }
.partner-rating-score { display: block; margin-top: 5px; color: var(--partner-ink); font-size: 12px; }
.partner-rating-comment p { max-width: 670px; margin: 0; color: var(--partner-ink); line-height: 1.55; overflow-wrap: anywhere; }
.partner-rating-comment .is-empty { color: var(--partner-muted); font-style: italic; }
.partner-rating-order { color: var(--partner-muted); font-weight: 750; white-space: nowrap; }
.partner-rating-row { cursor: pointer; }
.partner-rating-row:hover > td, .partner-rating-row:focus-within > td { background: var(--partner-accent-soft); }
.partner-rating-details { min-height: 44px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.partner-rating-details:focus-visible { outline: 2px solid var(--partner-accent); outline-offset: 4px; }
.partner-ratings-empty-row td { height: 330px; padding: 36px 20px; text-align: center; }
.partner-ratings-empty-row td > * { display: block; }
.partner-ratings-empty-icon { width: 54px; height: 54px; margin: 0 auto 14px; display: grid !important; place-items: center; border-radius: 16px; background: #fff5dc; color: #ce8b00; font-size: 29px; }
.partner-ratings-empty-row strong { color: var(--partner-ink); font-size: 17px; }
.partner-ratings-empty-row td > span:last-child { max-width: 500px; margin: 7px auto 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-refunds-heading { margin-bottom: 14px; }
.partner-refunds-controls { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: 10px; }
.partner-refunds-controls .partner-date-picker { margin: 0; }
.partner-refunds-disputed { min-height: 40px; padding: 9px 15px; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; color: var(--partner-ink); font-weight: 750; cursor: pointer; }
.partner-refunds-disputed:hover, .partner-refunds-disputed:focus-visible { border-color: var(--partner-green); }
.partner-refunds-disputed[aria-pressed="true"] { border-color: var(--partner-green); background: var(--partner-green-soft); color: var(--partner-green-dark); }
.partner-refunds-range { margin: 0 0 14px; color: var(--partner-muted); font-size: 11px; font-weight: 700; }
.partner-refunds-table-shell { overflow: hidden; border: 1px solid var(--partner-line); border-radius: 13px; background: #fff; }
.partner-refunds-table-shell .partner-table-scroll { border-top: 0; }
.partner-refunds-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.partner-refunds-table th, .partner-refunds-table td { padding: 15px 14px; border-bottom: 1px solid var(--partner-line); text-align: left; vertical-align: middle; }
.partner-refunds-table th { background: #fafbf9; color: #4f5753; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.partner-refunds-table th:first-child { width: 13%; padding-left: 20px; }
.partner-refunds-table th:nth-child(2) { width: 16%; }
.partner-refunds-table th:nth-child(3) { width: 16%; }
.partner-refunds-table th:nth-child(4) { width: 27%; }
.partner-refunds-table th:nth-child(5) { width: 14%; }
.partner-refunds-table th:last-child { width: 14%; }
.partner-refunds-empty-row td { height: 300px; padding: 36px 20px; text-align: center; }
.partner-refunds-empty-row td > * { display: block; }
.partner-refunds-empty-icon { width: 54px; height: 54px; margin: 0 auto 14px; display: grid !important; place-items: center; border-radius: 16px; background: #fff0eb; color: var(--partner-orange); font-size: 29px; font-weight: 900; }
.partner-refunds-empty-row strong { color: var(--partner-ink); font-size: 17px; }
.partner-refunds-empty-row td > span:last-child { max-width: 500px; margin: 7px auto 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-reports-heading { margin-bottom: 12px; }
.partner-reports-tabs { margin-bottom: 12px; display: flex; gap: 3px; overflow-x: auto; border-bottom: 1px solid var(--partner-line); scrollbar-width: none; }
.partner-reports-tabs::-webkit-scrollbar { display: none; }
.partner-reports-tabs button { min-height: 48px; padding: 12px 16px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #515954; font-weight: 800; white-space: nowrap; cursor: pointer; }
.partner-reports-tabs button[aria-selected="true"] { border-bottom-color: var(--partner-green); color: var(--partner-ink); }
.partner-reports-panel { padding-top: 2px; }
.partner-report-builder { padding: 12px 0 30px; border-bottom: 1px solid var(--partner-line); }
.partner-report-builder + .partner-report-builder { padding-top: 27px; }
.partner-report-builder-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.partner-report-builder-heading h2 { margin: 0 0 7px; font-size: 22px; letter-spacing: -.025em; }
.partner-report-builder-heading p { margin: 0; color: var(--partner-muted); line-height: 1.45; }
.partner-report-builder-heading > span { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; background: var(--partner-soft); color: #7b847f; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.partner-report-presets { margin: 17px 0 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.partner-report-presets button { min-height: 38px; padding: 8px 15px; border: 1px solid #edf0ed; border-radius: 999px; background: #f0f3f0; color: var(--partner-ink); font-weight: 780; cursor: pointer; }
.partner-report-presets button[aria-pressed="true"] { border-color: var(--partner-green-dark); background: var(--partner-green-dark); color: #fff; }
.partner-report-form-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; gap: 14px; align-items: end; }
.partner-report-form-row label, .partner-invoice-controls > label { display: grid; gap: 7px; color: #424944; font-size: 11px; font-weight: 800; }
.partner-report-form-row input, .partner-invoice-controls input { width: 100%; min-height: 48px; padding: 0 15px; border: 1px solid transparent; border-radius: 9px; background: #eef1ef; color: var(--partner-ink); font-weight: 700; }
.partner-report-form-row input:focus, .partner-invoice-controls input:focus { border-color: var(--partner-green); outline: 2px solid rgba(64, 172, 27, .14); }
.partner-report-downloads { display: flex; flex-wrap: wrap; gap: 9px; }
.partner-report-downloads button, .partner-weekly-download { min-height: 46px; padding: 10px 18px; border: 0; border-radius: 999px; background: var(--partner-green-dark); color: #fff; font-weight: 850; }
.partner-report-downloads button:disabled, .partner-weekly-download:disabled { background: #d9dfda; color: #78807b; cursor: not-allowed; }
.partner-report-notice { margin-top: 14px; padding: 13px 16px; display: flex; gap: 11px; align-items: center; border-radius: 8px; background: #eef1ff; color: #3f4c79; }
.partner-report-notice > span { width: 23px; height: 23px; flex: 0 0 23px; display: grid; place-items: center; border-radius: 50%; background: #6a78ee; color: #fff; font-weight: 900; }
.partner-report-notice p { margin: 0; font-size: 12px; line-height: 1.45; }
.partner-report-empty { min-height: 92px; padding: 21px 0 0; display: grid; gap: 5px; }
.partner-report-empty strong { font-size: 14px; }
.partner-report-empty span { color: var(--partner-muted); font-size: 12px; }
.partner-invoice-controls { padding: 3px 0 25px; display: grid; grid-template-columns: minmax(170px, 1fr) minmax(230px, 1.3fr) auto; gap: 14px; align-items: end; }
.partner-invoice-controls .partner-report-presets { margin: 0; align-self: end; }
.partner-invoices-section h2 { margin: 0 0 13px; font-size: 20px; }
.partner-invoices-table-shell { overflow: hidden; border: 1px solid var(--partner-line); border-radius: 12px; background: #fff; }
.partner-invoices-table-shell .partner-table-scroll { border-top: 0; }
.partner-invoices-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.partner-invoices-table th, .partner-invoices-table td { padding: 14px 12px; border-bottom: 1px solid var(--partner-line); text-align: left; vertical-align: middle; }
.partner-invoices-table th { background: #fafbf9; color: #4f5753; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.partner-invoices-table th:first-child { padding-left: 20px; }
.partner-invoices-empty-row td { height: 300px; padding: 36px 20px; text-align: center; }
.partner-invoices-empty-row td > * { display: block; }
.partner-invoices-empty-icon { width: 54px; height: 54px; margin: 0 auto 14px; display: grid !important; place-items: center; border-radius: 16px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 25px; }
.partner-invoices-empty-row strong { font-size: 17px; }
.partner-invoices-empty-row td > span:last-child { max-width: 520px; margin: 7px auto 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }
.partner-weekly-report { padding-top: 12px; }
.partner-weekly-download { margin-top: 18px; }
.partner-weekly-empty { min-height: 310px; margin-top: 18px; padding: 50px 20px; display: grid; place-items: center; align-content: center; text-align: center; border: 1px solid var(--partner-line); border-radius: 12px; background: #fff; }
.partner-weekly-empty > span { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 17px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 26px; }
.partner-weekly-empty strong { margin-top: 14px; font-size: 17px; }
.partner-weekly-empty p { max-width: 520px; margin: 7px auto 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-hours-heading { margin-bottom: 18px; }
.partner-hours-error { margin-bottom: 16px; padding: 13px 15px; border: 1px solid #f1b3aa; border-radius: 10px; background: #fff1ef; color: #9d2518; font-size: 13px; font-weight: 700; }
.partner-hours-loading { min-height: 320px; display: grid; place-items: center; align-content: center; gap: 12px; border: 1px solid var(--partner-line); border-radius: 14px; background: #fff; color: var(--partner-muted); }
.partner-hours-loading > span { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 17px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 26px; }
.partner-hours-layout { display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(280px, .82fr) minmax(270px, .78fr); gap: 18px; align-items: start; }
.partner-hours-days { display: grid; gap: 14px; }
.partner-hours-day, .partner-hours-preview, .partner-hours-holidays { border: 1px solid var(--partner-line); border-radius: 14px; background: #fff; }
.partner-hours-day { padding: 17px; }
.partner-hours-day-heading { margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.partner-hours-day-heading h2 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
.partner-hours-day-heading span { padding: 5px 8px; border-radius: 999px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 10px; font-weight: 850; }
.partner-hours-day-heading span.is-closed { background: #f0f2f0; color: #7d8580; }
.partner-hours-intervals { display: grid; gap: 9px; }
.partner-hours-interval { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 38px; gap: 8px; align-items: end; }
.partner-hours-interval label { display: grid; gap: 5px; color: var(--partner-muted); font-size: 10px; font-weight: 800; }
.partner-hours-interval input, .partner-hours-interval select { width: 100%; min-height: 44px; padding: 0 10px; border: 1px solid #d6dbd7; border-radius: 8px; background: #fafbf9; color: var(--partner-ink); font: inherit; font-weight: 750; }
.partner-hours-interval select { cursor: pointer; color-scheme: light; }
.partner-hours-interval input:focus, .partner-hours-interval select:focus { border-color: var(--partner-green); outline: 2px solid rgba(64, 172, 27, .14); }
.partner-hours-dash { align-self: center; margin-top: 15px; color: var(--partner-muted); }
.partner-hours-remove { width: 38px; height: 38px; margin-bottom: 3px; border: 0; border-radius: 9px; background: #fff0eb; color: #a92c1d; font-size: 21px; cursor: pointer; }
.partner-hours-remove:hover, .partner-hours-remove:focus-visible { background: #ffdcd4; }
.partner-hours-add { width: 100%; min-height: 42px; margin-top: 12px; border: 0; border-radius: 999px; background: #f1f3f1; color: var(--partner-ink); font-weight: 800; cursor: pointer; }
.partner-hours-add:hover, .partner-hours-add:focus-visible { background: #e6ebe6; }
.partner-hours-add:disabled { color: #9ba29e; cursor: not-allowed; }
.partner-hours-preview, .partner-hours-holidays { position: sticky; top: 22px; padding: 18px; }
.partner-hours-holidays { top: 22px; }
.partner-hours-aside-heading { margin-bottom: 18px; display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.partner-hours-aside-heading > div { display: flex; gap: 10px; align-items: center; }
.partner-hours-aside-heading h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.partner-hours-aside-heading p { margin: 3px 0 0; color: var(--partner-muted); font-size: 11px; line-height: 1.35; }
.partner-hours-aside-heading > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: #f0f2f0; color: #727a75; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.partner-hours-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 38px; border-radius: 11px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 18px; }
.partner-hours-icon.is-holiday { background: #fff0eb; color: var(--partner-orange); }
.partner-hours-preview-list { display: grid; gap: 0; }
.partner-hours-preview-list > div { min-height: 47px; padding: 11px 0; display: grid; grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr); gap: 10px; align-items: start; border-bottom: 1px solid var(--partner-line); }
.partner-hours-preview-list span { color: #4e5651; font-size: 12px; }
.partner-hours-preview-list strong { font-size: 12px; text-align: right; line-height: 1.45; }
.partner-hours-preview-list strong.is-closed { color: #8b928e; font-weight: 700; }
.partner-hours-actions { margin-top: 17px; display: grid; gap: 9px; }
.partner-hours-actions .button { width: 100%; min-height: 44px; }

.partner-settings-heading { margin-bottom: 26px; }
.partner-settings-grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); gap: 20px; align-items: start; }
.partner-settings-column { display: grid; gap: 20px; min-width: 0; }
.partner-settings-section { padding: 24px; border: 1px solid var(--partner-line); border-radius: 15px; background: #fff; }
.partner-settings-section-heading { margin-bottom: 22px; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 18px; }
.partner-settings-section-heading > div { display: flex; align-items: flex-start; gap: 13px; }
.partner-settings-section-heading h2 { margin: 1px 0 4px; font-size: 20px; letter-spacing: -.025em; }
.partner-settings-section-heading p { margin: 0; color: var(--partner-muted); font-size: 12px; line-height: 1.45; }
.partner-settings-icon { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 40px; border-radius: 12px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 17px; font-weight: 900; }
.partner-settings-icon.is-orange { background: #fff0eb; color: var(--partner-orange); }
.partner-settings-action { min-height: 38px; max-width: 100%; flex-shrink: 0; padding: 9px 13px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: #eef1ee; color: var(--partner-ink); text-decoration: none; font-size: 12px; font-weight: 850; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
.partner-settings-action:hover, .partner-settings-action:focus-visible { background: #e3e8e3; }
.partner-settings-action:disabled { color: #929995; cursor: not-allowed; }
.partner-settings-select { display: grid; gap: 7px; }
.partner-settings-select > span { color: #4d5551; font-size: 11px; font-weight: 850; }
.partner-settings-select select { width: min(390px, 100%); min-height: 49px; padding: 0 42px 0 14px; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; color: var(--partner-ink); font-weight: 750; }
.partner-settings-select select:focus { border-color: var(--partner-green); outline: 2px solid rgba(64, 172, 27, .14); }
.partner-settings-help { margin: 8px 0 0; color: var(--partner-muted); font-size: 11px; }
.partner-settings-details { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 30px; }
.partner-settings-details > div { min-height: 75px; padding: 13px 0; border-bottom: 1px solid var(--partner-line); }
.partner-settings-details dt { color: var(--partner-muted); font-size: 11px; font-weight: 750; }
.partner-settings-details dd { margin: 7px 0 0; overflow-wrap: anywhere; font-size: 14px; font-weight: 800; }
.partner-settings-status { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: var(--partner-green-soft); color: var(--partner-green-dark); font-size: 10px; font-weight: 850; }
.partner-settings-note { margin-top: 18px; padding: 13px 14px; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; border-radius: 10px; background: #f3f6fb; color: #4f5f72; }
.partner-settings-note > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #dfe8f8; color: #315e9f; font-weight: 900; }
.partner-settings-note p { margin: 2px 0 0; font-size: 11px; line-height: 1.5; }
.partner-settings-dialog { width: min(680px, calc(100vw - 30px)); max-height: calc(100vh - 30px); padding: 0; overflow: auto; border: 0; border-radius: 18px; background: #fff; color: var(--partner-ink); box-shadow: 0 28px 90px rgba(18, 25, 20, .28); }
.partner-settings-dialog::backdrop { background: rgba(15, 22, 18, .48); backdrop-filter: blur(2px); }
.partner-settings-form { padding: 25px; }
.partner-settings-form > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--partner-line); }
.partner-settings-form > header h2 { margin: 4px 0 5px; font-size: 25px; letter-spacing: -.035em; }
.partner-settings-form > header p:last-child { margin: 0; color: var(--partner-muted); font-size: 12px; line-height: 1.45; }
.partner-dialog-close { width: 40px; height: 40px; flex: 0 0 40px; border: 0; border-radius: 10px; background: #f0f2f0; color: var(--partner-ink); font-size: 25px; line-height: 1; cursor: pointer; }
.partner-dialog-close:hover, .partner-dialog-close:focus-visible { background: #e4e8e4; }
.partner-settings-form-grid { padding: 22px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.partner-settings-form-grid label { display: grid; gap: 7px; }
.partner-settings-form-grid label > span, .partner-settings-readonly > span { color: #4c554f; font-size: 11px; font-weight: 850; }
.partner-settings-form-grid input { width: 100%; min-height: 47px; padding: 0 13px; border: 1px solid #cfd5d0; border-radius: 9px; background: #fff; color: var(--partner-ink); font: inherit; }
.partner-settings-form-grid input:focus { border-color: var(--partner-green); outline: 3px solid rgba(64, 172, 27, .13); }
.partner-settings-form-grid .is-wide { grid-column: 1 / -1; }
.partner-settings-readonly { min-height: 70px; padding: 13px; display: grid; gap: 5px; border-radius: 9px; background: var(--partner-soft); }
.partner-settings-readonly strong { font-size: 13px; overflow-wrap: anywhere; }
.partner-settings-readonly small { color: var(--partner-muted); font-size: 10px; }
.partner-settings-form-error { margin: 0 0 16px; padding: 11px 13px; border-radius: 9px; background: #fff0eb; color: #a12d1d; font-size: 12px; font-weight: 750; }
.partner-settings-form > footer { padding-top: 18px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--partner-line); }
.partner-settings-form > footer .button { min-width: 120px; min-height: 44px; padding: 10px 18px; border: 1px solid #cbd2cd; border-radius: 10px; background: #fff; color: var(--partner-ink); font: inherit; font-weight: 850; cursor: pointer; }
.partner-settings-form > footer .button:hover:not(:disabled), .partner-settings-form > footer .button:focus-visible { border-color: var(--partner-green); outline: 3px solid rgba(64, 172, 27, .12); }
.partner-settings-form > footer .button-primary { border-color: var(--partner-green); background: var(--partner-green); color: #fff; }
.partner-settings-form > footer .button-primary:hover:not(:disabled), .partner-settings-form > footer .button-primary:focus-visible { background: var(--partner-green-dark); }
.partner-settings-form > footer .button:disabled { cursor: wait; opacity: .62; }
.partner-settings-empty { min-height: 155px; padding: 19px; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 14px; align-items: center; border: 1px dashed #cfd5d0; border-radius: 12px; background: #fafbf9; }
.partner-settings-empty-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: #edf0ee; color: #59615c; font-size: 22px; }
.partner-settings-empty strong { display: block; font-size: 14px; }
.partner-settings-empty p { margin: 5px 0 0; color: var(--partner-muted); font-size: 11px; line-height: 1.5; }
.partner-account-summary { padding: 17px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 13px; align-items: center; border-radius: 12px; background: var(--partner-soft); }
.partner-account-avatar { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--partner-green); color: #fff; font-size: 18px; font-weight: 900; }
.partner-account-summary > div { min-width: 0; display: grid; gap: 5px; }
.partner-account-summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.partner-account-summary span:not(.partner-account-avatar) { color: var(--partner-muted); font-size: 11px; }
.partner-settings-logout { margin-top: 16px; padding: 0; display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; color: #a12d1d; font-size: 12px; font-weight: 850; cursor: pointer; }
.partner-settings-logout span { font-size: 18px; }
.partner-settings-security { background: linear-gradient(135deg, #fbfef9, var(--partner-green-soft)); border-color: #cfe6c7; }
.partner-settings-security ul { margin: 0; padding: 0; display: grid; gap: 11px; list-style: none; }
.partner-settings-security li { position: relative; padding-left: 24px; color: #455049; font-size: 12px; }
.partner-settings-security li::before { content: "✓"; position: absolute; left: 0; top: -1px; color: var(--partner-green-dark); font-weight: 900; }
.partner-holiday-list { display: grid; gap: 9px; }
.partner-holiday-empty { min-height: 280px; padding: 18px 14px 20px; display: grid; place-items: center; align-content: center; text-align: center; border: 1px dashed #e2cfc4; border-radius: 16px; background: radial-gradient(circle at 50% 20%, #fff9f4 0, #fff 72%); }
.partner-holiday-illustration { width: min(172px, 70%); height: auto; aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(111, 50, 16, .12)); }
.partner-holiday-empty strong { margin-top: 8px; color: var(--partner-ink); font-size: 16px; font-weight: 650; }
.partner-holiday-empty p { max-width: 260px; margin: 5px 14px 0; color: var(--partner-muted); font-size: 13px; line-height: 1.5; }
.partner-holiday-row { min-height: 54px; padding: 9px 9px 9px 12px; display: flex; justify-content: space-between; gap: 10px; align-items: center; border: 1px solid var(--partner-line); border-radius: 10px; }
.partner-holiday-row > span { display: grid; gap: 2px; }
.partner-holiday-row strong { font-size: 12px; }
.partner-holiday-row small { color: var(--partner-muted); font-size: 10px; }
.partner-holiday-row button { width: 34px; height: 34px; border: 0; border-radius: 8px; background: #fff0eb; color: #a92c1d; font-size: 19px; cursor: pointer; }
.partner-holiday-add { margin-top: 15px; display: grid; gap: 10px; }
.partner-holiday-add label { display: grid; gap: 5px; color: #4e5651; font-size: 10px; font-weight: 800; }
.partner-holiday-add input { width: 100%; min-height: 42px; padding: 0 11px; border: 1px solid #d6dbd7; border-radius: 8px; background: #fafbf9; color: var(--partner-ink); }
.partner-holiday-add input:focus { border-color: var(--partner-green); outline: 2px solid rgba(64, 172, 27, .14); }
.partner-holiday-add .button { width: 100%; min-height: 42px; }

.partner-menu-view { padding-bottom: 20px; }
.partner-menu-heading { display: none; }
.partner-menu-view .restaurant-detail { display: block; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.partner-menu-view .restaurant-detail-header,
.partner-menu-view .restaurant-detail-tabs { display: none; }
.partner-menu-view .restaurant-tab-panel { padding: 0; background: transparent; }
.partner-menu-view .menu-builder-shell {
  min-height: 0;
  background: transparent;
}
.partner-menu-view .catalog-editor-locked { margin-top: 24px; }
.partner-menu-view .menu-builder-heading { padding-bottom: 15px; }
.partner-menu-view .menu-builder-heading h3 { font-size: clamp(32px, 3.2vw, 40px); letter-spacing: -.04em; }
.partner-menu-view .menu-builder-tabs {
  gap: 34px;
  overflow-x: auto;
  background: transparent;
}
.partner-menu-view .menu-builder-tabs { scrollbar-width: none; }
.partner-menu-view .menu-builder-tabs::-webkit-scrollbar { display: none; }
.partner-menu-view .menu-builder-tab { min-height: 50px; white-space: nowrap; }
.partner-menu-view .menu-builder-tab.is-future { color: #9aa19d; cursor: default; }
.partner-menu-view .menu-builder-tab.is-future:disabled { opacity: 1; }
.partner-menu-view .menu-builder-body {
  padding-top: 17px;
  background: transparent;
}
.partner-menu-view .menu-draft-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; }
.partner-menu-view .menu-draft-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.partner-menu-view .menu-draft-actions .button-secondary { min-height: 40px; padding-inline: 18px; }
.partner-menu-view .menu-publication-scheduled { margin-top: 7px; color: var(--partner-accent-dark); font-weight: 750; }

.catalog-publication-dialog {
  width: min(940px, calc(100vw - 28px));
  max-height: min(920px, calc(100vh - 28px));
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  color: var(--partner-ink);
  background: #fff;
  box-shadow: 0 32px 100px rgba(42, 24, 15, .28);
}
.catalog-publication-dialog[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
.catalog-publication-dialog::backdrop { background: rgba(32, 26, 24, .62); backdrop-filter: blur(4px); }
.publication-dialog-header { padding: 22px 26px 0; border-bottom: 1px solid var(--partner-line); background: linear-gradient(180deg, #fff 0%, #fffaf7 100%); }
.publication-dialog-header > div:first-child { padding-right: 56px; }
.publication-dialog-header h2 { margin: 2px 0 0; font-size: 28px; letter-spacing: -.025em; }
.publication-dialog-header .dialog-close { position: absolute; top: 18px; right: 20px; }
.publication-steps { margin: 20px 0 0; padding: 0; display: flex; gap: 32px; list-style: none; }
.publication-steps li { position: relative; padding: 0 0 16px; display: flex; align-items: center; gap: 9px; color: var(--partner-muted); }
.publication-steps li + li::before { content: ""; position: absolute; top: 16px; right: calc(100% + 9px); width: 14px; height: 1px; background: var(--partner-line); }
.publication-steps li > span { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--partner-line); border-radius: 50%; background: #fff; font-size: 13px; font-weight: 850; }
.publication-steps li.is-current { color: var(--partner-ink); }
.publication-steps li.is-current::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--partner-accent); }
.publication-steps li.is-current > span { border-color: var(--partner-accent); background: var(--partner-accent); color: #fff; }
.publication-steps li.is-complete > span { border-color: var(--partner-success); background: var(--partner-success-soft); color: var(--partner-success-dark); }
.publication-dialog-body { min-height: 0; padding: 24px 26px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.publication-review-intro h3, .publication-dialog-body > h3 { margin: 0 0 5px; font-size: 21px; }
.publication-review-intro p, .publication-step-copy { margin: 0 0 18px; color: var(--partner-muted); }
.publication-loading { min-height: 280px; display: grid; place-items: center; color: var(--partner-muted); font-weight: 750; }
.publication-readiness-warning { margin: 0 0 20px; padding: 15px 17px; border: 1px solid #f2b49c; border-radius: 14px; background: var(--partner-accent-soft); }
.publication-readiness-warning strong { color: var(--partner-accent-dark); }
.publication-readiness-warning ul { margin: 9px 0 0; padding-left: 20px; }
.publication-menu-preview { display: grid; gap: 20px; }
.publication-preview-category { overflow: hidden; border: 1px solid var(--partner-line); border-radius: 17px; background: #fff; box-shadow: var(--partner-shadow-sm); }
.publication-preview-category-heading { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--partner-line); background: #fffaf7; }
.publication-preview-category-heading h3 { margin: 0; font-size: 21px; }
.publication-preview-category-heading span { display: block; color: var(--partner-muted); font-size: 13px; }
.publication-preview-category-heading > strong { min-width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--partner-accent-soft); color: var(--partner-accent-dark); }
.publication-preview-products { display: grid; grid-template-columns: minmax(0, 1fr); }
.publication-preview-product { min-width: 0; padding: 16px; display: grid; grid-template-columns: 144px minmax(0, 1fr); gap: 18px; align-items: start; border-bottom: 1px solid var(--partner-line); }
.publication-preview-product:last-child { border-bottom: 0; }
.publication-preview-media { width: 144px; height: 144px; overflow: hidden; display: grid; place-items: center; align-self: start; border-radius: 13px; background: #f2efec; color: var(--partner-muted); font-size: 12px; text-align: center; }
.publication-preview-media img { width: 100%; height: 100%; object-fit: cover; }
.publication-preview-copy { min-width: 0; }
.publication-preview-title { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, auto); align-items: start; gap: 18px; }
.publication-preview-title > div { min-width: 0; }
.publication-preview-title strong { display: block; overflow-wrap: anywhere; font-size: 16px; line-height: 1.35; }
.publication-preview-title span { display: block; color: var(--partner-muted); font-size: 12px; }
.publication-preview-title b { white-space: nowrap; color: var(--partner-accent-dark); }
.publication-price-breakdown { min-width: 170px; display: grid; gap: 3px; justify-items: end; text-align: right; }
.publication-price-breakdown b { color: var(--partner-accent-dark); white-space: nowrap; }
.publication-price-breakdown small { max-width: 230px; color: var(--partner-muted); font-size: 10px; line-height: 1.4; white-space: normal; }
.publication-preview-copy > p { margin: 7px 0 0; color: var(--partner-muted); font-size: 13px; line-height: 1.45; }
.publication-preview-copy > p.publication-preview-english { color: #8b7d76; font-style: italic; }
.publication-preview-groups { margin-top: 11px; display: grid; gap: 8px; }
.publication-preview-group { padding: 9px 10px; border-radius: 10px; background: #fff8f4; }
.publication-preview-group > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.publication-preview-group small { color: var(--partner-muted); }
.publication-preview-choices { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 5px; }
.publication-preview-choices span { padding: 5px 8px; border: 1px solid var(--partner-line); border-radius: 10px; background: #fff; font-size: 11px; }
.publication-preview-choice { display: grid; gap: 2px; }
.publication-preview-choice strong,
.publication-preview-choice small { display: block; }
.publication-preview-choice small { color: var(--partner-muted); font-size: 10px; }
.publication-preview-empty { padding: 50px 20px; text-align: center; color: var(--partner-muted); }
.publication-mode-choices { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.publication-mode-card { min-height: 126px; padding: 18px; display: flex; align-items: flex-start; gap: 12px; border: 1px solid var(--partner-line); border-radius: 16px; background: #fff; cursor: pointer; }
.publication-mode-card.is-selected { border-color: var(--partner-accent); background: var(--partner-accent-soft); box-shadow: 0 0 0 2px rgba(253, 85, 22, .1); }
.publication-mode-card input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--partner-accent); }
.publication-mode-card strong { display: block; font-size: 17px; }
.publication-mode-card small { display: block; margin-top: 6px; color: var(--partner-muted); line-height: 1.45; }
.publication-schedule-field { grid-column: 1 / -1; padding: 16px; display: grid; gap: 7px; border: 1px solid var(--partner-line); border-radius: 14px; }
.publication-schedule-field > span { font-size: 13px; font-weight: 800; }
.publication-schedule-field input { min-height: 48px; padding: 10px 12px; border: 1px solid var(--partner-line); border-radius: 10px; background: #fff; color: var(--partner-ink); }
.publication-schedule-field input:disabled { opacity: .55; background: #f2efec; }
.publication-private-name-field { margin-top: 18px; padding: 17px; display: grid; gap: 7px; border: 1px solid var(--partner-line); border-radius: 14px; background: #fffaf7; }
.publication-private-name-field > span { font-size: 14px; font-weight: 900; }
.publication-private-name-field > small { color: var(--partner-muted); line-height: 1.45; }
.publication-private-name-field input { min-height: 50px; padding: 11px 13px; border: 1px solid #d9cdc6; border-radius: 10px; background: #fff; color: var(--partner-ink); font: inherit; }
.publication-private-name-field input:focus { border-color: var(--partner-accent); outline: 3px solid rgba(253, 85, 22, .12); }
.publication-submit-error { margin-top: 14px; padding: 11px 13px; border-radius: 10px; background: #fff0ed; color: #a8290d; font-weight: 700; }
.publication-dialog-actions { position: relative; z-index: 2; min-height: 76px; padding: 14px 26px 16px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--partner-line); background: #fff; box-shadow: 0 -8px 24px rgba(42, 24, 17, .045); }
.publication-dialog-actions .button { min-width: 120px; }
.partner-menu-view .menu-builder-toolbar { grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); align-items: center; padding: 8px 0 20px; }
.partner-menu-view .menu-builder-search input {
  border-color: #e5d6ce;
  background: var(--partner-surface);
  box-shadow: 0 5px 14px rgba(92, 55, 36, .035);
}
.partner-menu-view .menu-future-filter { width: 100%; min-height: 44px; padding: 0 14px; border: 1px solid var(--partner-line); border-radius: 10px; background: var(--partner-soft); color: var(--partner-muted); text-align: left; font-weight: 700; }
.partner-menu-view .menu-future-filter:disabled { cursor: default; opacity: 1; }
.partner-menu-view .menu-builder-actions { grid-column: 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.partner-menu-view .menu-builder-actions .button { min-height: 40px; border-color: #e5d6ce; background: var(--partner-surface); color: var(--partner-ink); box-shadow: 0 5px 14px rgba(92, 55, 36, .035); }
.partner-menu-view .menu-builder-actions .button:hover,
.partner-menu-view .menu-builder-actions .button:focus-visible { border-color: var(--partner-accent); background: var(--partner-accent-soft); }
.partner-menu-view .menu-category-list { gap: 9px; }
.partner-menu-view .menu-category-card,
.partner-menu-view .modifier-workspace-card {
  border-color: #e5d6ce;
  border-radius: 14px;
  background: var(--partner-surface);
  box-shadow: 0 8px 24px rgba(88, 51, 34, .045);
}
.partner-menu-view .menu-category-header { min-height: 64px; padding: 8px 13px; }
.partner-menu-view .menu-category-identity h4 { font-size: 14px; font-weight: 700; }
.partner-menu-view .menu-catalog-layout { grid-template-columns: minmax(0, 1fr) minmax(250px, 290px); gap: 22px; align-items: start; }
.partner-menu-view .menu-item-photo { width: 50px; height: 50px; }
.partner-menu-view .menu-item-price { min-width: 0; }
.partner-menu-view .menu-tax-breakdown { justify-items: end; }
.partner-menu-view .menu-tax-breakdown small { font-size: 12px; white-space: normal; }
.partner-menu-view .menu-item-actions { min-width: 80px; flex-wrap: nowrap; gap: 2px; }
.partner-menu-view .menu-draft-aside { padding-top: 0; gap: 10px; }
.partner-menu-view .menu-draft-aside h4:not(:first-child) { margin-top: 21px; }
.partner-menu-view .menu-draft-aside-current { line-height: 1.4; }
.partner-menu-view .menu-draft-aside-empty { padding: 11px 12px; border: 1px dashed var(--partner-line); border-radius: 9px; background: #fafbf9; }
.menu-publication-archive { position: sticky; top: 24px; padding: 18px; display: grid; gap: 14px; border: 1px solid #ead9cf; border-radius: 16px; background: linear-gradient(160deg, var(--partner-surface) 0%, #fff3eb 100%); box-shadow: 0 12px 35px rgba(75, 43, 26, .08); }
.menu-publication-archive-heading { display: grid; gap: 4px; }
.menu-publication-archive-heading h4 { margin: 0; font-size: 20px; }
.menu-publication-archive-heading p:last-child { margin: 0; color: var(--partner-muted); font-size: 12px; line-height: 1.45; }
.menu-publication-archive h5 { margin: 5px 0 0; font-size: 15px; }
.menu-publication-current { padding: 14px; display: grid; gap: 4px; border: 1px solid #ffb797; border-radius: 12px; background: #fff0e8; }
.menu-publication-current strong { font-size: 15px; overflow-wrap: anywhere; }
.menu-publication-current time,
.menu-publication-archive-entry time { color: var(--partner-muted); font-size: 12px; }
.menu-publication-current small,
.menu-publication-archive-entry small { color: #8a6858; font-size: 11px; }
.menu-publication-status { color: var(--partner-accent); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.menu-publication-archive-list { display: grid; gap: 9px; max-height: 420px; overflow: auto; padding-right: 2px; }
.menu-publication-archive-entry { padding: 12px; display: grid; gap: 10px; border: 1px solid var(--partner-line); border-radius: 12px; background: var(--partner-surface); }
.menu-publication-archive-entry > div { min-width: 0; display: grid; gap: 3px; }
.menu-publication-archive-entry strong { overflow-wrap: anywhere; font-size: 14px; }
.menu-publication-restore { width: 100%; min-height: 38px; padding: 8px 10px; font-size: 12px; }
.menu-publication-archive-empty { margin: 0; padding: 12px; border: 1px dashed var(--partner-line); border-radius: 10px; color: var(--partner-muted); font-size: 12px; line-height: 1.45; }
.menu-publication-archive-error { padding: 12px; display: grid; gap: 9px; border-radius: 10px; background: #fff0ed; color: #a8290d; }
.menu-publication-archive-error p { margin: 0; font-size: 12px; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 100; max-width: min(420px, calc(100vw - 48px)); padding: 14px 18px; border-radius: 12px; background: var(--partner-ink); color: #fff; box-shadow: 0 12px 36px rgba(0, 0, 0, .2); }
.toast.is-error { background: #9d2518; }

@media (max-width: 1120px) {
  .partner-kpi-grid, .partner-readiness-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-operation-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .partner-smart-promotions { grid-template-columns: 1fr; }
  .partner-menu-view .menu-builder-toolbar { grid-template-columns: minmax(240px, 1fr) auto; }
  .partner-hours-layout { grid-template-columns: minmax(360px, 1.1fr) minmax(280px, .9fr); }
  .partner-hours-holidays { position: static; grid-column: 2; }
  .partner-settings-grid { grid-template-columns: 1fr; }
  .partner-menu-view .menu-catalog-layout { grid-template-columns: minmax(0, 1fr); }
  .menu-publication-archive { position: static; }
  .menu-publication-archive-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
}

@media (max-width: 900px) {
  .partner-mobile-header { position: sticky; top: 0; z-index: 35; min-height: 62px; padding: 0 16px; display: grid; grid-template-columns: 44px auto 1fr; gap: 11px; align-items: center; border-bottom: 1px solid var(--partner-line); background: #fff; }
  .partner-menu-toggle { width: 42px; height: 42px; border: 1px solid var(--partner-line); border-radius: 10px; background: #fff; font-size: 20px; cursor: pointer; }
  .partner-mobile-brand { display: block; width: 108px; }
  .partner-mobile-brand img { display: block; width: 100%; height: auto; }
  .partner-mobile-section { justify-self: end; color: var(--partner-muted); font-size: 12px; font-weight: 800; }
  .partner-sidebar { width: min(300px, calc(100vw - 42px)); visibility: hidden; transform: translateX(-105%); transition: transform .2s ease, visibility 0s linear .2s; box-shadow: 18px 0 50px rgba(23, 26, 31, .16); }
  .partner-sidebar.is-open { visibility: visible; transform: translateX(0); transition-delay: 0s; }
  .partner-sidebar-backdrop { position: fixed; inset: 0; z-index: 38; display: block; width: 100%; border: 0; background: rgba(23, 26, 31, .36); }
  .partner-sidebar-backdrop[hidden] { display: none; }
  .partner-portal-main { margin-left: 0; padding: 26px 18px 60px; }
}

@media (max-width: 700px) {
  .partner-login-topbar { padding: 0 16px; }
  .partner-login-card { padding: 26px 20px; }
  .partner-page-header, .partner-readiness-heading { align-items: stretch; flex-direction: column; }
  .partner-page-header .button, .partner-readiness-heading .button { width: 100%; }
  .partner-kpi-grid, .partner-insight-grid, .partner-readiness-grid, .partner-opportunity-grid { grid-template-columns: 1fr; }
  .partner-operation-kpis, .partner-operation-summary { grid-template-columns: 1fr; }
  .partner-chart-card { padding: 17px; }
  .partner-chart-empty { height: 190px; }
  .partner-performance-panel .partner-chart-empty { height: 240px; }
  .partner-performance-tabs button { min-width: 0; flex: 1; }
  .partner-date-picker { width: 100%; }
  .partner-period-trigger { width: 100%; justify-content: flex-start; }
  .partner-period-trigger-label { flex: 1; text-align: left; }
  .partner-period-popover { position: fixed; top: 84px; right: 12px; left: 12px; width: auto; max-height: calc(100vh - 100px); overflow-y: auto; }
  .partner-insight-grid article > div { gap: 12px; }
  .partner-readiness-card { padding: 19px; }
  .partner-opportunity-grid article { grid-template-columns: 44px 1fr; padding: 18px; }
  .partner-opportunity-icon { width: 44px; height: 44px; border-radius: 12px; }
  .partner-menu-view { width: 100%; }
  .partner-performance-view { width: 100%; }
  .partner-promotions-view { width: 100%; }
  .partner-order-history-view { width: 100%; }
  .partner-ratings-view { width: 100%; }
  .partner-refunds-view { width: 100%; }
  .partner-reports-view { width: 100%; }
  .partner-hours-view { width: 100%; }
  .partner-settings-view { width: 100%; }
  .publication-mode-choices { grid-template-columns: 1fr; }
  .menu-publication-archive-list { grid-template-columns: 1fr; }
  .partner-promotions-empty { grid-template-columns: 46px minmax(0, 1fr); padding: 18px; }
  .partner-promotions-empty-icon { width: 46px; height: 46px; border-radius: 13px; }
  .partner-promotions-empty .partner-coming-soon { grid-column: 2; justify-self: start; }
  .partner-smart-card { min-height: 0; padding: 20px; grid-template-columns: minmax(0, 1fr) 58px; }
  .partner-smart-illustration { width: 58px; height: 58px; font-size: 26px; }
  .partner-promotion-options { grid-template-columns: 1fr; }
  .partner-promotion-options article:last-child { grid-column: auto; }
  .partner-promotion-options article { min-height: 0; grid-template-columns: minmax(0, 1fr) 48px; padding: 19px; }
  .partner-promotion-options article > span { width: 48px; height: 48px; border-radius: 14px; font-size: 21px; }
  .partner-order-controls, .partner-order-filters { align-items: stretch; flex-direction: column; }
  .partner-order-filters button { width: 100%; text-align: left; }
  .partner-order-income { margin-top: 22px; }
  .partner-order-empty-row td { height: 240px; }
  .partner-ratings-controls { align-items: stretch; flex-direction: column; }
  .partner-ratings-controls .partner-date-picker, .partner-rating-select { width: 100%; }
  .partner-rating-select select { width: 100%; }
  .partner-rating-summary { margin-top: 22px; padding: 18px; grid-template-columns: 1fr; }
  .partner-rating-summary > small, .partner-rating-summary > p { grid-column: 1; }
  .partner-rating-summary-score strong { font-size: 34px; }
  .partner-ratings-empty-row td { height: 240px; }
  .partner-refunds-controls { align-items: stretch; flex-direction: column; }
  .partner-refunds-controls .partner-date-picker, .partner-refunds-disputed { width: 100%; }
  .partner-refunds-disputed { text-align: left; }
  .partner-refunds-empty-row td { height: 240px; }
  .partner-reports-tabs button { min-width: max-content; flex: 0 0 auto; }
  .partner-report-builder-heading { flex-direction: column; }
  .partner-report-form-row, .partner-invoice-controls { grid-template-columns: 1fr; }
  .partner-report-downloads { display: grid; grid-template-columns: 1fr; }
  .partner-report-downloads button { width: 100%; }
  .partner-invoices-empty-row td, .partner-weekly-empty { height: 240px; min-height: 240px; }
  .partner-hours-layout { grid-template-columns: 1fr; }
  .partner-hours-preview, .partner-hours-holidays { position: static; grid-column: auto; }
  .partner-hours-preview { order: -1; }
  .partner-hours-interval { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 38px; }
  .partner-settings-section { padding: 19px; }
  .partner-settings-section-heading { align-items: stretch; flex-direction: column; }
  .partner-settings-section-heading > div { align-items: flex-start; }
  .partner-settings-action { width: 100%; }
  .partner-settings-details { grid-template-columns: 1fr; }
  .partner-settings-form { padding: 19px; }
  .partner-settings-form-grid { grid-template-columns: 1fr; }
  .partner-settings-form-grid .is-wide { grid-column: auto; }
  .partner-settings-form > footer { display: grid; grid-template-columns: 1fr 1fr; }
  .partner-settings-form > footer .button { min-width: 0; width: 100%; }
  .partner-settings-empty { grid-template-columns: 46px minmax(0, 1fr); }
  .partner-settings-empty .partner-coming-soon { grid-column: 2; justify-self: start; }
  .partner-menu-view .menu-draft-header { grid-template-columns: minmax(0, 1fr) auto; }
  .partner-menu-view .menu-draft-actions { grid-column: 1 / -1; width: 100%; margin-left: 0; }
  .partner-menu-view .menu-draft-actions .button-primary { flex: 1; }
  .partner-menu-view .menu-builder-toolbar { grid-template-columns: 1fr; }
  .partner-menu-view .menu-builder-toolbar > * { grid-column: 1; width: 100%; }
  .partner-menu-view .menu-builder-actions { display: grid; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-sidebar { transition: none; }
  .partner-venue-select, .partner-venue-select-chevron { transition: none; }
  .partner-venue-select:hover:not([aria-disabled="true"]) { transform: none; }
}

/* Nomi Food partner portal theme
   Orange drives navigation and actions. Green is reserved for true success states. */
body.partner-panel-page {
  --green: var(--partner-accent);
  --green-dark: var(--partner-accent-dark);
  --green-pale: var(--partner-accent-soft);
}

body.partner-panel-page :where(button, input, select, textarea) {
  font-family: inherit;
}

body.partner-panel-page :where(button, a, input, select, textarea):focus-visible {
  outline-color: rgba(201, 56, 6, .42);
}

.partner-login-topbar,
.partner-mobile-header {
  background: rgba(255, 253, 250, .96);
  border-color: var(--partner-line);
  backdrop-filter: blur(16px);
}

.partner-login {
  background:
    radial-gradient(circle at 12% 10%, rgba(253, 85, 22, .13), transparent 34%),
    linear-gradient(180deg, #fff8f3, #fffdfa);
}

.partner-login-card {
  border-color: rgba(224, 198, 185, .8);
  background: rgba(255, 253, 250, .96);
  box-shadow: var(--partner-shadow-md);
}

.partner-sidebar {
  width: 252px;
  padding: 28px 16px 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .78), transparent 190px),
    var(--partner-canvas);
  border-right: 1px solid #edd8ce;
  box-shadow: 14px 0 44px rgba(93, 55, 36, .055);
}

.partner-sidebar-brand {
  padding: 0 8px 26px;
}

.partner-sidebar-brand small {
  font-size: 11px;
  letter-spacing: .075em;
}

.partner-venue-card {
  margin-bottom: 20px;
  padding: 14px;
  border: 1px solid #f0d9cd;
  border-radius: 17px;
  background: linear-gradient(145deg, #fffdfa, #fff0e8);
  box-shadow: 0 9px 25px rgba(111, 65, 41, .065);
}

.partner-venue-card strong {
  font-size: 15px;
}

.partner-sidebar-nav {
  gap: 6px;
}

.partner-sidebar-nav button {
  min-height: 48px;
  padding: 11px 12px;
  border-radius: 13px;
  font-size: 15px;
  font-weight: 650;
}

.partner-sidebar-nav button > span {
  color: #786a63;
  font-size: 19px;
}

.partner-sidebar-nav button small {
  background: #f3eae5;
  color: #796b64;
  font-size: 10px;
}

.partner-sidebar-nav button:hover:not(:disabled) {
  background: #fff0e8;
}

.partner-sidebar-nav button.is-active {
  background: var(--partner-ink);
  color: #fff;
  box-shadow: 0 10px 22px rgba(32, 26, 24, .16), inset 4px 0 0 var(--partner-accent);
}

.partner-sidebar-nav button.is-active:hover:not(:disabled),
.partner-sidebar-nav button.is-active:focus-visible {
  background: var(--partner-ink);
  color: #fff;
}

.partner-sidebar-nav button.is-active > span {
  color: #ff7c43;
}

.partner-sidebar-nav button.is-active small {
  background: rgba(255, 255, 255, .13);
  color: #fff6f1;
}

.partner-account {
  padding-top: 20px;
  border-color: #eadbd4;
}

.partner-account strong,
.partner-account button {
  font-size: 13px;
}

.partner-account small {
  font-size: 12px;
}

.partner-portal-main {
  margin-left: 252px;
  padding: 42px clamp(28px, 3.6vw, 58px) 92px;
  background:
    radial-gradient(circle at 92% 1%, rgba(253, 85, 22, .105), transparent 25rem),
    linear-gradient(180deg, #fff9f5 0, #fffdfa 250px, #fffdfa 100%);
}

.partner-home-view,
.partner-menu-view,
.partner-performance-view,
.partner-promotions-view,
.partner-order-history-view,
.partner-ratings-view,
.partner-refunds-view,
.partner-reports-view,
.partner-hours-view,
.partner-settings-view {
  width: min(1240px, 100%);
}

.partner-page-header {
  margin-bottom: 24px;
}

.partner-page-header h1,
.partner-menu-heading h1 {
  margin-top: 2px;
  font-size: clamp(36px, 4.2vw, 50px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.partner-page-header p:not(.eyebrow),
.partner-menu-heading p:not(.eyebrow) {
  max-width: 760px;
  font-size: 16px;
  line-height: 1.6;
}

.partner-panel-page .eyebrow {
  color: var(--partner-accent-dark);
  font-size: 12px;
  letter-spacing: .12em;
}

.partner-period-trigger,
.partner-order-filters button,
.partner-rating-select,
.partner-refunds-disputed {
  min-height: 46px;
  border-color: #e1d3cc;
  border-radius: 13px;
  background: var(--partner-surface);
  font-size: 14px;
  box-shadow: 0 5px 14px rgba(92, 55, 36, .035);
}

.partner-period-trigger:hover,
.partner-period-trigger:focus-visible,
.partner-period-trigger[aria-expanded="true"],
.partner-refunds-disputed:hover,
.partner-refunds-disputed:focus-visible {
  border-color: var(--partner-accent);
  box-shadow: 0 0 0 4px rgba(253, 85, 22, .12);
}

.partner-period-calendar-icon {
  color: var(--partner-accent-dark);
}

.partner-period-popover {
  width: 380px;
  padding: 20px;
  border-color: #ecdcd4;
  border-radius: 20px;
  background: var(--partner-surface);
  box-shadow: 0 24px 65px rgba(73, 41, 26, .2);
}

.partner-period-calendar-header strong {
  font-size: 20px;
}

.partner-period-weekdays span,
.partner-period-day,
.partner-period-presets button,
.partner-period-compare {
  font-size: 14px;
}

.partner-period-day:hover:not(:disabled),
.partner-period-day:focus-visible {
  background: var(--partner-accent-soft);
  outline-color: rgba(253, 85, 22, .34);
}

.partner-period-day.is-in-range:not(.is-range-start):not(.is-range-end),
.partner-period-day.is-range-start:not(.is-range-end)::after,
.partner-period-day.is-range-end:not(.is-range-start)::before {
  background: #ffe0d2;
}

.partner-period-day.is-range-start,
.partner-period-day.is-range-end,
.partner-period-presets button:hover,
.partner-period-presets button:focus-visible,
.partner-period-presets button.is-active,
.partner-period-compare[aria-checked="true"] .partner-period-switch {
  background: var(--partner-accent);
  color: var(--partner-ink);
}

.partner-kpi,
.partner-chart-card,
.partner-insight-grid article,
.partner-opportunity-grid article,
.partner-promotion-options article,
.partner-order-table-shell,
.partner-ratings-table-shell,
.partner-refunds-table-shell,
.partner-invoices-table-shell,
.partner-weekly-empty,
.partner-hours-day,
.partner-hours-preview,
.partner-hours-holidays,
.partner-settings-section {
  border-color: var(--partner-line);
  border-radius: 18px;
  background: var(--partner-surface);
  box-shadow: var(--partner-shadow-sm);
}

.partner-kpi {
  min-height: 126px;
  padding: 20px;
}

.partner-kpi.is-selected {
  padding: 19px;
  border-color: var(--partner-accent);
  box-shadow: 0 0 0 1px var(--partner-accent), 0 14px 32px rgba(253, 85, 22, .12);
}

.partner-kpi > span,
.partner-insight-grid article > div span,
.partner-readiness-grid span,
.partner-operation-summary span {
  font-size: 14px;
}

.partner-kpi strong {
  font-size: 34px;
}

.partner-kpi small,
.partner-readiness-grid small {
  font-size: 13px;
}

.partner-chart-card {
  padding: 26px;
}

.partner-chart-card h2 {
  font-size: 21px;
}

.partner-chart-card > div:first-child span,
.partner-chart-empty > span {
  font-size: 13px;
}

.partner-chart-grid::after {
  border-top-color: #f3a17e;
  background: linear-gradient(180deg, rgba(253, 85, 22, .12), transparent);
}

.partner-section-heading {
  margin-top: 38px;
}

.partner-section-heading h2,
.partner-readiness-heading h2 {
  font-size: 28px;
  letter-spacing: -.025em;
}

.partner-coming-soon {
  background: #f3eae5;
  color: #756860;
  font-size: 11px;
}

.partner-insight-grid article,
.partner-opportunity-grid article {
  padding: 24px;
}

.partner-insight-grid h3,
.partner-opportunity-grid h3 {
  font-size: 18px;
}

.partner-opportunity-grid p,
.partner-readiness-heading p:not(.eyebrow),
.partner-item-sales .partner-section-heading p:not(.eyebrow),
.partner-promotions-empty p,
.partner-promotion-options p,
.partner-promotion-history .partner-section-heading p {
  font-size: 14px;
}

.partner-opportunity-grid button,
.partner-opportunity-grid article > div > span {
  color: var(--partner-accent-dark);
}

.partner-opportunity-icon,
.partner-promotions-empty-icon,
.partner-order-empty-icon,
.partner-invoices-empty-icon,
.partner-weekly-empty > span,
.partner-hours-loading > span,
.partner-settings-icon {
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
}

.partner-readiness-card {
  border-color: #f0c3af;
  border-radius: 20px;
  background: linear-gradient(135deg, #fffdfa, var(--partner-accent-soft));
  box-shadow: var(--partner-shadow-sm);
}

.partner-readiness-grid > div {
  border-color: #f1d5c8;
  border-radius: 15px;
  background: rgba(255, 255, 255, .78);
}

.partner-performance-tabs,
.partner-reports-tabs {
  gap: 12px;
}

.partner-performance-tabs button,
.partner-reports-tabs button {
  min-height: 52px;
  padding-inline: 16px;
  font-size: 15px;
}

.partner-performance-tabs button[aria-selected="true"],
.partner-reports-tabs button[aria-selected="true"] {
  border-bottom-color: var(--partner-accent);
}

.partner-item-sales th,
.partner-order-table th,
.partner-ratings-table th,
.partner-refunds-table th,
.partner-promotion-history th,
.partner-invoices-table th {
  background: #fff7f2;
  color: #5f514b;
  font-size: 12px;
  text-transform: none;
  letter-spacing: 0;
}

.partner-item-sales td,
.partner-order-table td,
.partner-ratings-table td,
.partner-refunds-table td,
.partner-promotion-history td,
.partner-invoices-table td {
  font-size: 14px;
}

.partner-smart-promotions {
  gap: 18px;
}

.partner-smart-card {
  min-height: 238px;
  padding: 28px;
  border: 1px solid #332b27;
  border-radius: 22px;
  background: linear-gradient(145deg, #332b27, #201a18);
  box-shadow: 0 20px 44px rgba(32, 26, 24, .18);
}

.partner-smart-card.is-wide {
  border-color: #ec4a0f;
  background: linear-gradient(125deg, #ff7b41 0%, var(--partner-accent) 52%, #e63e08 100%);
  color: var(--partner-ink);
  box-shadow: 0 20px 44px rgba(253, 85, 22, .22);
}

.partner-smart-card h3 {
  font-size: 23px;
}

.partner-smart-badge {
  font-size: 11px;
}

.partner-smart-card ul {
  font-size: 14px;
}

.partner-smart-card button {
  min-height: 44px;
  background: var(--partner-accent);
  color: var(--partner-ink);
  font-size: 14px;
}

.partner-smart-card.is-wide button {
  background: var(--partner-ink);
  color: #fff;
}

.partner-smart-illustration {
  border-radius: 24px;
  transform: rotate(5deg);
}

.partner-promotion-options article {
  min-height: 188px;
}

.partner-option-tag {
  color: var(--partner-accent-dark);
  font-size: 11px;
}

.partner-order-filters button[aria-pressed="true"],
.partner-refunds-disputed[aria-pressed="true"] {
  border-color: var(--partner-accent);
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
  box-shadow: inset 0 0 0 1px var(--partner-accent);
}

.partner-rating-select select {
  min-height: 44px;
  font-size: 14px;
}

/* Rating filter: branded native control, with a custom picker where supported. */
.partner-rating-select:has(#ratingsScore) { padding: 0; border: 0; background: transparent; }
#ratingsScore { min-width: 190px; min-height: 46px; padding: 10px 14px; border: 1px solid var(--partner-line); border-radius: 13px; background: #fff; color: var(--partner-ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
#ratingsScore:hover { border-color: var(--partner-accent); }
#ratingsScore:focus-visible { outline: 2px solid var(--partner-accent); outline-offset: 3px; }
@supports (appearance: base-select) {
  #ratingsScore, #ratingsScore::picker(select) { appearance: base-select; }
  #ratingsScore { display: flex; align-items: center; gap: 18px; }
  #ratingsScore:open { border-color: var(--partner-accent); }
  #ratingsScore::picker-icon { color: var(--partner-muted); margin-inline-start: auto; }
  #ratingsScore:open::picker-icon { rotate: 180deg; }
  #ratingsScore::picker(select) { box-sizing: border-box; inline-size: max-content; min-inline-size: anchor-size(width); max-inline-size: calc(100vw - 24px); max-block-size: min(380px, 60dvh); margin-block: 7px; padding: 6px; border: 1px solid var(--partner-line); border-radius: 15px; background: #fff; color: var(--partner-ink); box-shadow: 0 14px 38px rgba(60, 36, 25, .16); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  #ratingsScore option { display: flex; align-items: center; gap: 24px; min-block-size: 44px; box-sizing: border-box; padding: 10px 12px; border-radius: 9px; color: var(--partner-ink); background: transparent; font: inherit; font-size: 14px; font-weight: 500; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
  #ratingsScore option:checked { background: var(--partner-success-soft); font-weight: 700; box-shadow: inset 3px 0 0 var(--partner-success); }
  #ratingsScore option:is(:hover, :focus-visible):not(:disabled) { background: var(--partner-accent-soft); outline: 1px solid var(--partner-line); outline-offset: -1px; }
  #ratingsScore option::checkmark { order: 1; margin-inline-start: auto; color: var(--partner-success-dark); }
  #ratingsScore option:disabled { color: var(--partner-muted); opacity: .65; cursor: not-allowed; }
}

.partner-order-income > span,
.partner-rating-summary > span,
.partner-refunds-range {
  font-size: 13px;
}

.partner-report-builder-heading h2 {
  font-size: 25px;
}

.partner-report-builder-heading p {
  font-size: 15px;
}

.partner-report-presets button {
  min-height: 42px;
  font-size: 14px;
}

.partner-report-presets button[aria-pressed="true"],
.partner-report-downloads button,
.partner-weekly-download {
  border-color: var(--partner-accent);
  background: var(--partner-accent);
  color: var(--partner-ink);
}

.partner-report-form-row label,
.partner-invoice-controls > label,
.partner-settings-select > span,
.partner-settings-details dt,
.partner-settings-form-grid label > span,
.partner-settings-readonly > span {
  font-size: 13px;
}

.partner-report-form-row input,
.partner-invoice-controls input,
.partner-settings-select select,
.partner-settings-form-grid input {
  border-color: #e3d6cf;
  border-radius: 12px;
  background: var(--partner-surface);
  font-size: 15px;
}

.partner-report-form-row input:focus,
.partner-invoice-controls input:focus,
.partner-settings-select select:focus,
.partner-settings-form-grid input:focus,
.partner-hours-interval input:focus,
.partner-hours-interval select:focus,
.partner-holiday-add input:focus {
  border-color: var(--partner-accent);
  outline-color: rgba(253, 85, 22, .18);
}

.partner-hours-layout {
  gap: 22px;
}

.partner-hours-days {
  gap: 17px;
}

.partner-hours-day {
  padding: 21px;
}

.partner-hours-day-heading h2,
.partner-hours-aside-heading h2 {
  font-size: 19px;
}

.partner-hours-day-heading span {
  background: var(--partner-success-soft);
  color: var(--partner-success-dark);
  font-size: 11px;
}

.partner-hours-day-heading span.is-closed {
  background: #f1ece9;
  color: #756b66;
}

.partner-hours-interval label,
.partner-holiday-add label {
  font-size: 12px;
}

.partner-hours-interval input,
.partner-hours-interval select,
.partner-holiday-add input {
  min-height: 48px;
  border-color: #e3d6cf;
  border-radius: 11px;
  background: var(--partner-surface);
  font-size: 14px;
}

.partner-hours-add {
  min-height: 46px;
  background: #f6ede8;
  font-size: 15px;
}

.partner-hours-add:hover,
.partner-hours-add:focus-visible {
  background: #ffe1d3;
}

.partner-hours-preview,
.partner-hours-holidays {
  padding: 21px;
}

.partner-hours-aside-heading p,
.partner-settings-help,
.partner-settings-section-heading p,
.partner-settings-note p,
.partner-settings-form > header p:last-child {
  font-size: 13px;
}

.partner-hours-aside-heading > span {
  font-size: 10px;
}

.partner-hours-preview-list span,
.partner-hours-preview-list strong {
  font-size: 14px;
}

.partner-settings-grid,
.partner-settings-column {
  gap: 24px;
}

.partner-settings-section {
  padding: 28px;
}

.partner-settings-section-heading h2 {
  font-size: 23px;
}

.partner-settings-action {
  min-height: 42px;
  padding-inline: 16px;
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
  font-size: 14px;
}

.partner-settings-action:hover,
.partner-settings-action:focus-visible {
  background: #ffd9c8;
}

.partner-settings-details dd,
.partner-account-summary strong {
  font-size: 16px;
}

.partner-settings-status {
  background: var(--partner-success-soft);
  color: var(--partner-success-dark);
  font-size: 11px;
}

.partner-settings-form > footer .button-primary {
  border-color: var(--partner-accent);
  background: var(--partner-accent);
  color: var(--partner-ink);
}

.partner-settings-form > footer .button-primary:hover:not(:disabled),
.partner-settings-form > footer .button-primary:focus-visible {
  background: #e84a0e;
}

.partner-account-avatar {
  background: var(--partner-accent);
  color: var(--partner-ink);
}

.partner-settings-security {
  border-color: #f0cfbf;
  background: linear-gradient(135deg, #fffdfa, var(--partner-accent-soft));
}

.partner-settings-security li {
  font-size: 14px;
}

.partner-settings-security li::before {
  color: var(--partner-success-dark);
}

.partner-menu-view .menu-builder-heading h3 {
  font-size: clamp(36px, 3.5vw, 46px);
}

.partner-menu-view .menu-builder-tab {
  font-size: 15px;
}

.partner-menu-view .menu-builder-tab[aria-pressed="true"] {
  border-bottom-color: var(--partner-accent);
}

.partner-menu-view .menu-future-filter,
.partner-menu-view .menu-builder-actions .button {
  border-color: #eadbd4;
  background: #fff5ef;
  font-size: 14px;
}

.partner-menu-view .menu-category-card {
  border-color: #e8d9d2;
  border-radius: 15px;
  background: var(--partner-surface);
  box-shadow: 0 7px 22px rgba(88, 51, 34, .055);
}

.partner-menu-view .menu-category-header {
  min-height: 72px;
  padding: 10px 16px;
}

.partner-menu-view .menu-category-identity h4 {
  font-size: 16px;
}

.partner-menu-view .menu-item-row {
  min-height: 72px;
}

.partner-menu-view .menu-draft-aside-current {
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
}

.partner-panel-page .status-approved,
.partner-panel-page .menu-item-photo.has-reference {
  background: var(--partner-success-soft);
  color: var(--partner-success-dark);
}

@media (max-width: 900px) {
  .partner-sidebar {
    width: min(318px, calc(100vw - 34px));
  }

  .partner-portal-main {
    margin-left: 0;
    padding: 30px 20px 70px;
  }

  .partner-mobile-header {
    min-height: 68px;
  }
}

/* Restaurant analytics: real order aggregates, responsive charts and explicit data states. */
.partner-performance-toolbar {
  min-height: 48px;
  margin-bottom: 18px;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
}

.partner-performance-data-window {
  margin: 0;
  color: var(--partner-muted);
  font-size: 13px;
  font-weight: 600;
}

.partner-analytics-loading {
  min-height: 330px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  border: 1px solid var(--partner-line);
  border-radius: 20px;
  background: rgba(255, 255, 255, .72);
  color: var(--partner-muted);
}

.partner-analytics-loading[hidden],
.partner-analytics-error[hidden],
#performanceAnalyticsContent[hidden] {
  display: none;
}

.partner-analytics-error {
  margin: 18px 0;
  padding: 22px;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  border-radius: 18px;
}

.partner-analytics-error p {
  margin: 5px 0 0;
}

.partner-performance-view.is-refreshing #performanceAnalyticsContent {
  opacity: .58;
  pointer-events: none;
  transition: opacity .16s ease;
}

.partner-analytics-kpis {
  grid-template-columns: repeat(auto-fit, minmax(178px, 1fr));
}

.partner-analytics-kpis .partner-kpi {
  min-width: 0;
}

.partner-analytics-kpis .partner-kpi strong {
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.partner-analytics-kpis .partner-kpi small.is-positive { color: #147848; }
.partner-analytics-kpis .partner-kpi small.is-negative { color: #b33b2f; }
.partner-analytics-kpis .partner-kpi small.is-neutral { color: #71665f; }

.partner-performance-chart > div:first-child > div p {
  margin: 4px 0 0;
  color: var(--partner-muted);
  font-size: 13px;
}

.partner-analytics-chart {
  position: relative;
  min-height: 320px;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 248, 244, .65), rgba(255, 255, 255, .2));
}

.partner-analytics-chart svg {
  width: 100%;
  height: 320px;
  display: block;
  overflow: visible;
}

.partner-home-sales-chart,
.partner-home-sales-chart svg,
.partner-home-sales-chart .partner-analytics-chart-empty {
  min-height: 250px;
  height: 250px;
}

.partner-analytics-gridline {
  stroke: #eadfd9;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.partner-analytics-axis-label {
  fill: #786c65;
  font: 600 11px Rubik, sans-serif;
}

.partner-analytics-area { vector-effect: non-scaling-stroke; }
.partner-analytics-line { stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }

.partner-analytics-explorer {
  position: absolute;
  z-index: 1;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: crosshair;
  touch-action: pan-y;
}
.partner-analytics-explorer:hover,
.partner-analytics-explorer:active { background: transparent; }
.partner-analytics-explorer:focus-visible { outline: 2px solid #fd5516; outline-offset: 3px; }
.partner-analytics-guide { stroke: #fd5516; stroke-width: 1; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.partner-analytics-tooltip {
  position: absolute;
  z-index: 2;
  top: 10px;
  width: 240px;
  max-width: calc(100% - 16px);
  padding: 12px 14px;
  display: grid;
  gap: 6px;
  border: 1px solid var(--partner-line);
  border-radius: 12px;
  background: #fff;
  color: var(--partner-ink);
  box-shadow: 0 6px 22px rgba(48, 29, 19, .14);
  pointer-events: none;
  font-size: 14px;
  line-height: 1.4;
}
.partner-analytics-tooltip[hidden] { display: none; }
.partner-analytics-tooltip > strong { font-size: 13px; color: var(--partner-muted); }
.partner-analytics-tooltip > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.partner-analytics-tooltip b { font-variant-numeric: tabular-nums; white-space: nowrap; }

.partner-analytics-chart-empty {
  min-height: 320px;
  padding: 28px;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
  color: var(--partner-muted);
}

.partner-analytics-chart-empty > span {
  width: 52px;
  height: 52px;
  margin-bottom: 12px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
  font-size: 24px;
}

.partner-analytics-chart-empty strong { color: var(--partner-ink); font-size: 17px; }
.partner-analytics-chart-empty p { max-width: 430px; margin: 7px 0 0; line-height: 1.55; }

.partner-analytics-legend {
  margin-top: 16px;
  display: flex;
  gap: 18px;
  justify-content: flex-end;
  color: var(--partner-muted);
  font-size: 12px;
  font-weight: 700;
}

.partner-analytics-legend span { display: inline-flex; gap: 7px; align-items: center; }
.partner-analytics-legend i { width: 18px; height: 3px; display: inline-block; border-radius: 999px; }
.partner-analytics-legend i.is-received { background: #fd5516; }
.partner-analytics-legend i.is-accepted { background: #6d5bd0; }
.partner-analytics-legend i.is-completed { background: #2ca66b; }

.partner-analytics-breakdown { margin-top: 34px; }

.partner-breakdown-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.partner-breakdown-grid article {
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--partner-line);
  border-radius: 17px;
  background: var(--partner-surface);
  box-shadow: var(--partner-shadow-sm);
}

.partner-breakdown-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  border-radius: 14px;
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
  font-size: 20px;
}

.partner-breakdown-grid article > div { min-width: 0; display: grid; gap: 3px; }
.partner-breakdown-grid article span { color: var(--partner-muted); font-size: 12px; font-weight: 700; }
.partner-breakdown-grid article strong { font-size: 22px; font-variant-numeric: tabular-nums; }
.partner-breakdown-grid article small { color: var(--partner-muted); }

.partner-status-breakdown {
  padding: 22px;
  display: grid;
  gap: 18px;
  border: 1px solid var(--partner-line);
  border-radius: 18px;
  background: var(--partner-surface);
  box-shadow: var(--partner-shadow-sm);
}

.partner-status-row { display: grid; gap: 8px; }
.partner-status-row > div { display: flex; gap: 14px; align-items: center; justify-content: space-between; }
.partner-status-row strong { font-size: 14px; }
.partner-status-row > div span { color: var(--partner-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.partner-status-track { height: 9px; display: block; overflow: hidden; border-radius: 999px; background: #f1ece9; }
.partner-status-track i { height: 100%; min-width: 2px; display: block; border-radius: inherit; background: #2ca66b; }
.partner-status-row.is-rejected .partner-status-track i,
.partner-status-row.is-missed .partner-status-track i,
.partner-status-row.is-cancelled .partner-status-track i { background: #dd5a49; }
.partner-status-row.is-pending .partner-status-track i,
.partner-status-row.is-preparing .partner-status-track i { background: #f0a22e; }

.partner-performance-view .partner-operation-summary {
  margin-top: 26px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.partner-performance-view .partner-operation-summary article {
  padding: 20px;
  border: 1px solid var(--partner-line);
  border-radius: 17px;
  background: var(--partner-surface);
  box-shadow: var(--partner-shadow-sm);
}

.partner-performance-view .partner-operation-summary strong {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 700px) {
  .partner-performance-toolbar,
  .partner-analytics-error {
    align-items: stretch;
    flex-direction: column;
  }

  .partner-performance-data-window { font-size: 12px; }
  .partner-analytics-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .partner-analytics-kpis .partner-kpi { min-height: 118px; padding: 16px; }
  .partner-analytics-kpis .partner-kpi.is-selected { padding: 15px; }
  .partner-analytics-kpis .partner-kpi strong { font-size: 27px; }
  .partner-performance-chart > div:first-child { align-items: flex-start; flex-direction: column; }
  .partner-analytics-chart,
  .partner-analytics-chart svg,
  .partner-analytics-chart-empty { min-height: 250px; height: 250px; }
  .partner-analytics-chart { margin-inline: -10px; }
  .partner-analytics-legend { justify-content: flex-start; }
  .partner-breakdown-grid { grid-template-columns: 1fr; }
  .partner-status-breakdown { padding: 17px; }
  .partner-performance-view .partner-operation-summary { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 420px) {
  .partner-analytics-kpis,
  .partner-performance-view .partner-operation-summary { grid-template-columns: 1fr; }
}

/* Restaurant order operations ------------------------------------------------ */
.partner-sidebar-nav button > .partner-nav-label {
  min-width: 0;
  overflow: hidden;
  color: var(--partner-ink);
  font-size: inherit;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.partner-order-nav-badge {
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--partner-accent);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 5px 13px rgba(253, 85, 22, .28);
}

.partner-order-nav-badge[hidden] { display: none; }

.partner-account > .partner-install-app {
  width: fit-content;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #f3b293;
  border-radius: 9px;
  background: var(--partner-accent-soft);
  color: var(--partner-accent-dark);
}

.partner-account > .partner-install-app:hover,
.partner-account > .partner-install-app:focus-visible {
  border-color: var(--partner-accent);
  outline: 3px solid rgba(253, 85, 22, .14);
}

.partner-orders-history .partner-order-history-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: end;
}

.partner-order-connection {
  min-height: 38px;
  padding: 8px 12px;
  display: flex;
  gap: 8px;
  align-items: center;
  flex: 0 0 auto;
  border: 1px solid var(--partner-line);
  border-radius: 999px;
  background: #fff;
  color: var(--partner-muted);
  font-size: 12px;
  font-weight: 700;
}

.partner-order-connection-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #a9aca9;
  box-shadow: 0 0 0 4px rgba(128, 132, 128, .1);
}

.partner-order-connection.is-live .partner-order-connection-dot {
  background: var(--partner-success);
  box-shadow: 0 0 0 4px rgba(64, 172, 27, .12);
}

.partner-order-connection.is-offline,
.partner-order-connection.is-error { border-color: #f0c6ba; color: #9b351d; }
.partner-order-connection.is-offline .partner-order-connection-dot,
.partner-order-connection.is-error .partner-order-connection-dot { background: #dc4a27; box-shadow: 0 0 0 4px rgba(220, 74, 39, .11); }

.partner-order-error {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #f0b9aa;
  border-radius: 12px;
  background: #fff1ed;
  color: #962e19;
  font-size: 13px;
  font-weight: 700;
}

.partner-operations-strip {
  min-height: 78px;
  margin: 0 0 18px;
  padding: 14px 17px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  border: 1px solid #e8d8cf;
  border-radius: 17px;
  background: linear-gradient(120deg, #fff, #fff8f3);
  box-shadow: var(--partner-shadow-sm);
}

.partner-operations-strip > div {
  min-width: 0;
  display: flex;
  gap: 12px;
  align-items: center;
}

.partner-operations-strip > div > div { display: grid; gap: 2px; }
.partner-operations-strip strong { font-size: 15px; }
.partner-operations-strip small { color: var(--partner-muted); font-size: 12px; }
.partner-operations-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 42px; border-radius: 13px; background: var(--partner-success-soft); color: var(--partner-success-dark); font-size: 16px; }

.partner-operations-toggle { display: flex; gap: 9px; align-items: center; flex: 0 0 auto; cursor: pointer; }
.partner-operations-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.partner-operations-toggle > span { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #cbc9c7; transition: background .16s ease; }
.partner-operations-toggle > span::after { position: absolute; top: 4px; left: 4px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(31, 25, 22, .24); transition: transform .16s ease; content: ""; }
.partner-operations-toggle input:checked + span { background: var(--partner-success); }
.partner-operations-toggle input:checked + span::after { transform: translateX(20px); }
.partner-operations-toggle input:focus-visible + span { outline: 3px solid rgba(253, 85, 22, .22); outline-offset: 2px; }
.partner-operations-toggle:has(input:disabled) { cursor: not-allowed; opacity: .58; }
.partner-operations-toggle em { min-width: 58px; color: var(--partner-ink); font-size: 12px; font-style: normal; font-weight: 800; }

.partner-orders-loading {
  min-height: 260px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 11px;
  color: var(--partner-muted);
}

.partner-orders-loading > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 14px; background: var(--partner-accent-soft); color: var(--partner-accent-dark); font-size: 22px; animation: partner-session-spin 1.15s linear infinite; }
.partner-order-board[hidden], .partner-orders-loading[hidden] { display: none; }

.partner-order-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.partner-order-lane {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--partner-line);
  border-radius: 18px;
  background: #f6f3f1;
}

.partner-order-lane > header { min-height: 43px; padding: 2px 3px 10px; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.partner-order-lane > header > div { display: flex; gap: 8px; align-items: center; }
.partner-order-lane > header span { color: var(--partner-accent); font-size: 13px; }
.partner-order-lane.is-preparing > header span { color: #ad7100; }
.partner-order-lane.is-ready > header span { color: var(--partner-success-dark); }
.partner-order-lane > header h2 { margin: 0; font-size: 16px; }
.partner-order-lane > header > strong { min-width: 27px; height: 27px; padding: 0 7px; display: grid; place-items: center; border-radius: 999px; background: #fff; color: var(--partner-muted); font-size: 12px; }
.partner-order-cards { display: grid; gap: 10px; }

.partner-order-lane-empty { min-height: 126px; display: grid; place-content: center; justify-items: center; gap: 7px; border: 1px dashed #d7cec9; border-radius: 13px; background: rgba(255, 255, 255, .55); color: #8a817d; text-align: center; }
.partner-order-lane-empty span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #8c9890; }
.partner-order-lane-empty p { margin: 0; font-size: 12px; }

.partner-order-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e0d7d2;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(57, 38, 29, .07);
}

.partner-order-card.is-awaiting_restaurant { border-color: #f4a37d; box-shadow: 0 8px 25px rgba(253, 85, 22, .11); }
.partner-order-card > header { padding: 14px 14px 10px; display: flex; justify-content: space-between; gap: 9px; align-items: start; }
.partner-order-card > header > div { min-width: 0; display: grid; }
.partner-order-number { font-size: 18px; line-height: 1.2; }
.partner-order-card time { color: var(--partner-muted); font-size: 11px; }

.partner-order-status { width: fit-content; max-width: 100%; padding: 5px 8px; display: inline-block; border-radius: 999px; background: #eeeae8; color: #5d5551; font-size: 10px; font-weight: 800; line-height: 1.25; white-space: nowrap; }
.partner-order-status.is-awaiting_restaurant { background: var(--partner-accent-soft); color: var(--partner-accent-dark); }
.partner-order-status.is-accepted, .partner-order-status.is-preparing { background: #fff1cd; color: #815400; }
.partner-order-status.is-ready_for_pickup { background: var(--partner-success-soft); color: var(--partner-success-dark); }
.partner-order-status.is-rejected, .partner-order-status.is-cancelled, .partner-order-status.is-missed { background: #f4e8e5; color: #8d3929; }

.partner-order-deadline,
.partner-order-eta { margin: 0 14px 11px; padding: 8px 10px; border-radius: 9px; background: var(--partner-accent-soft); color: var(--partner-accent-dark); font-size: 11px; font-weight: 800; }
.partner-order-deadline.is-urgent { background: #b93113; color: #fff; animation: partner-order-urgent 1.2s ease-in-out infinite alternate; }
.partner-order-eta { background: #fff4d9; color: #785000; }

@keyframes partner-order-urgent { to { box-shadow: 0 0 0 4px rgba(185, 49, 19, .12); } }

.partner-order-customer { padding: 0 14px 11px; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 9px; align-items: center; }
.partner-order-customer > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #f1ece9; color: var(--partner-ink); font-size: 13px; font-weight: 800; }
.partner-order-customer > div { min-width: 0; display: grid; }
.partner-order-customer strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.partner-order-customer small { color: var(--partner-muted); font-size: 10px; }

.partner-order-items { margin: 0; padding: 11px 14px; display: grid; gap: 9px; border-block: 1px solid #eee7e3; list-style: none; }
.partner-order-items li { min-width: 0; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 7px; align-items: start; }
.partner-order-items li > strong { color: var(--partner-accent-dark); font-size: 12px; }
.partner-order-items li > div { min-width: 0; display: grid; gap: 1px; }
.partner-order-items li span { font-size: 12px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.partner-order-items li small { color: var(--partner-muted); font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.partner-order-items li small.is-note { color: #764833; font-style: italic; }
.partner-order-items > .partner-order-items-empty { display: block; color: var(--partner-muted); font-size: 11px; }

.partner-order-note { margin: 10px 14px 0; padding: 9px 10px; border-radius: 9px; background: #fff9df; color: #59461e; }
.partner-order-note strong { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .035em; }
.partner-order-note p { margin: 2px 0 0; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.partner-order-total { padding: 11px 14px; display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.partner-order-total span { color: var(--partner-muted); font-size: 11px; }
.partner-order-total strong { font-size: 14px; }
.partner-order-total:has(small) { flex-wrap: wrap; }
.partner-order-total > small { flex-basis: 100%; color: var(--partner-muted); font-size: 11px; line-height: 1.45; }

.partner-order-actions { padding: 0 12px 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.partner-order-actions button, .partner-order-danger { min-height: 41px; padding: 8px 10px; border: 1px solid transparent; border-radius: 10px; font-size: 11px; font-weight: 800; cursor: pointer; }
.partner-order-actions button.is-primary { background: var(--partner-accent); color: #fff; }
.partner-order-actions button:only-child { grid-column: 1 / -1; }
.partner-order-actions button.is-secondary { border-color: #ddd3ce; background: #fff; color: var(--partner-ink); }
.partner-order-actions button:hover:not(:disabled), .partner-order-actions button:focus-visible { outline: 3px solid rgba(253, 85, 22, .14); }
.partner-order-actions button:disabled { cursor: wait; opacity: .55; }

.partner-order-history-section { margin-top: 26px; }
.partner-order-history-bar { margin-bottom: 12px; display: flex; justify-content: space-between; gap: 18px; align-items: end; }
.partner-order-history-bar h2 { margin: 0; font-size: 20px; }
.partner-order-history-bar p { margin: 3px 0 0; color: var(--partner-muted); font-size: 12px; }
.partner-order-history-bar .partner-order-filters { flex: 0 0 auto; }
.partner-order-history-bar .partner-order-filters button { min-height: 36px; padding: 7px 11px; font-size: 11px; }
.partner-orders-history .partner-order-table { display: table; min-width: 760px; }
.partner-orders-history .partner-order-table thead { display: table-header-group; }
.partner-orders-history .partner-order-table tbody { display: table-row-group; padding: 0; }
.partner-orders-history .partner-order-table tr { display: table-row; margin: 0; padding: 0; border: 0; }
.partner-orders-history .partner-order-table th,
.partner-orders-history .partner-order-table td { display: table-cell; }
.partner-orders-history .partner-order-table th:nth-child(n),
.partner-orders-history .partner-order-table td:nth-child(n) { width: auto; text-align: left; }
.partner-orders-history .partner-order-table th:last-child,
.partner-orders-history .partner-order-table td:last-child { text-align: right; }
.partner-order-table-number { font-weight: 800; }
.partner-order-table-money { font-weight: 800; white-space: nowrap; }

.partner-order-dialog {
  width: min(560px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: 20px;
  background: #fff;
  color: var(--partner-ink);
  box-shadow: 0 28px 90px rgba(37, 24, 18, .32);
}

.partner-order-dialog::backdrop { background: rgba(28, 21, 18, .56); backdrop-filter: blur(3px); }
.partner-order-dialog form > header { padding: 20px 21px 17px; display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--partner-line); background: linear-gradient(130deg, #fff, #fff8f3); }
.partner-order-dialog form > header h2 { margin: 1px 0 2px; font-size: 23px; }
.partner-order-dialog form > header p:not(.eyebrow) { margin: 0; color: var(--partner-muted); font-size: 12px; }
.partner-order-dialog form > header > button { width: 38px; height: 38px; flex: 0 0 38px; border: 0; border-radius: 10px; background: #f1edeb; color: var(--partner-ink); font-size: 24px; cursor: pointer; }
.partner-order-dialog-body { padding: 20px 21px; }
.partner-order-dialog-summary { margin-bottom: 18px; padding: 13px 14px; display: flex; justify-content: space-between; gap: 12px; border-radius: 12px; background: var(--partner-soft); }
.partner-order-dialog-summary strong { font-size: 16px; }
.partner-order-dialog-summary span { color: var(--partner-muted); font-size: 12px; text-align: right; }
.partner-order-dialog fieldset legend { margin-bottom: 10px; font-size: 13px; font-weight: 800; }
.partner-prep-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.partner-prep-options label { position: relative; cursor: pointer; }
.partner-prep-options input { position: absolute; opacity: 0; }
.partner-prep-options span { min-height: 48px; display: grid; place-items: center; border: 1px solid #ddd3ce; border-radius: 11px; background: #fff; font-size: 13px; font-weight: 800; }
.partner-prep-options label:has(input:checked) span { border-color: var(--partner-accent); background: var(--partner-accent-soft); color: var(--partner-accent-dark); box-shadow: 0 0 0 2px rgba(253, 85, 22, .08); }
.partner-prep-options label:has(input:focus-visible) span { outline: 3px solid rgba(253, 85, 22, .18); }
.partner-prep-custom, .partner-reject-reason { margin-top: 15px; display: grid; gap: 7px; font-size: 12px; font-weight: 800; }
.partner-prep-custom input, .partner-reject-reason textarea { width: 100%; min-height: 47px; padding: 10px 12px; border: 1px solid #dcd2cd; border-radius: 11px; background: #fff; color: var(--partner-ink); }
.partner-reject-reason textarea { min-height: 112px; resize: vertical; }
.partner-prep-custom input:focus, .partner-reject-reason textarea:focus { border-color: var(--partner-accent); outline: 3px solid rgba(253, 85, 22, .12); }
.partner-reject-reason small { color: var(--partner-muted); font-size: 10px; font-weight: 500; }
.partner-order-dialog .partner-inline-error { margin: 14px 0 0; }
.partner-order-dialog form > footer { padding: 13px 21px 17px; display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid var(--partner-line); }
.partner-order-danger { background: #b8341b; color: #fff; }
.partner-order-danger:hover:not(:disabled), .partner-order-danger:focus-visible { background: #942812; outline: 3px solid rgba(184, 52, 27, .17); }
.partner-order-danger:disabled { cursor: wait; opacity: .55; }

.partner-offline-page {
  width: min(520px, calc(100% - 32px));
  min-height: 100dvh;
  margin: 0 auto;
  padding: max(40px, env(safe-area-inset-top)) 0 max(40px, env(safe-area-inset-bottom));
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
}
.partner-offline-page .partner-offline-logo { display: block; width: min(260px, 72vw); height: auto; }
.partner-offline-page h1 { margin: 8px 0 4px; font-size: clamp(30px, 8vw, 46px); }
.partner-offline-page p:not(.eyebrow) { max-width: 450px; margin: 0 0 22px; color: var(--partner-muted); }
.partner-offline-page .button { text-decoration: none; }

@media (max-width: 1080px) {
  .partner-order-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-order-lane.is-ready { grid-column: 1 / -1; }
  .partner-order-lane.is-ready .partner-order-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  body.partner-panel-page { min-height: 100dvh; padding-bottom: env(safe-area-inset-bottom); }
  .partner-mobile-header { padding-top: env(safe-area-inset-top); min-height: calc(68px + env(safe-area-inset-top)); }
  .partner-sidebar { padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
  .partner-portal-main { padding-right: max(14px, env(safe-area-inset-right)); padding-bottom: calc(88px + env(safe-area-inset-bottom)); padding-left: max(14px, env(safe-area-inset-left)); }
  .partner-orders-history .partner-order-history-heading { align-items: stretch; flex-direction: column; }
  .partner-order-connection { width: fit-content; }
  .partner-operations-strip { align-items: flex-start; flex-direction: column; }
  .partner-operations-toggle { width: 100%; justify-content: space-between; }
  .partner-order-board { grid-template-columns: 1fr; }
  .partner-order-lane.is-ready { grid-column: auto; }
  .partner-order-lane.is-ready .partner-order-cards { grid-template-columns: 1fr; }
  .partner-order-history-bar { align-items: stretch; flex-direction: column; }
  .partner-order-history-bar .partner-order-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .partner-order-history-bar .partner-order-filters button { width: auto; text-align: center; }
  .partner-order-dialog { width: 100vw; max-width: none; max-height: 100dvh; margin: 0; border-radius: 0; }
  .partner-order-dialog form { min-height: 100dvh; display: grid; grid-template-rows: auto 1fr auto; }
  .partner-order-dialog form > header { padding-top: calc(17px + env(safe-area-inset-top)); }
  .partner-order-dialog form > footer { padding-bottom: calc(15px + env(safe-area-inset-bottom)); }
}

@media (max-width: 430px) {
  .partner-prep-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-order-dialog-summary { align-items: flex-start; flex-direction: column; }
  .partner-order-dialog-summary span { text-align: left; }
  .partner-order-dialog form > footer > button { flex: 1; min-width: 0; padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-order-deadline.is-urgent,
  .partner-orders-loading > span { animation: none; }
}

/* Lithuanian-first typography ------------------------------------------------
   Keep the portal readable on Windows and Linux without a remote font request.
   These faces all include the full Lithuanian alphabet; standard 400/600/700/800
   weights avoid synthetic, uneven glyphs in ą č ę ė į š ų ū ž. */
body.partner-panel-page,
body.partner-panel-page :where(button, input, select, textarea, dialog) {
  font-family: var(--partner-font-sans);
  font-synthesis: none;
  font-kerning: normal;
}

body.partner-panel-page :where(h1, h2, h3, h4, h5, h6) {
  font-weight: 700;
  letter-spacing: -.018em;
  line-height: 1.18;
}

body.partner-panel-page :where(strong, b, th, dt) {
  font-weight: 700;
}

body.partner-panel-page :where(button, [role="button"], label, legend) {
  font-weight: 600;
}

body.partner-panel-page :where(input, select, textarea) {
  font-weight: 400;
  letter-spacing: 0;
}

body.partner-panel-page :where(p, li, dd, td, small) {
  line-height: 1.58;
}

body.partner-panel-page small {
  font-size: 13px;
}

body.partner-panel-page .partner-sidebar-brand small,
body.partner-panel-page .partner-sidebar-nav button small,
body.partner-panel-page .partner-coming-soon,
body.partner-panel-page .partner-smart-badge,
body.partner-panel-page .partner-option-tag,
body.partner-panel-page .partner-campaign-status,
body.partner-panel-page .partner-settings-status,
body.partner-panel-page .partner-hours-day-heading span,
body.partner-panel-page .partner-hours-aside-heading > span,
body.partner-panel-page .partner-report-builder-heading > span {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .035em;
}

body.partner-panel-page .partner-page-header h1,
body.partner-panel-page .partner-menu-heading h1 {
  letter-spacing: -.025em;
}

body.partner-panel-page .partner-page-header p:not(.eyebrow),
body.partner-panel-page .partner-menu-heading p:not(.eyebrow),
body.partner-panel-page .partner-promotions-empty p,
body.partner-panel-page .partner-coming-soon p,
body.partner-panel-page .partner-settings-section-heading p,
body.partner-panel-page .partner-settings-form > header p:last-child {
  font-size: 15px;
  line-height: 1.6;
}

body.partner-panel-page .partner-promotions-empty h3 {
  font-size: 18px;
  line-height: 1.35;
}

body.partner-panel-page :where(
  .partner-item-sales,
  .partner-promotion-history,
  .partner-order-table,
  .partner-ratings-table,
  .partner-refunds-table,
  .partner-invoices-table
) th {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .025em;
}

body.partner-panel-page :where(
  .partner-item-sales,
  .partner-promotion-history,
  .partner-order-table,
  .partner-ratings-table,
  .partner-refunds-table,
  .partner-invoices-table
) td {
  font-size: 15px;
  line-height: 1.5;
}

body.partner-panel-page :where(
  .partner-report-form-row label,
  .partner-invoice-controls > label,
  .partner-hours-interval label,
  .partner-settings-select > span,
  .partner-settings-form-grid label > span,
  .partner-settings-readonly > span,
  .partner-holiday-add label,
  .partner-campaign-facts dt,
  .partner-campaign-review dt
) {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

body.partner-panel-page :where(
  .partner-settings-help,
  .partner-settings-details dt,
  .partner-settings-note p,
  .partner-settings-empty p,
  .partner-settings-security li,
  .partner-holiday-empty p,
  .partner-holiday-row small,
  .partner-hours-aside-heading p,
  .partner-report-notice p,
  .partner-campaign-fieldset > p,
  .partner-campaign-item-choices small
) {
  font-size: 13px;
  line-height: 1.55;
}

body.partner-panel-page :where(
  .partner-period-trigger,
  .partner-order-filters button,
  .partner-refunds-disputed,
  .partner-settings-action,
  .partner-settings-select select,
  .partner-hours-interval input,
  .partner-hours-interval select,
  .partner-report-downloads button,
  .partner-weekly-download,
  .partner-settings-form > footer .button,
  .partner-campaign-empty button,
  .partner-campaign-loading
) {
  font-weight: 600;
}

@media (max-width: 700px) {
  body.partner-panel-page {
    font-size: 16px;
  }

  body.partner-panel-page :where(
    .partner-item-sales,
    .partner-promotion-history,
    .partner-order-table,
    .partner-ratings-table,
    .partner-refunds-table,
    .partner-invoices-table
  ) td {
    font-size: 14px;
  }
}

/* Nomi campaign planner: warm surfaces and orange actions are intentionally distinct from marketplace references. */
.partner-primary-action,
.partner-secondary-action {
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 13px;
  font: inherit;
  font-size: 14px;
  font-weight: 850;
  cursor: pointer;
}

.partner-primary-action { background: var(--partner-accent); color: #fff; box-shadow: 0 10px 24px rgba(253, 85, 22, .2); }
.partner-primary-action:hover:not(:disabled), .partner-primary-action:focus-visible { background: var(--partner-accent-dark); outline: 3px solid rgba(253, 85, 22, .16); }
.partner-secondary-action { border-color: var(--partner-line); background: #fff; color: var(--partner-ink); }
.partner-secondary-action:hover:not(:disabled), .partner-secondary-action:focus-visible { border-color: var(--partner-accent); background: var(--partner-accent-soft); outline: 0; }
.partner-primary-action:disabled, .partner-secondary-action:disabled { opacity: .55; cursor: wait; }
.partner-primary-action.is-blocked:disabled { cursor: not-allowed; }
.partner-inline-error { margin-bottom: 14px; padding: 13px 15px; border: 1px solid #f1afa0; border-radius: 12px; background: #fff1ee; color: #9c2819; font-size: 14px; font-weight: 700; }

.partner-promotions-heading { align-items: end; }
.partner-campaign-test-notice { margin: 4px 0 32px; padding: 18px 20px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 15px; align-items: center; border: 1px solid #ffc7ad; border-radius: 18px; background: linear-gradient(135deg, #fffaf7, var(--partner-accent-soft)); }
.partner-campaign-test-notice > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--partner-accent); color: #fff; font-size: 20px; font-weight: 950; box-shadow: 0 8px 18px rgba(253, 85, 22, .2); }
.partner-campaign-test-notice strong { font-size: 16px; }
.partner-campaign-test-notice p { margin: 3px 0 0; color: var(--partner-muted); font-size: 14px; line-height: 1.5; }
.partner-campaign-section { margin-top: 32px; }
.partner-campaign-section .partner-section-heading { align-items: end; }
.partner-campaign-section .partner-section-heading h2 { font-size: 25px; }
.partner-campaign-section .partner-section-heading p { margin: 5px 0 0; color: var(--partner-muted); font-size: 14px; }
.partner-campaign-loading { padding: 18px; border-radius: 14px; background: var(--partner-soft); color: var(--partner-muted); font-weight: 750; }

.partner-campaign-empty { min-height: 132px; padding: 22px; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 18px; align-items: center; border: 1px dashed #e7bba7; border-radius: 19px; background: rgba(255, 253, 250, .82); }
.partner-campaign-empty > span { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; background: var(--partner-accent-soft); color: var(--partner-accent-dark); font-size: 27px; font-weight: 950; }
.partner-campaign-empty h3 { margin: 0 0 6px; font-size: 18px; }
.partner-campaign-empty p { margin: 0; color: var(--partner-muted); font-size: 14px; }
.partner-campaign-empty button { min-height: 43px; padding: 0 17px; border: 1px solid var(--partner-accent); border-radius: 12px; background: #fff; color: var(--partner-accent-dark); font: inherit; font-weight: 850; cursor: pointer; }

.partner-campaign-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.partner-campaign-type-grid > button { min-height: 174px; padding: 22px; display: grid; grid-template-columns: minmax(0, 1fr) 142px; grid-template-rows: auto 1fr; gap: 9px 18px; align-items: center; border: 1px solid var(--partner-line); border-radius: 19px; background: linear-gradient(160deg, #fffdfa, #fff8f3); color: var(--partner-ink); font: inherit; text-align: left; cursor: pointer; box-shadow: var(--partner-shadow-sm); overflow: hidden; }
.partner-campaign-type-grid > button:hover, .partner-campaign-type-grid > button:focus-visible { border-color: var(--partner-accent); transform: translateY(-2px); box-shadow: 0 16px 34px rgba(109, 63, 40, .12); outline: 3px solid rgba(253, 85, 22, .11); }
.partner-campaign-illustration { display: block; object-fit: contain; user-select: none; pointer-events: none; }
.partner-campaign-type-grid > button > .partner-campaign-illustration { grid-column: 2; grid-row: 1 / 3; width: 138px; height: 138px; align-self: center; justify-self: center; filter: drop-shadow(0 10px 13px rgba(76, 42, 24, .12)); transition: transform .18s ease; }
.partner-campaign-type-grid > button:hover > .partner-campaign-illustration, .partner-campaign-type-grid > button:focus-visible > .partner-campaign-illustration { transform: translateY(-2px) scale(1.035); }
.partner-campaign-type-grid strong { font-size: 17px; line-height: 1.25; }
.partner-campaign-type-grid small { color: var(--partner-muted); font-size: 13px; line-height: 1.5; }

.partner-visibility-intro {
  margin-bottom: 18px;
  padding: 21px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(370px, .9fr);
  gap: 22px;
  align-items: stretch;
  border: 1px solid #f1c6b2;
  border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #fff7f2 100%);
  box-shadow: 0 14px 32px rgba(83, 48, 31, .08);
}
.partner-visibility-intro-copy { display: grid; align-content: center; gap: 8px; }
.partner-visibility-intro-copy h4 { margin: 0; font-size: 21px; line-height: 1.25; }
.partner-visibility-intro-copy p { margin: 0; color: var(--partner-muted); font-size: 14px; line-height: 1.55; }
.partner-visibility-price-strip { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.partner-visibility-price-strip > div { padding: 14px; border: 1px solid rgba(225, 168, 140, .55); border-radius: 14px; background: rgba(255, 255, 255, .86); }
.partner-visibility-price-strip dt { color: var(--partner-muted); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.partner-visibility-price-strip dd { margin: 5px 0 0; font-size: 19px; font-weight: 900; line-height: 1.15; }
.partner-visibility-price-strip small { display: block; margin-top: 4px; color: var(--partner-muted); font-size: 11px; line-height: 1.3; }

.partner-visibility-plan {
  margin-bottom: 18px;
  padding: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 25px;
  align-items: center;
  border: 1px solid #f1c6b2;
  border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #fff7f2 64%, #ffede4 100%);
  box-shadow: 0 14px 34px rgba(83, 48, 31, .08);
}
.partner-visibility-plan-copy { display: grid; gap: 11px; }
.partner-visibility-eyebrow { margin: 0; color: var(--partner-accent-dark); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.partner-visibility-plan h3 { margin: 0; font-size: 24px; line-height: 1.2; }
.partner-visibility-plan-copy > p:not(.partner-visibility-eyebrow):not(.partner-visibility-note) { margin: 0; color: var(--partner-muted); font-size: 14px; line-height: 1.55; }
.partner-visibility-estimates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.partner-visibility-estimates > div { padding: 13px 14px; border: 1px solid rgba(225, 168, 140, .48); border-radius: 14px; background: rgba(255, 255, 255, .82); }
.partner-visibility-estimates span { display: block; color: var(--partner-muted); font-size: 11px; font-weight: 750; }
.partner-visibility-estimates strong { display: block; margin-top: 4px; font-size: 19px; line-height: 1.2; }
.partner-visibility-note { margin: 0; padding: 11px 13px; border-left: 3px solid var(--partner-accent); border-radius: 0 10px 10px 0; background: rgba(255, 255, 255, .68); color: var(--partner-muted); font-size: 12px; line-height: 1.5; }

.partner-visibility-preview { padding: 15px; border: 1px solid rgba(225, 168, 140, .55); border-radius: 18px; background: #fff; box-shadow: 0 12px 28px rgba(70, 42, 28, .1); }
.partner-visibility-preview > header { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.partner-visibility-preview > header strong { font-size: 15px; }
.partner-visibility-preview > header span { padding: 5px 9px; border-radius: 999px; background: var(--partner-accent-soft); color: var(--partner-accent-dark); font-size: 10px; font-weight: 900; }
.partner-phone-preview { width: min(100%, 246px); margin: 14px auto 0; padding: 14px; border: 7px solid #2b2421; border-radius: 27px; background: #fff; box-shadow: 0 12px 24px rgba(40, 29, 24, .14); }
.partner-phone-status { display: flex; justify-content: space-between; color: #332a26; font-size: 9px; font-weight: 850; }
.partner-phone-search { margin-top: 12px; padding: 10px; border-radius: 10px; background: #f2efec; color: #7c716b; font-size: 10px; }
.partner-phone-section-title { margin: 13px 0 7px; font-size: 13px; font-weight: 900; }
.partner-phone-card { position: relative; overflow: hidden; border: 1px solid #eadbd3; border-radius: 12px; background: #fff; }
.partner-phone-photo { height: 82px; background: linear-gradient(135deg, #ffac78, #fd5516 55%, #7b2d16); }
.partner-phone-photo::before { content: ""; position: absolute; width: 68px; height: 68px; top: 8px; left: 18px; border-radius: 50%; background: radial-gradient(circle at 45% 42%, #ffd79d 0 12%, #743018 13% 20%, #ffc35e 21% 34%, #592314 35% 46%, #f8a13b 47% 58%, #fff2d7 59% 66%, transparent 67%); box-shadow: 0 7px 15px rgba(63, 22, 9, .22); }
.partner-phone-ad-badge { position: absolute; top: 9px; right: 9px; padding: 4px 6px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--partner-accent-dark); font-size: 8px; font-weight: 900; }
.partner-phone-card-body { padding: 9px; display: grid; gap: 3px; }
.partner-phone-card-body strong { font-size: 11px; }
.partner-phone-card-body span { color: var(--partner-muted); font-size: 9px; }
.partner-phone-placeholder { margin-top: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.partner-phone-placeholder span { height: 44px; border-radius: 9px; background: linear-gradient(110deg, #f1eeeb, #faf8f6, #f1eeeb); }

@media (max-width: 900px) {
  .partner-visibility-intro, .partner-visibility-plan { grid-template-columns: 1fr; }
  .partner-visibility-preview { max-width: 440px; }
}

@media (max-width: 620px) {
  .partner-visibility-intro, .partner-visibility-plan { padding: 16px; }
  .partner-visibility-price-strip, .partner-visibility-estimates { grid-template-columns: 1fr; }
}

.partner-campaign-list { display: grid; gap: 14px; }
.partner-campaign-card { padding: 20px; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 18px; align-items: start; border: 1px solid var(--partner-line); border-radius: 19px; background: #fff; box-shadow: var(--partner-shadow-sm); }
.partner-campaign-card-icon { width: 56px; height: 56px; display: block; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(76, 42, 24, .1)); }
.partner-campaign-card-body { min-width: 0; }
.partner-campaign-card-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; }
.partner-campaign-card h3 { margin: 0; font-size: 19px; }
.partner-campaign-status { padding: 5px 9px; border-radius: 999px; background: var(--partner-accent-soft); color: var(--partner-accent-dark); font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.partner-campaign-offer { display: block; margin-top: 6px; font-size: 15px; }
.partner-campaign-facts { margin: 16px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.partner-campaign-facts div { min-width: 0; padding: 11px 12px; border-radius: 12px; background: var(--partner-soft); }
.partner-campaign-facts dt { color: var(--partner-muted); font-size: 11px; font-weight: 750; }
.partner-campaign-facts dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 800; }
.partner-campaign-blocker { margin: 13px 0 0; color: var(--partner-muted); font-size: 12px; }
.partner-campaign-card-actions { align-self: center; }
.partner-campaign-card-actions button { min-height: 40px; padding-inline: 14px; }
.partner-campaign-archive { display: grid; gap: 9px; }
.partner-campaign-archive > p { margin: 0; padding: 18px; border: 1px dashed var(--partner-line); border-radius: 14px; color: var(--partner-muted); }
.partner-campaign-archive-row { padding: 14px 16px; display: flex; justify-content: space-between; gap: 14px; align-items: center; border: 1px solid var(--partner-line); border-radius: 14px; background: rgba(255, 255, 255, .72); }
.partner-campaign-archive-row > div { display: grid; gap: 3px; }
.partner-campaign-archive-row span, .partner-campaign-archive-row time { color: var(--partner-muted); font-size: 12px; }

.partner-campaign-dialog { width: min(1040px, calc(100vw - 32px)); max-width: none; height: min(800px, calc(100dvh - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0; overflow: hidden; box-sizing: border-box; border: 0; border-radius: 25px; background: #fff; color: var(--partner-ink); box-shadow: 0 30px 90px rgba(42, 24, 17, .28); }
.partner-campaign-dialog::backdrop { background: rgba(36, 25, 21, .58); backdrop-filter: blur(4px); }
.partner-campaign-dialog-shell { min-height: 0; height: 100%; overflow: hidden; display: grid; grid-template-rows: auto auto minmax(0, 1fr); }
.partner-campaign-dialog-shell > header { padding: 23px 27px 18px; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--partner-line); background: linear-gradient(120deg, #fff, #fff8f4); }
.partner-campaign-dialog-shell > header h2 { margin: 2px 0 3px; font-size: 27px; }
.partner-campaign-dialog-shell > header p:not(.eyebrow) { margin: 0; color: var(--partner-muted); font-size: 13px; }
.partner-campaign-dialog-shell > header > button { width: 42px; height: 42px; flex: 0 0 42px; border: 0; border-radius: 13px; background: var(--partner-soft); color: var(--partner-ink); font-size: 25px; cursor: pointer; }
.partner-campaign-dialog-shell > header > button:hover, .partner-campaign-dialog-shell > header > button:focus-visible { background: var(--partner-accent-soft); color: var(--partner-accent-dark); outline: 0; }
.partner-campaign-steps { margin: 0; padding: 15px 27px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; list-style: none; border-bottom: 1px solid var(--partner-line); background: #fff; }
.partner-campaign-steps li { display: flex; gap: 8px; align-items: center; color: #928680; font-size: 12px; font-weight: 800; white-space: nowrap; }
.partner-campaign-steps span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #f2edeb; color: #7c706a; }
.partner-campaign-steps li.is-current { color: var(--partner-accent-dark); }
.partner-campaign-steps li.is-current span { background: var(--partner-accent); color: #fff; box-shadow: 0 5px 14px rgba(253, 85, 22, .25); }
.partner-campaign-steps li.is-complete { color: var(--partner-success-dark); }
.partner-campaign-steps li.is-complete span { background: var(--partner-success-soft); color: var(--partner-success-dark); }
.partner-campaign-dialog form { min-height: 0; max-height: 100%; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.partner-campaign-dialog form > .partner-inline-error { grid-row: 1; margin: 15px 27px 0; }
.partner-campaign-step { grid-row: 2; min-height: 0; padding: 24px 27px 30px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.partner-campaign-step > h3 { margin: 0; font-size: 24px; outline: 0; }
.partner-campaign-step > h3 + p { margin: 5px 0 20px; color: var(--partner-muted); font-size: 14px; }
.partner-campaign-guide-note { margin: 0 0 18px; padding: 14px 16px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 11px; align-items: center; border: 1px solid #f4d89b; border-radius: 14px; background: #fff9df; color: #5c4a27; }
.partner-campaign-guide-note > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 10px; background: #ffe6a4; color: #8b5d00; font-size: 14px; font-weight: 900; }
.partner-campaign-guide-note p { margin: 0; font-size: 13px; line-height: 1.5; }
.partner-campaign-subheading { margin: 24px 2px 12px; }
.partner-campaign-subheading h4 { margin: 0; font-size: 18px; }
.partner-campaign-subheading p { margin: 4px 0 0; color: var(--partner-muted); font-size: 13px; }
.partner-campaign-audience-note { margin: 0 0 14px; padding: 15px 17px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: center; border: 1px solid #ffd2bf; border-radius: 16px; background: linear-gradient(135deg, #fff8f3, #fffdfb); }
.partner-campaign-audience-note > img { display: block; width: 38px; height: 38px; border-radius: 10px; }
.partner-campaign-audience-note strong { display: block; color: var(--partner-accent-dark); font-size: 13px; font-weight: 900; }
.partner-campaign-audience-note p { margin: 3px 0 0; color: var(--partner-muted); font-size: 12px; line-height: 1.5; }
.partner-campaign-audience-fieldset { margin: 0; padding: 0; border: 0; }
.partner-campaign-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.partner-campaign-audience-card { position: relative; min-height: 154px; padding: 18px; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 14px; align-items: start; border: 1px solid #ded5d0; border-radius: 18px; background: #fff; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.partner-campaign-audience-card:hover { border-color: #f3ad8d; transform: translateY(-1px); }
.partner-campaign-audience-card:has(input:focus-visible) { outline: 3px solid rgba(253, 85, 22, .22); outline-offset: 2px; }
.partner-campaign-audience-card:has(input:checked) { border-color: var(--partner-accent); background: linear-gradient(145deg, #fff7f2, #fff); box-shadow: 0 0 0 3px rgba(253, 85, 22, .1), 0 12px 28px rgba(82, 46, 31, .07); }
.partner-campaign-audience-card input { position: absolute; opacity: 0; pointer-events: none; }
.partner-campaign-audience-mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: #f5f1ef; color: #756861; font-size: 23px; font-weight: 900; }
.partner-campaign-audience-card:has(input:checked) .partner-campaign-audience-mark { background: var(--partner-accent); color: #fff; }
.partner-campaign-audience-copy { min-width: 0; display: grid; gap: 6px; }
.partner-campaign-audience-copy strong { color: var(--partner-ink); font-size: 16px; line-height: 1.25; }
.partner-campaign-audience-copy small { color: var(--partner-muted); font-size: 12px; line-height: 1.48; }
.partner-campaign-audience-copy em { margin-top: 5px; padding-top: 9px; border-top: 1px solid var(--partner-line); color: var(--partner-accent-dark); font-size: 11px; font-style: normal; font-weight: 850; }
.partner-campaign-rules-heading { margin: 21px 2px 11px; }
.partner-campaign-rules-heading h4 { margin: 0; font-size: 17px; }
.partner-campaign-rules-heading p { margin: 4px 0 0; color: var(--partner-muted); font-size: 12px; }
.partner-campaign-rules-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.partner-campaign-rules-grid .partner-campaign-fieldset { height: 100%; margin: 0; box-sizing: border-box; }
.partner-campaign-rules-grid .partner-campaign-segmented { grid-template-columns: 1fr; }
.partner-campaign-rules-grid .partner-campaign-segmented span { min-height: 45px; }
.partner-campaign-choice-grid { display: grid; gap: 13px; }
.partner-campaign-choice-grid.is-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.partner-campaign-choice-grid label { position: relative; min-height: 90px; padding: 10px 14px 10px 9px; display: grid; grid-template-columns: 72px minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 3px 10px; align-items: center; border: 1px solid var(--partner-line); border-radius: 14px; background: #fff; cursor: pointer; overflow: hidden; }
.partner-campaign-choice-grid label:has(input:checked) { border-color: var(--partner-accent); background: var(--partner-accent-soft); box-shadow: 0 0 0 3px rgba(253, 85, 22, .1); }
.partner-campaign-choice-grid input { position: absolute; opacity: 0; }
.partner-campaign-choice-grid label > .partner-campaign-illustration { grid-row: 1 / 3; width: 70px; height: 70px; align-self: center; filter: drop-shadow(0 7px 9px rgba(76, 42, 24, .1)); transition: transform .18s ease; }
.partner-campaign-choice-grid label:hover > .partner-campaign-illustration, .partner-campaign-choice-grid label:has(input:checked) > .partner-campaign-illustration { transform: scale(1.035); }
.partner-campaign-choice-grid strong { font-size: 14px; }
.partner-campaign-choice-grid small { align-self: start; color: var(--partner-muted); font-size: 12px; line-height: 1.38; }
.partner-campaign-type-selector { padding: 17px; }
.partner-campaign-fieldset { margin: 0 0 17px; padding: 19px; border: 1px solid var(--partner-line); border-radius: 17px; background: #fffdfa; }
.partner-campaign-fieldset h4, .partner-campaign-fieldset legend { margin: 0 0 12px; color: var(--partner-ink); font-size: 15px; font-weight: 850; }
.partner-campaign-fieldset > p { margin: -7px 0 13px; color: var(--partner-muted); font-size: 12px; }
.partner-campaign-fieldset > label, .partner-campaign-input-row label { display: grid; gap: 7px; color: var(--partner-ink); font-size: 13px; font-weight: 800; }
.partner-campaign-fieldset > label { margin-top: 14px; }
.partner-campaign-fieldset input[type="number"], .partner-campaign-fieldset input[type="datetime-local"], .partner-campaign-fieldset input[type="time"] { min-height: 47px; padding: 0 13px; border: 1px solid #d9cfca; border-radius: 11px; background: #fff; color: var(--partner-ink); font: inherit; font-size: 15px; }
.partner-campaign-fieldset input:focus { border-color: var(--partner-accent); outline: 3px solid rgba(253, 85, 22, .12); }
.partner-campaign-segmented { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.partner-campaign-segmented.is-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.partner-campaign-segmented label { position: relative; cursor: pointer; }
.partner-campaign-segmented input { position: absolute; opacity: 0; }
.partner-campaign-segmented span { min-height: 52px; padding: 10px 14px; display: flex; align-items: center; border: 1px solid #d9cfca; border-radius: 12px; background: #fff; font-size: 13px; font-weight: 800; }
.partner-campaign-segmented label:has(input:checked) span { border-color: var(--partner-accent); background: var(--partner-accent-soft); color: var(--partner-accent-dark); box-shadow: 0 0 0 2px rgba(253, 85, 22, .08); }
.partner-campaign-segmented label:has(input:disabled) { opacity: .42; cursor: not-allowed; }
.partner-campaign-usage-options span { min-height: 92px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; }
.partner-campaign-usage-options strong { font-size: 13px; line-height: 1.35; }
.partner-campaign-usage-options small { color: var(--partner-muted); font-size: 11px; font-weight: 600; line-height: 1.45; }
.partner-campaign-usage-options label:has(input:checked) small { color: #8d3c20; }
.partner-campaign-input-help { color: var(--partner-muted); font-size: 11px; font-weight: 550; line-height: 1.45; }
.partner-campaign-input-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.partner-campaign-item-choices { max-height: 250px; padding-right: 4px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; overflow-y: auto; scrollbar-gutter: stable; }
.partner-campaign-item-choices > label { min-height: 62px; padding: 10px 12px; display: flex; gap: 10px; align-items: center; border: 1px solid #e1d8d3; border-radius: 12px; background: #fff; cursor: pointer; }
.partner-campaign-item-choices > label:has(input:checked) { border-color: var(--partner-accent); background: var(--partner-accent-soft); }
.partner-campaign-item-choices input { width: 19px; height: 19px; accent-color: var(--partner-accent); }
.partner-campaign-item-choices span { display: grid; }
.partner-campaign-item-choices strong { font-size: 13px; }
.partner-campaign-item-choices small { color: var(--partner-muted); font-size: 11px; }
.partner-campaign-items-empty { grid-column: 1 / -1; padding: 14px; border-radius: 10px; background: var(--partner-soft); }
.partner-campaign-offer-note { padding: 18px; display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; border: 1px solid #ffc7ad; border-radius: 17px; background: var(--partner-accent-soft); }
.partner-campaign-offer-note > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: #fff; color: var(--partner-accent-dark); font-size: 23px; }
.partner-campaign-offer-note p { margin: 4px 0 0; color: var(--partner-muted); font-size: 13px; }
.partner-campaign-review { margin-top: 18px; border-block: 1px solid var(--partner-line); }
.partner-campaign-review > div { min-height: 58px; padding: 14px 4px; display: grid; grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr); gap: 24px; align-items: center; border-bottom: 1px solid var(--partner-line); }
.partner-campaign-review > div:last-child { border-bottom: 0; }
.partner-campaign-review dt { color: var(--partner-muted); font-size: 13px; font-weight: 700; }
.partner-campaign-review dd { margin: 0; font-size: 15px; font-weight: 750; line-height: 1.45; }
.partner-campaign-terms { margin-top: 17px; padding: 16px; display: flex; gap: 12px; align-items: start; border: 1px solid #ffc7ad; border-radius: 14px; background: var(--partner-accent-soft); color: var(--partner-ink); font-size: 13px; font-weight: 700; cursor: pointer; }
.partner-campaign-terms input { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--partner-accent); }
.partner-campaign-terms > span { display: grid; gap: 5px; }
.partner-campaign-terms strong { font-size: 14px; }
.partner-campaign-terms small { color: var(--partner-muted); font-size: 13px; font-weight: 500; line-height: 1.5; }
.partner-campaign-legal-note { margin: 10px 2px 0; color: var(--partner-muted); font-size: 12px; line-height: 1.55; }
.partner-campaign-dialog form > footer { grid-row: 3; position: relative; z-index: 2; min-height: 76px; flex: 0 0 auto; padding: 13px 27px; display: flex; justify-content: space-between; gap: 12px; align-items: center; box-sizing: border-box; border-top: 1px solid var(--partner-line); background: #fff; box-shadow: 0 -8px 20px rgba(42, 24, 17, .035); }
.partner-campaign-dialog form > footer > div { display: flex; gap: 10px; }

@media (max-width: 980px) {
  .partner-campaign-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-campaign-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-campaign-steps li { font-size: 0; }
  .partner-campaign-steps li span { font-size: 12px; }
}

@media (max-width: 700px) {
  .partner-promotions-heading { align-items: stretch; }
  .partner-promotions-heading .partner-primary-action { width: 100%; }
  .partner-campaign-test-notice { grid-template-columns: 44px 1fr; padding: 16px; }
  .partner-campaign-test-notice > span { width: 44px; height: 44px; }
  .partner-campaign-empty { grid-template-columns: 48px 1fr; padding: 17px; }
  .partner-campaign-empty > span { width: 48px; height: 48px; }
  .partner-campaign-empty button { grid-column: 1 / -1; }
  .partner-campaign-type-grid { grid-template-columns: 1fr; }
  .partner-campaign-type-grid > button { min-height: 154px; grid-template-columns: minmax(0, 1fr) 102px; padding: 17px; }
  .partner-campaign-type-grid > button > .partner-campaign-illustration { width: 100px; height: 100px; }
  .partner-campaign-card { grid-template-columns: 48px minmax(0, 1fr); padding: 16px; }
  .partner-campaign-card-icon { width: 48px; height: 48px; }
  .partner-campaign-card-actions { grid-column: 1 / -1; }
  .partner-campaign-card-actions button { width: 100%; }
  .partner-campaign-facts { grid-template-columns: 1fr; }
  .partner-campaign-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .partner-campaign-dialog-shell > header { padding: 18px 16px 14px; }
  .partner-campaign-dialog-shell > header h2 { font-size: 23px; }
  .partner-campaign-steps { padding: 12px 16px; }
  .partner-campaign-steps li { justify-content: center; }
  .partner-campaign-step { padding: 20px 16px 24px; }
  .partner-campaign-choice-grid.is-types, .partner-campaign-segmented, .partner-campaign-segmented.is-three, .partner-campaign-input-row, .partner-campaign-item-choices, .partner-campaign-audience-grid, .partner-campaign-rules-grid { grid-template-columns: 1fr; }
  .partner-campaign-audience-card { min-height: 132px; }
  .partner-campaign-review > div { grid-template-columns: 1fr; gap: 5px; }
  .partner-campaign-choice-grid label { min-height: 82px; grid-template-columns: 62px minmax(0, 1fr); }
  .partner-campaign-choice-grid label > .partner-campaign-illustration { width: 60px; height: 60px; }
  .partner-campaign-dialog form > footer { padding: 12px 16px; }
  .partner-campaign-dialog form > footer, .partner-campaign-dialog form > footer > div { width: 100%; }
  .partner-campaign-dialog form > footer > div { justify-content: end; }
  .partner-campaign-dialog form > footer button { min-width: 0; padding-inline: 13px; }
}

@media (min-width: 701px) and (max-height: 720px) {
  .partner-campaign-dialog { height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); }
  .partner-campaign-dialog-shell > header { padding-block: 15px 12px; }
  .partner-campaign-dialog-shell > header h2 { font-size: 24px; }
  .partner-campaign-steps { padding-block: 10px; }
  .partner-campaign-step { padding-block: 18px 22px; }
  .partner-campaign-dialog form > footer { min-height: 68px; }
}

@media (max-width: 900px) {
  .publication-preview-products { grid-template-columns: 1fr; }
  .publication-preview-product:nth-child(odd) { border-right: 0; }
}

@media (max-width: 620px) {
  .catalog-publication-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .publication-dialog-header { padding: 17px 16px 0; }
  .publication-dialog-header h2 { font-size: 23px; }
  .publication-steps { gap: 18px; }
  .publication-steps strong { font-size: 12px; }
  .publication-dialog-body { padding: 18px 16px; }
  .publication-preview-product { grid-template-columns: 96px minmax(0, 1fr); padding: 12px; }
  .publication-preview-media { width: 96px; height: 96px; }
  .publication-preview-title { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .publication-price-breakdown { min-width: 0; justify-items: start; text-align: left; }
  .publication-mode-choices { grid-template-columns: 1fr; }
  .publication-schedule-field { grid-column: auto; }
  .publication-dialog-actions { padding: 13px 16px 16px; }
  .publication-dialog-actions .button { flex: 1; min-width: 0; }
}

@media (max-width: 700px) {
  body.partner-panel-page {
    font-size: 15px;
  }

  .partner-portal-main {
    padding: 25px 14px 60px;
  }

  .partner-page-header h1,
  .partner-menu-heading h1 {
    font-size: clamp(32px, 11vw, 42px);
  }

  .partner-page-header p:not(.eyebrow),
  .partner-menu-heading p:not(.eyebrow) {
    font-size: 15px;
  }

  .partner-period-popover {
    right: 10px;
    left: 10px;
    padding: 17px 14px;
    border-radius: 18px;
  }

  .partner-kpi,
  .partner-chart-card,
  .partner-insight-grid article,
  .partner-opportunity-grid article,
  .partner-promotion-options article,
  .partner-hours-day,
  .partner-hours-preview,
  .partner-hours-holidays,
  .partner-settings-section {
    border-radius: 16px;
  }

  .partner-smart-card {
    border-radius: 18px;
  }

  .partner-hours-day,
  .partner-hours-preview,
  .partner-hours-holidays,
  .partner-settings-section {
    padding: 18px;
  }

  .partner-menu-view .menu-item-row {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .partner-menu-view .menu-item-row > .reorder-controls,
  .partner-menu-view .menu-item-row > .menu-search-spacer,
  .partner-menu-view .menu-item-groups,
  .partner-menu-view .menu-item-price,
  .partner-menu-view .menu-item-actions {
    grid-column: 1 / -1;
  }

  .partner-menu-view .menu-item-price {
    min-width: 0;
    text-align: left;
  }

  .partner-menu-view .menu-tax-breakdown {
    justify-items: start;
  }

  .partner-menu-view .menu-item-actions {
    min-width: 0;
    justify-content: flex-start;
  }
}

/* Keep these semantic type rules last so later feature modules cannot restore
   synthetic heavy weights or undersized mobile copy. */
body.partner-panel-page :where(h1, h2, h3, h4, h5, h6, strong, b, th, dt) {
  font-weight: 600;
}

body.partner-panel-page :where(button, [role="button"], label, legend) {
  font-weight: 600;
}

body.partner-panel-page {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.55;
}

body.partner-panel-page .partner-sidebar-nav button {
  min-height: 50px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0;
}

body.partner-panel-page .partner-sidebar-nav button.is-active {
  font-weight: 600;
}

body.partner-panel-page .partner-sidebar-nav button small,
body.partner-panel-page .partner-coming-soon {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
}

body.partner-panel-page .partner-promotions-empty h3 {
  margin-bottom: 7px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.01em;
}

body.partner-panel-page .partner-promotions-empty p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
}

body.partner-panel-page .partner-page-header h1,
body.partner-panel-page .partner-menu-heading h1 {
  font-weight: 600;
}

body.partner-panel-page small {
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 700px) {
  body.partner-panel-page {
    font-size: 16px;
  }
}

/* Restaurant team access */
.partner-access-view {
  max-width: 1180px;
}

.partner-access-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
}

.partner-access-heading .button-primary {
  min-height: 50px;
  padding-inline: 24px;
  background: #fd5516;
  color: #fff;
  box-shadow: 0 12px 28px rgba(253, 85, 22, .18);
}

.partner-access-notice {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 26px 0;
  padding: 17px 20px;
  border: 1px solid #ffd8c8;
  border-radius: 16px;
  background: #fff5f0;
  color: #5e3425;
}

.partner-access-notice > span {
  display: grid;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: #fd5516;
  color: #fff;
  font-size: 19px;
}

.partner-access-error,
.partner-access-form-error {
  margin: 0 0 18px;
  padding: 13px 15px;
  border: 1px solid #e8a79a;
  border-radius: 12px;
  background: #fff0ed;
  color: #9b2c20;
}

.partner-access-section {
  overflow: hidden;
  margin-bottom: 24px;
  border: 1px solid #e8dbd4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(64, 34, 24, .05);
}

.partner-access-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 22px 24px;
  border-bottom: 1px solid #eee3de;
  background: #fffaf7;
}

.partner-access-section-heading h2,
.partner-access-section-heading p {
  margin: 0;
}

.partner-access-section-heading h2 {
  font-size: 21px;
}

.partner-access-section-heading p {
  margin-top: 4px;
  color: #74665f;
  font-size: 14px;
}

.partner-access-section-heading > span {
  display: grid;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  place-items: center;
  border-radius: 999px;
  background: #f2e9e4;
  color: #3a2b26;
  font-size: 14px;
}

.partner-access-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) minmax(220px, .9fr) auto;
  align-items: center;
  gap: 22px;
  min-height: 82px;
  padding: 18px 24px;
  border-bottom: 1px solid #f0e7e2;
}

.partner-access-row:last-child {
  border-bottom: 0;
}

.partner-access-identity,
.partner-access-role {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.partner-access-identity strong,
.partner-access-identity small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.partner-access-identity small,
.partner-access-role small {
  color: #74665f;
}

.partner-access-role-badge {
  width: fit-content;
  padding: 5px 10px;
  border-radius: 999px;
  background: #fff0e9;
  color: #b63a0b;
  font-size: 13px;
  font-weight: 600;
}

.partner-access-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.partner-access-action {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #ddd0ca;
  border-radius: 11px;
  background: #fff;
  color: #2a211e;
  cursor: pointer;
}

.partner-access-action:hover {
  border-color: #fd5516;
  color: #c43f0d;
}

.partner-access-action.is-danger {
  border-color: #f0c2ba;
  color: #a93226;
}

.partner-access-protected {
  color: #897b74;
  font-size: 13px;
}

.partner-access-empty {
  padding: 30px 24px;
  color: #7b6c65;
  text-align: center;
}

.partner-access-dialog {
  width: min(780px, calc(100vw - 32px));
  max-height: min(880px, calc(100dvh - 32px));
  padding: 0;
  border: 0;
  border-radius: 22px;
  background: #fffdfb;
  color: #211a18;
  box-shadow: 0 30px 90px rgba(38, 24, 19, .28);
}

.partner-access-dialog::backdrop {
  background: rgba(24, 18, 16, .62);
  backdrop-filter: blur(4px);
}

.partner-access-form {
  display: grid;
  gap: 23px;
  max-height: min(880px, calc(100dvh - 32px));
  padding: 28px;
  overflow: auto;
}

.partner-access-form > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}

.partner-access-form > header h2,
.partner-access-form > header p {
  margin: 0;
}

.partner-access-form > header h2 {
  font-size: 28px;
}

.partner-access-form > header p:last-child {
  margin-top: 5px;
  color: #74665f;
}

.partner-access-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.partner-access-form-grid label {
  display: grid;
  gap: 7px;
  color: #4f443f;
  font-size: 13px;
  font-weight: 750;
}

.partner-access-form-grid input,
.partner-access-form-grid select {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #d9cbc4;
  border-radius: 12px;
  background: #fffdfc;
  color: #241f1c;
  font: inherit;
  font-weight: 600;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.partner-access-form-grid input:focus,
.partner-access-form-grid select:focus {
  border-color: #fd5516;
  outline: 0;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(253, 85, 22, 0.12);
}

.partner-access-form-grid .field:last-child {
  grid-column: 1 / -1;
}

.partner-access-role-fieldset,
.partner-access-permissions {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.partner-access-role-fieldset legend,
.partner-access-permissions legend {
  margin-bottom: 10px;
  font-size: 17px;
}

.partner-access-role-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.partner-access-role-grid label,
.partner-access-permission-options label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 14px;
  border: 1px solid #e4d8d2;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.partner-access-role-grid label:hover,
.partner-access-permission-options label:hover {
  transform: translateY(-1px);
  border-color: #efb59d;
  box-shadow: 0 8px 22px rgba(83, 48, 33, 0.08);
}

.partner-access-role-grid label:has(input:checked),
.partner-access-permission-options label:has(input:checked) {
  border-color: #fd5516;
  background: #fff0e9;
  box-shadow: inset 0 0 0 1px #fd5516;
}

.partner-access-role-grid input,
.partner-access-permission-options input {
  flex: 0 0 auto;
  margin-top: 4px;
  accent-color: #fd5516;
}

.partner-access-role-grid span,
.partner-access-permission-options span {
  display: grid;
  gap: 4px;
}

.partner-access-role-grid strong,
.partner-access-permission-options strong {
  color: #241f1c;
  font-size: 15px;
  line-height: 1.25;
}

.partner-access-permission-options small {
  color: #74665f;
  font-size: 12px;
  line-height: 1.45;
}

.partner-access-role-grid small,
.partner-access-permissions > p {
  color: #74665f;
}

.partner-access-permissions > p {
  margin: -4px 0 12px;
}

.partner-access-permission-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.partner-access-form footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid #eadfd9;
}

.partner-access-form footer .button-primary {
  background: #fd5516;
  color: #fff;
}

@media (max-width: 760px) {
  .partner-access-heading,
  .partner-access-section-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .partner-access-heading .button-primary {
    width: 100%;
  }

  .partner-access-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px;
  }

  .partner-access-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .partner-access-form {
    padding: 22px 18px;
  }

  .partner-access-form-grid,
  .partner-access-role-grid,
  .partner-access-permission-options {
    grid-template-columns: 1fr;
  }

  .partner-access-form-grid .field:last-child {
    grid-column: auto;
  }
}

/* Operational menu availability. Kept portal-only so the admin editor retains its own layout. */
.partner-menu-view .partner-availability-workspace {
  display: grid;
  gap: 18px;
}

.partner-menu-view .partner-availability-heading {
  padding: 22px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 1px solid #f1c9b8;
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 8%, rgba(253, 85, 22, .15), transparent 34%),
    linear-gradient(135deg, #fff 0%, #fff8f3 100%);
  box-shadow: var(--partner-shadow-sm);
}

.partner-menu-view .partner-availability-heading h4 {
  margin: 2px 0 4px;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.1;
  letter-spacing: -.025em;
}

.partner-menu-view .partner-availability-heading p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--partner-muted);
}

.partner-menu-view .partner-availability-summary {
  min-width: 154px;
  padding: 14px 16px;
  display: grid;
  justify-items: end;
  border: 1px solid #f2d7ca;
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
}

.partner-menu-view .partner-availability-summary strong {
  color: var(--partner-accent-dark);
  font-size: 28px;
  line-height: 1;
}

.partner-menu-view .partner-availability-summary span {
  margin-top: 5px;
  color: var(--partner-muted);
  font-size: 12px;
  text-align: right;
}

.partner-menu-view .partner-availability-toolbar {
  padding: 14px;
  display: grid;
  grid-template-columns: minmax(240px, 420px) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  border: 1px solid var(--partner-line);
  border-radius: 15px;
  background: #fff;
}

.partner-menu-view .partner-availability-search input {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid #d9cec8;
  border-radius: 11px;
  background: #fffdfc;
  color: var(--partner-ink);
}

.partner-menu-view .partner-availability-search input:focus,
.partner-menu-view .partner-availability-select:focus {
  border-color: var(--partner-accent);
  outline: 3px solid rgba(253, 85, 22, .13);
}

.partner-menu-view .partner-availability-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.partner-menu-view .partner-availability-actions .button,
.partner-menu-view .partner-availability-footer .button {
  min-height: 44px;
  padding-inline: 18px;
}

.partner-menu-view .partner-availability-actions .button-primary,
.partner-menu-view .partner-availability-footer .button-primary {
  border-color: var(--partner-accent);
  background: var(--partner-accent);
  color: #fff;
}

.partner-menu-view .partner-availability-actions .button-primary:hover:not(:disabled),
.partner-menu-view .partner-availability-footer .button-primary:hover:not(:disabled) {
  border-color: var(--partner-accent-dark);
  background: var(--partner-accent-dark);
}

.partner-menu-view .partner-availability-edit-notice {
  padding: 13px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #ffc2a8;
  border-radius: 13px;
  background: var(--partner-accent-soft);
  color: #7e2a0c;
}

.partner-menu-view .partner-availability-edit-notice span {
  color: #805241;
  font-size: 13px;
  text-align: right;
}

.partner-menu-view .partner-availability-categories {
  display: grid;
  gap: 10px;
}

.partner-menu-view .partner-availability-category {
  overflow: hidden;
  border: 1px solid #e7d9d2;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(74, 42, 28, .045);
}

.partner-menu-view .partner-availability-category-toggle {
  width: 100%;
  min-height: 68px;
  padding: 13px 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 24px;
  align-items: center;
  gap: 14px;
  border: 0;
  background: #fffdfa;
  color: var(--partner-ink);
  text-align: left;
  cursor: pointer;
}

.partner-menu-view .partner-availability-category-toggle:hover,
.partner-menu-view .partner-availability-category-toggle:focus-visible {
  background: #fff7f1;
}

.partner-menu-view .partner-availability-category-toggle:focus-visible {
  outline: 3px solid rgba(253, 85, 22, .16);
  outline-offset: -3px;
}

.partner-menu-view .partner-availability-category-identity {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.partner-menu-view .partner-availability-category-identity strong {
  overflow: hidden;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.partner-menu-view .partner-availability-category-identity small {
  color: var(--partner-muted);
  font-size: 12px;
}

.partner-menu-view .partner-availability-count {
  padding: 6px 9px;
  border-radius: 999px;
  background: #fff0e9;
  color: #a6330a;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.partner-menu-view .partner-availability-count.is-clear {
  background: var(--partner-success-soft);
  color: var(--partner-success-dark);
}

.partner-menu-view .partner-availability-chevron {
  width: 10px;
  height: 10px;
  justify-self: center;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform 150ms ease;
}

.partner-menu-view .partner-availability-category-toggle[aria-expanded="true"] .partner-availability-chevron {
  transform: rotate(225deg) translate(-1px, -1px);
}

.partner-menu-view .partner-availability-items {
  border-top: 1px solid var(--partner-line);
}

.partner-menu-view .partner-availability-item {
  min-height: 78px;
  padding: 12px 16px;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 105px minmax(230px, 360px);
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid #eee5e0;
  transition: background 120ms ease;
}

.partner-menu-view .partner-availability-item:last-child {
  border-bottom: 0;
}

.partner-menu-view .partner-availability-item.is-unavailable {
  background: #fffbf8;
}

.partner-menu-view .partner-availability-item-identity {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.partner-menu-view .partner-availability-item-identity strong {
  font-size: 15px;
}

.partner-menu-view .partner-availability-item-identity small {
  overflow: hidden;
  display: -webkit-box;
  color: var(--partner-muted);
  font-size: 12px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.partner-menu-view .partner-availability-item-price {
  color: #4d403a;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.partner-menu-view .partner-availability-item-control {
  min-width: 0;
  display: grid;
  justify-items: stretch;
  gap: 5px;
}

.partner-menu-view .partner-availability-select {
  width: 100%;
  min-height: 46px;
  padding: 9px 36px 9px 12px;
  border: 1px solid #d9cec8;
  border-radius: 10px;
  background: #fff;
  color: var(--partner-ink);
  font-weight: 650;
}

.partner-menu-view .partner-availability-select.is-sold_out_today,
.partner-menu-view .partner-availability-select.is-sold_out_indefinitely,
.partner-menu-view .partner-availability-select.is-hidden {
  border-color: #efad8f;
  background: #fff8f4;
}

.partner-menu-view .partner-availability-status-help {
  color: var(--partner-muted);
  font-size: 11px;
  line-height: 1.35;
}

.partner-menu-view .partner-availability-status {
  width: fit-content;
  max-width: 100%;
  justify-self: end;
  padding: 7px 11px;
  overflow: hidden;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.partner-menu-view .partner-availability-status.is-available {
  background: var(--partner-success-soft);
  color: var(--partner-success-dark);
}

.partner-menu-view .partner-availability-status.is-sold_out_today {
  background: #fff0d9;
  color: #935000;
}

.partner-menu-view .partner-availability-status.is-sold_out_indefinitely {
  background: #ffebe5;
  color: #a42c0d;
}

.partner-menu-view .partner-availability-status.is-hidden {
  background: #ece9e7;
  color: #504945;
}

.partner-menu-view .partner-availability-empty {
  margin: 0;
  padding: 28px 18px;
  color: var(--partner-muted);
  text-align: center;
}

.partner-menu-view .partner-availability-footer {
  position: sticky;
  bottom: 12px;
  z-index: 12;
  padding: 13px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border: 1px solid #ead5ca;
  border-radius: 15px;
  background: rgba(255, 253, 250, .96);
  box-shadow: 0 16px 38px rgba(63, 36, 23, .16);
  backdrop-filter: blur(10px);
}

@media (max-width: 900px) {
  .partner-menu-view .partner-availability-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .partner-menu-view .partner-availability-summary {
    min-width: 0;
    justify-items: start;
  }

  .partner-menu-view .partner-availability-summary span {
    text-align: left;
  }

  .partner-menu-view .partner-availability-toolbar {
    grid-template-columns: 1fr;
  }

  .partner-menu-view .partner-availability-actions {
    justify-content: stretch;
  }

  .partner-menu-view .partner-availability-actions .button {
    flex: 1;
  }

  .partner-menu-view .partner-availability-edit-notice {
    align-items: flex-start;
    flex-direction: column;
  }

  .partner-menu-view .partner-availability-edit-notice span {
    text-align: left;
  }

  .partner-menu-view .partner-availability-item {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .partner-menu-view .partner-availability-item-control {
    grid-column: 1 / -1;
  }

  .partner-menu-view .partner-availability-status {
    justify-self: start;
  }
}

@media (max-width: 560px) {
  .partner-menu-view .partner-availability-heading {
    padding: 18px;
  }

  .partner-menu-view .partner-availability-category-toggle {
    grid-template-columns: minmax(0, 1fr) 20px;
  }

  .partner-menu-view .partner-availability-category-meta {
    display: none;
  }

  .partner-menu-view .partner-availability-item {
    padding: 14px;
  }

  .partner-menu-view .partner-availability-footer {
    bottom: 8px;
  }

  .partner-menu-view .partner-availability-footer .button {
    flex: 1;
    padding-inline: 10px;
  }
}

.partner-venue-select-initial,
.partner-venue-option-initial {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.partner-venue-select-initial img,
.partner-venue-option-initial img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 3px;
  border-radius: 50%;
  box-sizing: border-box;
  object-fit: contain;
  background: #fff;
}

.partner-home-brand-hero:has(.partner-brand-banner:not([hidden])) {
  display: grid;
  grid-template-columns: minmax(300px, .68fr) minmax(0, 1.32fr);
  gap: clamp(22px, 2.5vw, 34px);
  align-items: center;
  margin-bottom: 24px;
}

.partner-home-brand-hero:has(.partner-brand-banner:not([hidden])) .partner-page-header {
  margin-bottom: 0;
}

.partner-brand-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 1;
  margin: 0;
  overflow: hidden;
  border: 1px solid #ead7cc;
  border-radius: 20px;
  background: linear-gradient(135deg, #fff1e9, #f4eee9);
  box-shadow: 0 14px 34px rgba(76, 43, 27, .11);
}

.partner-brand-banner[hidden] {
  display: none;
}

.partner-brand-banner img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.partner-brand-banner::after {
  position: absolute;
  inset: auto 0 0;
  height: 30%;
  background: linear-gradient(180deg, transparent, rgba(36, 25, 20, .1));
  pointer-events: none;
  content: "";
}

@media (max-width: 700px) {
  .partner-home-brand-hero:has(.partner-brand-banner:not([hidden])) {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 18px;
  }

  .partner-brand-banner {
    border-radius: 14px;
  }
}

/* Accessible action contrast without changing the Nomi orange brand palette. */
body.partner-panel-page .button-primary,
.partner-order-actions button.is-primary,
.partner-primary-action,
.partner-access-heading .button-primary,
.partner-access-form footer .button-primary {
  background: var(--partner-accent-dark);
}

.publication-steps li.is-current > span,
.partner-campaign-steps li.is-current span,
.partner-campaign-audience-card:has(input:checked) .partner-campaign-audience-mark,
.partner-campaign-test-notice > span {
  background: var(--partner-accent-dark);
}
.partner-courier-tracking { display: grid; gap: .3rem; padding: .8rem 1rem; border: 1px solid rgba(36,153,89,.25); border-radius: .85rem; background: rgba(36,153,89,.08); line-height: 1.45; }.partner-courier-tracking small { color: #687582; }.partner-courier-tracking.is-at_restaurant { border-color: #299759; background: rgba(36,153,89,.16); }
:root { --review-green: #16784b; }
.partner-review-open { border: 1px solid #d5dfda; color: #176b43; background: #fff; padding: 9px 14px; border-radius: 20px; font: inherit; cursor: pointer; }
.partner-review-submit { border: 0; color: #fff; background: var(--review-green); padding: 13px 20px; border-radius: 24px; font: inherit; font-weight: 700; cursor: pointer; }
.partner-review-submit:disabled { opacity: .6; cursor: wait; }
.partner-review-status { display: block; width: fit-content; border-radius: 16px; background: #e7f3ec; color: #176b43; padding: 5px 10px; font-size: 12px; margin: 8px 0; }
.partner-review-drawer { inset: 0 0 0 auto; margin: 0; width: min(510px, 100%); max-width: 100%; height: 100dvh; max-height: 100dvh; padding: 28px; border: 0; border-radius: 20px 0 0 20px; color: #17251c; background: #fff; overflow: auto; }
.partner-review-drawer::backdrop, .partner-review-dispute::backdrop { background: #0006; }
.partner-review-close { position: sticky; top: 0; float: right; display: grid; place-items: center; padding: 0; font-size: 26px; line-height: 1; border: 0; border-radius: 50%; width: 36px; height: 36px; background: #edf1ee; cursor: pointer; }
.partner-review-drawer h2 { font-size: 24px; margin-top: 0; padding-right: 30px; }
.partner-review-drawer h3 { margin-top: 30px; font-size: 17px; }
.partner-review-comment { white-space: pre-wrap; overflow-wrap: anywhere; color: #526259; line-height: 1.55; }
.partner-review-facts > div { display: flex; justify-content: space-between; gap: 20px; margin: 14px 0; }
.partner-review-facts dd { margin: 0; text-align: right; }
.partner-review-item { border-top: 1px solid #dfe5e1; padding: 18px 0; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.partner-review-item small { width: 100%; }
.partner-review-dispute { width: min(480px, calc(100% - 32px)); border: 0; border-radius: 20px; padding: 28px; color: #17251c; background: #fff; }
.partner-review-dispute h2 { font-size: 24px; }
.partner-review-dispute p { line-height: 1.6; color: #526259; }
.partner-review-dispute textarea { width: 100%; min-height: 120px; padding: 12px; border: 1px solid #c7d5cd; border-radius: 12px; background: #f4f7f5; color: #17251c; font: inherit; resize: vertical; }
.partner-review-actions { display: flex; justify-content: flex-end; gap: 12px; }
.partner-review-dispute .partner-review-error { color: #a92b31; }

/* Item rows respond to their available content width, including beside the archive. */
.partner-menu-view .menu-items-workspace,
.partner-menu-view .menu-category-items {
  min-width: 0;
  container: partner-menu-items / inline-size;
}
.partner-menu-view .menu-item-row {
  grid-template-columns: 82px 50px minmax(200px, 1.5fr) minmax(140px, 1fr) minmax(140px, .85fr) 88px;
  grid-template-areas: "reorder photo identity groups price actions";
  gap: 12px;
  padding: 14px 16px;
}
.partner-menu-view .menu-all-items-list .menu-item-row,
.partner-menu-view .menu-items-columns {
  grid-template-columns: 50px minmax(200px, 1.5fr) minmax(140px, 1fr) minmax(140px, .85fr) 88px;
  gap: 12px;
}
.partner-menu-view .menu-all-items-list .menu-item-row { grid-template-areas: "photo identity groups price actions"; }
.partner-menu-view .menu-items-columns > b:first-child { grid-column: 1 / 3; }
.partner-menu-view .menu-item-row > .reorder-controls,
.partner-menu-view .menu-item-row > .menu-search-spacer { grid-area: reorder; }
.partner-menu-view .menu-item-row > .menu-item-photo { grid-area: photo; }
.partner-menu-view .menu-item-row > .menu-item-identity { grid-area: identity; }
.partner-menu-view .menu-item-row > .menu-item-groups { grid-area: groups; margin-top: 0; }
.partner-menu-view .menu-item-row > .menu-item-price { grid-area: price; min-width: 0; }
.partner-menu-view .menu-item-row .menu-tax-breakdown b { white-space: normal; overflow-wrap: anywhere; }
.partner-menu-view .menu-item-row > .menu-item-actions { grid-area: actions; min-width: 0; }
.partner-menu-view .menu-item-row > * { min-width: 0; }
.partner-menu-view .menu-item-title-line { flex-wrap: wrap; gap: 5px 7px; }
.partner-menu-view .menu-item-title-line > strong {
  flex: 1 0 100%;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 16px;
  line-height: 1.4;
}
.partner-menu-view .menu-item-title-line > span {
  max-width: 100%;
  flex-shrink: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 12px;
}
.partner-menu-view .menu-item-category-name { font-size: 13px; overflow-wrap: anywhere; }
.partner-menu-view .menu-item-groups .menu-group-chip {
  max-width: 100%;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 12px;
}
.partner-menu-view .menu-item-groups-label,
.partner-menu-view .menu-group-empty { font-size: 12px; }
@container partner-menu-items (max-width: 860px) {
  .partner-menu-view .menu-items-columns { display: none; }
  .partner-menu-view .menu-item-row {
    grid-template-columns: 50px minmax(0, 1fr) 88px;
    grid-template-areas: "reorder reorder reorder" "photo identity identity" "groups groups groups" "price price actions";
    align-items: start;
  }
  .partner-menu-view .menu-all-items-list .menu-item-row {
    grid-template-columns: 50px minmax(0, 1fr) 88px;
    grid-template-areas: "photo identity identity" "groups groups groups" "price price actions";
  }
  .partner-menu-view .menu-item-row > .menu-item-price { text-align: left; }
  .partner-menu-view .menu-item-row .menu-tax-breakdown { justify-items: start; }
  .partner-menu-view .menu-item-row > .menu-item-actions { justify-content: flex-end; align-self: end; }
}
/* Minute-accurate opening hours with explicit all-day state. */
.partner-hours-days { container-type: inline-size; }
.partner-hours-day { padding: 18px; box-shadow: 0 3px 12px rgba(55, 32, 20, .035); }
.partner-hours-allday { display: flex; align-items: center; gap: 10px; min-height: 44px; width: fit-content; margin: -4px 0 12px; color: var(--partner-ink); font-size: 14px; font-weight: 700; cursor: pointer; }
.partner-hours-allday input { appearance: auto; width: 20px; height: 20px; min-height: 20px; margin: 0; padding: 0; flex: 0 0 20px; accent-color: var(--partner-accent); }
.partner-hours-allday:has(input:checked) { color: var(--partner-success-dark); }
.partner-hours-allday input:focus-visible { outline: 3px solid #ffcab3; outline-offset: 3px; }
.partner-hours-field { display: grid; min-width: 0; gap: 6px; }
.partner-hours-field > span { color: var(--partner-muted); font-size: 14px; font-weight: 650; }
.partner-hours-time { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; padding: 2px; border: 1px solid var(--partner-line); border-radius: 12px; background: var(--partner-surface); }
.partner-hours-time:focus-within { border-color: var(--partner-accent); box-shadow: 0 0 0 3px #fff0e8; }
.partner-hours-time > span { color: var(--partner-muted); font-size: 16px; font-weight: 800; }
.partner-hours-time select { min-width: 0; min-height: 44px; padding: 0 5px; border: 0; border-radius: 9px; background: transparent; font-size: 16px; font-weight: 750; font-variant-numeric: tabular-nums; text-align: center; text-align-last: center; outline: none; box-shadow: none; }
.partner-hours-time select:focus { border: 0; outline: none; background: #fff0e8; }
.partner-hours-remove { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 3px; padding: 0; line-height: 1; border-radius: 12px; }
.partner-hours-add { border: 1px dashed #e2cbbf; border-radius: 12px; background: transparent; font-size: 14px; }
.partner-hours-interval { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 44px; }
@supports (appearance: base-select) {
  .partner-hours-time select, .partner-hours-time select::picker(select) { appearance: base-select; }
  .partner-hours-time select { display: flex; align-items: center; justify-content: center; }
  .partner-hours-time select::picker-icon { display: none; }
  .partner-hours-time select::picker(select) { min-inline-size: 90px; max-block-size: min(300px, 45dvh); margin-block: 6px; padding: 5px; border: 1px solid var(--partner-line); border-radius: 13px; background: #fff; color: var(--partner-ink); box-shadow: 0 12px 35px rgba(60, 36, 25, .16); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .partner-hours-time select option { display: flex; align-items: center; justify-content: center; min-height: 40px; padding: 4px 12px; border-radius: 8px; font-size: 16px; font-variant-numeric: tabular-nums; }
  .partner-hours-time select option:checked { background: #fff0e8; color: #a83208; font-weight: 800; }
  .partner-hours-time select option:hover { background: #f6f3f1; }
  .partner-hours-time select option::checkmark { display: none; }
}
@container (max-width: 430px) {
  .partner-hours-day { padding: 14px; }
  .partner-hours-interval { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; gap: 7px; }
  .partner-hours-dash { display: none; }
}
@container partner-menu-items (max-width: 420px) {
  .partner-menu-view .menu-item-row {
    grid-template-columns: 50px minmax(0, 1fr);
    grid-template-areas: "reorder reorder" "photo identity" "groups groups" "price price" "actions actions";
    padding: 14px 12px;
  }
  .partner-menu-view .menu-all-items-list .menu-item-row {
    grid-template-columns: 50px minmax(0, 1fr);
    grid-template-areas: "photo identity" "groups groups" "price price" "actions actions";
  }
}

/* Reuse existing brand rows; fixed navigation starts at its original position. */
.partner-login-topbar { justify-content: space-between; gap: 12px; }
.partner-sidebar-heading { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 0 0 26px; }
.partner-sidebar-heading .partner-sidebar-brand { min-width: 0; padding: 0; }
.partner-sidebar-heading .partner-sidebar-brand small { display: none; }
body .partner-sidebar-heading .nomi-language-control select[data-nomi-language] { width: 64px; }
.partner-offline-heading { display: flex; align-items: center; justify-content: center; gap: 14px; max-width: 100%; }
.partner-offline-page .partner-offline-heading .partner-offline-logo { min-width: 0; width: min(260px, 54vw); }
@media (max-width: 1080px) {
  .partner-mobile-header { grid-template-columns: 44px auto minmax(0, 1fr) auto; gap: 8px; }
  .partner-mobile-header .nomi-language-control { justify-self: end; }
}
@media (max-width: 740px) {
  .partner-login-topbar .partner-panel-brand { min-width: 0; }
  .partner-login-topbar .partner-panel-wordmark { width: clamp(125px, 42vw, 205px); }
  .partner-login-topbar .partner-panel-brand > span:last-child { display: none; }
}
@media (max-width: 380px) {
  .partner-mobile-header { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .partner-mobile-header .partner-mobile-section { display: none; }
}
